# Zowe API Mediation Layer Security
# How API ML transport security works
Security within the API Mediation Layer (API ML) is performed on several levels. This article describes how API ML uses Transport Layer Security (TLS). As a system administrator or API developer, use this guide to familiarize yourself with the following security concepts:
# Transport layer security
Secure data during data-transport by using the TLS protocol for all connections to API Mediation Layer services. While it is possible to disable the TLS protocol for debugging purposes or other use-cases, the enabled TLS protocol is the default mode.
# Authentication
Authentication is the method of how an entity, whether it be a user (API Client) or an application (API Service), proves its true identity.
API ML uses the following authentication methods:
 - User ID and password
 - The user ID and password are used to retrieve authentication tokens.
 - Requests originate from a user.
 - The user ID and password are validated by a z/OS security manager and a token is issued that is then used to access the API service.
 - TLS client certificates
 - Certificates are for service-only requests.
# Zowe API ML services
The following range of service types apply to the Zowe™ API ML:
 - Zowe API ML services
 - Gateway Service (GW) The Gateway is the access point for API clients that require access to API services. API services can be accessed through the Gateway by API Clients. The Gateway receives information about an API Service from the Discovery Service.
 - Discovery Service (DS) The Discovery Service collects information about API services and provides this information to the Gateway and other services. API ML internal services are also registered to the Discovery Service.
 - API Catalog (AC) The Catalog displays information about API services through a web UI. The Catalog receives information about an API service from the Discovery Service.
 - Authentication and Authorization Service (AAS)
 AAS provides authentication and authorization functionality to check user access to resources on z/OS. The API ML uses z/OSMF API for authentication. For more information, see: APIML wiki
 - API Clients
 External applications, users, or other API services that are accessing API services via the API Gateway
 - API Services
 Applications that are accessed through the API Gateway. API services register themselves to the Discovery Service and can access other services through the Gateway. If an API service is installed in such a way that direct access is possible, API services can access other services without the Gateway. When APIs access other services, they can also function as API clients.
# Zowe API ML TLS requirements
The API ML TLS requires servers to provide HTTPS ports. Each of the API ML services has the following specific requirements:
 - API Client
 - The API Client is not a server
 - Requires trust of the API Gateway
 - Has a truststore that contains certificates required to trust the Gateway
 - Gateway Service
 - Provides an HTTPS port
 - Has a keystore with a server certificate
 - The certificate needs to be trusted by API Clients
 - This certificate should be trusted by web browsers because the API Gateway can be used to display web UIs
 - Has a truststore that contains certificates needed to trust API Services
 - API Catalog
 - Provides an HTTPS port
 - Has a keystore with a server certificate
 - The certificate needs to be trusted by the API Gateway
 - This certificate does not need to be trusted by anyone else
 - Discovery Service
 - Provides an HTTPS port
 - Has a keystore with a server certificate
 - The certificate needs to be trusted by API Clients
 - Has a truststore that contains certificates needed to trust API services
 - API Service
 - Provides an HTTPS port
 - Has a keystore with a server and client certificate
 - The server certificate needs to be trusted by the Gateway
 - The client certificate needs to be trusted by the Discovery Service
 - The client and server certificates can be the same
 - These certificates do not need to be trusted by anyone else
 - Has a truststore that contains one or more certificates that are required to trust the Gateway and Discovery Service
