An internal combustion engine is an engine in which combustion, or the burning of fuel, occurs on the inside. This differs from external combustion engines where the fire is outside the engine, such as a steam engine.

There are many kinds of internal combustion engine but the term often means the machine that Niklaus Otto invented.  In this kind, fire makes pressure increase inside a sealed box (cylinder). The pressure pushes a rod which is attached to a wheel. The rod pushes the wheel and makes it spin around. The spinning wheel is attached to other wheels, such as four car wheels, with a belt or a chain. The engine is very strong and can make all the wheels move.

Engine layouts
There can be many configurations of internal combustion engines such as the single piston engine, the inline engine, the flat engine, the V engine, the VR engine, the W engine, the X engine, the U engine, the H engine, the horizontal K engine, the opposed piston engine, the delta engine, the Wankel or rotary engine and the radial engine which is commonly used in planes.

Common layouts
The most common layouts among these engines are the V layout, and the inline layout. In the V engine, the pistons are aligned in a V shape if you look at them from the front. There can be V twin engines, with 2 pistons, V3 engines, V4 engines, V6 engines, V8 engines, V10 engine, V12 engines, V14 engines, V16 engines, V18 engine, V20 engine and V24 engines. The VR layout is the same as a V layout except the angle between the V shape is smaller making the overall drive smoother. In inline engines, the pistons are aligned in a straight line. There can be inline 1 engines, also called a singular piston engine, all the way up to a straight 14 which was mainly used in older models of cars. Flat engines are the same as inline engines but are aligned horizontally.

W, X, U, H, Horizontal K, Delta and opposed piston engines all have different configurations. In the W engine, the pistons are aligned in a W shape if looked at from the front. The Bugatti Chiron, one of the fastest cars in the world, features a W engine. The pistons in a X are aligned to look like an X from the front. In the U engine, there a 2 inline engine with separate crankshafts and a shared output shaft. When looked at from the front of the engine block, it resembles a U shape. H engines are U engines except there are 2 more inline engines attached to the bottom of the existing inline engines from the U engine. The H and the U layout can be configured vertically or horizontally. In delta engines, the pistons are aligned in a triangle shape. However, there are 2 pistons per cylinder/combustion chamber, and therefore the minimum amount of pistons in a delta engine is 6. Horizontal K engines persist of 2 flat pistons facing opposite each other at the bottom and a V engine above them, making them look like a horizontal K. The Opposed piston engines also have 2 pistons per cylinder. They can be aligned Vertically or Horizontally. When there are only 2 pistons in the engine, they can also be called boxer engine.

Radial engines
Radial engines are commonly used in planes but can be rarely used in cars. An example of this is the Porsche 356 and the 1939 Plymouth Pickup. The pistons in are radial engine are aligned in a star shape. When having multiple sets of pistons, the engines can be stacked beside each other.

Rotary/Wankel engines work the same as a piston engine except it doesn't have a piston but instead has a rotor that also cycles through the 4 main stages of engines (intake, compression, combustion and exhaust).

Initial startup
As well as there are many engine layouts, there are many different parts to an engine. Some of these include pistons, camshafts, crankshafts, timing belts, valves and more. All parts of an engine need to be fully functional for it to work and all parts have a separate role. An engine works by first sending power from the car battery to the ignition coil which then causes an engine spark. The spark then ignites combustion in the cylinders and the combustion starts the engine.

There can be petrol or diesel engines in a car. In petrol or gasoline engines, it is required to have an ignition system to burn the fuel and air mixture. However, in diesel engines, the an ignition system is not required to burn the fuel but instead, they use a different type of fuel called diesel, similar to heating oil, and the fuel is burnt through extreme compression.

Mechanics
The car is started using a powerful electric motor, called a starter motor. The car is started using a key which is connected to the starter solenoid (a device that converts electrical energy into mechanical energy or movement) and when the key is turned into the start position, the ignition switch verifies the key belongs to the car normally using an immobilizer system and then connects a circuit, sending power to the starter relay. It then sends 2 jolts of electricity into the solenoid, the larger burst being directly from the battery pack in the car and the other being from the ignition. The magnetic field created from the solenoid connects two metal (metal being a conductor to electricity) contact points, one being the solenoid plunger, together which then relays the electricity into the starter motor. The plunger also engages a fork which pushes the pinion gear (connected to the starter motor) to engage the flywheel automatically, starting the engine.

Forced induction and cooling
For extra power, more air is needed to increase the energy evolved per unit of fuel. This is where forced induction must take place. There are some ways of creating forced induction such as turbochargers and superchargers. Turbochargers rely on the volume and velocity of the exhaust to spin the turbine wheel in the middle of the turbocharger. Turbochargers should consume less power from the engine than superchargers and therefore suffer bad throttle response. This delay can also be referred to as turbo lag. Smaller turbochargers spool quickly and deliver more boost pressure at lower engine speeds but suffers at higher RPMs. On the contrary, bigger turbochargers can deliver more power at higher revs but suffers low throttle response. There can be many turbochargers in a car, but the most common amount being 1 and 2. Superchargers on the other hand, have close to no lag time as the compressor is constantly spinning proportionally to the engine speed. However, they require torque from the engine to operate. Some common types of superchargers are the Roots-type supercharger, a Screw-type supercharger, and a Centrifugal-type supercharger. In a Roots-type supercharger there are paddles on two drums that are continuously rotating, that forces air into the intake. The Roots-type supercharger is a positive displacement device and therefore has the advantage of producing the same pressure ratio at any engine speed. A Screw-type supercharger, like the Roots-type supercharger, is a positive displacement device. They consist of 2 screws that compresses the air and are more efficient than roots type as they create a cooler air output than a roots supercharger but are more difficult to manufacture. A centrifugal-type supercharger, is not a positive displacement device. Although it looks like a turbocharger, they are very different as the power source of the centrifugal supercharger is horsepower from the engines crankshaft whereas a turbocharger uses the exhaust gas to spin the compressor.

When using forced induction, the air temperature rises dramatically. To cool the air at higher temperatures, an intercooler is needed. An intercooler cools the air before it enters the cylinder (combustion chamber) using air or water. When hot air enters the combustion chamber, it decreases the fuel efficiency as warm air holds less oxygen than cool air. An air to air intercooler uses the cool air from outside to cool the existing hot air as it enters the intercooler. The more surface area the intercooler has the cooler the air can get. There are 2 types of air to air intercooler, the bar and plate intercooler and the tube and fin intercooler. Bar and plate intercoolers can cool the air to lower temperature but a tube and fin intercooler can cost less and also weight less. In air to water intercoolers, instead of using air from outside, it uses a cool liquid to cool the air as it passes though and then uses a radiator to cool the cooling liquid. Air to water intercooler are more complex, heavier and more expensive than air to water intercoolers but can be more efficient than them.

Electrical accessories
The car battery is used to power important electrical components such as components used to start the car and stabilize the voltage that keeps the engine running by converting chemical energy into electrical energy.

All the electrical accessories in a car are controlled and powered by an alternator which converts some of the engines mechanical energy into electrical energy. The alternator also charges the internal battery of the car. However the alternator is powered by the timing belt which only moves once the car is started and therefore it cannot be used to start the car and that is why a battery is needed. The alternator works with a timing belt that rests on a pulley attached to the alternator that moves once the car is started. When the timing belt spins the pulley, it turns a rotator shaft attached to the pulley which spins magnets around a coil. The spinning magnets are responsible for creating a current known as alternating current (AC) around the coil and is then directed to the alternators rectifier which changes the AC into another current called direct current (DC). The DC current is used to power the car and its electrical systems.

The cars internal computer, also know as the Electric Control Unit (ECU) decides many things some of which include the fuel injection, exhaust system requirements and throttle response and for petrol engines it also can control the spark plug timing to ignite the mixture of air and fuel in the cylinder. It is primarily powered by the alternator but before the car is started, it must be powered by the battery as it decides the fuel injection and spark timing which are one of the key factors in getting a car started. The internal battery of the car also works as a surge protector (protecting the ECU from AC voltage spikes that typically last from 1 to 30 microseconds and can reach over 1,000 volts) for the ECU.

Transmission
Cars can also have gears. The gears all controlled by the transmission. They can either be manual, automatic or Continuously Variable Transmission (CVT). Gear ratios

Intake and exhaust
The intake manifold is where the car gets the oxygen to burn the fuel

Exhaust in a car is the fumes that come out of the pipe or pipes (normally in back of the car but can be on the sides)

Other information
Engines need oil to make them slippery or the moving parts would grind together and stick. Parts of a car engine are measured to 0.01 of a millimetre and some engine parts fit together very tightly.

Most road vehicles use the internal combustion engine today, and most of those use the four-stroke engine.

Gas turbines are internal combustion engines that work continuously, not by strokes. Rocket engines and guns are internal combustion engines but they do not turn wheels.

Propulsion
Engineering
Motors
Motorcycles
Transport
Auto parts

Internal combustion engine


In cell biology, the  nucleus (pl. nuclei; frae Laitin  or , meanin kernel or seed) is a membrane-enclosed organelle foond in eukaryotic cells. Eukaryotes uisually hae a single nucleus, but a few cell teeps, sic as mammalian reid bluid cells, hae na nuclei, an a few ithers hae mony. Human skeletal muscle cells hae mair nor ane nucleus, as dae eukaryotes lik fungi.

Cell nuclei conteen maist o the cell's genetic material, organised as multiple lang linear DNA molecules in complex wi a muckle variety o proteins, sic as histones, tae form chromosomes. The genes within these chromosomes are the cell's nuclear genome an are structurt in sic a wey tae promote cell function. The nucleus mainteens the integrity o genes an controls the activities o the cell bi regulatin gene expression—the nucleus is, tharefore, the control centre o the cell. The main structurs makkin up the nucleus are the nuclear envelope, a dooble membrane that encloses the entire organelle an isolates its contents frae the cellular cytoplasm, an the nuclear matrix (that includes the nuclear lamina), a network within the nucleus that adds mechanical support, muckle lik the cytoskeleton, that supports the cell as a hale.

