Entries Tagged as '4'

Demister

A Demister can be:

  • Demister - A product used to clear a scuba mask of “fog”.
  • Demister - A device that removes entrained liquid droplets from a gas stream.

EUROMESH® Wire mesh demister
Mist Eliminators are separation devices, used throughout all kinds of Process Industries, to remove liquid droplets from gas and/or vapour streams. The most commonly used type is the ‘wire mesh’ mist eliminator, as it has no moving parts and requires a little (if any) or no maintenance. Euromesh® wire mesh demisters are available in a wide range of styles, sizes and shapes. Wire mesh demisters are made slightly oversized and are to be compressed at their rim surface when installed, to fit snugly into the vessel.


In the Process Industry liquid mist, entrained in the product vapour, will undermines the process performance in several ways, such as:

Loss of Valuable Liquids
Loss in Overhead Vapour Quality
Fouling and Corrosion of Downstream Equipment
Catalyst Poisoning
Reduction in Operating Capacities
Unwanted Emissions from Vent Stacks


Often, this requires vapour-liquid separation in e.g. knock-out drums, heat exchangers, overhead accumulators, evaporators, crystallisers, liquid-phase reactor vents, compressor feed surge drums, or others.

BENEFITS, WHEN USING EUROMESH® DEMISTERS:-
         * Higher separation efficiency
       * Increasing throughput capacity
       * Provides equipment protection
       * Reducing the loss of valuable chemicals
       * Prevents (air) pollution
       * Eliminate contamination
       * Improvement of product purity

APPLICATIONS

       * Absorption columns
       * Distillation columns
       * Boilers and Scrubbers
       * Oil/water separators
       * Desalination units
       * Salt- and sugar industry
       * Desulphurization plants

Every mist elimination application is unique (!) Many times, the optimum mist eliminator solution requires more than using only a ‘wire mesh’ demister unit. Vane-type demisters, Inlet devices, Coalescers and/or Vapour distributors are accessories used to enhance the demisting performance. Please contact our office for detailed information of our system applications. We will be obliged to serve you.

Euromesh process engineers are available to assist you with the appropriate design
of your system. Be sure to take advantage of their expertise.

FinTS

FinTS or Financial Transaction Services is the successor of the German online banking standard HBCI. The FinTS-specification is publicly available on the ZKA website.
Features are:

  • Support for online-banking using PIN/TAN.
  • Support for online-banking with SWIFT.
  • Key stored on floppy-disk or chip-card for physical security.
  • Making use of XML and SOAP for data-exchange, encryption and signatures.
  • Implemented on top of Http, Https and SMTP as communication layer.


External links

  • FinTS - Financial Transaction Services

Mr. Sycamore

Mr. Sycamore is a play written by Ketti Frings that was published in 1942. It is about a meek mailman who becomes so obsessed with a particular sycamore tree on his delivery route that he leads himself to believe that the only way to end his troubles is to plant himself and become a tree.

The play was later adapted into a TV movie in 1975 by the same name.
(Fantasy)

Database dump

For information on obtaining the Wikipedia database, see .

A database dump contains a record of the table structure and/or the data from a database and is usually in the form of a list of SQL queries. A database dump is most often used for backing up a database so that its contents can be restored in the event of data loss. Corrupted databases can often be recovered by analysis of the dump. Database dumps are often published by open source projects, to allow reuse or forking of the database.


See also

  • Core dump
  • Databases
  • Database management system


References


External links

  • mysqldump — A Database Backup Program

Southcote Lock

Southcote Lock is a lock on the River Kennet at Southcote within the town of Reading in Berkshire, England.

Southcote Lock was built between 1718 and 1723 under the supervision of the engineer John Hore of Newbury, and this stretch of the river is now administered by British Waterways and known as the Kennet Navigation. It has a rise/fall of 5 ft 3 in (1.65 m).

The Victorian brick building that overseas Southcote Lock is the redundant Southcote Pumping Station which, when it opened in 1850, was the key to Reading’s demanding water needs.


References


See also

  • Locks on the Kennet and Avon Canal

XML Information Set

XML Information Set (Infoset) is a W3C specification describing an abstract data model of an XML document in terms of a set of information items. The definitions in the XML Information Set specification are meant to be used in other specifications that need to refer to the information in a well-formed XML document.

An XML document has an information set if it is well-formed and satisfies the namespace constraints. There is no requirement for an XML document to be valid in order to have an information set.

An information set can contain up to eleven different types of information items:

  1. The Document Information Item
  2. Element Information Items
  3. Attribute Information Items
  4. Processing Instruction Information Items
  5. Unexpanded Entity Reference Information Items
  6. Character Information Items
  7. Comment Information Items
  8. The Document Type Declaration Information Item
  9. Unparsed Entity Information Items
  10. Notation Information Items
  11. Namespace Information Items

Infoset recommendation Second Edition was adopted on February 4, 2004.


Infoset Augmentation

Infoset augmentation or infoset modification refers to the process of modifying the infoset during schema validation, for example by adding default attributes. The augmented infoset is called the post-schema-validation infoset, or PSVI.
XML Schema 1.1 Part 1: Structures

Infoset augmentation is somewhat controversial, with claims that it is a violation of modularity and tends to cause interoperability problems, since applications get different information depending on whether or not validation has been performed.
RELAX NG and W3C XML Schema, James Clark, 4 Jun 2002

Infoset augmentation is supported by XML Schema but not RelaxNG.


References


External links

  • W3C XML Information set recommendation (Second Edition)
  • fastinfoset (for binary encoding of the Infoset)

Microsoft Transaction Server

Microsoft Transaction Server (or MTS) is a service component that enables support for transactions to be easily implemented in other applications.


Architecture

A basic MTS architecture is made up of:

  • The MTS Executive (mtxex.dll)
  • The Factory Wrappers and Context Wrappers for each component
  • The MTS Server Component
  • MTS clients
  • Auxiliary systems like:
    • COM runtime services
    • the Service Control Manager (SCM)
    • the Microsoft Distributed Transaction Coordinator (MS-DTC)
    • the Microsoft Message Queue (MSMQ)
    • the COM-Transaction Integrator (COM-TI)
    • etc.

COM components that run under the control of the MTS Executive are called MTS components. MTS components are all developed as in-proc DLLs and are implemented as one or more COM components. These components are deployed and run in the MTS Executive which manages them. As is usual with COM components, the object implementing the IClassFactory serves as a Factory Object to create new instances of these components.

MTS inserts a Factory Wrapper Object and an Object Wrapper between the actual MTS component that MTS manages, and its Client. Therefore, whenever the client makes a call to the MTS component, the Wrappers (Factory and Object) intercept the call and inject their own instance management algorithm called the Just In Time Activation (JITA) into the call. The wrapper then makes this call on the actual MTS component.

In addition to this, based on the information from the component’s deployment properties, transaction logic and security checks are also done in these wrapper objects.

For every MTS component, there also exists a Context Object which implements the IObjectContext interface. The Context Object maintains specific information about that component such as its transactional information, security information and deployment information. The MTS component calls into the Context Object through its IObjectContext interface.

In MTS, the actual middle-tier MTS component is not created until the call from a client reaches the container. Since the component is not running all the time, it does not use up a lot of system resources (even though an object wrapper and skeleton for the component are still hanging around for the component).

As soon as the call comes in from the client, the MTS wrapper process activates its Instance Management algorithm called JITA. The actual MTS component is created “Just In Time” to service the request from the wrapper. And when the request is serviced and the reply is sent back to the client, and the component either calls SetComplete()/SetAbort(), or the transaction that its part of ends, or the client calls Release() on the component, the actual MTS component is destroyed. In short, MTS is a stateless component model.

Generally, this is what happens on the Server when a client requests services from a typical MTS component:

  1. Acquire a database connection.
  2. Read the component’s state from either the Shared Property Manager or from an already existing object or from the client.
  3. Perform the business logic.
  4. Write the component’s changed state, if any, back to the database.
  5. Close and release the database connection.

It is thus possible to implement high latency resources as asynchronous resource pools, which should take advantage of the stateless JIT activation afforded by the middleware server.


External links and references

  • More details about MTS
  • Quick Tour of Microsoft Transaction Server
  • Interpreting the MTS events in the event log

Microsoft Transaction Server

Microsoft Transaction Server (or MTS) is a service component that enables support for transactions to be easily implemented in other applications.


Architecture

A basic MTS architecture is made up of:

  • The MTS Executive (mtxex.dll)
  • The Factory Wrappers and Context Wrappers for each component
  • The MTS Server Component
  • MTS clients
  • Auxiliary systems like:
    • COM runtime services
    • the Service Control Manager (SCM)
    • the Microsoft Distributed Transaction Coordinator (MS-DTC)
    • the Microsoft Message Queue (MSMQ)
    • the COM-Transaction Integrator (COM-TI)
    • etc.

COM components that run under the control of the MTS Executive are called MTS components. MTS components are all developed as in-proc DLLs and are implemented as one or more COM components. These components are deployed and run in the MTS Executive which manages them. As is usual with COM components, the object implementing the IClassFactory serves as a Factory Object to create new instances of these components.

