POCUS to Diagnosis Gastric Content
Gastric byte
Diagnostic Accuracy of Point-of-Care Gastric Ultrasound
Anesthesia and Analgesia April 2018 - Pubmed Link
Take Home Points
1. Gastric POCUS appears highly accurate in determining full stomach in healthy volunteers.
2. Unclear how well this translates into determining aspiration risk in other patients.
Background
Ultrasound the stomach?! Why? That is certainly a reasonable question to ask before moving forward. The reason is that sometimes, unlike Las Vegas, what happens in the stomach does not stay in there. It can, on occasion, be regurgitated onto your shoes, your face, or - of most concern to the patient, into the airway. Having a full stomach increases the chance that there is going to be aspiration during anesthesia. Therefore, it has been posited in the past that a gastric ultrasound could help indicate the risk for aspiration during airway control. Why can't you just count on patient's being NPO? Three reasons 1) Sometimes its an emergency 2) Sometimes stomachs are full despite fasting and 3) Sometimes patients lie. This has particular relevance to anesthesiologists, but also can apply to anyone who does procedural sedation or intubation procedures.
Question
Can point of care gastric ultrasound accurately identify or rule out a full stomach in healthy volunteers?
Population
Authors from Canada
Healthy volunteers recruited
Inclusion:
 - 18-85 years old
 - ASA physical status I-II (normal or mild systemic disease)
 - Height > 145 cm
 - Ability to understand study protocol
Exclusion:
 - Pregnancy
 - Gastric or lower esophageal surgery
 - Known abnormalities in upper GI tract (hiatal hernias, gastric tumors)
 - Diabetes
 - Renal or hepatic impairment
 - Neurologic disorders
Design
Prospective, randomized, single blinded study
Intervention
Study subjects fasted for at least 8 hours (no solids or liquids)
US performed to confirm empty stomach at baseline
Randomized into 2 groups
 Group 1: remained fasted
 Group 2: ingested either 250 mL apple juice or solid meal (muffin + coffee with cream)
3 minutes after ingestion, index gastric ultrasound performed
Content identified as one of 3 categories:
 - Nothing
 - Clear fluid
 - Solid
After 24 hours, same people randomized a second time into one of the 2 groups
Process repeated
Who did the ultrasounds?
Staff anesthesiologist with >100 gastric examinations, blinded to group allocation
The Scan
Low frequency curvilinear transducer, abdominal settings
Curvi
Standardized protocol in supine and right lateral decubitus
Step 1: Transducer in epigastrium in sagittal plane. Transverse view of antrum identified between liver (anteriorly) and pancreas and aorta (posteriorly). Repeat in right lateral decubitus.
 - Empty = antrum collapsed, no content seen
 - Clear fluid = hypoechoic/anechoic homogenous content
 - Solid = hyperechoic or mixed echogenicity
Step 2: If clear fluid visualized, patient placed in right lateral decubitus and a cross-sectional area of the gastric antrum was measured (at the level of the aorta) to estimate the volume.
 - Volume = 27 + 14.6 x CSA - 1.28 x age (this was validated by endoscopically guided gastric suctioning)
 - Fun idea: Try having a friend drink an unknown quantity of liquid. Measure the stomach to see how accurate this equation is
Key Point:
Considered positive for full stomach if A) Solid content or B) >1.5 mL/kg of clear fluid
Considered inconclusive if could not image gastric antrum in both uspine and RLD positions or if there was uncertainty.
GastricUltrasound.org - Everything you wanted to know and more
Ultrasound Podcast on Gastric ultrasound Part 1 and Part 2
Results
The Patients
Screened 42 but 2 of them found to have full stomach at baseline
N = 40 → 80 sessions
 - 19 males
 - Mean age 37
 - Mean weight 69 kg
 - Mean height 168 cm
 - Mean BMI 24 kg/m2
Primary Outcomes
Accuracy of POCUS for diagnosis full stomach:
Sensitivity 100% (CI 0.925-1)
Specificity 97.5% (CI 0.95-1)
+LR 40
-LR 0
All patients who ingested solids were true positives (14.3% only had high volume of fluid, no solid matter identified)
All patients who ingested juice were true positives (94.7% of patients had high volume of fluid, a single patient was thought to have solid content)
There was only one incorrect exam - this was a false positive (fasting patient called as full stomach).
There were no inconclusive studies.
No adverse events.
Limitations
Healthy, really healthy volunteers - couldn't even have diabetes or a hiatal hernia. Couldn't even be short! May not represent your population. We don't know how well this would work in any sick population or a population with potentially impaired gastric motility.
The sonographic appearance may be different with different amounts of food. In this study, just a single muffin with coffee was examined. What if eating a steak doesn't show up as well?
Each individuals used more than once. Really this is still only 40 unique patients, just reproducing it a second time.
Discussion
Authors note some important aspects of gastric ultrasound. Air in the antrum can cause an artifact seen at anterior wall that could resemble solid material. Need to measure the antral area in the right lateral decubitus. Measuring of the antrum should be between peristaltic contractions and include the full thickness of the gastric wall.
So if we accept that ultrasound can accurately predict if the stomach is filled, the next question to ask yourself is if this will change anything. What do you do with the knowledge that the stomach is full? If pre-op, delay case? If emergent, place NG? Authors suggest only changing management if pre-test uncertainty.
Take Home Points
1. Gastric POCUS appears highly accurate in determining full stomach in healthy volunteers.
2. Unclear how well this translates into determining aspiration risk in other patients.
Our score
3 Probes
Cite this post as
Michael Prats, MD. POCUS to Diagnosis Gastric Content. Ultrasound G.E.L. Podcast Blog. Published on May 07, 2018. Accessed on March 31, 2020. Available at _URL_
Published on 05/07/18 06:00 AM
comments (5)
By Anonymous on 05/07/18 05:29 PM
Great synopsis -many thanks. On reading around, one issue is that no-one quite agrees on what ml/kg number constitutes signficant contents.....1.5ml/kg is only one of the many cutoffs.
By Anonymous on 05/08/18 02:33 PM
Why was the one fasting patient called a false positive for a full stomach? Doesn't this actually tell us that for whatever reason they had delayed gastric emptying?
By Mike Prats on 05/10/18 08:58 AM
Thanks for the comments. Regarding the first comment - I agree that there needs to be a consensus about the correct gastric volume that constitutes a significant risk of aspiration. It would be hard to perform this study because we would need to follow subjects with varying gastric volumes to see if there is difference in aspiration events. It is important to figure this out because there may be different accuracy of ultrasound depending on the volume you choose. However, the alternative, and what this group has done, is to just pick a volume and see how that works when you use it. To the second comment - another great point! The problem is that we don't know if the ultrasound was positive because there was significant content in the stomach or if there was some other reason that made it positive. This study was attempting to determine the accuracy of ultrasound as a diagnostic modality, therefore - we can't assume on the basis of our intuition, that if the ultrasound visualizes content, it represents a full stomach. The reason that this was called a false positive is because the patient had no content visualized at their baseline ultrasound (before the randomization to fasting or ingestion), but afterwards, had some content visualized.
By Anonymous on 05/14/18 12:34 AM
forget juice......needs to be redone with 1-fasting, 2-beer, 3-pizza and beer...sorry i couldn't resist AND was it really juice?? I imagine the healthy volunteers might have included residents..
By Mike Prats on 05/14/18 08:20 AM
Good point - probably could redo the study many times to assess for different patient populations and their choice combinations of stomach contents!


text:
Child care is a significant concern for many parents, especially in families where both parents work. You can find a variety of childcare options and facilities in Singapore, and while citizens are eligible for a certain amount of subsidisation in health care as well as child care, foreigners and expats usually need to pay full fees for all types of child care services. Let's get an overview of how child care works in Singapore.
Care for New-Borns
Childbirth is a life changing event for the parents, and as such, many parents, especially new parents, opt for a confinement nanny to help during the first few months of child birth. The first few weeks after birth involve a strict regimentation both for the mum as well as baby. This includes a healthy and nourishing diet for the mum, enough rest for both, and a host of other dos and don'ts.The mother not only has to deal with this sudden change in routine, but also with drastic physical and emotional changes. Having help from a qualified nanny or helper during this demanding period can be a boon, especially for those who do not have a local family support network.
A confinement nanny is primarily a childcare worker, but helps with a variety of tasks, from caring for the baby, for the mother, cooking healthy and nutritious food, as well as undertaking daily household chores. It is relatively common among new parents, especially within the expat community in Singapore, to hire a confinement nanny after child birth. As such, you can find a number of agencies that can supply qualified and experienced nannies.
Child Care Centres
With the increasing number of working couples, child care is a booming business opportunity in Singapore. As such, there are numerous licensed child care centres to choose from. Only child care centres or facilities approved and licensed by the Ministry of Social and Family Development are allowed to operate within the country.
To be licensed the enterprise must meet the prescribed standards of safety, hygiene, health, physical environment, nutrition, programme and curriculum, staff training, and administration.
Infant and Toddler Care
Child care centres cater to children up to the age of kindergarten or nursery. If you are looking for child care for your baby or toddler, it is important to find a centre that is specially qualified to care for very young children. There are special child care centres that specialise in, or have the option of toddler and infant care for children from 2 to 18 months of age.
These facilities are required to possess well trained infant care staff, as well as the Fundamentals Certificate in Early Childhood Care and Education or the Certificate in infant/toddler Care. Infant care staff must also have a valid first aid certificate.
Another important fact for parents to be aware of is that the maximum officially allowed staff to infant/toddler ratio for these child care centres is no more than 1 to 5. Any centre operating outside these norms or without certification is of course best avoided.
Child Care Centre Fees
Child care centres are private enterprises, and as such there is no regulation on how much they can charge customers. However, the government does require child care centres to give parents a notice of three months for any revision in fees.
Most centres offer a full day care service, a half day service, or an hourly service. Additionally some centres also offer after school care services. Prices can vary quite widely from one centre to the next, depending on where it is located, the type of service, etc.; the best way to find the centre that suits your lifestyle and budget is to shop around a bit before registering at a particular centre.
Also, how much you actually pay will depend on the amount of government subsidy you may be eligible to receive.
Child care centres apply for subsidies on behalf of parents. You are required to disclose all relevant details about you and your spouse to the centre while registering and provide certain documents for the application for subsidies. These include your child's birth certificate, and proof of citizenship if applicable.
You can find more information about licensed child care services, eligibility criteria for government subsidies for child care, and much more at the official MSF child care website.