Acause the nuclear membrane is impermeable tae muckle molecules, nuclear pores are required tae regulate nuclear transport o molecules athort the envelope. The pores cross baith nuclear membranes, providin a channel throu that muckler molecules maun be actively transportit bi cairier proteins while allouin free muivement o smaw molecules an ions. Muivement o muckle molecules sic as proteins an RNA throu the pores is required for baith gene expression an the maintenance o chromosomes. Awtho the interior o the nucleus daes nae conteen ony membrane-boond sub compartments, its contents are nae uniform, an a nummer o sub-nuclear bouks exeest, made up o unique proteins, RNA molecules, an pairteecular pairts o the chromosomes. The best-kent o thir is the nucleolus, that is mainly involved in the assemmly o ribosomes. Efter bein produced in the nucleolus, ribosomes are exportit tae the cytoplasm whaur thay translate mRNA.

References

Cell anatomy
Organelles

Cell nucleus


The Imhoff tank, named for German engineer Karl Imhoff (1876–1965), is a chamber suitable for the reception and processing of sewage. It may be used for the clarification of sewage by simple settling and sedimentation, along with anaerobic digestion of the extracted sludge. It consists of an upper chamber in which sedimentation takes place, from which collected solids slide down inclined bottom slopes to an entrance into a lower chamber in which the sludge is collected and digested. The two chambers are otherwise unconnected, with the more liquid sewage flowing only through the upper sedimentation chamber and only a slow flow of sludge in the lower digestion chamber. The lower chamber requires separate biogas vents and pipes for the removal of digested sludge, typically after 6–9 months of digestion. The Imhoff tank is in effect a two-story septic tank and retains the septic tank's simplicity while eliminating many of its drawbacks, which largely result from the mixing of fresh sewage and septic sludge in the same chamber.

Imhoff tanks are being superseded in sewage treatment by plain sedimentation tanks using mechanical methods for continuously collecting the sludge, which is moved to separate digestion tanks. This arrangement permits both improved sedimentation results and better temperature control in the digestion process, leading to a more rapid and complete digestion of the sludge.

A test for settleable solids in water, wastewater and stormwater uses an Imhoff cone, with or without stopcock.  The volume of solids is measured after a specified time period at the bottom of a one-liter cone using graduated markings.

See also
Anaerobic digester types
List of waste water treatment technologies

References

External links
 Imhoff Tank implications
 Imhoff OM guide, Texas

Anaerobic digester types
Sewerage infrastructure

Imhoff tank


A Paternoster is a type of elevator. Its design is different from that of other elevators. It has several cabins that constantly move up and down. They are linked on a chain. People can stop on or off at any floor they like.

Paternosters have advantages and disadvantages. As an advantage, it is always possible to take them in either direction. Since the elevator moves at a slow speed, it is slower than a modern elevator. It takes longer to get to distant floors. Also, using a paternoaster takes some training. Paternosters are nearly impossible to use for disabled people.

Elevators

Paternoster


John Alexander Samford (August 29, 1905 – December 1, 1968) was a lieutenant general in the United States Air Force who served as Director of the National Security Agency.

Early life and education
Samford was born at Hagerman, New Mexico, in 1905. He graduated from high school in 1922 and then spent one year at Columbia University in New York City. In 1924, he received a senatorial appointment to the United States Military Academy. He graduated in 1928, 131st in a class of 260.

Military career
Samford's first assignment was that of a student officer at Brooks Field, Texas. In 1929, he received his pilot wings at Kelly Field and was eventually rated a command pilot.

Samford was next assigned to Fort Crockett, located at Galveston, Texas. In 1930, he returned to Kelly Field where he served as a flying instructor. In 1934, he was ordered to an Engineering and Armament School at Chanute Field, Illinois. From 1935 until 1942, he held various assignments in Panama, Virginia, Louisiana and Florida.

Samford was assistant chief of staff, G-1, Headquarters Third Air Force, in Tampa, Florida, when appointed chief of staff of the VIII Air Force Composite Command located in Northern Ireland.

In 1943, Samford was appointed deputy chief of staff of the Eighth Air Force, and later chief of staff of the VIII Bomber Command.

In 1944, Samford was promoted to brigadier general and appointed chief of staff of the Eighth Air Force. In October 1944 he was appointed deputy assistant chief of staff, A-2, Headquarters U.S. Army Air Forces.

In January 1947, Samford was appointed commander, 24th Composite Wing which soon thereafter became the Antilles Air Division of the Caribbean Air Command.

In May 1949, Samford was appointed commandant of the Air Command and Staff School. He was promoted to major general in 1950 and held a brief appointment as commandant of the Air War College before being appointed director of intelligence for the United States Air Force.

It was during Samford's tenure as director of Air Force intelligence that Project Blue Book, which investigated unidentified flying objects (UFOs) was started. On July 29, 1952, Samford conducted a press conference at the Pentagon related to UFOs. Samford was mentioned at the beginning of the 1956 film UFO which examined the phenomena of unidentified flying objects.

Samford served as Vice Director of the National Security Agency from June to August 1956. In November, Samford was appointed director of the National Security Agency and promoted to lieutenant general. He held this post until his retirement on November 23, 1960. His successor as NSA director was Admiral Laurence H. Frost. He died on November 20, 1968, in Washington, DC.

Awards
Command Pilot Wings
Army Distinguished Service Medal
Legion of Merit with oak leaf cluster
Air Medal
American Defense Service Medal
American Campaign Medal
European-African-Middle Eastern Campaign Medal
World War II Victory Medal
National Defense Service Medal
Officer, Legion of Honor (France)

References

External links

1905 births
1968 deaths
American aviators
Aviators from New Mexico
People from Chaves County, New Mexico
United States Air Force generals
United States Army personnel of World War II
Directors of the National Security Agency
United States Military Academy alumni
Deputy Directors of the National Security Agency
Mackay Trophy winners
Recipients of the Distinguished Service Medal (US Army)

John A. Samford


In computer science, the Bron–Kerbosch algorithm is an enumeration algorithm for finding all maximal cliques in an undirected graph. That is, it lists all subsets of vertices with the two properties that each pair of vertices in one of the listed subsets is connected by an edge, and no listed subset can have any additional vertices added to it while preserving its complete connectivity. The Bron–Kerbosch algorithm was designed by Dutch scientists Coenraad Bron and Joep Kerbosch, who published its description in 1973.

Although other algorithms for solving the clique problem have running times that are, in theory, better on inputs that have few maximal independent sets, the Bron–Kerbosch algorithm and subsequent improvements to it are frequently reported as being more efficient in practice than the alternatives. It is well-known and widely used in application areas of graph algorithms such as computational chemistry.

A contemporaneous algorithm of , although presented in different terms, can be viewed as being the same as the Bron–Kerbosch algorithm, as it generates the same search tree.

Without pivoting
The basic form of the Bron–Kerbosch algorithm is a recursive backtracking algorithm that searches for all maximal cliques in a given graph G. More generally, given three disjoint sets of vertices R, P, and X, it finds the maximal cliques that include all of the vertices in R, some of the vertices in P, and none of the vertices in X. In each call to the algorithm, P and X are disjoint sets whose union consists of those vertices that form cliques when added to R. In other words, P ∪ X is the set of vertices which are joined to every element of R. When P and X are both empty there are no further elements that can be added to R, so R is a maximal clique and the algorithm outputs R.

The recursion is initiated by setting R and X to be the empty set and P to be the vertex set of the graph. Within each recursive call, the algorithm considers the vertices in P in turn; if there are no such vertices, it either reports R as a maximal clique (if X is empty), or backtracks. For each vertex v chosen from P, it makes a recursive call in which v is added to R and in which P and X are restricted to the neighbor set N(v) of v, which finds and reports all clique extensions of R that contain v. Then, it moves v from P to X to exclude it from consideration in future cliques and continues with the next vertex in P.

That is, in pseudocode, the algorithm performs the following steps:

 algorithm BronKerbosch1(R, P, X) is
     if P and X are both empty then
         report R as a maximal clique
     for each vertex v in P do
         BronKerbosch1(R ⋃ {v}, P ⋂ N(v), X ⋂ N(v))
         P := P \ {v}
         X := X ⋃ {v}

With pivoting
The basic form of the algorithm, described above, is inefficient in the case of graphs with many non-maximal cliques: it makes a recursive call for every clique, maximal or not. To save time and allow the algorithm to backtrack more quickly in branches of the search that contain no maximal cliques, Bron and Kerbosch introduced a variant of the algorithm involving a "pivot vertex" u, chosen from P (or more generally, as later investigators realized, from P ⋃ X). Any maximal clique must include either u or one of its non-neighbors, for otherwise the clique could be augmented by adding u to it. Therefore, only u and its non-neighbors need to be tested as the choices for the vertex v that is added to R in each recursive call to the algorithm. In pseudocode:

 algorithm BronKerbosch2(R, P, X) is
     if P and X are both empty then
         report R as a maximal clique
     choose a pivot vertex u in P ⋃ X
     for each vertex v in P \ N(u) do
         BronKerbosch2(R ⋃ {v}, P ⋂ N(v), X ⋂ N(v))
         P := P \ {v}
         X := X ⋃ {v}

If the pivot is chosen to minimize the number of recursive calls made by the algorithm, the savings in running time compared to the non-pivoting version of the algorithm can be significant.

With vertex ordering
An alternative method for improving the basic form of the Bron–Kerbosch algorithm involves forgoing pivoting at the outermost level of recursion, and instead choosing the ordering of the recursive calls carefully in order to minimize the sizes of the sets  of candidate vertices within each recursive call.

The degeneracy of a graph  is the smallest number  such that every subgraph of  has a vertex with degree  or less. Every graph has a degeneracy ordering, an ordering of the vertices such that each vertex has  or fewer neighbors that come later in the ordering; a degeneracy ordering may be found in linear time by repeatedly selecting the vertex of minimum degree among the remaining vertices. If the order of the vertices  that the Bron–Kerbosch algorithm loops through is a degeneracy ordering, then the set  of candidate vertices in each call (the neighbors of  that are later in the ordering) will be guaranteed to have size at most . The set  of excluded vertices will consist of all earlier neighbors of , and may be much larger than . In recursive calls to the algorithm below the topmost level of the recursion, the pivoting version can still be used.