MTS inserts a Factory Wrapper Object and an Object Wrapper between the actual MTS component that MTS manages, and its Client. Therefore, whenever the client makes a call to the MTS component, the Wrappers (Factory and Object) intercept the call and inject their own instance management algorithm called the Just In Time Activation (JITA) into the call. The wrapper then makes this call on the actual MTS component.

In addition to this, based on the information from the component’s deployment properties, transaction logic and security checks are also done in these wrapper objects.

For every MTS component, there also exists a Context Object which implements the IObjectContext interface. The Context Object maintains specific information about that component such as its transactional information, security information and deployment information. The MTS component calls into the Context Object through its IObjectContext interface.

In MTS, the actual middle-tier MTS component is not created until the call from a client reaches the container. Since the component is not running all the time, it does not use up a lot of system resources (even though an object wrapper and skeleton for the component are still hanging around for the component).

As soon as the call comes in from the client, the MTS wrapper process activates its Instance Management algorithm called JITA. The actual MTS component is created “Just In Time” to service the request from the wrapper. And when the request is serviced and the reply is sent back to the client, and the component either calls SetComplete()/SetAbort(), or the transaction that its part of ends, or the client calls Release() on the component, the actual MTS component is destroyed. In short, MTS is a stateless component model.

Generally, this is what happens on the Server when a client requests services from a typical MTS component:

  1. Acquire a database connection.
  2. Read the component’s state from either the Shared Property Manager or from an already existing object or from the client.
  3. Perform the business logic.
  4. Write the component’s changed state, if any, back to the database.
  5. Close and release the database connection.

It is thus possible to implement high latency resources as asynchronous resource pools, which should take advantage of the stateless JIT activation afforded by the middleware server.


External links and references

  • More details about MTS
  • Quick Tour of Microsoft Transaction Server
  • Interpreting the MTS events in the event log

Smile from the Streets You Hold

Smile from the Streets You Hold is the second solo album by John Frusciante. The record was released during a time when Frusciante was not performing with the Red Hot Chili Peppers. It was released in 1997 on Birdman Records, while Frusciante was still addicted to heroin.


Recording

Many songs from Smile from the Streets You Hold were recorded when Frusciante was still with the Chili Peppers and are from the same period as his previous solo album, Niandra Lades and Usually Just a T-Shirt.

In a 1997 interview with Guitar Player, Frusciante claimed to have maintained active communication with the spirit world during the album’s recording phase:Rotondigic, James. “Till I Reach the Higher Ground.” Guitar Player, November 1997.

The late actor River Phoenix, a good friend of Frusciante and the rest of the Chili Peppers, is featured on two tracks, “Height Down” (originally titled “Soul Removal”), and “Well I’ve Been” (originally titled “Bought Her Soul”). Both songs were supposed to be released on Niandra LaDes, but were pulled by request of Phoenix’s family.

“More”, “I Can’t See Until I See Your Eyes”, and “Estress” were recorded directly to cassette on a boombox. Frusciante’s poor health is apparent in his voice.


Release

Frusciante had Smile from the Streets You Hold and his first solo album, Niandra Lades and Usually Just a T-Shirt, removed from record stores in 1998 after rejoining the Red Hot Chili Peppers because he felt uncomfortable with them being available to the public. He is quoted as saying that he released Smile from the Streets You Hold for drug money. Niandra Lades was eventually re-issued and Frusciante has promised he will one day re-release Smile from the Streets You Hold.

There is also a second print of Smile from the Streets You Hold available. Including an extended/edited version of “Life’s a Bath”, the title song “Smile from the Streets You Hold” is split in two separate tracks. Another difference between the 17-track version and the 18-track version is that on the former, John can be heard taking a hit from a bong on “For Air”.


Track listing

  1. “Enter a Uh” – 8:06
  2. “The Other” – 1:34
  3. “Life’s a Bath” – 1:18
  4. “A Fall Thru the Ground” – 2:24
  5. “Poppy Man” – 1:21
  6. “I May Again Know John” – 8:48
  7. “I’m Always” – 2:33
  8. “Nigger Song” – 4:15
  9. “Femininity” – 2:35
  10. “Breathe” – 6:21
  11. “More” – 2:07
  12. “For Air” – 3:55
  13. “Height Down” – 4:00
  14. “Well, I’ve Been” – 3:06
  15. “Smile from the Streets You Hold” – 5:09
  16. “I Can’t See Until I See Your Eyes” – 1:30
  17. “Estress” – 2:17


References

Heartbreak Hill

Heartbreak Hill may refer to:


Places

  • Heartbreak Hill – an ascent about 20 miles into the Boston Marathon
  • Heartbreak Hill –a set of locks more formally known as the Cheshire Locks on the Trent_and_Mersey_Canal


Music

  • Heartbreak Hill (album) – an album by English band Strawbs
  • Heartbreak Hill – an album by English guitarist Albert Lee
  • Heartbreak Hill (band) – a Canadian country music band
  • “Heartbreak Hill” – a country music song appearing on the Emmylou Harris album Bluebird

Network architecture

In computing, network architecture is the design of a computer network.

In telecommunication, the term network architecture has the following meanings:

  1. The design principles, physical configuration, functional organization, operational procedures, and data formats used as the bases for the design, construction, modification, and operation of a communications network.
  2. The structure of an existing communications network, including the physical configuration, facilities, operational structure, operational procedures, and the data formats in use.

With the development of distributed computing, the term network architecture has also come to denote classifications and implementations of distributed computing architectures. For example the applications architecture of the telephone network PSTN has been termed the Advanced Intelligent Network. There are any number of specific classifications but all lie on a continuum between the dumb network (e.g. Internet) and the intelligent computer network (e.g. the telephone network PSTN). Other networks contain various elements of these two classical types to make them suitable for various types of applications. Recently the context aware network which is a synthesis of the two has gained much interest with its ability to combine the best elements of both.


Access Methods

The function of methods is to determine how a computer will send data over the cable and how it determines successful delivery or failed delivery. Each machine residing on the computer network must share the same type of access method in order to successfully communicate. To address the issues of collisions on a network a set of rules, channel access methods, have been defined. Channel access methods ensure delivery of packets by preventing more than one computer sending data across the cable that may end in collision. The major types of access methods in networking are contention, lan switching, token passing, demand priority, and polling.


References

  • Federal Standard 1037C
  • MIL-STD-188
  • the seven layer OSI model
  • Guide to Networking Essentials[1]

Conservative two-phase locking

In computer science, conservative two-phase locking (C2PL) is a locking method used in DBMS and relational databases.

Conservative 2PL prevents deadlocks.

The difference between 2PL and C2PL is that C2PL’s transactions obtain all the locks they need before the transactions begin. This is to ensure that a transaction that already holds some locks will not block waiting for other locks.

In heavy lock contention, C2PL reduces the time locks are held on average, relative to 2PL and Strict 2PL, because transactions that hold locks are never blocked.

In light lock contention, C2PL holds more locks than is necessary, because it is hard to tell what locks will be needed in the future, thus leads to higher overhead.

Also, a transaction will not even obtain any locks if it cannot obtain all the locks it needs in its initial request. Furthermore, each transaction needs to declare its read and write set (data items to be read/written during transaction), which is not always possible. Because of these limitations, C2PL is not used very frequently.

Sol de Fatima

Sol de Fátima is a Spanish language Catholic devotional magazine.

It is published by the Blue Army of Our Lady and is devoted to the message of Our Lady of Fatima.

It caused controversy in the September 1985 issue when it reported that one of the Fatima visionaries, Sister Lúcia dos Santos claimed that the Vatican had not complied with the Virgin Mary’s request to consecrate Russia to the Immaculate Heart of Mary. This was reported to be because there was no specific mention of Russia. It was also claimed that she said that “many bishops attached no importance to it”.

It is claimed that the Virgin Mary promised that the Consecration of Russia would lead to Russia’s conversion and an era of peace. Many, believe Pope John Paul II fulfilled this request in 1984 by giving a blessing over the world, including Russia, shortly before the collapse of the Soviet Union. It is commonly believed that Sister Lúcia verified that this ceremony fulfilled the requests of the Virgin Mary.

Gowda

Gowda ( Gauda or Gowdru) is usually the name given to the head of the family or family group in the state of Karnataka in India. It is similar to Goundar or Kaoundar of Tamilnadu

It is derived from Archaic Tamil-Kannada term Kavunda denoting a village or family head. People belonging to certain castes and communities in Karnataka and Tamil Nadu use it as a surname. Gowda or Gowdar is commonly used as surnames by people belonging to Kuruba, Lingayat,Vokkaliga, Ediga,Madiga communities. Many more people of different communities use Gowda as surnames. Communities like Vokkaliga, Ediga, Kuruba, Yadava, Golla, Uppaara, Nayaka, Madiga have similar culture and food habits (eg. non-vegetarians by diet, Hindus by religion). However there are certain Gowda’s sect that are strictly vegetarians. For example Namadhary Vokkaliga Gowdas are strict vegetarians. Some sects of lingayats in Karnataka use Gowda as surname and they are also very strict vegetarians.

Vokkaliga Gowda is the second largest community in Karnataka after the Lingayats. Vokkaliga Gowda community has played an important role in the economy of karnataka and India.

Kuruba Gowda Community is the third largest community in Karnataka after Lingayats and Vokkaligas.

