text:
XML - Managing Data Exchange/XUL

Introduction
XUL (pronounced zool and rhymes with cool), which stands for eXtensible User interface Language, is an XML-based user interface language originally developed for use in the Netscape browser. It is now maintained by Mozilla. It is a part of Mozilla Firefox and many other Mozilla applications, and is available as part of Gecko, the rendering engine developed by Mozilla. In fact, XUL is powerful enough that the entire user interface in the Firefox application is implemented in XUL.

Like HTML, in XUL you can create an interface using a relatively simple markup language, define the appearance with CSS style sheets, and use JavaScript to manipulate behavior. Unlike HTML, however, XUL provides a rich set of user interface widgets to create, for example, menus, toolbars and tabbed panels.

To put it in simple terms, XUL can be used to create lightweight, cross-platform, cross-device user interfaces.

Many applications are developed using features of a specific platform that makes building cross-platform software time-consuming and costly. Some users may want to use an application on technologies other than traditional computers, such as small handheld devices. To date, there have been some cross-platform solutions already developed. Java, for example, was created just for such a purpose. However, creating GUIs with Java is cumbersome at best. Alternatively, XUL has been designed for building portable user interfaces easily and quickly. It is available on most versions of Windows, Mac OS X, Linux and Unix. Yahoo! currently uses XUL and related technologies for its Yahoo! tool bar (a Firefox extension) and Photomail application.

To illustrate XUL’s potential, this chapter will work through a few examples. Potential is the correct word here. The full capabilities of XUL are beyond the scope of this chapter but it is designed to give the reader a first look at the power of XUL. One more thing needs to be noted: you’ll need a Gecko-based browser (such as Firefox or the Mozilla Suite) or XULRunner to work with XUL.

The Basics
XUL is XML, and like all good XML files, a good XUL file begins with the standard XML version declaration. Currently, XUL is using the XML version 1.0.

To make your XUL page look good, you must include a global stylesheet in it. The URI of the default stylesheet is href = "chrome://global/skin/". While you can load as many stylesheets as you like, it is best practice to load the global stylesheet initially. Look at Fig.1. Notice the reference to “chrome”. ‘The chrome is the part of the application window that lies outside of a window's content area. Toolbars, menu bars, progress bars, and window title bars are all examples of elements that are typically part of the chrome.’(1) Chrome is the descriptive term used to name all of the elements in a XUL application. Think of it like the chrome on the outside of a car. It’s what catches your eye. The elements in a XUL file are what you see in the browser window. All XML documents must have a namespace declaration. The developers of XUL have provided a namespace that shows where they came up with the name XUL. (The reference is from the movie ‘Ghostbusters’ for the uninitiated)

The next thing to note is the tag. This tag is analogous to the tag in HTML. All the elements will live inside the window tag. In Fig. 1 the window tag has three attributes that are very important. The ‘id’ attribute is important in that it is the way to identify the window so that scripts can refer to it. While the title attribute is not necessary, it is good practice to provide a descriptive name. The value of title will be displayed in the title bar of the window. The next attribute is very important. This tells the browser in what direction to lay out the elements described in the XUL file. Horizontal means just that. Lay out in succession across the window. Vertical is the opposite; it adds the elements in column format. Vertical is the default value so if you do not declare this attribute you’ll get vertical orientation.

As was stated earlier, a XUL document is used to create user interfaces. UI's are generally full of interactive components such as text boxes, buttons and the like. A XUL document accomplishes this with the use of widgets, which are self-contained components with pre-defined behavior. For example buttons will respond to mouse clicks and menu bars can hold buttons. All the normally accepted actions of GUI components are built in to the widgets. There is already a rich library of predefined widgets, but because this is open source, any one can define a widget or a set of widgets for themselves.

The widgets are ‘disconnected’ until they are programmed to work together. This can be done simply with JavaScript or a more complex application can be made using something like C++ or Java. In this chapter we will use JavaScript to illustrate XUL’s uses and potential.

Also, a XUL file should have .xul extension. The Mozilla browser will automatically recognize it and know what to do with it when you click on it. Optionally, an .xml extension could be used but you would have to open the file within the browser.

One more thing needs to be mentioned. There are a few syntax rules to follow and they are:
 * All events and attributes must be written in lowercase.
 * All strings must be double quoted.
 * Every XUL widget must use close tags (either or ) to be well-formed.
 * All attributes must have a value.

A First Example
What better way to start then with the good old ‘Hello World’ example. Open up a text editor (not MS Word) like notepad or TextPad and type in:

Save it anywhere but be sure to give the file the .xul extension. Now just double click on it and it should open in your Mozilla or Netscape browser. You should get ‘Hello World’ three times, one on top of the other. Notice the different ways that ‘Hello World’ was printed: twice from a description tag and once from a label tag. Both and are text related tags. Using the description tag is the only way to write text that is not contents of a ‘value’ attribute. This means that you can write text that isn't necessarily assigned to a variable. In the second and third examples the text is expressed as an attribute to the tag description or label, respectively. You can see here that the orient attribute in window is set to ‘vertical’. That is why the text is output in a column. Otherwise, if orient was set to ‘horizontal’, all the text would be on one line. Try it.

Now let’s start adding some more interesting elements.

Adding Widgets
As stated earlier, XUL has an existing rich library of elements fondly called widgets. These include buttons, text boxes, progress bars, sliders and a host of other useful items. One good listing is the XUL Programmer's Reference.

Let us take a look at some simple buttons. Enter the following code and place it into a Notepad or other text editor that is not MS Word.

Save it and give the file the .xul extension. Open a Mozilla or Netscape browser and open the file from the browser. You should see a "find" button and a "cancel button". From here it is possible to add more functionality and build up elaborate interfaces.

There has to be some place to put all of these things and like the tag in HTML, the tag in XUL is used to house the widgets. In other words, boxes are containers that encapsulate other elements. There are a number of different types. In this example we’ll use, , and.

and are synonymous with the attributes 'orient = "horizontal"' and 'orient = "vertical"', which respectively form the tag. By using these two boxes, discrete sections of the window can have their own orientation. These two elements can hold all of the other elements and can even be nested.

The tags and serve special purposes. is used to create tool bars at the top or bottom of the window while sets up a series of tabbed sheets in the window.