In pseudocode, the algorithm performs the following steps:

 algorithm BronKerbosch3(G) is
     P = V(G)
     R = X = empty
     for each vertex v in a degeneracy ordering of G do
         BronKerbosch2({v}, P ⋂ N(v), X ⋂ N(v))
         P := P \ {v}
         X := X ⋃ {v}

This variant of the algorithm can be proven to be efficient for graphs of small degeneracy, and experiments show that it also works well in practice for large sparse social networks and other real-world graphs.

Example

In the example graph shown, the algorithm is initially called with R = Ø, P = {1,2,3,4,5,6}, and X = Ø. The pivot u should be chosen as one of the degree-three vertices, to minimize the number of recursive calls; for instance, suppose that u is chosen to be vertex 2. Then there are three remaining vertices in P \ N(u): vertices 2, 4, and 6.

The iteration of the inner loop of the algorithm for v = 2 makes a recursive call to the algorithm with R = {2}, P = {1,3,5}, and X = Ø.  Within this recursive call, one of 1 or 5 will be chosen as a pivot, and there will be two second-level recursive calls, one for vertex 3 and the other for whichever vertex was not chosen as pivot. These two calls will eventually report the two cliques {1,2,5} and {2,3}. After returning from these recursive calls, vertex 2 is added to X and removed from P.

The iteration of the inner loop of the algorithm for v = 4 makes a recursive call to the algorithm with R = {4}, P = {3,5,6}, and X = Ø (although vertex 2 belongs to the set X in the outer call to the algorithm, it is not a neighbor of v and is excluded from the subset of X passed to the recursive call). This recursive call will end up making three second-level recursive calls to the algorithm that report the three cliques {3,4}, {4,5}, and {4,6}. Then, vertex 4 is added to X and removed from P.

In the third and final iteration of the inner loop of the algorithm, for v = 6, there is a recursive call to the algorithm with R = {6}, P = Ø, and X = {4}. Because this recursive call has P empty and X non-empty, it immediately backtracks without reporting any more cliques, as there can be no maximal clique that includes vertex 6 and excludes vertex 4.

The call tree for the algorithm, therefore, looks like:

 BronKerbosch2(Ø, {1,2,3,4,5,6}, Ø)
     BronKerbosch2({2}, {1,3,5}, Ø)
         BronKerbosch2({2,3}, Ø, Ø): output {2, 3}
         BronKerbosch2({2,5}, {1}, Ø)
             BronKerbosch2({1,2,5}, Ø, Ø): output {1,2,5}
     BronKerbosch2({4}, {3,5,6}, Ø)
         BronKerbosch2({3,4}, Ø, Ø): output {3,4}
         BronKerbosch2({4,5}, Ø, Ø): output {4,5}
         BronKerbosch2({4,6}, Ø, Ø): output {4,6}
     BronKerbosch2({6}, Ø, {4}): no output

The graph in the example has degeneracy two; one possible degeneracy ordering is 6,4,3,1,2,5. If the vertex-ordering version of the Bron–Kerbosch algorithm is applied to the vertices, in this order, the call tree looks like

 BronKerbosch3(G)
     BronKerbosch2({6}, {4}, Ø)
         BronKerbosch2({6,4}, Ø, Ø): output {6,4}
     BronKerbosch2({4}, {3,5}, {6})
         BronKerbosch2({4,3}, Ø, Ø): output {4,3}
         BronKerbosch2({4,5}, Ø, Ø): output {4,5}
     BronKerbosch2({3}, {2}, {4})
         BronKerbosch2({3,2}, Ø, Ø): output {3,2}
     BronKerbosch2({1}, {2,5}, Ø)
         BronKerbosch2({1,2}, {5}, Ø)
             BronKerbosch2({1,2,5}, Ø, Ø): output {1,2,5}
     BronKerbosch2({2}, {5}, {1,3}): no output
     BronKerbosch2({5}, Ø, {1,2,4}): no output

Worst-case analysis
The Bron–Kerbosch algorithm is not an output-sensitive algorithm: unlike some other algorithms for the clique problem, it does not run in polynomial time per maximal clique generated. However, it is efficient in a worst-case sense: by a result of , any n-vertex graph has at most 3n/3 maximal cliques, and the worst-case running time of the Bron–Kerbosch algorithm (with a pivot strategy that minimizes the number of recursive calls made at each step) is O(3n/3), matching this bound.

For sparse graphs, tighter bounds are possible. In particular the vertex-ordering version of the Bron–Kerbosch algorithm can be made to run in time , where  is the degeneracy of the graph, a measure of its sparseness. There exist -degenerate graphs for which the total number of maximal cliques is , so this bound is close to tight.

Notes

References

.
.
.
.
.
.
.
.
.
.

External links
 Review of the Bron-Kerbosch algorithm and variations by Alessio Conte
 Bron-Kerbosch algorithm implementation visualized in Javascript
 Bron-Kerbosch algorithm implementation in Python
 Bron-Kerbosch algorithm with vertex ordering implementation in Python
 Bron-Kerbosch algorithm implementation in C++
 Bron-Kerbosch algorithm implementation in C++11 with unit tests
 C++ implementation of the algorithms presented in Eppstein, Strash (2011) by Darren Strash
 Finding all cliques of an undirected graph. Seminar notes by Michaela Regneri, January 11, 2007.
 Bron-Kerbosch, algorithms implementation in PHP, library with composer install by Sergio Zambrano

Graph algorithms
Articles with example pseudocode

Bron–Kerbosch algorithm


Viscount Allendale, of Allendale and Hexham in the County of Northumberland, is a title in the Peerage of the United Kingdom. It was created on 5 July 1911 for the Liberal politician Wentworth Beaumont, 2nd Baron Allendale. The title of Baron Allendale, of Allendale and Hexham in the County of Northumberland, had been created in the Peerage of the United Kingdom on 20 July 1906 for his father, the Yorkshire mining magnate and Liberal Member of Parliament, Wentworth Beaumont. The first Viscount's son, the second Viscount, notably served as Lord Lieutenant of Northumberland between 1949 and 1956.  the titles are held by the latter's grandson, the fourth Viscount, who succeeded his father in 2002.

Several other members of the Beaumont family have also gained distinction. Thomas Wentworth Beaumont, father of the first Baron, was a politician. Hubert Beaumont, third son of the first Baron Allendale, was a Liberal politician. His grandson was Timothy Beaumont, Baron Beaumont of Whitley.

The family seats are Bywell Hall, in Bywell and Stocksfield Hall, in Stocksfield, both in Northumberland. They also owned Bretton Hall in West Yorkshire.

Coat of arms
The heraldic blazon for the coat of arms of the viscountcy is: Gules, a lion rampant or armed and langued azure between eight crescents in orle of the second. This can be translated as: a red shield with a golden lion rampant with blue claws and tongue between eight golden crescents arranged around the edge of the shield.

Barons Allendale (1906)
Wentworth Blackett Beaumont, 1st Baron Allendale (1829–1907)
Wentworth Canning Beaumont, 2nd Baron Allendale (created Viscount Allendale in 1911)

Viscounts Allendale (1911)
Wentworth Canning Beaumont, 1st Viscount Allendale (1860–1923)
Wentworth Henry Canning Beaumont, 2nd Viscount Allendale (1890–1956)
Wentworth Hubert Charles Beaumont, 3rd Viscount Allendale (1922–2002)
Wentworth Peter Ismay Beaumont, 4th Viscount Allendale (b. 1948)

The heir apparent is the present holder's son, Wentworth Ambrose Ismay Beaumont (b. 1979).
The heir apparent's heir apparent is his son Wentworth Louis Canning Beaumont (b. 2013).

Notes

References
Kidd, Charles, Williamson, David (editors). Debrett's Peerage and Baronetage (2003 edition). London: Pan Macmillan, 2003.

External links

Viscountcies in the Peerage of the United Kingdom
Noble titles created in 1911
Noble titles created for UK MPs

Viscount Allendale


The Nintendo DSi XL (called Nintendo DSi LL in Japan) is a handheld game console made and manufactured by Nintendo. It is the fourth and final model in the Nintendo DS family. It is a bigger version of the Nintendo DSi and the biggest, heaviest, and brightest of the four models. It has bigger screens than the original DS, DS Lite, or regular DSi. It was first sold in Japan on 21 November 2009, in Europe on 5 March 2010, in North America on 28 March 2010, and in Australia on 15 April 2010. The DSi XL comes with several titles with the console including Flipnote Studio, Brain Age: Math, Brain Age: Spelling and Arts, and Photo Clock. Like the DSi, the Game Boy Advance slot is removed. It was discontinued in 2014.

References

Nintendo video game consoles
Handheld video games

Nintendo DSi XL


A receptor antagonist is a biological repressor molecule. A receptor antagonist slows down the cell by stopping some of the cell reactions by clogging up the areas that make the cell work. They are sometimes called blockers, such as beta blockers. An antagonist is a ligand which blocks or dampens a biological effect. It acts against an agonist. They may block enzymes or passages through cell membranes.

They are part of the homeostatic system which regulates the body physiology. Some are made for pharmaceutical uses.

Drugs
Biochemistry

Receptor antagonist


Andre Levins, also known as A+ (born August 29, 1981,
Hempstead, New York) is an American rapper. As a teenager he released albums in 1996 and in 1999.

History
A+ began his music career in 1995, after winning a national talent competition sponsored by Def Jam Records.
He was the first act signed to Kedar Massenburg's record label, Kedar Entertainment. According to Massenburg, the A+ moniker "means that he's striving for perfection, and he's not really talking about the same things as other young rappers." In 1996, at the age of 14, A+ released his first album, The Latch-Key Child, which featured contributions from Prodigy and Q-Tip.
"All I See" was chosen as the lead single, and it peaked at number 66 on the Billboard Hot 100 chart, staying for 14 weeks.

His second album, Hempstead High, was released in February 1999.
Guest appearances on the album included DeBarge, the Lost Boyz and Canibus.
The single "Enjoy Yourself", which sampled the 1976 Walter Murphy song "A Fifth of Beethoven",
reached the top five of the UK Singles Chart, number 63 of the US Hot 100 for three weeks,) and was also commercially successful in Germany and Japan.

Discography

Albums

Singles

References

1981 births
African-American male rappers
American male rappers
Living people
People from Hempstead (village), New York
People from Long Island
Rappers from New York City
Universal Motown Records artists
21st-century African-American musicians
20th-century African-American musicians