Popular Vokkaliga Gowda personalities are; S M Krishna, Kengal hanumantaiah, Kuvempu, H D Devegowda, Venkatachalaiah, Hamsalekha, Actor Jaggesh, H D Kumara swamy, Sri Kempegowda, Actor turned politician Ambareesh, Ex (and late) Chief Justice Hombegowda, Bala Gangadhara Swamiji, G K Veeresh, Purna Chandra Tejaswi etc.


External Links

VPA Vokkaligara Parishat of America

John P. Mohr

John P. Mohr (20 April 1910—25 January 1997) was an administrator with the US Federal Bureau of Investigation.

As Assistant to the Director for Administrative Affairs, he was one of the officials chiefly responsible for the proper implementation of procurement requirements and procedures.

He retired on 30 June 1972 as the FBI’s No. 4 man.

In January 1978, United States Attorney General Griffin B. Bell issued a public report summarizing an investigation into alleged misuse of FBI funds in a “Confidential Fund.” Mohr, Clyde Tolson, and FBI Director J. Edgar Hoover could authorize disbursements from this fund, and it was found that Mohr had directed employess of the Exhibit Section to make numerous repairs and improvements ot property owned by him and his family.

The report states:

(a) Mr. Mohr was Assistant Director for the Administrative Division of the FBI and the Assistant to the Director. He was primarily responsible for using USRC as an exclusive supplier of electronics equipment to the FBI. His conduct toward§,USRC violated 28 C.F.R. 045.735-2(b) and (c)(2) (prohibiting employees from giving preferential treatment to any person outside the Department). He received a few gratuities (tape deck, Christmas gifts) from Mr. Tait. No evidence was found that he was bribed, but he violated 945.735-14(a)(1), which prohibits employees from accepting gifts from those doing business with the Department.
(b) FBI employees provided goods and services to him as described above. This arguably violated 18 U.S.C. 641 (conversion of government property to his own use), (prosecution barred by the statute of limitations), and 28 C.F.R. §45.735-16 (misuse of federal property).
(c) Mr. Mohr was also responsible, along with Mr. Callahan, for using FBI Recreation Association and Confidential Fund monies for unauthorized public relations purposes. This matter has been referred to the Department’s office of Management and Finance for appropriate action (see footnote 12 above). In 1972, he attended an expense paid hunting weekend at Remington Farms, an FBI arms supplier. This is a violation of the Department prohibition against accepting gifts from those doing business with the Department, 28 C.F.R. §45.735-14(a)(1).
(d) No action has been taken against Mr. Mohr. He retired on June 30, 1972. Criminal action under all of the above federal provisions is barred by the five year statute of limitations.


References

1978 Bell Report

Thomas, Robert McG. Jr. “John Mohr, 86, Hoover Confidant and Ally at F.B.I., Dies.” New York Times, 1 February 1997.

Absolute deviation

In statistics, the absolute deviation of an element of a data set is the absolute difference between that element and a given point. Typically the point from which the deviation is measured is the value of either the median or the mean of the data set.

<math>|D| = |x_i-\overline{x}| </math>

where

|D| is the absolute deviation,
xi is the data element
and <math>\overline{x}</math> is the chosen measure of central tendency of the data set.

The average absolute deviation (or simply average deviation) of a data set is the average (or expected value) of the absolute deviations and is a summary statistic of statistical dispersion or variability.

The average absolute deviation of a set {x1, x2, …, xn} is

<math>\frac{1}{n}\sum_{i=1}^n |x_i-\overline{x}|</math>

The choice of measure of central tendency has a marked effect on the value of the average deviation. For example, for the data set {2, 2, 3, 4, 14}:

Measure of central tendency Absolute deviation
Mean = 5 2 - 5| + |2 - 5| + |3 - 5| + |4 - 5| + |14 - 5|}{5} = 3.6</MATH>
Median = 3 2 - 3| + |2 - 3| + |3 - 3| + |4 - 3| + |14 - 3|}{5} = 2.8</MATH>
Mode = 2 2 - 2| + |2 - 2| + |3 - 2| + |4 - 2| + |14 - 2|}{5} = 3.0</MATH>

The average absolute deviation from the median is less than or equal to the average absolute deviation from the mean. In fact, the average absolute deviation from the median is always less than or equal to the average absolute deviation from any other fixed number.

The average absolute deviation from the mean is less than or equal to the standard deviation. One way of proving that relies on Jensen’s inequality.

The mean absolute deviation is the average absolute deviation from the mean and is a common measure of forecast error in time series analysis. It should be noted that although the term mean deviation is used as a synonym for mean absolute deviation, to be precise it is not the same; in its strict interpretation (namely, omitting the absolute value operation), the mean deviation of any data set from its mean is always zero.

The mean absolute deviation of a sample is a biased estimator of the mean absolute deviation of the population.


See also

  • Deviation (statistics)
  • Median absolute deviation


External links

  • Advantages of the mean absolute deviation

Conservative two-phase locking

In computer science, conservative two-phase locking (C2PL) is a locking method used in DBMS and relational databases.

Conservative 2PL prevents deadlocks.

The difference between 2PL and C2PL is that C2PL’s transactions obtain all the locks they need before the transactions begin. This is to ensure that a transaction that already holds some locks will not block waiting for other locks.

In heavy lock contention, C2PL reduces the time locks are held on average, relative to 2PL and Strict 2PL, because transactions that hold locks are never blocked.

In light lock contention, C2PL holds more locks than is necessary, because it is hard to tell what locks will be needed in the future, thus leads to higher overhead.

Also, a transaction will not even obtain any locks if it cannot obtain all the locks it needs in its initial request. Furthermore, each transaction needs to declare its read and write set (data items to be read/written during transaction), which is not always possible. Because of these limitations, C2PL is not used very frequently.

Brentwood Council election, 2008


Composition of expiring seats before election

Ward Party Incumbent Elected Incumbent Standing again?
Brentwood North Conservative 2004 Paul Faragher
Brentwood South Labour 2004 Colin Elphick
Brentwood West Conservative 2004 Joan Holmes
Brizes & Doddinghurst Liberal Democrats 2004 Derek Hardy
Hutton Central
Conservative 2004 Jean McGinley
Hutton North Conservative 2004 Louise Monnickendam
Hutton South Conservative 2004 Francis Kenny
Ingatestone, Fryerning & Mountnessing Conservative 2004 Anthony Sleep
Pilgrims Hatch Liberal Democrats 2007 David Kendall
Shenfield Conservative 2004 Margaret Brehaut
Tipps Cross Conservative 2004 Dominic Good
Warley Conservative 2004 David Tee


External links

  • Brentwood Council

Devil’s coup

The Devil’s Coup is a declarer play in Bridge that prevents the defense from taking an apparently natural trump trick. A typical example is when the defense holds Qx opposite Jxx in trumps.

The aim is to come to a position similar to that shown below. Spades are trumps and the lead is in dummy (North):

The 3 is lead. If East ruffs low, then declarer overruffs low and cashes the Ace and King of spades. If East ruffs high, declarer overruffs with the K and finesses West for the Q to make the remaining two tricks.

Devil’s coups are fairly rare: not only the trump suit but the side suits must lie well for declarer.


See also

  • Smother play
  • Trump coup

Conservative two-phase locking

In computer science, conservative two-phase locking (C2PL) is a locking method used in DBMS and relational databases.

Conservative 2PL prevents deadlocks.

The difference between 2PL and C2PL is that C2PL’s transactions obtain all the locks they need before the transactions begin. This is to ensure that a transaction that already holds some locks will not block waiting for other locks.

In heavy lock contention, C2PL reduces the time locks are held on average, relative to 2PL and Strict 2PL, because transactions that hold locks are never blocked.

In light lock contention, C2PL holds more locks than is necessary, because it is hard to tell what locks will be needed in the future, thus leads to higher overhead.

Also, a transaction will not even obtain any locks if it cannot obtain all the locks it needs in its initial request. Furthermore, each transaction needs to declare its read and write set (data items to be read/written during transaction), which is not always possible. Because of these limitations, C2PL is not used very frequently.

Method signature

In computer programming, especially object-oriented programming, a method is commonly identified by its unique method signature. This usually includes the method name, the number and type of its parameters, and its return type. A method signature is the smallest type of a method.

In the Objective-C programming language, method signatures for an object are declared in the interface header file. For example,

- (id)initWithInt:(int)value;

defines a method initWithInt that returns a general object (an id) and takes one integer argument. Objective-C only requires a type in a signature to be explicit when the type is not id; this signature is equivalent:

- initWithInt:(int)value;

In the Java programming language, method signatures for an object is the method name and the number and type of its parameters. Return types are not considered to be a part of the method signature.

- return_type method_name(parameters) {...}


See also

  • Type signature

Resummation

In mathematics and theoretical physics, resummation is a procedure to obtain a finite result from a divergent sum (series) of functions. Resummation involves a definition of another (convergent) function in which the individual terms defining the original function are rescaled, and an integral transformation of this new function in order to obtain the original function. Borel resummation is probably the most well-known example.

Write-Read conflict

In computer science, in the field of databases, Write-Read Conflict, also known as reading uncommitted data, is a computational anomaly associated with interleaved execution of transactions.

Given a schedule D

<math>D = \begin{bmatrix}