Take the XUL framework from Fig. 1 and replace ". . .( add elements here)" with a tag pair (that's both open and close tags). This will be the outside container for the rest of the elements. Remember, the means that elements will be positioned vertically in order of appearance. Add the attribute 'flex="1"'. This will make the menu bar extend all the way across the window.

The 'flex' attribute needs some explanation since it is a primary way of sizing and positioning the elements on a page. Flex is a dynamic way of sizing and positioning widgets in a window. The higher the flex number (1 being highest), the more that widget gets priority sizing and placement over widgets with lower flex settings. All elements have size attributes, such as width and/or height, that can be set to an exact number of pixels but using flex insures the same relative sizing and positioning when resizing a window occurs.

Now put a pair each of and tags inside of the tags with first. As was said is used to create tool bars so lets add a toolbar similar to the one at the top of the browser.

This is the code so far:

There should now be a menu bar with “File  Edit   View” in it and they should each expand when you click on them. Let’s examine the elements and their attributes more closely to see how they work.

First the holds all of the menu items (File, Edit ,View). Next there are the three different menu items. Each menu has a set of elements and attributes. The does just it says. It creates the popup menu that occurs when the menu label is clicked. In the popup menu is the list of menu items. Each of these has an 'accesskey' attribute. This attribute underlines the letter and provides the reference for making a hot key for that menu item. Notice in the Edit menu, both 'Cut' and 'Copy' have accelerator text labels. In the File menu there is a tag. This places a line across the menu that acts as a visual separator. In the Edit menu, notice the menu item labeled 'Paste' has an attribute: disabled="true". This causes the Paste label to be grayed out in that menu and finally in the View menu the menu items there are actually checkboxes. The first one is checked by default and the second one is not.

Now on to the. Let's make three different sheets with different elements on them. Put this code in between the tags:

The tabs are first defined with. They are given an id and label. Next, a set of associated panels is created, each with different content. The first one is to show that like HTML style sheets can be applied in line. The second two sheets have component type elements in them. See how the slider works and the progress bar is running on its own.

XUL has a number of types of elements for creating list boxes. A list box displays items in the form of a list. Any item in such a particular list can be selected. XUL provides two types of elements to create lists, a listbox element to create multi-row list boxes, and a menulist element to create drop-down list boxes, as we have already seen.

The simplest list box uses the listbox element for the box itself, and the listitem element for each item. For example, this list box will have four rows, one for each item.

Like with the HTML option element, you a value can be assigned using the value attribute. The list box will set to a normal size, but you can alter the size to a certain level using the row attributes. Set it to the number of rows to display in the list box. A scroll bar will automatically come up to let the user be able to see the rest of the items in the list box if the box is too small.

Assigning values to each of the listitems lets the user be able to reference them later using script. This way, other elements can be reference this items to be used for alternative purposes.

All these elements are very nice and easy to put into a window, but by themselves they don't do anything. Now we have to connect things with some other code.

Adding Event Handlers and Responding to Events
To make things really useful, some type of scripting or application level coding has to be done. In our example, JavaScript will be used to add functionality to the components. This is done in a similar fashion as to scripting with HTML. With HTML, an event handler is associated with an element and some action is initiated when that handler is activated. Most of the handlers used with HTML are also found in XUL, in addition to some unique ones. Scripting can be done in additional lines of code, but a more efficient way is to create a separate file with the needed scripts inside of it. This allows the page to load faster since the rendering engine doesn’t have to decide what to do with the embedded script tags.

That being said, we’ll first add a simple script, in line, as a first example.

Let’s add an ‘onclick’ event handler to fire an alert box when an element is selected. Inside the tag add the line beginning with onclick:

Now when you click on any element in the window, you created an alert box that pops up telling you the name of the element. One interesting thing to note: When you click on the text enclosed by the description tag the response is undefined but when you click on the text wrapped by the label tag you get the tabName label.

This implies that a description tag is not really an element. After playing with the alert box, delete that line and add this inside the opening tag of the ‘Close’ menu item in the ‘File’ menu:

Now when you click on ‘Close’ or use the ‘C’ as a hot key, the entire window will close. The oncommand event handler is actually preferred over onclick because oncommand can handle hot keys and other non-mouse events.

Let’s try one more thing. Add this right after the opening tag.

These two functions first retrieve a reference to the progress meter and the text element using their ids. Then both functions set the style attributes of the progress meter and text element to have a display of 'visible' or ‘none’ which will do just that: hide or display those two elements. (The tabpanel for the progress meter has to be displayed in order to see these actions)

Now add two buttons that will provide the event to fire these two methods. First, add a new box element to hold the buttons. The width attribute of the box needs to be set otherwise the buttons will be laid out to extend the length of the window.

Style Sheets
Style sheets may be used both for creating themes, as well as modifying elements for a more elaborate user interfaces. XUL uses CSS (Cascading Style Sheets) for this. A style sheet is a file which contains style information for elements. The style sheet makes it possible to apply certain fonts, colors, borders, and size to the elements of your choice. Mozilla applies a default style sheet to each XUL window. So far, this is the style sheet that has been used for all the XUL documents:

That line gives the XUL document the default chrome://global/skin/ style sheet. In Mozilla, this will be translated as the file global.css, which contains default style information for XUL elements. The file will still show is this line is left out but it will not be as aesthetically pleasing. The style sheet applies theme-specific fonts, colors and borders to make the elements look more suitable. Even though style sheets can provide a better looking file, adding styles cannot always provide a better view. Some CSS properties do not affect the appearance of a widget, such as those that change the size or margins. In XUL, the use of the "flex: attribute should be used instead of using specific sizes. There are other ways that CSS does not apply, and may be to advanced for this tutorial.

Using a style sheet that you perhaps have already made, you just have to insert one extra line of code pointing to the CSS file you have already made.

This second line of code references the style sheet, and will take over as the default style sheet used for the XUL document. Sometimes it is desired not to have the style that comes with the default CSS file.

Conclusion
The examples shown in this chapter merely scratch the surface of XUL’s capabilities. Even though these examples are very simple, one can see how easy it would be to create more complex UI’s with XUL. With a complete set of the standard components such as buttons and text boxes at the programmer’s disposal, the programmer can code anything in XUL that can be coded in HTML. The cross-platform ability of XUL is another bonus but the fact that it doesn’t work with Microsoft’s Internet Explorer may suppress XUL’s widespread use. There is some hope that due to the delay in the development of the next version of IE that XUL may find it’s way into IE, but don’t hold your breath..

title: XML - Managing Data Exchange/XUL


text:
XML - Managing Data Exchange/Parsing XML files/Answers

--

This java class file is associated with the movies.xml file used in the chapter. Place this java file and movies.xml in the same directory. After compiling, this needs to be run from a command window and the format is:

> java SPParser movies.xml

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
Guitar/Arpeggios and Sweep Picking

Introduction
The word arpeggio (ar-peh-jee-oh) is Italian for "like a harp". It is a common technique for playing chords on the harp. To play an arpeggiated chord on the guitar, pick each note of the chord slowly, one string at a time. You can play arpeggios with a plectrum or fingerstyle.

Exercise 1
Below is a simple arpeggio study using these chords:

Sweep picking
Sweep picking is a more specialized technique, occurring most often in metal. It involves playing a fast arpeggio with a special technique: when switching from one string to the next, mute the note currently ringing by lifting the fretting finger. A sweep can become a rake if notes are muted incorrectly. Rakes can sound nice, but they are not sweeps. Remember only one note can ring out at a time or it won't sound good. It takes practice and it helps to start slow and build up speed.

Below is example tablature of sweep picking:

This is not the only way to notate sweeps. Small sweeps can be indicated with grace notes or even the arpeggio notation with the word "sweep" (or, less correctly, "rake") written above.

In a more classical approach, arpeggios must follow a distinct pattern of notes depending on the chord/scale we're playing. This is similar to playing chords note-by-note on a piano (not on a guitar).

The basic chords (the major and minor triads) are composed of three tones: the first, the third and the fifth note of the scale (major or minor, depending on the chord type).

For instance, the C major scale is: C D E F G A B. So, according to the 1-3-5 principle, the C major triad consists of C, E and G. Note that the C major chord on a guitar also consists only of these three notes but they are not always in the 1-3-5 order. Now, while playing "classical arpeggios", you would not just pick around the chord randomly but you would play C, E, G, then C, E, G an octave higher, etc. This is what is called an arpeggio scale. You can play around it, up and down with complete freedom or just use the 1-3-5 pattern as a bass line. This method can also be used with more complex chords (sus4, maj7, etc.) but then it follows a pattern different from 1-3-5 structure, depending on the chord type. In all, this is a very simple but effective method for composing.

While playing guitar, this might not appear as interesting as picking "full" six-string chords but it can be used to give your music a classical edge. It also has a more lead quality to it than using full chords and requires more skill. Playing fast arpeggios like these is sometimes used in metal music with very satisfactory results. The "classical arpeggios" are in no way better than the "harp like chords" and it is ultimately up to the player/composer to choose what is best for the song in question.

title: Guitar/Arpeggios and Sweep Picking


text:
User:DavidCary

I'm interested in medical electronics and robots, so naturally I'm interested in Electronics and Robotics and Programming:Serial Data Communications.

That led to me becoming sysop on the Open Circuits wiki http://opencircuits.com/ .

I'm also fascinated by Data Compression.

I feel these Wikibooks should be merged:
 * How to Think Like a Computer Scientist: Learning with Python 2nd Edition
 * Think Python

I help maintain the WikiIndex at http://wikiindex.org/ so naturally I'm interested in Wiki Science.

Feel free to leave notes on my discussion page here or at Wikipedia:User_talk:DavidCary .

When the comments I've made on some Talk: page become obsolete/irrelevant, please don't *leave* them there. Reduce clutter. Move it to User talk:DavidCary.

I try to eliminate notes as soon as they become obsolete/irrelevant. (I delete my own, and move others to the Talk: page of the person who signed it.).

I think the ideas around quine programs are fascinating ( Wiki: QuineProgram ).

I've been working in Python recently. Here's a quine I've written recently:

I've been editing C Programming and some Category:Subject:C++ programming language wikibooks recently. Here's a quine I've written recently:

Another quine I've written recently: (with some inspiration from another ANSI C quine I saw at http://c2.com/cgi/wiki?QuineProgram ):

title: User:DavidCary


text:
Steam Locomotive Operation

This book is an operators manual for the operation of functional steam locomotives. The terms and procedures described here will enable a person to safely operate a 19th or 20th-century steam locomotive well into the future.

To hostle, fire, or engineer a locomotive effectively, efficiently, and safely, a person should have a good understanding of the construction and the physics that go into a steam engine to produce locomotion as well as an understanding of normal operating techniques.

The Boiler
A common later (the 1940s) boiler design was the radial stay extended wagon top type of locomotive boiler, which consists of an oblong box with a circular top made of steel plating, connected to a cylindrical part which is commonly known as the barrel of the boiler. That part of the boiler enclosing the firebox is known as the outer casing or shell. The firebox corresponds in shape to the back end and sides of the outer casing or shell, a space being provided between the firebox sheets and those of the outer casing which provides for the firebox being surrounded by water. The front or cylindrical part of the boiler encloses the flues which are secured at the front to the front flue sheet and at the back to the inner or firebox flue sheet.

This arrangement provides that all parts of the firebox, as well as the flues, are completely surrounded by water, and it also provides that when fuel is burned in the firebox, the heat will be transmitted by the flues and firebox plates to the water; the unused gasses and smoke having free passage from the firebox through the flues to the smokebox and smokestack.

The smoke box is formed by extending the cylindrical part of the boiler beyond the front flue sheet. The boiler shell is provided with a steam dome on top of the shell which forms a chamber where steam may collect and free itself from the water in the boiler before passing through the throttle valve to the cylinders.

The flues in a locomotive boiler are known as fire tubes, because the heat passes through them, while the arch tubes, of which there are usually four in each firebox are called "water tubes" because the fire is on the outside, and the water passes through them.

The firebox sheets and flues constitute what is known as the heating surface. In addition to this heating surface, there is an additional, or superheater heating surface in many boilers, which superheats the steam after it leaves the boiler and while it is passing from the boiler to the cylinders. Comparing the flue heating area with that of the area of the firebox plates shows that the plate heating surface equals only 5% of the flue heating surface, but the firebox heating surface generates about 40% of the steam. This fact should be remembered.

In the locomotive boiler, a large number of small flues are provided instead of a few large flues, in order that the heat and gasses passing from the firebox to the smokebox will be split up and come into contact with a larger flue surface. If large flues were used, great quantities of heat would pass through the center of the flues without coming into contact with the surface of the flue, such heat would pass away and be lost. A large number of small tubes also provides for the heat is more evenly distributed through the boiler shell water space. The small flue can be made of thinner material, which permits the heat to be more easily transmitted to the water which surrounds the flues. In the extended wagon top type of locomotive boiler, the back part, or outer shell, is considerably larger in diameter than the front section, or cylindrical part; while the straight type of boiler has the outer shell and cylindrical part of practically the same diameter. The extended wagon top type, therefore, allows more steam and water space, and gives superior performance in foaming water conditions.

Locomotive boilers are made entirely of steel, except stay-bolts and stays, which are of iron. The crown sheet is supported by what are called radial stays, reaching from the crown sheet to the exterior wrapper sheet.

There are three common designs of fireboxes in general use. The narrow, deep firebox, which is between the frames and extends below the top frame rails. The semi-wide shallow firebox which rests on top of the frames and extends to the outside edges of the frame rails, and the wide firebox type having a firebox wider than the frames and extending outside the frame rails on both sides, and resting on top of the frame rails, or expansion brackets which are secured to the top of the frames.

Combustion Chamber
The combustion chamber for large locomotives was originally introduced for the purpose that its name implies, of providing increased firebox area for combustion purposes. As locomotives grew larger and the wheelbase longer, it then became a question of limiting the length of flues. It was found that when flues were more than 21 or 22 feet long, there was considerably more trouble in respect to leakage and in order to keep the flues within those limits of length it was necessary to lengthen out the firebox, which was done by extending the flue area into the boiler.

There is also an advantage of the combustion chamber, in addition to allowing shorter flues, the heating surface of the firebox sheets composing the combustion chamber is vastly more efficient than the increased length of flues would be if the combustion chamber was not used.

The combustion chamber also serves to protect the ends of the tubes from cold air which comes up through the grates at the front end of the firebox, in addition to providing a long flameway for the burning gases, which is particularly desirable with oil, or coal, having a large percentage of volatile matter.

Effects of Heating, Cooling, and Low Water
When the crown sheet or firebox sheets are not covered with water, they become overheated very quickly with a hot fire in the firebox. If for any reason water is not maintained over the crown sheet, and the sheet becomes overheated, the fire must be put out or deadened at once, and under no circumstances should cold water be forced into the boiler. The boiler should be cooled down before any attempt is made to refill it, because forcing cold water into the boiler when it is very hot produces sudden changes in temperature of the various parts of the sheets and sets up destructive strains.

The prevention of destructive strains and stresses, or reducing their amplitude should interest all who have to do with the upkeep of the locomotive. In order to bring out clearly and simply the cause of destructive stresses, it should fully be understood that the contraction or expansion of a body of metal when changes of temperature occur is irresistible. A firebox sheet expanding or contracting as a result of a change in temperature cannot be restrained. It is certain to find relief in some direction, either by self-destruction or destroying the obstacle opposing its movement.

The life of a locomotive boiler or firebox is dependent largely upon the care which it receives while in service. It is not possible in the operation of a locomotive to avoid all strains and stresses, but it is possible, practical, and beneficial to reduce the frequency of the stresses and also their amplitude. In other words, if by any means the severity of the strains is reduced even though their frequency be increased, the period between failures will be prolonged, the time between repairs and the life of fireboxes and boilers will be lengthened.

Figure 3, which is a diagram of the boiler shown in Figure 1, illustrates the action of metal when heating and cooling takes place. It will be noted that the boiler is divided into sections. After the steam is generated in the boiler to 200lbs per square inch, it is found that the boiler has expanded nearly one inch, which demonstrates that the metal expands as heating takes place and that when the boiler cools the metal contracts. Expansion and contraction of the metals thus sets up strains and stresses at various parts in the boiler, and it is important that as these strains are developed that they are developed slowly, in order that the effect of heating or cooling will be distributed throughout the boiler so that the expansion or contraction will be as uniform as possible throughout all its parts.

Temperatures of Steam and Water
Operating water injector or water pump while the locomotive is standing causes more frequent and greater inequality of temperatures throughout the boiler and the development of more destructive stresses than any other cause. To illustrate: Temperature of the steam in a locomotive boiler at 190 psi is 383 degrees Fahrenheit (195 degrees Centigrade). This is also the temperature of the water at that steam pressure. When an injector is operated, the water passing through the injector on its way to the boiler is heated from 160 to 200 degrees F (71 to 93 degrees C). It is therefore from 183 to 223 degrees F (102-124 deg C) cooler than the water within the boiler. The water from the injector being cooler is heavier than the higher temperature water in the boiler, and on entering the boiler must take a downward course and continue downward until it reaches the lowest part. The weight of a cubic foot of water as it enters the boiler from the injectors is 60 1/8 pounds, while a cubic foot of water at 190 psi steam pressure, or 383 degrees Fahrenheit, is 54 1/4 pounds, or 9% lighter than the water at 200 degrees delivered into the boiler from the injector. This difference of weight makes it clear why the cooler and heavier water seeks the lower levels and displaces the hotter, lighter water.

-A quick reference to Water boiling point (Not Steam Temp) at different pressures- The boiling point of water raises 3 degrees F per each pound of square inch pressure added. For example: at sea level, water will boil at 212 degrees F (100 deg C). +1 PSI over sea level it will raise the boiling point 3 degrees F, to 215 degrees F (1.7 deg C, to 101.7 deg C). At +5 PSI over sea level, the boiling point of water will be 227 degrees F (108.3 deg C). And so on. This is why directions for boiling noodles and baking goods at high altitudes require longer cook times, and/or more water added to the mixture.

Hostler
The hostler prepares an engine each day for service. This usually includes starting the fire, greasing and oiling all lubrication points on a steam locomotive. This was traditionally the starting point for a person coming onto the engine crew.

Additionally, hostlers service locomotives with fuel and water, sand and lubricants and assure that all required tools and flagging equipment are provided on the locomotive. The firebox is cleaned or banked as necessary upon arrival at the locomotive.

Fireman
The fireman maintains the steam pressure in a locomotive boiler. This is accomplished through careful regulation of the fire, and by regular addition of water to the boiler. Water is added through the use of an injector or a feedwater pump. In the absence of an Engineer, he will be responsible for the safety and security of the locomotive. Locomotive Firemen will not operate locomotives unless under the direct supervision of a qualified Engineer.

Engineer
The engineer is responsible for ensuring that the engine is fit for operation before and during any movement of the locomotive. The engineer is responsible for it's over the road upkeep, oiling and proper operation of the locomotive to be the most fuel-efficient and easy on the machinery. The engineer controls the operation of the locomotive but the conductor controls the movement of the train, and both are responsible for its safe operation. The steam whistle, headlight, throttle, air brakes, reverse lever, and fireman are usually under the direct control of the engineer.

Firing
Firing involves caring for the boiler and making sure there is always sufficient steam for the engineer to use. When proficient, a fireman should concentrate on an efficient operation to conserve fuel, water and extend the life of the engine. This is especially important in the 21st century as working steam engines are rare and often in precarious financial situations.

General Practices
The boiler of a locomotive is made of a steel alloy and holds thousands of gallons of water. The boiler must be treated with care at all times, as it must withstand tremendous amounts of heat, pressure and vibration. The fireman should take care to minimize the thermal stresses placed on the boiler when safety permits.

Fireless Locomotives
Fireless locomotives generally used a tank (in place of a boiler and firebox) filled with superheated water that flashed into steam as the pressure from working existing steam dropped the pressure (refer to pressure table above). Fireless locomotives were tied to operating in an area where they could obtain water heated higher than the boiling point while a fire was undesirable for safety reasons. They were used mostly in industries or a group of industries, and due to this limitation were not common for moving trains on main lines. They were replaced by explosion-proof diesel or electric locomotives. There are no references to currently operating fireless locomotives found by this author.

Wood Burning Locomotives
Wood burning locomotives fell into disfavour in the United States once expansion into the western plain states began, chiefly because of the generally lower amount of thermal energy wood locomotives offered from the fuel, and the scarcity of forests in the plains states.

Oil Burning Locomotives
Oil burning locomotives in the steam era mainly used "Bunker C" fuel oil. (Bunker C is also known as Type 6 or Number 6.) While some preserved steam locomotives of today (circa 2005) still use Bunker C, most have switched to various alternative fuels as Bunker C can be difficult to locate, transport, and store. Alternatives include Number 4 fuel oil, kerosene or diesel oil (and sometimes a mixture of diesel/kerosene), others employ used motor oil.

Regardless of the kind of oil used, most locomotives store the fuel in a tank on the tender. The oil tank is equipped with steam heat coils to heat the fuel before combustion. This is done to keep the oil viscosity such that the oil can flow freely to the combustion chamber. Bunker C fuel oil is very thick and difficult to use without pre-heating.

The fire in an oil-burning locomotive is controlled with two valves: The fuel valve, which controls the flow of oil to the atomizer, and the atomizer valve, which controls the steam to force the oil into small droplets for burning.

The fireman must control the amount of steam, oil, and air in the combustion chamber to produce the most efficient fire to boil the water. The fireman observes the colour of the smoke emitted from the smokestack to determine what the fire needs. Thick, foul-smelling black smoke indicates that the fire is not burning correctly due to too much fuel oil. The fireman can increase the draft of air using dampers and the blower or reduce the amount of oil to the burner. Blue smoke indicates too much steam is being admitted to the atomizer, and he must reduce the steam pressure. A light grey smoke indicates proper adjustment, while no smoke at all means the fire is too light and should be increased.

It is worthy to note that under some circumstances, the fireman can cause a series of hollow booms or small explosions though misadjustment of the fire. If one were to be watching with the fire doors open at such a time, one would see that the flame is being ripped away from the burner and into the flues. This also can cause heavy amounts of soot to be deposited in the flue, reducing the efficiency of the boiler. The soot can be cleaned by throwing sand into the combustion chamber, but this causes undesirable wear to the flues and any superheaters.

title: Steam Locomotive Operation


text:
Cookbook:Potato Curry (Aloo Masala)

| Indian recipes | Vegan

Potato masala (Tamil: uralai kizhangu masala) is a potato dish often served alongside roti or folded inside a dosa. The dosa and aloo masala combination, widely eaten in South India, is known as masala dosa. Coconut chutney is a common accompaniment.

Ingredients

 * 1 tablespoon oil
 * ½ teaspoon mustard seed
 * ½ tablespoon chana dhal (optional)
 * 5 curry leaves
 * 1 medium onion, chopped thin
 * 4-5 split green chillies
 * 4 large potatoes, cubed and par-boiled
 * 1 pinch of turmeric powder
 * ½ teaspoon salt

Procedure

 * 1) Heat oil.
 * 2) Sautée the mustard seed first, then add chana dhal, curry leaves, onion and chillies.
 * 3) Fry until the onions begin to change color.
 * 4) Add potatoes.
 * 5) Sprinkle the turmeric evenly and stir well to mix all the ingredients
 * 6) Cover and cook on a medium flame for about 5 minutes, stirring well, until the potatoes become very soft and somewhat mashed.
 * 7) Season with salt to taste.