source: m-a-p/FineFineWeb


text:
Birds were likely the ancestral hosts of hepatitis B virus and the human disease emerged after a bird-mammal host switch reports a paper published in Nature Communications this week. Up to now the origin of this virus had remained elusive due to the small number of integrated sequences present in hosts' genomes.
The field of paleovirology allows for the identification of genomic relics that arise as a consequence of insertion of virus derived DNA in the host's genome after infection. Alexander Suh and colleagues take advantage of presence or absence patterns of these viruses' relics among closely and less closely related species of birds to construct a time map of hepatitis infiltrations in the lineage. They find a complete gene sequence of one of these viruses - a Mesozoic paleovirus - and estimate that hepatitis is about 63 million years older than previously known. This provides direct evidence for the existence of Hepadnaviridae during the Upper Cretaceous. They also hypothesise that a predecessor of Hepadnaviridae probably infected an ancestor of birds that lived around 324 million years ago and show that the compact genomic organisation of Hepadnaviridae has remained largely unchanged for the last million years of evolution.
Hepatitis B is a major global health problem with a third of the human population infected and this study brings one step closer to understand its evolution.

source: openbmb/Ultra-FineWeb


text:
A theoretical technique developed at DOE's Oak Ridge National Laboratory is bringing supercomputer simulations and experimental results closer together by identifying common "fingerprints."
ORNL's Jeremy Smith collaborated on devising a method dynamical fingerprints that reconciles the different signals between experiments and computer simulations to strengthen analyses of molecules in motion.
"Experiments tend to produce relatively simple and smooth-looking signals, as they only'see' a molecule's motions at low resolution," said Smith, who directs ORNL's Center for Molecular Biophysics and holds a Governor's Chair at the University of Tennessee. "In contrast, data from a supercomputer simulation are complex and difficult to analyze, as the atoms move around in the simulation in a multitude of jumps, wiggles and jiggles. How to reconcile these different views of the same phenomenon has been a long-standing problem."
The new method solves the problem by calculating peaks within the simulated and experimental data, creating distinct "dynamical fingerprints." The technique can then link the two datasets.
Explore further: 'Fingerprints' match molecular simulations with reality


Click here to Skip to main content
11,928,569 members (55,321 online)
Click here to Skip to main content
Add your own
alternative version
146 bookmarked
Logician: A Table-based Rules Engine Suite in C++/.NET/JavaScript using XML
, 7 Apr 2013 GPL3
Rate this:
Please Sign up or sign in to vote.
Overview of a cross-platform spreadsheet-based rules enigne with algorithms implemented in C++ and JavaScript, and wrappers to C#/.NET/WinRT/Silverlight, Flash, and Mobile platforms(via PhoneGap).
Application logic, particularly business rules, can be messy and time consuming to maintain in code. If all your application logic is hard-coded, it can eventually lead to massive if-then-else or select-case code segments that could grow into huge nightmares. Developers have more important problems to solve and things to do than to maintain a mountain of string compares, boolean tests, or Stored Procedures. There have been numerous attempts at rules engines (a.k.a. "inference engines"), but many of them require the writing of even more cryptic looking code that is hard, if not impossible, for non-developers to maintain. De-coupling business logic from an application certainly makes for more robust and maintainable code, and provides you the ability to let non-developer subject matter experts maintain the data and rules model, provided it is logical and easy to understand. Of course, you can always link parts of your application data to a database, but that still requires a lot of developer work to define the data model and queries needed for every unique "rule-driven" event in your application, not to mention the possibility of database performance bottlenecks in a networked or limited resource environment. A table-based rules engine can be a very powerful and flexible solution for your application logic and automation needs. In a web environment, the Logician JavaScript libraries can also offload a lot of server CPU onto the user's browser and eliminate lagging server callbacks.
Decision Tables
A Decision Table, or "Truth Table" as a mathematician or electrical/computer engineer might call it, is simply a spreadsheet defining the possible solutions to a problem given a set of input conditions. For example, suppose we are mixing paint, and I show you the following spreadsheet:
PaintColor1 PaintColor2 ResultColor
Red Blue Purple
Red Yellow Orange
Blue Yellow Green
Without writing a single line of code, or even offering any more background information about the problem, the meaning of the data is clear. Programmatically, we can think of this as a series of if-then-else statements reading left to right, top to bottom:
if (PaintColor1 == "Red" && PaintColor2 == "Blue")
 ResultColor == "Purple"
else if (PaintColor1 == "Red" && PaintColor2 == "Yellow")
 ResultColor = "Orange"
Or in SQL:
SELECT ResultColor WHERE PaintColor1 = _USER_ AND PaintColor2 = _USER_
Any one of these three solutions gets the job done, but the first is certainly easier to comprehend for non-developers and is the way a lot of practical engineering and/or business data is maintained in the real world. Using a database to drive the rule certainly de-couples the logic from your source code to some extent, but in a web environment, you will have to use server callbacks or Web Services to retrieve the data, slowing the application down. What if the logic needs to change, and we start mixing three colors of paint? For the database, you might have to go back and change the database table schema and your Select statement/Stored Procedures. If you had a few hundred combinations of colors and then added a third input parameter to the hard coding method, you are in for a whole lot of monotonous error-prone coding. If you had gone with the decision table, you likely would have very little work to do, other than to copy the new rules XML file (that a non-developer/subject matter expert likely edited for you) with the added third input to your website or application. In this tutorial, I'll show you how to use the Open Source Logician Suite to accomplish this task. With the Logician package, you get three basic components, a decision table evaluator library, a decision table editor, and a dynamic data/class modeler and rules engine library.
Decision Table Engine Background
As stated before, the table rules read sequentially; for a given series of inputs, the output(s) are determined. In the example above, they work top to bottom, left to right. The decision table evaluator (EDSEngine library) creates a truth table given the information supplied to it by your code and the stored XML rule data. By itself it is stateless, but it is easy to determine and supply the necessary variables. The basic steps that occur are:
 1. Code determines it needs to evaluate a table, asks EDSEngine what input values from the current application "state" it needs.
 2. EDSEngine loads the table and returns the list of inputs in the table.
 3. Code provides the corresponding list of current values for those inputs.
 4. EDSEngine evaluates the decision table and returns results.
You should be able to automate steps 1-3 in your code, depending on how you design your data model. Something as simple as this might work:
map mAppData; //application state as attribute-value pairs
CKnowledgeBase m_TableEvaluator;
//...application stuff, you loaded the rules file, etc
string GetResultingColor()
 return GetSingleSolution("ColorMixingTable", "ResultColor");
string GetSingleSolution(string tableToEvaluate, string nameOfOutput)
//could reuse this function for all similar aplication events
 vector inputsNeeded = m_TableEvaluator.GetInputDependencies(tableToEvaluate);
 //from our application data, obtain the values
 for (int i = 0; i < inputsNeeded.size(); i++)
 m_TableEvaluator.SetInputValue(inputsNeeded[i], mAppData[inputsNeeded[i]]);
 vector results = m_TableEvaluator.EvaluateTable(tableToEvaluate, nameOfOutput);
 //EDSEngine supports returning multiple true results on a sigle line,
 // but in this case we expect just a single result (the first one it finds)
 if (results.size() > 0)
 return results[0];
 return "";
See the source code for this example in the ColorMixConsole application. Rule tables are stored as XML, and when "compiled" by the DecisionLogic table editor utility, linked together in a single XML file. All the values stored within the rules engine are natively strings since they get serialized to XML. In order to optimize performance, string compares are avoided when possible by numerically tokenizing all the stored values in the rules table and any input values passed in. That way, it is just comparing numbers most of the time. So in memory, the previous paint color table looks more like:
PaintColor1 PaintColor2 ResultColor
0 1 3
0 2 4
1 2 5
Suppose we pass "Blue" and "Yellow" to the previous paint table. The values for PaintColor1 and PaintColor2 that we are testing are likewise assigned 1 (Blue) and 2 (Yellow). You can also perform the following boolean operations on an input value, and de-tokenization will occur:
 - > : greater-than, alpha or numerical
 - < : less-than, alpha or numerical
 -!= or <> : not-equal to
 - [x,y] : range of values, inclusive ends
 - (x,y) : range of values, exclusive ends
You can mix [] and (). = is not used explicitly, this is the default behavior for a rule cell and does not require the string to be de-tokenized.
At run-time, once you pass in the input values for the table, it is broken down sequentially into a series of boolean cells, where the value of each cell is either true or false. Any input cell that you leave blank is always considered true. So if we passed the values PaintColor1 = "Blue" and PaintColor2 = "Yellow", our previous decision table looks a lot like a logical AND gate:
PaintColor1 PaintColor2 ResultColor
F F F
F T F
T T T <==This is our solution, corresponding
 to the tokenized memory value of 5,
 whose string value is "Green"
Other EDSEngine Features of Note
You can specify more than one value in an input cell, this is called an "OR", and the test will check them against the input value just like an "or" in code: if (value1 = test || value2 = test || value3 = test ) then do something... is abbreviated as value1|value2|value3 in a cell. There is also a notion of "Global ORs" if you design the rules XML using the table designer tool, DecisionLogic. Listing many values out can be a lot of extra typing, so you can define a single list of values as a variable and reuse that variable in all your project tables. In an output cell, the "|" delimiter acts like an "and" (&&). In this way, your solution can return multiple values. The results of a table evaluation are always returned as an array (vector in C++). There is also the notion of a table being "Get One"