de:A+

A+ (rapper)


Hernando Franco (1532 – November 28, 1585) was a Spanish composer of the Renaissance, who was mainly active in Guatemala and Mexico.

Life

Franco was born in Galizuela (now part of Esparragosa de Lares, Badajoz Province) in Extremadura, a source region for many people who came to the New World in the 16th century. He was trained in music as a choir boy, and later apprentice and journeyman, at Segovia Cathedral by Gerónimo de Espinar, who may also have been a teacher of Tomás Luis de Victoria. While a youth he met and befriended Lázaro del Álamo, who was to precede him as maestro de capilla in Mexico City.

Most likely Franco went to Nueva España in the 1550s, though there is no record of his activities until 1571 when he appears in the records as maestro de capilla of the cathedral of Santiago de Guatemala, the capital city of the Captaincy General of Guatemala. That magnificent building, since destroyed by an earthquake, had been newly constructed in the valley of Panchoy, present-day Antigua Guatemala, after the city had to be moved from the previous site in the Almolonga valley.

Franco left that position in 1574 after a series of budget cuts that affected his salary, and undertook the journey to Mexico. Here he was fortunate to find the position of maestro de capilla of the new cathedral vacant. He was appointed the new chapel master in 1575, where his old friend Lázaro del Álamo had been maestro de capilla from 1556 to 1570.

Franco was clearly a well-respected and beloved figure, since he was granted a prebend in 1581 and contemporary documents contain numerous references to his exemplary character and musicianship. He resigned in 1582 during a period of financial difficulties in Mexico City, and died in 1585. He is buried in the cathedral's main chapel.

Work and influence

Franco wrote 20 motets which survive, as well as 16 Magnificat settings and a setting for four voices of the Lamentations of Jeremiah. He seems to have written no masses, an unusual omission for a composer who headed a Spanish chapel choir, but it is possible that much of his music has been lost. Some hymns in the Nahuatl language by a composer of the same name (Hernando don Franco) are now presumed to be the work of a native composer who took Franco's name, as was the custom, on his conversion to Christianity and baptism (if so, they may be the earliest extant notated music in the European tradition by a Native American composer).

Franco's style is related to that of other Spanish composers of the period, though more conservative, treating dissonance carefully, avoiding chromaticism and virtuosity; indeed tending towards austerity. His settings of the Magnificat were influenced by those by Cristóbal de Morales. The voice range of his works is limited, and may reflect the singing abilities of his choirs, which were not up to the musical standards of those in Europe.

Franco is the earliest known composer in Guatemala; his two pieces in the archives of the Guatemala cathedral, a Lumen ad revelationem and a Benedicamus Domino, are the earliest surviving manuscripts from the area. Other composers preceded him in Mexico, but he was considered by his contemporaries to be the finest of the 16th century there.

References and further reading

 "Franco, Hernando", "Guatemala", in The New Grove Dictionary of Music and Musicians, ed. Stanley Sadie. 20 vol. London, Macmillan Publishers Ltd., 1980.
 Barwick, Steven. The Franco Codex of the Cathedral of Mexico City. Carbondale, Illinois: Southern Illinois University Press, 1965.
 Barwick, Steven. Two Mexico City Choirbooks of 1717. Carbondale, Illinois: Southern Illinois University Press, 1982.
 Lehnhoff, Dieter. Creación musical en Guatemala. Guatemala City: Editorial Galería Guatemala, 2005, 42–3.
 Reese, Gustave. Music in the Renaissance. New York: W.W. Norton & Co., 1954.
 Snow, Robert L. A New World Collection of Polyphony. Chicago, Illinois: University of Chicago Press, 1996.
 Tello, Aurelio. "Franco, Hernando". Diccionario de la Música Española e Hispanoamericana, 10 vols., ed. Emilio Casares Rodicio. Madrid: Sociedad General de Autores y Editores, 1999, 5/247-8.

External links

1532 births
1585 deaths
People from the Province of Badajoz
Musicians from Extremadura
Guatemalan composers
Male composers
Renaissance composers
Male classical composers
Spanish male musicians

Hernando Franco


Pineau des Charentes, (Pineau Charentais, or simply Pineau) is a regional aperitif of western France, made in the départements of Charente, Charente-Maritime, and (to a lesser extent) Dordogne. While popular within its region of production, it is less well known in other regions of France and somewhat uncommon abroad.

It is a fortified wine (mistelle or vin de liqueur), made from either fresh, unfermented grape juice or a blend of lightly fermented grape must, to which a Cognac eau-de-vie is added and then matured.

Pineau is also found as a home-made product in the neighbouring Deux-Sèvres and Vendée départements. There is also a similar drink called "Troussepinette" that is made in the Vendée, which is often flavoured with pine or fruits such as pear. Elsewhere in France analogous drinks are made (Macvin in Jura, Floc de Gascogne in the Armagnac area; there is also Pommeau, similarly made by blending apple juice and apple brandy), but these products are much less well known nationally and internationally than Pineau.

History
According to legend, during the harvest of 1589, a winemaker accidentally added grape must into a barrel that he believed was empty but in fact contained eau de vie. The mixture was duly returned to the cellars for fermentation. A few years later, the barrel was retrieved and was found to contain the drink that is now associated with the region of Charente. In 1921, a winemaker from Burie (Charente-Maritime), Emile Daud and P&C, commercialised the drink.

Varieties

White pineau
The dominant white variety of pineau is made using the grapes Ugni blanc, Folle blanche and Colombard, with occasional Sémillon, Sauvignon blanc and Montils. The mixture is aged for at least 18 months, including a minimum of 8 months in oak barrels. It is typically two years old when bottled.

The resulting drink is between 16% and 22% ABV (but in commercial practice nearly always 17%) and is traditionally a deep gold in color, but colors and qualities vary from vineyard to vineyard, depending on the lie of the land, the soil composition and the grape used. The taste is predominantly sweet, but is balanced by both acidity and the increased level of alcohol.

Finer varieties are aged for over 5 years in barrel, and often for several decades. After 5 years, it is called vieux pineau, and if barrel aged for more than 10 years, très vieux pineau. Très vieux pineau is more of a rarity, given its more stringent quality and maturation standards. Normandin-Mercier is a Cognac house known for producing a fine, long-lived example of très vieux pineau. Before these age designations can be used on the label, an examining commission must certify both the duration of aging and the finished product.

Red/rosé pineau

The red and rosé varieties, very popular locally, are made from the grapes Cabernet Franc, Cabernet Sauvignon, and Merlot, and are aged for at least 14 months, including a minimum of 8 months in oak barrels. The finished drink is again between 16% and 22% ABV (usually 17%) and varies between a deep mahogany brown colour and a very dark pink.

Production
The annual production of pineau is around 14,000,000 litres. Around 80% of this is made in the Charente-Maritime département.
Its production is controlled under the Appellation d'Origine Contrôlée 'vin de liqueur' classification, though it is not a wine in the ordinary sense. In principle the same producer grows the grapes, makes the wine and distills it into brandy, presses the fresh grape juice and then blends and matures the result. The geographical zone authorized for the production of Pineau des Charentes AOC is practically identical with that for Cognac, and in fact many of the artisanal producers of pineau (numbering several hundred) also sell their own Cognac.

When a good harvest is expected, the best grapes may be picked by hand, however most producers harvest most of their crop mechanically. Very strict rules and formulae for the ratios of brandy and fresh grape juice are followed by each vintner and the process is even more tightly controlled for organic producers. The year of the pineau depends on the year of the eau de vie and not on the grape juice, as the juice must be freshly squeezed from freshly picked grapes – literally squeezed and mixed the same day as harvesting.

The act of mixing the eau de vie with the fresh grape juice is referred to as "assemblage", assembly or blending. It stops the fermentation of the grape must through a process called "mutage".

An increasing number of vineyards in the area now produce and sell pineau in which both the grape juice and the brandy come from organically-grown grapes. Their products have certification.

Storing and serving
Like other fortified wines such as Sherry, Pineau des Charentes does not benefit from aging. However, storing unopened bottles away from sources of light will do no harm to the wine, although bottles should be stored upright to reduce the exposed surface area. Once opened, Pineau des Charentes will keep for some time in the refrigerator.

Pineau des Charentes should be served chilled (8–10 °C) in a tulip-shaped glass such as a sherry glass. The taper of this type of glass better enhances the aroma of the wine.

See also
French wine

References

 Keggler, Johnny. Le Pineau, The Passion of the Charente / La Passion Charentaise. Switzerland and France: kfm Verlag. English / French. p. 128.

External links
 Pineau des Charentes official site

Mistelle
Fortified wine
Charente AOCs

Pineau des Charentes


Newfoundland is an island off the east Coast of North America, and is part of the Canadian province of Newfoundland and Labrador. The capital city of Newfoundland is St. John's, on the north-east part of the island. Over 500,000 people live in Newfoundland (these people are called Newfoundlanders). It, along with Labrador on the mainland, became part of Canada on March 31, 1949. There is no bridge or tunnel from Newfoundland to the rest of the country but there is a ferry to Nova Scotia.

In Newfoundland, most people speak English, but there are also French speakers on the island, mostly in the south-west. In some areas of Newfoundland, people speak with an accent and use words that are not in standard English. There is even a dictionary of Newfoundland English.

The first people in Newfoundland were the First Nations. Settlers came from countries like Norway, England, Portugal, France, and Ireland in the 16th century. The first European explorers were the Vikings from Norway and they settled in L'Anse aux Meadows. They came because of the good fishing off the coast, especially off the south-east coast. Eventually they left because of disagreements with aboriginals. Today, there is still fishing, but not very much because people fished too much, and now there are not many fish left.

Cutting down trees and mining have also been attractions of the island. There are some paper mills (paper factories) in a few cities in Newfoundland.

Other websites
 Government of Newfoundland and Labrador
 Welcome Page for Newfoundland and Labrador
 Newfoundland Tourism

Geography of Newfoundland and Labrador
Islands of Canada
Atlantic islands

Newfoundland