title: Cookbook:Potato Curry (Aloo Masala)


text:
Guitar/Authors

This book has no authors other than the public: it is open for anyone and everybody to improve. Therefore, this is more properly a list of acknowledgements of contributors than a list of authors. Whoever we are, this is where we get to brag about our accomplishments in writing this book.

List of major contributors

 * Kef Li Eric Marcus X-Schecter is the esoteric pen name of the former primary author of (er, contributor to) this book. He is, in his own words, not entirely qualified to write this book: he is learning as much as the readers are! He plays the electric guitar in the fingerpicking style exclusively, and has written a small number of songs. He currently enjoys writing and transcribing guitar tablature for the Power Tab Archive.

 * Sluffs, added chord diagram images to the Chord Reference section

 * Daniel made various minor contributions.

 * GABaker, who has had a lot trouble tuning cheap guitars, contributed to the section on tuning.

 * NickPenguin helped redesign many sections, helped translate content from the German guitar wikibook and created the Guitar template.

 * Michael Hoffman explained classic techniques for shaping distortion tones and controlling distortion independently from listening volume, on the Tone and Volume page.

 * Meemo created and added much content to the different types of guitars section and added the paragraph on stringing guitars, which seemed important until he read the list of external tutorials...

 * Sameer Kale Did a good bit of the Chords section a while ago, started off the Rhythm section, along with adding a few bits to ther places. He doesn't know why such a page as this exists, but does not want to be left out.

 * Kiefer.Wolfowitz edited Alternate Tunings, attempting to incorporate his material from English Wikipedia (not from Guitar tunings but rather from Regular tunings, Major-thirds tuning, and Ralph Patt).

 * Others (add your name and description if you made a major contribution)

 * Various anonymous persons.