text:
etd AT Indian Institute of Science >
Division of Earth and Environmental Sciences >
Civil Engineering (civil) >
Please use this identifier to cite or link to this item:
|Title: ||Stabilised Rammed Earth For Walls : Materials, Compressive Strength And Elastic Properties|
|Authors: ||Kumar, Prasanna P|
|Advisors: ||Reddy, B V Venkatarama|
|Keywords: ||Structural Analysis (Civil Engineering)|
Cement Stabilised Rammed Earth
Rammed Earth Buildings
Cement Stabilised Rammed Earth Walls
Rammed Earth - Strength
Rammed Earth - Elastic Properties
Soil - Stability
Stabilised Rammed Earth
|Submitted Date: ||Jul-2009|
|Series/Report no.: ||G23519|
|Abstract: ||Rammed earth is a technique of forming in-situ structural wall elements using rigid formwork. Advantages of rammed earth walls include flexibility in plan form, scope for adjusting strength and wall thickness, variety of textural finishes, lower embodied carbon and energy, etc. There is a growing interest in the construction of rammed earth buildings in the recent past. Well focused comprehensive studies in understanding the structural performance of rammed earth structures are scanty. Clear-cut guidelines on selecting soil grading and soil characteristics, assessing strength of rammed earth walls, density strength relationships, limits on shrinkage, standardised testing procedures, behaviour of rammed earth walls under in-plane and out of plane loads, etc are the areas needing attention. The thesis attempts to address some of these aspects of cement stabilized rammed earth for structural walls.
Brief history and developments in rammed earth construction with illustrations of rammed earth buildings are presented. A review of the literature on rammed earth has been provided under two categories: (a) Unstabilised or pure rammed earth and (b) stabilised rammed earth. Review of the existing codes of practice on rammed earth has also been included. Summary of the literature on rammed earth along with points requiring attention for further R&D are discussed. Objectives and scope of the thesis are listed.
The thesis deals with an extensive experimentation on cement stabilised rammed earth (CSRE) specimens and walls. Four varieties of specimens (cylindrical, prisms, wallettes and full scale walls) were used in the experiments. A natural soil and its reconstituted variants were used in the experimental work. Details of the experimental programme, characteristics of raw materials used in the experimental investigations, methods of preparing different types of specimens and their testing procedures are discussed in detail.
Influence of soil grading, cement content, moulding water content, density and delayed compaction on compaction characteristics and strength of cement stabilised soil mixes were examined. Five different soil gradings with clay content ranging between 9 and 31.6% and three cement contents (5%, 8% and 12%) were considered. Effect of delayed compaction (time lag) on compaction characteristics and compressive strength of cement stabilised soils was examined by monitoring the results up to 10 hours of time lag. Influence of moulding water content and density on compressive strength and water absorption of cement stabilised soils was examined considering for a range of densities and water contents. The results indicate that (a) there is a considerable difference between dry and wet compressive strength of CSRE prisms, and the strength decreases as the moisture content at the time of testing increases, (b) wet strength is less than that of dry strength and the ratio between wet to dry strength depends upon the clay fraction of soil mix and cement content, (c) saturated moisture content depends upon the cement content and the clay content of the soil mix, (d) optimum clay percentage yielding maximum compressive strength is about 16%, (e) compressive strength of compacted cement stabilised soil increases with increase in density irrespective of cement content and moulding moisture content, and the strength increases by 300% for 20% increase in density from 15.70 kN/m3, (f) compressive strength of rammed earth is one - third higher than that of rammed earth brick masonry and (g) density decreases with increase in time lag and there is 50% decrease in strength with 10 hour time lag.
Stress-strain relationships and elastic properties of cement stabilised rammed earth are essential for the analysis of CSRE structural elements and understanding the structural behaviour of CSRE walls. Influence of soil composition, density, cement content and moisture on stress-strain relationships of CSRE was studied. Three different densities (15.7 – 19.62 kN/m3) and three cement percentages (5%, 8% and 12% by weight) were considered for CSRE. Stress-strain characteristics of CSRE and rammed earth brick masonry were compared. The results reveal that (a) in dry condition the post peak response shows considerable deformation (strain hardening type behaviour) beyond the peak stress and ultimate strain values at failure (dry state) are as high as 3.5%, which is unusual for brittle materials, (b) modulus for CSRE increases with increase in density as well as cement content and there is 1 to 3 times increase as the cement content changes from 5% to 12%. Similarly the modulus increases by 2.5 to 5 times as the dry density increases from 15.7 to 19.62 kN/m3 and (c) the modulus of CSRE and masonry in dry state are nearly equal, whereas in wet state masonry has 20% less modulus.
Compressive strength and behavior of storey height CSRE walls subjected to concentric compression was studied. The results of the wall strength were compared with those of wallette and prism strengths. The wall strength decreases with increase in slenderness ratio. There is nearly 30% reduction in strength as the height to thickness ratio increases from 4.65 to 19.74. It was attempted to calculate the ultimate compressive strength of CSRE walls using the tangent modulus theory. At higher slenderness ratios, there is a close agreement between the experimental and predicted values. The storey height walls show lateral deflections as the load approaches failure. The walls did not show visible buckling and the shear failure patterns indicate material failure. The shear failures noticed in the storey height walls resemble the shear failures of short height wallette specimens.
The thesis ends with a summary of the results with concluding remarks in the last chapter.|
|Appears in Collections:||Civil Engineering (civil)|
Items in etd@IISc are protected by copyright, with all rights reserved, unless otherwise indicated.

source: HuggingFaceFW/fineweb-edu


text:
On April 6, 2010, Jack O'Connell held a press conference to announce that California faced a teacher shortage. The state's superintendent of public instruction cited anticipated retirements over the next ten years, teacher attrition through layoffs, and a break in the supply line from teacher preparation universities as major factors in creating a critical shortage of teachers in the state. After a lull in the past five years, student enrollment in California is predicted to grow, creating a mismatch between supply and demand for teachers.
However, most of the attention in California was drawn not to a potential shortage of teachers, but rather to threats to school funding and potential layoffs of teachers due to the state's budget crisis. During a specific moment of crisis, a politicization of teacher shortages, current or projected (some would say imagined), can cause one to overlook what might be a real issue.
Certainly, this was the case the last time teacher shortages were predicted. In the previous two decades, school districts were able to address increased enrollment and predictions of teacher shortages by tapping into an increased supply of new teachers from universities. While there were genuine shortages of teachers in some places, they tended to exist in certain rural and urban situations. And of course, the supply of good math, science and special education teachers has been tight for a while.
Steady Teacher Attrition
But let's go back and look at the claims made by California's schools chief to see if there really might be a teacher shortage on the horizon in this bellwether state. Events in California are often a harbinger for things to come elsewhere.
O'Connell cited a report from the nonprofit Center for the Future of Teaching and Learning (CFTL). As California struggles to provide a robust student and teacher data collection and reporting system, groups like the CFTL provide data that point to trends in the state. The CFTL teamed with the California State University and University of California to prepare a report, California's Teaching Force 2010: Key Issues and Trends. The report cites some facts that point to a looming teacher shortage:
- In 2009-2010, 32 percent of the workforce was over fifty years of age, placing about a third of teachers on track for retirement in the next ten years.
- The number of new teachers hired has dropped 50 percent in the past two years.
- The number of enrollees in teacher preparation colleges dropped from 75,000 to 45,000 from 2001-2002 to 2007-2008.
- The number of teaching credentials issued declined by 35 percent since 2004.
In addition, the report notes that whereas student enrollment had decreased in recent years, it is projected to grow by more than 230,000 by 2018-2019.
What is not emphasized, but should be highlighted here, is that there has been a steady attrition of teachers in the state. Many teachers have left the profession after being laid off during the fiscal crisis—26,000 as of April 2010. It's estimated that 40 percent of teachers provided with statutorily required layoff notices in the spring of 2010 in California did not get their jobs back by the first day of the new school year. Others have left the profession because of dissatisfaction with teaching in general, reduced compensation due to salary reductions or furlough days, or a decrease in monetary support for supplies and textbooks.
Attrition Rates across the Nation
In the past, it is teacher attrition that has pushed a teacher shortage from theoretical to real, as new teachers from the supply pipeline have always been sufficient to replace retiring teachers. School districts could also draw from a reserve pool of teachers to plug gaps. This reserve pool traditionally has consisted of teachers who have left the profession, to raise families in some cases, or who obtained teaching credentials but did not seek positions right away. It is estimated that roughly 50 percent of newly qualified teachers do not enter the profession upon graduation. This reserve pool has been depleted, not augmented, by layoffs as, it is argued, teachers give up on the profession as a result of the harrowing nature of layoffs and a sense of abandonment by the education establishment.
The report concludes that this is a tough time for California's teachers, characterized by increased demands for improvements to achievement for all students (a reasonable demand, of course) and reduced resources and instability caused by the fiscal crisis that grips the state. It is no wonder that teaching is a less than attractive profession for new college graduates.
The National Center for Educational Statistics, a federal body that reports to Congress, showed the Digest of Educational Statistics for 2010 that the total number of K12 teachers nationwide increased by 12 percent from 1999 to 2009, easily meeting the demands of increased enrollment over that time. The overall national pupil-teacher ratio declined from 16.1:1 to 15.3:1 during that same period. At a glance, it would seem that there was no teacher shortage, at least until 2009.
A 2007 policy brief from the National Commission on Teaching and America's Future noted that teacher attrition tends to tip the supply equation into deficit. Of course, it would seem that the teaching ranks have been diminished since 2009 by the economic downturn and resultant layoffs, even with the last federal stimulus to schools. In May 2010, the Obama administration estimated that 100,000 teachers would lose their jobs nationwide, and the federal stimulus to schools was implemented to negate this threat. Once this federal money dissipates by the end of 2012, it is expected that more teachers will lose their jobs if the economy fails to ignite.
The extent of this anecdotal decline is not yet showing up in the data. The most recent Schools and Staffing Survey (SASS) by NCES was in 2007-2008 and predated the full impact of the economic crisis. The Teacher Follow-up Survey usually follows SASS by one year and seeks to provide information about teacher mobility and attrition in grades K-12. The most recent survey, in 2008-2009, shows that 8 percent of public school teachers left the profession. (By comparison, the attrition rate was 6.6 percent in the mid-1990s.) Among public school teachers with one to three years of experience, the rate in 2008-2009 was 9.1 percent.
The retirement rate has remained steady at about 2 percent of teachers since the 1960s. It would seem that schools have been able to manage a 10 percent attrition rate (8 percent leavers and 2 percent retirees) by tapping into the supply provided by universities and the reserve labor pool of former teachers. But the rate of attrition seems to be trending higher, and we have yet to see the impact of the financial downturn in the numbers.
Perhaps the warning from California that the supply line of new teachers is disrupted may be worth a closer look. It might not be as easy as it has been in the past to churn out new teachers from the universities, as higher education too has been hit by the financial downturn. It is also important to note that the NCES predicts record student enrollment every year until at least 2018.
It would seem that school districts should at least position themselves for a potential shortage once the economy starts to improve. It is time to rebuild relationships with universities in order to attract student teachers and interns. It would be wise to harness the full power of the Internet, perhaps including social networks, to reach out to the newest generation of potential teachers. Most importantly, it is prudent to retain the teachers you have by providing support and mentorship during these challenging times. This will have a positive impact on student learning and will shave costs in staff development overall as schools keep well-trained and highly qualified teachers in the classroom.
Eamonn O'Donovan is a former principal and currently serves as an assistant superintendent of human resources in Southern California.


