text:
This Time, James Bond Fights Hackers
James Bond spends most of his time during Skyfall fighting a cyber terrorist. The latest James Bond flick might be unrealistic, but it reminds us that losing data, especially to hackers, can be a very bad thing.
James Bond has always leaned on his gadgets for an edge in fighting off villains. The latest movie is no different. Skyfall has its share of high-tech gadgets: a palm-print reader; a radio transmitter that reveals Bond's location when pressed; plus a classic Bond car, the Aston Martin DB5. But for the most part, James Bond, played by actor Daniel Craig, does not depend on typical 007 devices like exploding pens or jet packs. Instead, the conflict in Skyfall centers on computer hacking, and how sensitive data in the wrong hands can put lives at risk.
Of course, the hacking in Skyfall is a James Bond version of hacking -- not realistic. "Skyfall's depiction of hacking was a lot like Star Trek's depiction of space travel -- a lot of jargon used in a way that has no meaning whatsoever," said Raphael Mudge, founder of Strategic Cyber.
From the movie trailer you don't get the impression that hacking is critical to the plot, but it is:
Spoiler alert: The movie begins with Bond trying to find a missing hard drive, which has encrypted information about agents. He's soon fighting the guy who has the hard drive on top of a fast-moving train.
M, the head of the British Secret Intelligence Service, is put in a vulnerable situation, knowing lives are at risk if the data is released. M makes the decision to allow a sharpshooter to take down the bad guy to hasten recovery of the hard drive. Bond is shot instead, and disappears for some time. When he sees that headquarters are under a cyber attack, he returns to duty in London.
To fight off the threat of cyberwar and security loopholes, Bond depends on human intelligence -- mainly Q, the quartermaster, who is a computer hacking genius. In introducing himself to Bond, Q quips, "I can do more damage on my laptop, sitting in my pajamas, before my first cup of Earl Grey than you can do in a year in the field. Every now and then a trigger has to be pulled."
Later in the film, the information from the hard drive is released on YouTube and several agents are assassinated.
The concept of "security by obscurity" even comes up in the film. It's well known in the security field that protecting a system this way doesn't actually work. Computer experts explain why on Quora.
Perhaps Skyfall was inspired by the Stuxnet virus, which was created by the U.S. and Israel to spy on Iran's nuclear enrichment facilities. The virus was discovered in June 2010, and it spreads through Microsoft Windows and can affect Siemens equipment. The Wall Street Journal reports that Stuxnet also infected Chevron's network.
The villain Raoul Silva, played by Javier Bardem, is a cyber terrorist. Many have made the connection that Bond is fighting a Julian Assange-inspired character. The cyber terrorist Silva sends messages on the computer screen telling M to, "Think on your sins."
In reality, penetrating a corporation would look more like what Mudge demonstrated to me during BlackHat and Defcon. Skyfall does remind us, though, that losing data could cause serious damage if that information falls into the wrong hands and that connecting devices to a network can compromise the system.
In all, Skyfall provided a few hours of entertainment. And although not very realistic, it did allude to the war we are currently fighting -- cyberwar. There was no mention of Bond bringing his own smart phone or tablet to the office, but maybe that's a good thing. BYOD might have introduced even more vulnerabilities into the network.
About the Author(s)
You May Also Like


text:
Registration is easy.
By continuing past this page, you agree to our By signing up, I confirm that I agree with the Terms of Service and Privacy Policy
No worries, we've got you covered! Simply enter the info you used while booking & we'll send it to you in a very short time!

subset: commoncrawl


text:
Indigo Golf Partners, LLC, its subsidiaries and golf courses are committed to taking measures to respect and protect your privacy. This privacy policy sets forth the measures we take with regard to how we use, protect and allow others to view your personal information.
Our primary purpose in collecting personal information is to provide you with a smooth, efficient, and customized experience at our managed courses, Internet sites, applications and online services ("Services"). This allows us to provide services and features that most likely meet your needs, and to customize our Services to make your experience with the course easier. We will only process your Personal Data in accordance with applicable data protection and privacy laws.
If you choose to disclose your e-mail address or other contact information through any correspondence, registration, reservation procedure, contract, or request for information, we may use it to periodically to send you information. If you would prefer not to receive such information, you can choose to opt out of the communication at any time by following the instructions in the e-mail that you receive or by contacting the course directly.
Except as otherwise expressly noted herein or within the course of providing Services, we may share any information collected through our Services, including without limitation, your name, postal address, email, (and any other information we combine with that information) with our Indigo Golf Partners-affiliated companies, our provider partners and service providers, and with carefully selected third-party organizations and marketers of products and services potentially of interest to you.
Our primary goal in collecting information is to provide you with a customized experience when using our Services and to make them more valuable to you. We also use the information we collect to help us and advertisers efficiently reach consumers who are most likely to be interested in particular products and services. In addition, we and our authorized service providers generally use other information that we or they collect about you to:
Enable you to participate in features such as surveys, polls, sweepstakes, and message boards;
Provide you with special offers, promotions and information from companies within our corporate family, and select third parties in accordance with applicable law;
For more information or to contact us, please call 1-866-589-7757, or write to Indigo Golf Partners, Attn: Privacy Policy, 12700 Sunrise Valley Dr. Suite 300 Reston, VA 20191.


