Saturday, March 29, 2008

Homeostasis is the property of either an open system or a closed system, especially a living organism, which regulates its internal environment so as to maintain a stable, constant condition. Multiple dynamic equilibrium adjustments and regulation mechanisms make homeostasis possible. The concept was created by Claude Bernard, often considered as the father of physiology, and published in 1865. The term was coined in 1932 by Walter Bradford Cannon from the Greek homoios (same, like, resembling) and stasis (to stand, posture).

Homeostasis Biological homeostasis
All homeostatic control mechanisms have at least three interdependent components for the variable being regulated: The receptor is the sensing component that monitors and responds to changes in the environment. When the receptor senses a stimulus, it sends information to a control center, the component that sets the range at which a variable is maintained. The control center determines an appropriate response to the stimulus. The result of that response feeds to the receptor, either enhancing it with positive feedback or depressing it with negative feedback

Control Mechanisms
Negative feedback mechanisms reduce or suppress the original stimulus, given the effector's output. Most homeostatic control mechanisms require a negative feedback loop to keep conditions from exceeding tolerable limits. The purpose is to prevent sudden severe changes within a complex organism. There are hundreds of negative feedback mechanisms in the human body. Among the most important regulatory functions are: thermoregulation, osmoregulation, and glucoregulation. The kidneys contribute to homeostasis in five important ways: regulation of blood water levels, reabsorption of substances into the blood, maintenance of salt and ion levels in the blood, regulation of blood pH, and excretion of urea and other wastes.
A negative feedback mechanism example is the typical home heating system. Its thermostat houses a thermometer, the receptor that senses when the temperature is too low. The control center, also housed in the thermostat, senses and responds to the thermometer when the temperature drops below a specified set point. Below that target level, the thermostat sends a message to the effector, the furnace. The furnace then produces heat, which warms the house. Once the thermostat senses a target level of heat has been reached, it will signal the furnace to turn off, thus maintaining a comfortable temperature - not too hot nor cold.

Negative Feedback Mechanisms
Positive feedback mechanisms are designed to accelerate or enhance the output created by a stimulus that has already been activated.
Unlike negative feedback mechanisms that initiate to maintain or regulate physiological functions within a set and narrow range, the positive feedback mechanisms are designed to push levels out of normal ranges. To achieve this purpose, a series of events initiates a cascading process that builds to increase the effect of the stimulus. This process can be beneficial but is rarely used by the body due to risks of the acceleration becoming uncontrollable.
One bodily positive feedback example event is blood platelet accumulation which in turn causes blood clotting in response to a break or tear in the lining of blood vessels. Another example is the release of oxytocin to intensify the contractions that take place during childbirth.
Positive feedback can also be harmful. An example being when you have a fever it causes a positive feedback within homeostasis that pushes the temperature continually higher. Body temperature can reach extremes of 45ºC (113ºF), at which cellular proteins denature, causing the active site in proteins to change, thus causing metabolism stop and ultimately resulting in death.

Positive Feedback Mechanisms
Much disease results from disturbance of homeostasis, a condition known as homeostatic imbalance. As it ages, every organism will lose efficiency in its control systems. The inefficiencies gradually result in an unstable internal environment that increases the risk for illness. In addition, homeostatic imbalance is also responsible for the physical changes associated with aging. Even more serious than illness and other characteristics of ageing, is death. Heart failure has been seen where nominal negative feedback mechanisms become overwhelmed, and destructive positive feedback mechanisms then take over.
Diseases which result from a homeostatic imbalance include diabetes, dehydration, hypoglycemia, hyperglycemia, gout and any disease caused by a toxin present in the bloodstream. All of these conditions result from the prescence of an increased amount of a particular substance. Ideally homeostatic control mechanisms should prevent this imbalance from occrring but in some people the mechanisms do not work efficiently enough or the quantity of the substance exceeds the levels at which it can be managed. In these cases medical intervention is necessary to restore the imbalance or permanent damage to the organs may result.

Homeostatic Imbalance
The Dynamic Energy Budget theory for metabolic organisation delineates structure and (one or more) reserves in an organism. Its formulation is based on three forms of homeostasis:

Strong homeostasis is where structure and reserve do not change in composition. Since the amount of reserve and structure can vary, this allows a particular change in the composition of the whole body (as explained by the Dynamic Energy Budget theory).
Weak homeostasis is where the ratio of the amounts of reserve and structure becomes constant as long as food availability is constant, even when the organism grows. This means that the whole body composition is constant during growth in constant environments.
Structural homeostasis means that the sub-individual structures grow in harmony with the whole individual; the relative proportions of the individuals remain constant. Varieties of homeostasis
Ecological homeostasis is found in a climax community of maximum permitted biodiversity, given the prevailing ecological conditions.
In disturbed ecosystems or sub-climax biological communities such as the island of Krakatoa, after its major eruption in 1883, the established stable homeostasis of the previous forest climax ecosystem was destroyed and all life eliminated from the island. In the years after the eruption, Krakatoa went through a sequence of ecological changes in which successive groups of new plant or animal species followed one another, leading to increasing biodiversity and eventually culminating in a re-established climax community. This ecological succession on Krakatoa occurred in a number of several stages, in which a sere is defined as "a stage in a sequence of events by which succession occurs". The complete chain of seres leading to a climax is called a prisere. In the case of Krakatoa, the island as reached its climax community with eight hundred different species being recorded in 1983, one hundred years after the eruption which cleared all life off the island. Evidence confirms that this number has been homeostatic for some time, with the introduction of new species rapidly leading to elimination of old ones.
The evidence of Krakatoa, and other disturbed or virgin ecosystems shows that the initial colonisation by pioneer or R strategy species occurs through positive feedback reproduction strategies, where species are weeds, producing huge numbers of possible offspring, but investing little in the success of any one. Rapid boom and bust plague or pest cycles are observed with such species. As an ecosystem starts to approach climax these species get replaced by more sophisticated climax species which through negative feedback, adapt themselves to specific environmental conditions. These species, closely controlled by carrying capacity, follow K strategies where species produce fewer numbers of potential offspring, but invest more heavily in securing the reproductive success of each one to the micro-environmental conditions of its specific ecological niche.
It begins with a pioneer community and ends with a climax community. This climax community occurs when the ultimate vegetation has become in equilibrium with the local environment.
Such ecosystems form nested communities or heterarchies, in which homeostasis at one level, contributes to homeostatic processes at another holonic level. For example, the loss of leaves on a mature rainforest tree gives a space for new growth, and contributes to the plant litter and soil humus build-up upon which such growth depends. Equally a mature rainforest tree reduces the sunlight falling on the forest floor and helps prevent invasion by other species. But trees too fall to the forest floor and a healthy forest glade is dependent upon a constant rate of forest regrowth, produced by the fall of logs, and the recycling of forest nutrients through the respiration of termites and other insect, fungal and bacterial decomposers. Similarly such forest glades contribute ecological services, such as the regulation of microclimates or of the hydrological cycle for an ecosystem, and a number of different ecosystems act together to maintain homeostasis perhaps of a number of river catchments within a bioregion. A diversity of bioregions similarly makes up a stable homeostatic biological region or biome.
In the Gaia hypothesis, James Lovelock stated that the entire mass of living matter on Earth (or any planet with life) functions as a vast homeostatic superorganism that actively modifies its planetary environment to produce the environmental conditions necessary for its own survival. In this view, the entire planet maintains homeostasis. Whether this sort of system is present on Earth is still open to debate. However, some relatively simple homeostatic mechanisms are generally accepted. For example, when atmospheric carbon dioxide levels rise, certain plants are able to grow better and thus act to remove more carbon dioxide from the atmosphere. When sunlight is plentiful and atmospheric temperature climbs, the phytoplankton of the ocean surface waters thrive and produce more dimethyl sulfide, DMS. The DMS molecules act as cloud condensation nuclei which produce more clouds and thus increase the atmospheric albedo and this feeds back to lower the temperature of the atmosphere. As scientists discover more about Gaia, vast numbers of positive and negative feedback loops are being discovered, that together maintain a metastable condition, sometimes within very broad range of environmental conditions.