Tara. The most popular river in Montenegro
Tara's character is turbulent: it flows between high rocks and impregnable mountain slopes, and only being closer to the confluence with Piva becomes calm and slow. The bottom of the river is pebbly, without silt, vegetation and algae, and the color of the water changes from emerald greenish to foamy white.
Facts about Tara
The Tara River flows through the northern part of Montenegro for 144 km. At its joining with the Piva River, it forms the Drina River, which flows into the Sava River. Tara feeds on the waters of small mountain rivers such as Lucica, Drysia, Draga and Vashkivska, and the waters of the beautiful waterfall Baylovic Sige, which falls from the Bucevica cave.
The water temperature in Tara almost never rises above 12 degrees even in the hottest months, but in winter it does not freeze. The water in the river is so clean that it is allowed to drink without cleaning.
Europe's largest canyon
Tara is famous for the fact that it forms the largest canyon in Europe, which is 82 km long and reaches a depth of 1300 meters. This canyon is listed as a UNESCO World Heritage Site and is part of the Durmitor National Park. It lies between the mountains of Zlatni Bor and Lubishnya on the one hand, and Durmitor and Sinyavina on the other.
The canyon of the river Tara in Montenegro amazes travelers with its beauty and grandiosity. Along the canyon you can see pebble and rocky terraces surrounded by dense coniferous forests, high cliffs, small coves and sandy beaches. There are about 80 large caves on the slopes of the mountains near the river.
Flora and fauna
The canyon is full of endemic plants and animals, relict black pines, whose age reaches 400 years, grow in its primeval forest "Crna Poda". Also there are black ash, oriental hornbeam, linden, elm, beech, cork oak, maple, fir and spruce,which grow here. Brown bears, wolves, deer, wild boars and wild goats can be found among the animals, and the bird world contains 130 species. The waters of Tara are full of fish.
The legendary Djurdjevic Bridge
The canyon crosses the Djurdjevic Bridge, which was built in _PHONE_. It was the tallest road bridge in Europe before the beginning of the 2000s. The length of the five-arch bridge is 365 meters and its height is 172 meters!
Also along the Tara River you can see a lot of destroyed Turkish checkpoints and several orthodox monasteries.
What to do?
Extremals go to Montenegro especially for rafting on the waters of Tara. You can see here rafts, kayaks, inflatable boats during the period from May to September. The most popular route has a length of 60 kilometers; it is designed for one day and involves crossing 21 thresholds. The route can be really difficult and dangerous for beginners.
Many tourists come to Tara Canyon and Djurdjevic Bridge in summer – these places are one of the most famous sights in the country.
You May Also Like


text:
Borax crystalsThe world wide commercial borate deposits are estimated to be 1010 kg of boron. Turkey and the United States are the world's largest producers of boron.Turkey has almost 72% of the worlds boron potential and boron reserves. Boron does not appear on Earth in elemental form but is found combined in borax, boric acid, colemanite, kernite, ulexite and borates. Boric acid is sometimes found in volcanic spring waters. Ulexite is a borate mineral that naturally has properties of fiber optics.
Economically important sources are from the ore rasorite (kernite) and tincal (borax ore) which are both found in the Mojave Desert of California, with borax being the most important source there. The largest borax deposits are found in Central and Western Turkey including the provinces of Eskişehir, Kütahya and Balıkesir.