title: Guitar/Authors


text:
Cookbook:Indian Hard Tack (Baati)

| Indian Cuisine | Bread

Baati is a hard, unleavened bread cooked in desert areas of Rajasthan, Malwa, and Gujarat in North India. It is prized there for its exceptionally long life and high energy content, as well as the minimal quantity of water required in its preparation.

Ingredients

 * 1 pound (450 g) wheat flour
 * ½ teaspoon salt
 * 3 tablespoons oil
 * Water
 * 1 ½ teaspoons ghee (for serving)

Procedure

 * 1) Mix the flour and salt.
 * 2) Put about 1 cup of flour mixture in a small bowl and add a little oil, mixing it in well and breaking up any lumps.
 * 3) Add water about 1 tablespoon at a time and keep kneading with your hands. You only need 3–4 tablespoons, but you must knead the dough very hard to make it stick together in a ball. The more compact the dough, the better and denser the baati will be.
 * 4) Let the balls sit for 5 minutes.
 * 5) Flatten out each ball with first your hands and then a rolling pin until they are smooth discs 4 inches (10 cm) across and ½ inch (1.25 cm) thick.
 * 6) Cook in a dry metal pan on a low flame. Flip once when the bottom begins to harden, then pinch all over with two fingers so the dough is not too thick and has a bumpy texture on one side.
 * 7) Check the bottom until it browns in spots, then remove the baati and place it upside-down on a grate or pan with holes in it. This will blacken the top a little, especially on the tops of the pinched bumps.
 * 8) To serve, drizzle liberally with ghee and accompany with a dhal or vegetable.

Notes, tips, and variations

 * Sprinkle powdered sugar on after the ghee for a sweet snack.

title: Cookbook:Indian Hard Tack (Baati)


text:
File:Electronics Switches.PNG

Various types of switches

title: File:Electronics Switches.PNG


text:
Geometry/Polygon

A Polygon is a two-dimensional figure, meaning all of the lines in the figure are contained within one plane. They are classified by the number of angles, which is also the number of sides.

One key point to note is that a polygon must have at least three sides. Normally, three to ten sided figures are referred to by their names (below), while figures with eleven or more sides is an n-gon, where n is the number of sides. Hence a forty-sided polygon is called a 40-gon.

A polygon with three angles and sides.
 * ../Triangle/

A polygon with four angles and sides.
 * Quadrilateral

A polygon with five angles and sides.
 * Pentagon

A polygon with six angles and sides.
 * Hexagon

A polygon with seven angles and sides.
 * Heptagon

A polygon with eight angles and sides.
 * Octagon

A polygon with nine angles and sides.
 * Nonagon

A polygon with ten angles and sides.
 * Decagon

For a list of n-gon names, go to and scroll to the bottom of the page.

Polygons are also classified as convex or concave. A convex polygon has interior angles less than 180 degrees, thus all triangles are convex. If a polygon has at least one internal angle greater than 180 degrees, then it is concave. An easy way to tell if a polygon is concave is if one side can be extended and crosses the interior of the polygon. Concave polygons can be divided into several convex polygons by drawing diagonals. Regular polygons are polygons in which all sides and angles are congruent.

Matemática elementar/Geometria plana/Polígonos

title: Geometry/Polygon


text:
Spanish/Diminutives

Diminutives are suffixes that indicate small size, youth, affection or contempt. English examples are –y in doggy or -let in booklet.

The most common Spanish diminutive suffix is -ito/-ita. Gatito means small cat, particularly kitten. Esté quietecito is a nice way of telling someone to keep still. Unlike English, Spanish diminutives can be applied not only to nouns (gatito) but to adjectives (quietecito) and adverbs (rapidito).

Morphology of -ito/-ita

Diminutives are formed in the following ways
 * replacing the last vowel by -ito/ita, or adding -ito/ita to the last consonant: perro/perrito, papel/papelito. If the word ends in the diphthongs io/ia then only one i is left: despacio/despacito.
 * adding -cito/-cita: corazón/corazoncito, duende/duendecito/duendecita.
 * replacing the last vowel by -ecito/-ecita, or adding -ecito/ecita to the last consonant: quieto/quietecito, pez/pececito, tren/trencito/ trenecito .
 * adding -cecito/-cecita: pie/piecito/ piececito .

Regular formation of diminutives
 * Words ending in unstressed o/a or diphthongs io/ia replace it by -ito/-ita: gata/gatita, Julio/Julito, vacío/vaciíto, feo/feíto.
 * Words ending in unstressed e/i/u or stressed vowel add -cito/-cita:: duende/duendecito/duendecita, whisky/whiskicito, sofá/sofacito.
 * Words ending in n or r add -cito/-cita: camión/camioncito, motor/motorcito.
 * Words ending in another consonant add -ito/-ita: farol/farolito, lápiz/lapicito.
 * The diminutive is formed from the masculine and/or singular form. Patrón->patroncito/patroncita, not patrona->*patronita. agua->agüita->agüitas->paragüitas and not paraguas->*paraguasito.

(*) indicates non-existent word.

It follows that all diminutives ending in -ecito/-ecita are irregular.

Some irregular diminutives: novio/noviecito, pez/pececito, Carlos/Carlitos, mano/manito/ manita  (manita is used in México and Spain), caliente/calentito.

Defective words