Ecological homeostasis
Example of use: "Reactive homeostasis is an immediate response to a homeostatic challenge such as predation."
However, any homeostasis is impossible without reaction - because homeostasis is and must be a "feedback" phenomenon.
The phrase "reactive homeostasis" is simply short for: "reactive compensation reestablishing homeostasis", that is to say, "reestablishing a point of homeostasis." - it should not be confused with a separate kind of homeostasis or a distinct phenomenon from homeostasis, it is simply the compensation (or compensatory) phase of homeostasis.

Reactive homeostasis
The term has come to be used in other fields, as well.

Other fields
An actuary may refer to risk homeostasis, where (for example) people who have anti-lock brakes have no better safety record than those without anti-lock brakes, because they unconsciously compensate for the safer vehicle via less-safe driving habits. Previously, certain maneuvers involved minor skids, evoking fear and avoidance: now the anti-lock system moves the boundary for such feedback, and behavior patterns expand into the no-longer punitive area. It has also been suggested that ecological crises are an instance of risk homeostasis in which behavior known to be dangerous continues until dramatic consequences actually occur.

Risk homeostasis
Sociologists and psychologists may refer to stress homeostasis, the tendency of a population or an individual to stay at a certain level of stress, often generating artificial stresses if the "natural" level of stress is not enough.
Jean Francois Lyotard, a postmodern theorist, has applied this term to societal 'power centers' that he describes as being 'governed by a principle of homeostasis.' For example the scientific hierarchy, which will sometimes ignore a radical new discovery for years because it destabilizes previously accepted norms. (See "The Postmodern Condition: A Report on Knowledge" by J.F. Lyotard)

Waste homeostasis
A 2007 study purported to find (and show clinically) conversational homeostasis in which overly-familiar people (such as spouses) condense their speech so much that they are actually worse at communicating novel information than strangers are, while not being conscious of this problem.

Metabolic homeostasis

Biological rhythm
Claude Bernard
Gaia hypothesis

Friday, March 28, 2008

Edmonton's Capital Ex
Edmonton's Capital EX, formerly known as Klondike Days or K-Days, is an annual 10-day exhibition that is located in Edmonton, Alberta, Canada. It is usually held near the end of July and is run in conjunction with the Taste of Edmonton.
The exhibition is held at Northlands, formerly Northlands Park, south of Rexall Place.

2007 events

Festivals in Alberta

Thursday, March 27, 2008

As of 2007, there are 192 United Nations (UN) member states. Each member state is a member of the United Nations General Assembly.
According to the United Nations Charter, Chapter 2, Article 4, the admission of any state to membership in the UN "will be effected by a decision of the General Assembly upon the recommendation of the Security Council." In principle, only sovereign states can become UN members, and today all UN members are fully sovereign states. However, four of the original members (Belarus, India, the Philippines, and Ukraine) were not independent at the time of their admission. Moreover, because a state can only be admitted by the approval of the Security Council and the General Assembly, some entities which may be considered sovereign states according to the Montevideo Convention are not members due to the facts that the UN do not consider them to be sovereign states, the lack of international recognition or opposition from certain members.
International organizations, non-governmental organizations, and entities whose statehood or sovereignty are not precisely defined, can only become United Nations General Assembly observers, allowing them to speak, but not vote, in General Assembly meetings.

Current members

Former members
Flag of Czechoslovakia Czechoslovakia joined the UN as an original member on 24 October 1945. On 10 December 1992, Czechoslovakia informed the United Nations Secretary-General that it would cease to exist after 31 December 1992, and that both its successor states, the Flag of the Czech Republic Czech Republic and Flag of Slovakia Slovakia, would apply for UN membership. They were admitted on 19 January 1993.

Both the Flag of the German Democratic Republic German Democratic Republic (i.e., East Germany) and the Flag of West Germany Federal Republic of Germany (i.e., West Germany) were admitted on 18 September 1973. Flag of Germany Germany was reunified when the German Democratic Republic acceeded to the Federal Republic of Germany on 3 October 1990.

East Germany and West Germany
Flag of Tanganyika Tanganyika was admitted on 14 December 1961, and Flag of Zanzibar Zanzibar was admitted on 16 December 1963. Flag of Tanzania Tanzania was formed when the two countries merged to form the United Republic of Tanganyika and Zanzibar on 26 April 1964, which later changed its name to the United Republic of Tanzania on 1 November 1964.

United Nations member states Tanganyika and Zanzibar
Both Flag of Egypt Egypt and Flag of Syria Syria joined the UN as original members on 24 October 1945. The Flag of United Arab Republic United Arab Republic was formed by an union of the two countries following a plebiscite on 21 February 1958, and continued as a single member in the UN until 13 October 1961, when Syria, having resumed its status as an independent state, resumed its separate membership in the UN. Egypt continued as a UN member under the name United Arab Republic until 2 September 1971, when it changed its name to the Arab Republic of Egypt.

United Arab Republic
The Flag of the Soviet Union Union of Soviet Socialist Republics (USSR) was one of the five original founders of the UN in 1945 and joined the UN as an original member on 24 October 1945. On 24 December 1991, upon the imminent dissolution of the USSR, Boris Yeltsin, the President of Russia, informed the United Nations Secretary-General that the membership of the USSR in the UN (including its permanent seat on the Security Council) was being continued by Flag of Russia Russia with the support of the 11 member countries of the Commonwealth of Independent States.
The remaining former Soviet Republics are currently all UN members:

Flag of Belarus Belarus and Flag of Ukraine Ukraine had already joined the UN as original members on 24 October 1945, represented by the Byelorussian SSR and the Ukrainian SSR respectively until their independence in 1991.
Flag of Estonia Estonia, Flag of Latvia Latvia and Flag of Lithuania Lithuania were admitted on 17 September 1991.
Flag of Armenia Armenia, Flag of Azerbaijan Azerbaijan, Flag of Kazakhstan Kazakhstan, Flag of Kyrgyzstan Kyrgyzstan, Flag of Moldova Moldova, Flag of Tajikistan Tajikistan, Flag of Turkmenistan Turkmenistan, and Flag of Uzbekistan Uzbekistan were admitted on 2 March 1992.
Flag of Georgia (country) Georgia was admitted on 31 July 1992. USSR
Flag of Yemen Arab Republic Yemen (i.e., North Yemen) was admitted on 30 September 1947, first represented by the Mutawakkilite Kingdom of Yemen, then by the Yemen Arab Republic. Flag of People's Democratic Republic of Yemen Democratic Yemen (i.e., South Yemen) was originally admitted as "Southern Yemen" on 14 December 1967, represented by the People's Republic of South Yemen, which later changed its name to the People's Democratic Republic of Yemen. Flag of Yemen Yemen was unified when the two countries merged to form the Republic of Yemen on 22 May 1990.

North and South Yemen
Flag of Yugoslavia Yugoslavia joined the UN as an original member on 24 October 1945, represented by the Democratic Federal Yugoslavia, which later changed its name to the Socialist Federal Republic of Yugoslavia. The Socialist Federal Republic of Yugoslavia had been dissolved by 1992, and the Federal Republic of Yugoslavia was formed on 28 April 1992 by the former Yugoslav Republics of Serbia and Montenegro. By General Assembly resolution A/RES/47/1 on 22 September 1992, the UN "considers that the Federal Republic of Yugoslavia (Serbia and Montenegro) cannot continue automatically the membership of the former Socialist Federal Republic of Yugoslavia in the United Nations, and therefore decides that the Federal Republic of Yugoslavia (Serbia and Montenegro) should apply for membership in the United Nations and that it shall not participate in the work of the General Assembly."
The former Yugoslav Republics are currently all UN members:

Flag of Bosnia and Herzegovina Bosnia and Herzegovina, Flag of Croatia Croatia and Flag of Slovenia Slovenia were admitted on 22 May 1992.
Flag of the Republic of Macedonia Macedonia was admitted on 8 April 1993, provisionally under the name "The former Yugoslav Republic of Macedonia", pending settlement over the difference that had arisen over its name.
The Federal Republic of Yugoslavia was admitted on 1 November 2000, replacing, instead of succeeding, the membership of Yugoslavia in the UN held by the former Socialist Federal Republic of Yugoslavia, which officially remained a UN member until that day. The Federal Republic of Yugoslavia changed its name to Flag of Serbia and Montenegro Serbia and Montenegro on 4 February 2003. Since the declaration of independence by Montenegro on 3 June 2006, the membership of Serbia and Montenegro in the UN has been continued by Flag of Serbia Serbia on the basis of Article 60 of the Constitutional Charter of Serbia and Montenegro.
Flag of Montenegro Montenegro was admitted on 28 June 2006. Yugoslavia

Main article: China and the United Nations Seat of China
Since 1991, the Republic of China has repeatedly petitioned to rejoin the UN, as the representative of the people of Taiwan only, instead of all of China, using the designation "Republic of China on Taiwan", "Republic of China (Taiwan)", or just "Taiwan" (as proposed by the current Democratic Progressive Party government). However, all attempts have been denied, either because the petition failed to get sufficient votes to get on the formal agenda, or because the application was rejected by the UN, due primarily to the opposition of the People's Republic of China. The ROC has also been denied participation in the UN as an "observer state", a position held by the Holy See, or as a "non-member entity", a title currently granted to Palestine (see Observers and non-members). While the PRC government firmly opposes the application of any Taiwan authorities to join the UN or any of its agencies, such as the World Health Organization, the ROC government continues to call on the international community to recognize the right of the island's 23 million citizens to participate in the meetings and activities of the UN and its affiliates. Currently, 23 UN member states and the Holy See maintain diplomatic relations with the ROC.

Bids for membership by Taiwan

Main article: United Nations General Assembly observers

Wednesday, March 26, 2008

Array Deque Linked list Queue Stack In computer science, a linked list is one of the fundamental data structures, and can be used to implement other data structures. It consists of a sequence of nodes, each containing arbitrary data fields and one or two references ("links") pointing to the next and/or previous nodes. The principal benefit of a linked list over a conventional array is that the order of the linked items may be different from the order that the data items are stored in memory or on disk, allowing the list of items to be traversed in a different order. A linked list is a self-referential datatype because it contains a pointer or link to another datum of the same type. Linked lists permit insertion and removal of nodes at any point in the list in constant time, but do not allow random access. Several different types of linked list exist: singly-linked lists, doubly-linked lists, and circularly-linked lists.
Linked lists can be implemented in most languages. Languages such as Lisp and Scheme have the data structure built in, along with operations to access the linked list. Procedural or object-oriented languages such as C, C++, and Java typically rely on mutable references to create linked lists.


Types of linked lists

Linearly-linked list
The simplest kind of linked list is a singly-linked list (or slist for short), which has one link per node. This link points to the next node in the list, or to a null value or empty list if it is the final node.

Singly-linked list
A more sophisticated kind of linked list is a doubly-linked list or two-way linked list. Each node has two links: one points to the previous node, or points to a null value or empty list if it is the first node; and one points to the next, or points to a null value or empty list if it is the final node.
In some very low level languages, Xor-linking offers a way to implement doubly-linked lists using a single word for both links, although the use of this technique is usually discouraged.

Doubly-linked list
In a circularly-linked list, the first and final nodes are linked together. This can be done for both singly and doubly linked lists. To traverse a circular linked list, you begin at any node and follow the list in either direction until you return to the original node. Viewed another way, circularly-linked lists can be seen as having no beginning or end. This type of list is most useful for managing buffers for data ingest, and in cases where you have one object in a list and wish to see all other objects in the list.
The pointer pointing to the whole list may be called the access pointer.

Circularly-linked list
In a singly-circularly-linked list, each node has one link, similar to an ordinary singly-linked list, except that the next link of the last node points back to the first node. As in a singly-linked list, new nodes can only be efficiently inserted after a node we already have a reference to. For this reason, it's usual to retain a reference to only the last element in a singly-circularly-linked list, as this allows quick insertion at the beginning, and also allows access to the first node through the last node's next pointer.

Singly-circularly-linked list
In a doubly-circularly-linked list, each node has two links, similar to a doubly-linked list, except that the previous link of the first node points to the last node and the next link of the last node points to the first node. As in doubly-linked lists, insertions and removals can be done at any point with access to any nearby node. Although structurally a doubly-circularly-linked list has no beginning or end, an external access pointer may formally establish the pointed node to be the head node or the tail node, and maintain order just as well as a doubly-linked list with sentinel nodes.