Ask Tom Why.
Dear Tom, In the todays Tribune weather page (March...
March 11, 1998|By Tom Skilling, chief meteorologist at WGN-TV.
Dear Tom,
In the todays Tribune weather page (March 9) it says that the Meigs Field temperature is 37 (degrees) and the dewpoint 46 (degrees). This makes the relative humidity 141%. Is that possible? Or is it a measurement mistake? I thought that the humidity could never be higher than 100%. Thanks a lot.
Fr. John Pearson, Notre Dame, Ind.
Dear Father John,
Indeed the relative humidity cannot be higher than 100% since relative humidity measures the water holding capacity of the air. Reports of dewpoints higher than the temperature have been reported by weather equipment for years. These errors were usually caught by the human weather observer at the sight and corrected.
In recent years, these human weather observers have been replaced by completely automated systems, and it becomes necessary for a sharp-eyed forecaster at a distant sight to catch the discrepancy. In this case, the error was missed by the Tribune weather staff as well.
Send your questions to:


text:
Democratic Reps Propose Air Quality Reforms
LANSING —State Reps. Abdullah Hammoud (D-Dearborn), David LaGrand (D-Grand Rapids), Vanessa Guerra (D-Saginaw), Tenisha Yancey (D-Harper Woods), Cara Clemente (D-Lincoln Park), and Sylvia Santana (D-Detroit) have introduced an air quality bill package with proposals to protect public health through enhancing air quality standards and strengthening the permitting process.
"We need to hold corporations accountable, especially those that request to emit additional pollutants in areas that already have questionable air quality," Rep. Hammoud said. "This is discrimination by pollution, and it has to stop. Neighborhoods in Dearborn border the epicenter of the asthma burden, an area where asthma rates that are up to two to four times higher than the state average. Under current law, the DEQ is not permitted to consider the total amount of pollutants being emitted by all corporations within a neighborhood. My bill would require the DEQ to take into account the entirety of the pollution within a neighborhood, by all the corporations, when considering any additional permits."
These proposals focus on environmental justice, transparency, accountability, local control, and expanding permit criteria. The bills are as follows:
- HB 6139 (Rep. LaGrand): Requires all state departments and agencies to consider air quality when making decisions, and to establish air quality criteria.
- HB 6140 (Rep. Guerra): Requires the Department of Environmental Quality (DEQ) to notify legislators in the district where a permit is requested to increase emissions.
- HB 6141 (Rep. Yancey): Requires the entity requesting the permit to increase emissions to have a representative present at the public hearing, and to address questions and concerns from the public.
- HB 6142 (Rep. Clemente): Requires the DEQ to consider certain socioeconomic variables when reviewing a permit request.
- HB 6143 (Rep. Hammoud): Requires the DEQ to take into consideration the cumulative air quality impact when considering permits.
- HB 6144 (Rep. Santana): Creates a process in which a local government could veto a permit to increase air emissions through their passage of a resolution.
"We need to increase accountability for the corporations requesting to increase air pollution. At present, there is no legal requirement for the requester of a permit to address public questions, or even attend the hearing," Rep. Yancey said. "My bill fixes this unfortunate situation by increasing transparency and accountability. At a minimum, Michiganders deserves to know the specifics on projects that could potentially be exposing their children to air pollution, and then have an opportunity to question the corporations directly."
"Local control is important, and is severely lacking in the permitting process. Local governments should have the ability to determine what happens in their communities, and if they want additional pollutants to be added to the air that their children breathe," Rep. Santana said. "This bill creates a process for local governments to be involved in the process by granting them the ability to pass a resolution to block a permit that increases pollutants."


text:
Pub. date: 2009 | Online Pub. Date: December 16, 2009 | DOI: 10.4135/9781412972048 | Print ISBN: 9780761929574 | Online ISBN: 9781412972048| Publisher:SAGE Publications, Inc.About this encyclopedia
Richard K. Popp
Press clipping services monitor media for content of interest to their clients. They scan through newspapers, magazines, and electronic media, select pertinent items, and then package ("clip") them for easy perusal. The industry's name derives from the traditional practice of clipping items with a pair of scissors from the newspaper for safekeeping. Modern-day services track not only newspapers but nearly every print, broadcast, cable, and web-based information outlet, running the spectrum from network news broadcasts to teenagers' blogs. Clipping services have their origins in the expanding media environments of late-nineteenth-century cities. As the number of newspaper titles grew, editions multiplied, and issues expanded in length, a handful of entrepreneurs independently hit on the idea of a press monitoring service. Henry Romeike started the earliest clipping (or cutting) service in London in 1881 and quickly expanded its operations to New York, Paris, and Berlin. Romeike relocated to the United States in...


text:
Jagadeesh Jagarlamudi, Hal Daumé III, and Raghavendra Udupa
Mapping documents into an interlingual representation can help bridge the language barrier of a cross-lingual corpus. Previous approaches use aligned documents as training data to learn an interlingual representation, making them sensitive to the domain of the training data. In this paper, we learn an interlingual representation in an unsupervised manner using only a bilingual dictionary. We first use the bilingual dictionary to find candidate document alignments and then use them to find an interlingual representation. Since the candidate alignments are noisy, we develop a robust learning algorithm to learn the interlingual representation. We show that bilingual dictionaries generalize to different domains better: our approach gives better performance than either a word by word translation method or Canonical Correlation Analysis (CCA) trained on a different domain.
In ACL HLT 2011
Publisher Association for Computational Linguistics


text:
|Microsoft Office PowerPoint® 2003
|Microsoft PowerPoint® 2002
Whether you're pitching your ideas at a company meeting or creating a special, presentation-based photo album for the family reunion, using sounds or music can spice up your Microsoft PowerPoint presentation. When you're adding sound and music to a presentation, it's important to understand the difference between embedded and linked objects.
The differences between linked and embedded objects
The term "object" in this article refers to a sound (including a piece of music). An object can be the sound itself, or it can be the file that contains the sound.
The main differences between linked objects and embedded objects are where you store them and how you update them, if need be, after you place them in the destination file (in this case, your presentation).
Linked object A linked object is created and stored in a separate source file, and then it is linked to the destination file. Because the two files are linked, when you make changes to one file, the changes appear in both the source and destination files.
Embedded object An embedded object is created in a separate source file too, but then it is inserted into the destination file, becoming part of that file. If you make a change to the original source file, the change will not show up in the destination file.
An embedded object
A linked object
The source file that contains the linked object
How to choose the best file type
Let's say you've created a presentation to which you've added several music files that act as a soundtrack. You've set up all the transitions and timings and such, and it works like a charm on your computer. Here are a few questions you need to ask yourself before considering this project finished. In fact, you can save yourself a lot of time if you think about these things before you add your sound files.
How big is each sound file?
Use these criteria to choose a file type based on size:
- If each individual sound or music file is 50 megabytes (MB) or less, you can insert it as either a linked or embedded object. (Note that embedded objects larger than 100 KB may slow down the performance of your presentation, however.)
- If your file is more than 50 MB, it should be linked — it won't play in your presentation if you embed it. The default setting in PowerPoint for the allowed maximum size of embedded objects is 100 kilobytes (KB), but you can change it to a maximum of 50,000 KB (50 MB).
How do I change the maximum size allowed?
- On the Tools menu, click Options.
- On the General tab, increase the Link sounds with file size greater than ___ Kb setting to a size just larger than your largest sound file, up to 50,000 KB (50 MB).
- Click OK.
Will you use the same computer to create and show the presentation?
Consider the following:
- If you plan to show your presentation using the computer you created it on, you can insert either embedded or linked files (assuming your linked files are within the size limits described above).
- If you plan to show your presentation on another computer, you must be careful about using linked files. Make sure that the source file that contains your linked sound files, as well as the folder it's in, are saved on the computer you're using to present. Otherwise, the sound files won't play because the presentation won't know where to link to — the source files will be on a different computer.
- If you're saving your presentation on a floppy disk or CD-ROM, one way to ensure that your linked files go with you to the new computer is to use the Package for CD (PowerPoint 2003) or Pack and Go Wizard (PowerPoint 2002) feature.
Use Package for CD
If you want to run your presentation, distribute it on CD, or save it to a folder or network share, you can use the Package for CD command on the File menu. Package for CD copies your presentation along with any supporting files either onto a CD or to a single folder or network share. When you package your presentation, you can make your slide show play automatically. Also, the Microsoft Office PowerPoint 2003 Viewer is included by default, which means the computer that plays the CD does not need to have PowerPoint installed. For more information, see the Help topics About packaging and copying a presentation to CD and Package a presentation for CD.
Use the Pack and Go Wizard
Will you need to change the objects after they've been added to the presentation?
If you want to update the objects after adding them to your presentation, think about these points:
- If you plan to make changes to the source file, use linked objects. When you make changes to the source file, the changes will be recognized in the presentation because the files are linked.
- If you don't plan to make any changes to the source file, you can use embedded objects. When a file is embedded, information in the destination file doesn't change if you modify the source file.
You can usually get away with using either linked or embedded sound files if your sound files are 50 MB or less (for embedded sound files) or if you present and create the presentation on the same computer (for linked files). Below are a few guidelines to consider when including music and sound in your presentations.
|Type of file
||When to use it
- Your files are 100 KB or less. This is the recommended maximum size. You may embed files that are up to 50 MB, but it may slow down the performance of the presentation.
- You want all the pieces of your presentation contained within that presentation.
- You don't plan to make any changes to the source files.
- You plan to use the same computer to create and display your presentation.
- Your files are large.
- You plan on making changes to the source files.
Note If the path name of a linked file exceeds 128 characters, Microsoft Office PowerPoint is not able to find and play that linked file. In such a case, you can either rename the linked file, or shorten the path name by copying the linked file into the folder where your presentation is located. Then either update links automatically by using the Package for CD feature, or update them manually by removing the sounds from the presentation and then adding them again.


text: There are a number of ways of exciting standing waves in ropes and springs using non-commercial vibrators such as loudspeakers,1 jigsaws,2 motors,3 or a simple tuning fork,4 including the rhythmical shaking of a handheld Slinky. We have come up with a very simple and cheap way of exciting stationary waves in a string, which anyone, particularly children, can try at home. It consists of using an electric toothbrush to produce a regular sideways motion that can be easily transmitted to an elastic cord. Most suitable for this experiment is the kind of unit that has a metal rod protruding from the front (see Fig. 1, which shows our Braun Oral-B®) to which a brush is normally affixed. The ends of the cord are attached to stands. Elastic cords that come with some school notebooks work well for this experiment, but a longer cord allows the observation of a larger number of modes. The toothbrush unit is placed near one end of the cord, which is wrapped once around the rod. As the toothbrush vibrates at a fixed frequency, standing waves (see Fig. 2) may be tuned by changing the tension of the cord while keeping its length constant. We have found up to five harmonics with a 150-cm cord. The toothbrush can be connected to a small potentiometer to reduce the dc voltage and hence the frequency of the motor, allowing the tuning of the standing waves with a fixed tension.


: public Observable<string> operation() { logger.info("Start: Executing slow task in Service 1"); Util.delay(7000); logger.info("End: Executing slow task in Service 1"); return Observable.just("operation 1"); } So with this the caller implementation changes to the following: Observable<String> op1 = service1.operation(); Observable<String> op2 = service2.operation(); Observable<String> op3 = service3.operation();Observable<List<String>> lst = Observable.merge(op1, op2, op3).toList(); See how the caller composes the results using the merge method. However the calls to each of the service calls is still synchronous at this point, to make the call asynch the service calls can be made to use a Thread pool, the following way: public class Service1 { private static final Logger logger = LoggerFactory.getLogger(Service1.class); public Observable<String> operation() { return Observable.<String>create(s -> { logger.info("Start: Executing slow task in Service 1"); Util.delay(7000); s.onNext("operation 1"); logger.info("End: Executing slow task in Service 1"); s.onCompleted(); }).subscribeOn(Schedulers.computation()); } } subscribeOn uses the specified Scheduler to run the actual operation. The beauty of the approach is that the calling code of this service is not changed at all, the implementation there remains exactly same as before whereas the service calls are now asynchronous. If you are interested in exploring this sample further, here is a github repo with working examples.Reference: Async abstractions using rx-java from our JCG partner Biju Kunjummen at the all and sundry blog....
gradle-logo
Dropwizard, MongoDB and Gradle Experimenting
Introduction I created a small project using Dropwizard, MongoDB and Gradle. It actually started as an experimenting Guava cache as buffer for sending counters to MongoDB (or any other DB). I wanted to try Gradle with MongoDB plugin as well. Next, I wanted to create some kind of interface to check this framework and I decided to try out DropWizard. And this is how this project was created. This post is not a tutorial of using any of the chosen technologies. It is a small showcase, which I did as an experimentation. I guess there are some flaws and maybe I am not using all "best practices". However, I do believe that the project, with the help of this post, can be a good starting point for the different technologies I used. I also tried to show some design choices, which help achieving SRP, decoupling, cohesion etc. I decided to begin the post with the use-case description and how I implemented it. After that, I will explain what I did with Gradle, MongoDB (and embedded) and Dropwizard. Before I begin, here's the source code:_URL_ Use-Case: Counters With Buffer We have some input requests into our servers. During the process of a request, we choose to "paint" it with some data (decided by some logic). Some requests will be painted by Value-1, some by Value-2, etc. Some will not be painted at all. We want to limit the number of painted requests (per paint value). In order to have limit, for each paint-value, we know the maximum, but also need to count (per paint value) the number of painted requests. As the system has several servers, the counters should be shared by all servers. The latency is crucial. Normally we get 4-5 milliseconds per request processing (for all the flow. Not just the painting). So we don't want that increasing the counters will increase the latency. Instead, we'll keep a buffer, the client will send 'increase' to the buffer. The buffer will periodically increase the repository with "bulk incremental". I know it is possible to use directly Hazelcast or Couchbase or some other similar fast in-memory DB. But for our use-case, that was the best solution. The principle is simple:The dependent module will call a service to increase a counter for some key The implementation keeps a buffer of counters per key It is thread safe The writing happens in a separate thread Each write will do a bulk increaseBuffer For the buffer, I used Google Guava cache. Buffer Structure Creating the buffer: private final LoadingCache<Counterable, BufferValue> cache; ...this.cache = CacheBuilder.newBuilder() .maximumSize(bufferConfiguration.getMaximumSize()) .expireAfterWrite(bufferConfiguration.getExpireAfterWriteInSec(), TimeUnit.SECONDS) .expireAfterAccess(bufferConfiguration.getExpireAfterAccessInSec(), TimeUnit.SECONDS) .removalListener((notification) -> increaseCounter(notification)) .build(new BufferValueCacheLoader()); ... (Counterable is described below) BufferValueCacheLoader implements the interface CacheLoader. When we call increase (see below), we first get from the cache by key. If the key does not exist, the loader returns value. BufferValueCacheLoader: public class BufferValueCacheLoader extends CacheLoader<Counterable, BufferValue> { @Override public BufferValue load(Counterable key) { return new BufferValue(); } } BufferValue wraps an AtomicInteger (I would need to change it to Long at some point) Increase the Counter Increasing counter and sending if passed threshold: public void increase(Counterable key) { BufferValue meter = cache.getUnchecked(key); int currentValue = meter.increment(); if (currentValue > threashold) { if (meter.compareAndSet(currentValue, currentValue - threashold)) { increaseCounter(key, threashold); } } } When increasing a counter, we first get current value from cache (with the help of the loader. As descried above). The compareAndSet will atomically check if has same value (not modified by another thread). If so, it will update the value and return true. If success (returned true), the the buffer calls the updater. View the buffer After developing the service, I wanted a way to view the buffer. So I implemented the following method, which is used by the front-end layer (Dropwizard's resource). Small example of Java 8 Stream and Lambda expression. Getting all counters in cache: return ImmutableMap.copyOf(cache.asMap()) .entrySet().stream() .collect( Collectors.toMap((entry) -> entry.getKey().toString(), (entry) -> entry.getValue().getValue())); MongoDB I chose MongoDB because of two reasons:We have similar implementation in our system, which we decided to use MongoDB there as well. Easy to use with embedded server.I tried to design the system so it's possible to choose any other persist implementation and change it. I used morphia as the MongoDB client layer instead of using directly the Java client. With Morphia you create a dao, which is the connection to a MongoDB collection. You also declare a simple Java Bean (POJO), that represent a document in a collection. Once you have the dao, you can do operations on the collection the "Java way", with fairly easy API. You can have queries and any other CRUD operations, and more. I had two operations: increasing counter and getting all counters. The services implementations do not extend Morphia's BasicDAO, but instead have a class that inherits it. I used composition (over inheritance) because I wanted to have more behavior for both services. In order to be consistent with the key representation, and to hide the way it is implemented from the dependent code, I used an interface: Counterable with a single method: counterKey(). public interface Counterable { String counterKey(); } The DAO, which is a composition inside the services: final class MongoCountersDao extends BasicDAO<Counter, ObjectId> { MongoCountersDao(Datastore ds) { super(Counter.class, ds); } } Increasing the Counter MongoCountersUpdater extends AbstractCountersUpdater which implements CountersUpdater: @Override protected void increaseCounter(String key, int value) { Query<Counter> query = dao.create


Photo © The Israel Museum, Jerusalem
Statue of a figure with a large basin
Late Canaanite period, 15th-13th century BCE
H: 110; W: 90; Diam: 78 cm
Israel Antiquities Authority
Accession number: IAA _PHONE_
This statue was found in the throne room of the palace/temple at Hazor. It shattered into hundreds of fragments in the fire that destroyed the city. Though nothing like it has come to light anywhere in the Near East, its style bears a clear link to Syrian and Hittite art. The basin suggests it was used in a religious rite.
The figure wears a pendant in the shape of a crescent with an eight-rayed star, symbols of a prominent deity. However, there is no way of telling whether it represents a god or a ruler.
Beliefs and Believers; Ancient Art from the Israel Museum, Israel Museum, Jerusalem, 31/05/2007 - 05/11/2009


Browse Publications Technical Papers 2006-01-0633
2006-04-03
Promotive Effect of Diesel Fuel on Gasoline HCCI Engine Operated with Negative Valve Overlap (NVO) 2006-01-0633
It is well-known that gasoline is a poor fuel for HCCI operation due to its high autoignation temperature, while the major problem for diesel HCCI is that the ignition temperature of diesel fuel is too low so that diesel autoignites too early. Interestingly a blend of gasoline and diesel fuel could have desirable characteristics for HCCI operation.
The negative valve overlap (NVO) is a practical and feasible control mode for production applications of the HCCI concept. At present, the most serious problem is the difficulty to control the moment of auto-ignition and extend the limited operating window of smooth HCCI operation.
In this paper, the promotive effects of diesel fuel on gasoline HCCI combustion were experimentally examined. The diesel fuel as additive was added in advance in different proportion (10% and 20% by mass) into gasoline for the purpose of improving its ignitability. The experiments conducted on a gasoline HCCI engine which was naturally aspirated and unthrottled. The engine operated at a constant speed of 1500 rpm and the HCCI controlled using NVO (Negative Valve Overlap), without using external Exhaust Gas Recirculation (EGR). The experimental results showed that the addition of diesel fuel can be utilized to reduce the required negative valve overlap interval for suitable HCCI combustion under a given engine speed and compression ratio conditions. The HCCI combustion region was expanded dramatically without substantive increase in NOx emissions under a given inlet and exhaust valve timing due to the improvement of charge ignitability resulting from the addition of diesel fuel.
In addition, it was also found that due to the addition of diesel fuel, the possible scale of negative valve overlap was extended. A substantial increase in the lean limit of excess air ratio and the upper limit of load range can be achieved without auxiliary intake heating because of higher volumetric efficiency resulting from decreased required negative valve overlap and the presence of less residual gases in cylinder.
SAE MOBILUS
Subscribers can view annotate, and download all of SAE's content. Learn More »
Access SAE MOBILUS »
Members save up to 43% off list price.
Login to see discount.
Special Offer: With TechSelect, you decide what SAE Technical Papers you need, when you need them, and how much you want to pay.
X


mp3 player with POD written on itPodcasting is an exciting method of regularly delivering audio materials to an audience via the internet. The nature of podcasting means that a number of benefits could be achieved including:
 - Greater control given to learner about when, where and how the materials are used.
 - The creation and delivery of podcast materials is relatively simple and low cost.
These pages explore:
 1. What really is podcasting and how does it work?
 2. Why is podcasting relevant to teaching and learning in higher education?
 3. How to go about receiving and using existing podcasts?
 4. Planning to create and deliver a podcast.
 5. How to create and deliver podcasts at the University of Leeds?
 6. Case studies of podcasting within higher education and at Leeds.
 7. Where can you find out more information podcasting?
Next - Introduction to podcasting?
For further details please contact Simon Davis


text:
The ABZ community is explicitly not meant to be limited to the methods listed here. This page only serves to give an overview of some popular representatives of rigorous state based methods.
Any other state-based formal method is welcome!
If you would like to have another method listed here, please contact one of the webmasters mentioned in the
The Alloy language can be used to describe structures based on a collection of constraints. This created Alloy model can then be analyzed by the Alloy Analyzer, a solver that finds concrete structures that satisfy the constraints defined in the Alloy model.
Z is the "ultimate language" as stated by Jean-Raymond Abrial who invented this formal specification language in 1977. This language aims for a precise and clear specification of computer-based systems based on the Zermelo-Fraenkel set theory, lambda calculus, and first-order predicate logic.


text:
Publication details for Prof Peter Rowley-ConwyDobney, K.M., Ervynck, A., Albarella, U. & Rowley-Conwy, P. (2004). The chronology and frequency of a stress marker (linear enamel hypoplasia) in recent and archaeological populations of Sus scrofa in north-west Europe, and the effects of early domestication. Journal of Zoology 264(2): 197-208.
- Publication type: Journal papers: academic
- ISSN/ISBN: 0952-8369, _PHONE_
- DOI: 10.1017/S0952836904005679
- Keywords: wild boar; domestic pig; Sus scrofa; north-west Europe; prehistoric husbandry; dental defects
- View online: Online version
- Durham research online: DRO record
Author(s) from Durham
Linear enamel hypoplasia (LEH), a deficiency in enamel formation visible on mammal tooth crowns, can be used as a retrospective indicator of physiological stress and developmental health in humans and animals. In this first study, for north-western Europe, the condition has been recorded from prehistoric (mesolithic) and recent populations of wild boar, and from domestic pigs belonging to early farming (neolithic) communities. It was possible to show that LEH occurs in recent and ancient populations of wild boar from north-west Europe, and that the occurrence of the condition can be explained by the same events within the animal's life (birth, weaning, winter starvation) as has been previously suggested for archaeological domestic pig samples. The frequency of LEH is consistently low within all ancient and recent populations of wild boar studied, a remarkable observation given the pronounced differences in the living conditions of these two diachronically well-separated groups, mainly linked with the increasing human pressure on recent populations of wild animals. Early domestic samples generally show high LEH frequencies, although considerable variation exists between the samples. It is suggested that these high frequencies are, in general, the result of domestication, while the variation could be related to differences in early husbandry. The observation of LEH, therefore, provides a valuable tool for studying the history of animal domestication.
Published on behalf of The Zoological Society of London.


text:
Half a loaf is better than no bread
What's the meaning of the phrase 'Half a loaf is better than no bread'?
Something, even if it isn't what you ideally would prefer, is better than nothing.
What's the origin of the phrase 'Half a loaf is better than no bread'?
This proverbial saying is first found in the same place as many other proverbial sayings - John Heywood's 1546 glossary A dialogue conteinyng the nomber in effect of all the prouerbes in the englishe tongue:
Throwe no gyft agayne at the giuers head,
For better is halfe a lofe then no bread.
Many proverbs are a form of condensed popular wisdom and 'half a loaf is better than no bread' seems like plain common sense - few would argue with it. Nevertheless, in psychology experiments to determine whether fairness was an innate concept in humans or whether it was learned, pairs of UK and US children have been set the following test:
One child is offered four sweets (or candy if you prefer) and the other is offered one. The child with the opportunity to take four sweets is given this choice:
A. Either, you get four sweets and the other child gets one.
B. Or, you both get nothing.
Surprisingly to many, children routinely choose option B and reject the sweets, preferring to maintain a sense of fairness. In purely material terms this makes little sense as, by maintaining fairness, the choosing child robs the partner of one sweet and him/herself of four.
Heywood might have suggested 'throw no gift at the giver's head' but children don't appear to agree.
See also: the List of Proverbs.


text:
The Xilinx® Versal® Prime series devices are available in -3 (highest performance), -2, -1 speed grades. The -3 devices can operate at a VCCINT voltage of 0.88V (H), the -2 devices can operate at a VCCINT voltage of 0.88V (H), 0.80V (M), or 0.70V (L), and the -1 devices can operate at a VCCINT voltage of 0.80V (M) or 0.70V (L). Primary supply operating voltages typically scale with VCCINT, except for supported overdrive of the VCC_PMC, VCC_PSFP, VCC_PSLP, and VCC_CPM5 at 0.88V (H) when VCCINT and other primary supplies operate at 0.70V (L). Similar to speed grades, a higher operating voltage typically has higher performance specifications. All devices are screened for standard (S) or low (L) maximum static power. See Versal Architecture and Product Data Sheet: Overview (DS950) for available device ordering options.
DC and AC characteristics are specified in extended (E) and industrial (I) temperature ranges. Except the operating temperature range or unless otherwise noted, all the DC and AC electrical parameters are the same for a particular speed grade and operating voltage (that is, the timing characteristics of a -1 speed grade extended (E) temperature range device operating at a VCCINT voltage of 0.80V (M) are the same as for a -1 speed grade industrial (I) temperature range device operating at a VCCINT voltage of 0.80V (M)). However, only selected speed grades, operating voltages, maximum static power screens, and/or devices are available in each temperature range.
All supply voltage and junction temperature specifications are representative of worst-case conditions. The parameters included are common to popular designs and typical applications.
This data sheet, part of an overall set of documentation on the Versal ACAPs, is available on the Xilinx website at _URL_


text:
University of Toronto astronomer Evelyn Macdonald and her colleagues have identified substantial differences in surface temperature, sea ice and water vapor across an exoplanet's surface for different land configurations.
Many exoplanets are tidally locked to their stars such that one side of the planet is always facing away.
This creates permanent day and night sides of the planet where the all energy received from the star is focused on the dayside.
In order for a planet to support life, the climate must be somewhat regulated across the surface: the atmosphere and oceans need to redistribute some of the energy received from the star to the nightside of the planet.
In the new research, Macdonald and co-authors developed a new 3D climate model, named ExoPlaSim, and used it to systematically vary dayside land cover on an Earth-like planet under two extreme and opposite continent configurations.
The first configuration is a circular continent in the middle of the dayside surrounded by ocean.
The second configuration is the opposite: a circular ocean in the middle of the dayside with land everywhere else.
For both cases, the size of the circle was varied to demonstrate how the planet's climate depends on land fraction for each of these continent configurations.
Among other things, a planet's habitability is dependent on its surface temperature and the amount of moisture in its atmosphere.
The authors modeled the net precipitation, cloud fraction, and surface temperature across the dayside of the planet for different land configurations.
Their results show that both the amount of land, and its configuration can have a large effect on the surface conditions of the planet.
For models with similar dayside land fractions but opposing configurations, the average surface temperature can change by up to 20 degrees Celsius.
The results indicate that the amount of water vapor in the planet's atmosphere heavily depends on the area of ice-free ocean on its surface.
Planets with high land fractions have hotter and drier daysides with clouds and precipitation mostly confined to small central areas.
"Finding out whether life exists elsewhere in the Universe is a key challenge of astronomy and science as a whole," Macdonald said.
"Our work demonstrates that the distribution of land on an Earth-like planet has a big impact on its climate, and should help astronomers looking at planets with instruments like the NASA/ESA/CSA James Webb Space Telescope to better interpret what they're seeing."
The results appear in two papers in the Monthly Notices of the Royal Astronomical Society.
Evelyn Macdonald et al. 2022. Climate uncertainties caused by unknown land distribution on habitable M-Earths. MNRAS 513 (2): 2761-2769; doi: 10.1093/mnras/stac1040
Adiv Paradise et al. 2022. ExoPlaSim: Extending the Planet Simulator for exoplanets. MNRAS 511 (3): 3272-3303; doi: 10.1093/mnras/stac172
Source link: _URL_


Definition from Wiktionary, the free dictionary
Jump to: navigation, search
Back-formation from orientation.
orientate (third-person singular simple present orientates, present participle orientating, simple past and past participle orientated)
 1. (Britain, intransitive) To face (a given direction).
 2. (Britain, reflexive) To determine one's position relative to the surroundings; to orient (oneself).
 - John le Carré
 He…stood for a moment, orientating himself exactly in the light of his knowledge.
 He came out of the station and took some time to orientate himself.
 3. To arrange in order; to dispose or place (a body) so as to show its relation to other bodies, or the relation of its parts among themselves.
 - E. S. Dana
 A crystal is orientated when placed in its proper position so as to exhibit its symmetry.
 4. (Britain, transitive) To position (something), to align relative to a given position.
 Try to orientate your students towards the science subjects.
 5. (archaic) To move or turn toward the east; to veer from the north or south toward the east.
Usage notes[edit]
 1. ^ orientate, in Common Errors in English Usage, by Paul Brians
 1. second-person plural present indicative of orientare
 2. second-person plural imperative of orientare
 3. feminine plural of orientato


text:
Article ID: 930842 - View products that this article applies to.
Important This article contains information about how to modify the registry. Make sure that you back up the registry before you modify it. Make sure that you know how to restore the registry if a problem occurs. For more information about how to back up, restore, and modify the registry, click the following article number to view the article in the Microsoft Knowledge Base:
(_URL_ )Description of the Microsoft Windows registry
This article discusses the following Microsoft SoftGrid Management Console 4.x logging options:
Warning Serious problems might occur if you modify the registry incorrectly by using Registry Editor or by using another method. These problems might require that you reinstall the operating system. Microsoft cannot guarantee that these problems can be solved. Modify the registry at your own risk.
Log file locationThe SoftGrid Management Console log file (Sftmmc.log) is in the following location:
%ProgramFiles%\Softricity\SoftGrid Management Console\sftmmc.log
Logging level values and description
Collapse this tableExpand this table
How to configure the logging levelTo configure the logging level, exit the SoftGrid Management Console if it is running, and then follow these steps:


text:
Construction of the Utah State Capitol began December 12, 1912.
The architect was Richard Kletting, whose design was selected from a number of entries in a state competition. The Capitol is a Beaux Arts Classical design.
The building was completed in 1916, at a cost of $2,739,538. It was designated a National Historic Landmark in 1986.
A major renovation completed in 2008 gave the building a seismic retrofit while maintaining and restoring the original historic fabric of the building.
James W. Shipler founded Shipler Commercial Photographers when he moved to Salt Lake City in 1890. His son Harry joined the firm a few years later. State History acquired the Shiplers' negative collection in 1988, and the studio, then on Main Street near 100 South, closed in 1989.
The Shiplers often documented change over time, as they did during the construction of Utah's State Capitol. More than 150 glass plate negatives, from glass plate negatives, document its construction from groundbreaking to completion.


text:
The Crayons' Book of Numbers
Think drawing and running away from home is all these crayons are good at? Wrong! (They also love teaching you.) Come and explore numbers with your rainbow-bright friends. Poor Duncan can't catch a break! First, his crayons go on strike. Then they come back home. Now his favorite colours have vanished yet again! Can you count up all the crayons that are missing from his box?
- Engaging first skills based on the acclaimed stories
- Learn all about numbers in a bright, witty story format
- Beautifully illustrated with Oliver Jeffers' bold artwork
- Award-winning, New York Times bestselling series


How do I create a W-3c?
Creating a W-3c
 1. Click on the Payer List button.
 2. Choose the payer.
 3. Click on Add Form.
 4. Choose W-3C from the Form Name drop down menu.
 5. Fill in the necessary fields on the form.
 6. Click Save.
Previewing Copy A of the W-2c
 1. Create a W-2c in the Recipient List. For steps on how to do this, see the How do I correct a W-2 form? article.
 2. Close the Payers & Recipients screen.
 3. Click on the Print button.
 4. Choose W-2 Forms.
 5. Click OK.
 6. Choose the W-2C from the Select return box on the left.
 7. Choose Copy A from the Select copy listbox.
 8. Click on Print or Preview.
 9. When the form is completed printing, or the print preview is closed, a message will appear that reads "A new W-3C form is available on the Manage Payer screen.".
 10. Click OK.
 11. Close the Print screen.
 12. Click on the Payer List button.
 13. The W-3C will be listed in the Form List.
Was this article helpful?
0 out of 1 found this helpful


Impact of taxes on the profitability of projects
China Mining Taxation Workshop – Organised by the Australian Canadian Mining Industry Working Group (ACMIWG), Beijing, China, September 2003
This paper calculates the optimum tax rate for the mining industry.
This study looked at the profitability and level of taxation within the Western World mining industry. Over the 20 year period _PHONE_, the industry only generated an average return of 4.6% to shareholders.
The average tax rate paid by the industry was 39%. This includes corporate taxes and royalties, but excludes indirect taxes. An analysis of the Australian Mining industry shows that these indirect taxes can be very significant – and the overall effective tax rate is 50%.
While the overall returns generated by the mining industry may be low, individual mines may be spectacularly profitable. Indeed, it is the hope of finding such a mine that drives the industry to continue to operate in the face of poor profitability from its existing assets!
Detailed modelling was carried out on the economics of 1000 largest known copper deposits in the world. The aim was to firstly determine how many of these would be built today assuming a given set of tax rules and hurdles. And secondly, if developed, how would the economic benefit be shared between the developer and the government?
Intuitively, if the tax rate is too high, no mines get built and no one benefits. If the tax rate is too low then lots of mines will be built but the Government's revenues may be low (and restricted to the indirect taxes on inputs). But on the other hand, the Government has to provide incentives to industry to find the deposits (and cover the cost of the unsuccessful exploration).
The analysis found that the optimum tax rate depends on the level of business risk. In low-risk countries like Australia the optimum rate is around 50% (which is where the effective tax rate currently is). However, in high-risk countries the optimum rate is 20 – 30%. A key message from this is that High-Risk countries should benchmark their tax rates against their peers rather than against low-risk countries like Australia or Canada.
The paper concludes that there are three actions a Government can do to maximise its return from mining. These are:
 1. Set the tax rate at the right level
 2. Lower the cost of exploration
 3. Lower the level of business risk
The last factor has the largest impact!
Return to Publications


text:
Start out with the following simple question:
Imagine you have tied a rope tightly around the full span of earth's equator (assume "earth" as being a perfect sphere and that the rope cannot be stretched). Now imagine that you add 1 meter to the initial rope length so that it becomes loose around the equator. Question: if you spread the rope at an even height from earth's surface (i.e. rope has a circular form, cocentric with earth's center) can you pass a cat underneath it?
Intuition says "no way", but let's examine the problem closely. Cutting a 2D slice at the equator, initially we have a circle with a perimeter equal to earth's perimeter at the equator (call it's radius "R") and a circle of rope tied tightly around it. When we loosen the perimeter by a meter (add a meter of rope) we are (indirectly) increasing it's radius. What we need to find out is how much the circle's radius will expand. (again intuition says it'll be very little due to the earth's dimensions and the fact that we are adding so little rope).
So, initially we have, from basic geometry:
(where P is the initial perimeter). When we add a meter of rope we are making P'=P+1 (where P' is the perimeter after the meter of rope was added). We also know (same as equation (1)) that:
Solving for R':
note the beauty of equation (2). It tells us that the increase in the radius is independant of it's initial radius. Simply, it doesn't matter whether we are tying a rope around an orange or the earth, when we add 1 meter to it's length (perimeter), we ALWAYS increase it's radius by 16 centimeters.
let's just say I was marvelled by this simple result.
by the way... most cats can squeeze beneath 16 centimeters.


text:
Verdun, Treaty of
Verdun, Treaty of, the partition of Charlemagne's empire among three sons of Louis I, emperor of the West. It was concluded in 843 at Verdun on the Meuse or, possibly, Verdun-sur-le-Doubs, Soâne-et-Loire dept., E France. Louis the German received the eastern portion (later Germany); Charles II (Charles the Bald) became king of the western portion (later France); Lothair I received the central portion (Low Countries, Lorraine, Alsace, Burgundy, Provence, and most of Italy) and also kept the imperial title. The Treaty of Verdun represented the beginning of dissolution of Charlemagne's empire into political units that foreshadowed the nations of Western Europe. It was superseded in 870 by the Treaty of Mersen.
The Columbia Electronic Encyclopedia, 6th ed. Copyright © 2012, Columbia University Press. All rights reserved.
More on Treaty of Verdun from Infoplease:
See more Encyclopedia articles on: Treaties and Alliances


text:
The variability of sea level in the Black Sea is forced by a combination of internal and external processes of atmospheric, oceanic, and terrestrial origin. We use a combination of satellite altimetry and gravity, tide gauge, river discharge, and atmospheric re-analysis data to provide a comprehensive up-to-date analysis of sea level variability in the Black Sea and to quantify the role of different environmental factors that force the variability. The Black Sea is part of a large-scale climatic system that includes the Mediterranean and the North Atlantic. The seasonal sea level budget shows similar contributions of fresh water fluxes (precipitation, evaporation, and river discharge) and the Black Sea outflow, while the impact of the net surface heat flux is smaller although not negligible. We find that the nonseasonal sea level time series in the Black and Aegean seas are significantly correlated, the latter leading by 1 month. This lag is attributed to the adjustment of sea level in the Black Sea to externally forced changes of sea level in the Aegean Sea and to the impact of river discharge. The nonseasonal sea level budget in the Black Sea is dominated by precipitation and evaporation over the sea itself, but external processes such as river discharge and changes in the outflow can also cause some large synoptic-scale sea level anomalies. Sea level is strongly coupled to terrestrial water storage over the Black Sea drainage basin, which is modulated by the North Atlantic Oscillation (NAO). We show that during the low/high NAO southwesterly/northeasterly winds near the Strait of Gibraltar and southerly/northerly winds over the Aegean Sea are able to dynamically increase/decrease sea level in the Mediterranean and Black seas, respectively.
ASJC Scopus subject areas
- Atmospheric Science


Gmail Activity
How do i know if my gmail is being hacked?
How do I know is my Gmail being hacked?
I just received spam message from my friend, the spam would look like the image below.
Gmail Hacked
Gmail Hacked 2
Normally sending this kind of message, the email account should be hacked. Please contact your friend that his/her account has been hacked and please change the password as soon as possible.
Normally hacker won't change the password, because they are trying to not let you know your account is being hacked, and try to retreive all the important informations of yours before you terminate all the things, like bank account, credit card information, paypal, or all other important informations.
So, where to check that and how to know that your Gmail is being hacked.
1. Login to your Gmail account.
2. Drag to the bottom of the page.
3. You will see like the image below.
Gmail Details
4. Click the 'detail'.
5. It will pop up the browser and the image like below.
Gmail Activity
6. Check whether the IP was login from other contries or different of your ISP.
7. If you found unexpected IP address that has been login into your account, I'm sure your account has been hacked and has been accessed by hacker.
To solve this, please change your password immediately, and please do not forget to change all the other password.
Why? Because those hacker has retreive most of your information data, maybe accessed to your other account, email, MSN, Facebook, Twitter, Yahoo, or Game ID, bank account.
Change to secure password that have alpha-digit combination password with at least 8 characters long.
Install newest Antivirus software and do scan your whole PC, I install AVIRA, make sure the virus defination database is up-to-date.
Please share to your friends, and inform them check often the security and wish you change the password before the hacker change your password.
If you found this article useful, please share.


text:
Whether you are setting up a sibling group for the first time or have been running groups for many years, this section will give you guidelines and activities to help you run your group
To identify and reinforce things that group members have in common. These may be general likes and dislikes, or sibling issues.
It can be especially effective if used as the first and last formal games of the group.
You will need
- A ball of wool
- A pair of scissors
How to do it
The first person holds the end of the wool in one hand and the ball itself in the other. They say something about themselves. All those who feel it applies to them put their hand up. The ball of wool is thrown to one of them (the first person keeps hold of the end) who then says something else. Repeat, with each person holding onto the wool and throwing the rest of the ball on, until everyone has had the wool thrown to them several times – the wool should now form a "spider's web" linking everyone in the group.
A leader can suggest ideas to keep it moving.
If used at the first session, each person could be asked to say their own name as they catch the ball of wool, or the name of the person they throw it to.
If used at the end of the final session, the strands of the web can then be cut to signal the end of the group.


The current repo belongs to Paused status, and some functions are restricted. For details, please refer to the description of repo status
28 Star 135 Fork 316
OpenHarmony / build_lite
Paused
Create your Gitee Account
Explore and code with more than 8 million developers，Free private repositories ！：）
Sign up
Clone or Download
contribute
Sync branch
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
.gn
Loading...
README.md
Compilation and Building (for Mini and Small Systems)
Introduction
The compilation and building subsystem is a build framework based on Generate Ninja (GN) and Ninja, which supports component-based OpenHarmony development. This subsystem can be used to:
 - Build products.
 - Build chipset vendor components independently.
 - Build a single component independently.
It is considered best practice to learn the following basic concepts before you start development and build:
 - Component
 A component is a reusable software unit that can contain source code, configuration files, resource files, and build scripts.
 - GN
 GN is short for Generate Ninja, which is a build system used to generate Ninja files.
 - Ninja
 Ninja is a small high-speed build system.
Build Process
The following figure shows the build process.
Figure 1 Build process
 1. hb set: Set the OpenHarmony source code directory and the product to build.
 2. hb build: Build the product, development board, or component. The process to build the solution is as follows:
 - Reading configuration: Read the development board configuration, which covers the toolchain, linking commands, and build options.
 - Running gn: Run the gn gen command to read the product configuration (related to the development board, kernel, and system components) and generate the out directory and ninja files for the solution.
 - Running Ninja: Run ninja -C out/company/product to start build.
 - Packaging: Package the build result to create a file system image.
Directory Structure
build/lite # Primary directory
├── components # Component description file
├── hb # hb pip installation package
├── make_rootfs # make script for the file system
├── config # Build configuration items
│ ├── component # Definitions of component-related templates, including static libraries, dynamic libraries, extension components, and emulator libraries
│ ├── kernel # Build configuration parameters of the kernel
│ └── subsystem # Subsystem template
├── ndk # NDK-related build scripts and configuration parameters
└── toolchain # Build toolchain, which contain the compiler directories, build options, and linking options
Usage
Usage Guidelines
 1. Prerequisites
 - Server and OS version: Linux server running 64-bit Ubuntu 16.04 or later
 - Python version: 3.7.4 or later
 - Repository: build_lite of OpenHarmony source code
 2. Installing hb
 - Run the following command in the root directory of the source code:
 python3 -m pip install --user build/lite
 - Run the hb -h command. If the following information is displayed, the installation is successful:
 usage: hb

 OHOS build system

 positional arguments:
 {build,set,env,clean}
 build Build source code
 set OHOS build settings
 env Show OHOS build env
 clean Clean output

 optional arguments:
 -h, --help Show this help message and exit
 - Uninstalling hb
 Run the following command to uninstall hb:
 python3 -m pip uninstall ohos-build
 3. Build Commands
 1. hb set
 hb set -h
 usage: hb set [-h] [-root [ROOT_PATH]] [-p]

 optional arguments:
 -h, --help Show this help message and exit.
 -root [ROOT_PATH], --root_path [ROOT_PATH]
 Set OHOS root path.
 -p, --product Set OHOS board and kernel.
 - If you run hb set with no argument, the default setting process starts.
 - You can run hb set -root [ROOT_PATH] to set the root directory of the source code.
 - hb set -p --product is used to set the product to build.
 2. hb env
 View the current configuration.
 hb env
 [OHOS INFO] root path: xxx
 [OHOS INFO] board: hispark_taurus
 [OHOS INFO] kernel: liteos
 [OHOS INFO] product: ipcamera
 [OHOS INFO] product path: xxx/vendor/hisilicon/ipcamera
 [OHOS INFO] device path: xxx/device/hisilicon/hispark_taurus/sdk_linux_4.19
 3. hb build
 hb build -h
 usage: hb build [-h] [-b BUILD_TYPE] [-c COMPILER] [-t [TEST [TEST ...]]]
 [--dmverity] [-p PRODUCT] [-f] [-n]
 [component [component ...]]

 positional arguments:
 component Name of the component.

 optional arguments:
 -h, --help Show this help message and exit.
 -b BUILD_TYPE, --build_type BUILD_TYPE
 Release or debug version.
 -c COMPILER, --compiler COMPILER
 Specify compiler.
 -t [TEST [TEST ...]], --test [TEST [TEST ...]]
 Compile test suit.
 --dmverity Enable dmverity.
 -p PRODUCT, --product PRODUCT
 Build a specified product with
 {product_name}@{company}, eg: ipcamera@hisilcon.
 -f, --full Full code compilation.
 -T [TARGET [TARGET ...]], --target [TARGET [TARGET ...]]
 Compile single target
 - If you run hb build with no argument, the previously configured code directory, product, and options are used for build.
 - You can run hb build {component} to build product components separately based on the development board and kernel set for the product, for example, hb build kv_store.
 - You can run hb build -p PRODUCT to skip the setting step and build the product directly.
 - You can run hb build in device/device_company/board to select the kernel and start build based on the current development board and the selected kernel to generate an image that contains the kernel and driver only.
 4. hb clean
 Clear the build result of the product in the out directory, and leave the args.gn and build.log files only. To clear files in a specified directory, add the directory parameter to the command, for example, hb clean xxx/out/xxx.
 hb clean
 usage: hb clean [-h] [out_path]

 positional arguments:
 out_path Clean a specified path.

 optional arguments:
 -h, --help Show this help message and exit.
Repositories Involved
Compilation and building subsystem
build_lite
About
仓库已停用,请使用新地址:_URL_ Compilation and building framework and scripts | 编译构建框架和脚本 build/lite功能整体合并到build仓统一管理，build_lite下线，暂停pr提交。 expand collapse
Python and 3 more languages
Apache-2.0
Cancel
Releases (1)
All
OpenHarmony
Contributors
All
Activities
Load More
can not load any more
Python
1
_URL_
_EMAIL_:openharmony/build_lite.git
openharmony
build_lite
build_lite
master
Search
E71a60c3 _PHONE_ Df7b7c6b _PHONE_