Many words lack a diminutive, such as edad/*edadita, bondad/*bondadita, ciudad/*ciudadita (but maldad/maldadita), útil/*utilito (but fácil/facilito), lunes/*lunesito, …, viernes/*viernesito (but sábado/sabadito, domingo/dominguito), espacio/*espacito (but despacio/despacito), lenguaje/*lenguajito/*lenguajecito, apetito/*apetitito, termita/*termitita.

On the other hand there are diminutives that are never used, such as autentiquito, peliagudito, emigrantito, cabellerita.

Diminutives of diminutives

chico/chiquito/chiquitito; poco/poquito/poquitito.

-ico/-ica

In some countries, particularly Colombia and Cuba the endings tito/tita are replaced by tico/tica: zapato/zapatico (preferred to zapatito). Other examples: pato/patico, rato/ratico.

Other diminutive suffixes
 * -illo/-illa: venado/venadillo, mujer/mujercilla. (Affectionate, pejorative.)
 * -ico/-ica: perrico/perrica
 * -ucho/-ucha:casa/ casucha. (Pejorative.)
 * -ín/ina: pequeñín/pequeñina. (Affectionate.)
 * -uelo/uela: ladrón/ ladronzuelo/ladronzuela. (Affectionate.)
 * -ete/-eta: viejo/vejete. (Pejorative.)
 * -uco/-uca: perro/perruco. (Pejorative. Used mainly in Cantabria.)

Words originated from diminutives

Some diminutives have evolved to be new words. For example, a knob is a small pear (perilla). These words may have their own diminutives (perillita).

 * pera: pear; perilla: knob
 * mano: hand; manecilla: clock hand
 * chico: boy; chiquillo: lad
 * bolso: bag; bolsillo: pocket
 * balanza: scale, balance; balancín: seesaw

/Grammar

Los diminutivos

title: Spanish/Diminutives


text:
Spanish/Formation of the feminine in nouns

< ../Grammar Index

Natural gender nouns may belong to the following categories
 * Not inflected (de género común). One form is used for both genders, but the adjectives must agree with the natural gender. El artista chileno/la artista chilena; el testigo mentiroso/la testigo mentirosa.
 * Inflected. The feminine is formed from the masculine, normally adding a or replacing the last vowel by a: el niño/la niña.
 * Both inflected and non inflected: el presidente/la presidente/la presidenta. Some people have strong views as to whether the inflected or the not inflected form is sexist.

Regular inflection of the feminine.

If a word ends in a vowel, the feminine replaces that vowel by a: el cliente, la clienta. If a word ends in a consonant, the feminine adds an a: el profesor, la profesora.

When nouns are inflected

Nouns are inflected or not depending on the ending of the masculine-gender form.
 * o: inflected. El niño/la niña. Exceptions: el/la testigo, el ingeniero/la ingeniero/la ingeniera.
 * a: not inflected. El/la artista. El modisto is very anomalous. Probably the first male dressmakers invented that word so they wouldn't be confused with women. On the other hand, a male cheerleader is un porrista, not un *porristo. Another exception is el poeta/la poeta/la poetisa. Feminists prefer la poeta but la poetisa is very common.
 * e (except ante, ente): not inflected. El detective/la detective. There are many exceptions: el alcalde/la alcaldesa, el cliente/la cliente/la clienta.
 * ante: not inflected. El/la ayudante. However words in this category may have an old inflected form, which is not used anymore: la ayudanta, la estudianta.
 * ente. Prescriptive grammarians say that this words should not be inflected: el/la adolescente. However, there are many exceptions included in dictionaries: el presidente/la presidente/la presidenta, el gerente/la gerente/la gerenta.
 * Stressed vowel: not inflected. El/la gurú.
 * Consonant: inflected. El profesor/la profesora, el bailarín/la bailarina. Exceptions: el concejal/la concejal/la concejala, el juez/la juez/la jueza, el/la joven.

/Grammar


text:
Talk:Electronics/Magnetic Field

Constructive critism (I hope)
''A electron moving through space creates a magnetic field that spins around the charge according to the right hand rule. The magnetic field is created by the spin of the moving electron. If the wire is bent in the shape of a ring, when its current is flowing it magnetic field will resemble water flowing through a hose. In order for the ring to have a magnetic field, its magnetic field must first displace the magnetic field that is already there. This is why inductors initially resist any changes in current when a voltage is applied. Over time the magnetic field changes to reflect the magnetic field of the ring and current starts flowing''

This paragraph needs a lot of work. The field is created by the moving charge of the electron not it's spin (Well there is a tiny field due to the spin, but i don't think you need to wory about it). if you bend a wire into a ring you gat a torus shaped field, I'm not sure what you mean by "resemble water flowing through a hose". Magnetic fields don't need to displace each other, they just add together.Inductors resist changes in current because the changing current creates a changing magntic field wich in turn creates a back EMF. Apart from these problems the paragraph looks fine ;-) Theresa knott

no it is the quantum spin of the particles that make the field because of gravity waves. User:67.71.37.148

Completely false. Any interaction between quantum spin and gravity is negligible above the Planck scale -- with gravity waves, more so. Magnetic fields are correctly predicted by Maxwell's equations, which are purely classical. If quantum spin were a necessary part of the explanation for magnetism, Maxwell would have not been able to explain it. Carandol 05:39, 28 Apr 2004 (UTC)

This chapter is not pitched at a consistent level. Some of the material -paramagnetism, diamagnetism, etc- should go to the expanded edition, probably in the introductory basic principles chapter

I agree. That's because I am still reworking the book to figure out what I should include where. Hence the warnings all over the place. When I am done the book will be pitched at a more consistent level and some things will go to the expanded edition and others will vanish. Wanderer

But maxwells equations are wrong becaus quantum theory is better

 * Maxwell's equations aren't wrong, in the sense that 1=2 is wrong.

Rather, they are solutions of QED in the classical limit, which means we can with care use them as a guideline to the nature of QED.

 * That magnetic fields in the classical limit are accurately described by Maxwell proves that quantum spin doesn't affect the classical behaviour of magnetic fields, which is what this book is concerned with, and hence that an hypothetical spin-0 charged particle will produce a magnetic field when in motion, as can be confirmed by QED. If it didn't Lorentz invariance would be broken, which would be a real mess. Carandol

Are you saying that quantum spin isn't responsible for gravity and magnetism??

are u saying that quantum spin isnt responsibal for gravity and magnatism??

 * I am. We don't have a working theory of quantum gravity yet, which makes any claim quantum spin is responsible highly tentative, at best. We can though safely say that any common cause of gravity and magnetism is only going to be relevant at the Planck length, and uttterly irrelevant to this book. Carandol

From what I can tell spin has to do with neutralizing the effects of the magnetic moments of electrons. For a given orbital there are two electrons in it with opposite spins and magnetic moments. If both electrons are there then the moments cancel and if one electron is there than it has a moment and hence a magnetic field.

 * Electrons do have a magnetic field proportional to their spin, but that is not the sole cause of magnetism. Anyone moving relative to a charge will see a magnetic field, even if the charge has neither spin nor magnetic moment.Carandol

''Spin has to do with exclusion. Electrons come in pairs due to the Pauli exclusion principle, and if only one electron exists then it is affected by magnetism and has a magnetic dipole moment. If both electrons exist the effects cancel.''

The previous paragraph, removed from this chapter, is incorrect.
 * Spin has to do with behaviour under rotation. Exclusion is an indirect conseqence.

 * Electron states come in pairs because of both the exclusion principle and electrons being spin 1/2

 * Paired electrons are still affected by magenetism. All effects do not cancel completely, and the Lorentz force wouldn't cancel anyway. That force is eVxB, proportional to electron charge, not electron spin

I'm not sure where people are getting this misconception from, but there's no doubt it's wrong

Self inductance
This is what happens when you turn on DC in an inductor.

 * 1) The voltage increases very rapidly ( in a matter of ms) as you turn on the switch.
 * 2) This causes a very rapidly changing current to flow.
 * 3) This current has an associated magnetic fiels which also changes very rapidly.
 * 4) The rapildly changing field induced an e.m.f. (Faraday’s Law) that tends to oppose the increase of current (Lenz’s  Law).However it cannot stop it increasing cdompleatly, just slow it down.
 * 5) Once the current reaches it's maximum (determined by the voltage ad the ordinary resistance of the wire) it ceases to change, the magnetic field becomes constant and the back EMF goes to zero.

All remains calm until you try to turn the thing off

 * 1) The field collapses very suddenly
 * 2) The changing magnetic field induces a back EMF which tries to oppose the collapse of the field (Lenz’s  Law again)

For large coils the EMF can be huge, sparks can fly!

Isn't really an issue for DC though except when turning on and off. But for AC the current is varying all the time, so things never settle into a stready state. The higher the frequency, thwe faster things are changing and so the greater the inductance. I hope all this is reasonably clear now. Theresa knott 13:49, 30 Apr 2004 (UTC)

 * Surely the inductance (L) doesn't depend on frequency? Norman Weiner

 * Not for AC purposes, but the impedence due to inductance does (ωL), which -- talking loosely -- comes to the same thing.

 * At sufficiently high frequencies, capacitators acquire non-negligible inductance and vice versa. Inductance starts changing with frequency, just below the point where it stops being a useful concept, and you have to resort to full EM. For the purposes of this chapter, and of circuit theory generally, we don't need to consider gigahertz frequencies, so we can say inductance and capacitance are constant.Carandol
 * Sorry about talking about inductance when i should have said impedence. I don't know why I'm so sloppy all the time, it drives me round the bend it really does. Fortunately there is always some noce person around to correct me. Theresa knott 08:32, 5 May 2004 (UTC)

 * The simple relation

$$   L\frac{di}{dt} + iR + \int \frac{i}{C} dt = V(t) $$ should handle everything just fine, where L and C depend on only the geometry. Norman Weiner

So what do people know about toroids? Wanderer

title: Talk:Electronics/Magnetic Field


text:
User:Miillerje

===Adress of Miillerje,jem

Jürgen-Erich Müller miillerje@web.de Jägersfreuder Straße 55-1 66113 Saarbrücken Germany/Deutschland

--Miillerje 12:10, 27 Apr 2004 (UTC)

title: User:Miillerje


text: File:Torsion twist Solid Mechanics.png

title: File:Torsion twist Solid Mechanics.png


text:
XML - Managing Data Exchange/SyncML/Answers

SyncML Exercises
1) Visit the Open Mobile Alliance Website, download the pdf of the SyncML v. 1.1 protocol and review it. Reading this reference is a valuable exercise in learning.

2) Answer these questions: a. What is WBXML and why is it used? b. How do you foresee SyncML being used in the future? c. Name a problematic situation whereby SyncML is the best 'tool' for the job.

Answers
2a. WBXML is a form of XML that abbreviates XML tags by using a binary representation of the tag. Tags need to be abbreviated in order to work with mobile devices that have limited bandwidth and limited memory.

2b. SyncML could be used in any application in which synchronization is needed such as calendars, address books, phone books, inventory tracking, etc.

2c. An auto mechanic needs to view the work history on cars in the shop. A PDA can be used to view work logs, active work orders, and to log work done towards a current work order.


text:
User talk:203.162.3.77

Please dont create blank pages with junk data. The Sandbox is for testing. KirbyMeister 21:17, 27 Apr 2004 (UTC)

title: User talk:203.162.3.77


text:
User talk:Get-back-world-respect~enwikibooks

Vocabulary Project
That sounds like a great idea .. I have not been able to check it out yet b/c I use only my Mac at home and administrator-locked-down computers at the library etc. As far as I know at the moment the Wiki software is limited in its capability to do some things but with time more things should be possible. I'd work on an open source project apart from Wikibooks if it would contribute to the advancement of free language learning .. --Karl Wick 21:43, 27 Apr 2004 (UTC)
 * Great, thank you very much for your interest. As I have already done some work on catalan here it will be easy to add to the program as well. Maybe the project could once be rewritten in Java and connected to something like wiki. I hope you will be able to try the program soon. Get-back-world-respect 23:05, 27 Apr 2004 (UTC)

About Portuguese textbook
Now, there is also a portuguese project so I moved our conversation to it... read my answer here please.

João Jerónimo 21:23, 29 Jul 2004 (UTC)

Umzug nach de.wikibooks
Hallo. Ich hab dir hier schon geantwortet --> de:Wikibooks Diskussion:Administratoren. Klick einfach mal vorbei, das spart mir das doppelte schreiben ;) Gruss --Moolsan 12:54, 2 Aug 2004 (UTC)

Your account will be renamed
Hello,

The developer team at Wikimedia is making some changes to how accounts work, as part of our on-going efforts to provide new and better tools for our users like cross-wiki notifications. These changes will mean you have the same account name everywhere. This will let us give you new features that will help you edit and discuss better, and allow more flexible user permissions for tools. One of the side-effects of this is that user accounts will now have to be unique across all 900 Wikimedia wikis. See the announcement for more information.

Unfortunately, your account clashes with another account also called Get-back-world-respect. To make sure that both of you can use all Wikimedia projects in future, we have reserved the name Get-back-world-respect~enwikibooks that only you will have. If you like it, you don't have to do anything. If you do not like it, you can pick out a different name.

Your account will still work as before, and you will be credited for all your edits made so far, but you will have to use the new account name when you log in.

Sorry for the inconvenience.

Yours, Keegan Peterzell Community Liaison, Wikimedia Foundation 23:14, 17 March 2015 (UTC)

Renamed
 This account has been renamed as part of single-user login finalisation. If you own this account you can |log in using your previous username and password for more information. If you do not like this account's new name, you can choose your own using this form after logging in: . -- Keegan (WMF) (talk) 05:00, 19 April 2015 (UTC)


text:
Electronics/Integrated Circuit

Overview
An integrated circuit is a collection of very small components etched onto a silicon wafer. The wafer is then cut out and placed into a package usually made out of plastic or ceramic and connected to leads with small wires.

The integrated circuit was independently invented in 1959 by both Jack Kilby of Texas Instruments and Robert Noyce of Fairchild Semiconductor. (about.com) Their invention led to the modern integrated circuit, devices with millions of transistors and incomprehensible computing power.

Some popular ICs
 * 1) 747 Operational Amplifier
 * 2) 555 Timer IC
 * 3) PIC -Peripheral Interface Controller,
 * 4) 7400 series ICs.

title: Electronics/Integrated Circuit


text:
XML - Managing Data Exchange/SVG

What is SVG?
Based on XML, Scalable Vector Graphics (SVG) is an open-standard vector graphics file format and Web development language created by the W3C, and has been designed to be compatible with other W3C standards such as DOM, CSS, XML, XSLT, XSL, SMIL, HTML, and XHTML. SVG enables the creation of dynamically generated, high-quality graphics from real-time data. SVG allows you to design high-resolution graphics that can include elements such as gradients, embedded fonts, transparency, animation, and filter effects.

SVG files are different from raster or bitmap formats, such as GIF and JPEG that have to include every pixel needed to display a graphic. Because of this, GIF and JPEG files tend to be bulky, limited to a single resolution, and consume large amounts of bandwidth. SVG files are significantly smaller than their raster counterparts. Additionally, the use of vectors means SVG graphics retain their resolution at any zoom level. SVG allows you to scale your graphics, use any font, and print your designs, all without compromising resolution. SVG is XML-based and written in plain text, meaning SVG code can be edited with any text editor. Additionally, SVG offers important advantages over bitmap or raster formats such as:

 * Zooming: Users can magnify their view of an image without negatively affecting the resolution.
 * Text stays text: Text remains editable and searchable. Additionally, any font may be used.
 * Small file size: SVG files are typically smaller than other Web-graphic formats and can be downloaded more quickly.
 * Display independence: SVG images always appear crisp on your screen, no matter the resolution. You will never experience “pixelated” images.
 * Superior color control: SVG offers a palette of 16 million colors.
 * Interactivity and intelligence: Since SVG is XML-based, it offers dynamic interactivity that can respond to user actions.

Data-driven graphics
Because it is written in XML, SVG content can be linked to back-end business processes, databases, and other sources of information. SVG documents use existing standards such as Cascading Stylesheets (CSS) and Extensible Stylesheet Language (XSL), enabling graphics to be easily customized. This results in:

 * Reduced maintenance costs: Because SVG allows image attributes to be changed dynamically, it eliminates the need for numerous image files. SVG allows you to specify rollover states and behaviors via scriptable attributes. Complex navigation buttons, for example, can be created using only one SVG file where normally this would require multiple raster files.
 * Reduced development time: SVG separates the three elements of traditional Web workflow – content (data), presentation (graphics), and application logic (scripting). With raster files, entire graphics must be completely recreated if changes are made to content.
 * Scalable server solutions: Both the client and the server can render SVG graphics. Because the “client” can be utilized to render the graphic, SVG can reduce server loads. Client-side rendering can enhance the user-experience by allowing users to “zoom in” on an SVG graphic. Additionally, the server can be used to render the graphic if the client has limited processing resources, such as a PDA or cell phone. Either way the file is rendered, the source content is the same.
 * Easily updated: SVG separates design from content, allowing easy updates to either.

Interactive graphics
SVG allows you to create Web-based applications, tools, or user interfaces. Additionally, you can incorporate scripting and programming languages such as JavaScript, Java, and Visual Basic. Any SVG element can be used to modify or control any other SVG or HTML element. Because SVG is text based, the text inside graphics can be translated for other languages quickly, which simplifies localization efforts. Additionally, if there is a connection to a database, SVG allows drill-down functionality for charts and graphs. This results in:

 * Improved end user experience: Users can input their own data, modify data, or even generate new graphics from two or more data sources.
 * In SVG, text is text: As mentioned previously, SVG treats text as text. This makes SVG-based graphics searchable by search engines.
 * SVG can create SVG: Enterprise applications such as an online help feature can be developed.

Personalized graphics
SVG can be targeted to people to overcome issues of culture, accessibility, and aesthetics, and can be customized for many audiences and demographic groups. SVG can also be dynamically generated using information gathered from databases or user interaction. The overall goal is to have one source file, which transforms seamlessly in a wide variety of situations. This results in:

 * One source, customized appearances: SVG makes it possible to change color and other properties based on aesthetics, culture, and accessibility issues. SVG can use stylesheets to customize its appearance for different situations.
 * Internationalization, localization: SVG supports Unicode characters in order to effectively display text in many languages and fashions – vertically, horizontally, and bi-directionally.
 * Utilizing existing standards: SVG works seamlessly with stylesheets in order to control presentation. Cascading Stylesheets (CSS) can be used for typical font characteristics as well as for other SVG graphic elements. For example, you can control the stroke color, fill color, and fill opacity of an element from an external stylesheet.

SVG vs. Macromedia Flash
Macromedia has been the dominant force behind vector-based graphics on the web for the last 10 years. It is apparent, however, that SVG provides alternatives to many of the functions of Flash and incorporates many others. The creation of vector-based graphical elements is the base structure of both SVG and Flash. Much like Flash, SVG also includes the ability to create time-based animations for each element and allows scripting of elements via DOM, JavaScript, or any other scripting language that the SVG viewer supports. Many basic elements are available to the developer, including elements for creating circles, rectangles, lines, ellipses, polygons, and text. Much like HTML, elements are styled with Cascading Stylesheets (CSS2) using a style element or directly on a particular graphical element via the style attribute. Styling properties may also be specified with presentation attributes. For each CSS property applicable to an element, an XML attribute specifying the same styling property can also be used. There is an on going debate about whether Flash or SVG is better for web development There are advantages to both, it usually comes down to the situation.

Flash Advantages:

 * Use Flash if you want to make a Flash-like website – replicating the same effect using SVG is hard.
 * Use Flash if you want complex animations, or complex games (SVG's built in SMIL animation engine is extremely processor intensive).
 * Use Flash if your users will not be so computer literate, for instance a children's site, or a site appealing to a wide audience.
 * Use Flash if sound is important – SVG/SMIL supports sound, but it's pretty basic.
 * Use Flash if you prefer WYSIWYG to script.

SVG advantages:

 * It's fully scriptable, using a DOM1 interface and JavaScript. That means you can start with an empty SVG image, and build it up using JavaScript.
 * SVG can easily be created by ASP, PHP, Perl, etc and extracted from a database.
 * It has a built-in ECMA-script (JavaScript) engine, so you don't have to code per browser, and you don't need to learn Flash's action-script.
 * SVG is XML, meaning it can be read by anything that can read XML . Flash can use XML, but needs to convert it before use.
 * This also allows SVG to be transformed through an XSLT stylesheet/parser.
 * SVG supports standard CSS1 stylesheets.
 * Text used in SVG remains selectable and searchable.
 * You only need a text editor to create SVG, as opposed to buying Flash.
 * SVG is an web real standard (not just “de facto”), supported by various different programs, some of which are free software (and thus available for most free computer operating systems).

Why use SVG?
SVG is emerging through the efforts of the W3C and its members. It is open source and as such does not require the use of proprietary languages and development tools as does Macromedia Flash. Because it is XML-based, it looks familiar to developers and allows them to use existing skills. SVG is text based and can be learned by leveraging the work (or code) of others, which significantly reduces the overall learning curve. Additionally, because SVG can incorporate JavaScript, DOM, and other technologies, developers familiar with these languages can create graphics in much the same way. SVG is also highly compatible because it works with HTML, GIF, JPEG, PNG, SMIL, ASP, JSP, and JavaScript. Finally, graphics created in SVG are scalable and do not result in loss of quality across platforms and devices. SVG can therefore be used for the Web, in print, as well as on portable devices while retaining full quality.

The Adobe SVG Viewer
The Adobe SVG Viewer is available as a downloadable plug–in that allows SVG to be viewed on Windows, Linux and Mac operating systems in all major browsers including Internet Explorer (versions 4.x, 5.x, 6.x), Netscape (versions 4.x, 6.x), and Opera in Internet Explorer and Netscape.

The Adobe SVG Viewer is the most widely deployed SVG Viewer and it supports almost all of the SVG Specification including support for the SVG DOM, animation and scripting.

Features of the Adobe SVG Viewer Click the right mouse button (CTRL-Key + mouse click in Mac) over your SVG image to get a context menu. The context menu gives you several options, which can all be accessed utilizing the menu itself or “hotkeys”:

Table 1: Features of the Adobe SVG Viewer

SMIL
The Synchronized Multimedia Integration Language (SMIL, pronounced “smile”) enables simple authoring of interactive audiovisual presentations. SMIL is typically used for “rich media”/multimedia presentations which integrate streaming audio and video with images, text or any other media type. SMIL is an easy-to-learn HTML-like language, and many SMIL presentations are written using a simple text-editor. SMIL can be used with XML to enable video and sound when viewing a SVG.

Attention Microsoft Windows Mozilla users!
The Seamonkey and Mozilla Firefox browsers have SVG support enabled natively. If desired, the Adobe SVG Viewer plugin will work with Mozilla Firefox, or the Seamonkey browser. Webkit based browsers also have some SVG support natively.

Native SVG (Firefox)
The Mozilla SVG implementation is a native SVG implementation. This is as opposed to plug-in SVG viewers such as the Adobe viewer (which is currently the most popular SVG viewer).

Some of the implications of this are:

 * Mozilla can handle documents that contain SVG, MathML, XHTML, XUL, etc. all mixed together in the same 'compound' document. This is being made possible by using XML namespaces.
 * Mozilla is 'aware' of the SVG content. It can be accessed through the SVG DOM (which is compatible with the XML DOM) and manipulated by Mozilla's script engine.
 * Other Mozilla technologies can be used with SVG. XBL coupled with SVG is a particular interesting combination. It can be used to create graphical widgets (I wonder when we'll see the first SVG-based chrome!) or extend Mozilla to recognize other specialized languages such as e.g. CML (chemical markup language). There are samples of these kinds of more advanced usage patterns on http://croczilla.com/svg/.

rsvg-view
rsvg-view program is a part of the librsvg package. It may be used as the default svg opener. It can resize svgs and export them to png which is often the only thing one needs to do with an svg file.

Example : rsvg-view-3 name.svg

How to do it
One can use 4 groups of programs :

 * general text editors, like Notepad ++ (with XML syntax highlithning)
 * specialized svg editors
 * programs that can exports svg (like gnuplot, Maxima CAS)
 * own programs to create svg files directly thru concatenate of strings

SVG editors
As you can see from the previous example of a path definition, SVG files are written in an extremely abbreviated format to help minimize file size. However, they can be very difficult to write depending on the complexity of your image. There are SVG editor tools that can help make this task easier. Some of these tools are:

Table 3: SVG Editors

C
Here is example in C :

Haskell
Haskel code : lavaurs' algorithm in Haskell with SVG output by Claude Heiland-Allen

Matlab
Based on code by Guillaume JACQUENOT :

Lisp
One can use cl-svg library or your own procedure.

Maxima
BeginSVG(file_name,cm_width,cm_height,i_width,i_height):= block( destination : openw (file_name), printf(destination, "~%"), printf(destination,"~%", cm_width,cm_height,i_width,i_height), return(destination) ); CircleSVG(dest,center_x,center_y,_radius):=printf(dest,"~%", center_x,center_y,_radius); CloseSVG(destination):= ( printf(destination," ~%"), close (destination) ); /* */ cmWidth:10; cmHeight:10; iWidth:800; iHeight:600; radius:200; centerX:400; centerY:300; f_name:"b.svg"; /* --*/ f:BeginSVG(f_name,cmWidth,cmHeight,iWidth,iHeight); CircleSVG(f,centerX,centerY,radius); CloseSVG(f);