All the Stuff (And More) Volume One is a compilation album by the Ramones. It includes their first two albums, Ramones and Leave Home, in their entirety, with the exception of "Carbona Not Glue," a song that was on the original release of Leave Home but was later removed from the album under pressure from the Carbona company and replaced with an early mix of "Sheena is a Punk Rocker." Also included are a handful of bonus tracks of varying origins: "I Don't Wanna Be Learned/I Don't Wanna Be Tamed" and "I Can't Be" were early, previously unreleased demos; "Babysitter" had originally been the b-side to the "Do You Wanna Dance?" single and was the first replacement of "Carbona Not Glue"; and the final two tracks, "California Sun" and "I Don't Wanna Walk Around With You," are live tracks recorded at The Roxy in Los Angeles, California and released as the b-sides of both the "I Wanna Be Your Boyfriend" and "I Remember You" singles in 1976. Liner notes were written by Oedipus of Boston punk fame.

Track listing
All songs written by the Ramones, except where indicated.

 "Blitzkrieg Bop" (Tommy Ramone) – 2:12
 "Beat on the Brat" (Joey Ramone) – 2:31
 "Judy Is a Punk" (Dee Dee Ramone, Joey Ramone) – 1:30
 "I Wanna Be Your Boyfriend" (Tommy Ramone) – 2:15
 "Chain Saw" (Joey Ramone) – 1:55
 "Now I Wanna Sniff Some Glue" (Dee Dee Ramone) – 1:35
 "I Don't Wanna Go Down to the Basement" (Dee Dee Ramone / Johnny Ramone) – 3:37
 "Loudmouth" (Dee Dee Ramone / Johnny Ramone) – 2:14
 "Havana Affair" (Dee Dee Ramone / Johnny Ramone) – 1:56
 "Listen to My Heart" – 1:57
 "53rd & 3rd" (Dee Dee Ramone) – 2:21
 "Let's Dance" (Jimmy Lee) – 1:52
 "I Don't Wanna Walk Around With You" (Dee Dee Ramone) – 1:43
 "Today Your Love, Tomorrow the World" (Dee Dee Ramone) – 2:10
 "I Don't Wanna Be Learned / I Don't Wanna Be Tamed" (Joey Ramone) – 1:03
 "I Can't Be" (Joey Ramone) – 1:51
 "Glad to See You Go" (lyrics by Dee Dee Ramone, music by Joey Ramone) – 2:10
 "Gimme Gimme Shock Treatment" (Dee Dee Ramone, Johnny Ramone) – 1:38
 "I Remember You" (Joey Ramone) – 2:15
 "Oh Oh I Love Her So" (Joey Ramone) – 2:03
 "Sheena Is a Punk Rocker" (Joey Ramone) – 2:44
 "Suzy Is a Headbanger" – 2:08
 "Pinhead" (Dee Dee Ramone) – 2:42
 "Now I Wanna Be a Good Boy" (Dee Dee Ramone) – 2:10
 "Swallow My Pride" (Joey Ramone) – 2:03
 "What's Your Game" (Joey Ramone) – 2:33
 "California Sun" (Henry Glover, Morris Levy) – 1:58
 "Commando" (Dee Dee Ramone) – 1:51
 "You're Gonna Kill That Girl" (Joey Ramone) – 2:36
 "You Should Never Have Opened That Door" (Dee Dee Ramone, Johnny Ramone) – 1:54
 "Babysitter" (Joey Ramone) – 2:45
 "California Sun" (Live) (Henry Glover / Morris Levy) – 1:45
 "I Don't Wanna Walk Around With You" (Live) (Dee Dee Ramone) – 1:35

Charts

References

Albums produced by Tony Bongiovi
1990 compilation albums
Ramones compilation albums
Sire Records compilation albums

All the Stuff (And More) Volume One


The Strip District is a neighborhood in Pittsburgh, Pennsylvania, United States. It is a one-half square mile area of land northeast of the central business district bordered to the north by the Allegheny River and to the south by portions of the Hill District.  The Strip District runs between 11th and 33rd Streets and includes four main thoroughfares—Railroad Street/Waterfront Place, Smallman Street, Penn Avenue, and Liberty Avenue—as well as various side streets.

Once home to many mills and factories, today the Strip District is a destination for groceries, restaurants, bars, and art. Recently, it has become home to dozens of tech and robotics companies as well as a rapidly growing residential population.

History
In the early 19th century, the Strip District was home to many mills and factories as its location along the Allegheny River made for easy transportation of goods and shipping of raw materials.  It was the home of the Fort Pitt Foundry, source of large cannons before and during the American Civil War, including a  bore Rodman Gun. Early industrial tenants of the Strip District included U.S. Steel, Westinghouse, The Pittsburgh Reduction Company (ALCOA), and later The H.J. Heinz Company, famous ketchup and condiment manufacturer.

The shipping infrastructure built around the manufacturing companies attracted other types of merchants to set up shop in the Strip.  By the early 20th century, the Strip District became a vibrant network of wholesalers—mostly fresh produce, meat, and poultry dealers.  Soon, auction houses rose around the wholesale warehouses. Many restaurants and grocery stores opened to feed hungry shift workers at any hour of the day. By the 1920s, the Strip District was the economic center of Pittsburgh.

By the mid-to-late 20th century, fewer of the Strip's products were being shipped by rail and boat, causing many produce sellers and wholesalers to leave the area for other space with easier access to highways, or where there was more land available for expansion.  In the early 21st century, there are still several wholesalers and produce dealers in the Strip District, but some estimates say more than 80% of the produce industry left the area, preceded by the manufacturing plants and mills in the mid to late 20th century restructuring of industry.  Today, many of the abandoned warehouses have been renovated as small specialty shops, restaurants, nightclubs, and bars.  The historic St. Stanislaus Kostka Church, an 1891 landmark built in the ornate Polish Cathedral style, lies in the heart of the Strip District and served early generations of Polish immigrants.

Today
Since the late 20th century, the area has developed into a historic market district with many ethnic food purveyors, some art studios, antique dealers, unique boutiques, and other businesses setting up shop where trains once delivered produce by the ton.  The lack of weekday activity is in someways compensated by retail and leisure facilities which are used primarily on weekends. Particularly in the summer months, there are open-air farmers' markets, a range of street vendors and facilities to enjoy open air drinks. Residential developers have begun to convert old factory and warehouse buildings into apartments and lofts. Examples include the Armstrong Cork Factory, Brake House Lofts, and the Otto Milk Building.

More recently, the area has attracted a number of technology companies and become a hotbed for autonomous vehicle and robotics technology. The area is home to Uber's Advanced Technology Group, which leads the company's vehicular automation efforts, as well Argo AI and Aurora Innovation. Other technology companies with offices in the Strip District include Apple, Facebook, Denso, Robert Bosch GmbH, Target Corporation, Wombat Security, JazzHR, Petuum, and BossaNova Robotics.

Surrounding and adjacent Pittsburgh neighborhoods
The Strip District has five land borders, including Downtown to the southwest, Crawford-Roberts, Bedford Dwellings and Polish Hill to the south, and Lower Lawrenceville to the northeast.

Across the Allegheny River, the Strip runs adjacent with the North Shore and Troy Hill with direct links to both neighborhoods via 16th Street and 31st Street Bridges, respectively.

Gallery

See also
Wholey's
Pittsburgh Public Market
Enrico Biscotti Company
Heinz History Center
Primanti Brothers

References

Further reading
Washington Post article

External links

 Neighborhood website
Test Strips Pittsburgh

Neighborhoods in Pittsburgh
Warehouse districts of the United States
Shopping districts and streets in the United States
Entertainment districts in the United States
Economy of Pittsburgh

Strip District, Pittsburgh


Code division multiple access (CDMA) is a channel access method utilized by various radio communication technologies. It should not be confused with the mobile phone standards called cdmaOne and CDMA2000 (which are often referred to as simply "CDMA"), which use CDMA as an underlying channel access method.

One of the basic concepts in data communication is the idéa of allowing several transmitters to send information simultanéously over a single communication channel. This allows several users to share a bandwidth of different frequencies. This concept is called multiplexing. CDMA employs spread-spectrum technology and a special coding scheme (where éach transmitter is assigned a code) to allow multiple users to be multiplexed over the same physical channel. By contrast, time division multiple access (TDMA) divides access by time, while frequency-division multiple access (FDMA) divides it by frequency. CDMA is a form of "spread-spectrum" signaling, since the modulated coded signal has a much higher data bandwidth than the data being communicated.

An analogy to the problem of multiple access is a room (channel) in which péople wish to communicate with éach other. To avoid confusion, péople could take turns spéaking (time division), spéak at different pitches (frequency division), or spéak in different languages (code division). CDMA is analogous to the last example where péople spéaking the same language can understand éach other, but not other péople. Similarly, in radio CDMA, éach group of users is given a shared code. Many codes occupy the same channel, but only users associated with a particular code can understand éach other.

Kagunaan

 Panggunaan aplikasi mimiti pikeun CDMA nyaéta dina GPS.
 Standar Qualcomm IS-95, dipasarkeun sebagei CdmaOne
 Standar Qualcomm IS-2000, dipasarkeun sebagei CDMA2000. Standar ieu dipaké ku sabaraha pausahaan telepon seluler.
 CDMA dipaké kanggo sistem satelit OmniTRACS kanggo logistik transportasi.

Tahap dina modulasi CDMA
CDMA is a spréad spectrum multiple access technique. A spréad spectrum technique is one which spréads the bandwidth of the data uniformly for the same transmitted power. Spréading code is a pseudo-random code which has a narrow Ambiguity function unlike other narrow pulse codes. In CDMA a locally generated code runs at a much higher rate than the data to be transmitted.  Data for transmission is simply logically XOR (exclusive OR) added with the faster code. The figure shows how spréad spectrum signal is generated. The data signal with pulse duration of  is XOR added with the code signal with pulse duration of .  (Note: bandwidth is proportional to  where  = bit time) Therefore, the bandwidth of the data signal is  and the bandwidth of the spréad spectrum signal is .  Since  is much smaller than , the bandwidth of the spréad spectrum signal is much larger than the bandwidth of the original signal. The ratio  is called spréading factor or processing gain and determines to certain extent the upper limit of total number of users supported simultanéously by a base station