text:
Here's what we'd order: Banana bread French toast and mimosas. Mr. E always gets some sort of egg dish, but me....I just can't get past that French toast.
Inspired by Bread Winners, I made Banana Bread French Toast at home. Like theirs, I piled mine high with clouds of whipped cream (I sweetened mine with brown sugar)...but for the syrup, I made up a little peanut butter maple syrup.
{I think I was channeling Elvis.}
{I certainly might resemble Elvis in his later years if I eat this every day.}
First, you'll need banana bread. If you have a banana bread you love, by all means use it. I'll provide one for you below.
You'll want to bake the bread and let it it COOL COMPLETELY before making the French toast...the warm bread may fall apart on you.
Banana Bread French Toast with Peanut Butter Maple Syrup
for the bread:
{adapted from King Arthur Flour Baker's Companion}
2 & 2/3 cup unbleached, all-purpose flour
1 teaspoon baking soda
1 teaspoon baking powder
1 teaspoon kosher salt
1/2 teaspoon freshly grated nutmeg
2 eggs
1 cup sugar
1/3 cup vegetable oil
1 cup mashed, ripe bananas
2 teaspoons vanilla bean paste (or vanilla extract)
3/4 cup plain Greek yogurt
1/4 cup milk
for the syrup:
1/2 cup maple syrup
1/4 cup smooth peanut butter
for the brown sugar whipped cream:
1 cup heavy cream
3 TBSP light brown sugar
for the French toast:
3 eggs
3/4 cup milk
1 TBSP sugar
1/2 teaspoon vanilla
dash kosher salt
butter for the griddle
make the bread:
Grease a flour a 9 x 5" loaf pan. Set aside. Preheat oven to 350.
Whisk together the flour, baking soda, baking powder, salt and nutmeg. Set aside.
In a large bowl, beat the eggs, sugar, and oil until well combined. Add in the bananas and vanilla bean paste and mix. Add in the flour mixture on low speed, just until combined. Stir in the yogurt and milk.
Pour the batter into the prepared pan. Bake for about 1 hour, or until a toothpick inserted in the center comes out clean. If the bread is browning too quickly, tent with foil.
Let cool in the pan for 10 minutes, then remove from pan and place on a wire rack to cool completely.
make the syrup:
Whisk the maple syrup and peanut butter together in a small saucepan. Keep over low heat, whisking occasionally.
make the whipped cream:
Add the brown sugar to the bowl, breaking it up with your fingers. Add the cream. With the whisk attachment, whip the cream with the sugar until peaks form. Set aside.
make the French toast mixture:
cook & assemble:
Butter the hot griddle, and cook the bread on both sides, until golden.
Unbutton pants. (Optional.)
{No, this post was NOT sponsored by Bread Winners. Yes, my love for them, and banana bread French toast, runs deep.}


text:
Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
STEM Design Document
This document is intended to help new (and old) developers find their way in the STEM development environment and to become effective contributors to the code base. The main problem with trying to learn about a new system is figuring out where to start. At the beginning it is very hard to decide what is important and what is not -- it all looks the same.
There are likely to be two different types of developers who contribute to STEM, those that understand the Eclipse Modeling Framework, and those that don't. If you don't understand EMF, that's "Okay". There's plenty in the system that doesn't require it and you can use STEM as an example to help you learn this very powerful technology. EMF is used to implement the core components of the Simulation engine in STEM and provides generated implementations of the system's serialization code and the visual editors for each component, among many other things.
The STEM Modeling Framework
At its core STEM is a discrete event simulation system. It begins with an initial "simulation state" and then proceeds in step-wise fashion to determine the next state of the Simulation as a function of the current state and a parameter that specifies the current "time". It uses a "graph" to represent the state of the Simulation at each of its steps.
A graph is a simple but powerful mathematical abstraction for representing "entities" (i.e., things in the world) and their relationships. More formally, a graph is a set of "nodes", "edges" and "labels", where nodes generally correspond to entities and edges link two nodes and represent some relationship between them. Labels are attached to either a node or an edge and represent some aspect of their host (like the name of the entity, or the name of the relationship). Each node may have more than one label, but each edge will only have one.
The many meanings of the word "Model"
- We use the word "Model" interchangeably
- Depending upon context, it'll be related to one of the following:
- Data modeled, code-generated data structures (STEM Data Model or EMF Models)
- A Container in STEM UI for composing scenarios (Scenario Model or Geographic model)
- Dynamic, integrated, programmatic models (Disease or population model, like Influenza)
- The Model builder – tool for authoring disease models
Eclipse Modeling Framework
- EMF is a collection of tools for building software on a structured data model
- Majority of STEM is (data) modeled using EMF
- Modeled data structures with EMF Ecore
- Generated Java code for API data bindings
- Serialize/deserialize data objects (primarily XML)
- Leverage and extend EMF UI components (Editors, Wizards)
Core STEM Components
- Core
- Core data (EMF) models
- Identifiable, Scenario, Model, Graph (Node/Edge), Decorators, Labels, …
- Simulation Engine (org.eclipse.stem.jobs)
- Solver, sequencer, logger, graph generator implementations
- Core data (EMF) models
- Data
- Geography, Population, Transportation, Earth Science
- Tools for generating fixed plug-ins of data components ("built-in data")
- Epidemiological models
- Disease Model implementations (SI, SIR, SEIR, Multi-population, Malaria, Polio, etc)
- Sample diseases
- Population models
- Dynamic population models (e.g. mosquito population)
- Food Production models
- Model Generator – graphical tool for authoring disease models
- User Interface for all of the above
The Canonical Graph
- The STEM Canonical Graph is the runtime representation of any simulation's state
- simulation.getScenario().getCanonicalGraph()
- Generated from the Scenario when a simulation is started
- Flattened and resolved version of the combined Graphs supplied to the Scenario
- The Canonical Graph Contains
- Decorators
- Nodes
- Nodes Represent areas that contain populations impacted by models
- Node Examples include:
- Geographic regions
- Transportation carriers (airplanes)
- Nodes also contain Labels and are connected by Edges
- Edges
- Labels
- Time
In STEM, nodes typically represent geographic regions while edges represent relationships between geographic regions. There may be any number of edges between any two nodes, as there many be any number of relationships between any two geographic locations. A label on a node might represent the physical area of the corresponding geographic location, the number of population members of a particular type that live there, or a mathematical representation of the state of a disease at that location. An edge between two nodes might represent a relationship such as the sharing of a common border (i.e., two regions are physical adjacent and could easily exchange population members); a different edge between the same two nodes might represent a road that connects the two locations. In the first case, the label for a border edge might record the length of the border between the two locations; in the latter case, the label might indicate the type of road and how much traffic it carries. Completely different edge could also exist, for instance ones that represent the flight path of migratory birds. The graph that includes all of the nodes, edges, and labels necessary to represent the state of the Simulation is called the canonical graph.
A Simulation in STEM is created from a canonical graph. The specification of how to create the graph is represented by a Scenario (defined below).
The execution of a Simulation begins with an initialized canonical graph and a starting time. The first step in a Simulation is to determine the next point in time that will be used to update the state of the canonical graph. With this value determined the internal STEM Simulation "engine" invokes, in a very specific order, a set of computations associated with the canonical graph. These computations take the time point as input and compute the "next" state of the graph as it will be at that time. When these computations are complete, the state of the entire graph is changed to the "next" value just computed. This process continues until stopped by the user, or, if specified, a predetermined end-time is reached.
The STEM Compositional Modeling Framework
One of the main features of STEM, and the one that makes it such a powerful modeling system, is its framework for specifying the features of a Simulation. This framework allows a Simulation to be composed from many different reusable components that combine to form the Simulation's canonical graph, computational elements and sequence of time points.
This approach is extremely flexible and powerful. The components can be from many different sources and can be exchanged among users. The components can also be combined to create larger structures which then can become reusable components themselves. For instance, it is possible to create a detailed model of a country and then reuse that model as a component in many different Simulations. Similarly, computational aspects of a Simulation such as a specialized disease model can be developed by an individual researcher and then used by many others in their models. The ability of STEM to combine components from different sources makes it possible to leverage the varied expertise of different model builders in a way that has never before been possible.
To foster reuse and collaboration, each component in the framework has a set of Dublin Core Meta Data associated with it. This metadata records important attributes of the component such as its title, descriptive text, the name of the original creator, any literature citations associated with it (e.g., a paper describing a particular disease model) and others attributes such as important dates, spatial characteristics, etc. This information allows modelers to know exactly what they are using in their models.
STEM Components
The STEM compositional modeling framework consists of eight components that constitute the "building blocks" of any Simulation. These are: Scenarios, Sequencers, Decorators, Models, Graphs, Modifiers, Triggers, and Predicates. In addition, a sequence of related Simulations called a Batch, can be defined using components called an Experiment and Modifier.
The main component of a Simulation is a Scenario. When a Simulation is run in STEM, it is always created from a Scenario. A Scenario logically collects together three other types of components, a single Sequencer, a set of Decorators, and a single Model. Together, these components can be used to create a Simulation.
A Scenario can be created using the Scenario Wizard and edited using the Scenario Editor.
A Sequencer is the component of a Simulation that determines the sequence of time values that will be used to compute the next state of the canonical graph. It may produce values that are at fixed intervals of time, or it may vary the duration of the intervals between points. The values it creates are in simulated "STEM Time", but there is no restriction preventing the values from reflecting "wall clock" time. This can be useful for "Simulations" that incorporate external "real-time" data values from databases or other sources such as weather observations.
A Sequencer can be created using the Sequential Sequencer Wizard of the Real-time Sequencer Wizard and edited using the Sequencer Editor.
A Decorator is the framework's computational component. Every Decorator can participate in the initialization of the canonical graph, for instance by setting the values of existing labels or adding additional ones (i.e., they "decorate" the graph). Also, at each simulation cycle, they are responsible for determining the next state of the canonical graph by computing the values of labels as a function of the current Simulation time. In an epidemiological Simulation , a disease model would be implemented as a Decorator. There is no restriction on what a Decorator can do; it can, for instance, issue a query to a database or invoke a web service. There are several types of Decorators available in STEM.
- Decorators are Objects that act on the canonical graph by creating and/or updating Labels
- Decorators "decorate" the graph
- They Can act on the graph, nodes, or edges
- They are applied to the (geographic) model or scenario
- Examples of Decorator include
- Disease models (Integration Decorator)
- Population models (Integration Decorator)
- Dynamic population models
- Infectors, Innoculators, Initializers
- Triggers and modifiers
Integration Decorators
Integration Decorators are graph decorators or operators that change values in graph labels in an integrable way. Disease models and population models are defined in terms of ordinary differential equations that define the continuous disease and population state variables (population count vs time, herd immunity vs time, etc). These equations are integrable and STEM provides a choice of solvers (finite difference, Dormand Prince, etc) or engines that solve the equations defined within an integration decorator, updating the appropriate dynamic labels.
Transformation Decorators
Sometimes a user needs to define operations that affect graph labels in a discontinuous or non-integrable way. Transformation decorators are like integration decorators in that they that change values in graph labels, but are intended for situations that are not numerically integrable. An example of this might be a "Slaughter House". A slaughter house the process cattle to meat at a constant rate could be represented as an integration decorator but if the user wants the transformation to occur instantaneously, then the Transformation decorator must be used. The difference is in how the numerical solver engine handles the transformation. Numerical integration requires computation at variable time steps (and the time step is dynamically reduced to ensure the computation converges). Instantaneous or discontinuous transformations occur after one time step has converged (and before the next time step is started). A developer can chose to use transformation decorators where a transformation must be made discontinuously or instantaneously.
Initializers are used to set the state of graph labels (usually the initial state at runtime). Initializers include:
- Population Initializer (used, for example, to set the initial population of chickens in a farm)
- Disease Model Initializers
- Infectors (set the initial infectious number or fraction in a population at a single node or for the whole graph)
- Inoculators (set the initial herd immunity (number or fraction) in a population at a single node or for the whole graph
- Disease Initilizers (a more flexible way to set the state of all disease compartments in a single view. E.g., Susceptible, Exposed, Infectious, Recovered, etc.)
- Disease Initilizers from an external file: A way to initialize a graph from a spreadsheet. Useful when defining different initial conditions for a large number of nodes.
- Graphical Editor: Graphs can also be initialized in other ways, for example using the graphical editor to create a user defined graph with label values already configured in a specific way.
A Model is the component responsible for representing the contents of the canonical graph and for creating an instance of it when a Simulation is started from a Scenario. It combines with the final component of the framework called a Graph to form a tree. This tree is a hierarchical organization of the different contributions to the canonical graph. Model instances form the root and interior nodes of the tree while Graph instances form the leaves. The Model referenced by a Scenario is the root of such a tree.
Each Model contains three different collections. The first is a collection of "sub-Model" instances, each of which is essentially the root of a sub-tree. The second is a collection of Graph instances, and the third is another collection of Decorators.
A Model can be created using the Graph Wizard and edited using the Graph Editor.
Graph instances contain the actual components, Nodes, Edges, and Labels, that eventually will be contributed to a canonical graph. In the compositional framework, graph instances are not true mathematical "graphs"; they are better described as "graph fragments" as they may contain unresolved sets of Edges or Labels (and no Nodes). When the canonical graph is created, these fragments are combined and their content's connections eventually resolved (i.e., Edges and Labels will be mated with their appropriate "missing" Nodes). The resulting canonical graph is a true mathematical graph.
STEM contains prebuilt graphs for geographic administrative regions. A Graph may be also be created using the Graph Wizard.
Nodes within a graph typically represent places. These might be entire countries, or smaller regions within countries.
Edges connect nodes. Physical containment (provinces within countries) are represented by Containment Edges. Physical Adjacency is represented by Common Border Edges. These edges are geometric or geographic facts. Today STEM uses these physical edges to model transportation. In the future we will provide other edges to represent connections that apply only to a particular population. For example, a model of Geese Migration will be represented by a graph of Migration Edges that apply only to Geese.
- Labels are objects containing simulation state data.
- They are attached to nodes and edges
- Some labels contain static (fixed values). Others contain dynamic (variable values)
- Integration labels provide for numerical integration of current and next values
- Labels contain one or more LabelValue objects with the label's property values (the actual data)
- Examples of Static Labels include:
- Node Labels
- Census human population
- Area
- Elevation
- Historic Earth Science Data
- Day and Nightime Temperature, precipitation, etc
- Edge labels
- Physical Relationships
- Common Border
- Physical Containment
- Migration rate between nodes
- Transportation rate
- Node Labels
- Examples of Dynamic Labels include:
- Disease model compartment states
- Dynamic population models
- for example, vector capacity models of mosquitos
How Labels Work
- A disease model provides a Label and LabelValue
- A STEM simulation contains
- A cononical graph. The graph contains
- A single instance of the disease model (Decorator)
- A label for each region in geographic model
- A cononical graph. The graph contains
- A disease model's label contains current and next LabelValue objects that store the compartment states for the node
- Example: A SIR disease model's LabelValues contains s, i, and r properties
- The Solver calls calculateDeltas(…) on the Decorator, which is responsible for calculating the Label's nextValue
- The solver integrates between the values
- Example: A SIR disease model's LabelValues contains s, i, and r properties
Labels hold values that may be static or dynamic. Multiple Labels can be added to any node or edge within STEM. A static label might encode, for example, the land area of a geographic node. A dynamic label might store the current disease state of a population including, for example, herd immunity for a particular disease. This could change over time. Values within a (dynamic) label can be updated by other decorators. Dynamic Labels play a special role in the framework in that they can store two state values simultaneously. They have a "current" value which, collectively, records the current state of the graph. They can also have a "next" value which is used, collectively, to store the next state of the graph. This allows computation to occur synchronously and self consistently across the entire canonical graph.
Model Decorators
The collection of Decorators that may exist in each Model is similar to that contained in a Scenario instance. Its contents represent the computational component of the Model. The difference is that the Model Decorator are only able to modify the parts of the canonical graph that are contributed by the tree rooted at the Model. The Decorators in the Scenario, being above the root of the tree, are able to access the entire canonical graph. There is also a strict execution order of Model Decorators. The ones that are contributed lower in the tree are invoked before ones contributed above them. Scenario Decorators are invoked last. The order of invocation for Decorators at the same "level" is arbitrary.
A Model Decorator would typically be some computation that needs to be executed for each cycle of the Simulation, while a Scenario Decorator would typically be used to modify the initial state of the canonical graph to customize it for a particular scenario. For example, in an epidemiological Simulation, a disease model would be added to a Simulation as a Model Decorator while the exact location of an outbreak of a disease would be added to the Simulation by a Scenario Decorator. Many different Scenario instances could refer to the same Model (with its disease model), but provide different Decorators to specify different starting locations.
Decorators typically compute the next value for Labels in the canonical graph as a function of the current contents of the graph and the time. The Figure below illustrates how these components are combined to create a Model that is used by two different Scenarios. <img src="img/ScenarioComposition.jpg" />
An Experiment is a specification of how to take a base Scenario and systematically modify it to create and rung a sequence of related Simulations. For instance, one might want to explore the effect of different transmission rates in a particular Scenario. An Experiment allows one to specify the (base) Scenario and a collection of Modifiers that know how to modify it in specific ways. The modified Scenario instances can then be used to create Simulations.
To initiate the creation of the derivative Scenarios and subsequent Simulations, an Experiemt can be run just liked a Scenario to create a type of execution unit called a Batch.
An Experiment can be created using the Experiment Wizard and edited using the Modifier Wizard.
A Modifer is a specifcation of how to systmatically change the values of one ore more features of a Scenario. There are two types of Modifiers. A Range Modifier modifiers numeric features by assigning them values from a specified "range" of values, while Sequence Modifier modifies features by assigning them successive values from a prespecified ordered collection. A Modifier may be crated using the Modifier Wizard and edited using the Modifier Editor.
Range Modifier
A Range Modifier specifies a range of values for a numeric feature and an increment value. It modifies a numeric feature by first assigning it a starting value and then it subsequently assigns values generated by adding an increment value to the previously assigned value until the result exceeds a specified end value. If the start value is great than the end value, then the increment must be negative.
Sequence Modifier
A Sequence Modifier specifies a sequence of values for an arbitrary feature. It modifies the feature by assigning it, in sequential order, the values in the sequence.
A Trigger is a special kind of Decorator that combines a Predicate with a reference to another Decorator. Its role is to conditionally execute the Decorator it references if certain conditions exist in the Simulation. Typically, the Decorator referenced by the Trigger will be a Modifier which will be configured to alter some aspect of the running Simulation. For instance, a Modifier could change the values on Labels on an Edge or Node in the canonical graph. Those values could represent such things as the operational status of an airport, or the status (open or closed of a road between two regions. A modifier can also modify another Decorator active in a Simulation. An example would be changing the configuration values of a Disease Model.
The operation of a Trigger is conceptually simple. On each simulation cycle, the Triggers contained by a Scenario are excuted, just like the other Decorators, to update the canonical graph. The first thing the Trigger does is evaluate the Predicate it references. If the Predicate evaluates to False, then the Trigger simply returns without performing any other actions. If, however, the Predicate evalutes to True, then the Trigger allows the Decorator it references to update the canonical graph. So long as the Predicate returns True, the referenced Decorator will be executed. If the Decorator is a Modifier, then it will step through each of its configured modifications each time it is activated until all modification have been completed.
A Trigger can be created using the Trigger Wizard and edited using the Trigger Editor.
A Predicate is a boolean expression that returns True or False depending on testable conditions in a running Simulation and the expression itself. Instances of Predicates are reference by Triggers and their logical values are used to control the excution of a Decorator referenced by each Trigger.
Arbitrary logical expressions can be expressed in a Predicate, but currently, due to implementation limitations, the only testable conditions are the current and elapsed times in a running Simulation. In future versions of STEM, a richer set of conditions will be available. The testing of time is still an extremely useful condition as it allows for specific modifcations to be made to aSimulation at precise points in time.
A Predicate can be created using the Predicate Wizard and edited using the Predicate Editor.
Simulation Execution
When is Simulation is started, the first operation is to create the canonical graph. This is accomplished by recursively descending the tree rooted by the Model referenced by the Scenario. As the canonical graph is constructed, connections between Labels and Edges in the graph fragments are resolved and then each Model Decorator is invoked and given the opportunity to "decorate" the canonical graph as part of its initialization. When this is complete, the Scenario Decorators are invoked to give them the opportunity to decorate the canonical graph
When the canonical graph has been constructed and initialized by the Model and Scenario Decorators, the Simulation can begin its first cycle. The first step of the Simulation is to determine if the Simulation has completed its sequence of cycles. The answer to this question is provided by the Sequencer that is referenced by the Scenario from which the Simulation was started. If the answer is "No," and the Simulation should continue, the Sequencer will provide a value that represents the "time" of the next cycle. The STEM Simulation engine then takes that value and invokes each of the Model Decorators (in proper order) passing them the time value. They perform their computations and then the Scenario Decorators are invoked in the same manner. Frequently, the Scenario Decorators will not have any computations to perform after they have done their initialization, but there is no restriction that enforces this.
When the Decorators are finished, the Simulation engine tells the canonical graph to switch to its "next" state. This means that all of the Labels exchange their "current" and "next" values. This completes the first cycle. The process begins the next cycle with the Sequencer determining if the sequence of simulation cycles is complete.
Batch Execution
A Batch is created when an Experiment is executed. When a Batch runs, it first takes the base Scenario of the Experiment, applies the Modifiers referenced by the Experiment and creates a new derivative Scenario. It then initiates the execution of a Simulation from the derived Scenario. When that Simulation completes, the Batch repeats the process until the Modifiers indicate that there are no additional modifications to make, at which point the execution of the Batch is complete and it exits.
Example: Creating your own STEM Scenario from a user defined disease model
click here to see a tutorial on Creating a STEM Scenario
The ISO 3166-1 Standard defines names and short alphabetic codes for "countries" and "territories" that corresponds the geopolitical divisions of the Earth. There are currently 244 such countries which is a larger number than the membership of the United Nations (191) and reflects the inclusion of territories in the mix. For instance, the standard includes the United States and Puerto Rico as separate entities. This level of representation is sometimes referred to as "United Nations Administration Level 0".
The standard defines two and three letter codes for each entry. A two letter code is referred to as an "alpha-2" code while a three letter code is an "alpha-3" code. Thus, the "ISO 3166-1 alpha-3" code for the United States is "USA" while the "ISO 3166-1 alpha-2" code is "US".
The ISO 3166-2 Standard defines names and alphabetic codes for subdivisions of countries and territories as defined in ISO 3166-1 . This level of representation is sometimes referred to as "United Nations Administration Level 1". Typically, these would be the states or provinces of a particular country. There are approximately 3700 different codes.
The ISO 3166-2 code is a compound code consisting of the ISO 3166-1 alpha-2 code of the parent country and a second country specific string separated by a hyphen. For instance, the code for the State of California in the United States of America is "US-CA". Similarly, the code for Kabul province in Afghanistan is "AF-KAB".
There is a standard called ISO 3166-3 which one might expect would provide codes for subdivisions of Level 1, but it doesn't. Instead, it defines how codes have replaced each other as political boundaries have evolved.
There is still a need in STEM to create codes that reflect Level 2 divisions (e.g., counties in the United States), STEM adopts the convention embodied in the ISO 3166-2 standard by extending the Level 1 code (e.g., "US-CA") with additional country specific identifiers separated by hyphens. In the United States, the Federal Information Processing Standard (FIPS) is the appropriate choice. It defines unique identifiers for each of the counties in the country. For instance, the FIPS code for Santa Clara County in California is "06085" (the leading "0" is significant). Thus, the "ISO" identifier used in STEM for Santa Clara County is "US-CA-06085".
In cases where the Level 2 codes for a particular country are unknown (an opportunity for an open source contribution) a special "generated" code was created with the intention that it would be replaced later by the correct code. This is the case for Afghanistan where the code for the city of Kabul was generated as "G140001" (the leading "G" identifies the code as having been generated and should be replaced when the correct code is obtained). For instance, the "ISO" code used in STEM for Kabul (the city) is "AF-KAB-G140001".
The ISO code used in STEM for a higher resolution area, such as a Census tract, would follow the same convention by appending a code to the code of the containing area separated by a hyphen. There are no such codes defined in STEM at this time.
Dublin Core Meta Data
The Dublin Core Meta Data standard was developed by the library science community to define a consistent set of attributes that could be attributed to a "Resource". The definition of a Resource is deliberately unspecified by the standard, but would typically be something like a book, a movie, a video, or a musical score. Most of the attributes are simple and easy to understand and basically specify familiar details of something like a book such as its "Title", its "Creator", and the "Date" it was created. The usefulness of the standard is extended by the rest of the attributes that define such things as "Spatial" characteristics, a "License" and a date range for which a Resource is valid; there are several others.
STEM makes use of the standard by incorporating it as a required feature of each composable component of the graph it uses as its representational framework for each Simulation. Thus, when a simulation is created, every component (i.e., all data and all computation) is specifically labeled and identified as to its origin and applicability.
The properties files that contain the data sets that define the built-in components of STEM can also contain Dublin Core Meta Data attributes.
Sanity Checking
The Common Model contains an interface called SanityChecker
. This interface has a single method called sane()
which returns a boolean
. The method sane()
should return true
if the instance of the implementing class is not in error (i.e., it is "sane"). The definition of what "in error" means is completely up to the implementor of the method. The idea behind implementing this method is that it allows the state of the entire running system to be checked at run-time for errors. It is really an implementation of the class invariant paradigm of Design by Contract programming practice. The advantage of this approach to implementing it is that it is light weight, doesn't require preprocessing, is language independent and can be checked under direct programmer control.
In the case of STEM, all of the internal data structures representing the state of a Simulation implement the SanityChecker
interface. If STEM is run with assertions enabled, it will invoke sanity checking at the start of each simulation cycle and at a few other specific points. A single call of the sane()
method of a running Simulation instance will propagate throughout the entire set of class instances that represents the state of the canonical graph that represents the state of the Simulation. If any test fails, for instance, a population value was found to be negative, an assertion exception will be thrown and the Simulation will be halted. The exact location where the problem was found will be reported in the error log. This self-checking behavior makes STEM very robust.
Typically, the sane()
method will check that numeric values are within range or that other field values are appropriate. If the values are found to be correct, then the method returns true
, if not it returns false
The checking of the sanity of a class instance should also propagate to its children such that the sane()
method of the parent should call the sane()
method of the children. If a child returns false
the parent should return false
as well.
Typically, an assert
statement verifies that the return value is true
. This assertions makes it easy to find the point in the code where a problem is detected. In actual implementation, each test in a sane()
method would assert that it's result is true
. An assertion failure then pinpoints precisely the test that failed.
In the example below the sane()
method first calls the sane()
method of its super class. It then tests that each field is not null
, asserting after each test that the test resulted in a true
public boolean sane() { boolean retValue = super.sane(); retValue = retValue && nodeAURI != null; assert retValue; retValue = retValue && nodeBURI != null; assert retValue; retValue = retValue && label != null; assert retValue; return retValue; } // sane
STEM Project Structure
- Split across three Git repositories
- org.eclipse.stem
- Most of the "code", including core libraries, disease models, model generator, UI
- org.eclipse.stem.data
- The required STEM data, including geographies, maps, and human population data
- org.eclipse.stem.data.earthscience
- The larger Earth Science static datasets from 2000-2010
Plug in Descriptions
This section contains descriptions of each STEM plug-in/project.
The org.eclipse.stem.core plug-in contains the definitions and implementations of the Unified Modeling Language(UML) models that are used to represent the composable components that define a simulation in STEM. These models are Common, Graph, Model, Sequencer and Scenario. These models are implemented using the Eclipse Modeling Framework (EMF).
This project is tested by the project org.eclipse.stem.tests.core.
Common Model
One goal of STEM is to provide a framework for the interchange of components that can be combined to compose a model. To do this, the components need to be uniquely identified, and they need to be described in some consistent manner. The "common model" is an EMF model that addresses these two requirements. It defines a class Identifiable
that is extended by each of the other modeled components in STEM. Each instance of Identifiable
is uniquely "identified" by a URI and is described by a set of Dublin Core Meta Data attributes specified in the class DublinCore
The common model package also includes a non-modeled Java interface called SanityChecker
that defines the semantics of Sanity Checking.
Common Model UML Diagram goes here.
The ecore file that specifies the common model is: org.eclipse.stem.core.model/common.ecore.
Graph Model
Graph Model UML Diagram goes here
Model Model
Model Model UML Diagram goes here
Sequencer Model
Sequencer Model UML Diagram goes here
Scenario Model
Scenario Model UML Diagram goes here
Core GenModel
The EMF "genmodel" for the core plug-in is in the file: org.eclipse.stem.core/model/core.genmodel. It defines how to generate the code for all of the models.
Core Extension Points
The "core" plug-in contains five extension points. These provide a path to extending STEM by defining a set of XML files that contain serialized instances of components defined in the core EMF models.
There are two common schemas used to define the extension points.
Catagory Schema
The catagory
(sic) schema contains attributes that specify the location of a serialized component in a hierarchical name space.
Dublin Core Schema
The dublin_core
schema contains attributes defined by the Dublin Core Meta Data standard that describe the serialized component. There are three required attributes: "title", "identifier" and "format". The title is the text string that will be displayed to the user when the component is presented to them in varies views. The identifier is a URI that specifies the location of the serialized XML file so that it can be located and deserialized to create a Simulation (e.g., "platform:/plugin/org.eclipse.stem.geography/resources/data/country/AFG/AFG_0_area.graph"). The value of the format attribute is the "package namespace URI" (i.e., "eNS_URI") of the component's ecore model (e.g., "http:///org/eclipse/stem/core/graph.ecore").
The org.eclipse.stem.core.graph
extension point is extended by plug-ins that provide serialized Graph files that are intended to be part of the collection of "built-in" Graphs.
The org.eclipse.stem.core.model
extension point is extended by plug-ins that provide serialized Model files that are intended to be part of the collection of "built-in" Models.
The org.eclipse.stem.core.scenario
extension point is extended by plug-ins that provide serialized Scenario files that are intended to be part of the collection of "built-in" Scenarios.
The org.eclipse.stem.core.sequencer
extension point is extended by plug-ins that provide serialized Sequencer files that are intended to be part of the collection of "built-in" Sequencers.
The org.eclipse.stem.core.decorator
extension point is extended by plug-ins that provide serialized Decorator files that are intended to be part of the collection of "built-in" Decorators.
The org.eclipse.ohf.stem.definitions project contains two UML/EMF models that define components of graphs that are used in most simulations. The two models are called "Labels" and "Nodes". The project is also home to important "adapters" that provide interfaces that adapt the contents of the canonical graph and isolate other code from the implementation details of the graph.
labels EMF Model
The Labels EMF Model defines a set of common labels that can be used in simulations. These labels essentially provide a set of "types" for representing common data values.
The ecore file that specifies the model is: org.eclipse.ohf.stem.definitions/model/labels.ecore.
nodes EMF Model
The Labels EMF Model defines two sub-classes of org.eclipse.stem.core.graph.Node. The first is "GeographicFeature" which is intended to represent any type of geographic feature (road, river, region, etc.) and a direct sub-class of that called "Region". A Region is inteded to represent an enclosed area such as a country, state or county.
The ecore file that specifies the model is: org.eclipse.stem.definitions/model/nodes.ecore.
Spatial Adapters
This includes adapters that provide latitude and longitude values for features in the canonical graph. The #Map_View and #org.eclipse.stem.ge projects make use of spatial adapters.
Relative Value Adapters
A relative value adapter interprets the numeric values stored in labels and provides a relative value between 0.0 (zero) and 1.0 (one). This can be used in generic viewers that provide visualizations of the state of the canonical graph.
The org.eclipse.stem.diseasemodels project contains UML/EMF models of the "standard" disease models that are implemented for STEM. These models include deterministic implementations of "SI", "SIR" and "SEIR" disease models.
Disease Model Extension Points
The org.eclipse.stem.diseases project/plug-in contains serialized (XMI) instances of configured disease models instances. These serialized files each define a single disease such as the Spanish Flu. They are identified ("plugged in") to STEM by extensions to the org.eclipse.stem.diseasemodel.disease extension point.
The org.eclipse.stem.doc project contains the STEM help files.
The org.eclipse.stem.geography contains data sets that define the geography of the Earth. It contains XML files that are serialized instances of EMF models defined in the org.eclipse.stem.definitions and org.eclipse.stem.core projects. It also contains XML files in GML format that contain Latitude/Longitude data for the political and geographic boundaries of countries and their territories as defined by ISO 3166 standard.
Its contents are entirely generated from the org.eclipse.stem.internal.data project by running the update.xml ant build file (This is not currently true as the GML files currently reside in the geography project, but the plan is to move them to the internal.data project so that different resolutions of the files can be produced)
The org.eclipse.stem.internal.data project contains all of the basic data sets used by STEM. These are transformed using an Ant build file called update.xml to populate the org.eclipse.stem.geography project.
The file update.xml is an Ant build file that transforms the data sets described below and populates the org.eclipse.stem.geography project.
Properties Files
In STEM, the data sets that define the built-in components that represent countries, populations, transportation networks and their relationships and other attributes are specified in a set of "properties files". A property file is simply a plain-text file that contains a set of keyword/value assignments. They are human readable and easy to edit.
Each property file needs to have a key of RECORD_CLASSNAME
with its value being the name of the Java class that interprets the contents of the properties file. An instance of the named class will be created and then given the responsibility of processing the rest of the file's contents.
A property file specifying details of a particular country requires a keyword of ISOKEY
and ADMIN_LEVEL
to be provided. The value of ISOKEY
is the ISO 3166-1 alpha-3 code of the country (e.g., BHS). The value of the ADMIN_LEVEL
keyword is the administration level of the ISO keys in the file (e.g., 0).
Each property file can contain a full set of Dublin Core Meta Data attributes. These are used, among other things, to identify and describe the nature of the data set. The values of the attributes are set by assigning values to special keys recognized as Dublin Core attributes. These values flow through the processing of the data sets and ultimately become integrated into the canonical graph.
The recognized attributes are:
Key | Description | Example | Automatically Generated if not supplied | Used/Recommended |
BIBLIOGRAPHIC_CITATION | Specifies a citation for the data. | |||
CONTRIBUTOR | Specifies a contributor to the data. | |||
COVERAGE | Specifies the coverage of the data. Typically, this is a comma separated list of administration levels. | Yes | ||
CREATED | Specifies when the data was created. | 1900-01-01 | Yes | |
CREATOR | Specifies who created the data. | Yes | ||
DATE | Specifies a date of the data. | 1900-01-01 | ||
DESCRIPTION | Specifies a description of the data. | |||
FORMAT | Specifies the format of the the data. | Yes | ||
IDENTIFIER | Specifies the URI of the the data. | Yes | No | |
LANGUAGE | Specifies the language of the data. | No | ||
LICENSE | Specifies the license of the data. | |||
PUBLISHER | Specifies the publisher of the data. | |||
RELATION | Specifies any relationships of the data. | |||
REQUIRED | Specifies any requirements of the data. | |||
RIGHTS | Specifies any rights associated with the data. | |||
SOURCE | Specifies the source of the data. | http://www.census.gov/geo/www/tiger/ | ||
SPATIAL_URI | Specifies the file that contains the latitude/longitude data. | platform:/plugin/org.eclipse.stem.geography/resources/data/geo/country/USA/USA_2_MAP.xml | ||
SUBJECT | Specifies the subject of the data. | |||
TITLE | Specifies the title of the relationship data. | All USA States (1) (except Puerto Rico) | Yes | |
TYPE | Specifies the type of the data. | No | ||
VALID | Specifies the date range that the data is valid for. | start=1900-01-01; end=2001-12-31; |
Administrative levels correspond to political divisions of a country. A level 0 administration area identifies an entire country (e.g. USA or Mexico). A level 1 administration area corresponds to a subdivision of a level 0 area, and can be a state, territory, parish, or a province. As an example, the state of California is a level 1 administration area of the USA. Level 1 administration areas are in turn subdivided into level 2 areas, which in the United States would be a "county" such as Santa Clara County in California.
Country Definitions
The files defining attributes for a particular country are organized by the ISO 3166-1 definition of a country using the alpha-3 codes as the names of directories containing the files. The country directories can be found in org.eclipse.stem.internal.data/resources/data/country. For each country, there are four types of properties files, these define administrative subdivisions of the country, the areas of the subdivisions, their populations, and finally their names. The contents of these files ultimately define Nodes and their Labels in the canonical graph.
Administrative Areas
The administrative subdivisions of a country are specified in a set of property files, one for each level. The names of these files are of the form: "XXX_Y_nodes.properties", where "XXX" is the ISO 3166-1 alpha-3 code of the country (the same as the name of the parent directory of the file) and "Y" is a digit representing the administrative level of the subdivisions defined in the file. Thus, the file "USA_0_node.properties" contains the specification of the United States at level 0. This file defines a single Node that represents the entire country. Similarly, the file "USA_1_node.properties" contains the specification of the States of the United States and the District of Columbia and defines fifty one nodes. The file "USA_2_node.properties" defines the Counties of the United States and contains definitions for 3142 nodes. Other countries are defined similarly, though the data set is not complete so some have fewer levels of specification.
The format of the properties files defining the administrative areas of a country consist of a series of keys corresponding to the standard ISO 3166 identifier for the level of the area.
This file defines the identifiers for every administrative division in a country at each level. For example, for the USA, at level 0 we would have "USA = United States". At level 1, we would have "US-CA = California" , "US-CO = Colorado", and "US-NY = New York". At level 2, for Orange, Monterey, and Napa counties within California we have "US-CA-06059 = Orange County", "US-CA-06053 = Monterey County", and "US-CA-06055 = Napa County". There is a single names property file for every country. The corresponding names property file for the USA is USA_names.properties. For level 2 administrations, the five digits found on the identifiers (i.e. "06053" for identifier "US-CA-06053" are defined as follows: the leftmost two digits identify the level 1 administration ( "06" -> California ) while the remaining digits, which can be up to four, identify the level 2 administration ("053" -> Monterey County).
This file contains area data (in square kilometers) for administrative divisions. There is an area property file for each administration level. In the case of the USA at level 0, we have "USA = 9161923". At level 1, we have "US-CA = 163695.57", "US-CO = 104093.57", and "US-NY = 54556.00" for California, Colorado and New York respectively. At level 2, for Orange, Monterey, and Napa counties within California we have "US-CA-06059 = 2043.5006", "US-CA-06053 = 8603.9405", and "US-CA-06055 = 1952.8510". The area property files corresponding to the USA are USA_0_area.properties, USA_1_area.properties, and USA_2_area.properties.
This file contains population data for administrative divisions. There is a population property file for each administration level. In the case of the USA at level 0, we have "USA = 298444215". At level 1, we have "US-CA = 33871648 ", "US-CO = 4301261", and "US-NY = 18976457" for California, Colorado and New York respectively. At level 2, for Orange, Monterey, and Napa counties within California we have "US-CA-06059 = 2846289", "US-CA-06053 = 401762", and "US-CA-06055 = 124279".
The population property files corresponding to the USA are USA_0_human.properties, USA_1_human.properties, and USA_2_human.properties.
Relationship Definitions
The property files that define relationships are organized by relationship. They are contained in directories whose names reflect the nature of the relationship. For instance, "airtransporthuman2006" defines the transportation of humans using aircraft for the year 2006. The relationship directories are in org.eclipse.stem.internal.data/resources/data/relationship. The contents of the relationship files ultimately define Edges in the canonical graph.
Built-in Model Definitions
Built-in Scenario Definitions
Built-in Sequencer Definitions
The org.eclipse.stem.jobs
plug-in contains the implementations of Eclipse Jobs used by STEM. Currently, there is only a single Simulation job that implements the main simulation cycle. STEM can run multiple simulations simultaneously and uses a separate job instance for each one.
A running instance of STEM contains a singleton instance of a class called SimulationManager
. This class has the responsibility for managing the life-cycle of each Simulation running in STEM. It allows other components in STEM to discover what Simulations currently exist and to monitor changes that affect their existence.
The org.eclipse.stem.jobs.nl1 project is a plug-in fragment containing NLS files for the project org.eclipse.stem.jobs.
The org.eclipse.stem.sequencers project contains serialized XML files of instances of EMF models the define Sequencers.
The org.eclipse.stem.tests.core project contains JUnit tests for the project org.eclipse.stem.core.
The org.eclipse.stem.tests.definitions project contains JUnit tests for the project org.eclipse.stem.definitions .
The org.eclipse.stem.tests.diseasemodels project contains JUnit tests for the project org.eclipse.stem.diseasemodels .
The org.eclipse.stem.tests.jobs project contains JUnit tests for the project org.eclipse.stem.jobs .
The org.eclipse.stem.tests.ui project contains JUnit tests for the project org.eclipse.stem.ui .
The org.eclipse.stem.tests.util project contains utility code for testing purposes.
The Analysis and Validation Perspective allows users to perfrom analysis, fitting, model comparison, and validation across multiple simulations and data sets. The Analysis Perspective uses data from from either complete simulation runs or data imported into STEM. The latter could be real bio-surveillance data in the approporiate CSV format or data from a completed simulation.
This perspective holds the windows (and associated tools) that support various analysis operations on existing data. If you don't see the perspective when you start STEM, go to the menu bar and click:
>Window>Open Perspective>Analysis
By default the Analysis Perspective contains three views. However, you can close any of these views and open others.
STEM currently enables the following types of analysis:
1. Estimating Model Parameters from External Data. This view is used to estimate model parameters from an existing data set, either simulated or real.
2. The Epidemic View. This view aggregates data from across locations for a given epidemic scenario and plots the aggregated data and disease incidence.
3. Root Mean Square (RMS) Comparison Between Data Sets. This measures the RMS difference between two existing data sets (simulated or real).
4. Lyapunov Analysis. This comparison data from two existing scenarios (or real data sets) based on their trajectories in a Lyapunov Phase Space.
As shown in the Figure below, each type of analysis is available as a separate "View" or tabbed pane within the Analysis Perspective.
Image:Analysisperspective.jpg 800px
Active Simulations
Google Earth
New Disease Wizard
New Graph Wizard
New Model Wizard
New Project Wizard
New Scenario Wizard
New Real-Time Sequencer Wizard
New Sequencer Wizard
Graph Editor
Model Editor
Scenario Editor
The org.eclipse.stem.ui.ge project contains the implementation of the STEM/Google Earth interface.
The org.eclipse.stem.ui.nl1 project is a plug-in fragment containing NLS files for the project org.eclipse.stem.ui.
The org.eclipse.stem.ui.reports project contains preliminary code that implements BIRT graphs and charts of STEM data sets.
The org.eclipse.stem.utility project contains utility code used for data set transformation etc.


text:
Gerhard R. (Gerry) Andlinger, an alumnus and noted international business executive, has made a gift to Princeton University to accelerate research on effective and sustainable solutions to problems of energy and the environment. Princeton will use the gift, which will total $100 million, to create the Gerhard R. Andlinger Center for Energy and the Environment within the School of Engineering and Applied Science.
The Andlinger Center will include a major state-of-the-art engineering research laboratory and several new faculty positions as well as endowed funds for innovative research, outreach and a visitors program. The gift provides the foundation for a series of investments the University plans to make in fundamental science, public policy and technological solutions related to sustainable energy production, climate change and related fields.
"As we witness the soaring global demand for energy and its profound environmental impact, we have a tremendous responsibility to turn our scientific knowledge into concerted action," said President Shirley M. Tilghman. "With this visionary and transformative gift, Gerry Andlinger is positioning Princeton to bring its very significant strengths in science, engineering and public policy to bear on the challenge of developing technologies that will provide future generations with a healthy environment and sustainable sources of energy. I am enormously grateful to Gerry for his generosity and leadership."
Andlinger, a member of the class of 1952, is chairman and founder of the private investment firm Andlinger & Co. He came to the United States in 1948 from his native Austria as the winner of a newspaper essay contest and then attended Princeton University on a scholarship.
After earning a degree from Harvard Business School and serving in the U.S. Army, Andlinger quickly became noted for his managerial expertise and turnaround skills while making philanthropy and service to others central to his life's work. A longtime supporter of the University's Annual Giving effort, he established the Gerhard R. Andlinger '52 Professorship of Social Sciences in 1991. Today, that professorship is held by Robert Wuthnow, chair of the Department of Sociology and director of the Center for the Study of Religion.
In 2000, he made a landmark gift to Princeton creating the Andlinger Center for the Humanities, which encompasses Chancellor Green, East Pyne, the Joseph Henry House and the Scheide Caldwell House. Globally, he also has been a major contributor to cancer research, educational institutions and the arts.
"Princeton University already has substantial work under way on a variety of energy-related and environmental problems, from both the technological and public policy perspectives," Andlinger said. "My hope in establishing this center is to bring those strengths together and focus them on finding 'cleantech' solutions to the most important problems facing our society today. The work of the center will help create a better world for our children and grandchildren, which I see as a personal as well as institutional responsibility."
Research at the Andlinger Center will focus on making fundamental discoveries in engineering and applied science and moving those findings rapidly into the marketplace. Major areas of research will include improving energy efficiency and conservation; developing sustainable energy sources; and improving management of carbon, the component of fossil fuels that leads to the greenhouse gas carbon dioxide.
In each of these areas, the center will build on Princeton's strengths in fundamental engineering, particularly the engineering of materials, a field that combines physics and chemistry with nanotechnology to produce materials with entirely new properties. New kinds of semiconductors, for example, could allow solar cells to be produced inexpensively and in vast quantities. New types of ceramic coatings could allow much more efficient burning of existing fuels.
As provided for in the University's recently published Campus Plan, the new, 110,000-square-foot Andlinger Laboratory will be located between the Engineering Quadrangle and Bowen Hall, home of the Princeton Institute for the Science and Technology of Materials. It will include flexible lab and teaching spaces that foster collaborations across disciplines and with researchers from industry.
Andlinger's gift includes a fund for innovative research that has potential for enormous impact in areas traditionally difficult to support through conventional federal research funds. Another fund will support conferences, workshops and lecture series as well as a robust program of visitors from academia, industry and government.
In addition to these technical areas, the center will support teaching and research that intersects with public policy, through the Woodrow Wilson School of Public and International Affairs, and with the natural sciences, through the Princeton Environmental Institute.
"Princeton is already one of the leading institutions in the world for understanding the global climate and how it is changing," said Stephen Pacala, director of the Princeton Environmental Institute. "With this generous gift, Gerry Andlinger is allowing us to take a dramatic step forward and couple that expertise with a greatly increased capacity in engineering to develop lasting solutions."
The gift is part of the University's recently launched fundraising campaign, "Aspire: A Plan for Princeton," which includes a major emphasis on "Engineering and a Sustainable Society."
"Gerry Andlinger's extraordinary generosity will have a powerful impact on engineering at Princeton," said H. Vincent Poor, dean of the School of Engineering and Applied Science. "The research it stimulates will not only help solve pressing societal problems but will also create a vibrant environment for teaching and learning, preparing new generations of leaders to think wisely and creatively about their future and the future of the planet."


text:
These days, everyone is searching for ways to save money and stretch budgets. Consumer experts advise people to sniff out deeper discounts, saving opportunities and additional ways to cut costs. For pet owners, it can feel challenging to cut costs without compromising on care.
Being vigilant is key, according to pet expert, Charlotte Reed.
"Clip coupons, use store circulars and ask for discounts like family and friend's rewards, and multiple pet or store loyalty programs," says Reed. "Constantly challenge yourself to find ways to save money when it comes to pets. I do it every day!"
To get started, Reed suggests using these five tips. Before you know it, you'll be seeing savings on everything your four-legged friend needs.
1. A membership that pays
You might think of AAA as being strictly for roadside assistance. Think again – pet owners can enjoy additional discounts, which most people never take advantage of. For example, pet-owning members can shop in-store or online and receive discounts with pet manufacturers and national pet retailers. Some discounts vary among regional auto clubs, but it's always worth it to ask.
2. Investigate discount pet medications
The Advocacy for Pets and Affordable Wellness (APAW) raises awareness among pet owners about significant cost savings they can enjoy simply by asking their vet for a prescription, and purchasing that medication from their local retail pharmacy. Just be sure to confirm the retailer's pet pharmacy program before dropping off your pet's prescription. In addition, pet owners can purchase vet-grade, over-the-counter, generic medications, such as flea and tick treatment, for a fraction of the cost of the brand name at pharmacies such as Walmart, Sam's Club or Costco. Visit www.APAW.org for more savings tips, and to find out what pharmacies carry pet Rx programs.
3. Deep discounts on pet necessities
Pet food and cat litter are two of the biggest pet expenses for dog and cat owners. If you purchase these products online from larger online retailers, cash in on the auto-ship option. In most cases, consumers not only get the discount prices of online purchasing, but they frequently get additional discounts which can more than make up for shipping cost.
4. Pet insurance can help you save in the long run
Americans spent $ 50.96 billion on pets in 2011, and $ 13.41 billion of that was on vet care, according to the American Pet Products Association. In recent years, treatments once reserved for humans, from radiation therapy to kidney transplants, are now available for pets. That means once-fatal conditions are now treatable, but often at high cost. For pet owners willing to spend the money to treat their pet, insurance can be a viable option. Carefully reviewing deductibles and monthly payments will ensure insurance can fit into your budget, ultimately helping to defray costs in the event of an emergency.
5. DIY can keep money in your wallet
Bathing and grooming at home can help save money, as opposed to going to a dog wash or paying a groomer. For additional savings, protect your pet's health by cleaning his ears, brushing his teeth and clipping his nails. Ask your veterinarian or a vet tech to teach you how to maintain your pet's health with these preventive measures.
When your pet is a member of the family, you want to give him the best care possible. These ideas and others about affordable pet care can be found using resources like APAW; they'll help you treat your pet right – without breaking the family budget.


text:
Product Details
This beautiful Paphiopedilum (Lady's Slipper Orchid) has the classic form and coloration of a Lady's Slipper, and it will draw you in for close inspection of its intricately detailed blossoms carried gracefully on a burgundy stem above a set of mottled leaves. Easy to care for, it's an outstanding gift for connoisseurs and new enthusiasts alike. We ship 1 Orchid in a 4½″ ceramic cachepot.
Tropical Lady's Slipper Orchids (Paphiopedilum) are easy to grow in homes near a bright window, under grow lights, or in a greenhouse. Give plants low to medium levels of indirect light. During the winter, provide intermediate growing temperatures (60–65°F at night; 75–85°F or more during the day). During the growing season in summer, warmer night time temperatures are fine. Keep humidity at 40–50%.
For more information on growing and care, click Growing Guide.
Orders placed Monday - Tuesday will arrive 3 business days after the date of the order and will be shipped by UPS. Orders placed Wednesday - Sunday will arrive the following week.
This item ships from Florida.
WEATHER PERMITTING - Working with Mother Nature
In our business, we work closely with Mother Nature. In the colder months when we stipulate that an item is shipped "weather permitting", that means temperatures outside our shipping facility in northwestern Connecticut and along the shipping route must be warm enough for tender plants to survive in unheated delivery trucks. Our practice of waiting for windows of milder weather may result in the occasional delay, but our customers tend to appreciate the care we take to make certain their plants arrive in the very best possible condition. Questions? Don't hesitate to call our customer service staff at 1-800-411-6159.HOW PLANTS ARE SHIPPED
The size of the plants we ship has been selected to reduce the shock of transplanting. For some, this means a large, bareroot crown. Others cannot travel bareroot or transplant best if grown in containers. We ship these perennials and annuals in 1 pint pots, except as noted. We must point out that many perennials will not bloom the first year after planting, but will the following year, amply rewarding your patience. We ship bulbs as dormant, bare bulbs, sometimes with some wood shavings or moss. Shrubs, Roses, vines, and other woody plants may be shipped bareroot or in pots. The size of the pot is noted in the quick facts for each item.
We ship our bulbs and plants at the right time for planting in your area, except as noted, with orders dispatched on a first-come, first-served basis by climate zone. We also ship a wide range of containers and planters, tools, supplies, fertilizers, garden wear, garden decor items, as well as indoor decorations like wreaths and dried bouquets when available. Estimated dates for shipping are indicated in the green Shipping Details box for each item. Please supply a street address for delivery. Kindly contact us with two weeks notice, if you'll be away at the expected time of delivery.
We guarantee to ship plants that are in prime condition for growing. If your order is damaged or fails to meet your expectations, we will cheerfully replace or refund it. Please contact our Customer Service Department at 1-800-503-9624 or email us at [email protected]. Please include your order number or customer number when contacting us.
Average Customer Rating: (2 Reviews) Write a Review
Sort by:
Beautiful Lady's Slipper!
A viewer from Indiana
I look forward to the orchid blooming and bringing some beauty during this dark time.
arrived in OK condition
A viewer from Boston, MA
Thank you for your review. The orchid should grow many new leaves, but please let us know if you are not satisfied with it's performance.
We make every effort to use "green" and recyclable packing when shipping our plants, to ensure the plants arrive in excellent condition. Some plants travel many days in transit, and the packing material needs to withstand carrier processing without jeopardizing plant quality.
Growing guide
The key to growing Orchids as houseplants is to check them at least once a week to make sure that you are meeting their requirements for light, water, humidity, and room temperature. Water your Orchid thoroughly with tepid water when the potting medium feels dry 1 inch below the surface, usually about once a week. Lift the nursery pot from its basket or cachepot to water then return it to the container. Please read the specific information about the Orchid you have received, as well as the general information on Orchid culture found below. If you have a question that this page does not answer, please call our Garden Advisors at 1(800) 411-6159 from 9 to 5:00 EST, Monday through Friday, or visit the American Orchid Society at www.aos.org.
Beallara -- Beallaras prefer intermediate growing conditions (70-85°F during the day; 55-60°F at night). Provide bright light but no direct sun. An east window is ideal, but they also thrive in south- or west-facing windows that are shaded with sheer curtains or blinds. During the growing season (spring, summer, and fall), water freely when the potting medium feels dry 1″ below the surface. In winter, your plant should be kept drier.
Cattleya -- These Orchids prefer intermediate growing conditions (70-80°F during the day; 60-65°F at night). Place your plant where it will receive very bright, indirect light. A spot near a south-facing window that is shaded with sheer curtains or blinds is ideal. The resting period (when no new leaves, roots, or shoots appear) is from fall through mid-spring, although this is the time when flowering occurs. In summer, fertilize as recommended below.
Colmanara -- Easy to grow as houseplants, Colmanaras thrive in intermediate to warm growing conditions (65-85°F during the day; 55-68°F at night). They grow well in bright but indirect light. During the growing season (spring, summer, fall), water when potting medium feels dry 1" below the surface. Provide good air circulation.
Cymbidium -- Known as the "King of Orchids," Cymbidiums have long, leathery leaves and large flowers. These Orchids prefer cool to intermediate growing conditions (65-80°F during the day; 45-55°F at night). Provide bright indirect light. A spot near a south-facing window is ideal. In late fall and winter, when the plants are resting (but do produce their blooms), water sparingly. Provide good air circulation around your plant as well.
Dendrobium -- These Orchids prefer intermediate to warm growing conditions (75-85°F during the day; 55-65°F at night). Provide very bright light but no direct sun. An east window is ideal, but they also thrive in south- or west-facing windows that are shaded with sheer curtains or blinds. The growing season is from spring to summer; plants rest in winter. These Orchids flower best when grown in small containers; they prefer to be crowded.
Laeliocattleya -- These Orchids prefer intermediate growing conditions (70-80°F during the day; 60-65°F at night). Place them where they will receive very bright, indirect light. A spot near a south-facing window that is shaded with sheer curtains or blinds is ideal. Their resting period (when no new leaves, roots, or shoots appear) is from fall through mid-spring, although this is the time that flowering occurs.
Miltoniopsis (Pansy Orchids) -- Pansy Orchids prefer cool to intermediate temperatures (70-80°F during the day; 50-60°F at night). Provide bright light but no direct sun, which can burn the leaves. If the leaves' color begins to change from a vibrant spring green to a pale green, your plant may be receiving too much light. If the leaves turn yellow, the plants are receiving too much water (which may cause rot and death). Take care to keep your plant evenly watered as the leaves will begin to fold or "accordion" if the supply of moisture is not consistent. Once the leaves change shape, they will not flatten out again. In hot areas of the country, it will help to mist your plant in the morning on the days you do not water it. Plants flower in the spring with occasional rebloom in the fall.
Oncidium -- Oncidiums prefer cool to intermediate growing conditions (65-80°F during the day; 45-55°F at night). Provide very bright, indirect light. A spot near a south-facing window is ideal. During the growing season (spring, summer, and fall), water freely. In winter, your plant should be kept drier, but not so dry that the pseudobulbs (upright, thickened stems that store water and food) begin to wither. If the pseudobulbs begin to shrink, this means that they are losing water and you have kept your plant too dry.
Paphiopedilum (Tropical Lady's Slipper Orchids) -- These Orchids thrive in bright but indirect light. An east-facing window is ideal, but plants can also grow well in a south- or west-facing window if shaded somewhat by neighboring plants or a sheer curtain. If the leaves begin to bleach to a pale green or yellow green color, then your plant is receiving too much light. The Paphiopedilums we offer need warm temperatures (75-85°F or more) during the day and cool temperatures (60-65°F) at night to set their flower buds. They also prefer a moderate relative humidity -- between 40-50%. Do not mist Lady's Slipper Orchids because misting may cause the growing point, where new leaves are produced, to rot. For optimum growth and flowering, fertilize with a high-nitrogen, water-soluble fertilizer (30-10-10) mixed at 1/4-strength once a month in fall and winter, and at 1/2-strength every 2-3 weeks in spring and summer. Flush with clear water monthly to leach excess fertilizer from the growing medium. Blooms generally appear in late winter. Remove spent flower stems just above the foliage and cut off old, brown leaves.
Phalaenopsis (Moth Orchids) -- These are excellent houseplants, producing spikes of spectacular blooms in winter or spring that last for months. Phalaenopsis prefer intermediate to warm growing conditions (70-80°F during the day; 60-65°F at night). Provide bright light but no direct sun. An east window is ideal, but they also thrive in south- or west-facing windows that are shaded with sheer curtains or blinds. The growing season extends from April to October. Please note the special repotting for this type of Orchid listed below. Do not mist a Moth Orchid because misting may cause the growing point, where new leaves are produced, to rot.
Vanda -- Vandas produce colorful dappled blossoms. They prefer intermediate to warm growing conditions (63-80°F). Provide bright light but no direct sun. A spot in an east-facing window is ideal, but they also thrive in south- or west-facing windows that are shaded with sheer curtains. To water, fill the container halfway with room temperature water. Wait about 30 minutes and empty the water from the container. Water twice a week or up to 3 times if grown in dryer conditions.
Zygopetalum -- These Orchids grow best in daytime temperatures of 70–80°F, with a drop to 55–60°F at night. Provide plenty of bright light but no direct sun, and keep the potting medium slightly moist but not wet.
WATER: Watering houseplants is always a balance between too much water (which causes rot and eventually kills) and not enough water (which causes leaves, stems, and roots to dry up and eventually kills). Water your Orchid thoroughly with tepid water when the potting medium feels dry 1 inch below the surface, usually about once a week. Lift the nursery pot from its basket or cachepot and carry it to the sink. Water until the excess runs out of the bottom of the pot. Allow the pot to drain, then return it to the container. Do not allow water to pool in the bottom of the container. If the nursery pot sits in water, the plant's roots will eventually rot. Keep in mind that your Orchid's need for water will vary throughout the year depending on its surroundings. The need for water increases when the plant is exposed to brighter light, higher room temperatures, or lower humidity, or when it is producing new shoots, leaves, and roots (but not when it is blooming). Some Orchids have pseudobulbs (upright, thickened stems that store water and food). If the pseudobulbs begin to shrink, this means that they are losing water and you have kept your plant too dry.
HUMIDITY: Most Orchids are native to tropical or subtropical regions of the world, where relative humidity is typically very high. They suffer indoors in the dry air produced by furnaces and woodstoves. A relative humidity of 70% is best for most Orchids (provide a relative humidity of 40-50% for Paphiopedilums). You may increase the humidity around plants by running a humidifier nearby. You can also set plants in trays filled with pebbles or gravel. Add water to a level just below the tops of the pebbles (if the potting medium in the pots comes in contact with the water, it will draw water into the pot, which will cause the medium to become saturated, eventually leading to rot). Refill trays frequently to replace water lost through evaporation. Please note: Although high humidity is important for Orchids, good air circulation around your plant is also essential to prevent disease.
FERTILIZER: During the resting period (when no leaves, roots, or shoots appear, but your Orchid is blooming), fertilize monthly with a water-soluble fertilizer (analysis 20-20-20 or 30-10-10). During the growing season, fertilize more frequently -- every 2-3 weeks.
FLOWERING: The Orchids we ship have buds fully visible and will generally bloom within weeks of arrival. Do not remove the flower shoot until it is completely desiccated and lifeless; flower stems that appear to have finished producing blooms may send out more flowering shoots months or even years later. An adequate amount of light (but never direct sunlight) is important for Orchids to grow and produce flowers. A change in temperature between day and night is also necessary for flowering -- usually a difference of 10-20°F.
GROOMING: After bloom, remove spent flowers with a pair of scissors, cutting the flowers off where they attach to the flower stem.
REPOTTING: Repot your Orchid every other year or so. After it blooms, remove the plant from the pot and gently shake the old bark from the roots. If you find dead roots (brown or dried out), either pinch them off with your fingers or cut them off with a sharp knife. Repot in a container no more than 1 inch larger than the previous one, using a medium bark designed especially for Orchids. Hold the stem in the center of the pot and fill the pot with premoistened bark, pressing it firmly around the roots with your fingers. The crown of the plant - the point where the stems meet the roots - should be level with or just below the surface of the bark. For Moth Orchids, the lowest leaf should just touch the surface of the bark. Water thoroughly after potting to settle the bark around the roots. If the plant is unable to hold itself upright, support with a bamboo stake and plant clip or twist tie. Please note: Many Orchids produce fleshy, wormlike roots that have a tendency to push their way up through the surface of the bark. This is perfectly normal. There is no need to cover these roots with bark.


text:
We are currently selecting suitable accommodation. Visit us again soon, or sign up for our newsletter, like us on Facebook, follow us on Twitter, or join the Scholar Community.
Subscribe to receive monthly updates by email about conferences, publications, and news from the field.
Have a question? We're here to help. Visit the help center to get started.
Support CenterUniversity of Illinois Research Park
60 Hazelwood Drive
Champaign, IL 61820 USA
Phone: +1-217-328-0405
Fax: +1-217-328-0435
Email: firstname.lastname@example.com
All content © 2024 Common Ground Research Networks. Built with care by &Phil;.


text:
You missed me yesterday, right?? Just lie, na?? And say, 'Yesssss!"But I'm not lying when I say I missed you... missed being here. I was in 'Cannes' ( I wish!!!!). Well.... almost. I was chief- guesting at the 'Cannes Experience' organised by ndtv Lumiere, a channel that is trying hard to push good cinema by telecasting award winning films. This was my first visit to the PVR at Phoenix Mills. It may be my last!! I guess the Nariman Point Inox has spoilt me - the easy access and great caramel popcorn are reasons enough to stay loyal. The pvr at Phoenix is near impossible to get to - I got completely lost, and so did my driver. It is most confusing and not even the security guards know what to tell bewildered visitors driving around in circles looking for either an exit or an entry - any route to get the hell out of that maze. You can't drive up to the place. You can't walk in. But you can climb several flights of stairs, reach the terrace and climb down again!!
Yes, there was an extra long red carpet. But nobody on it. Had I known, I might have borrowed one of Aishwarya's Rai's dreadful Cannes' frocks just to keep the tradition going. The film to be screened was last year's Palme D'Or winner - 'The Class'. Sounded promising. But turned out to be an absolute turkey. So mind numbingly boring and 'French', I hated it and left mid-way. Like most Frenchies who talk too much ( and never like regular people!), actors in the movie just could not keep their mouths shut for even a second. No snacks, no dinner. I got home at midnight to eat reheated khaana. But at least the chappatis were fresh, and the ghee (still slurping it!) made them sinfully irresistible. I thought about blogging at that hour, but my husband would have thought 'divorce'. No point. Much as I love you guys, must get a few priorities right. Kyon?
Not that I got much sleep. I was awake most of the night thinking of Sardinia. Why Sardinia? Because I have never been there. But am going! Soon. In fact, I'll be travelling a great deal starting next month... so I must make the most of our time together. Sunday is Mother's Day. Thirteen years after Aie passed away, I can still feel the soft folds of her printed muslin sarees, smell her talc, and see into those pools of trust and innocence - her beautiful eyes. I could have been a far better daughter to her than I was. It is one of my chief and enduring regrets. It was Aie's death anniversary yesterday. I missed her desperately. As I do every single day.


text:
GDPR Compliance
Because we do not collect or determine the use of any Personal Data contained in the Client Data and because it does not determine the purposes for which such Personal Data is collected, the means of collecting such Personal Data, or the uses of such Personal Data, We are not acting in the capacity of data controller in terms of the European Union's General Data Protection Regulation (Regulation (EU) 2016/679, hereinafter "GDPR") and does not have the associated responsibilities under the GDPR.
How Google uses information from sites or apps that use our services : https://www.google.com/policies/technologies/partner-sites/
Surely the privacy to be important for us to protect. As our efforts in protecting your privacy, we will offer an explanation of the information practices on the internet and you have the option to describe how you in accumulating information and how you would use it. In our efforts to make this page easier to find, we place this page on the home page website which allows a wide range of personal information will be requested for special purposes with your consent in full. For example your name, address, email, phone number. The action we are asking for your personal data we do not mean to criminals, but only if you do want to take advantage of our features to its full potential.
Vendors who use cookies to serve ads on this website is Google. Google as a third party ad vendors allowing them in the granting of ads to site visitors of Trends Fashion Daily that come back again against the visitors who had promised to this website and other websites. And keep in mind that we do not associate the cookies or anonymous identifier by category relating to race, sexual orientation, politics, and religion. We also will not combine personal information with DoubleClick's Cookie information, unless we obtain the consent of you.
Collection of Personal InformationWhen you visit the site of carlynstudio.us this internet IP address used will be stored and reused as you will access the site by logging combined with time, as well as of press time for accessing this site. Details like this technique eventually used to be pure to analyze trends, release website, monitor the movement of visitors on the site as well as a very extensive market information for personal use. But again I emphasize, that the most important is the IP address that is recorded will not be dealt with personally identifiable information.
Information SecurityWe work hard to protect you and other visitors from unauthorized access or alteration, destruction, or unauthorized disclosure of the information we hold.
Changes to this Privacy StatementSome contents of this statement could have been us change it at any time to change to a better direction without informing you if there will be changes before. When there are things to do about carlynstudio.us site, it may be a privacy policy or perhaps other questions do not hesitate to Contact Us.
DisclaimerAll content images within our website are images that we take from various sources that we believe as "public domain". Therefore all content images we display pure just to complement information from the picture we uploaded without any intent to we sell-buy, in violation of copyright or intellectual property rights, and a valid artistic. For those of you who feel as the legitimate owners of one of the images we display and didn't want us displaying images valid belongs to you, please contact us through the "Contact Us" page and send us an email to follow up, be it delete images belong to you, or maybe you'll give us maturity date where we can display content images. All content images that we display we only use properly without any intention of us to gain financially from one image or as a whole. And consciously anyway that the privacy policy on the website of the carlynstudio.us have a little difference from the other website. Thank you.