T1 & T2 \\
R(A) & \\
W(A) & \\

& R(A) \\
& W(A)\\
& R(B) \\
& W(B) \\
& Com. \\

R(B) & \\
W(B) & \\
Com. & \end{bmatrix}</math>

T2 could read a database object A, modified by T1 which hasn’t committed. This is a dirty read.

T1 may write some value into A which makes the database inconsistent. It is possible that interleaved execution can expose this inconsistency and lead to inconsistent final database state, violating ACID rules.

Strict 2PL overcomes this inconsistency by locking T2 out from performing a Read/Write on A. Note however that Strict 2PL can have a number of drawbacks, such as the possibility of deadlocks.


See also

  • Concurrency control
  • Read-Write conflict
  • Write-Write conflict

Chisholm High School

Chisholm High School (Founded in 1973) is the second largest high school in Enid, Oklahoma and is located in the northern part of the city.
With a student body of approximately 300 students in grades 9-12, Chisholm offeres a variety of normal and AP academic courses.
Chisholm also offers a variety of sports including football, basketball, baseball, softball, track and field, cross country, bowling, and cheerleading.
Chisholm holds a state championship banner for 1989 in Track and Field. The school’s predecessor “Carrier High School” holds a banner in Girls Basketball from 1970.

The school board members are:

  • President - Terri Keuchel
  • Vice President - Dr. Scott Tefft
  • Clerk - David Stubbs
  • Jack Kehnemund (member)
  • Dr. Rolfe Reitz (member)
  • Superintentant Roydon Tilley
  • Principal - Jaymie Morely (High School)
  • Principal - Shane Dent (Middle School)
  • Principal - Cyndy Crites (Elementary School)


External page

  • Home page

The Priciple of the middle school is Shane Dent
Scot Trower is not the princeiple.

Energy-momentum relation

In special relativity, the energy-momentum relation is a relation between the energy, momentum and the mass of a body:

<math> E^2 = m^2 c^4 + p^2 c^2 , \;</math>

where c is the speed of light, <math>E \;</math> is total energy, <math>m \;</math> is invariant mass, and <math>p\;</math> is momentum.

For a body in its rest frame, the momentum is zero, so the equation simplifies to

<math> E = mc^2 \;</math>

If the object is massless then the energy momentum relation reduces to

<math> E = pc \;</math>

as is the case for a photon.

In natural units the energy-momentum relation can be expressed as

<math> \omega^2 = m^2 + k^2 \;</math>

where <math>\omega \;</math> is angular frequency, <math>m \;</math> is rest mass and <math>k \;</math> is wave number.

In Minkowski space, energy and momentum (the latter multiplied by a factor of c) can be seen as two components of a Minkowski four-vector. The norm of this vector is equal to the square of the rest mass of the body, which is a Lorentz invariant quantity and hence is independent of the frame of reference.

When working in units where c = 1, known as the natural unit system, the energy-momentum equation reduces to

<math>m^2 = E^2 - p^2 \,\!</math></br>

In particle physics, energy is typically given in units of electron volts (eV), momentum in units of eV/c, and mass in units of eV/c2. In electromagnetism, and because of relativistic invariance, it is useful to have the electric field E and the magnetic field B in the same unit (gauss), using the cgs (gaussian) system of units, where energy is given in units of erg, momentum in g.cm/s and mass in grams.

Energy may also in theory be expressed in units of grams, though in practice it requires a large amount of energy to be equivalent to masses in this range. For example, the first atomic bomb liberated about 1 gram of heat, and the largest thermonuclear bombs have generated a kilogram or more of heat. Energies of thermonuclear bombs are usually given in tens of kilotons and megatons referring to the energy liberated by exploding that amount of trinitrotoluene (TNT).


See also

  • Mass-energy equivalence
  • Four-momentum

Component Object Model