Doubly-circularly-linked list
Linked lists sometimes have a special dummy or sentinel node at the beginning and/or at the end of the list, which is not used to store data. Its purpose is to simplify or speed up some operations, by ensuring that every data node always has a previous and/or next node, and that every list (even one that contains no data elements) always has a "first" and "last" node. Lisp has such a design - the special value nil is used to mark the end of a 'proper' singly-linked list, or chain of cons cells as they are called. A list does not have to end in nil, but a list that did not would be termed 'improper'.

Sentinel nodes
Linked lists are used as a building block for many other data structures, such as stacks, queues and their variations.
The "data" field of a node can be another linked list. By this device, one can construct many linked data structures with lists; this practice originated in the Lisp programming language, where linked lists are a primary (though by no means the only) data structure, and is now a common feature of the functional programming style.
Sometimes, linked lists are used to implement associative arrays, and are in this context called association lists. There is very little good to be said about this use of linked lists; they are easily outperformed by other data structures such as self-balancing binary search trees even on small data sets (see the discussion in associative array). However, sometimes a linked list is dynamically created out of a subset of nodes in such a tree, and used to more efficiently traverse that set.

Applications of linked lists
As with most choices in computer programming and design, no method is well suited to all circumstances. A linked list data structure might work well in one case, but cause problems in another. This is a list of some of the common tradeoffs involving linked list structures. In general, if you have a dynamic collection, where elements are frequently being added and deleted, and the location of new elements added to the list is significant, then benefits of a linked list increase.

Linked lists have several advantages over arrays. Elements can be inserted into linked lists indefinitely, while an array will eventually either fill up or need to be resized, an expensive operation that may not even be possible if memory is fragmented. Similarly, an array from which many elements are removed may become wastefully empty or need to be made smaller.
Further memory savings can be achieved, in certain cases, by sharing the same "tail" of elements among two or more lists — that is, the lists end in the same sequence of elements. In this way, one can add new elements to the front of the list while keeping a reference to both the new and the old versions — a simple example of a persistent data structure.
On the other hand, arrays allow random access, while linked lists allow only sequential access to elements. Singly-linked lists, in fact, can only be traversed in one direction. This makes linked lists unsuitable for applications where it's useful to look up an element by its index quickly, such as heapsort. Sequential access on arrays is also faster than on linked lists on many machines due to locality of reference and data caches. Linked lists receive almost no benefit from the cache.
Another disadvantage of linked lists is the extra storage needed for references, which often makes them impractical for lists of small data items such as characters or boolean values. It can also be slow, and with a naïve allocator, wasteful, to allocate memory separately for each new element, a problem generally solved using memory pools.
A number of linked list variants exist that aim to ameliorate some of the above problems. Unrolled linked lists store several elements in each list node, increasing cache performance while decreasing memory overhead for references. CDR coding does both these as well, by replacing references with the actual data referenced, which extends off the end of the referencing record.
A good example that highlights the pros and cons of using arrays vs. linked lists is by implementing a program that resolves the Josephus problem. The Josephus problem is an election method that works by having a group of people stand in a circle. Starting at a predetermined person, you count around the circle n times. Once you reach nth person, take them out of the circle and have the members close the circle. Then count around the circle the same n times and repeat the process, until only one person is left. That person wins the election. This shows the strengths and weaknesses of a linked list vs. an array, because if you view the people as connected nodes in a circular linked list then it shows how easily the linked list is able to delete nodes (as it only has to rearrange the links to the different nodes). However, the linked list will be poor at finding the next person to remove and will need to recurse through the list until it finds that person. An array, on the other hand, will be poor at deleting nodes (or elements) as it cannot remove one node without individually shifting all the elements up the list by one. However, it is exceptionally easy to find the nth person in the circle by directly referencing them by their position in the array.

Linked list Linked lists vs. arrays
Double-linked lists require more space per node (unless one uses xor-linking), and their elementary operations are more expensive; but they are often easier to manipulate because they allow sequential access to the list in both directions. In particular, one can insert or delete a node in a constant number of operations given only that node's address. (Compared with singly-linked lists, which require the previous node's address in order to correctly insert or delete.) Some algorithms require access in both directions. On the other hand, they do not allow tail-sharing, and cannot be used as persistent data structures.

Doubly-linked vs. singly-linked
Circular linked lists are most useful for describing naturally circular structures, and have the advantage of regular structure and being able to traverse the list starting at any point. They also allow quick access to the first and last records through a single pointer (the address of the last element). Their main disadvantage is the complexity of iteration, which has subtle special cases.

Sentinel nodes (header nodes)
When manipulating linked lists in-place, care must be taken to not use values that you have invalidated in previous assignments. This makes algorithms for inserting or deleting linked list nodes somewhat subtle. This section gives pseudocode for adding or removing nodes from singly, doubly, and circularly linked lists in-place. Throughout we will use null to refer to an end-of-list marker or sentinel, which may be implemented in a number of ways.

Linked list operations

Linearly-linked lists
Our node data structure will have two fields. We also keep a variable firstNode which always points to the first node in the list, or is null for an empty list.
Traversal of a singly-linked list is simple, beginning at the first node and following each next link until we come to the end:
The following code inserts a node after an existing node in a singly linked list. The diagram shows how it works. Inserting a node before an existing one cannot be done; instead, you have to locate it while keeping track of the previous node.
Inserting at the beginning of the list requires a separate function. This requires updating firstNode.
Similarly, we have functions for removing the node after a given node, and for removing a node from the beginning of the list. The diagram demonstrates the former. To find and remove a particular node, one must again keep track of the previous element.
Notice that removeBeginning() sets list.firstNode to null when removing the last node in the list.
Since we can't iterate backwards, efficient "insertBefore" or "removeBefore" operations are not possible.
Appending one linked list to another can be inefficient unless a reference to the tail is kept as part of the List structure, because we must traverse the entire first list in order to find the tail, and then append the second list to this. Thus, if two linearly-linked lists are each of length n, list appending has asymptotic time complexity of O(n). In the Lisp family of languages, list appending is provided by the append procedure.
Many of the special cases of linked list operations can be eliminated by including a dummy element at the front of the list. This ensures that there are no special cases for the beginning of the list and renders both insertBeginning() and removeBeginning() unnecessary. In this case, the first useful data in the list will be found at