# Authentication for API ML services
 - API Gateway
 - API Gateway handles authentication.
 - There are two authentication endpoints that allow to authenticate the resource by providers
 - Diagnostic endpoints /application/** in API Gateway are protected by basic authentication or Zowe JWT token.
 - API Catalog
 - API Catalog is accessed by users and requires protection by a login
 - Protected access is performed by the Authentication and Authorization Service
 - Discovery Service
 - Discovery Service is accessed by API Services
 - This access (reading information and registration) requires protection needs by a client certificate
 - (Optional) Access can be granted to users (administrators)
 - Diagnostic endpoints /application/** in Discovery Service are protected by basic authentication or Zowe JWT token.
 - API Services
 - Authentication is service-dependent
 - Recommended to use the Authentication and Authorization Service for authentication
# Authentication endpoints
The API Gateway contains two REST API authentication endpoints: auth/login and auth/query.
The /login endpoint authenticates mainframe user credentials and returns an authentication token. The login request requires user credentials though one of the following methods:
 - Basic access authentication
 - JSON with user credentials
When authentication is successful the response to the request is an empty body and a token is contained in a secure HttpOnly cookie named apimlAuthenticationToken. When authentication fails, a user gets a 401 status code.
The /query endpoint validates the token and retrieves the information associated with the token. The query request requires the token through one of the following methods:
 - A cookie named apimlAuthenticationToken
 - Bearer authentication
When authentication is successful the response to the request is a JSON object which contains information associated with the token. When authentication fails, a user gets a 401 status code.
The /ticket endpoint generates a PassTicket for the user associated with a token.
This endpoint is protected by a client certificate. The ticket request requires the token in one of the following formats:
 - Cookie named apimlAuthenticationToken.
 - Bearer authentication
The request takes one parameter named applicationName, the name of the application for which the PassTicket should be generated. This parameter must be supplied.
The response is a JSON object, which contains information associated with the ticket.
For more details, see the OpenAPI documentation of the API Mediation Layer in the API Catalog.
# Authentication providers
API ML contains the following providers to handle authentication for the API Gateway:
 - z/OSMF Authentication Provider
 - Dummy Authentication Provider
# z/OSMF Authentication Provider
The z/OSMF Authentication Provider allows API Gateway to authenticate with the z/OSMF service. The user needs z/OSMF access in order to authenticate.
Use the following properties of API Gateway to enable the z/OSMF Authentication Provider:
apiml.security.auth.provider: zosmf
apiml.security.auth.zosmfServiceId: zosmf # Replace me with the correct z/OSMF service id
# Dummy Authentication Provider
The Dummy Authentication Provider implements simple authentication for development purpose using dummy credentials (username: user, password user). The Dummy Authentication Provider allows API Gateway to run without authenticating with the z/OSMF service.
Use the following property of API Gateway to enable the Dummy Authentication Provider:
apiml.security.auth.provider: dummy
# Authorization
Authorization is a method used to determine access rights of an entity.
In the API ML, authorization is performed by the z/OS security manager (CA ACF2, IBM RACF, CA Top Secret). An authentication token is used as proof of valid authentication. The authorization checks, however, are always performed by the z/OS security manager.
# JWT Token
The JWT Secret that signs the JWT Token is an asymmetric private key that is generated during installation. You can find the JWT Secret, alias "jwtsecret", in the PKCS12 keystore /keystore/localhost/localhost.keystore.p12. The public key necessary to read the JWT Secret is called from the keystore. For easy access, you can find the public key in the localhost.keystore.jwtsecret.cer directory. The JWT token is signed with the RS256 signature algorithm.
# API ML truststore and keystore
A keystore is a repository of security certificates consisting of either authorization certificates or public key certificates with corresponding private keys (PK), used in TLS encryption. A keystore can be stored in Java specific format (JKS) or use the standard format (PKCS12). The Zowe API ML uses PKCS12 to enable the keystores to be used by other technologies used in Zowe (Node.js).
The API ML local certificate authority (CA)
 - The API ML local CA contains a local CA certificate and a private key that needs to be securely stored
 - Used to sign certificates of services
 - The API ML local CA certificate is trusted by API services and clients
The API ML keystore
 - Server certificate of the Gateway (with PK). This can be signed by the local CA or an external CA
 - Server certificate of the Discovery Service (with PK). This can be signed by the local CA
 - Server certificate of the Catalog (with PK). This can be signed by the local CA
 - Private asymmetric key for the JWT token, alias jwtsecret. The public key is exported to the localhost.keystore.jwtsecret.cer directory.
 - The API ML keystore is used by API ML services
The API ML truststore
 - The API ML truststore


text:
Project Purpose: The Wallisville Lake Project was originally authorized by Congress for five purposes: navigation, salinity control, water supply, fish and wildlife enhancement, and recreation. These purposes are still current today even though the Project is much different now than originally conceived. The Trinity River is navigable by pleasure boats from its mouth and north as far as Liberty, Texas. The Galveston Bay area shrimp fleet utilizes the Trinity as safe harbor during major hurricane events. The Wallisville Lock and Dam and Structure A provide for salinity control by opening and closing depending on tides, river flows, winds, and drought conditions. The Trinity River is a major source of water for the Houston metro area, for several smaller communities, and for irrigation canal districts in both Liberty and Chambers Counties. Unlike most other Corps projects, Wallisville has no impounded reservoir so the bottomland forests, grasslands, streams, marshes, swamps, and pools are still preserved as natural habitats for a wide variety of fish and aquatic animals. Depending on tides and fish movements, anglers could find marine species one day and fresh species the next. Birds, such as colonial waders, shore birds, waterfowl, songbirds, and raptors call Wallisville home for breeding, wintering, or temporary residence during migration. Mammals large and small find forage and shelter in the grasslands, forests, and swamps. And we must not forget our large reptile, the American alligator. Except for the coldest part of the winter, visitors can expect to see alligators, sunning along stream or pool banks, or swimming in the Project's waters. Parks, Recreation Areas, and the Visitor Center provide opportunities for picnicking, hiking, birding, primitive camping, fishing, canoeing and kayaking, and other activities for visiting families. Fishing can be enjoyed year-round and during waterfowl season hunters can try their luck and aim on the many waterfowl that migrate through the project.
Project History: Efforts to construct a saltwater barrier and/or reservoir at Wallisville on the Trinity River began in 1952. Congress first authorized the construction of the project through the River and Harbor Act of October 22, 1962. The government purchased the property and construction began in 1966. At this point, the project would have been a 19,700 acre reservoir with surface elevation of four feet above mean sea level. A contract for water supply, salinity control, and recreation was signed between the U.S. Army Corps of Engineers, the Trinity River Authority, the Chambers-Liberty Counties Navigation District, and the City of Houston and was approved by the Secretary of the Army on February 2, 1968. In September 1971, a lawsuit was filed by the Sierra Club in U.S. District Court against the construction of the project. At approximately 72 percent complete, the construction was halted in 1973 by a summary judgment decision of the court. Between 1973 and 1987 the project was revised and reevaluated. And in May of 1987 the Fifth Circuit Court of Appeals dismissed the lawsuit in favor of the government and lifted the injunction against continuing construction. Then in November of 1989 a pair of nesting bald eagles was discovered near Miller Lake and the project was reevaluated again. It was this reevaluation that gave rise to the project as it stands today: a set of levees along the east and west banks of the Trinity in conjunction with the dam across the Trinity, the navigation lock and engineered navigation channel, the gated control structure on main stem of the Trinity, Structure A in the Cut-Off near Pickett's Bayou, Structure B at the head of Lost River, and our parks and recreation areas. The original 39,000 feet long concrete dam structure across the marsh was abandoned after it was breached in 2001 to allow for normal water flows of the Old River and several smaller streams and bayous. Cedar Hill Park was completed in October 2000 and is leased to Chambers County for operation and maintenance. The JJ Mayes Wildlife Trace was opened to the public in May 2003. Hugo Point Park was opened in August 2003 and is leased to Chambers County for operation and maintenance.

source: HuggingFaceFW/fineweb-edu


text:
Multi-effect for gentle tweaking through to full-on mangling!
ShapeShifter is a multi-effect VST plug-in which gives you a number of tools for changing your sounds, ranging from subtle effects through to extreme mangling of your audio. The following effects modules are included:
1. Waveshaper linked to a step sequencer, allowing you to create changes in tone that normal waveshapers can't achieve
2. Resonant Filter including an LFO and step sequencer to control the cut-off frequency
3. Stereo Delay including step sequencers to vary the delay settings over time
4. Gate to create rhythmic changes in volume
5. Chorus & Reverb to fill out sounds and add some polish
6. Compressor for controlling the dynamics of the audio.
ShapeShifter uniquely ties a waveshaper to a step sequencer, allowing you to blend between waveshaper settings in time with your track, creating interesting changes in tone.
Additionally, the signal path is configurable so that the effects can be ordered any way you like for maximum flexibility.
Price: £35 / €52 / $60
* Fixes a compatibility problem with certain hosts, namely Sonar and Orion.

source: openbmb/Ultra-FineWeb


text:
90% stolen over three weeks? Does this mean the person spending endless hours tending to the park's Federally protect plant notice on day one a few plants were missing and every day thereafter until the population was at 10%?
Poaching native Venus Flytraps is not a new occurrence. If people are that concerned with protecting the plants, why hasn't someone installed at least one trail camera with night vision capabilities in a location where it cannot be destroyed or stolen?
More information about formatting options


text: Divorce and marital instability are commonplace, but how do happy marriages become unhappy? How do marriages develop and change? In this book, leading researchers present recent research and theory that addresses these questions. Unlike previous books on marriage, which tend to focus on simply describing the differences between happy and unhappy couples, this book focuses on how marital dysfunction develops among newlywed couples. This information will be valuable as programs are devised to prevent marital discord and instability.


text:
Skip to Main Content
One of the main problems facing accurate location in wireless communication systems is nonline-of-sight (NLoS) propagation. In this paper, we propose a novel location technique that estimates the true, or line-of-sight (LoS), ranges based on NLoS range measurements. This approach utilizes a constrained nonlinear optimization approach, when range measurements are available from three base stations (BSs) only. Bounds on the NLoS error and the relationship between the true ranges are extracted from the geometry of the cell layout and the measured range circles to serve as constraints. Simulations studying the performance of the algorithm for different NLoS error distributions and BS configurations show that the location accuracy is significantly improved over traditional algorithms, even under highly NLoS conditions.

source: m-a-p/FineFineWeb


text:
The disclosure requirements for Related Party Transactions in published accounts are a common cause of confusion, on the face of it, its sounds easy but getting it right is often a balance between compliance and relevance. The rules are set out in the Companies Act 2006, FRS8 and for smaller companies FRSSE (April 2008). The rules apply to both Full and Abbreviated Accounts.
- FRS 8 defines a related party to include an entity's subsidiaries, associates, joint venture interests, directors and close family members of directors.
- The standard requires an entity's transactions with related parties, regardless of whether a price is charged, to be disclosed in that entity's financial statements.
FRS 8 section 3 and FRSSE section 15.7 states that disclosure of the following is not required:
- Pension contributions paid to a pension fund
- Emoluments in respect of services as an employee or the reporting entity
- Transactions with parties simply because of their role as:
- Providers of Finance
- Utility Companies
- Government Departments
- Customer, Supplier, Franchiser, Distributor or Agent
The disclosure under FRS8 and FRSSE should include:
(a) the names of the transacting related parties
(b) a description of the relationship between the parties
(c) a description of the transactions
(d) the amounts involved
(e) any other elements of the transactions necessary for an understanding of the financial statements
(f) the amounts due to or from related parties at the balance sheet date and provisions for doubtful debts due from such parties at that date
(g) amounts written off in the period in respect of debts due to or from related parties.
Dividends to directors do meet the definition of related party transactions and are disclosable as such.
Trival items don't require disclosure and the principle of materiality should be applied.
An item of information is material to the financial statements if its misstatement or omission might reasonably be expected to
influence the economic decisions of users of those financial statements, including their assessments of management's stewardship.
The Companies Act 2006 places a statutory duty on directors in relation to potential conflicts of interest:
A director must "avoid a situation in which he has, or can have, a direct or indirect interest that conflicts, or possibly may conflict, with the interests of the company".
Related Party Transactions will often create a potential conflict of interest.
Authorisation may be given by the directors—
(a)where the company is a private company and nothing in the company's constitution invalidates such authorisation, by the matter being proposed to and authorised by the directors; or
(b)where the company is a public company and its constitution includes provision enabling the directors to authorise the matter, by the matter being proposed to and authorised by them in accordance with the constitution.
The authorisation is effective only if—
(a)any requirement as to the quorum at the meeting at which the matter is considered is met without counting the director in question or any other interested director, and
(b)the matter was agreed to without their voting or would have been agreed to if their votes had not been counted.
So it is vital that Directors disclose any potential conflict of interest and seek authorisation from the Board of Directors.


text:
'Waggling' Wings Could Save 20% in Fuel Consumption
Image credit: Jstockard
Aircraft 'Waggle Effect' Can Reduce Fuel Consumption 20%
Everybody knows that flying is an energy intensive activity. Unfortunately, many long awaited innovations in fuel-efficient aviation are of the more far-fetched variety - I'm thinking airships, blended wings etc. Yet it's long been noted that the addition of 'winglets' to aircraft wings can reduce fuel consumption - in fact, Southwest Airline's use of winglets even earned them a nomination from one of our readers for our Unexpected Green competition. But that's not the only simple improvement that could cut fuel use - now a team from the University of Warwick in the UK claims that 'waggling' air accross aircraft wings could cut skin friction drag by 40%, offering a 20% savings in fuel consumption and emissions. Read on for more details.
Green Car Congress brings us more details on this cutting-edge aviation research from the UK that could lead to significant airplane fuel efficiency improvements in the medium to short term:
Aircraft wings which redirect air to waggle sideways over their surfaces could significantly reduce drag and thus cut fuel consumption and emissions by 20%, according to researchers at the University of Warwick (UK). The new approach, which promises to dramatically reduce mid-flight drag, exploits Helmholtz resonance—the same phenomenon that happens when blowing over a bottle—to produce micro-scale jet flows in response to turbulent noise.
The main contributor to aerodynamic drag, and thus fuel consumption and emissions, is fine-scale turbulence that exists very near to the aircraft's surface during cruise. The Turbulence Flow Control group at the University of Warwick has been studying non-powered (passive) flow control actuators as a means of reducing drag for some time, with the goal of developing flow-control technologies capable of major drag reductions on passenger jet aircraft.
Warwick is focusing on passive actuators because if an actuator is to be used on an aircraft, it must save more energy (in reduced drag) than it requires for its operation. Unfortunately, the researchers at Warwick note, many powered devices that have been developed for the drag-reduction application are unlikely to satisfy this fundamental net-saving requirement.
In a project funded jointly by the Engineering and Physical Sciences Research Council (EPSRC) and Airbus, Warwick and other universities are investigating the potential of using new types of passive devices for turbulent drag reduction. One of the ideas under investigation was the use of Helmholtz resonance.
Dr Duncan Lockerby, one of the researchers, said in a press release about the waggle wing research that they weren't entirely sure why the waggle effect was so pronounced, but "with the pressure of climate change we can't afford to wait around to find out. So we are pushing ahead with prototypes and have a separate three year project to look more carefully at the physics behind it. Here's hoping they can figure out a way to make it work in the real world!


text:
- Word Combinations (noun), Word History
|part of speech:
||any of several large, edible flatfishes found in the northern Atlantic or Pacific.
comes from two early English words. Butte
meant "flatfish." Haly
meant "holy" and was combined with butte
because fish was eaten on holy days.


text:
Solve Blocks in Mathad
The Solve Blocks feature can be found in the Math tab within Prime. This allows you to find a solution for variables within a simultaneous system of mathematical requirements, equations constraints. You can also optimize solutions and solve for design variables. Optimization refers to maximizing or minimizing the output of a function and allowing Mathcad to tell us what the input variables to that function should be while satisfying additional requirements at the same time. Solve Blocks also allow you to solve for an object's dimensions.


text:
Originally Posted by Hermit
I've seen references where some people say they can taste the difference between plain table sugar and invert sugar in beer while others say they can't..
Doesn't sound credible to me. Sucrose is a glucose and fructose
molecule connected end to end. At low pH you disconnect them
and have an equilibrium mixture of glucose, fructose and sucrose.
What these people are saying is that they can tell the difference
between sucrose and a mixture of the three. Have you ever tasted
corn sugar (glucose) and fructose? They taste exactly the same
as sucrose; for a given amount fructose is the sweeter of the three,
but no actual difference in taste.


loadVariablesFromMATFile
Load variables from MAT-file into a Simulink.SimulationInput object, in
Syntax
in = in.loadVariablesFromMATFile('filename')
Description
example
in = in.loadVariablesFromMATFile('filename') loads variables from the specified MAT-file into the Variables property of Simulink.SimulationInput.
Examples
collapse all
This example shows how to load variables from MAT-File into Simulink.SimulationInput object using the loadVariablesFromMATFile method.
Create a Simulink.SimulationInput Object
Create a Simulink.SimulationInput object for the example model.
mdl = 'ex_loadVar_sldemo_househeat';
in = Simulink.SimulationInput(mdl);
in
in =
 SimulationInput with properties:
 ModelName: 'ex_loadVar_sldemo_househeat'
 InitialState: [0x0 Simulink.op.ModelOperatingPoint]
 ExternalInput: []
 ModelParameters: [0x0 Simulink.Simulation.ModelParameter]
 BlockParameters: [0x0 Simulink.Simulation.BlockParameter]
 Variables: [0x0 Simulink.Simulation.Variable]
 PreSimFcn: []
 PostSimFcn: []
 UserString: ''
Load Variables From MAT-File
Use the loadVariablesFromMATFile method of the Simulink.SimulationInput object.
in = in.loadVariablesFromMATFile('sldemo_househeat_data.mat');
in
in =
 SimulationInput with properties:
 ModelName: 'ex_loadVar_sldemo_househeat'
 InitialState: [0x0 Simulink.op.ModelOperatingPoint]
 ExternalInput: []
 ModelParameters: [0x0 Simulink.Simulation.ModelParameter]
 BlockParameters: [0x0 Simulink.Simulation.BlockParameter]
 Variables: [1x25 Simulink.Simulation.Variable]
 PreSimFcn: []
 PostSimFcn: []
 UserString: ''
Simulate the Model
The model uses the loaded variables for simulation
out = sim(in)
out =
 Simulink.SimulationOutput:
 sldemo_househeat_output: [1x1 Simulink.SimulationData.Dataset]
 SimulationMetadata: [1x1 Simulink.SimulationMetadata]
 ErrorMessage: [0x0 char]
Input Arguments
collapse all
Name of MAT-file, specified as a character vector or string scalar.
Example: 'myFile'
Introduced in R2017a


text:
Tuesday, 7 October 2008
George R. Brown Convention Center, Exhibit Hall E
Increased urbanization in the United States and the rest of the world, has led to more research on the effects it has on the local ecology. Urbanization can be defined as the creation of impervious cover in areas previously covered by forest, grass or farm lands. Small increases in impervious cover can cause noticeable changes in stream chemistry. The goal of this study is to quantify the impact of smaller industrial cities on water and sediment geochemistry in a largely agricultural watershed. The study area is in east-central Indiana along the west fork of the White River and includes the cities of Winchester, Muncie and Anderson. This area is dominated by agriculture and the impact of cities in the region on water chemistry has not been studied. To assess this impact, sampling sites were selected upand downstream of the three cities to characterize White River water chemistry before and after it flows through the cities and sewage treatment plants. Sampling was done over the course of one year to obtain samples characteristic of high and low flow river conditions. Samples were analyzed for major cation and anion concentrations as well as total suspended solids. Background sites unaffected by urbanization were sampled for comparison. Metals data was also obtained from water and sediment in the study area. Results show that sediment load, on average, increases on the downstream side of these cities. Initial chemical analyses show that major cations and anions, Na+, K+, NO3-, SO42- and Cl-, have distinct spikes in concentration on the downstream side of the cities, as well. Na+ and Clare specifically linked to human and urbanized activity, and were up to four times higher downstream of the urbanized areas.


oredProcedure class will build the call statement using this escape syntax and the only thing you have to provide is the name of the stored procedure. You are also required to declare any parameters that are passed in or out to the procedure.
The StoredProcedure has an execute method that takes a Map of input parameters as its only argument. The results are also returned using a Map with one entry per output parameter. We normally define an execute method, in the class that extends StoredProcedure, with a calling signature that matches the stored procedure itself. This class then creates the input parameter Map and populates it with the parameters passed in. The final step is then to take the Map of output parameters and map that to an object structure or primitive value that is the return value for the execute method. Here is an example that calls the stored procedure reserve_seat that we saw in the preceding text:
public class CallReserveSeat extends StoredProcedure { private static final String RESERVE_SEAT_SQL = "reserve_seat"; public CallReserveSeat(DataSource dataSource) { super(dataSource, RESERVE_SEAT_SQL); declareParameter(new SqlParameter("performance_id", Types.INTEGER)); declareParameter(new SqlParameter("seat", Types.INTEGER)); declareParameter(new SqlParameter("price", Types.DECIMAL)); declareParameter(new SqlParameter("reserved_until", Types.DATE)); declareParameter(new SqlOutParameter("new_booking_id", Types.INTEGER)); compile(); } public int execute(int performanceId, int seatId, BigDecimal price, java.util.Date reservedUntil) { Map inParams = new HashMap(4); inParams.put("performance_id", new Integer(performanceId)); inParams.put("seat", new Integer(seatId)); inParams.put("price", price); inParams.put("reserved_until", new java.sql.Date(reservedUntil.getTime())); Map outParams = execute(inParams); if (outParams.size() > 0) return ((Integer)outParams.get("new_booking_id")).intValue(); else return 0; } }
Most of the code is in the CallReserveSeat class itself, so it is very easy to use it. Just create a new class and call the execute method with a set of parameters:
CallReserveSeat proc = new CallReserveSeat(dataSource); Map result = proc.execute(1, 2, new BigDecimal("44.12"), new java.util.Date(System.currentTimeMillis()+ 864000000L));
When you specify the name of the stored procedure in the class that extends stored procedures, you are creating a class that is specifically tailored for a single stored procedure. By providing a customized execute with a method signature that maps to the parameter signature of the stored procedure, you are essentially providing a one-to-one mapping between the stored procedure and a Java class and its execute method.
Like other RDBMS operation objects, StoredProcedure subclasses are threadsafe, unless your subclass implementation introduces read-write instance variables. You should normally avoid doing so.
Professional Java Development with the Spring Framework
Professional Java Development with the Spring Framework
ISBN: _PHONE_
EAN: _PHONE_
Year: 2003
Pages: 188
Similar book on Amazon
flylib.com © 2008-2017.
If you may any questions please contact us: _EMAIL_


text:
Marooned on a desert island with a limited food supply, children investigate the properties and make-up of common foods. Investigations of water content, fat content and the roles of starch and gluten in flour all contribute to the overall question of what constitutes a "balanced" diet. Instructional material.
Explore It! is a series of exploratory science experiences for out-of-school programs and elementary school students (ages 8-12), funded by the National Science Foundation and developed by Education Development Center, Inc. Explore It! includes a guide for each project and a special guide for implementing the program. These extended explorations provide an experiential foundation for science concepts associated with basic phenomena and helps develops essential skills for inquiry in the formal context.
Instructional materials only.


text:
The GIS 20: Essential Skills
The GIS 20 is a no-nonsense workbook that demonstrates how to perform twenty essential GIS skills as indicated by 500 GIS practitioners. Written for professionals with no time for classroom training, this book can be treated as a weekly self-assignment or an as-needed reference. Each chapter offers a handy checklist of basic functions and steps covered in the text, as well as executive level summaries of how the functions are commonly applied for different types of analysis. If you are a GIS beginner, The GIS 20: Essential Skills is your best friend.


not understand the difference between holding and resisting. The best thing to do is stop and make sure the client is at ease, and explain the process, the work being done, the reason for using muscle testing, etc. Answer any questions the client might have, and make sure the environment is comfortable to the client. Take some time to teach the client the difference between holding and pushing back.
b. An Always Weak Muscle
This is obviously the opposite case of the problem above. In this case, the muscle will always test weak. The client might not know how strong to hold the muscle, they might not want to do the work, or might be too tired. Stop the work, and try to explain the session and purpose of muscle testing to the client, the need to have their collaboration. Try to understand the reason behind the weakness. Maybe the practitioner will want to change muscles, or, if the client it too tired, stop the session and postpone it for a different day.
c. A Stubborn Muscle
A stubborn muscle is one where one of the previous two problems have been dealt with, but the muscle keeps going back to the always weak or strong situation. The practitioner needs to train the muscle, and make sure he/she is still in balance. The client might need to be explained further and practice of yes and no feeling might have to continue for a while until the client feels what is expected.


Edit Article
Two Methods:Removing gripsApplying grips
On a bicycle, sometimes it's very hard to get your new rubber handlebar grips on. This will help you put it on easily and not have it slip off later.
Method 1 of 2: Removing grips
 1. 1
 Sometimes careful cutting with a razor blade is necessary. Try not to scratch your chrome. If you want to save the grips without cutting, spray WD-40 between grip and handlebar. It WILL penetrate all the way down. Twist to spread WD-40 inside, and pull off. Stick a screwdriver between the bar and the grip if you cannot get under the grip well.
 2. 2
 Clean bar with soap/water to remove WD-40. Dry bar thoroughly! Don't leave handlebars soapy or wet.
 3. 3
 You can also use compressed air from a compressor or can to remove a grip. Place a needle/nozzle between the grip and the handlebar, and the air will allow the grip to slide off the bar. Since you won't be placing a lubricant on the bar, you will not need to clean it off. Use the proper precautions whenever you use compressed air tools or products to prevent explosions or other injuries.
Method 2 of 2: Applying grips
 1. 1
 Apply a squirt of hairspray or hand sanitizer inside the grip.
 2. 2
 3. 3
 - Ordinary spit will also work, if you don't have hairspray or sanitizer.
Article Info
Categories: Bicycles
In other languages:
Thanks to all authors for creating a page that has been read 136,006 times.
Did this article help you?
Yes No
an Author!
Write an Article


text:
Lesson 1/Learning Event 4
(d) The TEST TONE jacks provide a test tone (1004 Hz) at the proper
level for the facility where it is used.
(e) The SPEAKER (SPKR) jacks provide a means of monitoring audio signals
such as voice, test tones, signaling frequencies, etc.
(f) Above each jack of the miscellaneous module is a light that comes on
any time a plug is inserted in the jack. The lights are important because
the test tone jacks, speaker jacks and meter jacks are connected to more
jack is in use.


even though there is no data stored directly at ^Data(5). Executing this statement one more time will set key to the null string (""), indicating that there are no more first level subscripts.
By using additional subscripts with the $ORDER function, you can iterate over different subscript levels. $ORDER returns the next value of the last subscript in its argument list. Using the data above, the statement:
 SET key = $ORDER(^Data(1,""))
will set key to 1 as ^Data(1,1) is the next second-level subscript. Executing this statement again will set key to 2 as that is the next second-level subscript. Executing this statement one more time will set key to "" indicating that there are no more second-level subscripts under node ^Data(1).
Looping with $ORDER
The following ObjectScript code defines a simple global and then loops over all of its first-level subscripts:
 // clear ^Data in case it has data
 Kill ^Data
 // fill in ^Data with sample data
 For i = 1:1:100 {
 // Set each node to a random person's name
 Set ^Data(i) = ##class(%PopulateUtils).Name()
 }
 // loop over every node
 // Find first node
 Set key = $Order(^Data(""))
 While (key '= "") {
 // Write out contents
 Write "#", key, " ", ^Data(key),!
 // Find next node
 Set key = $Order(^Data(key))
 }

Additional $ORDER Arguments
The ObjectScript $ORDER function takes optional second and third arguments. The second argument is a direction flag indicating in which direction you wish to traverse a global. The default, 1, specifies forward traversal, while –1 specifies backward traversal.
The third argument, if present, contains a local variable name. If the node found by $ORDER contains data, the data found is written into this local variable. When you are looping over a global and you are interested in node values as well as subscript values, this operates more efficiently.
Looping Over a Global
If you know that a given global is organized using contiguous numeric subscripts, you can use a simple For loop to iterate over its values. For example, in Caché Basic:
For i = 1 To 100
 Print ^Data(i)
Next
or the equivalent in ObjectScript:
 For i = 1:1:100 {
 Write ^Data(i),!
 }
Generally, it is better to use the $ORDER function described above: it is more efficient and you do not have to worry about gaps in the data (such as a deleted node).
The $QUERY Function
If you need to visit every node and subnode within a global, moving up and down over subnodes, use the ObjectScript $QUERY function. (Alternatively you can use nested $ORDER loops).
The $QUERY function takes a global reference and returns a string containing the global reference of the next node in the global (or "" if there are no following nodes). To use the value returned by $QUERY, you must use the ObjectScript indirection operator (@).
For example, suppose you define the following global:
 Set ^Data(1) = ""
 Set ^Data(1,1) = ""
 Set ^Data(1,2) = ""
 Set ^Data(2) = ""
 Set ^Data(2,1) = ""
 Set ^Data(2,2) = ""
 Set ^Data(5,1,2) = ""
The following call to $QUERY:
 SET node = $QUERY(^Data(""))
sets node to the string "^Data(1)", the address of the first node within the global. Then, to get the next node in the global, call $QUERY again and use the indirection operator on node:
 SET node = $QUERY(@node)
At this point, node contains the string "^Data(1,1)".
The following example defines a set of global nodes and then walks over them using $QUERY, writing the address of each node as it does:
 Kill ^Data // make sure ^Data is empty
 // place some data into ^Data
 Set ^Data(1) = ""
 Set ^Data(1,1) = ""
 Set ^Data(1,2) = ""
 Set ^Data(2) = ""
 Set ^Data(2,1) = ""
 Set ^Data(2,2) = ""
 Set ^Data(5,1,2) = ""
 // now walk over ^Data
 // find first node
 Set node = $Query(^Data(""))
 While (node '= "") {
 Write node,!
 // get next node
 Set node = $Query(@node)
 }

Copying Data within Globals
To copy the contents of a global (entire or partial) into another global (or a local array), use the ObjectScript MERGE command.
The following example demonstrates the use of the MERGE command to copy the entire contents of the OldData global into the NewData global:
 Merge ^NewData = ^OldData
If the source argument of the MERGE command has subscripts then all data in that node and its descendants are copied. If the destination argument has subscripts, then the data is copied using the destination address as the top level node. For example, the following code:
 Merge ^NewData(1,2) = ^OldData(5,6,7)
copies all the data at and beneath ^OldData(5,6,7) into ^NewData(1,2).
Maintaining Shared Counters within Globals
A major concurrency bottleneck of large-scale transaction processing applications can be the creation of unique identifier values. For example, consider an order processing application in which each new invoice must be given a unique identifying number. The traditional approach is to maintain some sort of counter table. Every process creating a new invoice waits to acquire a lock on this counter, increments its value, and unlocks it. This can lead to heavy resource contention over this single record.
To deal with this issue, Caché provides the ObjectScript $INCREMENT function. $INCREMENT atomically increments the value of a global node (if the node has no value, it is set to 1). The atomic nature of $INCREMENT means that no locks are required; the function is guaranteed to return a new incremented value with no interference from any other process.
You can use $INCREMENT as follows. First, you must decide upon a global node in which to hold the counter. Next, whenever you need a new counter value, simply invoke $INCREMENT:
 SET counter = $INCREMENT(^MyCounter)
The default storage structure used by Caché objects and SQL uses $INCREMENT to assign unique object (row) identifier values.
Using Temporary Globals
For certain operations, you may need the power of globals without requiring persistence. For example, you may want to use a global to sort some data which you do not need to store to disk. For these operations, Caché provides temporary globals.
Temporary globals have the following characteristics:
By default, Caché defines any global whose name starts with "CacheTemp" as being a temporary global. To avoid conflict with any temporary globals that Caché itself may use, you should start your temporary global names with "CacheTempUser".
Caché SQL uses temporary globals as scratch space for optimizing complex queries. It may also uses temporary globals as temporary indices during the execution of certain queries (for sorting, grouping, calculating aggregates, etc.)
Sorting Data within Globals
Data stored within globals is automatically sorted according to the value of the subscripts. For example, the following ObjectScript code defines a set of globals (in random order) and then iterates over them to demonstrate that the global nodes are automatically sorted by subscript:
 // Erase any existing data
 Kill ^Data

 // Define a set of global nodes
 Set ^Data("Cambridge") = ""
 Set ^Data("New York") = ""
 Set ^Data("Boston") = ""
 Set ^Data("London") = ""
 Set ^Data("Athens") = ""
 // Now iterate and display (in order)
 Set key = $Order(^Data(""))
 While (key '= "") {
 Write key,!
 Set key = $Order(^Data(key)) // next subscript
 }

Applications can take advantage of the automatic sorting provided by globals to perform sort operations or to maintain ordered, cross-referenced indices on certain values. Caché SQL and ObjectScript use globals to perform such tasks automatically.
Collation of Global Nodes
The order in which the nodes of a global are sorted (referred to as collation) is controlled at two levels: within the global itself and by the application using the global.
At the application level, you can control how global nodes are collated by performing data transformations on the values used as subscripts (Caché SQL and objects do this via user-specified collation functions). For example, if you wish to create a list of names that is sorted alphabetically but ignores case, then typically you use the uppercase version of the name as a subscript:


text:
Date Added: May 2011
The major purpose of this paper is to develop a Web-based E-learning Platform for physical education. The Platform provides sports related courseware which includes physical motions, exercise rules and first-aid treatment. The courseware is represented using digital multimedia materials which include video, 2D animation and 3D virtual reality. Courseware within digital multimedia materials not only can increase the learning efficient but also inspires students' strong interest in learning, especially in the area of Physical Education.


text:
Easter lilies in black
Easter lilies in blue
Easter lilies in gold
Easter lilies in purple
Matthew 6:28 is the twenty-eight verse of the sixth chapter of the Gospel of Matthew in the New Testament and is part of the Sermon on the Mount. This verse continues the discussion of worry about material provisions.
In the King James Version of the Bible the text reads:
And why take ye thought for raiment?
Consider the lilies of the field, how they grow;
they toil not, neither do they spin:
The World English Bible translates the passage as:
Why are you anxious about clothing?
Consider the lilies of the field, how they grow.
They don't toil, neither do they spin,
For a collection of other versions see BibRef Matthew 6:28
Two verses earlier at Matthew 6:26 Jesus told his followers not to worry about food, because even the lowly birds are provided for by God. In this verse Jesus presents the example of the lilies, who also do no labor. Spin in this verse is a reference to spinning thread, a labor intensive but necessary part of making clothing. Spinning was traditionally women's work, something made explicit in Luke's version of this verse. This then is one of the few pieces of evidence that Jesus' message is meant equally for women as for men.
Many varieties of flowers grow wildly and abundantly in Galilee. The translation of lilies is traditional, but far from certain. Modern scholars have proposed a number of different flowers that Jesus could be here referring to, according to Fowler these include the autumn crocus, scarlet poppy, Turk's cap lily, anemone coronaria, the narcissus, the gladiolus, and the iris. France notes that flowers were less specifically defined in that era, and lily could be a word referring to any showy variety. The verse could also just mean flowers in general, rather than a specific variety. "In the field" implies that these are the wildflowers growing in the fields, rather than the cultivated ones growing in gardens. Harrington notes that some have read this verse as originally referring to beasts rather than flowers.


text:
Definitions of condenser
n. - One who, or that which, condenses. 2
n. - An instrument for condensing air or other elastic fluids, consisting of a cylinder having a movable piston to force the air into a receiver, and a valve to prevent its escape. 2
n. - An instrument for concentrating electricity by the effect of induction between conducting plates separated by a nonconducting plate. 2
n. - A lens or mirror, usually of short focal distance, used to concentrate light upon an object. 2
n. - An apparatus for receiving and condensing the volatile products of distillation to a liquid or solid form, by cooling. 2
n. - An apparatus, separate from the cylinder, in which the exhaust steam is condensed by the action of cold water or air. See Illust. of Steam engine. 2
The word "condenser" uses 9 letters: C D E E N N O R S.
No direct anagrams for condenser found in this word list.
Words formed by adding one letter before or after condenser (in bold), or to cdeennors in any order:
e - recondense i - endocrines m - condemners s - condensers t - contenders u - denouncers uncensored
All words formed from condenser by changing one letter
Browse words starting with condenser by next letter


text:
2709 Two Notch Road
By 1896, some two to three hundred middle-class African Americans had formed a small suburb called "Kendalltown," located northeast of the city in the modern day Barhamville Road area. The neighborhood initially consisted of about fifty four-room houses built on one-acre lots, but the name "Kendalltown" came to apply broadly to the African American residential area roughly bound by Two Notch Road on the east, the Southern Railroad on the west, Belt Line Drive on the north, and Elmwood Avenue on the south. Through the early twentieth century, Kendalltown was also home to many small farms which kept cows, goats, hogs, and poultry. The neighborhood's namesake was the colorful Dr. Francis D. Kendall, from whom the initial land tract was purchased for development.
Dr. Kendall was a local Columbia physician, who for many years operated a large farm on the site of the Old Barhamville Academy. Kendall raised, among other livestock, an enormous and varied flock of fowl—ducks, geese, swans, chickens, and water fowl—that numbered over five hundred and won prizes at the State Fair. Dr. and Mrs. Kendall were a cosmopolitan pair who posted notices of their far flung travels in The State, and hosted large, elaborate social events on their Barhamville Road property. Kendall also distinguished himself in the local crime blotter, caught selling illegal narcotics from his downtown Richland Drug Company in 1916. The Kendall family remained prominent in the Barhamville area and still held property there well into the 1950s.


Champ Ferguson
From Real Life Villains Wiki
Jump to navigation Jump to search
Champ Ferguson
Full Name: Champ Ferguson
Origin: Clinton County, USA
Occupation: Leader of a Confederate guerrilla company
Hobby: Killing prisoners and pro-Union civilians
Goals: Defeat tbe Union (failed)
Crimes: War crimes
Type of Villain: Confederate war criminal
Champ Ferguson (29th November 1821 - 20th October 1865) was the leader of a guerrilla company during the American Civil War and one of the only two people convicted of War crimes relating to the Civil War, with the other being Henry Wirz.
Ferguson was born in Clinton County, Kentucky in 1821. He became a farmer, like most people in the area, but gained a reputation for violence even before the American Civil War. On 12th August 1858, Ferguson became involved in an altercation with brothers Floyd and Alexander Evans after being caught on the wrong side of the Kentucky-Tennessee border, resulting in Ferguson repeatedly stabbing Floyd Evans and acting constable James Reed, killing Reed and almost killing Evans.
After the American Civil War began in 1861, Ferguson formed a pro-Confederate guerrilla company to hunt down and kill pro-Union civilians. Many stories circulated about his sadism, most notably that he enjoyed beheading prisoners and rolling their heads down hillsides, and that he was willing to kill elderly and bedridden men if he believed they supported the Union. He also often came into direct conflict with David "Tinker Dave" Beatty, the leader of a pro-Union guerrilla company.
Ferguson's most notorious crime occurred after the First Battle of Saltville, when several wounded Union soldiers, both black and white, were murdered by Confederate troops under Brigadier General Felix Huston Robertson. During the massacre, Ferguson and his guerrillas were responsible for attacking a nearby field hospital and killing all Union soldiers found within, while Robertson's men killed those found on the battlefield. However, Ferguson failed to kill all of the Union soldiers at the hospital before the Legion of Cherokee Indians arrived, forcing him to leave with his men before his involvement in the massacre could be discovered.
After the Confederates were defeated, Ferguson disbanded his company and returned to his farm, where he was arrested by Union troops and taken to Nashville, where he was charged with 53 counts of murder. Ferguson admitted to many of the killings, claiming he was simply doing his duty as a soldier. He was convicted on all counts on 10th October 1865 and executed by hanging 10 days later.


Energetics of vacancy segregation to symmetric tilt grain boundaries in hexagonal closed pack materials
MA Bhatia and KN Solanki, JOURNAL OF APPLIED PHYSICS, 114, 244309 (2013).
DOI: 10.1063/_PHONE_
Molecular static simulations of 190 symmetric tilt grain boundaries in hexagonal closed pack metals were used to understand the energetics of vacancy segregation, which is important for designing stable interfaces in harsh environments. Simulation results show that the local arrangements of grain boundaries and the resulting structural units have a significant influence on the magnitude of vacancy binding energies, and the site-to-site variation within each boundary is substantial. Comparing the vacancy binding energies for each site in different c/a ratio materials shows that the binding energy increases significantly with an increase in c/a ratio. For example, in the 1 (2) over bar 10 tilt axis, Ti and Zr with c/a=1.5811 have a lower vacancy binding energy than the Mg with c/a=1.6299. Furthermore, when the grain boundary energies of all 190 boundaries in all three elements are plotted against the vacancy binding energies of the same boundaries, a highly negative correlation (r = -0.7144) is revealed that has a linear fit with a proportionality constant of -25 angstrom(2). This is significant for applications where extreme environmental damage generates lattice defects and grain boundaries act as sinks for both vacancies and interstitial atoms. (C) 2013 AIP Publishing LLC.
Return to Publications page


text:
Anders Schroder combines abstract with sensual to create a strikingly unique batch of idents for TV3's female-skewed lifestyle channel TV3 Puls (and realises the design store of the future in the process).
director: Anders Schroder
TV3 was very focused on the idea of creating an identity package that reflected the feel of the channel rather than the content of it. They had to be abstract, clearly avoiding literal clichees and had to be all graphic. Obviously it was very important for the channel to fit into the TV3 family while still holding its own.
In order to reflect the mood of the channel we were drawn towards natural materials and textures to create something that you would love to touch and feel. At the same time we did not want to be literal so we invented fictive objects and shapes that resembled abstract interior/design objects but that clearly did not have a real-world purpose. These semi-natural objects were deliberately mixed with all-synthetic CG objects which were then arranged into still-life-esque compositions.
We decided to base each ident around abstract concepts such as, a breath of fresh air, opening up, socializing, attraction, and balance. All positive concepts that could serve as the driving idea behind each ident.
We wanted to create a unique look that was cutting edge and aspirational with (wo)Man at the center of the idea.


text:
Parenteral penicillin for children with meningococcal disease before hospital admission: Case-control study
Harnden A., Ninis N., Thompson M., Perera R., Levin M., Mant D., Mayon-White R.
Objective: To explore the impact on mortality and morbidity of parenteral penicillin given to children before admission to hospital with suspected meningococcal disease. Design: Retrospective comparison of fatal and non-fatal cases. Setting: England, Wales, and Northern Ireland; December 1997 to February 1999. Participants: 158 children aged 0-16 years (26 died, 132 survived) in whom a general practitioner had made the diagnosis of meningococcal disease before hospital admission. Results: Administration of parenteral penicillin by general practitioners was associated with increased odds ratios for death (7.4,95% confidence interval 1.5 to 37.7) and complications in survivors (5.0, 1.7 to 15.0). Children who received penicillin had more severe disease on admission (median Glasgow meningococcal septicaemia prognostic score (GMSPS) 6.5 v 4.0, P = 0.002). Severity on admission did not differ significantly with time taken to reach hospital. Conclusions: Children who were given parenteral penicillin by a general practitioner had more severe disease on reaching hospital than those who were not given penicillin before admission. The association with poor outcome may be because children who are more severely ill are being given penicillin before admission.


text:
|Feb8-13, 06:53 AM||#1|
Friction conditions on contact point of disc
I have some doubts regarding the friction force on a certain situation. Imagine a disc over a fixed flat surface. Like this:
The disc has two motions, rotational and translational but these are independent of each other. I mean the translational motion does not come from the rotation of the disc, imagine an external force that moves the disc.
Now, with this in mind lets say that the disc is moving from left to right always keeping contact with the surface. At the same time the disc is rotating with an angular velocity clockwise. Because of the different movements, at the contact point, there is slip.
Now to the question itself. What kind of friction do I have at the contact point? Do I have rolling or sliding friction at the contact point? and what direction does the friction force have since the disc is moving to the right but at the contact point the direction of rotation is to the left?
|Similar Threads for: Friction conditions on contact point of disc|
|Help with Point Charges and Charge by Contact||Introductory Physics Homework||12|
|accumulation point unit disc||Calculus & Beyond Homework||4|
|Movement of a point on the perimeter of a disc||Advanced Physics Homework||0|
|Point contact diode||Atomic, Solid State, Comp. Physics||0|
|Contact friction||Introductory Physics Homework||3|


text:
Here are some Gufo code that is already working in the current experimental version: this gives an idea of the possibilities.
Sadly, I am not able to show code coloration here…
The factorial function
let $factoriel $c = if ($c!= 1) then ($factoriel ($c - 1)) * $c else 1
Comment: While it looks quite simple, it shows well that Gufo can handle recursive function. Performance regarding recursive function are quite good (better than in python).
The call-ssh function
let $ssh $user $arg = ssh ($user + "@" + $addr)
Comment: Again, this is quite simple but it lets run an interactive command within a function easily. What is returned by the function is a "command result" type which both contain the result code of the command (the returned integer) and for a non-interactive command, the string printed by the command (until a limit of size).
The rename files function
let $replace $from $to = let $allfiles = ls -1 in( $List.iter (fun $afile -> let $newname = echo -n $afile | sed ("s/"+$from+"/"+$to+"/g") in( if ($newname.Cmd.print == $afile) then (echo ($afile + ": already ok")) else(mv $afile $newname.Cmd.print) )) ($String.asList $allfiles.Cmd.print) )
Comment: Finally a full function: it gets the names of the files in the current directory, iterate on them and if part of their names includes the string contained in $from, it replaces it by the string contained in $to.


Visual Exploration
This is the most important step in undertaking simulation.
Traditionally the next stage in using simulation was to design and perform a series of experiments with the simulation to see how the factory could be improved. However, a much more important step in doing simulation (and one that only became possible when simulation became Visual and Interactive) is to explore the simulation visually with your client. This enables both you and your client the opportunity to gain an understanding of how the different parts of the simulation interact with each other, how the performance measures can be affected and to gain insights into how the factory can be changed and improved.
This 'Visual exploration' is done by running the simulation and watching the products move around on the computer screen. You can, for example, see where bottlenecks build up, you can see under what circumstances these are worst. By changing the simulation and watching to see the effects of these changes you can gain a knowledge and understanding of the way the system behaves. You can get to know its 'character'.
Of course, exploring a simulation visually like this is not a rigorous or scientific testing procedure and should always be followed by some careful tests (see (j) below) but it is much better at giving insights into how to improve the factory (or other system) than a series of controlled experiments.


text:
The Province operates a network of observation wells to provide data on ground water level fluctuations and ground water quality information on developed aquifers in British Columbia. Observation well water levels are monitored using one of four methods: 1) manually with a wetted tape, 2) continuously using Steven's chart recorders, 3) electronically with data loggers or 4) remote monitoring using cellphone technology.
Water level data from observation wells are collected on a monthly basis by field observers and forwarded to Regional Offices. Data are then checked for errors and ommissions and forwarded to the Water and Air Monitoring and Reporting Section for final checking and storage. Water level data are referenced from ground level and the month end water level reading are entered and stored in Excel to produce a month-end hydrograph. The method of measurement and accuracy of each method are given below:
|Method of measurement||Accuracy|
|Wetted Tape Method||+/- 1 mm|
|Steven's Chart Recorder||+/- 1 mm|
|Data Logger||+/- 0.1 %|
Hydrograph Analysis- Observation Well No.125
The hydrograph above shows the change in ground water level in the observation well (meters below ground level) over time. This observation well is monitored manually each month using a wetted tape. This observation well is located in a ditch along the side of Horton Bay Road.
Observation well No.125
is located in an undelineated, bedrock aquifer to a depth of 30.5 m. Since
1971, the ground water level in the well has ranged from a high of 0.5 m above
ground level in December 1975, to a low of 1.4 m below ground level in August
1994. The difference between maximum and minimum ground water levels in any
single year ranges from approximately 0.5 (in 2001) to 1.0 (in 1981) meters.
The lowest ground water level period in the hydrograph is during August to
September. Levels usually begin to rise late September to October, corresponding
to ground water recharge from seasonal precipitation. Between 1971 and 1977,
the well experienced flowing artesian conditions during the winter months.
Since 1981, the well no longer flows, as the ground water level has declined.
Overall, the ground water level in the well has been gradually declining since


text:
New Zealand's renewable share of total primary energy supply increased to 39 per cent in 2011, the highest on record, the Ministry of Economic Development reported today.
New Zealand ranks second in the OECD for the share of renewables towards total primary energy supply.
New Zealand's total primary energy supply is made up of renewable energy sources, domestically produced gas, domestic and imported coal, and imported oil.
The increase in renewable share was on the back of an increase in renewable electricity generation, which rose to 77 per cent in 2011.
New Zealand exports almost all oil produced here as it is economically beneficial for New Zealand to export our crude oil, and import less expensive foreign oil.
The data was reported in the Ministry of Economic Development's New Zealand Energy Data File 2012.
The New Zealand Energy Data File provides comprehensive statistics and supporting information on New Zealand's energy supply, demand and prices. It also includes international comparisons, and oil and gas reserves information.
Reported annual data also shows that oil production declined 14 per cent in 2011, to 17 million barrels. Total remaining oil reserves also declined 11 per cent due to on-going production and a downgrade of ultimate recoverable reserves at the Tui field.
However, the industry invested $1.2 billion in 2011, with 52 oil and gas exploration and development wells drilled in 2011, up from 45 in 2010.
Gas production dropped 10 per cent from 2010, mainly due to a decrease in demand for gas-fired electricity generation.
Total coal production was less than five million tonnes in 2011, down seven per cent from 2010 following a six month shutdown at the Spring Creek mine to make safety improvements.
The Energy Data File 2012 reports on a calendar year basis, and for some data sets as far back as 1970. The 2012 edition contains data until the end of 2011.
More information is available at _URL_


text:
Scrabble word: HAWSER
In which Scrabble dictionary does HAWSER exist?
Definitions of HAWSER in dictionaries:
- noun - large heavy rope for nautical use
- A cable or rope used in mooring or towing a ship.
- noun - a mooring rope
There are 6 letters in HAWSER: A E H R S W
Scrabble words that can be created with an extra letter added to HAWSER
All anagrams that could be made from letters of word HAWSER plus a wildcard: HAWSER?
Scrabble words that can be created with letters from word HAWSER
6 letter words
5 letter words
4 letter words
3 letter words
2 letter words
Images for HAWSER
SCRABBLE is the registered trademark of Hasbro and J.W. Spear & Sons Limited. Our scrabble word finder and scrabble cheat word builder is not associated with the Scrabble brand - we merely provide help for players of the official Scrabble game. All intellectual property rights to the game are owned by respective owners in the U.S.A and Canada and the rest of the world. Anagrammer.com is not affiliated with Scrabble. This site is an educational tool and resource for Scrabble & Words With Friends players.


, text, and value properties. The index property returns the index position of that option in the options collection. The text property is what's displayed in the list, and the value property is the value defined for the option, which would be posted to the server if the form were submitted.
If you want to find out how many options are in a select element, you can use the length property of either the Select object itself or of its options collection property.
Let's see how you could loop through the options for the preceding select box:
var theDayElement = document.theForm.theDay;
document.write("There are " + theDayElement.length + "options
");
for (var index = 0; index < theDayElement.length; index++) {
document.write("Option text is " +
theDayElement.options[index].text);
document.write(" and its value is ");
document.write(theDayElement.options[index].value);
document.write("
");
}
First, you set the variable theDayElement to reference the Select object. Then you write the number of options to the page, in this case 7.
Next you use a for loop to loop through the options collection, displaying the text of each option, such as Monday, Tuesday, and so on, and its value, such as 0, 1, and so on. If you create a page based on this code, it must be placed after the <select/> element's definition.
It's also possible to add options to a select element after the page has finished loading. You look at how to do this next.
Adding and Removing Options
To add a new option to a select element, you simply create a new Option object using the new operator and then insert it into the options collection of the Select object at an empty index position.
When you create a new Option object, you have two parameters to pass. The first is the text you want to appear in the list, and the second is the value to be assigned to the option:
var myNewOption = new Option("TheText","TheValue");
You then simply assign this Option object to an empty array element. For example:
theDayElement.options[0] = myNewOption;
If you want to remove an option, you simply set that part of the options collection to null. For example, to remove the element you just inserted, you need the following:
theDayElement.options[0] = null;
When you remove an Option object from the options collection, the collection is reordered so that the array index value of each of the options above the removed one has its index value decremented by one.
When you insert a new option at a certain index position, be aware that it will overwrite any Option object that is already there.
TRY IT OUT Adding and Removing List Options
In this Try It Out, you use the list-of-days example you saw previously to demonstrate adding and removing list options.
<!DOCTYPE html>

<title>Chapter 11: Example 7</title>

<form action="" name="theForm">
<select name="theDay" size="5">
<option value="0" selected="selected">Monday</option>
<option value="1">Tuesday</option>
<option value="2">Wednesday</option>
<option value="3">Thursday</option>
<option value="4">Friday</option>
<option value="5">Saturday</option>
<option value="6">Sunday</option>
</select>

<input type="button" value="Remove Wednesday" name="btnRemoveWed" />
<input type="button" value="Add Wednesday" name="btnAddWed" />

</form>

Save this as ch11_example7.html. If you type the page in and load it into your browser, you should see the form shown in Figure 11.9. Click the Remove Wednesday button, and you'll see Wednesday disappear from the list. Add it back by clicking the Add Wednesday button. If you try to add a second Wednesday or remove a nonexistent Wednesday, you'll get a polite warning telling you that you can't do that.
images
Figure 11.9
Within the body of the page, you define a form with the name theForm. This contains the <select/> element, which includes day-of-the-week options that you have seen previously. The form also contains two buttons, as shown here:
<input type="button" value="Remove Wednesday" name="btnRemoveWed" />
<input type="button" value="Add Wednesday" name="btnAddWed" />
You want to execute JavaScript code when these buttons are clicked; therefore, you want to register click event listeners for each of the buttons. To make this a bit easier, you first create a variable called theForm, which contains the <form/> element object:
var theForm = document.theForm;
You use this variable to access the individual buttons and register their click event listeners:
theForm.btnRemoveWed.addEventListener("click", btnRemoveWedClick);
theForm.btnAddWed.addEventListener("click", btnAddWedClick);
The "remove" button executes the btnRemoveWedClick() function, and the "add" button executes btnAddWedClick(). You take a look at each of these functions in turn.
The first function, btnRemoveWedClick(), removes the Wednesday option:
function btnRemoveWedClick() {
var options = theForm.theDay.options;
if (options[2].text == "Wednesday") {
options[2] = null;
} else {
alert("There is no Wednesday here!");
}
}
The first thing you do in the function is create a variable that contains the collection of Option elements. This lets you repeatedly reference the option collection without typing document.theForm.theDay.options, or any variation thereof.
Next, a sanity check: You must try to remove the Wednesday option only if it's there in the first place! You make sure of this by seeing if the third option in the collection (with index 2 because arrays start at index 0) has the text "Wednesday". If it does, you can remove the Wednesday option by setting that particular option to null. If the third option in the array is not Wednesday, you alert the user to the fact that there is no Wednesday to remove. Although this code uses the text property in the ifstatement's condition, you could just as easily have used the value property; it makes no difference.
Next you come to the btnAddWedClick() function, which, as the name suggests, adds the Wednesday option. This is slightly more complex than the code required to remove an option. First, you create another variable, called options, to contain the collection of Option objects. Then, you use an if statement to check that there is not already a Wednesday option:
function btnAddWedClick() {
var options = theForm.theDay.options;
if (options[2].text != "Wednesday") {
var lastOption = new Option();
options[options.length] = lastOption;
for (var index = options.length - 1; index > 2; index––) {
var currentOption = options[index];
var previousOption = options[index - 1];
currentOption.text =


text:
Friday, October 15, 2010
The Invasive Species Council (ISC) conservation group is recommending urgent action to tackle the spread of invasive weeds throughout New South Wales. These actions include standardizing laws across the country and restricting plants coming into the state. This will help prevent long term loses of native plants. Click here to read more about invasive weed invasion.


text:
Structural Engineer Salary
Job Description for Structural Engineer
Structural engineers are individuals who design and create various forms of infrastructures that play a key role in the development of a community. Structural engineers work closely with the construction sector. For example, structural engineers can find employment with numerous organizations related to industrial construction and the building of bridges, buildings, pipelines, and mechanical structures. These companies include contractors, local authorizes, utility companies, central and federal government agencies, and automotive companies.Read More...
Some duties associated with structural engineering are performing required inspections on various structures and assisting in training other junior engineers and related employees to the project team. These engineers also develop construction documents, such as specifications and drawings. Structural engineers are also responsible for ensuring that construction projects meet environmental directives, health and safety requirements, and legal guidelines. Structural engineers may also provide technical advice to various organizations and make calculations regarding loads and stresses on infrastructures.
In order to become a structural engineer, employers may require applicants to have a minimum of a bachelor's degree in civil engineering or a master's degree in structural engineering. Employers may also ask for prospective applicants that have obtained at least two to five years of work-related experience or predetermined vocational skills that have been completed through an accredited employer.
Structural Engineer Tasks
- Researches and analyzes maps, blueprints, photos, charts, and other data to plan projects.
- Gathers information to prepare and present reports on project topics.
- Manages and directs staff at project site.
- Performs engineering duties; plan, design and oversee the construction and maintenance of buildings, bridges, and other structures.
Common Career Paths for Structural Engineer
Structural Engineers who transition into a Structural Principal Engineer role may receive large pay increases as the latter position pays an average $105K per year. A Senior Structural Engineer or a Roads and Bridges Structural Engineer is a typical transition from a Structural Engineer role.
Structural Engineer Job Listings
Search for more jobs:
Popular Employer Salaries for Structural Engineer
The Boeing Company, Aecom Corporation, Kpff Consulting Engineers, Inc., Jacobs Engineering Group Inc, and Aecom Technology Group, Inc. are leaders in the field that employ a large number of Structural Engineers. WorleyParsons offers the largest salaries in town ($82K on average), but the considerable range in workers' salaries creates a rather varied pay scale that stretches from $73K to $193K. Those in search of high salaries should also consider The Boeing Company, Jacobs Engineering Group Inc, and CH2M Hill, top-paying firms where Structural Engineers rake in a respectable $79K, $77K, or $76K, respectively.
SSOE, Inc. doles out the lowest salaries in town — median pay is $53K — not to mention workers can only make as much as $59K and scope of pay is rather limited. Others at the bottom of the scale for this job include DCI Engineers at $61K, and Kpff Consulting Engineers, Inc. where $63K is the norm, but it is worth noting that some Structural Engineers there earn up to $120K.
Popular Skills for Structural Engineer
Structural Engineers report using a large range of skills on the job. Most notably, skills in Project Management, ANSYS, Finite Element Analysis, and STAAD are correlated to pay that is above average, with boosts between 5 percent and 11 percent. Skills that are correlated to lower pay, on the other hand, include Autodesk Revit Structure and Autodesk Software. Most people experienced in Engineering Design also know Microsoft Office and AutoCAD.
Pay by Experience Level for Structural Engineer
Median of all compensation (including tips, bonus, and overtime) by years of experience.
Structural Engineers generally obtain higher compensation for more plentiful past experience. Relatively untried employees who have less than five years' experience make $61K, but folks with five to 10 years under their belts enjoy an appreciably larger median of $76K. Structural Engineers see a median salary of $88K after reaching one to two decades on the job. Seasoned veterans with 20 years under their belts enjoy a median income of $104K.
Pay Difference by Location
Houston is home to an above-average pay rate for Structural Engineers, 15 percent higher than the national average. Structural Engineers can also look forward to large paychecks in cities like Washington (+12 percent), Seattle (+12 percent), St. Louis (+11 percent), and San Francisco (+10 percent). Denver is home to the smallest salaries in the field, lagging the national average by 3 percent. Not at the bottom but still paying below the median are employers in Atlanta and Minneapolis (3 percent lower and 1 percent lower, respectively).
Structural Engineer Reviews
Related Job Salaries
Key Stats for Structural Engineer
Rated 5 out of 5
based on 471 votes.


[Table of Contents] [docx version]
WordprocessingML Reference Material - Table of Contents
result (Drop-Down List Selection)
This element specifies the zero-based index of the currently selected entry for the parent drop-down list form field.
If this element is omitted, then the current drop-down list form field shall have the selection specified by the value of the default element (§2.16.11). If the attribute value references an index value which does not exist (i.e. a negative number or a number that exceeds the number of items in the drop-down list), then this value may be ignored and the current drop-down list form field shall have the selection specified by the value of the default element.
[Example: Consider the following WordprocessingML fragment for a drop-down list form field:
<w:fldSimple w:instr="FORMDROPDOWN">
<w:ffData>
<w:ddList>
<w:default w:val="1" />
<w:result w:val="2" />
<w:listEntry w:val="One" />
<w:listEntry w:val="Two" />
<w:listEntry w:val="Three" />
</w:ddList>
</w:ffData>
</w:fldSimple>
The result element specifies the index of the currently selected value of the drop-down list form field to be 2. In this case, the resulting default value text is Three. end example]
Parent Elements
ddList2.16.9)

Attributes
Description
val (Decimal Number Value)
Specifies that the contents of this attribute will contain a decimal number.

The contents of this decimal number are interpreted based on the context of the parent XML element.

[Example: Consider the following numeric WordprocessingML property of type ST_DecimalNumber:

<w:… w:val="_PHONE_" />
The value of the val attribute is a decimal number whose value must be interpreted in the context of the parent element. end example]

The possible values for this attribute are defined by the ST_DecimalNumber simple type2.18.16).
The following XML Schema fragment defines the contents of this element:
<complexType name="CT_DecimalNumber">
 <attribute name="val" type="ST_DecimalNumber" use="required"/>
</complexType>


the mono-atomic simple cubic (sc) lattice constant predicted by the current model (shown in the unique color) compared with the predictions for all other models in the OpenKIM Repository that support the species. The vertical bars show the average and standard deviation (one sigma) bounds for all model predictions. Graphs are generated for each species supported by the model.
Species: Cr
Species: W
Species: Fe
Cubic Crystal Basic Properties Table
Species: Cr
Species: Fe
Species: W
Tests
Cohesive energy versus lattice constant curve for monoatomic cubic lattices v003
Creators: Daniel S. Karls
Contributor: karls
Publication Year: 2019
DOI: _URL_
This Test Driver uses LAMMPS to compute the cohesive energy of a given monoatomic cubic lattice (fcc, bcc, sc, or diamond) at a variety of lattice spacings. The lattice spacings range from a_min (=a_min_frac*a_0) to a_max (=a_max_frac*a_0) where a_0, a_min_frac, and a_max_frac are read from stdin (a_0 is typically approximately equal to the equilibrium lattice constant). The precise scaling and number of lattice spacings sampled between a_min and a_0 (a_0 and a_max) is specified by two additional parameters passed from stdin: N_lower and samplespacing_lower (N_upper and samplespacing_upper). Please see README.txt for further details.
Test Test Results Link to Test Results page Benchmark time
Usertime muliplied by the Whetstone Benchmark. This number can be used (approximately) to compare the performance of different models independently of the architecture on which the test was run.
Measured in Millions of Whetstone Instructions (MWI)
Cohesive energy versus lattice constant curve for bcc Cr v003 view 10524
Cohesive energy versus lattice constant curve for bcc Fe v003 view 11868
Cohesive energy versus lattice constant curve for bcc W v003 view 10204
Cohesive energy versus lattice constant curve for diamond Cr v003 view 10556
Cohesive energy versus lattice constant curve for diamond Fe v003 view 10684
Cohesive energy versus lattice constant curve for diamond W v003 view 10396
Cohesive energy versus lattice constant curve for fcc Cr v003 view 10364
Cohesive energy versus lattice constant curve for fcc Fe v003 view 10620
Cohesive energy versus lattice constant curve for fcc W v003 view 10588
Cohesive energy versus lattice constant curve for sc Cr v003 view 10492
Cohesive energy versus lattice constant curve for sc Fe v003 view 10620
Cohesive energy versus lattice constant curve for sc W v003 view 10268
Elastic constants for cubic crystals at zero temperature and pressure v006
Creators: Junhao Li and Ellad Tadmor
Contributor: tadmor
Publication Year: 2019
DOI: _URL_
Computes the cubic elastic constants for some common crystal types (fcc, bcc, sc, diamond) by calculating the hessian of the energy density with respect to strain. An estimate of the error associated with the numerical differentiation performed is reported.
Test Test Results Link to Test Results page Benchmark time
Usertime muliplied by the Whetstone Benchmark. This number can be used (approximately) to compare the performance of different models independently of the architecture on which the test was run.
Measured in Millions of Whetstone Instructions (MWI)
Elastic constants for bcc Cr at zero temperature v006 view 16986
Elastic constants for bcc Fe at zero temperature v006 view 10045
Elastic constants for bcc W at zero temperature v006 view 10204
Elastic constants for diamond Cr at zero temperature v001 view 54829
Elastic constants for diamond Fe at zero temperature v001 view 92960
Elastic constants for diamond W at zero temperature v001 view 144334
Elastic constants for fcc Cr at zero temperature v006 view 20505
Elastic constants for fcc Fe at zero temperature v006 view 20857
Elastic constants for fcc W at zero temperature v006 view 11964
Elastic constants for sc Cr at zero temperature v006 view 10268
Elastic constants for sc Fe at zero temperature v006 view 15579
Elastic constants for sc W at zero temperature v006 view 10364
Elastic constants for hexagonal crystals at zero temperature v004
Creators: Junhao Li
Contributor: jl2922
Publication Year: 2019
DOI: _URL_
Computes the elastic constants for hcp crystals by calculating the hessian of the energy density with respect to strain. An estimate of the error associated with the numerical differentiation performed is reported.
Test Test Results Link to Test Results page Benchmark time
Usertime muliplied by the Whetstone Benchmark. This number can be used (approximately) to compare the performance of different models independently of the architecture on which the test was run.
Measured in Millions of Whetstone Instructions (MWI)
Elastic constants for hcp Cr at zero temperature v004 view 8532
Elastic constants for hcp Fe at zero temperature v004 view 9965
Elastic constants for hcp W at zero temperature v004 view 9041
Relaxed energy as a function of tilt angle for a symmetric tilt grain boundary within a cubic crystal v002
Creators: Brandon Runnels
Contributor: brunnels
Publication Year: 2019
DOI: _URL_
Computes grain boundary energy for a range of tilt angles given a crystal structure, tilt axis, and material.
Test Test Results Link to Test Results page Benchmark time
Usertime muliplied by the Whetstone Benchmark. This number can be used (approximately) to compare the performance of different models independently of the architecture on which the test was run.
Measured in Millions of Whetstone Instructions (MWI)
Relaxed energy as a function of tilt angle for a 100 symmetric tilt grain boundary in bcc Fe v000 view _PHONE_
Relaxed energy as a function of tilt angle for a 110 symmetric tilt grain boundary in bcc Fe v000 view _PHONE_
Relaxed energy as a function of tilt angle for a 111 symmetric tilt grain boundary in bcc Fe v000 view _PHONE_
Relaxed energy as a function of tilt angle for a 112 symmetric tilt grain boundary in bcc Fe v000 view _PHONE_
Relaxed energy as a function of tilt angle for a 100 symmetric tilt grain boundary in fcc Fe v000 view _PHONE_
Relaxed energy as a function of tilt angle for a 110 symmetric tilt grain boundary in fcc Fe v000 view 71211430
Relaxed energy as a function of tilt angle for a 111 symmetric tilt grain boundary in fcc Fe v000 view 47021912
Relaxed energy as a function of tilt angle for a 112 symmetric tilt grain boundary in fcc Fe v000 view 151304789
Equilibrium lattice constant and cohesive energy of a cubic lattice at zero temperature and pressure v007
Creators: Daniel S. Karls and Junhao Li
Contributor: karls
Publication Year: 2019
DOI: _URL_
Equilibrium lattice constant and cohesive energy of a cubic lattice at zero temperature and pressure.
Test Test Results Link to Test Results page Benchmark time
Usertime muliplied by the Whetstone Benchmark. This number can be used (approximately) to compare the performance of different models independently of the architecture on which the test was run.
Measured in Millions of Whetstone Instructions (MWI)
Equilibrium zero-temperature lattice constant for bcc Cr v007 view 16250
Equilibrium zero-temperature lattice constant for bcc Fe v007 view 17530
Equilibrium zero-temperature lattice constant for bcc W v007 view 18170
Equilibrium zero-temperature lattice constant for diamond Cr v007 view 67369
Equilibrium zero-temperature lattice constant for diamond Fe v007 view 47088
Equilibrium zero-temperature lattice constant for diamond W v007 view 65194
Equilibrium zero-temperature lattice constant for fcc Cr v007 view 73543
Equilibrium zero-temperature lattice constant for fcc Fe v007 view 46192
Equilibrium zero-temperature lattice constant for fcc W v007 view 19865
Equilibrium zero-temperature lattice constant for sc Cr v007 view 23736
Equilibrium zero-temperature lattice constant for sc Fe v007 view 18650
Equilibrium zero-temperature lattice constant for sc W v007 view 17754
Equilibrium lattice constants for hexagonal bulk structures at zero temperature and pressure v005
Creators: Daniel S. Karls and Junhao Li
Contributor: karls
Publication Year: 2019
DOI: _URL_
Calculates lattice constant of hexagonal bulk structures at zero temperature and pressure by using simplex minimization to minimize the potential energy.
Test Test Results Link to Test Results page Benchmark time
Usertime muliplied by the Whetstone Benchmark. This number can be used (approximately) to compare the performance of different models independently of the architecture on which the test was run.
Measured in Millions of Whetstone Instructions (MWI)
Equilibrium lattice constants for hcp Cr v005 view 815097
Equilibrium lattice constants for hcp Fe v005 view _PHONE_
Equilibrium lattice constants for hcp W v005 view 267200
Linear thermal expansion coefficient of cubic crystal structures v001
Creators: Mingjian Wen
Contributor: Mwen
Publication Year: 2019
DOI: _URL_
This Test Driver uses LAMMPS to compute the linear thermal expansion coefficient at a finite temperature under a given pressure for a cubic


← Back to Upcase
What is OpenStruct used for?
(Scott Hollinshead) #1
I have come accross OpenStruct quite a lot recently as I venture into other peoples code on GitHub or watching a few conferences online.
Can somebody please explain what is is and why you use it?
I have seen Struct also, could someone explain what this is too and also what the difference between OpenStruct and Struct are ?
I saw this recently in a conference @benorenstein did last year at Rocky Mountain Ruby some of the code was this:
class DateRange < Struct.new(:start_date, :end_date)
end
class Order < OpenStruct
 def placed_between?(date_range)
 placed_at >= date_range.start_date &&
 place_at <= date_range.end_date
 end
end
Thanks
(Matthew Sumner) #2
So I believe they are both just convenient ways to bundle a bunch of attributes into a object. The difference between the two is in their initialization, a Struct takes position order arguments while OpenStruct will take a hash and derive attributes from it.
Both are used when a class is too heavy handed but you still need to represent something as an object. It seems like a good practice to use them to represent data over things like arrays of hashes because later on, when/if the code needs to change it is simple enough to swap out the structs for new, more complex objects.
(Geoff Harcourt) #3
@deviousduck is right. If you're building lots of small, non-ActiveRecord classes, and you find yourself setting up a objects where the #initialize method just sets the arguments to instance variables, and then you're referencing those same variables through attr_reader, your class might be a good candidate for a Struct. I often don't use it because by the time I realize I need it I've already done all that work, but it's a nice pattern for simple classes.


text:
"The Gendered Body in the Qing Courtroom," Journal of the History of Sexuality, 22: 2 (2013) [Special Issue: Sexuality in Imperial China], pp. 281-311.
This article presents a variety of court cases, including homicides and marriage disputes, from eighteenthand nineteenth-century China in which magistrates scrutinized bodies for evidence about gender performance. In order to judge these cases properly, magistrates needed to find out whether the persons under scrutiny were physically capable of normative gender roles or had violated the rules governing such roles; their judgments aimed to repair kinship networks and reinforce patriarchal hierarchies. These boundary-crossing "hard cases" help us understand the complex interweaving of bodily sex and social gender in the Qing: they provide insight into how magistrates (as well as midwives and others who gave evidence) would interpret the body in terms of what society demanded of it.


text:
The Chlorine-Ammonia Process was developed recently as a preoxidation process to minimize the formation of bromate during ozonation of the waters containing a significant bromide concentration. Chlorine is added first followed by ammonia 5–10 minutes later, with the goal of sequestering bromide in monobromamine during the subsequent ozonation step. The goal of this research was to improve the Chlorine-Ammonia Process by introducing a very short prechlorination step (i.e. 30 seconds before addition of ammonia) to minimize overall disinfection by-product formation. Also, in this strategy, formation of a powerful halogenating agent, HOBr, is minimized and bromochloramine (NHClBr) is used predominantly instead of monobromamine to sequester bromide during ozonation. To support this improved approach to bromide sequestration, this study examined the formation and decay of bromochloramine as a function of operating conditions, such as pH and Cl2:N ratio, and refined a chemical kinetic model to predict haloamine concentrations over time.
Keywords: bromide, bromochloramine, monochloramine, prechlorination


text:
Provided by: opensmtpd-extras_5.7.1-1build1_amd64
filter-pause — smtpd filter to pause on new connections
filter-pause [-s seconds]
filter-pause is a filter for smtpd(8) which can be used to pause on new connections before emitting the standard initial SMTP greeting. This is useful to avoid the so called "slamming" technique used by some senders of spam mails. The options are as follows: -s seconds Set the number of seconds to pause before sending the initial greeting. The accepted values are withing the range of 1s and 300s. The default seconds value is 5s. With filter-pause enabled, smtpd simply waits the specified amount of seconds on each new connection. If the remote server starts sending SMTP commands before the greeting, the connection is rejected. Otherwise, the connection is accepted and normally processed.
filter_api(3), smtpd.conf(5), smtpd(8)
J. Klensin, Simple Mail Transfer Protocol, RFC 5321, October 2008.
The first version of filter-pause was written in 2015.
Joerg Jung <_EMAIL_>


Skip to definition.
Noun: yawl yol
 1. A ship's small boat (usually rowed by 4 or 6 oars)
 - dandy
Verb: yawl yol
 1. Emit long loud cries
 "yawl with sorrow";
 - howl, ululate, wail, roar, yaup
Sounds like: yacks, yawl
Derived forms: yawled, yawling, yawls
Type of: call, cry, holler, hollo [non-standard], sailing ship, sailing vessel, scream, shout, shout out, small boat, squall, yell
Encyclopedia: Yawl


text:
This study identifies relatively low-cost, quick-implementation measures that can significantly improve pedestrian and bicyclist access at six locations in the Massachusetts Bay Transportation Authority system: Ayer Station (commuter rail); Boston College Branch (B Line) stops, Boston College Station to Chestnut Hill Avenue (Green Line); Cleveland Circle and Reservoir stops (Green Line, C and D); Forest Hills Station (Orange Line, commuter rail, and bus); Malden Center Station (Orange Line, commuter rail, and bus); and Mansfield Station (commuter rail and bus). Detailed in the report are improvements to both station property and surrounding areas that would eliminate hazards for bicyclists and pedestrians, increase ease of access to the station from surrounding neighborhoods for those users, or otherwise enhance the attractiveness of the station for access by foot or bicycle. The report also includes a summary that describes the types of issues encountered and provides general recommendations for improving pedestrian and bicyclist access to other transit stations in the region.
Click here to download this report (7.7 MB).
Due to the size of this document, it can be downloaded in sections:


text:
Reset a Mailman Password
For WHM version 11.30
This feature allows you to reset the main password for any mailing lists associated with your server, including the password for the Mailman mailing list software. You can reset the password without knowing the old password. This can be useful if, for example, the password has been lost or compromised.
To reset a Mailman password:
- From the Mailman Account Lists box, select the mailing list whose password you would like to change.
- The password called mailman is set up by the Mailman system. It is only for internal use by the Mailman application; however, if you are having problems with mailing lists on your server, you should reset this password.
- Enter the desired password into the New Password field.
- Remember to use a secure password.
- If you would like WHM to generate a secure password for you, click the Generate Password button.
- Confirm the password in the Password (Again) field.
- Click Change Password.
Topic revision: r3 - 01 Dec 2009 - 18:07:04 - MelanieSeibert