COVID hotel quarantine failures – a hierarchical model
With another lockdown in Victoria, the media has been asking why Victoria has had a worse COVID experience than other Australian states. Much can be explained by the challenges of the second wave and an overwhelmed contact tracing system. Contact tracing is now much improved, with tens of thousands of contacts being identified and managed quickly during the current outbreak.
Another media focus has been rates of escape from hotel quarantine, which are now the main source of outbreaks in Australia. If you look at the raw numbers, it seems that some states might have better systems than others, especially when considering the number of travellers who have been quarantined. But how sure can we be of that? Can some states feel smug superiority, or have they just been lucky?
Leah Grout and colleagues examined the rate of failure of quarantine facilities in Australia and New Zealand, reporting the number of failures, the number of quarantined travellers, and (importantly) the number of those travellers who were COVID positive (as of early 2021). This latter number is one of the keys – you could have the worst quarantine system imaginable but you won't have any failures if none of the travellers are COVID positive.
So what do the numbers tell us? New South Wales has processed the most COVID positive travellers of the jurisdictions in the database (1581) but it has also had the most identified failures (5 to that point). Victoria has had almost as many identified breaches (4) but many fewer positive cases in their quarantine system (462).
But when looking at these data, you might notice that the number of failures is low. The small numbers mean that any estimates of the rate of failure of hotel quarantine will be uncertain. How uncertain? Very uncertain!
Even in states/territories with zero breaches so far, the rate of failure might be no lower than in the jurisdictions that appear to be performing worst. Tasmania and the ACT are cases in point – both have had no recorded breaches of hotel quarantine but they have also processed very few COVID positive travellers (21 and 25 respectively).
Even the Northern Territory, with its much vaunted Howard Springs facility, had only 88 COVID cases in Grout et al.'s data. Consequently, the uncertainty around an estimate of the rate of failure of hotel quarantine is large.
To estimate the rate of failure, let's first treat each of the COVID positive cases as a simply Bernoulli trial, with the probability of failure being the same for each person within the jurisdiction. You can see the estimates below. Do you notice the large intervals around the estimates for the NT, ACT and Tasmania? Using only the observed rates of failure, we can't really be sure that those jurisdictions are better than any other.
Estimated probability of failure of COVID hotel quarantine for each infected traveller, based on the failures reported in Grout et al. (in review). The dots are the point estimates (failures divided by cases), and the bars are 95% credible intervals, assuming a uniform prior for the probability of failure.
The cabins at Howard Springs have the advantage of almost eliminating aerosol transmission between rooms, which appears to be a problem in the hotel systems that operate elsewhere. But we know, intuitively, that the hotel quarantine facilities in places like the ACT and Tasmania are likely to suffer similar risks to similar systems in other jurisdictions. Given that, the risks are unlikely to be as high as indicated by the upper bounds of the intervals above. But likewise, the probability of quarantine failure is unlikely to be zero.
How can we "borrow" information about rates of failure in other jurisdictions while at the same time allowing for some differences in rates of failure between jurisdictions? Well, let's say hello to a hierarchical statistical model!
For our hierarchical statistical model of failure rates from COVID quarantine hotels, we assume that the rate of failure of each jurisdiction is drawn from a common pool of possible failure rates. This pool of possible failure rates is defined by a probability distribution – hierarchical modelling estimates this distribution. Each jurisdiction has its own particular failure rate – if the rates differ a lot between between jurisdictions, then the distribution that defines the pool of possible rates will be wide. If the rates are similar to each other, then the distribution will be narrow.
You can think about what such a hierarchical model might mean when estimating the failure rate in places like Tasmania and the ACT where data are scarce. If we look at the jurisdictions with more data, the rate of failure is unlikely to be larger than 0.02 or so (the upper bounds of the 95% intervals in the figure above). So, these more precisely estimated rates will tend to constrain the variation in the pool of possible rates.
To formalise this idea, we need to define a model for that pool of possible failure rates. When dealing with probabilities, we know that the values are constrained to be between zero and one. However, probabilities can also be expressed as odds. The odds that an event will happen is the probability of it happening divided by the probability of it not happening. So if p is a probability of an event, then p/(1-p) is the odds of the event*. Odds are constrained to be between 0 (when p = 0) and infinity (when p = 1).
Now, if we take the logarithm of the odds, then the resulting value is the log-odds, and this number can take any real value between minus infinity (when p = 0) and plus infinity (when p = 1)**. This transformation is useful, because it is straightforward to define a distribution on this interval – we can use a normal distribution. Now our pool of possible failure rates can be defined by a normal distribution (with the values drawn from this distribution being back-transformed to become probabilities). The statistical model*** then simply needs to estimate the mean and standard deviation of this underlying normal distribution.
So what do the results of the hierarchical model indicate? Well, that model suggests that differences between jurisdictions in the rate of hotel failure might be as large as an order of magnitude or so (e.g., compare the extreme upper limit of one jurisdiction to the lower limits of others). But equally, there is also not compelling evidence that the risks differ much at all (e.g., note the large overlap of the 95% intervals). So when I hear pundits declaring how one state's quarantine system is better than another's based on the rate of failure, I just roll my eyes – they don't quite understand how variable chance can be, especially when estimating rates of rare events.
Estimated probability of failure of COVID hotel quarantine for each infected traveller, based on a hierarchical model of the failures reported in Grout et al. (in review). The dots are means of posterior distributions, and the bars are 95% credible intervals. The right hand value is the average over the Australian states and territories.
Since the preparation of Grout et al.'s paper, we've seen further escapes from hotel quarantine – Victoria's current outbreak being a case in point. And there is a second possible escape too, although sequencing so far has been unable to pinpoint the source of the delta variant in Victoria. But Grout et al.'s data suggest that an escape will be identified for every 200 or so COVID-positive cases in hotel quarantine. With COVID cases continuing to be common around the world, we'll see more COVID cases in hotel quarantine with more outbreaks expected.
* You will have seen odds in horse racing. These define the payout from the bookmaker. They are essentially the odds of the horse not winning (while also factoring a small margin to pay for the bookmaker's investment portfolio and collection of fancy cars).
** This is the logit transformation and is the basis of logistic regression.
For those interested in the details, here is BUGS code for the hierarchical model:
for (i in 1:8) # for each of the 8 jurisdictions.
re[i] ~ dnorm(0, tau) # how the probability of failure for each jurisdiction varies
logit(p[i]) <- logit(pav) + re[i] # the prob of failure for each jurisdiction
fails[i] ~ dbin(p[i], cases[i]) # failures treated as a set of Bernoulli events
OzHQ <- mean(p[2:8]) # average probability of failure for Aust hotels
pav ~ dunif(0, 1) # the prior for the average probability of failure
tau <- 1 / (s * s) # BUGS defines variation of dnorm by precision = 1/variance
s ~ dunif(0, 100) # the prior sd
And here's the data used (NT is excluded given it includes the non-hotel site of Howard Springs; the order is: NZ, ACT, NSW, Qld, SA, Tas, Vic, WA):
cases[] fails[]
758 10
25 0
1581 5
543 3
230 1
21 0
462 4
450 1
Posted in Communication, COVID, Probability and Bayesian analysis | Tagged,,, | Leave a comment
Projecting future deaths from COVID-19 cases
As the number of COVID-19 cases increases in the US and Europe over the last few weeks, some people have claimed that deaths have not increased. Indeed, Donald Trump Jr has claimed* that the number of deaths has declined to "almost nothing".
Daily number of deaths in the US attributed to COVID-19. The black line is a weekly average, which smooths variations and anomalies such as the lower reporting rate associated with weekends.
Firstly, this claim is flatly false – deaths in the US are increasing, and have been doing so for a fortnight. But will the new large spikes in cases lead to large spikes in deaths? The TL;


Geometric Multigrid Methods
Sunday, November 28, 2010 - 9:00am - 10:30am
Keller 3-180
Susanne Brenner (Louisiana State University)
Geometric multigrid methods solve an elliptic boundary value
problem on a sequence of grids generated by a refinement
procedure. They have optimal complexity in the sense that
the computational cost is proportional to the number of
unknowns. In this tutorial we will introduce various
multigrid algorithms (V-cycle, W-cycle, F-cycle, etc.)
and discuss their convergence analysis.


Making The Pinhole
Cut out a piece of aluminium from the drinks can, about 15mm square. Place the aluminium onto some thick cardboard. Using the fine sewing needle or sharp pin, gently press into the centre of the aluminium. Twist the pin between your fingers while doing this so that it slowly "drills" a hole through the metal. Don't push down hard with the pin so that it goes straight through, the idea is to produce a very small hole with clean edges.
The ideal diameter of the pinhole is about 0.2mm, smaller is OK, larger and the images produced will be less sharp.
 Colour the back of the pinhole black, again this should help reduce internal light reflections in the camera
Place the aluminium onto the box so that the pinhole is exactly in the centre of the square hole in the top of the box.
Tape the aluminium onto the box, securing all four sides
Previous Next
Copyright 2008


Thermally conductive and electrically insulating alumina-coated graphite/phthalonitrile composites with thermal stabilities
Alumina-coated graphite (Al2O3@graphite) core-shell particles were firstly synthesized by a liquid-phase chemical precipitation with the aid of sodium dodecyl sulfonate (SDS) surfactant using an inorganic precursor, then to fabricate thermally conductive and electrically insulating phthalonitrile composites by a hot-compression method. The obtained composite with 40 wt% Al2O3@graphite exhibited a thermal conductivity of 1.409 W/mK, 6.6 times that of pristine phthalonitrile matrix (0.214 W/mK). And the composites still retained electrical insulation below 20 wt% Al2O3@graphite content. Moreover, excellent thermal stabilities had been observed, compared with the glass transition temperature of pristine phthalonitriles (460 °C), the glass transition temperature of the composites decreased slightly but still high. Additionally, at 20 wt% content, the weight loss temperature (T5 and T10) and the char yield at 1000 °C (Yc1000) were 525 °C, 589 °C and 74.9% which was 8 °C, 14 °C and 3.1% higher than that of pristine phthalonitriles, respectively, which holds potential for use in the high temperature thermal management.
Submit the form below to access the download:


text:
Pretty Drink Garnishes
Keep it Cool
1. Hold a cucumber (or try a firm, ripe pear) in one hand and a paring knife in the other. Place the blade about 2 inches from the end of the cucumber and start the cut right under the surface of the skin, sliding the blade at an angle in toward the center of the cucumber.
2. Rotate cucumber and repeat four more times (each cut creates a petal), making sure the cuts connect.
3. Twist off the flower by gently rotating the cucumber's end back and forth.
4. Cut a vertical slit in the bottom of the flower, then slide it on the edge of a glass.
Tip: Store the flowers in cold water to keep them fresh.
Twist Your Citrus
1. Peel an orange in one long, 1-inch-wide piece. The trick: Adjust your blade if the strip starts to get too narrow.
2. Wrap the peel around your finger, pinch, and pull off.
3. Hold to keep the rose shape, then cut a vertical slit through the layers. Slide the rose on the glass and insert a fresh bay leaf between the layers.
Make a Berry Bouquet
1. Hold a gelatin sheet ($17.99 for 75, chefshop.com) at both ends and carefully twist into a cone shape.
2. Hold cone in one hand; with the other, dip a finger in water and moisten outside flap. Press flap (for about 15 seconds) to seal the cone. Fill with berries and lay across rim of glass.
Top It With a Cherry
1. Slice an apple vertically into 1/2-inch-thick pieces.
2. Cut a cocktail cherry-size hole (about 1-inch diameter) in the slice: Tap the tip of the knife in and out of the slice (imagine a sewing machine's movement) while rotating it. Pop out circle.
3. Insert a cherry into the hole. Make a small vertical slit in the slice and place on rim of glass.
Sprinkle in Some Sparkle
1. Choose a color of Luster Dust, an edible yet flavorless powder ($2.95, amazon.com) that comes in 20 shades.
2. Add a pinch of the powder to each drink, stir, and voilà — your drinks will have a beautiful iridescent sparkle.

source: openbmb/Ultra-FineWeb


text:
What Is the Life Expectancy Method?
The life expectancy method is a way of calculating individual retirement account (IRA) distribution payments by dividing the balance or total value of a retirement account by the policyholder's anticipated length of life. The life expectancy method is the most straightforward method of calculating required minimum distributions (RMDs) for retirement accounts by the Internal Revenue Service (IRS).
RMDs are required distributions that must be withdrawn from certain retirement accounts once the owner reaches age 72. Please note that the IRS has suspended RMDs for retirement accounts, including IRAs and 401(k)s for 2020.
- The life expectancy method is the primary way of figuring out your RMD amounts.
- RMDs are required distributions that must be withdrawn from certain retirement accounts once the owner reaches age 72. (Note that RMDs were suspended for 2020.)
- The life expectancy method takes into account your actuarial life expectancy and the starting account balance.
Understanding the Life Expectancy Method
The life expectancy method is used to calculate RMDs from traditional IRAs or qualified retirement accounts, such as 401(k) plans. The minimum withdrawal amounts must be taken from these accounts starting at age 72.
This method uses IRS life expectancy factors along with the value of your IRA in the year of distribution before that year's withdrawal. This is, therefore, a variable method, and if your IRA value increases or decreases, the year's distribution amount will increase or decrease accordingly. This is also the case when it comes to your life expectancy.
IRS actuarial tables help determine the life expectancy of the owner or the joint life expectancies of the owner and a beneficiary.
Types of Life Expectancy Methods
There are two types of life expectancy methods: the term-certain method and the recalculation method.
In the term-certain method, distribution or withdrawal from the retirement account is based on your life expectancy at the time of the first withdrawal. With each following year, the account is steadily depleted as life expectancy reduces by one year. The retirement account will eventually be empty once you reach your life-expectancy age. Thus, some people may completely run through their funds if they outlive their life expectancy.
To offset the risk of outliving annuity payments, some choose the recalculation method, which differs from the term-certain method by recalculating your life expectancy every year. In this case, you are withdrawing as little as possible from your account. However, if your beneficiary dies prematurely, you would have to refigure withdrawals based on your life expectancy alone.
Example of the Life Expectancy Method
Let's look at the case of a 54-year-old single woman who chooses the term-certain method of life expectancy withdrawals. In this scenario, if the woman wants to begin receiving IRA distributions in 2021, she must first calculate the total account value as of Dec. 31, 2020, as well as her life expectancy according to IRS Publication 590 Appendix C. If the account value were $100,000 and her life expectancy is 30.5 years, the amount she can receive in distributions each year is $3,278.69.
The following year, the now 55-year-old would again take note of the account balance on Dec. 31 and divide the amount by 29.6, her new life expectancy. Essentially, the older she becomes, the shorter her life expectancy becomes, although this relationship is not linear.


text:
Finland's climate policy encompasses many different actors and levels. At international level, negotiations are conducted within the United Nations Framework Convention on Climate Change (UNFCCC), where Finland negotiates in the capacity of an EU Member State. At national level, the preparation of Finland's climate policy is divided among various ministries, while decision-making power rests with the Government and Parliament.
Division of labour between ministries
The Ministry for Foreign Affairs is responsible for duties vested in foreign service and participates in international climate negotiations in this role.
The issues for which the Ministry for Foreign Affairs is responsible include the following:
- international financing for climate affairs
- adaptation issues in developing countries
- improving the preparedness of developing countries to take action
- preventing deforestation and forest degradation in developing countries (REDD+)
- clean development mechanism (CDM)
- assessment of the impact of climate change on foreign policy
- trade policy
- contractual issues.
The Ministry for Foreign Affairs serves as the Finnish national authority for the clean development mechanism and monitors the implementation of CDM projects.
The Ministry of the Environment bears the main responsibility for the preparation and coordination of Finnish stands in climate issues. This is done in cooperation with other ministries.
The Ministry of Employment and the Economy is responsible for the preparation of Finnish national climate targets and for emissions trading in the EU.
The Ministry of Agriculture and Forestry and the Ministry of Transport and Communications are responsible for climate affairs in their own administrative sectors.
- Ministry of the Environment: Climate change
- Ministry of Agriculture and Forestry: Finland's National Strategy for Adaptation to Climate Change
- Ministry of Employment and the Economy: National Climate and Energy Strategy
- Government Foresight Report on Long-term Climate and Energy Policy: Towards a Low-carbon Finland
Content administrator Unit for International Environment Policy

source: HuggingFaceFW/fineweb-edu


Paama or Paamese is an Austronesian language spoken by about 7,000 people in Paama island, a part of Malampa Province in Northern Vanuatu, and in others parts of Vanuatu. It is a member of the Oceanic branch of the Malayo-Polynesian languages, and is closely related to Southeastern Ambrym, though the two languages are not mutually intelligible.
Paama alphabet and pronunciation
Paama alphabet and pronunciation
Tower of Babel in Paama
Information about Paama language
Malayo-Polynesian languages
Other languages written with the Latin alphabet
Learn Chinese Characters with the Omniglot Chinese app | Language Jobs at
Hosted by Kualo


text:
The Echinoderm Portal
Five groups are counted among Recent echinoderms, feather stars and sea lilies (Crinoidea), seastars (Asteroidea), brittle and basket stars (Ophiuroidea), sea urchins (Echinoidea) and sea cucumbers (Holothuroidea). Additional about 15 groups have gone extinct during the long history of evolution.
Echinoderm research in Sweden and at the Swedish Museum of Natural History has a long history. Sven Lovén studied sea urchins in the 19th century and Hjalmar Théel described a new genus of sea cucumbers. At the same time, A.W. Ljungman in Uppsala described over 70 species of brittle stars and a sea cucumber.
This tradition is continued today by Sabine Stöhr with research on the classification (taxonomy) and evolutionary history (systematics) of brittle stars.


BBC Home
Explore the BBC
Last Updated: Wednesday October 07 2009 12:36 GMT
Worries over blue asthma inhalers
As many as 100,000 children in the UK who are living with asthma might not be getting as much help as they thought from their inhalers.
Scientists have found the medicine inside certain inhalers isn't very effective for some children.
That's because they have something in their bodies which means the drugs in "blue" inhalers don't work as well.
The inhalers do still make it easier to live with having asthma, but not as much as they do with other children.
The researchers looked at 1,000 children with asthma and found that those who carried two certain genes were more likely to suffer an attack if they needed their inhalers every day.
Using an inhaler still made it more comfortable for them, but not as much as for children without the genes.
Keep using inhalers
The people behind the study reckon the results are really important, but say kids with asthma should not change the way they use their inhalers until more research is done.
If you are worried about your asthma medicine then chat to your parents or a teacher about what you should do.


text:
Breed profile of the Himalayan rabbit, one of the oldest breeds known for its distinctive colouring of dark points on a white coat. Popular childrens pets and house rabbits, Himalayans are generally very calm, good-natured and friendly.
The early origins of the Himalayan breed are obscure. White rabbits with dark colouring on the ears, nose and feet have been known in many parts of the world for hundreds of years. They have been given many names including the Chinese, Russian, Egyptian and Black Nose. It is one of the oldest and most widespread breeds. (In fact, the mutation responsible for the 'Himalayan' colouring may have occured spontaneously in different breeds in different parts of the world. Scientists have shown that the British Himalayan breed shares no genetic link with a similar breed developed in France around the same time, and therefore must have had different origins).
The Himalayan breed, as we know it today, originated in Britain in the mid 19th century. It is thought that the breed was developed from rabbits brought back from the Himalayas by English merchant adventurers. The Himalayan was developed both for its distinctive colouring and the quality of its fur and became popular as both a commercial and show breed. The first Himalayans were black, a blue variety was achieved through cross-breeding, followed by several other colours. The Himalayan was exported to the United States in the early 1900s.
The Himalayan is a small rabbit, usually weighing around 1.5-2.5kg (3-5½lbs).
Himalayans have a slender,'snaky' build. They have a long body with a level back and hips the same width as the shoulders, and long, slender legs. The head is long and slim, with short, tapering, upright ears.
The Himalayan colouring is white with coloured ears, nose, legs and tail. The oval nose marking runs beneath the jaw and well up the profile of the nose towards the eyes. The ears are coloured from the base to tip, as is the tail. The feet, including the nails are dark and the colouring runs well up the legs.
The actual colouring of the Himlayan is imprinted through a recessive gene and only shows itself on the body extremities which are colder through poorer circulation. Himalayan rabbits are born white or pale grey; the colouring starts to appear at about 4 weeks and develops fully over the first 6 months. The colouring is susceptible to change, growing darker in cold temperatures and lighter in warmth.
The Himalayan has short, fine hair and a smooth, soft coat.
Black, Blue, Chocolate and Lilac.
Himalayans are generally very calm, good-natured and friendly. They are intelligent, playful and social rabbits and thrive on attention. Himalayan rabbits are usually excellent with children, they are very tolerant, content to be cuddled, and rarely bite or scratch.


text:
LEARN ENGLISH COUNTABLE POSSESSIVE NOUNS
Possessive nouns in English show a possession
relation between two nouns. They take the form of (noun +'s + noun)
Peter's car. (correct) (El coche de Peter)
In this example the noun "Peter" possesses a
"car". Spanish speakers find these types of nouns a bit difficult to use at first.
They tend to use the "of" sentence to show
any type of possession relation.
The car of Peter. (incorrect) (El coche de Peter)


text:
Pub. date: 2010 | Online Pub. Date: November 23, 2010 | DOI: 10.4135/9781412959193 | Print ISBN: 9781412959186 | Online ISBN: 9781412959193| Publisher:SAGE Publications, Inc.About this encyclopedia
Jankowski, Martin Sanchez: Islands in the Street
Kirsten Hutzell & Kelly Welch
American gangs have been long identified as troublesome and socially undesirable elements of society. Negative perceptions of gangs permeate the consciousness of members of the public, government officials, and media outlets. As such, Martin Sanchez Jankowski attempted to improve public understanding of gangs by examining uncharted territory with Islands in the Street, which offers a contemporary ethnography of juvenile gangs and represents a considerable departure from previous explorations of gang behavior. Winning "best book" awards from the American Sociological Association in 1992 and the Society for the Study of Social Problems in 1993, Jankowski predicted that gangs were groups with different social organizational patterns rather than disorganized elements of society, which was an uncommon approach to the subject matter. As part of a 10-year field study, Jankowski immersed himself in the environment of 37 urban street gangs of varying size, ethnic composition, and purpose. Using informal interviews and participant...


text:
371: Compiler Complaint
Title text: Checking whether build environment is sane... build environment is grinning and holding a spatula. Guess not.
A Compiler is a program that converts code into machine instructions that a computer can run. A Pointer is a variable within a computer program that is used to reference a memory location. A Segmentation Fault (segfault) is an error that occurs when a program attempts to access an invalid section of memory. Segfaults usually cause a program to crash in an ungraceful fashion and fixing them can be difficult.
In the comic, the computer starts talking to Cueball and compares a segfault with the unpleasant feeling one gets when they experience a hypnic jerk. The computer then tells the programmer to "double-check your damn pointers," as segfaults usually arise from a program attempting to access memory that is referenced by an invalid pointer.
The title-text references GNU-style autoconf configuration scripts. These scripts check certain features of the system they're running on in order to build a program correctly; for example, certain systems expect system calls to occur in a specific way, and the autoconf script will detect this and alter the program to match the expectation. Invariably (and memetically), these scripts include a check to determine "whether the build environment is sane." This actually checks whether a newly created file is older than the script itself, which could indicate a very esoteric filesystem, a corrupted source archive, or just a system clock that's set incorrectly; however, since these file modification dates are an important part of how the autoconf script does its work, it can't go any further in an "insane" environment. In any case, the joke is that an insane build environment is nothing like an insane person, yet Randall is equating the two.
- [Cueball sits at a computer, hand over the keyboard]
- Computer: Okay, human.
- Cueball: Huh?
- Computer: Before you hit "compile," listen up.
- Computer: You know when you're falling asleep, and you imagine yourself walking or something, and suddenly you misstep, stumble, and jolt awake?
- Cueball: Yeah!
- Computer: Well, that's what a segfault feels like.
- Computer: Double-check your damn pointers, okay?


About the Adjust SDK
SDKs are software toolkits that help developers create apps and add features (like advertising, social media, and attribution) to existing apps. The Adjust SDK lets you track your attributions and in-app events in Adjust.
Once implemented into your app, the Adjust SDK is the foundation for all of our services. You can find our SDK setup instructions for all supported platforms—including iOS, Android, and Windows—in our developer guides on GitHub.
Our SDK is open-source, which means that anyone can see, change, and share the source code that comprises the software. This lets you:
 - understand exactly how the Adjust SDK works and affects your app
 - decide which parts of the software to implement
 - directly access and edit the code you're using
 - quickly adapt to OS changes and other digital updates
Adjust SDK FAQs
What is a verbose log and when should I pull one?
A verbose log is a detailed summary of what's happening during your SDK integration testing. It includes information like warnings, errors, and assertions.
Pull a verbose log whenever you run into trouble with your SDK integration. If you can't identify the issue, send the log to your Account Manager to find a solution.
To pull a verbose log, follow these steps.
 1. Set your app environment to sandbox mode (instruction for iOS and Android)
 2. Set your log level to verbose (instructions for iOS and Android)
 3. Build and run your app
 4. Execute whatever you'd like to test in your app (events, sessions, reattributions, etc.)
 5. Copy the log output from within the Android Studio or Xcode console
All set! Now you can send the log output to your Account Manager.
How big is the Adjust SDK?
The size of the Adjust SDK depends on your integration. Here are some estimates for how much information the Adjust SDK will add to your app:
 - With Carthage: 2,600 kb
 - With CocoaPods: 600 kb
 - Without Google Play services: 60 kb
 - With Google Play services: 50 kb


What are the substatuses of messages and what do they mean?
normal - the instance is running, everything is in order
loading - the instance is loading
offline - offline instance (disabled)
expired - the instance has expired (you need to pay)
opening - the instance is launched
pairing - the session is doubled (meaning 2 active web WhatsApp sessions, in which case the instance will not work correctly)
timeout - the timeout expired (the instance did not respond to the request within 30 seconds)
computer - problems connecting to the computer
phone - problems connecting to the phone
battery_low1 / 2 - the battery is almost discharged (1 and 2 depending on the stage, 2 - the charge is less than 5%)
Was this article helpful?
Your opinion will be used to improve the content of the article
The Most Multifunctional WhatsApp API Provider
Here are some curious and important figures:
 - 3200 cores and 25 terabytes of RAM;
 - 200+ WhatsApp methods and features that keep adding;
 - Highload system, Up Time servers 99.9%;
 - Support 24\7;
Get access to the WhatsApp API


text:
Multiplying Feet and Inches
How to multiply feet and inches
- Convert feet and inches to inches by multiplying feet by 12 and adding the number of inches
- Perform the required multiplication to determine the number of inches.
- Convert the inches to feet and inches by dividing by 12.
- The quotient is the number of feet and the remainder is the number of inches.
Example: Multiply 5 feet 7 inches times 4
- Convert 5 feet to inches by multiplying 12 by 5:
12 * 5 = 60 inches
- Add the number of extra inches:
60 + 7 = 67 inches
- Perform the required multiplication:
67 * 4 = 268 inches
- Convert to feet and inches by dividing by 12:
268 ÷ 12 = 22 R 4
- The quotient (22) is the number of feet and the remainder (4) is the number of inches.
- Answer: 22 feet 4 inches


text:
Want to know where Cymbeline is set? See each setting Shakespeare used in the play on the map below.
Shakespeare was 'thinking deep' in setting Cymbeline. It's set in the middle ages in a mythical England and a Rome that is very different from the Rome of Shakespeare's great Roman plays. It is more like the Renaissance cities Shakespeare creates in other plays, such as Verona in Romeo and Juliet. Shakespeare reminds us all the time of the setting by referring to the two places. He uses the word Britain rather than England because in this play the idea of Empire is central. It is to some extent about the tension between the two empires of Rome and Britain, the first in a decadent state and the second beginning to flourish. The old and the new. The play's major ambiguity is that Rome is the ruler of Britain and its equal at the same time.
The map below shows all the locations Shakespeare used for Cymbeline. You can zoom in on the map for a more detailed view of an area, and click the icons on the map for more information. Text in the more info box are the specific locations Shakespeare references in his Cymbeline text.


text:
When we try to see the MicroStation Properties of ProStructures elements there so many types of properties visible in the dialog box. As there are so many types of properties visible, we can limit the number of properties visible. In this wiki, we will learn how to hide unnecessary properties.
1.Right Click on any ProStructures' element and click on its Properties. 2. This will open the properties dialog showing all the properties like geometrical properties, structural properties etc. 3. To hide any individual property, right click on the section of that properties and click on hide option.4. This will show 'Show/Hide' option and from here you can uncheck the properties which are not useful for you. In this way, you can limit the number of properties which as per the requirement.


text:
US researchers have reported that the saline content of the ocean surface provides a far more reliable indicator of whether or not heavy summer rains will fall in the US Midwest compared to sea surface temperatures.
Seasonal weather in the Midwest is atmospherically connected to the Pacific and Atlantic Oceans, with wind patterns delivering heat and moisture to the region at different times in the year. The report states that scientists have long relied on sea-surface temperatures to predict how those wind patterns will behave and what the weather will be thousands of kilometers away from the ocean.
Sea surface temperature however is highly variable, especially as oceans warm, so rainfall predictions based on temperature can be hit-or-miss. Adding data about surface salinity improves predictions for overall seasonal rainfall by telling meteorologists how much water has been supplied to the atmosphere.
When water evaporates from the ocean, it leaves its salt behind, so the surface ocean gets a little bit saltier. That evaporation is driven by large-scale atmospheric patterns that are connected to weather over the continental USA, so saltiness works as an indicator for the amount of moisture carried by the atmosphere and patterns in where it will rain out.
"For these seasonal weather patterns, we look at the oceans because they store far more heat and water than the atmosphere," and therefore drive large-scale atmospheric patterns, explained Raymond Schmitt, oceanographer at Woods Hole Oceanographic Institute and study co-author.
Remote sensing and floating sensors provide frequently updated salinity data for vast swaths of the oceans, allowing Schmitt and colleagues to draw connections between salinity and weather patterns.
Laifang Li, a climate scientist at Pennsylvania State University and lead author, said, "It turns out for extreme precipitation years, patterns of sea surface temperature are just really diverse, with different patterns every year. Salinity is more reliable."
The new study builds on previous work on salinity-based predictions Schmitt has conducted with Li. Schmitt is already working with agricultural suppliers to use the salinity-based predictions, which he says they have found helpful for advising farmers and an improvement on other predictors.
Sensing summer rains
The study specifically improves predictions of timing and magnitude for summer extreme rainfall events in the Midwest, which are more difficult to accurately predict than overall rainfall for a season. Li used Midwest rainfall data from 1948 to 2019 and compared it to sea surface temperature and salinity records in different parts of the Pacific and Atlantic oceans across the same time period.
The team found that by incorporating springtime sea surface salinity in the tropical Pacific and subtropical North Atlantic into predictive models, their predictions for summertime extreme rain events were 92% more accurate than sea surface temperature-based predictions alone for the Midwest. In practical terms, their models using salinity captured twice as much variability in the amount of extreme rains as models using sea surface temperature.
To view the study Skillful Long-lead Prediction of Summertime Heavy Rainfall in the US Midwest from Sea Surface Salinity published in AGU's Geophysical Research Letters, click here.


text:
AgriTrace is an innovative agro traceability software designed to revolutionise the agriculture industry in Bangladesh. Our comprehensive software suite provides end-to-end traceability solutions for aquaculture, livestock, poultry, and crop management. With advanced features and a user-friendly interface, AgriTrace empowers farmers to streamline their operations, optimise resource utilisation, and ensure food safety and transparency throughout the value chain.
- Water quality monitoring: Track and analyse water quality parameters to ensure optimal conditions for aquaculture.
- Feed management: Manage and optimise feeding schedules and quantities for improve health and growth.
- Disease control: Monitor and prevent diseases through early detection and effective disease management protocols.
- Harvest planning: Plan and schedule harvests to maximise efficiency and meet market demands.
- End-to-end traceability: Track the journey of seafood products from hatchery to market, ensuring transparency and quality assurance.
- Animal health monitoring: Keep a close eye on livestock health, detect early signs of diseases, and facilitate prompt treatment.
- Nutrition management: Optimize feed formulations and monitor feed consumption to enhance animal productivity.
- Breeding management: Efficiently manage breeding cycles, track genetic data, and improve breeding outcomes.
- Vaccination tracking: Record and track vaccinations to ensure herd immunity and prevent disease outbreaks.
- Productivity analytics: Gain insights into livestock performance and make data-driven decisions to maximise productivity.
- Flock health monitoring: Monitor poultry health indicators, detect potential diseases, and implement preventive measures.
- Feed management: optimise feed formulations and monitor feed consumption for optimal poultry growth and nutrition.
- Production planning: efficiently plan and manage production cycles, ensuring consistent supply to meet market demands.
- Biosecurity protocols: Implement and track biosecurity measures to minimise the risk of disease transmission.
- Traceability and quality control: Track poultry products from farm to market, ensuring traceability and adherence to quality standards.
- Real-time crop monitoring: Monitor crop growth, detect pest and disease infestations, and implement timely interventions.
- Irrigation scheduling: Optimize water usage through intelligent irrigation scheduling based on crop needs and weather conditions.
- Harvest planning: Plan and schedule harvests to ensure optimum yield and minimise post-harvest losses.
- Sustainable farming practices: Promote sustainable agriculture through data-driven insights and recommendations.
- Yield forecasting: Predict crop yields based on historical data and current conditions, facilitating better market planning.
AgriTrace's software solutions empower farmers to make informed decisions, optimise resource management, and ensure compliance with industry standards. By embracing digital transformation and implementing AgriTrace, farmers can enhance productivity, improve food safety, and contribute to a sustainable and transparent agricultural ecosystem.


text:
Development of an interpreting service model at the Durban University of Technology
Makhubu, Rosethal Loli
MetadataShow full item record
This research deals with the development of a model of interpreting services for a newly merged multilingual University of Technology, the Durban University of Technology. The rationale for the study was the urgent need to give students whose mother tongue is not the medium of instruction (i.e. English) equity of access to higher-degree education. The research was carried out within a critical realist approach, which seeks to transform society by practical application of theory. Unlike previous studies in interpreting, this research focuses on the service provision aspect of interpreting. It falls within the field of educational interpreting, but goes beyond the classroom situation in considering other university interpreting needs, such as seminars and in-house conferences, graduation and other ceremonies, operational meetings and labour-related meetings. Franck‟s modelling process was used to formulate a theoretical model of the interpreting service delivery mechanism using data gathered during visitations to local and international universities. The theoretical model, or system of essential functions, was used to arrive at the applied aspect of the mechanism, termed an empirical model of interpreting service delivery. The model was then validated in terms of its application in various contexts at the Durban University of Technology. It is suggested that the theoretical and practical models developed have application not only for educational interpreting, but also in other interpreting contexts. The models are also considered to have relevance for service delivery in general, which is a critical issue at present in South Africa.


Compiled XAML = BAML not IL
May 25, 2007
Yesterday I lectured about XAML and the following question was asked: Why XAML is compiled into BAML and not directly into IL for better performance?
Before giving the correct answer, I want to explain what BAML is.
There are actually two ways for handling a XAML file: Loose or Compiled.
 - Loose XAML file should be parsed at runtime, and can be deployed as a simple XML file, locally, remotely or embedded into the assembly.
 - Compiled is a XAML file marked as "Page" in Visual Studio ( in MSBuild), deployed as a BAML (Binary Application Markup Language) file and embedded as an assembly resource.
A loose XAML file can't include the x:Class XAML keyword, also it can't embed a source code, nor it can emit code by all means. It is possible to load a loose XAML file by calling XamlReader.Load() method, casting the return value into the root element. The loose XAML version provides a dynamic way to load and change the view, but provides poor performance due to the fact that the XML file is parsed at runtime.
A compiled XAML file (BAML) can emit code, by using x:Class, or by registering events for example. It is possible to load an element from inside the BAML by calling the Application.LoadComponent(), casting the return value into the root element. The compiled XAML version provides better performance since it is pre-tokenized binary version of the XAML file, hence it is smaller and can be loaded faster, but it is not dynamic.
Once upon a time, there was CAML. CAML was the exact IL version of the compiled XAML file. Unfortunately, the WPF team has decided to eliminate it, and keep the BAML version for the following reasons:
1. BAML is compact hence it can be downloaded faster (good for XBAP applications)
2. BAML is less security threat than code execution (good for XBAP applications)
3. BAML can be localized after compilation
In the bottom line, BAML is a little slower than IL but has more advantages than CAML.
Add comment
facebook linkedin twitter email
Leave a Reply
Your email address will not be published.
 1. JigneshMay 5, 2010 ב 18:01
 Good one…..Really helpful…..
 2. Claude GlauserFebruary 24, 2011 ב 22:10
 Thanks a lot for good your explanation! It is much clearer now. One question left: Why is BAML less security thread?
 3. Tomer ShamamFebruary 24, 2011 ב 22:54
 Hi Claude,
 It is said that BAML is safer than IL, since it can't contain malicious code, it is only a binary stream of WPF objects, where IL can be anything.
 BAML is considered safer when dealing with XBAP applications.
 4. LakshmiMarch 2, 2011 ב 18:33
 Your explanation saved me alot instead of wasting one more day to load loose xaml.
 5. DavidFebruary 8, 2012 ב 18:01
 Great explanation
 6. AlexanderAugust 21, 2013 ב 21:03
 Good explanation, thx.


Saturday, 16 December 2017
The Bootleg Myth
Posted in Science / Social Sciences / Sociology
The Bootleg Myth is Bust: More Etymology Dysology Uncovered
Feb. 22, 2013 3:12 am
Research Boots-out The Etymological Bootlegger Origin Myth
Without a single reference to support the claim, all of the major dictionaries and etymology textbooks assert confidently that the words bootleg, bootlegging and bootlegger all stem from the past practice of illegal alcohol peddlers concealing their product inside their boots. OK - let's try to picture these mythical bootleggers and their modus operandi - they put bottles down their boots so nobody would know they were carrying illicit booze. Have you ever put a bottle down your boot and tried to walk?
Surely, you would have to be at least as large as a fantastical child's nightmare 150 foot pirate with massive galleon boots to stand a chance of making a profit by selling bottles of booze that you carry around stuffed down inside of your boots. How much profit could normal sized folk possibly make by stuffing a few tiny bottles of plonk down them for the purposes of transportation and selling? As for not drawing attention to yourself as an illicit product peddler, the whole image is ludicrously Pythonesque .
Imagine it:
Clink, stagger, funny walk, clink, clink, clink: "Oh hello Sheriff, nice day for a casual stroll in these massive boots. Who me, got a problem with my legs. No. Why-ever would you think that?" Clink, clink, clink.
Rees's (2002) unevidenced explanation of the bootlegger phrase is not untypical of the obvious fact that nobody seems to have thought the guesswork through with their head outside of a book:
' The word arose in the American Far West in the mid-nineteenth century when illegal liquor sales were made to Indians on reservations. The thin bottles of alcohol are said to have been concealed in the vendor's long boots.'
Chamber's Dictionary of Etymology (1998) also rolls out the same unevidenced booze down the boots story, as does the aptly named Brewers Dictionary of Phrase and Fable (2012). Moreover, you'll find the exact same story repeated endlessly in free internet dictionaries such as The New World Encyclopedia:
'The term "bootlegging" first came into use during Prohibition in the United States, and referred to the black market illegal transport and sale of alcohol. Those wishing to illegally transport alcohol would sometimes hide flasks of liquor in the shanks of a boot. Though the term can now be used to refer to the sale or transport of any illicit goods, it almost exclusively refers to the sale or trade of unauthorized music performances, including video or audio copies of concerts, studio outtakes, or songs never intended for release.'
The Bootleg Mythbust
My own research has not turned up a shred of evidence to support this orthodox booze-down-the-boot 'knowledge' claim. Until published evidence is forthcoming, therefore, we should treat this orthodox explanation as a total myth. So what might be a more likely - evidenced - source of the words bootleg and bootlegger?
Using internet dating to create a published bootleg usage time-line reveals that the word bootleg appears to be a US term used by prohibitionists to associate illicit alcohol with foul tasting bootleg (coffee made from burnt bread). Bootleg coffee was a standard prison ration in the US. The name bootleg by way of its close association with a foul tasting inauthentic beverage consumed by convicts was a perfect name with which to label illicit alcohol and those who illegally sold it.
Timeline for published use of the words bootleg and bootlegger.
 1. Bootleg 1854 –leather cut for the leg of a boot - used for many things after the boot is made and worn out including (e.g.door hinges for a cabin 1875. and there was no illicit association with the word in the mid-19th century
 2. Some pistols made in the mid 19th century and used, for example, in 1876 were carried down boots and used illegally . Some such pistols are today named bootleg pistols . However, I can find no evidence that they were so named in the 19th century. If future research reveals that they were so named at the time then that alone would not refute the bootleg coffee source of the word's criminological significance. Because evidence would need to be found that 'bootleg pistols' were (a) associated with criminals and (b) associated with illicit alcohol or (c) bootleg coffee.
 3. Bootleg – faux coffee made from burnt bread, molasses and hot water- 1876 - standard prison ration
 4. Bootleggers 1890 – illegally peddling alcohol during prohibition
 5. Bootleg buckets (prisoners carrying their soup in prison) – 1893
 6. Drinking a bootleg full of rum 1896 - fiction
 7. Bootleg liquor – 1902
 8. Bootleg whisky - 1903
 9. Bootleg relating to stolen goods (coal) 1907
 10. Bootleg records 1932 (fiction)
 11. Bootleg records 1942
 12. Bootleg manufacturing by nation state 1941 – Germany secretly making weapons of war during 1932 (in 1941 magazine article ).
If the words bootleg, bootlegger and bootlegging stem from the practice of illegally trafficking alcohol in bottles or flasks stuffed down the sellers boots then where on this Earth is the published evidence to support this claim, which is so confidently made by the most prestigious etymology dictionaries in the world?
Most tellingly, why was burnt bread coffee called bootleg in the published literature 14 years before the term was used for illicit alcohol? Could it possibly have been some kind of joke about it tasting so bad that it must have been made from the leg of an old boot?
" ... reach into the pan, grab up a handful and drop it into the tin plate of the victim; besides the beef there was a gray mixture called soup; boiled potatoes, hardtack, and coffee that could have been made of nothing else except an old bootleg."
Burnt bread coffee (bootleg coffee) may have its origins in the fact that burnt bread was used in the 19th century to purify water - since it is in fact charcoal. It was given to the sick and also placed in the water of rooms where people were sick because it was believed that charcoal would soak up any contamination and impurities (see Peterson 1857). In modern times we still use charcoal filters to purify water. The use of bootleg coffee in 19th century prisons, the military and elsewhere, while perhaps an aquired or never aquired taste, makes perfect sense in terms of seeking to ensure the water was made safe to drink.
Bootleg music
Bootleg music became big news in 1942. The mass production of bootleg records followed in wake of Petrillo the musician union's chief's imposed ban that lasted 2 years while union member musicians boycotted recording companies in order to eventually secure royalties for musicians. During this period demand for records exceeded supply leading to a noteable rise in the production of bootleg records.
Unless evidence is produced to support what etymologists at least see as the obvious, plausible, compelling but unevidenced bottles of booze down boots explanation, the published literature supports an alternative hypothesis as well as common sense. The Bootleg Coffee Hypothesis is that the US temperance movement and the criminal justice system, implementing their prohibition policies in the USA in _PHONE_ and 1890, labelled illicit alcohol as bootleg and its peddlers as bootleggers as part of a deliberate propaganda exercise to associate illicit alcohol with a foul tasting faux coffee that was known to be consumed by convicts.
The research technique concept that I have coined internet dating (please note that I most certainly never coined the phrase internet dating), which I employed to bust the bootleg myth, is based almost entirely upon the documents that Google has scanned as part of its on-going Library Project. Therefore, books and other documents that are currently un-scanned by Google, may exist to support the currently unevidenced bottles of booze down the leg story, which is current orthodox knowledge as the source of the words bootleg, bootlegger and bootlegging. If new sources apear to disconfirm the bootleg coffee hypothesis then I will update this blog articlet accordingly with a dated postscript.
Postscript 14th April 2013At the time of writing, Wikipedia currently, credulously, has it that the phrase ''bootlegging' is to do with smugglers putting alcohol inside their boots. However, Since Wikipedia is currently unethically engaged in deliberately and systematically plagiarizing the unique results of my original myth-busting work published solely here on Best Thinking, and then deliberately refusing to cite me as the originator of this brand new information that is busting decades old pervasive myths, we should expect Wikipedia to edit-out its daft mistake and yet pretend that Wikipedia editors discovered the new material and information


text:
This toutorial will show how to take out a hard drive from a computer.
Step 1: Step 1:Plce Computer One the Side With the Opening Flap Faicing the Upwards
Its really important, and makes the job easier at the end
Step 2: Step 2: Open the Computer
you open the computer by lifiting the flap, then lifting it upwards. When you open it you need to also slide it to the front.
Step 3: Step 3: Unscrew the Security Flap Off
Step 4: Step 4: Lift the Security Flap Off
Step 5: Step 5: Take Hard Drive Out
Once lifted, take out the hard drive disk. You do this by pressing on the green locks at the same time and lifting it. Before that, however, you need to unplugge the wires conneting to it


text:
WELL Hosts Manual PART IX: LINKING TOPICS BETWEEN CONFERENCES
It is possible to "link" a topic from one conference to another. When this is done, the linked topic will appear in both conferences with exactly the same title and text, but with a different topic number in each conference. Users in either conference can respond to the topic, and all new responses will appear in the linked topic in both conferences. Topics can even be linked between several conferences. (As a Featured conference host, you can only link topics *into* your own conference. You cannot link topics from your conference out to conferences not hosted by you. Independent conferences do not support linking, though a Featured conference host may link an Independent topic into his or her conference with permission.)
9.1 Advantages & Disadvantages
Linking a topic presents a unique set of advantages and disadvantages to ordinary topics. The obvious advantage is that a topic which is germane to two or more conferences can appear in both or all. For example, some topics might well belong in both the Science Conference and our imaginary Mesozoic Life Conference. But some users may only frequent one of these conferences. Linking a topic between them makes the topic available to all users who visit either conference. A user who visits both conferences will see the linked topic in each conference until he/she "forgets" the topic in one or the other.
The disadvantages to linking topics are less obvious, but very important. First and foremost is the issue of a topic's compatibility between two conferences. Different conferences have different rules, expectations and userships. It's entirely possible (and, indeed, it has happened) that a topic whose subject matter appears to apply to two conferences is a poor choice for linking because the people in one conference expect the subject to be discussed in one context, and the people in the other conference expect it to be discussed in another context. Such links can lead, inadvertently, to misunderstandings between both the participants and hosts of the different conferences.
For example, the Mesozoic Life conference is full of serious discussion, scientific fact, and proven biological premise. The TV conference is a much more social atmosphere with discussions geared towards popular culture, the production aspects of broadcasting and general banter. Someone starts a topic in Mesozoic Life on National Geographic specials that the hosts then link into the tv conference. Suddenly you have a topic full of clashing dialogue between scientific fact and discussion of content, and lighthearted banter and a discussion of Barney. Though the subject applies to both conferences, the tone of each conference is significantly different and therefore makes for poor discussion on both sides.
For example, the Mesozoic Life conference is full of serious discussion, scientific fact, and proven So, careful forethought is advised for all hosts concerned before topics are linked between conferences.
9.2 Murphy's Linking Laws
Because of the potential for incompatibility between the approach of two different conferences to the same topic of discussion, it is imperative that the hosts and cohosts of the respective conferences communicate with each other and come to an agreement regarding their linking policies prior to making any links. The following rules of thumb by Dan Murphy are recommended as standard procedure for hosts wishing to link topics:
* When you link a topic from another conference, you must first obtain the permission of a host there. Cohosts in multi-host conferences should work out among themselves the protocol for how this decision is made, etc.
Hosts may waive this rule for any hosts/conferences they wish. If, for example, the hosts of the lawn conference want to give blanket permission to the hosts of the chair conference to link topics there, they may do so, allowing the hosts of chair to skip rule #1 if they see a topic they want to link. This permission may be withdrawn at any time, but until then, the hosts of lawn pretty much have to live with the results.
* If you kill a linked topic, you should leave a message in your conference administrivia or business topic to let users know this was done, as they may have forgotten the topic in another conference but wish to continue reading it there.
9.3 Technical Side-Effects of Linking
Once a topic is linked between two conferences, the ability to scribble responses in the topic is changed. Thereafter, only the original author of the post, and The WELL confteam staff can perform this action. Neither of the hosts will be able to scribble responses (other than their own). If it becomes necessary for the hosts to do so, they must contact The WELL conferencing team, who can do it for them. The hosts of both conferences should agree on the need to scribble in a linked topic before contacting the staff with such a request.
Linked topics are also immune to the host's use of the "retire" command.
The hosts in both conferences do retain, however, their abilities to kill the topic within their own conference. When a linked topic is killed in any conference, it lives on in the other conferences to which it was linked. (This little feature is a handy way for hosts to transfer topics from one conference to another: link it into the new conference then kill it in the old conference. This is also how the attic conference can store killed topics — they are linked there before killing in their place of origin.)
9.4 The Linkfrom Command (Featured Conferences Only)
Now that you know the ins and outs of linking, the actual command may be of interest. Let's say you are the host of the Mesozoic Life conference, and you want to link topic 234 of the Science conference into Mesozoic Life. You've determined who the hosts of the science conference are either by going there and typing display host, or by typing hosted science at any OK prompt, and emailed them to confirm that the link is fine. It's ok to link with permission from one host unless that host says to wait for a reply from their cohost(s) It's wise to inform all hosts of a cohosted conference since hosts may have divided up their duties or have different schedules for logging in. Here's the command (given from the OK prompt in the Mesozoic Life conference):
Both topics will then be marked as in their headers and browse lists, and you will be told the new topic numbers of the linked topic in your conference. PicoSpan will now make an automatic post logging the numbers of the topic and noting that you made the link.
That's all there is to it. Now your guests know something about how the conversation has been expanded. To see where any topic is linked, you can type linked followed by the conference name and topic number to see where a particular topic is linked. For example:
- type: linked science 234
9.5 Listing Linked Topics
This command will produce a list of conferences and topic numbers (without their corresponding titles) for each topic in that conference that is linked. For example, for the words conference, the output of linked words might look like this:
- science.404 words.1041
- archives.208 health.444 medroll.260 words.413
- cbooks.104 media.892 oldsoft.187 software.139 words.1008
- flying.142 words.794
- eff.546 words.902
- … etc.


23. Objects
GObject is the fundamental type providing the common attributes and methods for all object types in GTK+, Pango and other libraries based on GObject. The GObject.GObject class provides methods for object construction and destruction, property access methods, and signal support.
This section will introduce some important aspects about the GObject implementation in Python.
23.1. Inherit from GObject.GObject
A native GObject is accessible via GObject.GObject. It is rarely instantiated directly, we generally use inherited class. A Gtk.Widget is an inherited class of a GObject.GObject. It may be interesting to make an inherited class to create a new widget, like a settings dialog.
To inherit from GObject.GObject, you must call GObject.GObject.__init__() in your constructor (if the class inherits from Gtk.Button, it must call Gtk.Button.__init__() for instance), like in the example below:
from gi.repository import GObject
class MyObject(GObject.GObject):
 def __init__(self):
23.2. Signals
Signals connect arbitrary application-specific events with any number of listeners. For example, in GTK+, every user event (keystroke or mouse move) is received from the X server and generates a GTK+ event under the form of a signal emission on a given object instance.
Each signal is registered in the type system together with the type on which it can be emitted: users of the type are said to connect to the signal on a given type instance when they register a function to be invoked upon the signal emission. Users can also emit the signal by themselves or stop the emission of the signal from within one of the functions connected to the signal.
23.2.1. Receive signals
See Main loop and Signals
23.2.2. Create new signals
New signals can be created by adding them to GObject.GObject.__gsignals__, a dictionary:
When a new signal is created, a method handler can also be defined, it will be called each time the signal is emitted. It is called do_signal_name.
class MyObject(GObject.GObject):
 __gsignals__ = {
 'my_signal': (GObject.SIGNAL_RUN_FIRST, None,
 def do_my_signal(self, arg):
 print("method handler for 'my_signal' called with argument", arg)
GObject.SIGNAL_RUN_FIRST indicates that this signal will invoke the object method handler (do_my_signal() here) in the first emission stage. Alternatives are GObject.SIGNAL_RUN_LAST (the method handler will be invoked in the third emission stage) and GObject.SIGNAL_RUN_CLEANUP (invoke the method handler in the last emission stage).
The second part, None, indicates the return type of the signal, usually None.
(int,) indicates the signal arguments, here, the signal will only take one argument, whose type is int. Types of arguments required by signal are declared as a sequence, here it is a one-element tuple.
Signals can be emitted using GObject.GObject.emit():
my_obj.emit("my_signal", 42) # emit the signal "my_signal", with the
 # argument 42
23.3. Properties
One of GObject's nice features is its generic get/set mechanism for object properties. Each class inherited from GObject.GObject can define new properties. Each property has a type which never changes (e.g. str, float, int…). For instance, they are used for Gtk.Button where there is a "label" property which contains the text of the button.
23.3.1. Use existing properties
The class GObject.GObject provides several useful functions to manage existing properties, GObject.GObject.get_property() and GObject.GObject.set_property().
Some properties also have functions dedicated to them, called getter and setter. For the property "label" of a button, there are two functions to get and set them, Gtk.Button.get_label() and Gtk.Button.set_label().
23.3.2. Create new properties
A property is defined with a name and a type. Even if Python itself is dynamically typed, you can't change the type of a property once it is defined. A property can be created using GObject.Property.
from gi.repository import GObject
class MyObject(GObject.GObject):
 foo = GObject.Property(type=str, default='bar')
 property_float = GObject.Property(type=float)
 def __init__(self):
Properties can also be read-only, if you want some properties to be readable but not writable. To do so, you can add some flags to the property definition, to control read/write access. Flags are GObject.ParamFlags.READABLE (only read access for external code), GObject.ParamFlags.WRITABLE (only write access), GObject.ParamFlags.READWRITE (public):
foo = GObject.Property(type=str, flags = GObject.ParamFlags.READABLE) # not writable
bar = GObject.Property(type=str, flags = GObject.ParamFlags.WRITABLE) # not readable
You can also define new read-only properties with a new method decorated with GObject.Property:
from gi.repository import GObject
class MyObject(GObject.GObject):
 def __init__(self):
 def readonly(self):
 return 'This is read-only.'
You can get this property using:
my_object = MyObject()
The API of GObject.Property is similar to the builtin property(). You can create property setter in a way similar to Python property:
class AnotherObject(GObject.Object):
 value = 0
 def prop(self):
 'Read only property.'
 return 1
 def propInt(self):
 'Read-write integer property.'
 return self.value
 def propInt(self, value):
 self.value = value
There is also a way to define minimum and maximum values for numbers, using a more verbose form:
from gi.repository import GObject
class MyObject(GObject.GObject):
 __gproperties__ = {
 "int-prop": (int, # type
 "integer prop", # nick
 "A property that contains an integer", # blurb
 1, # min
 5, # max
 2, # default
 GObject.ParamFlags.READWRITE # flags
 def __init__(self):
 self.int_prop = 2
 def do_get_property(self, prop):
 if prop.name == 'int-prop':
 return self.int_prop
 raise AttributeError('unknown property %s' % prop.name)
 def do_set_property(self, prop, value):
 if prop.name == 'int-prop':
 self.int_prop = value
 raise AttributeError('unknown property %s' % prop.name)
Properties must be defined in GObject.GObject.__gproperties__, a dictionary, and handled in do_get_property and do_set_property.
23.3.3. Watch properties
When a property is modified, a signal is emitted, whose name is "notify::property-name":
my_object = MyObject()
def on_notify_foo(obj, gparamstring):
 print("foo changed")
my_object.connect("notify::foo", on_notify_foo)
my_object.set_property("foo", "bar") # on_notify_foo will be called
Note that you have to use the canonical property name when connecting to the notify signals, as explained in GObject.Object.signals.notify(). For instance, for a Python property foo_bar_baz you would connect to the signal notify::foo-bar-baz using
my_object = MyObject()
def on_notify_foo_bar_baz(obj, gparamstring):
 print("foo_bar_baz changed")
my_object.connect("notify::foo-bar-baz", on_notify_foo_bar_baz)
23.4. API
class GObject.GObject
Retrieves a property value.
set_property(property_name, value)
Set property property_name to value.
emit(signal_name,...)
Emit signal signal_name. Signal arguments must follow, e.g. if your signal is of type (int,), it must be emitted with:
self.emit(signal_name, 42)
This method freezes all the "notify::" signals (which are emitted when any property is changed) until the thaw_notify() method is called.
It recommended to use the with statement when calling freeze_notify(), that way it is ensured that thaw_notify() is called implicitly at the end of the block:
with an_object.freeze_notify():
 # Do your work here
Thaw all the "notify::" signals which were thawed by freeze_notify().
It is recommended to not call thaw_notify() explicitly but use freeze_notify() together with the with statement.
Blocks a handler of an instance so it will not be called during any signal emissions unless handler_unblock() is called for that handler_id. Thus "blocking" a signal handler means to temporarily deactivate it, a signal handler has to be unblocked exactly the same amount of times it has been blocked before to become active again.
It is recommended to use handler_block() in conjunction with the with statement which will call handler_unblock() implicitly at the end of the block:
with an_object.handler_block(handler_id):
 # Do your work here
Undoes the effect of handler_block(). A blocked handler is skipped during signal emissions and will not be invoked until it has been unblocked exactly the amount of times it has been blocked before.
It is recommended to not call handler_unblock() explicitly but use handler_block() together with the with statement.
A dictionary where inherited class can define new signals.
Each element in the dictionary is a new signal. The key is the signal name. The value is a tuple, with the form:
(GObject.SIGNAL_RUN_FIRST, None, (int,))
GObject.SIGNAL_RUN_FIRST can be replaced with GObject.SIGNAL_RUN_LAST or GObject.SIGNAL_RUN_CLEANUP. None is the return type of the signal. (int,) is the tuple of


Using the RDBMS Operation Classes
JdbcTemplate is ideal for simple queries and updates, and when you need to build SQL strings dynamically, but sometimes you might want a higher level of abstraction, and a more object-oriented approach to database access. This is provided by the org.springframework.jdbc.object package. It contains the SqlQuery, SqlMappingQuery, SqlUpdate, and StoredProcedure classes that are intended to be the central classes used by most Spring JDBC applications. These classes are used together with a DataSource and the SqlParameter class. Each of the RDBMS Operation classes is based on the RDBMSOperation class and they all use a JdbcTemplate internally for database access. As a user of these classes you will have to provide either an existing JdbcTemplate or you can provide a DataSource and the framework code will create a JdbcTemplate when it needs one.
Spring's RDBMS Operation classes are parameterized operations that are threadsafe once they are prepared and compiled. You can safely create a single instance for each operation that you define. The preparation consists of providing a datasource and defining all the parameters that are needed for the operation. We just mentioned that they are threadsafe once they are compiled. This means that we have to be a little bit careful when we create these operations. The recommended method is to define the parameters and compile them in the constructor. That way there will not be any risk for thread conflicts.
SqlQuery and MappingSqlQuery
We have looked at some methods available for JdbcTemplate that make running simple queries and updates possible. There are, however, situations where you want a more complete solution as well as one that is more object oriented. These classes are part of the org.springframework.jdbc.object package. For running queries and mapping the results to Java classes, there is a class called MappingSqlQuery. It is easy to use and should give you enough power for the most demanding mappings. Let's look at a short example. Again, we will use an example table from our sample application. This time the example is based on the Performance table. We have added a few tables to our data model, and it now looks like Figure 5-3.
image from book
Figure 5-3
The additional DDL for these two new classes is as follows:
CREATE TABLE Performance ( id INTEGER NOT NULL, date_and_time DATETIME, Price_Structure_id INTEGER, Show_id INTEGER, PRIMARY KEY(id)); CREATE TABLE Price_Structure ( id INTEGER NOT NULL, name VARCHAR(80), PRIMARY KEY(id)); ALTER TABLE Performance ADD CONSTRAINT fk_Price_Structure FOREIGN KEY (Price_Structure_id) REFERENCES Price_Structure (id) ALTER TABLE Performance ADD CONSTRAINT fk_Shows FOREIGN KEY (Show_id) REFERENCES Shows (id)
We will start by creating a very simple mapping of just the Performance table. The class we are mapping to is also called Performance and Figure 5-4 is the class diagram with just setters and getters defined to start out with. We will most likely add some behavior as we develop the application further.
image from book
Figure 5-4
Mapping the table data to this class is straightforward, so it gives us an opportunity to focus on the basics involved in using MappingSqlQuery. We first create a class named PerformanceQuery and this class extends MappingSqlQuery which is provided by the framework. We create a constructor that accepts the DataSource, which together with the static SQL statement gets passed to a constructorof the super class. Next we declare the single parameter we included a placeholder for in the SQL statement. We do this by passing in an SQLParameter to the declareParameter method. The SQLParameter is given a name, which usually is the name of the property, and a type, which is the data type from java.sql.Types for the column parameter. Once we are done declaring parameters, we call compile to finalize the setup of this RDBMS Operations class. Here is the beginning of our PerformanceQuery class:
package org.springframework.prospring.ticket.db; import java.sql.ResultSet; import java.sql.SQLException; import org.springframework.jdbc.object.MappingSqlQuery; import org.springframework.prospring.ticket.bus.Performance; class PerformanceQuery extends MappingSqlQuery { private static String SQL_PERFORMANCE_QUERY = "select id, date_and_time from Performance where id =?"; public PerformanceQuery(DataSource ds) { super(ds, SQL_PERFORMANCE_QUERY); declareParameter(new SqlParameter("id", Types.INTEGER)); compile(); } public Object mapRow(ResultSet rs, int rowNumber) throws SQLException { Performance performance = new Performance(); performance.setId(rs.getInt("id")); performance.setDateAndTime(rs.getTimestamp("date_and_time")); return performance; } }
The MappingSqlQuery is an abstract class and there is one method that you must implement: the mapRow method, which performs the actual mapping from the result set that gets passed in. In our example, the first thing we do in this method is to create a new instance of Performance. Then we populateit with data extracted from the result set. This result set is a regular java.sql.ResultSet so we can access all methods available for this interface. We should not do any ResultSet navigation like calling next() since this is all handled by the framework. We set the two instance variables and we ignore the references to Show and PriceStructure for now. The last task is to return the object we just created. This method is called once for each row in the result set, so the number of all the objects returned should be the same as the number of rows that were returned. All the returned objects will be put in a list that will be returned to the class using the query.
Let's take a quick look at an example of how the PerformanceQuery that we just built can be used:
public void setUp() { jt.execute("delete from Performance"); jt.execute("insert into Performance (id, date_and_time)" + " values(3, {d '2005-01-31'})"); } public void testGetPerformance() { PerformanceQuery performanceQuery = new PerformanceQuery(ds); List perfList = performanceQuery.execute(3); assertEquals("list contains one entry", 1, perfList.size()); }
First of all, you need to have a data source available. Next you create a new instance of the PerformanceQuery passing in the data source to the constructor. This can also be done using setters, but we prefer to use the constructor as we do in this example. Finally you need to execute the query. There are several methods for executing the query and all of them will return a list of objects retrieved. In our example we are doing a unique lookup for a specific ID, so we can use an execute method that takes a single int as its parameter. If we need to pass in several parameters we can use an object array like we did for the query methods of JdbcTemplate.
Note the use of an escape sequence used to specify the date in the setUp method. This makes it possible to execute this code against most databases regardless of their specific date representation syntax. The JDBC driver is required to make the translation.
Inserts and Updates with SqlUpdate
Next we will look at the class from the RDBMS Operation group of classes that is used for updating the database. This class is SqlUpdate and it is fairly straightforward to use. Here we are updating one column in the Performance table containing the date-and-time for a specific performance:
SqlUpdate updatePerformance = new SqlUpdate(); updatePerformance.setDataSource(ds); updatePerformance.setSql("update Performance set date_and_time =? where id =?"); updatePerformance.declareParameter( new SqlParameter("date_and_time", Types.TIMESTAMP)); updatePerformance.declareParameter(new SqlParameter("id", Types.INTEGER)); updatePerformance.compile(); Object[] parameters = new Object[] {new Timestamp(System.currentTimeMillis()), new Integer(3)}; int count = updatePerformance.update(parameters);
In the next example you'll see what an insert statement would look like. It is basically the same approach as for the update statement: Provide the SQL, and if you provide parameter placeholders, then you must declare the parameters and pass in an object array containing the parameters for each execution. The order in which you declare the parameters is important because JDBC relies on them being set by position rather than name. The name is not strictly necessary here, but you are encouraged to provide a name because that makes the code self-documenting:
SqlUpdate insertPerformance = new SqlUpdate(); insertPerformance.setDataSource(ds); insertPerformance.setSql( "insert into Performance (id, date_and_time) values(?,?)"); insertPerformance.declareParameter(new SqlParameter("id", Types.INTEGER)); insertPerformance.declareParameter( new SqlParameter("date_and_time", Types.TIMESTAMP)); insertPerformance.compile(); Object[] parameters = new Object[] {new Integer(1), new Timestamp(System.currentTimeMillis())}; int count = insertPerformance.update(parameters); parameters = new Object[] {new Integer(2), new Timestamp(System.currentTimeMillis())}; count = count + insertPerformance.update(parameters);
Updating a ResultSet Using UpdatableSqlQuery
Sometimes you have to update a large number of rows and it would be convenient to just iterate over an updatable ResultSet and make your updates as you go along. Spring provides a class named UpdatableSqlQuery for just this purpose. The alternative would be to use an SqlQuery and then issue update statements for the rows that needed to be updated. We have found the latter approach to be better performing against an Oracle database, if you use batch updates. For other databases we have not noticed this performance difference and the UpdatableSqlQuery approach has performed just as well.
The Updatable


text:
Gamgee.
- Any dialectical difference is completely removed. Sam talks the same English as the other Hobbits.
- In the two episodes of "The Adventures of Tom Bombadil", Jonathan Adams' portrayal of Sam Gamgee is close to over-the-top rustic. He speaks in a grumbling, low voice.
- Considerable attention was paid to the dialects characters speak with and cast members trained extensively with dialogue coaches. Hobbits in the films speak with basically an English Midlands accent, because Tolkien said that the Shire was based largely on his boyhood home in the Midlands. Of the main Hobbit characters:
- Sam Gamgee speaks with the working-class rustic Midlands accent which was used as the standard for all the other minor Hobbit characters.
- Bilbo and Frodo Baggins, because they are both book-educated, speak with a slightly more refined and less pronounced accent.
- The actor who played Pippin, Billy Boyd, is Scottish, and originally he was supposed to speak like the others, but eventually it was decided that it was adversely affecting his comic timing. The production team then invented the justification that the Took region of the Shire is described as very hilly, so much so that when Saruman's ruffians take over the rest of the Shire they are successfully repulsed from Took-land due to its rough terrain, and thus is it loosely analogous to Scotland. Thus, it was decided that Tooks should speak with a Scottish accent as well, and Boyd was allowed to use his normal Scottish accent when portraying Pippin for the entire trilogy of films.
- Meriadoc Brandybuck is described as being the linguistic "oddball" of the group: he was not from any of the four farthings of the Shire, but a Brandybuck from Buckland, and thus is from a region apart. To reflect this, his accent is noticeably distinct from the other Hobbits seen on-screen, something of an invention between actor Dominic Monaghan and the dialect coaches, to reflect his unique origin.


text:
Individual differences |
Methods | Statistics | Clinical | Educational | Industrial | Professional items | World psychology |
Separation reactions are the thoughts, feelings and behaviors that follow when significant interpersonal relationships and intimate relationships are broken. Humans are social beings and their attachment with others entails the establishment of psychological bonds. When these are broken substantial adjustment may be required.
Seperation can produce a wide range of feelings:
- Emotional trauma
- Separation anxiety


text:
"Waioli Mission Hall stands as a major monument of Hawaiian architectural history, the primary inspiration for the Hawaiian double-pitched hipped roof so widely popularized by C. W. Dickey in the 1920s. Built by the Reverend William P. Alexander, Dickey's grandfather, the plaster walls of the frame structure repose beneath a sprawling roof and encircling lanai. The roof, originally thatched, was shingled in 1851. Similarly, the freestanding, ohia-framed belfry at the rear of the mission was of thatch construction, but most likely received a covering of shingles in the same year. The form of the twenty-five-foot-high belfry drew upon a long British and American colonial tradition. Common in its day, today it stands as the sole surviving example of its type in Hawaii.
This was the third church building on the site, with the earlier thatched edifices falling prey to fire and storms. It remained a center for worship until the completion of Waioli Huiia Church (ka44) in 1912, when it became a community hall for the church, a function it still serves today. The building has been thrice restored: in 1921 by Hart Wood, in 1978 by Bob Fox, and again in 1993, following Hurricane Iniki, by Designare Architects."


text:
Data Compilation, Selection, and Derivation of PNEC Values for the Soil Compartment
The Existing Substances Risk Assessment of Nickel was completed in 2008. The straightforward explanation of the goal of this exercise was to determine if the ongoing production and use of nickel in the European Union (EU) causes risks to humans or the environment. The European Union launched the Existing Substances regulation in 2001 to comply with Council Regulation (EEC) 793/93. "Existing" substances were defined as chemical substances in use within the European Community before September 1981 and listed in the European Inventory of Existing Commercial Chemical Substances. Council Regulation (EEC) 793/931 provides a systematic framework for the evaluation of the risks of existing substances to human health and the environment.
| Field trials for nickel ecotoxicity testing in soil.
The conceptual approach to conducting the environment section of the EU Risk Assessment of Nickel included the following steps (Figure 1):
- Emissions of nickel and nickel compounds to the environment were quantified for the whole life cycle, i.e., from production, use, and disposal;
- Concentrations of nickel resulting from these emissions were determined in relevant environmental media (water, sediment, soil, tissue) at local and regional scales (PECs);
- Critical effects concentrations (PNECs) were determined for each of the relevant environmental media;
- Exposure concentrations were compared to critical effects concentrations for each of the relevant environmental media (risk characterization); and
- Appropriate corrective actions (also described as risk management) were identified for situations where exposure concentrations were greater than critical effects concentrations. Where exposure concentrations were below critical effects concentrations, there was no need for concern or action.
The EU Risk Assessments for Nickel and Nickel Compounds were developed over the period from 2002 to 2008. The Danish Environmental Protection Agency (DEPA) acted as the Rapporteur in this process, in close collaboration with the international nickel industry. EU Risk Assessment Reports (RARs) for the environment for nickel substances (metallic nickel, nickel carbonate, nickel chloride, nickel nitrate, and nickel sulfate) were submitted in the spring of 2008 after thorough review by the Technical Committee on New and Existing Substances (TCNES), which was comprised of technical representatives from the EU Member States. A final peer review was provided by the Scientific Committee on Health and Environmental Risks (SCHER) (see Section Links to Ni EU Risk Assessment Documents). The European Commission's Institute for Health and Consumer Protection published the final Risk Assessment Reports for nickel and nickel compounds in November 2009.
After the EU RARs received approval within Europe, the data sets were discussed at the international level within the Organization of Economic Cooperation and Development (OECD). The nickel ecotoxicity data sets used in the EU RARs were accepted at the OECD's SIDS (Screening Level Information Data Set) Initial Assessment Meeting (SIAM 28, October 2008), as was the use of nickel bioavailability models to normalize the nickel ecotoxicity data.


text:
The History of Folly Beach – A Timeline
The word "Folly" is an Old English word meaning an area of dense foliage
1600's Early settlers found an Indian tribe, the Bohickets, inhabiting the island
1696 Folly Island was deeded to William Rivers.
1744 Folly was passed down through a generation and sold to Henry Samsways whose deed referred to the Island as "Coffin Land" and a map from 1780 depicts Folly as such. However, a map dated 1800 shows Coffin Land as the western end of Folly Island where the State Park is now. The name Coffin Land came from the fact that it was customary for ships with plague or cholera victims to the leave the ill travelers on barrier islands before they entered the Charleston port. On their way back out to sea, they would pick up the survivors and bury the dead.
1832 The ship Amelia wrecked on Folly Island while sailing from New York to New Orleans. Twenty of 120 passengers died of cholera while marooned on Folly Island and Charleston cut off communications and supplies to the Island, fearing it would spread into Charleston and become an epidemic.
1838 Thomas Gillespie, a Scottish captain, died on Folly. His marker still stands at the southeastern end of the Island.
1860's The first shots of the Civil War were fired by Citadel Cadets on Morris Island. Three months later Beauregard's men fired on Ft. Sumter. The Union army took Folly Island and Morris Island on their way to Charleston
1920's Rumors of bootlegging on the Island. The original Pavilion was built.
1930's The new Atlantic Pavilion, Boardwalk, Pier and Oceanfront Hotel were built where the Holiday Inn now stands.
1932 Nine families lived on the Island year-round
1934 Gershwin stayed at 708 West Artic and wrote Porgy & Bess. He also judged a local beauty contest.
1937 Over 15,000 people were at the Pier for the 4th of July celebration
1940's Many homes were built, improvements made to roads & utilities
1955 Elmer "Trigger" Burke (the man who killed Joseph "Specs" O'Keefe of the $1.2 million Brinks robbery) rented a cottage on Folly and was arrested by the FBI on the corner of Erie & Center Street.
1956 The wooden Folly River bridge was replaced with a concrete bridge
1957 The Oceanfront Hotel and Pavilion and Joe's Restaurant burned
1960's Ocean Plaza was opened with 1700 feet of boardwalk, pier, amusement rides, shops, roller skating and concessions. This was the Golden Era of Folly Beach. The first surfboard on the Island was introduced by Pat Thomas.
1964 Palm reading was banned on Folly
1967 Horseback riding was banned on the Island
1977 The Pier burned again, suspected arson
1985 Holiday Inn was built
1989 Hurricane Hugo destroyed many homes and devastated the beaches
1995 The current Pier, restaurant and tackle shop was built
Resource: Time and Tide on Folly Beach South Carolina, Gretchen Stringer-Robinson (1998)


text:
Family: Tyrannidae, Tyrant Flycatchers view all from this family
Description 5 1/4-6 1/2" (13-16.5 cm). A very small, gray-green to olive-brown bird with prominent light wingbars. Whitish to pale olive to yellowish below. Faint to no pale eye-ring. Lower bill light yellow to orange.
Endangered Status The Southwestern Willow Flycatcher, a subspecies of the Willow Flycatcher, is on the U.S. Endangered Species List. It is classified as endangered in Arizona, California, Colorado, New Mexico, Texas, and Utah. Destruction of the dense streamside thickets that it nests in has dealt a serious blow to this species. Another problem has been nest parasitism by cowbirds, which lay their own eggs in the flycatchers' nests, to the detriment of the flycatchers' own broods. Predators, especially those that feed on eggs, have also contributed to this small bird's decline.
Habitat Dense streamside thickets and woodlands.
Range Breeds in southwestern United States, locally from California to Texas. Winters in Mexico and southward.


text:
Excessive noise from PWCs often makes them unwelcome with other vessel operators and people on shore. Be a courteous PWC operator.
- Vary your operating area, and do not keep repeating the same maneuver.
- Avoid congregating with other PWC operators near shore, which increases annoying noise levels.
- Avoid making excessive noise near residential and camping areas, particularly early in the morning.
- Avoid maneuvers that cause the engine exhaust to lift out of the water because that increases noise levels.
- Do not modify your engine exhaust system if it increases the noise. Improperly modified exhausts will not make your PWC faster and may raise the noise to an illegal level.


- Emma Hines
Artist Salon Premieres!
By Peter Sheehan
On Sunday, March 31st, the Roost Gallery held its first artist Salon which showcased the work of three local artists. The paintings of Peter Sheehan, Jill Ziccardi and Ed O'Hara were exhibited and after everyone enjoyed refreshments and a lovely introduction from the Roost's executive director, Marcy Bernstein, the main event began. Those in attendance took time to analyze and appreciate each work of art that was shown and first to be discussed was the work of Peter Sheehan. Sheehan, an artist who received his MFA in sculpture from SUNY New Paltz in 1971, makes mesmerizing abstract works that explore the interplay between bright and muted colors and are informed by his experiences as a farmer and one who enjoys nature. His works incorporates small details he sees in the world such as the relationship between ice and the sun as it cracks and expands with the shifting warmth as well as landscapes from his memories. He finds endless inspiration in nature and uses painting as his primary tool in exploring the mysteries of the woods and landscapes he witnesses.
Next to present was Jill Ziccardi, a phenomenally funny creator whose work is inspired by the pet names men use to describe and objectify women. She playfully discusses heavy topics such as gender inequality and feminism by creating artworks that embody nick names like 'sweetheart, ' 'cupcake, ' and 'chicks,' and works to reclaim these words by making colorful and masterful paintings of them. She also uniquely chooses to decorate the borders of her paintings with objects that are relevant to her subjects, such as using cat toys to surround her painting, 'sexy kitten' which allows the painting to live outside of its perimeters and to expand outwards in the gallery space. She attaches these border materials with glue and her incorporation of these objects gives her work a crafty feeling, and with crafts oftentimes considered 'women's work' they are often undervalued in society. Ziccardi also chooses to paint on fabric and skillfully incorporates the preexisting pattern of the fabric into her imagery to pay homage to women who masterfully work with fabrics but are not recognized as skilled artists. Ziccardi's confident and sassy personality is very present in her work and the conversation surrounding her pieces were oftentimes including the words 'joyful,' 'exciting' and 'hilarious.'
Last but certainly not least was Ed O'Hara, former CEO of SME branding and a new comer to the New Paltz art scene. O'Hara's paintings are dramatic and visceral as they explore his family's complicated past and his desire to express subconscious feelings. He utilizes many mediums to communicate these ideas such as paint, family photos, graphite, and various symbols. The jarring and sometimes confusing images he creates mirrors the complex nature of relationships between humans and his use of bright colors and symbols further alludes to those he wishes to either pay homage to or recognize faults in. O'Hara's Latino heritage was greatly denied throughout his life and he uses his art to give that part of his lineage and honorable place to exist. He described his art as a form of "open-heart surgery" as he delved into these densely emotional aspects of his life and family. O'Hara has found immense closure and understanding through his art and the stories he chose to share in his paintings are engaging, raw and greatly appreciated by those who got to enjoy them firsthand.
"Building Community Through the Arts."