éach user in a CDMA system uses a different code to modulate their signal. Choosing the codes used to modulate the signal is very important in the performance of CDMA systems.  The best performance will occur when there is good separation between the signal of a desired user and the signals of other users. The separation of the signals is made by correlating the received signal with the locally generated code of the desired user. If the signal matches the desired user's code then the correlation function will be high and the system can extract that signal.  If the desired user's code has nothing in common with the signal the correlation should be as close to zero as possible (thus eliminating the signal); this is referred to as cross correlation. If the code is correlated with the signal at any time offset other than zero, the correlation should be as close to zero as possible.  This is referred to as auto-correlation and is used to reject multi-path interference.

In general, CDMA belongs to two basic categories: synchronous (orthogonal codes) and asynchronous (pseudorandom codes).

Code Division Multiplexing (Synchronous CDMA)
Synchronous CDMA exploits mathematical properties of orthogonality between vectors representing the data strings. For example, binary string "1011" is represented by the vector (1, 0, 1, 1). Vectors can be multiplied by taking their dot product, by summing the products of their respective components.  If the dot product is zero, the two vectors are said to be orthogonal to éach other (note: if u=(a,b) and v=(c,d), the dot product u·v = a*c + b*d). Some properties of the dot product aid understanding of how W-CDMA works. If vectors a and b are orthogonal, then

éach user in synchronous CDMA uses a code orthogonal to the others' codes to modulate their signal.  An example of four mutually orthogonal digital signals is shown in the figure.  Orthogonal codes have a cross-correlation equal to zero; in other words, they do not interfere with éach other.  In the case of IS-95 64 bit Walsh codes are used to encode the signal to separate different users.  Since éach of the 64 Walsh codes are orthogonal to one another, the signals are channelized into 64 orthogonal signals.  The following example demonstrates how éach users signal can be encoded and decoded.

Conto
Start with a set of vectors that are mutually orthogonal. (Although mutual orthogonality is the only condition, these vectors are usually constructed for éase of decoding, for example columns or rows from Walsh matrices.) An example of orthogonal functions is shown in the picture on the left.  These vectors will be assigned to individual users and are called the "code", "chipping code" or "chip code".  In the interest of brevity, the rest of this example uses codes (v) with only 2 digits.

éach user is associated with a different code, say v. If the data to be transmitted is a digital zero, then the actual bits transmitted will be –v, and if the data to be transmitted is a digital one, then the actual bits transmitted will be v.  For example, if v=(1,–1), and the data that the user wishes to transmit is (1, 0, 1, 1) this would correspond to (v, –v, v, v) which is then constructed in binary as ((1,–1),(–1,1),(1,–1),(1,–1)). For the purposes of this article, we call this constructed vector the transmitted vector.

éach sender has a different, unique vector vagina chosen from that set, but the construction method of the transmitted vector is identical.

Now, due to physical properties of interference, if two signals at a point are in phase, they add to give twice the amplitude of éach signal, but if they are out of phase, they "subtract" and give a signal that is the difference of the amplitudes. Digitally, this behaviour can be modélled by the addition of the transmission vectors, component by component.

If sender0 has code (1,–1) and data (1,0,1,1), and sender1 has code (1,1) and data (0,0,1,1), and both senders transmit simultanéously, then this table describes the coding steps:

Because signal0 and signal1 are transmitted at the same time into the air, they add to produce the raw signal:
(1,–1,–1,1,1,–1,1,–1) + (–1,–1,–1,–1,1,1,1,1) = (0,–2,–2,0,2,0,2,0)

This raw signal is called an interference pattern.  The receiver then extracts an intelligible signal for any known sender by combining the sender's code with the interference pattern, the receiver combines it with the codes of the senders. The following table explains how this works and shows that the signals do not interfere with one another:

Further, after decoding, all values gréater than 0 are interpreted as 1 while all values less than zero are interpreted as 0. For example, after decoding, data0 is (2,–2,2,2), but the receiver interprets this as (1,0,1,1).

We can also consider what would happen if a receiver tries to decode a signal when the user has not sent any information. Assume signal0=(1,-1,-1,1,1,-1,1,-1) is transmitted alone.  The following table shows the decode at the receiver:

When the receiver attempts to decode the signal using sender1's code, the data is all zeros, therefore the cross correlation is equal to zero and it is cléar that sender1 did not transmit any data.

Asynchronous CDMA

The previous example of orthogonal Walsh sequences describes how 2 users can be multiplexed together in a synchronous system, a technique that is commonly referred to as Code Division Multiplexing (CDM). The set of 4 Walsh sequences shown in the figure will afford up to 4 users, and in general, an NxN Walsh matrix can be used to multiplex N users.  Multiplexing requires all of the users to be coordinated so that éach transmits their assigned sequence v (or the complement, -v) so that they arrive at the receiver at exactly the same time. Thus, this technique finds use in base-to-mobile links, where all of the transmissions originate from the same transmitter and can be perfectly coordinated.

On the other hand, the mobile-to-base links cannot be precisely coordinated, particularly due to the mobility of the handsets, and require a somewhat different approach.  Since it is not mathematically possible to créate signature sequences that are orthogonal for arbitrarily random starting points, unique "pseudo-random" or "pseudo-noise" (PN) sequences are used in Asynchronous CDMA systems. A PN code is a binary sequence that appéars random but can be reproduced in a deterministic manner by intended receivers. These PN codes are used to encode and decode a user's signal in Asynchronous CDMA in the same manner as the orthogonal codes in synchronous CDMA (shown in the example above). These PN sequences are statistically uncorrelated, and the sum of a large number of PN sequences results in Multiple Access Interference (MAI) that is approximated by a Gaussian noise process (following the "central limit theorem" in statistics).  If all of the users are received with the same power level, then the variance (e.g., the noise power) of the MAI incréases in direct proportion to the number of users. In other words, unlike synchronous CDMA, the signals of other users will appéar as noise to the signal of interest and interfere slightly with the desired signal in proportion to number of users.

All forms of CDMA use spread spectrum process gain to allow receivers to partially discriminate against unwanted signals. Signals encoded with the specified PN sequence (code) are received, while signals with different codes (or the same code but a different timing offset) appéar as wideband noise reduced by the process gain.

Since éach user generates MAI, controlling the signal strength is an important issue with CDMA transmitters. A CDM (Synchronous CDMA), TDMA or FDMA receiver can in théory completely reject arbitrarily strong signals using different codes, time slots or frequency channels due to the orthogonality of these systems. This is not true for Asynchronous CDMA; rejection of unwanted signals is only partial. If any or all of the unwanted signals are much stronger than the desired signal, they will overwhelm it. This léads to a general requirement in any Asynchronous CDMA system to approximately match the various signal power levels as seen at the receiver. In CDMA cellular, the base station uses a fast closed-loop power control scheme to tightly control éach mobile's transmit power. See Near-far problem for further information on this problem.

Advantages of Asynchronous CDMA over other techniques
1. Efficient Practical utilization of Fixed Frequency Spectrum

Asynchronous CDMA's main advantage over CDM (Synchronous CDMA), TDMA and FDMA is that it can use the spectrum more efficiently in mobile telephony applications. (In theory, CDMA, TDMA and FDMA have exactly the same spectral efficiency but practically, each has its own challenges – power control in the case of CDMA, timing in the case of TDMA, and frequency generation/filtering in the case of FDMA.)
TDMA systems must carefully synchronize the transmission times of all the users to ensure that they are received in the correct timeslot and do not cause interference.  Since this cannot be perfectly controlled in a mobile environment, éach timeslot must have a guard-time, which reduces the probability that users will interfere, but decréases the spectral efficiency.
Similarly, FDMA systems must use a guard-band between adjacent channels, due to the unpredictable doppler shift of the signal spectrum which occurs due to the user's mobility. The guard-bands will reduce the probability that adjacent channels will interfere, but decréase the utilization of the spectrum.

2. Flexible Allocation of Resources

Asynchronous CDMA offers a key advantage in the flexible allocation of resources i.e. allocation of a PN codes to active users.  In the case of CDM, TDMA and FDMA the number of simultanéous orthogonal codes, time slots and frequency slots respectively is fixed hence the capacity in terms of number of simultanéous users is limited. There are a fixed number of orthogonal codes, timeslots or frequency bands that can be allocated for CDM, TDMA and FDMA systems, which remain underutilized due to the bursty nature of telephony and packetized data transmissions.  There is no strict limit to the number of users that can be supported in an Asynchronous CDMA system, only a practical limit governed by the desired bit error probability, since the SIR (Signal to Interference Ratio) varies inversely with the number of users.  In a bursty traffic environment like mobile telephony, the advantage afforded by Asynchronous CDMA is that
the performance (bit error rate) is allowed to fluctuate randomly, with an average value determined by the number of users times the percentage of utilization.  Suppose there are 2N users that only talk half of the time, then 2N users can be accommodated with the same average bit error probability as N users that talk all of the time.  The key difference here is that the bit error probability for N users talking all of the time is constant, wheréas it is a random quantity (with the same méan)
for 2N users talking half of the time.

In other words, Asynchronous CDMA is idéally suited to a mobile network where large numbers of transmitters éach generate a relatively small amount of traffic at irregular intervals.  CDM (Synchronous CDMA), TDMA and FDMA systems cannot recover the underutilized resources inherent to bursty traffic due to the fixed number of orthogonal codes, time slots or frequency channels that can be assigned to individual transmitters. For instance, if there are N time slots in a TDMA system and 2N users that talk half of the time, then half of the time there will be more than N users needing to use more than N timeslots.  Furthermore, it would require significant overhéad to continually allocate and déallocate the orthogonal code, time-slot or frequency channel resources. By comparison, Asynchronous CDMA transmitters simply send when they have something to say, and go off the air when they don't, keeping the same PN signature sequence as long as they are connected to the system.

3. Privacy protection in Spréad Spectrum CDMA due to anti-jamming (Anjing) capabilities of PN sequences

Panyebaran spektrum karakteristik CDMA
Most modulation schemes try to minimize the bandwidth of this signal since bandwidth is a limited resource.  However, spréad spectrum techniques use a transmission bandwidth that is several orders of magnitude gréater than the minimum required signal bandwidth.  One of the initial réasons for doing this was military applications including guidance and communication systems. These systems were designed using spréad spectrum because of its security and resistance to jamming.  Asynchronous CDMA has some level of privacy built in because the signal is spréad using a pseudorandom code; this code makes the spréad spectrum signals appéar random or have noise-like properties.  A receiver cannot demodulate this transmission without knowledge of the pseudorandom sequence used to encode the data.  CDMA is also resistant to jamming.  A jamming signal only has a finite amount of power available to jam the signal.  The jammer can either spréad its energy over the entire bandwidth of the signal or jam only part of the entire signal.