Singly-linked lists
With doubly-linked lists there are even more pointers to update, but also less information is needed, since we can use backwards pointers to observe preceding elements in the list. This enables new operations, and eliminates special-case functions. We will add a prev field to our nodes, pointing to the previous element, and a lastNode field to our list structure which always points to the last node in the list. Both list.firstNode and list.lastNode are null for an empty list.
Iterating through a doubly linked list can be done in either direction. In fact, direction can change many times, if desired.
These symmetric functions add a node either after or before a given node, with the diagram demonstrating after:
We also need a function to insert a node at the beginning of a possibly-empty list:
A symmetric function inserts at the end:
Removing a node is easier, only requiring care with the firstNode and lastNode:
One subtle consequence of this procedure is that deleting the last element of a list sets both firstNode and lastNode to null, and so it handles removing the last node from a one-element list correctly. Notice that we also don't need separate "removeBefore" or "removeAfter" methods, because in a doubly-linked list we can just use "remove(node.prev)" or "remove(" where these are valid.

Doubly-linked lists
Circularly-linked lists can be either singly or doubly linked. In a circularly linked list, all nodes are linked in a continuous circle, without using null. For lists with a front and a back (such as a queue), one stores a reference to the last node in the list. The next node after the last node is the first node. Elements can be added to the back of the list and removed from the front in constant time.
Both types of circularly-linked lists benefit from the ability to traverse the full list beginning at any given node. This often allows us to avoid storing firstNode and lastNode, although if the list may be empty we need a special representation for the empty list, such as a lastNode variable which points to some node in the list or is null if it's empty; we use such a lastNode here. This representation significantly simplifies adding and removing nodes with a non-empty list, but empty lists are then a special case.

Circularly-linked lists
Assuming that someNode is some node in a non-empty list, this code iterates through that list starting with someNode (any node will do):
Notice the postponing of the test to the end of the loop. This is important for the case where the list contains only the single node someNode.
This simple function inserts a node into a doubly-linked circularly-linked list after a given element:
To do an "insertBefore", we can simply "insertAfter(node.prev, newNode)". Inserting an element in a possibly empty list requires a special function:
To insert at the beginning we simply "insertAfter(list.lastNode, node)". Finally, removing a node must deal with the case where the list empties:
As in doubly-linked lists, "removeAfter" and "removeBefore" can be implemented with "remove(list, node.prev)" and "remove(list,".

Doubly-circularly-linked lists
Languages that do not support any type of reference can still create links by replacing pointers with array indices. The approach is to keep an array of records, where each record has integer fields indicating the index of the next (and possibly previous) node in the array. Not all nodes in the array need be used. If records are not supported as well, parallel arrays can often be used instead.
As an example, consider the following linked list record that uses arrays instead of pointers:
By creating an array of these structures, and an integer variable to store the index of the first element, a linked list can be built:
Links between elements are formed by placing the array index of the next (or previous) cell into the Next or Prev field within a given element. For example:
In the above example, ListHead would be set to 2, the location of the first entry in the list. Notice that entry 3 and 5 through 7 are not part of the list. These cells are available for any additions to the list. By creating a ListFree integer variable, a free list could be created to keep track of what cells are available. If all entries are in use, the size of the array would have to be increased or some elements would have to be deleted before new entries could be stored in the list.
The following code would traverse the list and display names and account balance:
When faced with a choice, the advantages of this approach include:
This approach has one main disadvantage, however: it creates and manages a private memory space for its nodes. This leads to the following issues:
For these reasons, this approach is mainly used for languages that do not support dynamic memory allocation. These disadvantages are also mitigated if the maximum size of the list is known at the time the array is created.