Component Object Model (COM) is a platform for software componentry introduced by Microsoft in 1993. It is used to enable interprocess communication and dynamic object creation in any programming language that supports the technology. The term COM is often used in the software development world as an umbrella term that encompasses the OLE, OLE Automation, ActiveX, [[#COM+|COM+]] and DCOM technologies. Although COM was introduced in 1993, Microsoft did not begin emphasizing the name COM until 1997.

The essence of COM is a language-neutral way of implementing objects such that they can be used in environments different from the one they were created in, even across machine boundaries. For well-authored components, COM allows reuse of objects with no knowledge of their internal implementation because it forces component implementers to provide well-defined interfaces that are separate from the implementation. The different allocation semantics of languages are accommodated by making objects responsible for their own creation and destruction through reference-counting. Casting between different interfaces of an object is achieved through the QueryInterface() function. The preferred method of inheritance within COM is the creation of sub-objects to which method calls are delegated.

Although it has been implemented on several platforms, COM is primarily used with Microsoft Windows. COM is expected to be replaced to at least some extent by the Microsoft .NET framework, and support for Web Services through the Windows Communication Foundation (WCF). However, COM objects can still be used with all .NET languages without problems. Networked DCOM uses binary proprietary formats, while WCF encourages the use of XML-based SOAP messaging. COM also competes with CORBA and Java Beans as component software systems.


History

One of the first methods of interprocess communication in Windows was DDE which allowed sending and receiving messages in so-called “conversations” between applications. This technology was the base of OLE (Object Linking and Embedding) which in turn was one of the leading technologies introduced with Windows 3.0. Text conversations and Windows messages proved not to be as flexible as to allow sharing application features in a robust and extensible way. By the time version 3.1 of Windows was released, COM was created as a new foundation and OLE changed to OLE2.

Visual Basic introduced the VBX (packaged extensions in the form of dynamically linked libraries) which allowed the creation of objects to be graphically placed in a form and manipulated by properties and methods. These were later adapted for use by other languages such as [[Visual C++]]. OLE custom controls (OCXs) would be the replacement for the widely popular VBX.

Antony Williams, one of the more notable thinkers involved in the creation of the COM architecture, distributed a couple of internal papers in Microsoft that embraced the concept of software components; Object Architecture: Dealing With the Unknown – or – Type Safety in a Dynamically Extensible Class Library in 1988 and On Inheritance: What It Means and How To Use It in 1990. These provided the foundation of many, if not all, of the ideas behind the basics of COM.

From many of these ideas spawned Microsoft’s first object-based framework, OLE, which is short for Object Linking and Embedding. OLE was built on top of dynamic data exchange (DDE) and designed specifically for compound documents. It was introduced with Word for Windows and Excel in 1991, and was later included with Windows, starting with version 3.1 in 1992.
An example of a compound document is a spreadsheet embedded in a Word for Windows document; as changes are made to the spreadsheet within Excel, they appear automatically inside the Word document.

In 1991, Microsoft introduced Visual Basic Extensions (VBX) with Visual Basic 1.0.

In 1993, Microsoft released OLE 2 with underlying object model. While OLE 1 was focused on compound documents, COM and OLE 2 were designed to address software components in general. In 1994 OLE controls (OCX) were introduced as the successor to VBX controls. At the same time, Microsoft stated that OLE 2 would just be known as “OLE”, and that OLE was no longer an acronym, but a name for all of the company’s component technologies.

In early 1996, Microsoft found a new use for OLE Custom Controls, expanding their Web browser’s capability to present content, renamed some parts of OLE relating to the Internet ActiveX, and gradually renamed all OLE technologies to ActiveX, except the compound document technology that was used in Microsoft Office. Later that year, DCOM was introduced as an answer to CORBA.


Related technologies

COM was the major software development platform for Windows and, as such, influenced development of a number of supporting technologies.


COM+

In order to provide developers with support for distributed transactions, resource pooling, disconnected applications, event publication and subscription, better memory and processor (threads) management, as well as to position Windows as an alternative to other enterprise-level operating systems, Microsoft introduced a technology called Microsoft Transaction Server on Windows NT Service Pack 4.

With Windows 2000, that significant extension to COM was incorporated into the operating system (as opposed to the series of external tools provided by MTS) and renamed COM+. At the same time, Microsoft deemphasized DCOM as a separate entity. Transactional COM components were then handled more directly by the added layer of COM+. COM+ components were then added through the Component Services application interface.

An advantage of COM+ was that it could be run in “component farms”. A component, if coded properly, could be reused by new calls to its initializing routine without unloading it from memory. Components could also be distributed (called from another machine) as was previously only possible with DCOM.

COM+ also introduced a subscriber/publisher event mechanism called COM+ Events, and provided a new way of leveraging MSMQ (inter-application asynchronous messaging) with components called Queued Components. COM+ events extend the COM+ programming model to support late-bound events or method calls between the publisher or subscriber and the event system.


.NET

The COM platform has largely been superseded by the Microsoft .NET initiative, and Microsoft now focuses its marketing efforts on .NET. COM was often used to hook up complex, high performance code to front end code implemented in Visual Basic or ASP.

To some extent, COM is now deprecated in favor of .NET. Since .NET provides rapid development tools similar to Visual Basic for both Windows Forms and Web Forms with just-in-time compilation, back-end code can be implemented in any .NET Language including C#, Visual Basic and [[C++]].

Despite this, COM remains a viable technology with an important software base. As of this writing, Microsoft has no plans for discontinuing either COM or support for COM. COM is also ideal for script control of applications such as Office or Internet Explorer since it provides an interface for calling COM object methods from a script rather than requiring knowing the API at compile time. The GUID system developed for COM has wide uses any time a unique ID is needed.

Several of the services that COM+ provides, such as transactions and queued components, are still important for enterprise .NET applications.

There is limited support for backward compatibility. A COM object may be used in .NET by implementing a runtime callable wrapper (RCW). [1] .NET objects that conform to certain interface restrictions may be used in COM objects by calling a COM callable wrapper (CCW). [2] From both the COM and .NET sides, objects using the other technology appear as native objects.

.NET’s remoting model solves a number of COM’s remote execution shortcomings, allowing objects to be transparently marshalled by reference or value across process or machine boundaries.


Internet security

Microsoft’s idea of embedding active content on web pages as COM/ActiveX components (rather than e.g. Java applets) created a combination of problems in the Internet Explorer web browser that has led to an explosion of computer virus, trojan and spyware infections. These malware attacks mostly depend on ActiveX for their activation and propagation to other computers. Microsoft recognized the problem with ActiveX as far back as 1996 when Charles Fitzgerald, program manager of Microsoft’s Java team said “If you want security on the ‘Net’, unplug your computer. … We never made the claim up front that ActiveX is intrinsically secure.” [3]
As COM and ActiveX components are run as native code on the user’s machine, there are fewer restrictions on what the code can do. Many of these problems have been addressed by the introduction of “code Signing” (based on digital signatures), and later by the .NET platform as well. Also, before an ActiveX control is installed, the user is prompted whether to allow the installation or not, enabling the user to disallow the installation of controls from sites that the user doesn’t trust. Additionally, it is possible to disable ActiveX controls altogether, or to only allow a selected few.


Technical details

COM programmers build their software using COM-aware components. Different component types are identified by class IDs (CLSIDs), which are Globally Unique Identifiers, or GUIDs. Each COM component exposes its functionality through one or more interfaces. The different interfaces supported by a component are distinguished from each other using interface IDs (IIDs), which are also GUIDs.

COM interfaces have bindings in several languages, such as C, [[C++]], Visual Basic, and several of the scripting languages implemented on the Windows platform. All access to components is done through the methods of the interfaces. This allows techniques such as inter-process, or even inter-computer programming (the latter using the support of DCOM).


Interfaces

All COM components must (at the very least) implement the standard IUnknown interface, and thus all COM interfaces are derived from IUnknown. The IUnknown interface consists of three methods: AddRef() and Release(), which implement reference counting and controls the lifetime of interfaces; and QueryInterface(), which by specifying an IID allows a caller to retrieve references to the different interfaces the component implements. The effect of QueryInterface() is similar to dynamic_cast<> in [[C++]] or casts in Java and C#.

A COM component’s interfaces are required to exhibit the reflexive, symmetric, and transitive properties. The reflexive property refers to the ability for the QueryInterface() call on a given interface with the interface’s ID to return the same instance of the interface. The symmetric property requires that when interface B is retrieved from interface A via QueryInterface(), interface A is retrievable from interface B as well. The transitive property is similar to the symmetric property, but requires that if interface B is obtainable from interface A and interface C is obtainable from interface B, then interface C should be retrievable from interface A.

An interface consists of a pointer to a virtual function table that contains a list of pointers to the functions that implement the functions declared in the interface, in the same order that they are declared in the interface. This technique of passing structures of function pointers is very similar to the one used by OLE 1.0 to communicate with its system libraries.

COM specifies many other standard interfaces used to allow inter-component communication. For example, one such interface is IStream, which is exposed by components that have data stream semantics (e.g. a FileStream component used to read or write files). It has the expected Read and Write methods to perform stream reads and writes. Another standard interface is IOleObject, which is exposed by components that expect to be linked or embedded into a container. IOleObject contains methods that allow callers to determine the size of the component’s bounding rectangle, whether the component supports operations like ‘Open’, ‘Save’ and so on.


Classes

A class in COM is referred to as a coclass which is the contracted form of Component Object class. A coclass is COM’s language-independent way of defining a class in the object-oriented sense.

A coclass supplies concrete implementation(s) of one or more interfaces. In COM, such concrete implementations can be written in any programming language that supports COM component development, e.g. C++, Visual Basic, etc.

One of COM’s major contributions to the world of Windows development is the awareness of the concept of separation of interface from implementation. This awareness has no doubt influenced the way programmers build systems today. An extension of this fundamental concept is the notion of one interface, multiple implementations. This means that at runtime, an application can choose to instantiate an interface from one of many different concrete implementations.


Interface Definition Language and type libraries

Type libraries contain metadata that represent COM types. However, these types must first be described using Microsoft Interface Definition Language.

This is the common practice in the development of a COM component, i.e. to start with the definition of types using IDL. An IDL file is what COM provides that allows developers to define object-oriented classes, interfaces, structures, enumerations and other user-defined types in a language independent manner. COM IDL is similar in appearance to C/C++ declarations with the addition of keywords such as “interface” and “library” for defining interfaces and collections of classes, respectively. IDL also requires the use of bracketed attributes before declarations to provide additional information, such as the GUIDs of interfaces and the relationships between pointer parameters and length fields.

The IDL file is compiled by the MIDL compiler into a pair of forms for consumption from various languages. For C/C++, the MIDL compiler generates a compiler-independent header file containing struct definitions to match the vtbls of the declared interfaces and a C file containing declarations of the interface GUIDs. C++ source code for a proxy module can also be generated by the MIDL compiler. This proxy contains method stubs for converting COM calls into Remote Procedure Calls, thus enabling DCOM.

An IDL file may also be compiled by the MIDL compiler into a type library (.TLB file). The binary metadata contained within the type library is meant to be processed by language compilers and runtime environments (e.g. VB, Delphi, the .NET CLR etc). The end result of such TLB processing is that language-specific constructs are produced that represent the COM class defined in the .TLB (and ultimately that which was defined in the originating IDL file).


COM as an object framework

The fundamental principles of COM have their roots in Object-Oriented philosophies. It is a platform for the realization of Object-Oriented Development and Deployment.

Because COM is a runtime framework, types have to be individually identifiable and specifiable at runtime. To achieve this, globally unique identifiers (GUIDs) are used. Each COM type is designated its own GUID for identification at runtime (vis compile time).

In order that information on COM types be accessible at both compile time and runtime, COM presents the type library. It is through the effective use of type libraries that COM achieves its capabilities as a dynamic framework for the interaction of objects.

Consider the following example coclass definition in an IDL :

coclass MyObject
{
  [default] interface IMyObject;
  [default, source] dispinterface _IMyObjectEvents;
};

The above code fragment declares a COM class named MyObject which must implement an interface named IMyObject and which supports (not implements) the event interface _IMyObjectEvents.

Ignoring the event interface bit, this is conceptually equivalent to defining a C++ class like this :

class CSomeObject : public ISomeInterface
{
  ...
  ...
  ...
};

where ISomeInterface is a C++ pure virtual class.

Referring once again to the MyObject COM class: once a coclass definition for it has been formalized in an IDL, and a Type Library compiled from it, the onus is on the individual language compiler to read and appropriately interpret this Type Library and then produce whatever code (in the specific compiler’s language) necessary for a developer to implement and ultimately produce the binary executable code which can be deemed by COM to be of coclass MyObject.

Once an implementation of a COM coclass is built and is available in the system, next comes the question of how to instantiate it. Now, in languages like C++, we can use the CoCreateInstance() API in which we specify the CLSID (CLSID_MyObject) of the coclass as well as the interface (specified by the IID IID_IMyObject) from that coclass that we want to use to interact with that coclass. Calling CoCreateInstance() like this:

CoCreateInstance
(
  CLSID_MyObject,
  NULL,
  CLSCTX_INPROC_SERVER,
  IID_IMyObject,
  (void**)&m_pIMyObject
);

is conceptually equivalent to the following C++ code :

ISomeInterface* pISomeInterface = new CSomeObject();

In the first case, we are saying to the COM sub-system that we want to obtain a pointer to an object that implements the IMyObject interface and we want coclass CLSID_MyObject’s particular implementation of this interface. In the second case, we are saying that we want to create an instance of a C++ class that implements the interface ISomeInterface and we are using CSomeObject as that C++ class.

A coclass, then, is an object-oriented class in the COM world. The main feature of the coclass is that it is (1) binary in nature and consequently (2) programming language-independent.


Registry

In Windows, COM classes, interfaces and type libraries are listed by GUIDs in the registry, under HKEY_CLASSES_ROOT\CLSID for classes and HKEY_CLASSES_ROOT\interface for interfaces. The COM libraries use the registry to locate either the correct local libraries for each COM object or the network location for a remote service.


Reference counting

The most fundamental COM interface of all, i.e. IUnknown (from which all COM interfaces must be derived), supports two main concepts: feature exploration through the QueryInterface method, and object lifetime management by including AddRef() and Release(). Reference counts and feature exploration apply to objects (not to each interface on an object) and thus must have a centralized implementation.

The COM specifications require a technique called reference counting to ensure that individual objects remain alive as long as there are clients which have acquired access to one or more of its interfaces and, conversely, that the same object is properly disposed of when all code that used the object have finished with it and no longer require it. A COM object is responsible for freeing its own memory once its reference count drops to zero.

For its implementation, a COM Object usually maintains an integer value that is used for reference counting. When AddRef() is called via any of object’s interfaces, this integer value gets incremented. When Release() is called, this integer gets decremented. AddRef() and Release() are the only means by which a client of a COM object is able to influence its lifetime. The internal integer value remains a private member of the COM object and will never be directly accessible.

The purpose of AddRef() is to indicate to the COM object that an additional reference to itself has been affected and hence it is necessary to remain alive as long as this reference is still valid. Conversely, the purpose of Release() is to indicate to the COM object that a client (or a part of the client’s code) has no further need for it and hence if this reference count has dropped to zero, it may be time to destroy itself.

Certain languages (e.g. Visual Basic) provide automatic reference counting so that COM object developers need not explicitly maintain any internal reference counter in their source codes. Using COM in C language, explicit reference counting is needed. In C++ you can do it by yourself or choose to use a smart pointer that will manage all the reference counting for you.

The following is a general guideline calling AddRef() and Release() to facilitate proper reference counting in COM object :

  • Functions (whether object methods or global functions) that return interface references (via return value or via “out” parameter) should increment the reference count of the underlying object before returning. Hence internally within the function or method, AddRef() is called on the interface reference (to be returned). An example of this is the QueryInterface() method of the IUnknown interface. Hence it is imperative that developers be aware that the returned interface reference has already been reference count incremented and not call AddRef() on the returned interface reference yet another time.
  • Release() must be called on an interface reference before that interface’s pointer is overwritten or goes out of scope.
  • If a copy is made on an interface reference pointer, AddRef() should be called on that pointer. After all, in this case, we are actually creating another reference on the underlying object.
  • Addref() and Release() must be called on the specific interface which is being referenced since an object may implement per-interface reference counts in order to allocate internal resources only for the interfaces which are being referenced.
  • Extra calls to these functions are not sent out to remote objects over the wire; a proxy keeps only one reference on the remote object and maintains its own local reference count.

To facilitate and promote COM development, Microsoft introduced ATL (Active Template Library) for C++ developers. ATL provides for a higher-level COM development paradigm. It also shields COM client application developers from the need to directly maintain reference counting by providing smart pointer objects.

Other libraries and languages that are COM-aware include the Microsoft Foundation Classes, VBScript, Visual Basic, ECMAScript (JavaScript) and Borland Delphi.


Instantiation

COM standardizes the instantiation (i.e. creation) process of COM objects by requiring the use of Class Factories. In order for a COM object to be created, two associated items must exist :

  • A Class ID.
  • A Class Factory.

Each COM Class or CoClass must be associated with a unique Class ID (a GUID). It must also be associated with its own Class Factory (that is achieved by using a centralized registry). A Class Factory is itself a COM object. It is an object that must expose the IClassFactory or IClassFactory2 (the latter with licensing support) interface. The responsibility of such an object is to create other objects.

A class factory object is usually contained within the same executable code (i.e. the server code) as the COM object itself. When a class factory is called upon to create a target object, this target object’s class id must be provided. This is how the class factory knows which class of object to instantiate.

A single class factory object may create objects of more than one class. That is, two objects of different class ids may be created by the same class factory object. However, this is transparent to the COM system.

By delegating the responsibility of object creation into a separate object, a greater level of abstraction is promoted, and the developer is given greater flexibility. For example, implementation of the Singleton and other creation patterns is facilitated. Also, the calling application is shielded from the COM object’s memory allocation semantics by the factory object.

In order for client applications to be able to acquire class factory objects, COM servers must properly expose them. A class factory is exposed differently, depending on the nature of the server code. A server which is DLL-based must export a DllGetClassObject() global function. A server which is EXE-based registers the class factory at runtime via the CoRegisterClassObject() Windows API function.

The following is a general outline of the sequence of object creation via its class factory :

  • The object’s class factory is obtained via the CoGetClassObject() API (a standard Windows API).
    As part of the call to CoGetClassObject(), the Class ID of the object (to be created) must be supplied. The following C++ code demonstrates this:
     IClassFactory* pIClassFactory = NULL;
    
     CoGetClassObject
     (
       CLSID_SomeObject,
       CLSCTX_ALL,
       NULL,
       IID_IClassFactory,
       (LPVOID*)&pIClassFactory
     );

    The above code indicates that the Class Factory object of a COM object, which is identified by the class id CLSID_SomeObject, is required. This class factory object is returned by way of its IClassFactory interface.

  • The returned class factory object is then requested to create an instance of the originally intended COM object. The following C++ code demonstrates this:
     ISomeObject* pISomeObject = NULL;
    
     if (pIClassFactory)
     {
       pIClassFactory -> CreateInstance
       (
         NULL,
         IID_ISomeObject,
         (LPVOID*)&pISomeObject
       ); 
    
       pIClassFactory -> Release();
    
       pIClassFactory = NULL;
     }

    The above code indicates the use of the Class Factory object’s CreateInstance() method to create an object which exposes an interface identified by the IID_ISomeObject GUID. A pointer to the ISomeObject interface of this object is returned. Also note that because the class factory object is itself a COM object, it needs to be released when it is no longer required (i.e. its Release() method must be called).

  • The above demonstrates, at the most basic level, the use of a class factory to instantiate an object. Higher level constructs are also available, some of which do not even involve direct use of the Windows APIs.

    For example, the CoCreateInstance() API can be used by an application to directly create a COM object without acquiring the object’s class factory. However, internally, the CoCreateInstance() API itself will invoke the CoGetClassObject() API to obtain the object’s class factory and then use the class factory’s CreateInstance() method to create the COM object.

    VBScript supplies the New keyword as well as the CreateObject() global function for object instantiation. These language constructs encapsulate the acquisition of the class factory object of the target object (via the CoGetClassObject() API) followed by the invocation of the IClassFactory::CreateInstance() method.

    Other languages, e.g. PowerBuilder’s PowerScript may also provide their own high-level object creation constructs. However, CoGetClassObject() and the IClassFactory interface remain the most fundamental object creation technique.


    Reflection

    At the time of the inception of COM technologies, the only way for a client to find out what features an object would offer, was to actually create one instance and call into its QueryInterface method (part of the required IUnknown interface).

    This way of exploration became awkward for many applications, including the selection of appropriate components for a certain task, and tools to help a developer understand how to use methods provided by an object.

    As a result, COM Type Libraries were introduced, through which components can describe themselves. A type library contains information such as the CLSID of a component, the IIDs of the interfaces the component implements, and descriptions of each of the methods of those interfaces. Type libraries are typically used by RAD environments such as Visual Basic or Visual Studio to assist developers of client applications.


    Programming

    COM is a binary standard (also said to be language agnostic) and may be developed in any programming language capable of understanding and implementing its binary defined data types and interfaces.

    Runtime libraries (in extreme situations, the programmers) are responsible for entering and leaving the COM environment, instantiating and reference counting COM objects, querying objects for version information, coding to take advantage of advanced object versions, and coding graceful degradation of function when newer versions aren’t available.


    Application and network transparency

    COM objects may be instantiated and referenced from within a process, across process boundaries within a computer, and across a network, using the DCOM technology. Out-of-process and remote objects may use marshalling to send method calls and return values back and forth. The marshalling is invisible to the object and the code using the object.


    Threading in COM

    In COM, threading issues are addressed by a concept known as “apartment models“. Here the term “apartment” refers to an execution context wherein a single thread or a group of threads is associated with one or more COM objects.

    Apartments stipulate the following general guidelines for participating threads and objects:

    • Each COM object is associated with one and only one apartment. This is decided at the time the object is created at runtime. After this initial setup, the object remains in that apartment throughout its lifetime.
    • A COM thread (i.e., a thread in which COM objects are created or COM method calls are made) is also associated with an apartment. Like COM objects, the apartment with which a thread is associated is also decided at initialization time. Each COM thread also remains in its designated apartment until it terminates.
    • Threads and objects which belong to the same apartment are said to follow the same thread access rules. Method calls which are made inside the same apartment are performed directly without any assistance from COM.
    • Threads and objects from different apartments are said to play by different thread access rules. Method calls made across apartments are achieved via marshalling. This requires the use of proxies and stubs.

    There are three types of Apartment Models in the COM world: Single-Threaded Apartment (STA), Multi-Threaded Apartment (MTA), and Neutral Apartment. Each apartment represents one mechanism whereby an object’s internal state may be synchronized across multiple threads.

    The Single-Threaded Apartment (STA) model is a very commonly used model. Here, a COM object stands in a position similar to a desktop application’s user interface. In an STA model, a single thread is dedicated to drive an object’s methods, i.e. a single thread is always used to execute the methods of the object. In such an arrangement, method calls from threads outside of the apartment are marshalled and automatically queued by the system (via a standard Windows message queue). Thus, there is no worry about race conditions or lack of synchronicity because each method call of an object is always executed to completion before another is invoked.

    If the COM object’s methods perform their own synchronization, multiple threads dedicated to calling methods on the COM object are permitted. This is termed the Multiple Threaded Apartment (MTA). Calls to an MTA object from a thread in an STA are also marshaled. A process can consist of multiple COM objects, some of which may use STA and others of which may use MTA. The Thread Neutral Apartment allows different threads, none of which is necessarily dedicated to calling methods on the object, to make such calls. The only proviso is that all methods on the object must be serially reentrant.


    Criticisms

    Since COM has a fairly complex implementation, programmers can be distracted by some of the “plumbing” issues.


    Message pumping

    When an STA is initialized it creates a hidden window that is used for inter-apartment and inter-process message routing. This window must have its message queue regularly pumped. This construct is known as a message pump. On earlier versions of Windows failure to do so could cause system-wide deadlocks. This problem is especially nasty because some Windows APIs initialize COM as part of their implementation, which causes a leak of implementation details.


    Reference counting

    Reference counting within COM may cause problems if two or more objects are circularly referenced. The design of an application must take this into account so that objects are not left orphaned.

    Objects may also be left with active reference counts if the COM “event sink” model is used. Since the object that fires the event needs a reference to the object reacting to the event, the object’s reference count will never reach zero.

    Reference cycles are typically broken using either out-of-band termination or split identities. In the out of band termination technique, an object exposes a method which, when called, forces it to drop its references to other objects, thereby breaking the cycle. In the split identity technique, a single implementation exposes two separate COM objects (also known as identities). This creates a weak reference between the COM objects, preventing a reference cycle.


    DLL hell

    Because the location of each component is stored in a system-wide location (the Windows registry), there can be only one version of a certain component installed. Thus, COM seriously suffers from DLL hell, where two or more applications require different versions of the same component.

    Windows XP introduced a new mode of COM object registration called “Registration-free COM“. This facility makes it possible for applications that need to install COM objects to store all the required COM registry information in the application’s directory, instead of in the global registry, where, strictly speaking only a single application will ever use it. DLL hell can be substantially avoided using Registration-free COM, the only limitation being it requires at least Windows XP or later Windows versions and that it must not be used for EXE COM servers or system-wide components such as MDAC, MSXML, DirectX or Internet Explorer.


    References


    See also

    • Distributed Component Object Model (DCOM)
    • Dynamic Data Exchange (DDE)
    • Microsoft .NET
    • Object linking and embedding (OLE)
    • Software Componentry
    • Structured storage


    External links

    • Microsoft COM Technologies
    • Interview with Tony Williams, Co-Inventor of COM (Video Webcast, August 2006)
    • What OLE is Really About by Kraig Brockschmidt. An Overview of COM and OLE.
    • Component Application Group at Microsoft Research
    • Mozilla ActiveX Project
    • Introduction to COM – basic introduction on how to use COM-components, CodeProject
    • Info: Difference Between OLE Controls and ActiveX Controls from Microsoft
    • Understanding The COM Single-Threaded Apartment Part 1
    • Understanding The COM Single-Threaded Apartment Part 2
    • Component Object Model (COM), DCOM, and Related Capabilities A Carnegie Melon Software Engineering Institute presentation of COM, DCOM and related technologies.


    Java

    • jSegue is a free software segue from Java to COM; call COM from Java, implement COM servers in Java. Released under a BSD license.
    • Java COM Interoperability: J-Integra for COM — commercial Java to COM bi-directional bridging tool, that natively/remotely allows COM and Java to inter-operate.


    Other languages

    • COM in plain C a tutorial on writing COM components in the C programming language.
    • Step by Step COM Tutorial A step-by-step guide to creating COM components using Visual C++ – without the help of ATL or MFC By Saurabh Dasgupta.
    • Delphi COM Essentials at Techvanguards.
    • Building COM Servers in .NET

    BACHO record format

    The BACHO record format is one of the two standard formats used for the interchange of financial transactions in the New Zealand banking system. The other standard format is QC.

    BACHO-format transactions are primarily used in batch processing systems running on MVS mainframe computers.

    A BACHO record is a fixed-length 160-byte entity. This length restriction has led to a number of complexities in interpreting the contents of BACHO transactions, including:

    • Some BACHO fields are interpreted differently depending on whether they contain numeric or alphabetic data.
    • Some BACHO transactions are broken into multiple records, and then reassembled for processing.


    See also

    • Record-oriented filesystem

    Electronic lock

    An electronic lock (also known as a digital lock) is a locking device which uses some form of electronics to authenticate those accessing it, sometimes using two-factor authentication. Electronic locks are typically considered more secure than conventional mechanical locks and can include additional features like logging access attempts, group level access, time-based access and the incorporation of burglar or fire alarms.


    Operation

    Most electronic locks use a magnetic lock/solenoid bolt to perform the physical component of locking. Older mechanisms can also be found which use electric motors to move a deadbolt. Once the authentication process is successful, the lock is released into opening.

    As providing electrical current to a lock within a door can be difficult, a common solution is an electronic strike plate. Using a normal mechanical lock, an electronic striker can also be triggered remotely to free the latch from the door frame.


    Authentication methods

    Electronic locks offer a variety of means of authentication; those described below are not considered exhaustive.


    Numerical codes, passwords and passphrases

    Perhaps the most prevalent form of electronic lock is that using a numerical code for authentication; the correct code must be entered in order for the lock to deactivate. Such locks typically provide a keypad, and some feature an audible response to each press. Combination lengths are usually between 4 and 6 digits long.

    A variation on this design involves the user entering the correct password or passphrase.


    Security tokens

    Another means of authenticating users is to require them to scan or “swipe” a security token such as a smart card or similar, or to interact a token with the lock. For example, some locks can access stored credentials on a personal digital assistant using infrared data transfer methods.


    Biometrics

    As biometrics become more and more prominent as a recognized means of positive identification, their use in security systems increases. Some new electronic locks take advantage of technologies such as fingerprint scanning, retinal scanning and iris scanning, and voiceprint identification to authenticate users.


    See also

    • Access badge
    • Common Access Card (CAC)
    • Credential
    • Keycard
    • Physical security

    TPMS

    TPMS can stand for any of the following:

    • Takoma Park Middle School, located in Silver Spring, Maryland
    • Tyre Pressure Monitoring System, a safety device made to alert automobile operators when their tires are under inflated
    • Transaction Processing Management System, a transaction processing monitor from ICL
    • Triply-Periodic Minimal Surface, an unbounded minimal surface that is periodic in three dimensions.

    The phases of speech

    In a simple form of communication between two people, e.g a short dialog, the speaker’s utterance and transmission of speech sounds (or speech signal) to the hearer encompass 7 phases of speech, namely neurolinguistic programming, neuromuscular phase, organic phase, aerodynamic phase, acoustic phase, neuroreceptive phase, neurolinguistic identification. (Source: J.C. Catford, A Practical Introduction to Phonetics, Oxford University Press, ISBN 978-0-19-924635-9


    Phase 1: Neurolinguistic programming

    Soo Locks

    The Sault Locks (usually called the Soo Locks) allow ships to travel between Lake Superior and the lower Great Lakes. The locks are the busiest in the world, passing an average of 12,000 ships (”boats” in Great Lakes parlance) per year. This is achieved in spite of the locks being closed during the winter months, January through March, when ice shuts down shipping on the Great Lakes. The winter months are used to inspect and maintain the locks.

    The locks bypass the rapids of the St. Marys River where the water falls 7 meters (21 feet) from Lake Superior. Sault Ste. Marie (pronounced Soo Saint Ma-ree) gives its name to both the Canadian and American cities at the site, in Ontario and Michigan, respectively. The Sault Ste. Marie International Bridge between the United States and Canada permits vehicular traffic to pass over the locks.


    American locks

    The American locks form part of a 1.6 mile (2.6 km) canal formally named the St. Marys Falls Ship Canal. They are owned and maintained by the United States Army Corps of Engineers. The first American locks were completed in May 1855.

    • Davis Lock was built in 1914. It is 411 meters (1350 feet) long, 24 meters (80 feet) wide and 7 meters (23.1 feet) deep. The Davis lock is used rather infrequently to lock light freighters, tour boats, and small craft when traffic warrants. SS James A Farrell was the first vessel to lock through.
    • Sabin Lock was built in 1919. It is 1350 feet long, 80 feet wide, and 23.1 feet deep. This lock is decommissioned and no longer used.
    • MacArthur Lock was built in 1943. It is 244 meters (800 feet) long, 24 meters (80 feet) wide and 9 meters (31 feet) deep. This is large enough to handle ocean going vessels that must first pass through the smaller locks in the Welland Canal. First vessel through was the SS Carl D. Bradley.
    • Poe Lock was re-built in 1968, after the Saint Lawrence Seaway had opened. It is 366 meters (1200 feet) long, 34 meters (110 feet) wide and 10 meters (32 feet) deep. It can take ships carrying 72,000 tons of cargo. The Poe is the only lock that can handle the large lakers used on the upper lakes.

    There is a project, as yet unfunded, to built a new large lock to replace the Davis and Sabin locks.


    Engineers Day

    On the last Friday of every June, the public is allowed behind the security fence and cross the lock gates of the American Locks for the annual Engineers Day Open House.[1] Visitors are able to get close enough to the ships passing through the two operating locks to touch them.


    Canadian locks

    Canadian lock, the only lock on the Ontario side, was built in 1895. It broke down in 1987 and a new lock was built within the old lock. The lock was reopened in 1998 and is used for recreation and tour boats. It is 76 meters long, 16 meters wide and 3 meters deep.

    The Sault locks are a well developed tourist site that offers viewing stands to watch the locks at work and tour boat trips through the locks. It is now designated a National Historic Site of Canada (see: Sault Ste. Marie Canal).


    External links

    • Soo Locks homepage US Army Corps of Engineers Soo Locks page
    • Web Camera view of the American locks
    • Aerial photo of locks; note ship in lower lock
    • Animation of how the Soo Locks work.
    • Soo Locks Visitors Center website

    Magic pushbutton

    The magic pushbutton anti-pattern is very common in graphical programming environments. In this scenario, the programmer draws the user interface first and then writes the business logic in the automatically created methods.

    Problems with this anti-pattern are:

    • The code behind the Pushbuttons grows unmanageably
    • Changing the user interface (or adding an alternate interface) is difficult
    • Testing the code is difficult


    Bad Example (Borland Delphi)

    procedure TForm1.Button1Click(Sender: TObject);
    var
      reg:TRegistry;
    begin
      reg:=TRegistry.Create;
      try
        reg.RootKey:=HKey_Current_User;
        if reg.OpenKey(’\Software\MyCompany’,true) then
        begin
          reg.WriteString(’Filename’,edit1.text);
        end;
      finally
        reg.Free;
      end;
    end;
    


    Good Example (Borland Delphi)

    A better way to do this is to refactor the business logic (in this example storing the filename to the registry) into a separate class.

    type
     TPreferences = class
     private
       FFilename: string;
       procedure SetFilename(const Value: string);
     public
       property Filename:string read FFilename write SetFilename;
       procedure Load;
       procedure Save;
     end;
    

    and call this class Save method from the Click handler:

    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Preferences.Save;
    end;
    
    procedure TForm1.Edit1Change(Sender: TObject);
    begin
      Preferences.Filename:=edit1.text;
    end;
    


    References

    STR

    STR is a three-letter abbreviation that may refer to:

    • Short tandem repeat, in DNA testing
    • Special Theory of Relativity, Einstein’s theory
    • Scientific-technological revolution, a term used by Soviet futurists to indicate change in society
    • Strength
    • String (computer science), in computing
    • United States Trade Representative, formerly known as a Special Trade Representative
    • Stuttgart Airport, Germany
    • Scuderia Toro Rosso, a racing team
    • Suspicious Transaction Report, see: Currency Transaction Report
    • Séminaire Saint-Joseph de Trois-Rivières, a school in Quebec
    • Suspend to RAM, in computing
    • Sociedade da Terra Redonda, a Brazilian atheist and skeptic organization

    Computer vision syndrome

    Computer vision syndrome (CVS) is a temporary condition resulting from focusing the eyes on a computer display for protracted, uninterrupted periods of time. Some symptoms of CVS include headaches, blurred vision, neck pain, fatigue, eye strain, dry, irritated eyes, and difficulty refocusing the eyes. These symptoms can be further aggravated by improper lighting conditions (ie. bright overhead lighting or glare) or air moving past the eyes (ie. overhead vents). CVS has not been proven to cause any permanent damage to the eye.

    One may be able to mitigate the risk of CVS by adhering to the “20-20-20 rule”: every 20 minutes, focus the eyes on an object 20 feet (6 meters) away for 20 seconds. Also, the use of over-the-counter artificial tear solutions and computer glasses can reduce the effects of CVS.


    See also

    • Asthenopia
    • Repetitive strain injury

    Rodrigues’ rotation formula

    In geometry, Rodrigues’ rotation formula (named after Olinde Rodrigues) is a vector formula for a rotation in space, given its axis and angle of rotation.

    Say u,v <math>\in</math> R3 and we want to obtain a representation for the rotation vrot of the vector v around the vector u (which is assumed to have unit length) by an angle θ in the counterclockwise (i.e. positive) direction. Rodrigues’ formula reads as follows:

    <math>
    \mathbf{v}_{rot} = \mathbf{v} \cdot \cos\theta + \mathbf{u} \times \mathbf{v} \cdot \sin\theta

     + \langle \mathbf{u}, \mathbf{v} \rangle \mathbf{u} \cdot (1 - \cos\theta).
    

    </math>


    Proof of the formula

    Take the vector w = v − <u,v>u, which is the projection of v on the plane orthogonal to u, and the cross product of the vectors u and v: z = u×v. Turn the vector w by the angle θ around the base of the vector u to obtain the projection of the rotated vector vrot:

    <math>
    \begin{align}
    \mathbf{w}_{rot} &= \mathbf{w} \cdot \cos\theta + \mathbf{z} \cdot \sin\theta \\
    &= (\mathbf{v} - \langle \mathbf{u}, \mathbf{v} \rangle \mathbf{u}) \cdot \cos\theta
    + \mathbf{u} \times \mathbf{v} \cdot \sin\theta.
    \end{align}
    </math>

    Notice that both the vectors w and z have the same length: |w|,|z| = |v - <u,v>u|, because the vector u is of unit length. To get the rotated vector v, we have to add back the adjustment <u,v>u. Hence

    <math>
    \begin{align}
    \mathbf{v}_{rot} &= (\mathbf{v} - \langle \mathbf{u}, \mathbf{v} \rangle \mathbf{u}) \cdot \cos\theta
    + \mathbf{u} \times \mathbf{v} \cdot \sin\theta + \langle \mathbf{u}, \mathbf{v} \rangle \mathbf{u} \\
    &= \mathbf{v} \cdot \cos\theta + \mathbf{u} \times \mathbf{v} \cdot \sin\theta
    + \langle \mathbf{u}, \mathbf{v} \rangle \mathbf{u} \cdot (1 - \cos\theta),
    \end{align}
    </math>

    which is exactly what we were looking for.


    External links

    For another descriptive example see www.d6.com, Chris Hecker, physics section, part 4. “The Third Dimension” — on page 3, section “Axis and Angle, http://www.d6.com/users/checker/pdfs/gdmphys4.pdf

    Tubular pin tumbler lock

    A tubular pin tumbler lock, also known as Ace lock or “axial pin tumbler lock” or “radial lock”, is a variety of pin tumbler lock in which 6-8 pins are arranged in a circular pattern, and the corresponding key is tubular or cylindrical in shape.

    J.A. Blake is credited with patenting the first tubular lock in 1833. Walter R. Schlage continued the development of the tubular lock. He was awarded 11 patents, and his improvements made the tubular lock what it is today.

    Tubular locks are commonly seen on bicycle locks, computer locks, and a variety of coin-operated devices such as vending machines and coin-operated washing machines.


    Security

    Tubular pin tumbler locks are generally considered to be safer and more resistant to picking than standard locks, though there are several ways to open them without a key. Even though the pins are exposed, making them superficially easier to pick, they are designed such that after all pins are manipulated to their shear line, once the plug is rotated 1/6 to 1/8 around, the pins will fall into the next pin’s hole, requiring re-picking to continue. As such, picking the lock without using a device to hold its pins in place once they reach their shear line requires over a dozen complete picks to unlock and relock.

    Such locks can be picked by a special tubular lock pick with a minimum of effort in very little time; it is also possible to defeat them by drilling with a special “hole saw” drill bit. Standard tubular lock drill bit sizes are .375″ (9.53 mm) diameter and .394″ (10 mm) diameter.[1] To prevent drilling, many tubular locks have a middle pin made of hardened steel, or contain a ball bearing in the middle pin.

    In 2004, videos circulating on the Internet demonstrated that some tubular pin tumbler locks could be easily opened with the shaft of an inexpensive ballpoint pen (e.g. BIC brand) of matching diameter. Trade website BikeBiz.com revealed that the weaknesses of the tubular pin tumbler mechanism had first been described in 1992 by UK journalist John Stuart Clark (see Kryptonite lock).

    MINDO

    MINDO, or Modified Intermediate Neglect of Differential Overlap is a semi-empirical method for the quantum calculation of molecular electronic structure in computational chemistry. It is based on the Intermediate Neglect of Differential Overlap (INDO) method of John Pople. It was developed by the group of Michael Dewar and was the original method in the MOPAC program. The method should actually be referred to as MINDO/3. It was later replaced by the MNDO method, which in turn was replaced by the PM3 and AM1 methods.


    Reference

    • Bingham, R. C., Dewar, M. J. S. and Lo, D. H. Journal of the American Chemical Society, 97, 1285, 1307, (1975).

    Curbside Prophet

    Curbside Prophet” is a song by Jason Mraz. It was released as part of his first major studio album, Waiting for My Rocket to Come, which is one of the lyrics of this song.

    A common interpretation of the chorus of this song is that it contains an innuendo towards masturbation, due to the lyrics “I’m just a curbside prophet, with my hand in my pocket, and I’m waiting for my rocket to come”, which could be relating to ejaculation. Some disagree that this is what he means, and that the lyrics and the button on his shirt in the CD booklet that reads “I ♥ SEX” are just pure coincidence.

    Upholstery needle

    An upholstery needle is a needle used for upholstery. There is a variety of sizes, but they are usually very heavy and curved.

    Another type of needle used by upholsterers is the button needle, which is a very long needle used to install buttons with heavy twine through pillows, cushions and furniture backs.

    An upholstery needle is also used by cosmetologists for the installation of hair weaves.

    Foxton Locks

    Foxton Locks ar