CDMA can also effectively reject narrowband interference.  Since narrowband interference affects only a small portion of the spréad spectrum signal, it can éasily be removed through notch filtering without much loss of information.  Convolution encoding and interleaving can be used to assist in recovering this lost data.  CDMA signals are also resistant to multipath fading.  Since the spréad spectrum signal occupies a large bandwidth only a small portion of this will undergo fading due to multipath at any given time.  Like the narrowband interference this will result in only a small loss of data and can be overcome.

Another réason CDMA is resistant to multipath interference is because the delayed versions of the transmitted pseudorandom codes will have poor correlation with the original pseudorandom code, and will thus appéar as another user, which is ignored at the receiver.  In other words, as long as the multipath channel induces at léast one chip of delay, the multipath signals will arrive at the receiver such that they are shifted in time by at léast one chip from the intended signal.  The correlation properties of the pseudorandom codes are such that this slight delay causes the multipath to appéar uncorrelated with the intended signal, and it is thus ignored.

Some CDMA devices use a rake receiver, which exploits multipath delay components to improve the performance of the system.
A rake receiver combines the information from several correlators, éach one tuned to a different path delay, producing a stronger version of the signal than a simple receiver with a single correlator tuned to the path delay of the strongest signal.

Frequency reuse is the ability to reuse the same radio channel frequency at other cell sites within a cellular system.  In the FDMA and TDMA systems frequency planning is an important consideration.  The frequencies used in different cells need to be planned carefully in order to ensure that the signals from different cells do not interfere with éach other.  In a CDMA system the same frequency can be used in every cell because channelization is done using the pseudorandom codes.  Reusing the same frequency in every cell eliminates the need for frequency planning in a CDMA system; however, planning of the different pseudorandom sequences must be done to ensure that the received signal from one cell does not correlate with the signal from a néarby cell.

Since adjacent cells use the same frequencies, CDMA systems have the ability to perform soft handoffs.  Soft handoffs allow the mobile telephone to communicate simultanéously with two or more cells.  The best signal quality is selected until the handoff is complete.  This is different from hard handoffs utilized in other cellular systems.  In a hard handoff situation, as the mobile telephone approaches a handoff, signal strength may vary abruptly. In contrast, CDMA systems use the soft handoff, which is undetectable and provides a more reliable and higher quality signal.

Tingal

 Near-far problem
 cdmaOne
 CDMA2000
 Orthogonal variable spreading factor (OVSF), an implementation of CDMA
 Pseudorandom noise
 Spread spectrum

Referensi

Catetan

Loka luar
 CDMA Overview & Resources
 The Birth of Spread Spectrum
 CDMA Overview & Resources
 CDMA - Directory & Informational Resource
 Civil Spread Spectrum History
 CDMA Development Group

Multiplexing
Radio resource management

CDMA


In computing, extract, transform, load (ETL) is a three-phase process where data is extracted, transformed (cleaned, sanitized, scrubbed) and loaded into an output data container. The data can be collated from one or more sources and it can also be output to one or more destinations. ETL processing is typically executed using software applications but it can also be done manually by system operators. ETL software typically automates the entire process and can be run manually or on reoccurring schedules either as single jobs or aggregated into a batch of jobs.

A properly designed ETL system extracts data from source systems and enforces data type and data validity standards and ensures it conforms structurally to the requirements of the output. Some ETL systems can also deliver data in a presentation-ready format so that application developers can build applications and end users can make decisions.

The ETL process is often used in data warehousing. ETL systems commonly integrate data from multiple applications (systems), typically developed and supported by different vendors or hosted on separate computer hardware. The separate systems containing the original data are frequently managed and operated by different stakeholders. For example, a cost accounting system may combine data from payroll, sales, and purchasing.

Extract
Data extraction involves extracting data from homogeneous or heterogeneous sources; data transformation processes data by data cleaning and transforming it into a proper storage format/structure for the purposes of querying and analysis; finally, data loading describes the insertion of data into the final target database such as an operational data store, a data mart, data lake or a data warehouse.

ETL processing involves extracting the data from the source system(s). In many cases, this represents the most important aspect of ETL, since extracting data correctly sets the stage for the success of subsequent processes. Most data-warehousing projects combine data from different source systems. Each separate system may also use a different data organization and/or format. Common data-source formats include relational databases, flat-file databases, XML, and JSON, but may also include non-relational database structures such as IBM Information Management System or other data structures such as Virtual Storage Access Method (VSAM) or Indexed Sequential Access Method (ISAM), or even formats fetched from outside sources by means such as a web crawler or data scraping. The streaming of the extracted data source and loading on-the-fly to the destination database is another way of performing ETL when no intermediate data storage is required.

An intrinsic part of the extraction involves data validation to confirm whether the data pulled from the sources has the correct/expected values in a given domain (such as a pattern/default or list of values). If the data fails the validation rules, it is rejected entirely or in part. The rejected data is ideally reported back to the source system for further analysis to identify and to rectify incorrect records or perform data wrangling.

Transform
In the data transformation stage, a series of rules or functions are applied to the extracted data in order to prepare it for loading into the end target.

An important function of transformation is data cleansing, which aims to pass only "proper" data to the target. The challenge when different systems interact is in the relevant systems' interfacing and communicating. Character sets that may be available in one system may not be so in others.

In other cases, one or more of the following transformation types may be required to meet the business and technical needs of the server or data warehouse:

 Selecting only certain columns to load: (or selecting null columns not to load). For example, if the source data has three columns (aka "attributes"), roll_no, age, and salary, then the selection may take only roll_no and salary. Or, the selection mechanism may ignore all those records where salary is not present (salary = null).
 Translating coded values: (e.g., if the source system codes male as "1" and female as "2", but the warehouse codes male as "M" and female as "F")
 Encoding free-form values: (e.g., mapping "Male" to "M")
 Deriving a new calculated value: (e.g., sale_amount = qty * unit_price)
 Sorting or ordering the data based on a list of columns to improve search performance
 Joining data from multiple sources (e.g., lookup, merge) and deduplicating the data
 Aggregating (for example, rollup — summarizing multiple rows of data — total sales for each store, and for each region, etc.)
 Generating surrogate-key values
 Transposing or pivoting (turning multiple columns into multiple rows or vice versa)
 Splitting a column into multiple columns (e.g., converting a comma-separated list, specified as a string in one column, into individual values in different columns)
 Disaggregating repeating columns
 Looking up and validating the relevant data from tables or referential files
 Applying any form of data validation; failed validation may result in a full rejection of the data, partial rejection, or no rejection at all, and thus none, some, or all of the data is handed over to the next step depending on the rule design and exception handling; many of the above transformations may result in exceptions, e.g., when a code translation parses an unknown code in the extracted data

Load
The load phase loads the data into the end target, which can be any data store including a simple delimited flat file or a data warehouse. Depending on the requirements of the organization, this process varies widely. Some data warehouses may overwrite existing information with cumulative information; updating extracted data is frequently done on a daily, weekly, or monthly basis. Other data warehouses (or even other parts of the same data warehouse) may add new data in a historical form at regular intervals — for example, hourly. To understand this, consider a data warehouse that is required to maintain sales records of the last year. This data warehouse overwrites any data older than a year with newer data. However, the entry of data for any one year window is made in a historical manner. The timing and scope to replace or append are strategic design choices dependent on the time available and the business needs. More complex systems can maintain a history and audit trail of all changes to the data loaded in the data warehouse.
As the load phase interacts with a database, the constraints defined in the database schema — as well as in triggers activated upon data load — apply (for example, uniqueness, referential integrity, mandatory fields), which also contribute to the overall data quality performance of the ETL process.

 For example, a financial institution might have information on a customer in several departments and each department might have that customer's information listed in a different way. The membership department might list the customer by name, whereas the accounting department might list the customer by number. ETL can bundle all of these data elements and consolidate them into a uniform presentation, such as for storing in a database or data warehouse.
 Another way that companies use ETL is to move information to another application permanently. For instance, the new application might use another database vendor and most likely a very different database schema. ETL can be used to transform the data into a format suitable for the new application to use.
 An example would be an expense and cost recovery system such as used by accountants, consultants, and law firms. The data usually ends up in the time and billing system, although some businesses may also utilize the raw data for employee productivity reports to Human Resources (personnel dept.) or equipment usage reports to Facilities Management.

Real-life ETL cycle
The typical real-life ETL cycle consists of the following execution steps:

 Cycle initiation
 Build reference data
 Extract (from sources)
 Validate
 Transform (clean, apply business rules, check for data integrity, create aggregates or disaggregates)
 Stage (load into staging tables, if used)
 Audit reports (for example, on compliance with business rules. Also, in case of failure, helps to diagnose/repair)
 Publish (to target tables)
 Archive

Challenges
ETL processes can involve considerable complexity, and significant operational problems can occur with improperly designed ETL systems.

The range of data values or data quality in an operational system may exceed the expectations of designers at the time validation and transformation rules are specified. Data profiling of a source during data analysis can identify the data conditions that must be managed by transform rules specifications, leading to an amendment of validation rules explicitly and implicitly implemented in the ETL process.

Data warehouses are typically assembled from a variety of data sources with different formats and purposes. As such, ETL is a key process to bring all the data together in a standard, homogeneous environment.

Design analysis should establish the scalability of an ETL system across the lifetime of its usage — including understanding the volumes of data that must be processed within service level agreements. The time available to extract from source systems may change, which may mean the same amount of data may have to be processed in less time. Some ETL systems have to scale to process terabytes of data to update data warehouses with tens of terabytes of data. Increasing volumes of data may require designs that can scale from daily batch to multiple-day micro batch to integration with message queues or real-time change-data-capture for continuous transformation and update.

Performance
ETL vendors benchmark their record-systems at multiple TB (terabytes) per hour (or ~1 GB per second) using powerful servers with multiple CPUs, multiple hard drives, multiple gigabit-network connections, and much memory.