Python
One can use a prepared library, or wrap the svg code in single quotes. def svg_page: """ Function to write test code for a stub svg code page The raw code that uses double-quotes is captured by single quotes To become a python text string""" page='\n\n   \n \n' return page

def write_page(page, title): """ Function to write the svg code to disk """ filename = title + ".svg" f = open(filename, "w") f.write(page)

write_page (svg_page, "My svgstub")

Getting started
Because it is based on XML, SVG follows standard XML conventions. Every SVG file is contained within an tag as its parent element. SVG can be embedded within a parent document or used independently. For example, the following shows an independent SVG document:

Exhibit 1: Creating a SVG

The first line declares that the code that follows is XML. Note the “standalone” attribute. This denotes that this particular file does not contain enough processing instructions to function alone. In order to attain the required functionality it needs to display a particular image, the SVG file must reference an external document.

The second line provides a reference to the Document Type Definition, or DTD. As mentioned in Chapter 7: XML Schemas, the DTD is an alternate way to define the data contained within an XML instanced document. Developers familiar with HTML will notice the DTD declaration is similar to that of an HTML document, but it is specific for SVG. For more information about DTDs, visit: http://www.w3schools.com/dtd/dtd_intro.asp

Hint: Many IDEs (ex. NetBeans) do not have SVG “templates” built in to the tool. Therefore, it may be easier to use a simple text editor when creating SVG documents. Once you have an SVG Viewer installed, you should then be able to open and view your SVG document with any browser. When creating your SVG documents, remember to:

 * Declare your document as an XML file
 * Make sure your SVG document elements are between element tags, including the SVG namespace declaration.
 * Save your file with a .svg file extension.
 * It is not necessary do include a DOCTYPE statement, which includes information to identify this as an SVG document (since SVG 1.2 there is also not more such).

