Object Linking & Embedding is a proprietary technology developed by Microsoft that allows embedding and linking to documents and other objects. For developers, it brought OLE Control Extension, a way to develop and use custom user interface elements. On a technical level, an OLE object is any object that implements the IOleObject interface along with a wide range of other interfaces, depending on the object's needs. OLE allows an editing application to export part of a document to another editing application and import it with additional content. For example, a desktop publishing system might send some text to a word processor or a picture to a bitmap editor using OLE; the main benefit of OLE is to add different kinds of data to a document from different applications, like a text editor and an image editor. This creates a Compound File Binary Format document and a master file to which the document makes reference. Changes to data in the master file affect the document that references it; this is called "linking".
OLE is used for transferring data between different applications using drag and drop and clipboard operations. OLE 1.0, released in 1990, was an evolution of the original Dynamic Data Exchange concept that Microsoft developed for earlier versions of Windows. While DDE was limited to transferring limited amounts of data between two running applications, OLE was capable of maintaining active links between two documents or embedding one type of document within another. OLE servers and clients VTBLs; the VTBL consists of a structure of function pointers that the system library can use to communicate with the server or client. The server and client libraries, OLESVR. DLL and OLECLI. DLL, were designed to communicate between themselves using the WM_DDE_EXECUTE message. OLE 1.0 evolved to become an architecture for software components known as the Component Object Model, DCOM. When an OLE object is placed on the clipboard or embedded in a document, both a visual representation in native Windows formats is stored, as well as the underlying data in its own format.
This allows applications to display the object without loading the application used to create the object, while allowing the object to be edited, if the appropriate application is installed. The Object Packager, a component of OLE, shipping from Windows 3.1 up to Windows XP allows a non-OLE object to be "packaged" so it can be embedded into an OLE client. OLE 2.0 was the next evolution of OLE, sharing many of the same goals as version 1.0, but was re-implemented on top of the COM instead of using VTBLs directly. New features were drag-and-drop, in-place activation and structured storage. Monikers evolved from OLE 1 object names, provided a hierarchical object and resource naming system similar to URLs or URIs, which were independently invented. Windows now has merged the two technologies supporting a URL Moniker type, a Moniker URL scheme. OLE custom controls were introduced in 1994 as a replacement for the now deprecated Visual Basic Extension controls. Instead of upgrading these, the new architecture was based on OLE.
In particular, any container that supported OLE 2.0 could embed OLE custom controls, although these controls cannot react to events unless the container supports this. OLE custom controls are shipped in the form of a dynamic link library with the.ocx extension. In 1996 all interfaces for controls were made optional to keep the file size of controls down, so they would download faster. OLE objects and containers are implemented on top of the Component Object Model. Only the IOleObject interface is compulsory, but other interfaces may need to be implemented if the functionality exported by those interfaces is required. To ease understanding of what follows, some terminology has to be explained; the view status of an object is whether the object is transparent, opaque, or opaque with a solid background, whether it supports drawing with a specified aspect. The site of an object is an object representing the location of the object in its container. A container supports a site object for every object contained.
What follows is a list of interfaces, grouped by the object that needs to implement them. Interfaces implemented by the OLE object are called on by the OLE container, vice versa. Note that in the following list indentation indicates interface inheritance. All non-indented interfaces derive from IUnknown. DataObject When implemented, enables the transfer of data, notification of data changes, it must be implemented by objects that are to support drag-and-drop, being copied to or pasted from the clipboard, or being linked or embedded in a containing document. ObjectWithSite Allows the caller to inform the OLE object of its site; this functionality is provided by OleObject, but ObjectWithSite can be used, when supported, if OleObject is not used for other matters. OleCache Allows visual presentations from a DataObject to be cached; this allows an embedded object to store its visual representation, thus enabling it to be displayed without needing to start the application, used to create the object.
The stock implementation is used. OleCache2 Provides more fine-grained control over caching; the stock implementation is used. OleCacheControl This interface is not called by the container, but internally by the object to allow it to receive notifications of when its DataObject is running, thereby allowing it to subscribe to notifications of data changes of
Brasserie de la Senne is a brewery in the municipality of Sint-Jans-Molenbeek in Brussels, named for the river Senne which flows through the city. De La Senne is the initiative of Yvan De Baets. Leboucq set up the St. Peter's Brewery in the former lambic brewery Moriau in Sint-Pieters-Leeuw in 2003, he moved on to create Zinnebir, named after the Zinneke Parade. De Baets worked at Brouwerij De Ranke in Dottignies/Dottenijs; the two decided to start a brewery together in 2006. As the building in Sint-Pieters-Leeuw was no longer available, they brewed provisionally at the De Ranke and Proef breweries. Meanwhile the brewers searched for and found a suitable location in Brussels, a former industrial bakery in Molenbeek. A first test batch was brewed in the new premises at the end of 2010; the brewery has a reputation for brewing fine ales and "frustratingly rare blends" that include lambic from the nearby Cantillon Brewery. In 2013 they collaborated with Pennsylvania's Weyerbacher Brewing Company to produce a beer called Manneken-Penn and with Washington, DC's Bluejacket brewery on a beer called Gray Jacket, in the style of the beer made for miners in the Hainaut region of Belgium.
Leboucq and De Baets do everything themselves. The beers are neither filtered nor pasteurised, no additives are added; the philosophy of the brewers is to brew beers that are characterful, but not strong. Two 20-hectolitre brews take place each week; the demand for the beers exceeds production capacity. Official website
Classification of railway accidents, both in terms of cause and effect, is a valuable aid in studying rail accidents to help to prevent similar ones occurring in the future. Systematic investigation for over 150 years has led to the railways' excellent safety record. Ludwig von Stockert proposed a classification of accidents by their effects. Schneider and Mase proposed an additional classification by causes. Similar categorisations had been made by implication in previous books e.g. Rolt, but Stockert's and Schneider/Mase's are more systematic and complete. With minor changes, they represent best knowledge. Collisions Head-on collision Rear collision Slanting collision Collisions with buffer stops Collisions with obstructions of the track Derailments Plain track Curves JunctionsOther Fires and release of hazardous chemicals People falling from trains, collisions with people on tracks Drivers' errors Passing signals at danger Excessive speed Mishandling of the engine Failure to check brakes and safety systems as well as sand reserve Failure to stop at required positions, e.g. level crossings with defective equipment or shunting movements that lead to occupied tracks.
Signalmen's errors Allowing two trains into same occupied block section Incorrect operation of signals, points or token equipment failure of rolling stock Poor design Poor maintenance Undetected damage Overloading or freight, not adequately secured. Fire starting from combustion motors, electric cables or equipment, leaking fuel or cooling oilCivil engineering failure Track faults Bridge and tunnel collapses Poor track or junction layoutActs of other people Other railway personnel Non-railway personnel Accidental Accidental track obstruction e.g. with road vehicles or by working construction vehicles Deliberate Deliberate track obstruction, e.g. with road vehicles or objects Intentional damage to infrastructure like tracks, points or signals Level crossing misuse TrespassingNatural causes Track obstruction or damage by landslides, floods, trees Fog or snow that obscure signals or the current position of the train Wet leaves making the tracks slippery. Contributory factors Strength of rolling stock Fire hazards or dangerous goods in the train, in involved road vehicles or the vicinity Effectiveness of brakes Inadequate rules Ludwig von Stockert, Eisenbahnunfalle.
Leipzig 1913. Schneider, Wolfgang. Railway Accidents of Europe. In German, English translation by E. L. Dellow. David and Charles. Rolt, L. T. C.. Red for Danger. Bodley Head / David and Charles / Pan Books. Editions available