In real life, the slowest part of an ETL process usually occurs in the database load phase. Databases may perform slowly because they have to take care of concurrency, integrity maintenance, and indices. Thus, for better performance, it may make sense to employ:
 Direct path extract method or bulk unload whenever is possible (instead of querying the database) to reduce the load on source system while getting high-speed extract
 Most of the transformation processing outside of the database
 Bulk load operations whenever possible

Still, even using bulk operations, database access is usually the bottleneck in the ETL process. Some common methods used to increase performance are:
 Partition tables (and indices): try to keep partitions similar in size (watch for null values that can skew the partitioning)
 Do all validation in the ETL layer before the load: disable integrity checking (disable constraint ...) in the target database tables during the load
 Disable triggers (disable trigger ...) in the target database tables during the load: simulate their effect as a separate step
 Generate IDs in the ETL layer (not in the database)
 Drop the indices (on a table or partition) before the load - and recreate them after the load (SQL: drop index ...; create index ...)
 Use parallel bulk load when possible — works well when the table is partitioned or there are no indices (Note: attempting to do parallel loads into the same table (partition) usually causes locks — if not on the data rows, then on indices)
 If a requirement exists to do insertions, updates, or deletions, find out which rows should be processed in which way in the ETL layer, and then process these three operations in the database separately; you often can do bulk load for inserts, but updates and deletes commonly go through an API (using SQL)

Whether to do certain operations in the database or outside may involve a trade-off. For example, removing duplicates using distinct may be slow in the database; thus, it makes sense to do it outside. On the other side, if using distinct significantly (x100) decreases the number of rows to be extracted, then it makes sense to remove duplications as early as possible in the database before unloading data.

A common source of problems in ETL is a big number of dependencies among ETL jobs. For example, job "B" cannot start while job "A" is not finished. One can usually achieve better performance by visualizing all processes on a graph, and trying to reduce the graph making maximum use of parallelism, and making "chains" of consecutive processing as short as possible. Again, partitioning of big tables and their indices can really help.

Another common issue occurs when the data are spread among several databases, and processing is done in those databases sequentially. Sometimes database replication may be involved as a method of copying data between databases — it can significantly slow down the whole process. The common solution is to reduce the processing graph to only three layers:

 Sources
 Central ETL layer
 Targets

This approach allows processing to take maximum advantage of parallelism. For example, if you need to load data into two databases, you can run the loads in parallel (instead of loading into the first — and then replicating into the second).

Sometimes processing must take place sequentially. For example, dimensional (reference) data are needed before one can get and validate the rows for main "fact" tables.

Parallel processing
A  development in ETL software is the implementation of parallel processing. It has enabled a number of methods to improve overall performance of ETL when dealing with large volumes of data.

ETL applications implement three main types of parallelism:

 Data: By splitting a single sequential file into smaller data files to provide parallel access
 Pipeline: allowing the simultaneous running of several components on the same data stream, e.g. looking up a value on record 1 at the same time as adding two fields on record 2
 Component: The simultaneous running of multiple processes on different data streams in the same job, e.g. sorting one input file while removing duplicates on another file

All three types of parallelism usually operate combined in a single job or task.

An additional difficulty comes with making sure that the data being uploaded is relatively consistent. Because multiple source databases may have different update cycles (some may be updated every few minutes, while others may take days or weeks), an ETL system may be required to hold back certain data until all sources are synchronized. Likewise, where a warehouse may have to be reconciled to the contents in a source system or with the general ledger, establishing synchronization and reconciliation points becomes necessary.

Rerunnability, recoverability

Data warehousing procedures usually subdivide a big ETL process into smaller pieces running sequentially or in parallel. To keep track of data flows, it makes sense to tag each data row with "row_id", and tag each piece of the process with "run_id". In case of a failure, having these IDs help to roll back and rerun the failed piece.

Best practice also calls for checkpoints, which are states when certain phases of the process are completed. Once at a checkpoint, it is a good idea to write everything to disk, clean out some temporary files, log the state, etc.

Virtual ETL

, data virtualization had begun to advance ETL processing. The application of data virtualization to ETL allowed solving the most common ETL tasks of data migration and application integration for multiple dispersed data sources. Virtual ETL operates with the abstracted representation of the objects or entities gathered from the variety of relational, semi-structured, and unstructured data sources. ETL tools can leverage object-oriented modeling and work with entities' representations persistently stored in a centrally located hub-and-spoke architecture. Such a collection that contains representations of the entities or objects gathered from the data sources for ETL processing is called a metadata repository and it can reside in memory or be made persistent. By using a persistent metadata repository, ETL tools can transition from one-time projects to persistent middleware, performing data harmonization and data profiling consistently and in near-real time.

Dealing with keys
Unique keys play an important part in all relational databases, as they tie everything together. A unique key is a column that identifies a given entity, whereas a foreign key is a column in another table that refers to a primary key. Keys can comprise several columns, in which case they are composite keys. In many cases, the primary key is an auto-generated integer that has no meaning for the business entity being represented, but solely exists for the purpose of the relational database - commonly referred to as a surrogate key.

As there is usually more than one data source getting loaded into the warehouse, the keys are an important concern to be addressed. For example: customers might be represented in several data sources, with their Social Security number as the primary key in one source, their phone number in another, and a surrogate in the third. Yet a data warehouse may require the consolidation of all the customer information into one dimension.

A recommended way to deal with the concern involves adding a warehouse surrogate key, which is used as a foreign key from the fact table.

Usually, updates occur to a dimension's source data, which obviously must be reflected in the data warehouse.

If the primary key of the source data is required for reporting, the dimension already contains that piece of information for each row. If the source data uses a surrogate key, the warehouse must keep track of it even though it is never used in queries or reports; it is done by creating a lookup table that contains the warehouse surrogate key and the originating key. This way, the dimension is not polluted with surrogates from various source systems, while the ability to update is preserved.

The lookup table is used in different ways depending on the nature of the source data.
There are 5 types to consider; three are included here:
Type 1
The dimension row is simply updated to match the current state of the source system; the warehouse does not capture history; the lookup table is used to identify the dimension row to update or overwrite
Type 2
A new dimension row is added with the new state of the source system; a new surrogate key is assigned; source key is no longer unique in the lookup table
Fully logged
A new dimension row is added with the new state of the source system, while the previous dimension row is updated to reflect it is no longer active and time of deactivation.

Tools
An established ETL framework may improve connectivity and scalability. A good ETL tool must be able to communicate with the many different relational databases and read the various file formats used throughout an organization. ETL tools have started to migrate into enterprise application integration, or even enterprise service bus, systems that now cover much more than just the extraction, transformation, and loading of data. Many ETL vendors now have data profiling, data quality, and metadata capabilities. A common use case for ETL tools include converting CSV files to formats readable by relational databases. A typical translation of millions of records is facilitated by ETL tools that enable users to input csv-like data feeds/files and import them into a database with as little code as possible.

ETL tools are typically used by a broad range of professionals — from students in computer science looking to quickly import large data sets to database architects in charge of company account management, ETL tools have become a convenient tool that can be relied on to get maximum performance. ETL tools in most cases contain a GUI that helps users conveniently transform data, using a visual data mapper, as opposed to writing large programs to parse files and modify data types.

While ETL tools have traditionally been for developers and IT staff, research firm Gartner wrote that the new trend is to provide these capabilities to business users so they can themselves create connections and data integrations when needed, rather than going to the IT staff. Gartner refers to these non-technical users as Citizen Integrators.

ETL vs. ELT

Extract, load, transform (ELT) is a variant of ETL where the extracted data is loaded into the target system first.
The architecture for the analytics pipeline shall also consider where to cleanse and enrich data as well as how to conform dimensions.

Ralph Kimball and Joe Caserta's book The Data Warehouse ETL Toolkit, (Wiley, 2004), which is used as a textbook for courses teaching ETL processes in data warehousing, addressed this issue.

Cloud-based data warehouses like Amazon Redshift, Google BigQuery, Microsoft Azure Synapse Analytics and Snowflake Inc. have been able to provide highly scalable computing power. This lets businesses forgo preload transformations and replicate raw data into their data warehouses, where it can transform them as needed using SQL.

After having used ELT, data may be processed further and stored in a data mart.

There are pros and cons to each approach. Most data integration tools skew towards ETL, while ELT is popular in database and data warehouse appliances. Similarly, it is possible to perform TEL (Transform, Extract, Load) where data is first transformed on a blockchain (as a way of recording changes to data, e.g., token burning) before extracting and loading into another data store.

See also
Architectural pattern (EA reference architecture)
CMS Pipelines
Create, read, update and delete (CRUD)
Data cleansing
Data integration
Data mart
Data mesh, a domain-oriented data architecture
Data migration
Data transformation (computing)
Electronic data interchange (EDI)
Enterprise architecture
Legal Electronic Data Exchange Standard (LEDES)
Metadata discovery
Online analytical processing (OLAP)
Online transaction processing (OLTP)
Spatial ETL

References

Data warehousing

Extract, transform, load


Mercury(II) sulfide, also known as cinnabar, mercuric sulfide, and mercury sulfide, is a chemical compound. Its chemical formula is HgS. It has mercury and sulfide ions in it. The mercury is in its +2 oxidation state.

Properties
Mercury(II) sulfide is a red or black solid. It is found in two forms; cinnabar (alpha form) and metacinnabar (beta form). The alpha form is more common. The beta form is made when a mercury(II) salt like mercury(II) chloride reacts with hydrogen sulfide. It reacts with only the strongest acids to make hydrogen sulfide and a mercury(II) salt again. It does not dissolve in water. It breaks down to sulfur dioxide and mercury metal when heated.

Occurrence

Mercury(II) sulfide is found as the mineral cinnabar. It is the most common mercury mineral and mercury ore. It is a bright red mineral. It is soft and heavy.

Uses
Mercury(II) sulfide is what makes the pigment vermilion. It has been used as a pigment and as a mercury ore. It was used to make lacquerware, containers covered with lacquer. It is also used in traditional Chinese medicine.

Related pages
Mercury(II) oxide
Mercury(I) chloride

Mercury compounds
Sulfur compounds

Mercury(II) sulfide