The element on the second line defines the SVG document, and can specify, among other things, the user coordinate system, and various CSS unit specifiers. Just like with XHTML documents, the document element must include a namespace declaration to declare the element as being a member of the relevant namespace (in this case, the SVG namespace). Within the element, there can be three types of drawing elements: text, shapes, and paths.

Text
The following is an example of the text element: Exhibit 2: Using text with SVG

The element specifies: 1) that white space within text elements will be retained, 2) the width and height of the SVG document — particularly important for specifying print output size. In this example, the text is positioned in a 5.5 inches wide by .5 inches tall image area. The “y” attribute on line 5 declares that the text element’s baseline is 15 pixels down from the top of the SVG document. An omitted “x” attribute on a text element implies an x coordinate of 0.

Because SVG documents use a W3C DTD, you can use the W3C Validator to validate your document. Notice that the “style” attribute is used to describe the presentation of the text element. The text could equivalently have been given a red color by use of a presentation attribute fill="red".

Shapes
SVG contains the following basic shape elements:

 * Rectangles
 * Circles
 * Ellipses
 * Lines
 * Polylines
 * Polygons

These basic shapes, along with “paths” which are covered later in the chapter, constitute the graphic shapes of SVG. In this introduction to SVG, we will only cover some of the shapes here.

Rectangles
The element defines a rectangle which is axis-aligned with the current user coordinate system, the coordinate system that is currently active and which is used to define how coordinates and lengths are located and computed on the current canvas. Rounded rectangles can be created by setting values for the rx and ry attributes.

The following example produces a blue rectangle with its top left corner aligning with the top left corner of the image area. This uses the default value of "0" for the x and y attributes.

Exhibit 3: Creating a rectangle in SVG

It will produce this result:

Circles
A circle element requires three attributes: cx, cy, and r. The 'cx’ and 'cy’ values specify the location of the center of the circle while the 'r’ value specifies the radius. If the 'cx’ and 'cy’ attributes are not specified then the circle's center point is assumed to be (0, 0). If the 'r’ attribute is set to zero then the circle will not appear. Unlike 'cx’ and 'cy’, the 'r’ attribute is not optional and must be specified. In addition the keyword stroke creates an outline of the image. Both the width and the color can be changed.

Exhibit 4: Creating a circle in SVG

It will produce this result:

Polygons
A polygon is any geometric shape consisting of three or more sides. The 'points' attributes describes the (x,y) coordinates that specify the corners points of the polygon. For this specific example, there are three points which indicate that a triangle will be produced.

Exhibit 5: Creating a Polygon in SVG

It will produce this result:

Paths
Paths are used to draw your own shapes in SVG, and are described using the following data attributes:

Table 2: SVG Paths

The following example produces the shape of a triangle. The “M” indicates a “moveto” to set the first point. The “L” indicates “lineto” to draw a line from “M” to the “L” coordinates. The “Z” indicates a “closepath”, which draws a line from the last set of L coordinates back to the M starting point.

Exhibit 6: Creating paths in SVG

It produces this result:

Validation
After creating file check its code with the W3C Validatior

Optimisation
Even code without errors can be improved. For example grouping elements makes code shorter.

Including SVG in HTML
There are three methods to include SVG in an HTML document. Basically, the SVG document is first created as a stand-alone file. It is then referenced in the HTML document using one of the following commands:

Table 4: Including SVG in HTML

Embed
The syntax is as follows: Exhibit 7: Embedding SVG into HTML using keyword embed

An additional attribute, “pluginspage”, can be set to the URL where the plug-in can be downloaded:

Object
The syntax is as follows and conforms to the HTML 4 Strict specification: Exhibit 8: Embedding SVG into HTML using keyword object

Between the opening and the closing <object> tags, information for browsers that do not support objects can be added:

Unfortunately some browsers such as Netscape Navigator 4 do not show this alternative content if the type attribute has been set to something other than text/html.

Iframe
The syntax is as follows and conforms to the HTML 4 Transitional specification: Exhibit 9: Embedding SVG into HTML using keyword iframe

Between the opening and the closing <iframe> tags, information for browsers that do not support iframes can be added:

Creating 3D SVG images
Section by Charles Gunti, UGA Master of Internet Technology Program, Class of 2007

Sometime we may want to view an SVG image in three dimensions. For this we will need to change the viewpoint of the graphic. So far we have created two dimensional graphics, such as circles and squares. Those exist on a simple x, y plane. If we want to look at something in three dimensions we have to add the z coordinate plane. The z plane is already there, but we are looking at it straight on, so if data is changed on z it doesn't look any different to the viewer. We need to add another parameter to the data file, the z parameter.

Once we have the data we will use XSLT to create the SVG file. The SVG stylesheet is the same as other stylesheets, but we need to ensure an SVG file is created during the transformation. We call the SVG namespace with this line in the declarations:

xmlns="http://www.w3.org/2000/svg

Another change we should make from previous examples is to change the origin of (0, 0). We change the origin in this example because some of our data is negative. The default origin is at the upper left corner of the SVG graphic. Negative values are not displayed because, unlike traditional coordinate planes, negative values are above positive values. To move the origin we simply add a line of code to the stylesheet. Before going over that line, let's look at The g element. The container element, g, is used for grouping related graphics elements. Here, we'll use g to group together our graphical elements and then we can apply the transform. Here is how we declare g and change the origin to a point 300 pixels to the right and 300 pixels down:

graphical elements

SVG transformations are pretty simple, until it comes to changing the viewpoint. SVG has features such as rotating and skewing the image in two dimensions, but it cannot rotate the coordinate system in three dimensions. For that we will need to use some math and a little Java. When rotating in three dimensions two rotations need to be made, one around the y axis, and another around the x axis. The first rotation will be around the y axis and the formula will look like this:

$$z' = z \cdot \cos(-Az) - x \cdot \sin(-Az)$$ Az is the angle the z axis will be rotated

$$x' = z \cdot \sin(-Az) - x \cdot \cos(-Az)$$

$$y' = y \,$$ y will not change because we are rotating around the y axis

The second rotation will be around the x axis. Keep in mind that one rotation has already been made, so instead of using x, y, and z values we need to use x', y', and z' (x-prime, y-prime and z-prime) found in the last rotation. The formula will look like this:

z" = z'*cos(Ay) – y'*sin(Ay) Ay is the angle of rotation on the y axis

y" = z'*sin(Ay) + y'*cos(Ay)

x" = x' Remember we are rotating around the x axis, so this does not change

Remember from trig class the old acronym SOH CAH TOA? This means

Sin = Opposite/Hypotenuse Cos = Adjacent/Hypotenuse Tan = Opposite/Adjacent

And we use those functions to find the angles needed for our rotations. Based of the previous two formulas we can make the following statements about Az and Ay:

tan(Az) = Xv/Zv

sin(Ay) = Yv/sqrt(Xv2 + Yv2 + Zv2)

With so many steps to take to make the rotation we should drop all of this information into a Java class, then call the class in the stylesheet. The Java class should have methods for doing all of the calculations for determining where the new data points will go once the rotation is made. Creating that java class is beyond the scope of this section, but for this example I'll call it ViewCalc.class.

Now that we can rotate the image, we need to integrate that capability into the transformation. We will use parameters to pass viewpoints into the stylesheet during the transformation. The default viewpoint will be (0, 0, 0) and is specified on the stylesheet like so:

Exhibit 10: 3D images with SVG

Java now needs to be added to the stylesheet so the processor will know what methods to call. Two lines are added to the namespace declarations:

Notice the exclude-result-prefixes="java" line. That line is added so things in the stylesheet with the java: prefix will be processed, not output. Be sure to have the ViewCalc class in the CLASSPATH or the transformation will not run.

The final step is to call the methods in the ViewCalc class from the stylesheet. For example:

Finally we pass new parameters and run the XSL transformation to create the SVG file with a different viewpoint.

Demos
The following table provides a sampling of SVG documents that demonstrate varying degrees of functionality and complexity:

Table 5: SVG Demos

The Basic demo demonstrates the effects of zooming, panning, and anti-aliasing (high quality).

The Fills demo demonstrates the effects of colors and transparency. The black circle is drag-able. Simply click and drag the circle within the square to see the changes.

The HTML, JS, Java Servlet demo describes an interactive, database-driven, seating diagram, where chairs represent available seats for a performance. If the user moves the mouse pointer over a seat, it changes color, and the seat detail (section, row, and seat number) and pricing are displayed. On the client side of the application, SVG renders the seating diagram and works with JavaScript to provide user interactivity. The SVG application is integrated with a server-side database, which maintains ticket and event availability information and processes ticket purchases. The Java Servlet handles form submission and updates the database with seat purchases.

The HTML, JS, DOM demo shows how SVG manages and displays data, generating SVG code from data on the fly. Although this kind of application can be written in a variety of different ways, SVG provides client-side processing to maintain and display the data, reducing the load on the server as well as overall latency. Using the DOM, developers can build documents, navigate their structure, and add, modify, or delete elements and content.

The PHP, MySQL demo shows the use of database driven SVG generation utilizing MySQL. It randomly generates a map of a European country. Each time you reload the page you will see a different country.

The HTML5, ANGULARJS, PostGreSQL demo shows how to create a SVG, then integrate variable data into the SVG & spool a variable data pdf.

Exercises

 * 1) Download and install the Adobe SVG Viewer. Once the Adobe SVG Viewer has been installed, go to this page to test that the install was successful: http://www.adobe.com/svg/viewer/install/svgtest.html
 * 2) * If your primary browser is Internet Explorer, you can download version 3.0 which is fully supported by Adobe and can be accessed at http://www.adobe.com/svg/viewer/install/main.html
 * 3) * If your primary browser is Mozilla-based, you must download the 6.0 version at http://download.adobe.com/pub/adobe/magic/svgviewer/win/6.x/6.0x38363/en/SVGView.exe
 * 4) ** After it has been installed you must copy the NPSVG6.dll and NPSVG6.zip files to your browser's plug-ins folder. These files are normally located in C:\Program Files\Common Files\Adobe\SVG Viewer 6.0\Plugins\.
 * 5) Create your own stand-alone SVG file to produce an image containing a circle within a rectangle.
 * 6) Create your own stand-alone SVG file. Use 3 circles and 1 path element to create a yellow smiley face with black eyes and a black mouth. Use a text element so that the message “Have a nice day!” appears below the smiley face.
 * 7) * Hint: Because elements can be difficult to write, here is a sample path you can utilize:
 * 8) *

title: XML - Managing Data Exchange/SVG


text:
Cookbook:Garlic Croutons I

| Bread | French cuisine | Salads | Soups

Garlic croutons can be purchased but are much better when made from old bread. They are a crucial ingredient of Caesar Salad.

Ingredients

 * 4 slices day-old French bread, cubed
 * 2 cloves garlic, minced
 * 4 tablespoons olive oil
 * Salt to taste

Procedure

 * 1) Pour the olive oil into a shallow bowl over the garlic and let it soak. Soaking it longer will yield more garlic flavor.
 * 2) Preheat the oven to 350 °F (~180 °C).
 * 3) Strain the olive oil into a frying pan and fry the bread cubes in it, tossing to coat with oil.
 * 4) Spread the bread cubes on a baking sheet and sprinkle with salt. Bake for 10 minutes or until crispy and dry.

Notes, tips, and variations

 * To make non-garlic croutons, simply omit the garlic.
 * One may omit the prep work of mincing the garlic by adding the whole cloves of garlic to the oil and then crushing the garlic (either with a mortar or a fork).
 * By using very small bread cubes, frying crisp, and omitting the baking, these croutons may be used in place of potatoes.

title: Cookbook:Garlic Croutons I


text:
Electronics/Requests

Links used:
 * 1) E&M
 * 2) Relativity

 * 1) Electronics repair (i.e. repairfaq.org)

title: Electronics/Requests


text:
Electronics/Capacitor Construction

Electrolytic capacitor
From Wikipedia, the free encyclopedia: Electrolytic_capacitor

An electrolytic capacitor is a type of capacitor with a larger capacitance per unit volume than other types, making them valuable in relatively high-current and low-frequency electrical circuits. This is especially the case in power-supply filters, where they store charge needed to moderate output voltage and current fluctuations, at the frequency or twice the frequency of AC input power, in rectifier output, and especially in the absence of rechargeable batteries that can provide similar low-frequency current capacity.

Electrolytic capacitors are constructed from two conducting aluminium foils, one of which is coated with an insulating oxide layer, and a paper spacer soaked in electrolyte. The foil insulated by the oxide layer is the anode while the liquid electrolyte and the second foil act as cathode. This stack is then rolled up, fitted with pin connectors and placed in a cylindrical aluminium casing. (Two popular geometries use axial leads, or two leads or lugs in one circular face of the cylinder, respectively.)

A common modelling circuit for an electrolytic capacitor has the following schematic:

R_leak _______       o-|_______|-o |                  |        |                   |     (+)    |        ||         |      _______                 (-)  0-o||-o-|_______|-oOoOoOo-0 ||                R_ESR        L_ESL C

where R_leak is the leakage resistance, R_ESR is the Equivalent Series Resistance, L_ESL the Equivalent Series Inductance (L being the conventional symbol for inductance).

R_ESR must be as small as possible since it determines the loss power when the capacitor is used to smooth voltage. Loss power scales linearly with the ripple current flowing through and quadratically with R_ESR. Low ESR capacitors are imperative for high efficiencies in power supplies.

It should be pointed out that this is only a simple model and does not include all the effects associated with real electrolytic capacitors.

Since the electrolytes evaporate, design life is most often rated in hours at a set temperature. For example, typically as 2000 hours at 105 degrees Celsius (which is the highest working temperature). Design life doubles for each 10 degrees lower, reaching 15 years at 45 degrees.

Electrolytic capacitors may explode (have weak link safety valve) when charged up with wrong polarity.

What are they made of

Aluminum electrolytic capacitors contain aluminum foil, porous paper, and an electrolyte. This is usually boric acid or sodium borate in water with some sugars or ethylene glycol added to retard evaporation. While you should not eat this, nor get it in your eyes, it is not very corrosive or dangerous. Simply wash it off your skin after you gut the old capacitor.

Wet-slug tantalum electrolytics (low voltage and so expensive that only the military can generally afford them) do contain sulfuric acid. I doubt if these are ever found in audio equipment.

It is important, however, to always be careful and not take chances. Safety glasses are always advised. With chemicals, extra precaution is always worthwhile.

External link

* Electrolytic Capacitors

Electronics : Electronics:Capacitor Construction

title: Electronics/Capacitor Construction