The linked list is relocatable, meaning it can be moved about in memory at will, and it can also be quickly and directly serialized for storage on disk or transfer over a network.
Especially for a small list, array indexes can occupy significantly less space than a full pointer on many architectures.
Locality of reference can be improved by keeping the nodes together in memory and by periodically rearranging them, although this can also be done in a general store.
Naïve dynamic memory allocators can produce an excessive amount of overhead storage for each node allocated; almost no allocation overhead is incurred per node in this approach.
Seizing an entry from a pre-allocated array is faster than using dynamic memory allocation for each node, since dynamic memory allocation typically requires a search for a free memory block of the desired size.
It increase complexity of the implementation.
Growing a large array when it is full may be difficult or impossible, whereas finding space for a new linked list node in a large, general memory pool may be easier.
Adding elements to a dynamic array will occasionally (when it is full) unexpectedly take linear (O(n)) instead of constant time (although it's still an amortized constant).
Using a general memory pool leaves more memory for other data if the list is smaller than expected or if many nodes are freed. Linked lists using arrays of nodes
Many programming languages such as Lisp and Scheme have singly linked lists built in. In many functional languages, these lists are constructed from nodes, each called a cons or cons cell. The cons has two fields: the car, a reference to the data for that node, and the cdr, a reference to the next node. Although cons cells can be used to build other data structures, this is their primary purpose.
In languages that support Abstract data types or templates, linked list ADTs or templates are available for building linked lists. In other languages, linked lists are typically built using references together with records. Here is a complete example in C:

Language support
When constructing a linked list, one is faced with the choice of whether to store the data of the list directly in the linked list nodes, called internal storage, or merely to store a reference to the data, called external storage. Internal storage has the advantage of making access to the data more efficient, requiring less storage overall, having better locality of reference, and simplifying memory management for the list (its data is allocated and deallocated at the same time as the list nodes).
External storage, on the other hand, has the advantage of being more generic, in that the same data structure and machine code can be used for a linked list no matter what the size of the data is. It also makes it easy to place the same data in multiple linked lists. Although with internal storage the same data can be placed in multiple lists by including multiple next references in the node data structure, it would then be necessary to create separate routines to add or delete cells based on each field. It is possible to create additional linked lists of elements that use internal storage by using external storage, and having the cells of the additional linked lists store references to the nodes of the linked list containing the data.
In general, if a set of data structures needs to be included in multiple linked lists, external storage is the best approach. If a set of data structures need to be included in only one linked list, then internal storage is slightly better, unless a generic linked list package using external storage is available. Likewise, if different sets of data that can be stored in the same data structure are to be included in a single linked list, then internal storage would be fine.
Another approach that can be used with some languages involves having different data structures, but all have the initial fields, including the next (and prev if double linked list) references in the same location. After defining separate structures for each type of data, a generic structure can be defined that contains the minimum amount of data shared by all the other structures and contained at the top (beginning) of the structures. Then generic routines can be created that use the minimal structure to perform linked list type operations, but separate routines can then handle the specific data. This approach is often used in message parsing routines, where several types of messages are received, but all start with the same set of fields, usually including a field for message type. The generic routines are used to add new messages to a queue when they are received, and remove them from the queue in order to process the message. The message type field is then used to call the correct routine to process the specific type of message.

Internal and external storage
Suppose you wanted to create a linked list of families and their members. Using internal storage, the structure might look like the following:
To print a complete list of families and their members using internal storage, we could write:
Using external storage, we would create the following structures:
To print a complete list of families and their members using external storage, we could write:
Notice that when using external storage, an extra step is needed to extract the record from the node and cast it into the proper data type. This is because both the list of families and the list of members within the family are stored in two linked lists using the same data structure (node), and this language does not have parametric types.
As long as the number of families that a member can belong to is known at compile time, internal storage works fine. If, however, a member needed to be included in an arbitrary number of families, with the specific number known only at run time, external storage would be necessary.

Linked list Speeding up search
Both stacks and queues are often implemented using linked lists, and simply restrict the type of operations which are supported.
The skip list is a linked list augmented with layers of pointers for quickly jumping over large numbers of elements, and then descending to the next layer. This process continues down to the bottom layer, which is the actual list.
A binary tree can be seen as a type of linked list where the elements are themselves linked lists of the same nature. The result is that each node may include a reference to the first node of one or two other linked lists, which, together with their contents, form the subtrees below that node.
An unrolled linked list is a linked list in which each node contains an array of data values. This leads to improved cache performance, since more list elements are contiguous in memory, and reduced memory overhead, because less metadata needs to be stored for each element of the list.
A hash table may use linked lists to store the chains of items that hash to the same position in the hash table.

Tuesday, March 25, 2008

Coordinates: 48°12′31″N, 16°22′19″E
Vienna (German: Wien [viːn], see also other names) is the capital of Austria, and also one of the nine States of Austria. Vienna is Austria's primate city; with a population of about 1.7 million (2.3 million within the metropolitan area), and is by far the largest city in Austria as well as its cultural, economic and political centre. Vienna lies in the very east of Austria and is close to the Czech Republic, Slovakia and Hungary. In 2001, the city centre was designated a UNESCO World Heritage Site

Due to industrialization and immigration from other parts of the Empire, the population of Vienna increased sharply during its time as capital of Austria-Hungary (1867-1918). However, after World War I, many Czechs and Hungarians returned to their ancestral countries, resulting in a decline in the Viennese population. At the height of the immigration, about one third of the people living in Vienna were of Slavic or Hungarian descent.
By 2001, only 16% of people living in Vienna had nationalities other than Austrian, nearly half of which were from the former Yugoslavia; the next most numerous nationalities in Vienna were Turkish (39,000 or 2.5%), Polish (13,600 or 0.9%) and German (12,700 or 0.8%).

Historical population

Main article: Districts of Vienna Subdivision
Until 1918, Viennese politics were shaped by the Christian Social Party, in particular long-term mayor Karl Lueger. Vienna is today considered the centre of Social Democracy in Austria. During the period of the First Republic (1918-1934), the Vienna Social Democrats undertook many overdue social reforms, improving the quality of life for hundreds of thousands of workers in the city. At that time, Vienna's municipal policy was admired by Socialists throughout Europe, who therefore referred to the city as "Red Vienna" (Rotes Wien). Since the end of the First World War, the city has been governed by the Social Democratic Party with absolute majorities in the city parliament. Only between 1934 and 1945, when the Social Democratic Party was illegal, mayors were appointed by the austro-fascist and later by the Nazi authorities. Current mayor of Vienna is Michael Häupl. The Social Democrats currently hold 55% of the seats with a 49% share of the vote. An example of the city's many social democratic policies is its low-cost residential estates called Gemeindebauten.
Ever since Vienna obtained federal state (Bundesland) status of its own in 1921, the mayor has also had the role of the state governor (Landeshauptmann). The Rathaus accommodates the offices of the mayor and the state government (Landesregierung). The city is administered by a multitude of departments (Magistratsabteilungen).

Vienna is the seat of the Viennese Roman Catholic archdiocese, and its acting Archbishop is Cardinal Christoph Schönborn. The religions of the Viennese resident population is divided according to the 2001 census as follows :

Vienna, Austria Religions

See also: Music of Austria and Vienna State Opera Ballet
Translated from here
Art and culture have a long tradition in Vienna, including theatre, opera, classical music and fine arts. The Burgtheater is considered one of the best theatres in the German-speaking world alongside its branch, the Akademietheater. The Volkstheater Wien and the Theater in der Josefstadt also enjoy good reputations. There is also a multitude of smaller theatres, in many cases devoted to less mainstream forms of performing arts, such as modern, experimental plays or cabaret.
Vienna is also home to a number of opera houses, including the Staatsoper and the Volksoper, the latter being devoted to the typical Viennese operetta. Classical concerts are performed at well known venues such as the Wiener Musikverein, home of the Vienna Philharmonic Orchestra, and the Wiener Konzerthaus. Many concert venues offer concerts aimed at tourists, featuring popular highlights of Viennese music (particularly the works of Wolfgang Amadeus Mozart and Johann Strauss).
In recent years, the Theater an der Wien has become widely known for hosting premieres of musicals, although it has recently devoted itself to the opera again. The most successful musical by far was "Elisabeth", which was later translated into several other languages and performed all over the world. The Haus der Musik ("house of music") opened in 2000.
Many Roman Catholic churches in central Vienna also feature performances of religious or other music, including masses sung with classical music and organ.

Music, theatre and opera
To be translated from here
The Hofburg is the location of the Schatzkammer (treasury), holding the imperial jewels of the Hapsburg dynasty. The Sisi Museum (a museum devoted to Empress Elisabeth Amalie Eugenie of Austria) allows visitors to view the Imperial apartments as well as the silver cabinet. Directly opposite the Hofburg are the Kunsthistorisches Museum and the Naturhistorisches Museum, which houses many paintings by old masters and ancient and classical artifacts.
A number of museums are located in the Museumsquartier (museum quarter), the former Imperial Stalls which were converted into a museum complex in the 1990s. It houses the Museum of Modern Art (Ludwig Foundation), the Leopold Museum (focussing on works of the Viennese Secession, Viennese Modernism and Austrian Expressionism), additional halls with feature exhibitions and the Tanzquartier. The Liechtenstein Palace contains one of the world's largest private art collections. There are a multitude of other museums in Vienna, including the Military History Museum, the Technical Museum, the Vienna Clock Museum and the Burial Museum. The museums dedicated to Vienna's districts provide a retrospective of the respective districts.

See also: Category:Buildings and structures in Austria
Translated from here
A variety of architectural styles can be found in Vienna, such as the Romanesque Ruprechtskirche and the Baroque Karlskirche. Styles range from classicist buildings to modern architecture. Art Nouveau left many architectural traces in Vienna. The Secession, Karlsplatz Stadtbahn Station, and the Kirche am Steinhof by Otto Wagner rank among the best known examples of Art Nouveau in the world.
The Hundertwasserhaus by Friedensreich Hundertwasser, designed to counter the clinical look of modern architecture, is one of Vienna's most popular tourist attractions. Another example of unique architecture is the Wotrubakirche by sculptor Fritz Wotruba.
In the 1990s, a number of quarters were adapted and extensive building projects were implemented in the areas around Donaustadt (north of the Danube) and Wienerberg (in southern Vienna). The 202 m-high Millennium Tower located at Handelskai is the highest building in Vienna. In recent years, Vienna has seen numerous architecture projects completed which combine modern architectural elements with old buildings, such as the remodelling and revitalisation of the old Gasometer in 2001.
Most buildings in Vienna are relatively low; there are currently (early 2006) around 100 buildings higher than 40 m. The number of high-rise buildings is kept low by building legislation aimed at preserving green areas and districts designated as world cultural heritage. Strong rules apply to the planning, authorisation and construction of high-rise buildings. Consequently, much of the inner city is a high-rise free zone.

Vienna is also Austria's main centre of education and home to many universities, professional colleges and gymnasiums.


Academy of Fine Arts Vienna
Diplomatic Academy of Vienna
Medical University of Vienna
PEF Private University of Management Vienna
University of Applied Arts Vienna
University of Natural Resources and Applied Life Sciences, Vienna
University of Music and Performing Arts, Vienna
University of Vienna
University of Veterinary Medicine Vienna
Vienna University of Economics and Business Administration
Vienna University of Technology
Webster University Vienna
Internationales Kulturinstitut Universities

American International School Vienna
Danube International School
Vienna Christian School
Vienna International School
Lycée Francais de Vienne International schools
Twelve bridges cross the Danube in the city, which is divided by the Danube and its branch, the Neue Donau ("new Danube").

Vienna has a large public transportation network.
Vienna has an extensive tram and bus network - the tram network being third largest in the world. In the most populated areas of Vienna, public transport runs so frequently (even during off-peak hours) that any familiarity with departure timetables is virtually unnecessary. The convenience and flexibility of the public transport is in turn reflected by its popularity; 53% of Viennese workers travel to their workplace by public transport. During night hours, public transport is continued by the Nightline buses operating on all the main routes, generally every half hour.
Fare prices within the city are independent of the length of the journey and covers all modes of public transport. Tickets are also available for various time periods, such as 24 hour, monthly or yearly tickets.
The Viennese public transport services are incorporated into a larger concentric system of transport zones, the VOR (Verkehrsverbund Ostregion = eastern region traffic association). VOR includes railway and bus lines operating 50 kilometers into the surrounding areas, and ticket prices are calculated according to the number of zones.
Tickets must be purchased (and often stamped) prior to boarding or entering a station. Tickets are not checked when entering a station or boarding, there are however regular ticket inspections on all routes.
There are also two miniature railways: the Liliputbahn in the Wiener Prater and the Donauparkbahn in the Donaupark.

Vienna S-Bahn
Vienna U-Bahn
Local Railways (Lokalbahn Wien-Baden)
Wiener Linien (= Vienna Lines, municipal company operating U-Bahn, tram, and most bus routes) Public transportation
Historically, all transport was oriented towards the main cities in the Austro-Hungarian monarchy. Vienna has several train stations that form the beginning of several train lines:
There are also several through train stations:
There are also a large number of smaller stations that are important for local passenger traffic. Since the mid 1990s, the Westbahnhof and Südbahnhof have handled all long-distance travel. Many trains also stop at Hütteldorf or Meidling, especially when inbound.
In order to bundle all long-distance traffic it has become necessary to build a tunnel, colloquially known as the Wildschweintunnel ("boar tunnel"), underneath Lainzer Tiergarten linking the Western Railway to the Southern Railway. The new bundled train line will connect to a new through train station called Wien Zentralbahnhof that will be constructed instead of the Südbahnhof.

Wien Franz-Josefs-Bahnhof, the starting point of the Franz Josef Railway
Wien Westbahnhof, starting point of the Western Railway
Wien Südbahnhof (Former South and East Station) for the Southern Railway and the Eastern Railway
Wien Hütteldorf on the Western Railway
Wien Heiligenstadt on the Franz Josef Railway
Wien Praterstern (Formerly known as Wien Nord or Wien Nord-Praterstern) on the Northern Railway.
Wien Meidling (Philadelphiabrücke) on the Southern Railway. This is Vienna's most frequented transit station.
Wien Mitte (Landstraße) on the S-Bahn Stammstrecke ("main line") is the nearest railway station to the centre of Vienna. Railways
To be translated from here
Similar to the train lines, Bundesstraßen leave the city in a star-shaped pattern. Some are named after their historical final destination (Prager Straße to Prague, Linzer Straße to Linz, Triester Straße to Trieste and Brünner Straße to Brno). Bundesstraßen can be compared to Federal Highways in the United States, being two-lane in rural areas and multi-lane in urban areas.
Three national autobahns leave Vienna in the westerly (A1), southerly (A2), and easterly directions (A4). Similar to the rail lines, they are commonly referred to after their exit direction (Westautobahn, Südautobahn, and Ostautobahn). In addition, several spur and branch autobahns circle around the southern and eastern areas of the city. The protected Wienerwald forest area in the western and northern areas has been left mostly untouched.

Road traffic
Vienna International Airport is located to the southeast of Vienna. The airport handled over 237,400 arrivals and departures in 2006 and was frequented by 16.86 million passengers. Following lengthy negotiations with surrounding communities, the airport will be expanded to increase its capacity by adding a third runway. The airport is currently undergoing a major expansion(construction of several new buildings) to prepare for an expected increase in passengers.

Air traffic
To be translated from here
Vienna is connected to Rotterdam and German Industrial areas via the Rhine-Main-Danube Canal, and to Eastern European countries along the Danube to the Black Sea. The planned Danube-Oder-Canal remains unfinished.
The "Twin City Liner" boat service connects Vienna and Bratislava.
Nearly all of Vienna's drinking water is brought to the city via two large water pipelines, built in the late 19th and early 20th centuries. The pipelines stretch 120 km (75 miles) and 200 km (124 miles) from the Alps to the city's Hietzing district. The Alpine sources are pristine and the water does not require treatment.

Water transportation

Leisure activities
Vienna possesses many park facilities, including the Stadtpark, the Burggarten, the Volksgarten (part of the Hofburg), the Schloßpark at Schloss Belvedere (home to the Vienna Botanic Gardens), the Donaupark, the Schönbrunner Schlosspark, the Prater, the Augarten, the Rathauspark, the Lainzer Tiergarten, the Dehnepark, the Resselpark, the Votivpark, the Kurpark Oberlaa, the Auer-Welsbach-Park and the Türkenschanzpark. Green areas include Laaer-Berg (including the Bohemian Prater) and the foothills of the Wienerwald, which reaches into the outer areas of the city. Small parks, known by the Viennese as Beserlparks, are everywhere in the inner city areas. Many of Vienna's famous parks include monuments, such as the Stadtpark with its statue of Johann Strauss II, and the gardens of the baroque palace, where the State Treaty was signed. Vienna's principal park is the Prater which is home to the Riesenrad, a ferris wheel. The imperial Schönbrunn's grounds contain an 18th century park which includes the world's oldest zoo, founded in 1752. The Donauinsel, part of Vienna's flood defences, is a 21.1 km long artificial island between the Danube and Neue Donau dedicated to leisure activities.

Viennese parks and gardens
Vienna hosts many different sporting events including the Vienna City Marathon, which attracts more than 10,000 participants every year and normally takes place in May. In 2005 the Ice Hockey World Championships took place in Austria and the final was played in Vienna. Vienna's Ernst Happel Stadium was the venue of four Champions League and European Champion Clubs' Cup finals (1964, 1987, 1990, 1995) and will host the final of Euro 2008.
Austria's capital is home to numerous teams. The best known are the local football clubs SK Rapid Wien (31 Austrian Bundesliga titles), FK Austria Wien (23 Austrian Bundesliga titles and 26-time cup winners) and the oldest team, First Vienna FC. Other important sport clubs include the Chrysler Vikings Vienna (American Football), who won the Eurobowl title in 2004, the Vienna Hot Volleys, one of Europe's premier Volleyball organisations, and the Vienna Capitals (Ice Hockey).

Culinary specialities
See also: Austrian food
Vienna is well known for Wiener schnitzel, a cutlet of veal that is pounded flat, coated in flour, egg and breadcrumbs, and fried in clarified butter. It is available in almost every restaurant that serves Viennese cuisine. Other examples of Viennese cuisine include "Tafelspitz" (very lean boiled beef), which is traditionally served with "Gerösteten Erdäpfeln" (boiled potatoes mashed with a fork and subsequently fried) and horseradish sauce, "Apfelkren" (a mixture of horseradish, cream and apple) and "Schnittlauchsauce" (a chives sauce made with mayonnaise and old bread).
Vienna has a long tradition of cakes and desserts. These include Apfelstrudel (hot apple strudel), Palatschinken (sweet pancakes), and Knödel (dumplings) often filled with fruit such as apricots (Marillenknödel). Sachertorte, a dry chocolate cake with apricot jam from the Sacher Hotel, is world famous.
In winter, small street stands sell traditional Maroni (hot chestnuts) and potato fritters. Sausages are also popular and available from street vendors throughout the night. The sausage known as Wiener (German for "Viennese") in the USA and Germany is however called a Frankfurter. Other popular sausages are Burenwurst (a coarse beef and pork sausage, generally boiled) and Käsekrainer (spicy pork with small chunks of cheese).
The Naschmarkt is a permanent market for fruit, vegetables, spices, fish, meat and much more from around the world. The city centre has many speciality food stores, such as the "Julius Meinl am Graben".

Vienna, along with Paris and Prague, is one of the few remaining world capital cities with its own vineyards. The wine is served in small Viennese pubs known as Heuriger, which are especially numerous in the wine growing areas of Döbling (Grinzing, Neustift am Walde, Nußdorf, Salmannsdorf, Sievering) and Floridsdorf (Stammersdorf, Strebersdorf). The wine is often drunk as a spritzer ("G'spritzter") with sparkling water. The Grüner Veltliner, a white wine, is the most widely cultivated wine in Austria.
Beer is next in importance to wine. Vienna has a single large brewery, Ottakringer, and more than ten microbreweries. A "Beisl" is a typical small Austrian pub, of which Vienna has many.

Viennese cafés have an extremely long and distinguished history that dates back centuries, and the caffeine addictions of some famous historical patrons of the oldest are something of a local legend. Traditionally, the coffee comes with a glass of water. Viennese cafés claim to have invented the process of filtering coffee from bounty captured after the second Turkish siege in 1683. Viennese cafés claim that when the invading Turks left Vienna, they abandoned hundreds of sacks of coffee beans. The Emperor gave Franz George Kolschitzky (Polish - Franciszek Jerzy Kulczycki) some of this coffee as a reward for providing information that allowed the Austrians to defeat the Turks. Kolschitzky then opened Vienna's first coffee shop. Julius Meinl set up a modern roasting plant in the same premises where the coffee sacks were found, in 1891.

Viennese cafés
Major tourist attractions include the imperial palaces of the Hofburg and Schönbrunn (also home to the world's oldest zoo, Tiergarten Schönbrunn) and the Riesenrad in the Prater. Cultural highlights include the Burgtheater, the Wiener Staatsoper, the Lipizzaner horses at the spanische Hofreitschule and the Vienna Boys' Choir, as well as excursions to Vienna's Heuriger districts.
There are also more than 100 art museums, which together attract over eight million visitors per year.
There are many popular sites associated with composers who lived in Vienna including Beethoven's various residences and grave at Zentralfriedhof (Central Cemetery) which is the largest cemetery in Vienna and the burial site of many famous people. Mozart has a memorial grave at the Hapsburg gardens and at St. Marx cemetery (where his grave was lost). Vienna's many churches also draw large crowds, the most famous of which are St. Stephen's Cathedral, the Deutschordenskirche, the Jesuitenkirche, the Karlskirche, the Peterskirche, Maria am Gestade, the Minoritenkirche, the Ruprechtskirche, the Schottenkirche and the Votivkirche.
Modern attractions include the Hundertwasserhaus, the United Nations headquarters and the view from the Donauturm.
The Secession building
The Gloriette at Schönbrunn
Schönbrunn Palace
Naturhistorisches Museum
The Riesenrad in the Wiener Prater
The statue of Athena in front of the Austrian Parliament

Tourist attractions
Vienna is the seat of a number of United Nations offices and various international institutions and companies, including the United Nations Industrial Development Organization (UNIDO), the Organization of Petroleum Exporting Countries (OPEC), the International Atomic Energy Agency (IAEA), the Preparatory Commission for the Comprehensive Nuclear-Test-Ban Treaty Organization (CTBTO) and the Organization for Security and Co-operation in Europe (OSCE). Additionally, Vienna is the seat of the United Nations Commission on International Trade Law's secretariat (UNCITRAL). In conjunction, the University of Vienna annually hosts the prestigious Willem C. Vis Moot, an international commercial arbitration competition for students of law from around the world.
Various special diplomatic meetings have been held in Vienna in the latter half of the 20th Century, resulting in various documents bearing the name Vienna Convention or Vienna Document. Among the more important documents negotiated in Vienna are the 1969 Vienna Convention on the Law of Treaties, as well as the 1990 Treaty on Conventional Armed Forces in Europe (CFE).
See also: Vienna Convention

International organizations in Vienna
Alongside the international and intergovernmental organisations, there are dozens of charitable organisations based in Vienna; these organisations provide relief goods and assistance to tens of thousands of disadvantaged children and needy people in developing countries.
One such organisation is the network of SOS Children's Villages, founded by Hermann Gmeiner in 1949. Today, SOS Children's Villages are active in 132 countries and territories worldwide. Others include HASCO and the Childrens Bridge of Hope.

Twin cities

Vienna International Airport
Vienna Circle
List of mayors of Vienna
List of Viennese
List of Honorary Citizens of Vienna
Viennese German