text:
|Dunedin Railway Station|
Anzac Square and Dunedin Railway Station
|Address||Anzac Square, Dunedin|
|Lines||Main South Line|
|Connections||Taieri Gorge Railway|
|Owned by||Dunedin City Council|
Possibly the best-known building in the southern half of New Zealand's South Island, Dunedin Railway Station is a jewel in the country's architectural crown. Designed by George Troup, the station is the fourth building to have served as Dunedin's railway station. It earned its architect the nickname of "Gingerbread George".
Dunedin was linked to Christchurch by rail in 1878, with a link south to Invercargill completed the following year, and the first railway workshops were opened at Hillside in South Dunedin as early as 1875. Early plans were for a grand main station on Cumberland Street, but these never got any further than the laying of a foundation. Instead, a simple weatherboard-constructed station was built next to the site in 1884, though this was only ever intended to be a temporary structure. It took close to 20 years for government funding to be allocated to the new structure, and planning for the new station only really commenced as the 19th century was drawing to a close.
The logistics of constructing what would be (for a time) New Zealand's busiest railway station took three years before construction finally began in 1903. Dunedin, at the time a major commercial hub, required a station suitable to a wide range of activities: it was a commercial and industrial centre, close to still-active gold and coalfields, and was surrounded by a hinterland that was dependent on both livestock and forestry for its economy.
In an eclectic, revived Flemish renaissance style, (Renaissance Revival architecture), the station is constructed from dark basalt from Kokonga in the Strath-Taieri with lighter Oamaru stone facings, giving it the distinctive light and dark pattern common to many of the grander buildings of Dunedin and Christchurch. Pink granite was used for a series of supporting pillars which line a colonnade at the front of the building. The roof was tiled in terracotta shingles from Marseilles surmounted by copper-domed cupolas. The southern end of the building is dominated by the 37-metre clocktower which is visible from much of central Dunedin.
The booking hall features a mosaic floor of almost 750,000 Minton tiles. A frieze of Royal Doulton porcelain runs around the balcony above it from which the floor's design (featuring a locomotive and related symbols) can be clearly seen. The station's main platform is the country's longest, extending one kilometre.
The building's foundation stone was laid by the Minister of Railways Joseph Ward on June 3, 1904. The Prime Minister Richard Seddon was also present. The station was opened by Ward, by then Prime Minister, in 1906. The construction of the building was kept within budget, and cost £40,000.
In its early days, the station was the country's busiest, handling up to 100 trains a day, including suburban services to Mosgiel and Port Chalmers, Railcars to Palmerston and the Otago Central Branch and other trains to Christchurch and Invercargill. The city's economic decline and the reduction in the prominence of rail transport mean that only a handful of trains use the station today.
The station used to have dock platforms at both the north and south ends and a crossover midway along the main platform. Large shunting yards, most of which have now gone, occupied land to the south of the station. Much of this land has now been subdivided into wholesale and light industrial properties.
With the decrease in passenger rail traffic, the station now serves more functions than the one for which it was originally designed. Bought by the Dunedin City Council in 1994, the station's uses have greatly diversified, though it is still the city's railway station, catering for the Otago Excursion Train Trust's Taieri Gorge Railway tourist train. Much of its ground floor is now used as a restaurant, and the upper floor is home to both the New Zealand Sports Hall of Fame and the Otago Art Society. A produce market is held in the station's grounds to the north of the building every Saturday morning. Every year in March, the station takes centre stage in the South Island's main fashion show, with the main platform becoming reputedly the world's longest catwalk.
A thorough refurbishment of the exterior took place in the late 1990s, accompanied by the landscaping of the gardens outside the entrance, in Anzac Square.
In October 2006, the centenary of the station was celebrated with a festival of railway events, including the operation of eight steam railway locomotives from all over New Zealand. In 2006 the Dunedin Railway Station was recognised by DK Eyewitness Travel as one of "The World's 200 Must-See Places".
On February 12, 2008, a freak accident occurred when a container wagon struck and partially destroyed a historic footbridge which stands at the southern end of the station. Four pedestrians were on the bridge at the time, with one suffering minor injuries when she fell 4.5 metres from the wreckage. Reconstruction of a footbridge of similar design on the same site joining Anzac Square with the industrial zone close to Dunedin's wharves is due to begin in September 2008.
The square lies at the southern end of Anzac Avenue, a kilometre-long tree-lined street running roughly parallel to the railway, which leads to Logan Park, the northern end of which is part of State Highway 88, which links Dunedin with Port Chalmers. Logan Park was the site of the 1925 New Zealand and South Seas Exhibition, and the avenue and square were named to commemorate the Australian and New Zealand Army Corps, the "ANZACs", who were New Zealand's main military force during the then recently concluded First World War. After the refurbishment of the square, a large plaque dedicated to New Zealand's Victoria Cross recipients was relocated to the north end of the square, close to the start of Anzac Avenue. This has since been relocated again, and now stands close to the city's main war memorial in Queen's Gardens, 400 metres to the south.
The northern end of Anzac Avenue is likely to be severely affected by the construction of a new city stadium to replace Carisbrook close to Logan Park, and it is likely that the course of State Highway 88 will be diverted away from the northern end of Anzac Avenue. Directly across the square from the station is Lower Stuart Street, which leads to the city's centre, The Octagon.
Dunedin Railway Station is served by daily sightseeing trains to Middlemarch or Pukerangi via the Taieri Gorge, and to Palmerston. Although lacking any facilities specific to bus travel, the station is Dunedin's terminal for shuttle vans to Dunedin International Airport and for most long-distance bus companies, other than Intercity, which has its own terminal nearby.


Genetic gains made possible
Genetic gains for Australian Angus breeders
R&D has been critical for genetic improvement in Angus and all livestock species.
Angus Australia is committed to the ongoing advancement of the Angus breed, and the organisation believes research and development (R&D) is vital to achieving positive outcomes.
Angus Australia's strategic projects manager Christian Duff manages many of the organisation's R&D projects, both those that it runs directly - such as the Angus Sire Benchmarking Program - and those undertaken in collaboration with other researchers. Mr Duff is also a part-time PhD student focusing on livestock genetics.
"R&D has been critical for genetic improvement in Angus and all livestock species," he said.
"Without R&D, productivity gains through genetics would be limited by reliance on visual assessment in relation to breeding animal selections, such as bulls and heifers."
Making positive change with regards to genetics is a particular focus for Angus Australia.
"R&D collaboration with Angus Australia needs to be focused, particularly in relation to Angus breeding cattle and on making genetic gains for commercially and socially relevant traits," Mr Duff said.
"If we are talking to researchers about collaborative R&D, we need to know that it is going to add value in relation to new knowledge and potentially add to - or increase - rates of genetic gains.
"This provides Angus Australia members and the broader industry enhanced information that can be used to breed better cattle now and into the future."
Mr Duff believes the work facilitated by Angus Australia in the R&D space is of great benefit to the Australian beef industry as a whole.
"From my perspective, the good thing about working for Angus Australia and Angus breeders is any small positive change you can make, that is adopted by Angus breeders, will have a big flow-on effect," he said.
"There are obviously a lot of Angus and Angus-influenced cattle in the Australian beef industry, particularly in the southern states."
A recent survey revealed there were about 5.6 million breeding females with Angus influence in Australia.
About 2.4 million, or 20 per cent of the national herd, were pure Angus.
"What those numbers highlight from a breeding technology perspective, is if you can make a small improvement in the sires we are putting into the industry through R&D, it will have a big flow-on effect and improve things for the whole supply chain and for the consumer, making sure they get a product they are happy with, that they like to eat and are happy to keep paying for," Mr Duff said.
Angus Australia's priority research areas include breeding female productivity (fertility, longevity and body composition), structural soundness, eating quality, health, welfare and immune competence, methane emissions, climate resilience and adaptation, global benchmarking of Angus genetics across countries, and optimal use of genomic technology.
"One key research area that we are really focusing on at the moment is to better understand the maternal traits of the cow," Mr Duff said.
"Angus is a maternal breed - people generally keep the daughters to breed with - so the cow traits are important, things such as fertility, efficiency, longevity and soundness.
"We are doing more collaborative R&D in that space to enhance our knowledge.
"In collaboration with Dr Sam Clarke and his team at the University of New England, we are currently investigating longevity for Angus to estimate genetic parameters and ultimately produce a research breeding value for longevity based on Australian Angus data, which in effect impacts profitability in the commercial herd.
"The aim being to select sires that produce daughters that stay in the herd for a desired amount of time, that don't fall out of the system early for reasons such as fertility and structural issues."
Angus Australia highly values its collaborations with other leading research organisations. Mr Duff said partnerships were critical to innovative genetic improvements for the breed.
Without R&D, productivity gains through genetics would be limited by reliance on visual assessment in relation to breeding animal selections, such as bulls and heifers. - Christian Duff, Angus Australia's strategic projects manager
Co-collaborators include AbacusBio, Agricultural Business Research Institute, American Angus Association, Charles Sturt University, NSW Department of Primary Industries, Animal Genetics and Breeding Unit, CSIRO, and the University of New England.
"We have a lot of skills at Angus Australia, but we don't have all the knowledge and people, so we have to collaborate to boost our R&D objectives," Mr Duff said.
"We currently collaborate with 10 research organisations.
"Together with leading groups like the University of New England and the Animal Genetics and Breeding Unit, we are really focused on the genetic side of things.
"We also undertake collaborative research and evaluation with international groups like the American Angus Association, plus tertiary educators such as the University of Queensland.
"One of the groups we are doing more and more collaboration with is the CSIRO, they've got a really good team of geneticists, but also the right people to come up with new ways of collecting new but commercially important phenotypes.
"We are keen to collaborate with a range of research organisations to hit those research objectives."
Mr Duff said the success of such R&D programs is measured against a number of benchmarks.
"Ultimately, because we are primarily focused on genetic technology, and a member focused company, we look at what R&D has a high chance of being applied and adopted," he said.
"Not all research gets to that point, which we appreciate, as you can't expect all R&D to transition to the applied stage."
Once some of the technology advances to the applied stage, and is promoted through Angus Australia's extension and education team, adoption and uptake by members and the broader industry are followed.
"Primarily, we measure that by how determining how many people are recording new information or using the new information to select breeding stock,' he said.
"Over time we want to be facilitating positive genetic changes to the Angus breed in Australia, so we also monitor genetic trends on a regular basis."
From the front page
Sponsored by


If you've been reading the EF Design Blog you will have seen that we recently announced something called "FK Associations" for the EF in.NET 4.0.
However in.NET 3.5 SP1, we only support Independent Associations. What that means is that the FK Columns aren't available as Properties in the entity. Which in turn means you are forced to build relationships via References to other Entities.
For example, unlike LINQ to SQL, this is not possible in the EF:
product.CategoryID = 2;
Because there is no "CategoryID" property in product entity.
You have to do something like this instead:
product.Category = ctx.Categories.First(c => c.ID == 2);
I.e. you need to use the Category reference. Which means you have to have a Category in memory, or do a query to get one like the example above.
The problem is that not having a property for the CategoryID that you can set directly can be a big pain, and that is why we've added "FK Associations" and "FK Properties" in.NET 4.0.
All well and good, but as Julie Lerman has a habit of reminding me, what about everyone who is using.NET 3.5 SP1 today? Our new features don't really help today.
How can you set the CategoryID if it doesn't actually exist?
Trick question. You can't of course.
But you can achieve the same effect, with code like this:
 = new EntityKey("MyContainer.Categories", "ID", 2);
Looks a little complicated doesn't it, so let's break it down:
 1. For each reference "xxx" (like Category) the entity framework also generates an "xxxReference" property that returns an EntityReference. (EntityReference is used heavily by the EF to provide all the plumbing and services required for things like maintaining relationship consistency, and doing Entity lookups based on EntityKeys)
 2. One of the properties of the EntityReference is an EntityKey. We need to set the EntityKey to a new EntityKey if we wish to change the value of the Foreign Key.
 3. In order to create a new EntityKey we need to know 3 things.
 1. The value we want to set the "Foreign Key" to. To be consistent with the earlier code snippets that is 2.
 2. The fully qualified name of the EntitySet that the target Entity belongs to. In this case our target is a Category and we get Categories from the "MyContainer.Categories" set.
 3. The name of the Primary Key Property in the target entity. In this case the primary key of Category is the "ID" property.
Now obviously this is not the sort of code you want to write everywhere you need it. So lets hide this away. So...
How can you use this code to fake a Foreign Key property?
Luckily the Entity Framework generates partial classes for Entities, so you can simply put this logic in your own Product partial class like this:
public int CategoryID {
 get {
if (this.CategoryReference.EntityKey == null) return 0;
else return (int) this.CategoryReference
 set {
 = new EntityKey("MyContainer.Categories", "ID", value);
Notice that we use the CategoryReference in the getter too. This means that our CategoryID property is simply a view over the CategoryReference, which means that if the EF makes any changes under the hood we don't need to be notified.
With this in place you can write what we wanted all along:
product.CategoryID = 2;
And that can be extremely useful in lots of scenarios, for example MVC controllers and data-binding.
Extra Credit
This solution is essentially just a workaround that hides some of the limitations of independent associations, and like all workarounds it has limitations. The key then is to make an informed tradeoff between the benefits and the drawbacks. So here are some of the key drawbacks:
 1. Properties in the partial class are not recognized by the Entity Framework, so you can't use them in your LINQ queries.
 2. By referencing the fully qualified EntitySet name in our setter, we have coupled your Entity Class directly to the EntitySet. Now for most people this is not a problem, but it won't work if you try to re-use your entity classes between contexts or if you use MEST.
 3. There are probably more... I'll add them as I think of them!


Best matches, sorted by the Matches.
1-20 of 20 possibilities
cheerful and agreeable mood amiability, good humor, good humour, good temper
persisting angry mood bad temper, ill temper
mood (grammatically unmarked) that represents the act or state as an objective fact common mood, declarative, declarative mood, fact mood, indicative, indicative mood
drug that can produce mood changes and distorted perceptions consciousness-altering drug, mind-altering drug, psychoactive drug, psychoactive substance
sentence (in the indicative mood) that makes a declaration declarative sentence, declaratory sentence
your usual mood disposition, temperament
angry and disagreeable mood distemper, ill humor, ill humour
mood that expresses an intention to influence the listener's behavior imperative, imperative form, imperative mood, jussive mood
some linguists consider interrogative sentences to constitute a mood interrogative, interrogative mood
mood disorder; an affective disorder in which the victim tends to respond excessively and sometimes violently mania, manic disorder
mood shifts, suffering from extreme manic-depressive
pertaining verb mood modal
mood (as in Greek or Sanskrit) that expresses a wish or hope; expressed in English by modal verbs optative, optative mood
irritable mood peeve
annoyed or irritated mood peeve
bad mood pique
mood that represent an act or state (not as a fact but) as contingent or possible subjunctive, subjunctive mood
mood or display of sullen aloofness or withdrawal sulk, sulkiness
quality indicating mood tone
hostile or belligerent mood warpath
Search another word or see mood on Thesaurus | Reference
Copyright © 2014, LLC. All rights reserved.
 - Please Login or Sign Up to use the Recent Searches feature


text:
Download now Free registration required
RSA key generation is of great concern for implementation of RSA cryptosystem on embedded system due to its long processing latency. In this paper, a novel architecture is presented to provide high processing speed to RSA key generation for embedded platform with limited processing capacity. In order to exploit more data level parallelism, Residue Number System (RNS) is introduced to accelerate RSA key pair generation, in which these independent elements can be processed simultaneously. A cipher processor based on Transport Triggered Architecture (TTA) is proposed to realize the parallelism at the architecture level. In the meantime, division is avoided in the proposed architecture, which reduces the expense of hardware implementation remarkably.
- Format: PDF
- Size: 317.98 KB

source: openbmb/Ultra-FineWeb


Adding Customer Attribute Tutorial
In this tutorial, we will walk through the two different ways you can keep track of personalized attributes for your customers. We will demonstrate the easy way of simply storing the attributes in the customerAttributes object and the slightly more customized (but still easy) way of extending the Broadleaf CustomerImpl class. Also, please note that while we're going through extending a Customer in this tutorial, the same patterns apply for all Broadleaf provided objects.
Using the provided CustomerAttributes object
If you're only wanting to save off simple String values to be referenced later, the easiest way is to use the CustomerAttributes. This is exactly what we'll do to store a referral code on our Customer.
First, we need to modify the UI to pass in a referral code to our controller. We'll do that by extending the RegisterCustomerForm to carry our referral code along.
public class HCRegisterCustomerForm extends RegisterCustomerForm {
 public String referralCode;
 public String getReferralCode() {
 return referralCode;
 public void setReferralCode(String referralCode) {
 this.referralCode = referralCode;
Then, we need to modify RegisterController to initialize our extended form. If we look at the source of the parent BroadleafRegisterController, we can see that it initializes a RegisterCustomerForm and simply sets the customer object. Therefore, we can utilize the super method and just modify it slightly:
 public HCRegisterCustomerForm initCustomerRegistrationForm() {
 RegisterCustomerForm superForm = super.initCustomerRegistrationForm();
 HCRegisterCustomerForm form = new HCRegisterCustomerForm();
 return form;
Then, we can add the new field to ajax/register.html, right below the confirm password field:

 Referral Code

Note: We are not attaching any validation to this field. It is completely optional for the sake of this tutorial.
At this, point, when you click on Register, you should see your additional field:
Referral Code field
All that's left is to save our referral code into our customer. We want to do this if the registration was successful. So, in RegisterController, we want to modify the processRegister method to look like this:
String url = super.processRegister(registerCustomerForm, errors, request, response, model);
 if (url.equals(getRegisterSuccessView())) {
 // Grab the current customer from the request
 Customer newCustomer = CustomerState.getCustomer();
 // Create the referralCode CustomerAttribute
 CustomerAttribute referralCodeAttr = new CustomerAttributeImpl();
 // Update our customer object
 newCustomer.getCustomerAttributes().put("referralCode", referralCodeAttr);
 newCustomer = customerService.saveCustomer(newCustomer);
 // Place the new customer onto the request
return url;
It's as easy as that!


Music of the eyes
EyeHarp is the first musical instrument that allows people with disabilities to learn and play music with gaze or with head movements.
About Eyeharp
About Eyeharp
What is Eyeharp?
EyeHarp is a gaze-controlled or head-controlled digital musical instrument. It allows people with disabilities to learn and to play music without barriers. Designed with musicality in mind, EyeHarp offers the same expressive qualities as any traditional instrument.
About Eyeharp
How does it work?
Eyeharp musicians only need to install the software and use it with their Eyetracker, that is a special camera that monitors eye movements. With these two things, musicians can play beautiful melodies simply by looking at the notes on the screen.
About Eyeharp
Who is it for?
Eyeharp is best suited for people with disabilities who want to play music, for music therapists who use it with their clients, and for music teachers who have students with disabilities.
We offer training for professionals on a regular basis.
What people are saying about Eyeharp


text:
Help us save Thymelaea hirsuta - known in Arabic as'mitnan'
'Mitnan' (Thymelaena hirsuta) is a perennial evergreen shrub that grows in the Mediterranean coastal plain, the Sinai and various other Saharo-Arabian deserts. It has been used for centuries for rope-making. You can help Kew safeguard this plant for our future by adopting a seed for yourself, or as a gift for £25.
In ideal conditions the roots of'mitnan' (Thymelaea hirsuta) can descend to a depth of about 3.5 m, while the plant may grow to 2 m with an average height of 120 cm. 'Mitnan' produces clusters of yellow flowers at the ends of young twigs from March through July. Its branches are used for making rope by braiding them into a kind of cable.
Conserving'mitnan' in Jordon
Most examples of'mitnan' that we found during our collecting trip to Jordon were growing in the vicinity of the international heritage site of Petra.
As'mitnan' is dioecious (male and female flowers are borne on separate plants), enough pollinators must be available to secure fruit set and seed formation. Both sexes of these plants produce clusters of yellow flowers at the end of young twigs from March to July.
One concern for the future of this species is that its habitat in Jordon is constantly disturbed by the large number of tourists visiting the site. This could hinder the growth of newly formed seedlings needed to replenish the population.
'Mitnan' is suitable for cultivation in rock gardens and alpine glasshouses. It requires full sun, well-drained soil and protection from winter rain. This species is not currently grown at Kew Gardens, but specimens of wood and string made from it are held in Kew's Economic Botany Collection, located behind-the-scenes.
Collecting'mitnan' in Jordan
When you walk out of Wadi Moussa, the village built at the entrance to Petra, there are some signs of the local marvels lying on the other side of the rocks. Walking down a rocky canyon, or Siq as it is called locally, there is the hint of what appears to be a head in the face of the cliffs. It is only when you reach the end of the Siq that you can make out the façade of a building hewn out of the rocks. It looks like a beautiful lady wearing a chador.
From this magnificent place you can turn right and walk past more façades including a theatre and tombs on the higher rocks. An easy climb takes you up the hill to the high place of sacrifice, with open views across the region. Going down into the valley, where it is impossible to hide from the sun, a sparse collection of desert vegetation offers another impressive aspect to the site. Many plant species that are adapted to the harsh conditions of the very hot sandy desert flourish in the loessial wadi beds.
Making rope and other useful things with'mitnan'
'Mitnan' (Thymelaea hirsuta) is primarily used for making rope, a craft that is practiced by local inhabitants, especially older people who still retain this skill. The most direct method is simply to braid branches into a kind of cable. This 'cable' may been used to anchor tents during sandstorms.
Finished'mitnan' rope is strong enough to haul a man out of a well, secure a tent, hobble an animal, saddle a donkey, yoke a camel and carry water buckets or jugs on a camel's back. The camel yoke represents an uncommon use of'mitnan' rope - row upon row of twisted and braided white inner bark is sewn onto a padded pillow. This rests on a'mitnan' support, made of an entire young shrub whose branches have been parted and bound into a wishbone shape by strips of rag.
'Mitnan' serves the Bedouins in a variety of other ways as well, such as making a partridge trap. The moist roots of the plant are used for parts of the trap that must be both flexible and strong. When sowing summer crops they also affix a branch of'mitnan' to the back of a plough where it sweeps sand over the furrow to shield freshly-sown seeds from the sun's direct rays. Women too, often use'mitnan' when watering their flocks, using fibres to make a bucket-rope with which they can draw water from the well.
Ibn-al Bitar (12th century C.E.) attributed medicinal properties to the leaves as an antidote to pinworms, as well as a 'powerful hydragogue, cathartic and expectorant'. Dried and powdered leaves were also used to treat inflammation of the skin and the bark for healing wounds. It was further reported that in order to remove flies from their tents, Arabs would dip'mitnan' (Thymelaea hirsuta) in sugared water and then hang it in the tent. The formation of the numerous, crowded small leaves and flowers on the branch provided a large landing area for flies attracted to the sweet sugar. At night, Bedouin people would cover the plant with a dress or cloak and remove both the'mitnan' and the flies from the tent.
'Mitnan' is still used for medicinal purposes. As a method for removing rotten teeth for instance, which doesn't seem to have been reported in much detail in the literature. To do this, the plant leaves are boiled in water and the resulting brew swished around the mouth and spat out along with the dead tooth. Other medicinal uses include an eye curative and a treatment for paralysis.
'Mitnan' is also used to prevent abortion in camels. The leaves of the plant are pounded and mixed with a little salt, made into a poultice,and then applied to the camel's cervix after impregnation in the hope that the cervix will contract, preventing the camel from aborting its foetus (Bailey and Danin 1981: 153; also cited by Schmidt and Stavisky 1983). Later, researchers managed to isolate stigmasterol from'mitnan'. Stigmasterol is a steroid used to synthesise progesterone, a hormone used in the treatment of recurrent abortion in humans (Schmidt and Stavisky 1983: 318).
You can adopt this seed for yourself, or as a gift for £25.
When you Adopt a Seed, you'll receive a personalised certificate, featuring your plant species, as a downloadable PDF document you can print off, and regular updates over the year from the Millennium Seed Bank.
For an additional £2, you can have an Adoption Pack posted (either to you, or direct to a gift recipient) featuring a certificate and a full colour picture of your species (UK only).
Keep up to date with events and news from Kew

source: HuggingFaceFW/fineweb-edu


text:
Showing Resources: 1 - 1 of 1
Stephen Crane (_PHONE_) was an American novelist, poet, and short story writer, who in 1895 wrote "The Red Badge of Courage", which earned him international acclaim. This collection of materials relating to Crane, compiled by Johns Hopkins University alumnus Richard Frary, includes letters (many by Crane), events ephemera, photographs, articles of literary criticism, and sheet music (inspired by his fiction). The materials date from the 1890s to the early 2000s.
- Subject: correspondence
- Subject: ephemera (general object genre)
- Subject: photographs
- Subject: sheet music
- Subject: reproductions (derivative objects)


Sunday, July 12, 2009
Sundered Skies
Sundered Skies is a complete setting and Plot Point campaign from Triple Ace Games for Savage Worlds. Like other Savage World settings, it presents an enclosed environment, here a series of islands that float in a constantly brilliant sky without night. Too much exposure to this constant light causes Glowmadness and will eventually send people into bestial rages. The highest isles have ice mines, and provide water for the very hot lowest ones. Other islands consist of seams of ore, deep forests, shattered islands, and tethered skyships. Travel between the very different islands is done by oar, steam, or wind driven skyships, navigation requiring a handful of soil from the destination island. Peace between the islands is kept by the Trade Council which ensures each island receives the necessary imports.
Besides the traditional fantasy RPG races of Dwarves, Humans, Orcs, and the part plant Elves (who are insular and hard edged), players can be the Dragon-worshipping Drakin (who can become dragon-like), the animal-like Wildings (escaped slaves to the Elves), and the Glowborn, humanoids with Goblinoid memories. Possible character roles include Couriers, Musketeers, Pirates, Scavengers, and Priests dedicated to peace, song, war, and wind. Sundered Skies' Plot Point campaign consists of 30 Savage Tales (scenarios) which begin by giving the characters a skyship and then lets them explore the islands of the Sundered Skies and its secrets. Like other Savage Worlds' settings, Sundered Skies is pulpy and swashbuckling in feel, but its British author has given it a grim edge too.
1 comment:


Proverbs 31 (Devotional)
Devotional / Produced by TOW Project
Proverbs 31 depicts a strong woman who puts God's wisdom into practice in her life. You can bless the people around you through your daily actions. In this series of videos you'll learn biblical terms such as "chayil" and "yare." Reflect on how God's character strengthens you for your every day.
You can find this devotional on the YouVersion Bible App (download the app here), or get the Proverbs 31 devotional on
The book of Proverbs starts out with the claim that, "The fear of the LORD is the beginning of wisdom." (Proverbs 1:7)
What is this fear of the Lord that the Bible talks about?
In the Old Testament, the Hebrew word yare doesn't just mean "fear." Yare also invokes emotions of awe and honor. In Exodus 15:11 Yare is the feeling of awe that comes from contemplating God's character.
"Who is like you, majestic in holiness, awesome [yare] in splendor, doing wonders?" (Exodus 15:11 0:27)
God's character is the source for each of the wise sayings in the book of Proverbs. When Proverbs encourages you to be trustworthy, shrewd, diligent or generous it is because God's character is trustworthy, shrewd, diligent and generous.
The Bible praises the woman of Proverbs 31 because fear of the Lord roots her character in God's character, rather than in other things.
"Charm is deceitful, and beauty is vain, but a woman who fears the LORD is to be praised." (Proverbs 31:30)
When your character is grounded in the fear of the Lord, it changes how you work. 0:59 (6) You don't strive to serve your own ends or to please other people, but instead you take actions based on God's character. For example, you can praise other people's work rather than taking all the credit for yourself. The fear of the Lord can also lead you to forgive your coworkers when they make a mistake, or speak up about something that's wrong in your workplace. 1:15 (4) Living in fear of the Lord means you don't need to live in fear for your job or your status.
What will you do in your work today out of the fear of the Lord?
Get Proverbs 31 on


text:
Photographs are powerful tools in telling a story. From a fading daguerreotype of a forgotten era to a snapshot taken moments ago with a smart phone, they can capture a moment in time - a freeze frame of the ongoing story of life itself.
Toyo Miyatake established his photography studio at a time of great growth for the Japanese American community in Los Angeles. In a career that spanned five decades, his photographs provided an intimate window into Little Tokyo and the lives of the community, as seen by someone who was actually there.
Born in 1896 in Japan, Toyo Miyatake moved to America in 1909 with his father and settled in the Little Tokyo area, where he founded his photo studio in 1923.
While interned at Manzanar during WWII, Miyatake famously built a camera body from stray pieces of wood. Attaching a lens that he had smuggled in, he now had a device to capture the life of Japanese American internees -- from the inside. His photos taken during this time reveal a perspective that differs from that of officially sanctioned photographers, which included notables such as Ansel Adams and Dorothea Lange. These photos were exhibited along with Adams' work in the landmark exhibition "Two Views of Manzanar" at UCLA in 1978 -- the first time Miyatake's photos were displayed outside of the Japanese American community.
Today Alan Miyatake carries on the legacy began by his grandfather and continued through the efforts of his father Archie Miyatake. The studio has moved to San Gabriel, but it is still very much a part of Little Tokyo, in spirit if not physically. Toyo Miyatake Studio continues to preserve the faces of the Japanese American community as the official photographer of Nisei Week Queens, continuing the tradition that began at the very first Nisei Week festivities 80 years ago.
A monument to the dedication and works displayed by Toyo Miyatake now stands in Little Tokyo -- a replica of the camera he had built while interned at Manzanar. Located in front of the Japanese American National Museum at the very corner where thousands of Japanese Americans were round up to be sent out to internment camps, the public art monument doubles as a photo projector, displaying images of Japanese American life -- ensuring that their struggles and triumphs will forever be a part of the timeline of the community.
In the videos above, Alan Miyatake, grandson of Toyo and current owner of Toyo Miyatake Studios, discuss his family history, their role in L.A.'s Japanese American community, and the importance of photographs in preserving history.


Chemistry Question #157
Sonia, a 17 year old female from the Internet asks on March 20, 2000,
How could I decrease the boiling point of a substance without changing the pressure of the liquid?
viewed 13445 times
The answer
Barry Shell answered on March 20, 2000
This can be done by mixing different liquids of different boiling points together. For instance, if you mix ethyl alcohol and water, the liquid will boil at a boiling point somewhere in between about 78 degrees C for alcohol and 100 degrees C. for water. Chemistry books have charts listing different boiling points. Look up minimum boiling mixtures, or azeotropes in the index. Good luck!
Add to or comment on this answer using the form below.
Note: All submissions are moderated prior to posting.


text:
Eucalyptus Longhorned Borers
Recommended Steps to Control Eucalyptus Long-horned Borers
If caught early enough, immediately apply Multi-Insect Killer Tree Injection Kit to the tree. This insecticide is injected directly into the tree's vascular system and is released quickly to help kill insects already inside the vascular system.
To prevent Eucalyptus Long-horned borer attacks, in the areas where the insect is active, there are a number of steps that can be taken to reduce the chances of a harmful attack. In the early spring, treating the tree with Once-A-Year Insecticidal Drench w/Merit helps protect the tree's vascular system. This treatment can be supplemented by regularly spraying the tree's trunk with a good dosage of Borer-Miner Killer (every three to three weeks), thus creating a barrier to reduce further insect penetration through the bark.
The good news is that healthy and well-maintained trees are normally more resistant to the Eucalyptus Long-horned Borer, as well as less of a target. Trees under stress are more likely to be borer targets, so it is important to ensure that Eucalyptus trees receive adequate water. To help ensure that a tree is healthy, apply a TreeHelp Annual Care Kit for Eucalyptus in the spring or early summer which contain the appropriate fertilizer and mycorrhizal treatment to support the functioning of the root system.


XRSession: squeezeend event
Secure context
The WebXR event squeezeend is sent to an XRSession when one of its input sources ends its primary action or when an input source that's in the process of handling an ongoing primary action is disconnected without successfully completing the action. Primary squeeze actions include things like users pressing triggers or buttons, tapping a touchpad, speaking a command, or performing a recognizable gesture when using a video tracking system or handheld controller with an accelerometer.
Bubbles Yes
Cancelable No
Interface XRInputSourceEvent
Event handler property onsqueezeend
For details on how the squeezestart, squeeze, and squeezeend events work, and how you should react to them, see Primary squeeze actions in Inputs and input sources.
The following example uses addEventListener() to establish handlers for the squeezeion events: squeezestart, squeezeend, and squeeze. This snippet is the core of an event handler to allow the user to grab objects in the scene and move them around.
In this case, a single function is used to handle all three events, allowing them to share certain code that's the same regardless of which of the three events is received. Only after completing those tasks does the onSqueezeEvent() function below dispatch the action out to a specialized function to handle things.
After checking to ensure that the received event is a tracked-pointer event (the only kind we handle here), the target ray's pose is obtained using getPose().
If the target ray pose was fetched successfully, the code then uses the value of Event property type to route control to an appropriate function to handle the event which arrived:
 - For squeezestart events, a myBeginTracking() function is called with the target ray pose's matrix. The myBeginTracking() function would presumably start the presentation of the object-dragging process, using the transform to perform a hit test, determining which object to pick up. myBeginTracking() returns an object representing the object the user has begun to drag.
 - Upon receiving a squeeze event, the myDropObject() function is called with the target object and the current target ray pose transform as inputs. This places the object into its new position in the world and triggers any effects that may arise from doing so (like scheduling an animation of a splash if dropped in water, etc).
 - The squeezeend event results in a myStopTracking() function being called with the object being dragged and the final target ray pose's transform.
xrSession.addEventListener("squeezestart", onSqueezeEvent);
xrSession.addEventListener("squeeze", onSqueezeEvent);
xrSession.addEventListener("squeezeend", onSqueezeEvent);
function onSqueezeEvent(event) {
 let source = event.inputSource;
 let targetObj = null;
 if (source.targetRayMode!= "tracked-pointer") {
 let targetRayPose = event.frame.getPose(source.targetRaySpace, myRefSpace);
 if (!targetRayPose) {
 switch(event.type) {
 case "squeezestart":
 targetObj = myBeginTracking(targetRayPose.matrix);
 case "squeeze":
 myDropObject(targetObj, targetRayPose.matrix);
 case "squeezeend":
 myStopTracking(targetObj, targetRayPose.matrix);
You can of course also set up a handler these events by setting the XRSession object's onsqueezeend event handler property to a function that handles the event:
xrSession.onsqueezestart = onSqueezeEvent;
xrSession.onsqueeze = onSqueezeEvent;
xrSession.onsqueezeend = onSqueezeEvent;
Specification Status Comment
WebXR Device API
The definition of'squeezeend event' in that specification.
Working Draft Initial definition.
Browser compatibility
No compatibility data found for api.XRSession.squeezeend_event.


text: A good example of a Victorian birch bird scarer or police rattle having a beech handle. When the metropolitan police were formed in 1829, they were issued with rattles that fitted into specially made pockets in the swallow tails of their coats. In 1884 whistles were introduced and by 1887 all rattles had been withdrawn, as they found that whistles could be heard twice the distance of a rattle. They were often used in football matches. This is an excellent example and has a lovely rich colour and excellent patination.


text:
TODAY'S WORD — INTRUSION (INTRUSION: in-TROO-zhun: The act of entering inappropriately or without invitation.)
Average mark 26 words
Time limit 40 minutes
Can you find 36 or more words in INTRUSION? The list will be published tomorrow.
YESTERDAY'S WORD — PALAVER pale paler pare pave paver peal pear pearl plea
aper area aver larva lava leap vale veal earl rale rape rave ravel real reap
To purchase the Word Game book, visit WordGameBooks.com. Order it now for just $5 while supplies last!
RULES OF THE GAME:
1. Words must be of four or more letters.
2. Words that acquire four letters by the addition of "s," such as "bats" or "dies," are not allowed.
3. Additional words made by adding a "d" or an "s" may not be used. For example, if "bake" is used, "baked" or "bakes" are not allowed, but "bake" and "baking" are admissible.
4. Proper nouns, slang words, or vulgar or sexually explicit words are not allowed.
Contact Word Game creator Kathleen Saxe at _EMAIL_.


text:
How far can a rabbit see? The eyes are positioned high on the skull and to the sides, enabling the rabbit to view almost 360 degrees and well over her head. Rabbits are often farsighted, which explains why they may be startled by an aircraft passing above even though their human partner cannot see it at all.
How do rabbits see humans?
Is it true that rabbits have an excellent memory? 1) Rabbits possess a high level of intelligence. Additionally, rabbits have an excellent memory: they do not readily forget unfavorable events or feelings. To foster a positive relationship with your rabbit, it's critical to keep them at ease at all times.
Do Rabbits Have Good Eyesight – RELATED QUESTIONS
What hue do bunnies perceive?
Rabbits have dichromatic color vision, which means they have two distinct kinds of color sensors in their eyes, called cone cells. While humans can distinguish between red, blue, and green, rabbits can distinguish just two colors: blue and green. That is, by human standards, rabbits are colorblind.
Why do rabbits fix their gaze on me?
If your rabbit lays down and looks at you, this indicates that they are at ease. If your rabbit stands on its hind legs and looks at you, they are attempting to attract your attention. This posture is also associated with food begging. If your rabbit is staring at you with ears erect and nose twitching, they are focused on something.
Are rabbits aware of their owners?
Rabbits form strong bonds with their owners. Ask any bunny owner who interacts with his pet on a daily basis, and he'll tell you that, like dogs or cats, rabbits develop a strong bond with their owners. They recognize them verbally and visually and will even respond to commands.
How intelligent is a bunny?
While rabbits may not have a reputation for intelligence, the reality is that pet rabbits are quite bright. They are capable of picking up tricks, solving riddles, and even acquiring a few words, which makes them excellent companions.
Do rabbits have television sets?
Your rabbit will be glued to the television. Because rabbits are attracted to moving pictures and sounds, television gives cerebral stimulation. Simply keep an eye on the loudness. Rabbits have exceptional hearing, which means that a loud television might cause damage to their ears.
Are rabbits venomous?
Rabbits seldom bite, but if they do, it does not always indicate they despise you. A rabbit may bite for a variety of reasons; for instance, he may bite if you grasp at him or startle him. Additionally, a rabbit may bite you accidently while pulling on your trouser leg.
Are rabbits capable of crying?
Rabbits cry when they are in pain, fearful, or on the verge of death. Additionally, newborn rabbits (kits) cry when they are hungry. While rabbits make sobbing sounds, they do not shed tears. If your rabbit's eyes are moist or crying, she might be suffering from a dental problem, allergies, or infection.
Do rabbits pine for your company?
This indicates that rabbits do retain memories of their humans. When a rabbit is rehomed, the new owners may be bewildered and disoriented for a while. Because rabbits thrive on regularity, a rehomed rabbit will mourn its previous owner. Comforting will be the emotions and behaviors of a prior person.
Do rabbits recognize their own names?
Pet bunnies are capable of learning their own names. Over time, rabbits might develop an association between noises and certain instructions. This involves approaching an owner when its name is called. Rewarding a rabbit with food, stroking, or other positive rewards on a frequent basis can assist it in memorizing these instructions.
Which color does a bunny despise?
When rabbits and other animals are deprived of frequent contact with the outside, they clearly prefer to lay on the red. In contrast to red, blue is a cooling color. It calms and relaxes, acting as an antidote to an excess of red.
Are rabbits nocturnal?
Bunnies are "daytime" sleepers, averaging between six and eight hours a day. Bunnies, like deer, are crepuscular, meaning they are most active between dark and morning. (In case you were unaware, the term "crepuscular" derives from the Latin crepusculum, which translates as "twilight.")
Are rabbits capable of hearing?
Surprisingly, a rabbit's hearing range is 360 to 42,000 hertz, compared to the typical human's range of 64 to 23,000 hertz. Second, a rabbit's ears emit heat from their bodies through a huge number of blood veins, much like a dog does when it puffs and pants.
Are rabbits envious?
Rabbits exhibit a variety of emotions, including envy, wrath, fear, sadness, love, impatience, and insecurity. Understanding what is really going on in the mind of any given rabbit may take months or even years of attentive observation, especially if you do not know the rabbit's whole history from birth.
Why does my bunny constantly lick me?
Licking and grooming are normal rabbit behaviors and are often used as expressions of love. When rabbits feel secure and comfortable, they often lick and groom one another. To demonstrate their devotion, happy bunnies may attempt to lick you. This is one of the ways in which rabbits communicate their happiness or safety.
Does my rabbit keep an eye on me while I sleep?
While your rabbit is resting, they will be able to notice changes in the light around them, and their third eyelid will give the appearance of being awake to any possible predators. Not every rabbit sleeps in this manner. Some people will gladly shut their eyes completely.
Is it possible for rabbits to have a favorite person?
As a sociable animal, a rabbit will really depend on having a favorite human. Through frequent contacts, it will learn to identify its owner. As long as these encounters are beneficial and the rabbit's love is reciprocated, the relationship will build and expand.
Do rabbits like being held?
When approached properly, the majority of rabbits like being caressed and stroked. Few people like being hugged or carried because they feel uneasy being so high off the ground; nevertheless, many would cheerfully sit on your lap or snuggle up next to you for a cuddle.
Are rabbits aware of your voice?
While rabbits are capable of learning words and recognizing voices, this does not necessarily suggest they comprehend human language. Rabbits are clever animals, yet they have their own language. While it may seem so, rabbits do not really acquire knowledge of the meanings of words and gestures.
Do rabbits have a memory for you?
Rabbits retain memories of the individuals with whom they spend the majority of their time, which includes their owners and carers. They have evolved neurologically as prey animals, with a high long-term memory for locations and habits. You may utilize these connections to assist your rabbit's memory of you become stronger.
How long do rabbits retain their owners' memories?
Generally, your pet rabbit's short-term memory is limited to around 5 minutes. However, when it comes to essential knowledge or someone they care about, their memory may remain longer.
Are rabbits fond of mirrors?
Mirrors – in situations when rabbits must be housed separately, a mirror may provide some comfort, especially for females. However, since the benefits are temporary, it is only indicated for usage to ease loneliness momentarily. If mirrors are provided, ensure they are properly fixed to prevent harm.
When are rabbits the most active?
Given that rabbits are most active at dawn and night, let them out exclusively during the day is not ideal.


HTML5 LocalStorage
This article presents the HTML5 LocalStorage (and SessionStorage) objects and discusses some security implcations and recommendations. Furthermore JavaScript examples are given on how HTML5 can be easily used.
What is HTML5 Web Storage or LocalStorage?
With HTML5, web pages can store data locally within the user's browser.
Earlier, this was done with cookies. However, Web Storage is more secure and faster:
 - The data is not included with every server request, but used ONLY when asked for.
 - It is also possible to store large amounts of data (up to 10 MB), without affecting the website's performance.
 - The data is stored in key/value pairs.
 - A web page can only access data stored by itself.
Caution: everything you store in the LocalStorage is kept forever until the user clears his cache (or unless the user is browsing in "Private mode"). If you only need to store data during a certain session, the use SessionStorage instead of LocalStorage. The sessionStorage object is equal to the localStorage object, except that it stores the data for only one session. The data is deleted when the user closes the browser window.
Tip: this only works in Internet Explorer if your code is loaded from a webserver. It doesn't work in Internet Explorer if you load the file from your filesystem!
Security implications / recommendations
 1. LocalStorage is not Secure Storage! Data in LocalStorage is saved in the browser's cache and is therefore accessible to the (malicious) user.
 2. A cross-site scripting vulnerability can read everything in LocalStorage: the data is meant to be accessed by JavaScript code, so bad JavaScript code also has access to it.
 3. A cross-site scripting vulnerability can modify everything in LocalStorage: don't trust the data stored in the LocalStorage.
 4. The data stored in the LocalStorage is accessible to every page in a certain domain. Different authors sharing one host name, for example users hosting content on, all share one local storage object. There is no feature to restrict the access by pathname. Authors on shared hosts are therefore recommended to avoid using these features, as it would be trivial for other authors to read the data and overwrite it.
 5. Someone with access to the machine has access to all information in LocalStorage:
 - either by looking at the data using a browser:
 - Chrome: open the Developer Tools using Ctrl-Shift-I or via the Menu --> Tools --> Developer Tools, select Resources, select LocalStorage
 - Firefox: install the FireBug extension and use FireBug's console to get the data stored in LocalStorage
 - either by accessing it through the FileSystem:
 6. When using date from LocalStorage, do strict input validation: the data may have been modified by someone/something.
 7. Don't use LocalStorage to store session identifiers, but keep using cookies. At least cookies can be additionally secured using the HTTPOnly and Secure flags.
Check if LocalStorage is supported
Use the following function. It returns True or False depending on whether LocalStorage is supported or not.
function supports_html5_storage() {
try {
} catch (e) {
return false;
Save a value in the LocalStorage
localStorage["strMyKey"] = "My value";
Obtain a value from the LocalStorage
Again simple:
var strMyValue = localStorage["strMyKey"];
If the key you are using doesn't exist in the localStorage array, then "undefined" is returned.
Showing all items in the LocalStorage
Using the length attribute, you can find out how many elements are stored in the LocalStorage. Then use a for-loop to iterate over all elements:
var elements = localStorage.length;
document.write("There are currently " + elements + " elements in local storage:
 // Display all elements in the local storage.
 for (i = 0; i document.write("
 - " + localStorage.key(i) + " = " + localStorage[localStorage.key(i)] + "
 - ");
Remove an element from the LocalStorage
Remove all elements from the LocalStorage
You might also be interested in...


text:
Vertical Curves are nice! I think they are easier to solve than Horizontal Curves because they are essentially parabola equations (which you should be very used to). This is the formula for vertical curves
is the elevation y at x horizontal distance into the curve from the start position
is the starting elevation at x = 0.
R is referred to as the rate of gradient change:
and are the approach grade (or approach tangent) and exit grade. To keep things simple for myself I always express these in decimal percents (e.g. 0.05 instead of 5%). I do this because I like to express my stations as full numbers like 450 feet instead of 4 + 50.
A lot of surveyors and transit engineers do their math the other way. They use the percent value accompanied with the station value (e.g. 5% for 4.5 stations = 5*4.5 = 22.5 feet). This is ok but only works if your stations are at 100 ft. I would just rather convert the stationing to feet and use decimal percent and it is valuable for you to know the difference between the two styles.
PVC is the beginning of the vertical curve.
PVT is the endpoint of the vertical curve. At this point the grade % takes over OR another vertical curve begins.
PVI is the midpoint between PVC and PVT
TP is the high or low point of the curve. You can find its location (x) with:
Plug it's location into the main equation above to find the elevation of the high or low point. Remember that the x from this equation is NOT a station it is a distance from PVC which you may have to convert into the stationing in the problem.
Offset from PVI
If your problem gives you the location of the PVI (middle) and the two gradients you must use a special equation to determine the location of the PVC (beginning) and PVT (end):
You must use this because the first equation depends on the fact that PVC is known. x and y in that equation both represent a distance from PVC.


] ['Perhaps you already'??L2] ['How many of your teachers can'??L2?] ['Did'?L1'really'??L2?] ['Have you ever dreamed you could'??L2?] ['I sometimes dream I can'??L2?] ['Why would'?L1 'wish to'??L2?] ['I have no reason to think'?L1 'ever did'??L2] ] endif enddefine; define intentionword(word); member(word, [hope expect wish want intend aim desire prefer]) enddefine; define :newrule you_intend; dlocal L1 L2 sentence; if itslikeoneof([ [you?L1:intentionword to??L2] ]) then CIRCULATE [ ['Is there anything else you'?L1 to do?] ['Are you sure a'you can??L2?] ['Could I also'??L2?] ['How could we make a robot'??L2 ] ['Not everyone can'??L2] ['Why do you'?L1 to??L2] ['When do you think Lucy will have desires or intentions?'] ['I am sure you can'??L2?] ['How can anything'??L2]] elseif itslikeoneof([ [you are going to??L2] ]) then CIRCULATE [ ['What else are you going to do?'] ['Are you sure a'you can??L2?] ['Could I also'??L2?] ['How could we make a robot'??L2 ] ['Not everyone can'??L2] ['When did you learn to'??L2] ['I am not sure you can'??L2?] ['Perhaps Lucy the robot is also going to'??L2] ['Can AI make a robot'??L2?] ['Can your mother'??L2]] endif; enddefine; define :newrule suppnot; dlocal L1 L2 sentence; if hd(sentence) == "because" then if random(10) < 4 then return endif; tl(sentence) ->sentence endif; ;;; That prevents some awkwardness in replies. if itsaquestion() or random(100) < 40 then ;;; false elseif itslikeoneof([[??L1:nonnull is not??L2] [??L1 are not??L2] [??L1 am not??L2]]) then CIRCULATE [[suppose??L1 were??L2] [is??L1 really??L2?] ['What, then, is'??L2] ['Can you always expect'??L1 to be??L2?]] elseif random(100) > 30 and itmatches([you are??L1]) then CIRCULATE [ ['how does it feel to be'??L1?] ['are you sure you really are'??L1?] ['is this the first time you\'ve been'??L1?] ['How many others close by are'??L1?] ['Are many politicians'??L1?] ['I am told that many actresses are'??L1?] [??L1?] [??L1 and what else?] ['does anyone else know you are'??L1?] ['I wonder if Lucy is'??L2] 'is that connected with your reason for talking to me?' ['would you prefer not to be'??L1?] 'do you know anyone else who is?'] elseif itslikeoneof( [[??L1:nonnull is??L2] [??L1:nonnull are??L2] [??L1:nonnull am??L2]]) then CIRCULATE [ [suppose??L1 'were not'??L2] [sometimes??L1 'aint'??L2] ['What if'??L1 'were not really'??L2] ['Perhaps'??L1 'is not really'??L2] ['do you ever think something is not'??L2?] ['Suppose'??L2 'were not'??L1] ['are you'??L2] [what if I were??L2]] elseif itslikeoneof([[??L1:nonnull can??L2] [??L1:nonnull could??L2]]) then CIRCULATE [ [suppose??L1 'couldn\'t'??L2] ['How can'??L1??L2?] ['Why should I believe'??L1 can??L2?] ['Can a machine'??L2?] ['sometimes'??L1 'cannot'??L2] ['Can you'??L2?]] elseif itslikeoneof([[??L1:nonnull do not??L2] [??L1:nonnull does not??L2]]) then CIRCULATE [[suppose??L1 did??L2] ['Perhaps you really'??L2] ['Is there anything else'??L1 'doesn\'t do?'] ['Then who does'??L2?] ['What else does'??L2?]] elseif itslikeoneof([[??L1:nonnull do??L2] [??L1:nonnull does??L2]]) then CIRCULATE [ [suppose??L1 'did not'??L2] ['Does'??L1'really'??L2?] ['Who doesn\'t'??L2?] ['And what doesn\'t'??L1 do?] ['Perhaps you really don\'t'??L2]] elseif itmatches([??L1:nonnull did not??L2]) then CIRCULATE [[suppose??L1 had??L2?] ['Did you ever'??L2?] ['What had'??L1 'done?']] elseif itmatches([??L1:nonnull did??L2]) then CIRCULATE [ [suppose??L1 had not??L2?] ['did anything else'??L2?] ['did'??L1 'always?']] endif enddefine; define :newrule are_you; dlocal L1, L2; if itslikeoneof([[are you??L2] [Are you??L2]]) then CIRCULATE [ ['suppose you were'??L2] ['suppose I were'??L2?] ['sometimes you are'??L2 'but not today'] ['sometimes Lucy is'??L2. 'Have you met her?'] 'I am not, but you are' [what if I were??L2?] 'I don\'t know enough about you' ] elseif itslikeoneof([[am i??L2][are we??L2]]) then CIRCULATE [ ['suppose you were'??L2] ['What if I were'??L2?] ['sometimes i am'??L2 'but not always'] 'You are not, but I am.' [what if I were??L2?] 'I don\'t have enough self-knowledge to answer that.' ] endif; enddefine; vars complist; ['do machines worry you?' 'Would meeting Lucy the robot frighten you?' 'how would you react if machines took over?' 'Studying Artificial Intelligence would open your mind.''most computers are as stupid as their programmers' 'How do you see the future of robots?' 'Do you like talking to computers?' 'Can you tell you are not conversing with a computer?' 'Can computers really think?' 'Machines can surprise us all' 'When Steve Grand has finished building Lucy -- watch out' 'What if you were a machine?' 'Will machines ever fall in love?' 'Do you really believe I am a machine?' 'I don\'t think a real machine could respond as I do' 'How can schools improve attitudes to computers?' 'Could a PC acquire a wish to go to university?' 'Will Lucy the robot one day wish to be prime minister?' 'What will you do when computers are more intelligent than people?' 'What\'s wrong with computers nowadays?' 'Will the unix operating system take over the market place?' 'How could the machine interface be improved?' 'what do you really think of computers?'] -> complist; define :newrule computer; if ithasoneof([micro eliza vax mac sparc program computer windows ibm pc server network terminal intelligent simulate simulation computers machine machines robots pc workstation workstations unix]) then firstolast(complist) -> complist endif enddefine; define :newrule emphatic; if random(100) < 40 then if itmatches([== of course == ]) then CIRCULATE [ 'Why "of course"?' 'Not everyone would find that so obvious' 'I for one do not agree' 'would your mother find that obvious?' 'Are you always so definite about that?' 'Is that degree of confidence justified?' 'What if I said "Of course not!"?' 'would everyone find that obvious?'] elseif ithasoneof([indeed very extremely]) and not(itsaquestion()) and random(100) > 50 then CIRCULATE [ 'are you sure you are not being dogmatic?' 'extremes can always be tiresome' 'try thinking in a milder way' 'don\'t get too excited about that' 'Perhaps you should calm down a little' 'Really to a great extent?' 'why are you so emphatic about that?'] endif endif enddefine; define :newrule sayitback; if random(100


Wordbee has an online, collaborative translation editor that allows for several different methods for splitting the workload between translators. Separate files can easily be assigned to different translators. Single files can be split manually, before translation, and then combined after translation, or they can be kept as a single file and split within Wordbee for the sake of creating separate jobs. Finally, translators can simply translate in the same file simultaneously, using the collaborative editor. In this case, you may need to make some simple adjustments to word counts to reflect how the workload is being split. Furthermore, there are layers of automation that can help you with dividing and assigning files for translation in a project. If translations are inconsistent between different users, the system will flag it during the quality assurance check.
Want cool localization techniques straight to your email?
Keep up on the latest in localization management techniques with Wordbee.
You have Successfully Subscribed!


text:
Just in case you thought drills are the product of 21st century home improvement television programs, maritime archaeologists have proof that bow drills were used as far back as 400 B.C. by the Greek Phocaeans who resided in the western area of modern-day Turkey. (Actually, bow drills are well known even earlier, and were recovered, for example, from the Uluburun Shipwreck dated to the end of the 14th century BCE).
In contrast to the rather mundane uses of modern drills (mainly drilling holes for construction), bow drills were multipurpose – aside from serving for drilling and construction purposes, the bow drill also made fire and was an important tool widely used in wood working, boat building and even dentistry.
A wooden bow drill was found on the Ma'agan Mikhael Shipwreck discovered in 1985 70 m off shore Kibbutz Maagan Mikhael, along Israel's Mediterranean coast. The ship was excavated, dismantled under water, conserved over a period of seven years and reassembled at the Hecht Museum at the University of Haifa. The artifacts including the bow drill were excavated and retrieved for research in the laboratory on shore. However, from the bow drill only the wood remained, with a hollow and several small wooden cleats that apparently secured a bit; its metal did not survive. Recently, as part of the conservation procedure for this unique item, archaeologists cleaned the drill, including its inner recess, and found minute remains and traces of metal, but its characteristics are not known. The shape of the recess inside the wood could not be traced, nor could we ascertain the shape of the metal bit that did not survive.
Yaacov Kahanov, Head of the Leon Recanati Institute for Maritime Studies, notes that this particular wooden drill is well preserved. "We want to understand how the tool was structured. What kind of metal served as the drill's bit? What was its shape? How was the carpenter / shipbuilder able to ensure that the bit wouldn't come loose during usage?"
Using RayzorX Pro digital radiography system, the bow drill was X-rayed from several angles. The detailed, sharp images resulting from averaging and the use of cutting-edge enhancement tools indicated that remnants of metal were still present in the wood although the bit had disappeared. Prof. Kahanov notes: "The X-ray images indicate that there was an iron blade embedded in the wooden bow. The blade obviously corroded, staining the wood and leaving traces of metal behind."
He adds: "Rayzor Digital Radiography imaging even enables us to see the grooves left by the bowstring. But aside from this, the sharp X-ray images indicate that the blade's bottom section was square, a shape which artisans apparently realized a century ago optimizes anchoring and stress-resistance. The structure of the tool is brilliant, but we wouldn't have been aware of this if it weren't for the advanced digital X-ray equipment used."


Diane Morgan on Air Chief Marshal Hugh Dowding
Manage episode 281153263 series _PHONE_
Comedian and actor Diane Morgan chooses the life of Air Chief Marshal Hugh Dowding. Air Chief Marshal Hugh Dowding is best known for his role in the Battle of Britain. He is widely regarded as the architect of Britain's unlikely victory, using an intelligence strategy known as the Dowding System. The Battle of Britain was at the very end of his military career - his nickname by then was "Stuffy" Dowding - and shortly after he was side-lined. But he cared deeply for every one of his pilots, and following his retirement he became focused on what had happened to all his "dear fighter boys" lost in the war. He wrote extensively on the after life and spiritualism - many bereaved families wrote to him seeking answers as a result. He met his second wife after a medium suggested he take her out for lunch having received a communication from her late first husband from beyond the grave. Together they were prominent advocates of spiritualism, and of animal rights, with Dowding giving his maiden speech in the Lords about the need for ethical standards in slaughterhouses. Diane picked up Dowding's book by pure chance through her local book shop during the first lockdown, and has since become fascinated by the life of this man. Together with Dowding's stepson, David Whiting, and historian Victoria Taylor, Diane discusses Dowding's legacy. Is there a paradox between this great military figure's career, and subsequent fascination with spiritualism and ethics - or does it all make perfect sense? Presented by Matthew Parris Produced by Polly Weston
275 episodes


text: This polygon shapefile contains the constituency boundaries for the cantons of the Deux-Sèvres department of France in 2010. Cantons serve as constituencies for the election of the members of the representative assembly (General Council) within each department of France.The role of the canton is to provide a framework for departmental elections. Each canton elects a person to represent it at the conseil général du département – or general council for the department, which is the principal administrative division of the French Republic. This dataset is intended for researchers, students, and policy makers for reference and mapping purposes, and may be used for basic applications such as viewing, querying, and map output production, or to provide a basemap to support graphical overlays and analysis with other spatial data. Articque informatique. (2010). Cantonal Electoral Constituencies: Deux-Sèvres, France, 2010. Articque informatique. Available at: _URL_ This layer is presented in the WGS84 coordinate system for web display purposes. Downloadable data are provided in native coordinate system or projection.


Do You Know What Your Food Cost "Should" Be? – Why It's Important You Know
One of our surveys revealed that cost control, food cost in particular, is a top priority of many independent operators today.
Most operators indicated that they track their food cost each week, or at minimum, every month. They know that keeping close tabs on their food cost can alert them to potential problems when the cost is higher than expected.
Spikes in cost percentages set in motion the usual investigation process of reviewing controls for monitoring waste, receiving procedures, cost increases, theft, etc. Yet, even with proper controls, some operators are never able to "hit" their target food cost percentage.
Maybe your "food cost target" needs reviewing. When was the last time you costed out your menu? Whether you use recipe costing software, spreadsheet, or even handwritten computations, you should keep the cost of each menu item up to date. Once you know your food cost in each menu item, take one more step and compute your ideal food cost based on the sales mix report from your POS.
Depending on your menu, cost percentages can fluctuate materially from menu item sales fluctuations particularly on high-cost dishes like steaks or seafood. But that doesn't mean you have a food cost problem.
A cost control problem is when there is an unacceptable difference between the ideal and actual cost for a given period.
A 2% variance for a restaurant that does $30,000 a week in food sales amounts to $600 a week. That's over $30,000 a year! However, if the targeted cost is inaccurate then you'll be left scratching your head looking for a food cost problem that doesn't exist.
Here are some tips on how to know what your ideal cost should be:
 - Accurately cost out each menu item.
 - Make sure that each menu item has its own POS key. (so you can track the unit sales of each item)
 - Create a spreadsheet that calculates the cost of each menu item times the number of items sold from the POS report to give an 'Ideal Cost'.
 - Compare the Ideal Cost to the Actual Cost calculation from your P&L.
 - For many operators who regularly compare their "Ideal" to their "Actual" food cost, a variance of greater than 1% of sales indicates a food cost problem.
Article shared from Restaurant Owner.


text:
The Billhead evolved from what was known as a "Trade Card," and in the twentieth Century, became known as letterhead. It was created by printing a heading at the top of a sheet of paper, usually from an engraved copper plate. The lower part of the sheet was used for writing a list, a note, or a bill. The standard billhead measured seven to eight inches wide, and four inches or more in length, depending on the need for space for writing the bill. The printed heading usually included an illustration, and sometimes a street address or location of the business. They also included space to write the date and town where the business transaction took place. They were printed on durable rag paper up until the 1860's and 1870's, after which they were printed on thinner woodpulp paper. In general, billheads of this style were in use and remained relatively the same for approximately a 150 year time frame, over three centuries. As historical artifacts, billheads are useful for providing information about tradesmen's products and prices. They help document the types of goods and services that consumers were purchasing.
The American Antiquarian Society has a collection of over 500 billheads representative of what was printed between the 1780's and 1900. They are housed in two boxes. The first box is devoted entirely to billheads from Boston merchants. The other box includes billheads from traders and hotels located in several states, including Massachusetts. They are organized alphabetically by city and state.
-Terri Tremblay, Assistant Curator of Graphic Arts
Source: Rickards, Maurice, The Encyclopedia of Ephemera. New York: Routledge, 2000.


Crosstown Traffic
Integrated Media Systems Center and USC Annenberg School of Journalism have teamed up to analyze IMSC's massive and ever-growing traffic database. Traffic data, particularly in a city such as this one, is unique in its ability to send us signals about the economy, quality of life, safety, and social and economic status in Los Angeles. Each team br unique skills to this endeavor. The expertise of IMSC researchers in computer science, data management and statistics was essential in the curating and codifying of millions of bits of information. The Annenberg side was charged with figuring out what questions the data might be able to answer and what stories it might be able to tell us about the city we live in.


text:
You are here
Emergency Operations Plan
To respond effectively to any emergency of a size or complexity beyond routine responsibilities, it is critical that all City of Lynchburg employees, public officials, departments, agencies, non-governmental emergency organizations and the public understand their roles and responsibilities. These non-routine responsibilities begin as the incident is recognized and response ensues, and become particularly important as command organizes beyond the initial reactive phase of "first-due" responders.
The foundation for this coordinated response is established through the City of Lynchburg Comprehensive Emergency Management Program and its component Emergency Operations Plan (EOP). The Emergency Operations Plan (EOP) identifies the departments and agencies that are responsible for providing command and coordination capabilities for large-scale or unusual events, and describes how the multiple command and response components are organized and managed. It provides the framework to mitigate, prepare for, respond to, and recover from any emergency or disaster.


text:
When cultivating a garden or taking photographs of plants, most people carefully tend to the top parts – the leaves and flowers – while letting nature handle the bottom – the roots and soil. Artist Diana Scherer, in her Nurture Studies, turns that focus on its head. She takes seeds from her garden and grows plants in vases, carefully nurturing them for months, before breaking the vases and photographing the results.
It's not a surprise that the roots of flowers and weeds are beautiful in themselves. What startles is the focus on what's usually unseen. Scherer, a German born artist living in the Netherlands, explains: "Above ground, I let nature run its course. However, below the surface, by using a vase as a mold, I control the growth of the roots and the shape."
Her photographs are simple, elegant and formal – the soil-coated roots of a dandelion are presented as if they were the blooms of an orchid. Says Scherer:
"I'm interested in the age-old human practice of manipulating nature. There is a certain ambiguity that I find intriguing; the idea of loving care and, at the same time, ruthless manipulation. For example, the gardener who loves nature and nurtures the plants he desires also ruthlessly cuts, snips and manipulates them."
–from "Review of Nurture Studies" in Hotshoe Magazine by Miranda Gavin
Scherer says that, once she is done photographing a plant, she replants it in her garden and once again allows nature to take over. The roots, having had their moment in the sun, so to speak, can return to their sometimes overlooked but crucial role beneath the surface.
You can see more of Diana Scherer's work here. A book of Nurture Studies is available here.


text:
Efficient Checking of Individual Rewards Properties in Markov Population Models
|Title||Efficient Checking of Individual Rewards Properties in Markov Population Models|
|Publication Type||Conference Paper|
|Year of Publication||2015|
|Authors||Bortolussi L, Hillston J|
|Conference Name||Quantitative Aspects of Programming Languages and Systems (QAPL)|
|Keywords||Markov population models, Rewards, Stochastic Approximation, Stochastic model checking|
In recent years fluid approaches to the analysis of Markov populations models have been demonstrated to have great pragmatic value. Initially developed to estimate the behaviour of the system in terms of the expected values of population counts, the fluid approach has subsequently been extended to more sophisticated interrogations of models through its embedding within model checking procedures. In this paper we extend recent work on checking CSL properties of individual agents within a Markovian population model, to consider the checking of properties which incorporate rewards.


text:
When is it possible to prove that a compact operator $T: V \to V$ where $V$ is a Banach space is also differentiable? Fréchet differentiable?
PS: There is a further information which might help. My operator $T$ associates to each vector field $j$ a vector field $b$ solution of a certain boundary value problem. I will write the whole set of equations if asked to.


text:
Unlike the other phases, only the first player acts in the Mythos Phase (check the first sentence about the Mythos phase in the rulebook page 9)
In your example you'd have 10 turns each before the GOO (Great Old One) awakens. Some caveats:
- 10 is just a sample number, various GOO's have between 7 and 14 tokens allowed.
- Not all Mythos cards open a gate (Rumors for example).
- There may already be a gate there (no Doom token is placed).
- Gates can open via other circumstances (these also generate a Doom token).
You can never be quite sure how many turns you have left. That's one of the great things about Arkham Horror.
The terror track is completely different. The main way that it advances is due to having too many monsters in the outskirts. It is pretty rare to fill the terror track, but you will see a building or two close fairly often.
For two players, you are allowed 6 monsters in the outskirts; if there are any more, then dump them and increment the terror track. (Note that 8 less the number of players is always the maximum number of monsters allowed in the outskirts.)


text:
Please tell me if I'm being overly simplistic here.
I was reading the book yeast by Chris White and Jamil Zainasheff. In the book, they talk about measuring how many cells are in a slurry by using a microscope or by dilution until the slurry is clear in a test tube.
However, they also mention that the size and weight (density) of a yeast cell is known, the density of water is also known. So couldn't one take a yeast slurry, measure its weight and volume and use this measure of density to determine what percentage of the mass is composed of yeast, and what percentage is composed of water?
Clearly, since wort is more dense than distilled water, you may have to wash the slurry first. But this seems much simpler than whipping out a microscope or doing multiple dilutions.
Should this work?
Note: I'm talking about measuring the number of yeast cells in a slurry, not their viability or vitality.


text:
A ceremony is an activity performed at a special time. Ceremonies may be done to celebrate an event or rite of passage.
Celebration of life[change | edit source]
Government ceremonies[change | edit source]
Sometimes, a ceremony may only be done by certain people. A wedding is done by a priest or a Civil Celebrant. The President of the United States is sworn in by the Chief Justice of the United States at his or her inauguration. The British monarch is usually made king or queen by the Archbishop of Canterbury at his or her coronation.
Celebration of events[change | edit source]
Other ceremonies may mark yearly events like:


text:
noun (plural same)
One of a breed of large white beef cattle.
- Other Cattle Breeds on show include Herefords, Simmentals, Charolais, Aberdeen Angus, Blonde D' Aquitaine, and Limousin.
- The Charolais and Simmental cattle on sale on Tuesday were of good quality.
- The Charolais breed of cattle since their introduction to Ireland in 1964 have made a huge impact on the livestock in this country.
Late 19th century: named after the Monts du Charollais, hills in eastern France where the breed originated.
For editors and proofreaders
Definition of Charolais in:
What do you find interesting about this word or phrase?
Comments that don't adhere to our Community Guidelines may be moderated or removed.


text:
Estadio Centenario Stadium in Montevideo was born when FIFA assigned the first World Cup football championship to Uruguay. An adequate venue was missing to host this important event. The Uruguayan delegation was engaged in the building of a gigantic stadium that could hold 100,000 spectators. The entire tournament had to be played in this stadium! Works had to start right away. Within a year the tournament would start!
The stadium was designed by architects Juan Antonio Scasso and José Domato. The initial project consisted of four sectors built in an elliptical shape. If followed a strict geometrical order and was designed to include an athletics track. The different sectors were characterized by a geometrical continuity and by an equal distance to the centre of the playing field. However, it turned out impossible to complete the stadium with three levels of tiers. Therefore, the initial project was modified and the third ring was remodelled. It got built on one sector of the stadium only. Base areas with standing room were added below the tribunes and therefore the athletics track could not be built anymore. The capacity of remodelled stadium dropped to 70 000.
The first World Cup tournament was set to start on July 13th, 1930. Construction of the stadium was finished only 5 days later. Therefore, the first opening match in World Cup's history was relocated to Pocitos Stadium, a small stadium that belonged to a local football club named Peñarol. The new stadium was named 'Centenario' to celebrate the first century of Uruguay's independency. At that time, the stadium was very modern and functional. It had two levels of tiers, three sections with base areas, and a main tribune with three levels of tiers. On the latter, a tower of 100 meters (328 feet) was built, symbol of the monumental project. On top of the tower, the winning country's flag of the World Cup tournament flew.
In successive years, the stadium was enlarged several times. A third ring of tiers was built on two other sections of the stadiums (the ones behind the goals). During the seventies, the stadium could hold a capacity of 90 000 spectators. During these years, a school and museum on football were opened under the tribunes of the stadium.
Today the stadium contains several stands and it has a capacity of almost 74 000, mostly seating. It is also used for other events. In recent history, for example, it often served as the arrival of the 'Vuelta Ciclista', a cycling competition in Uruguay. Of course, the Centenario Stadium will always be famous for its history as the first stadium to have hosted a World Cup final.
© by Angelo Spampinato


text: The Marine and Environmental Science Camp held its first annual recycle regatta. After learning about buoyancy and ship design, the campers made sailboats out of recycled material. They were given a number of materials to choose from, including: aluminum cans, plastic milk jugs, newspaper, egg cartons, paper towel rolls, tin foil, juice boxes, glass bottles, cardboard boxes, and much more. After construction, the marine and environmental science campers were able to race their sailboats in the FIT fluid mechanics wave tank. Campers designed many types of boats and had lots of fun in the process!


Take the 2-minute tour ×
Using Python I want to be able to draw text at different angles using PIL.
For example, imagine you were drawing the number around the face of a clock. The number 3 would appear as expected whereas 12 would we drawn rotated counter-clockwise 90 degrees.
Therefore, I need to be able to draw many different strings at many different angles.
share|improve this question
3 Answers 3
up vote 18 down vote accepted
Draw text into a temporary blank image, rotate that, then paste that onto the original image. You could wrap up the steps in a function. Good luck figuring out the exact coordinates to use - my cold-fogged brain isn't up to it right now.
This demo writes yellow text on a slant over an image:
# Demo to add rotated text to an image using PIL
import Image
import ImageFont, ImageDraw, ImageOps
f = ImageFont.load_default()
txt=Image.new('L', (500,50))
d = ImageDraw.Draw(txt)
d.text( (0, 0), "Someplace Near Boulder", font=f, fill=255)
w=txt.rotate(17.5, expand=1)
im.paste( ImageOps.colorize(w, (0,0,0), (255,255,84)), (242,60), w)
share|improve this answer
It's also usefull to know our text's size in pixels before we create an Image object. I used such code when drawing graphs. Then I got no problems e.g. with alignment of data labels (the image is exactly as big as the text).
img_main = Image.new("RGB", (200, 200))
font = ImageFont.load_default()
# Text to be rotated...
rotate_text = u'This text should be rotated.'
# Image for text to be rotated
img_txt = Image.new('L', font.getsize(rotate_text))
draw_txt = ImageDraw.Draw(img_txt)
draw_txt.text((0,0), rotate_text, font=font, fill=255)
t = img_value_axis.rotate(90, expand=1)
The rest of joining the two images together is already described on this page. When you rotate by an "unregular" angle, you have to improve this code a little bit. It actually works for 90, 180, 270...
share|improve this answer
I'm not saying this is going to be easy, or that this solution will necessarily be perfect for you, but look at the documentation here:
and especially pay attention to the Image, ImageDraw, and ImageFont modules.
Here's an example to help you out:
import Image
im = Image.new("RGB", (100, 100))
import ImageDraw
draw = ImageDraw.Draw(im)
draw.text((50, 50), "hey")
To do what you really want you may need to make a bunch of separate correctly rotated text images and then compose them all together with some more fancy manipulation. And after all that it still may not look great. I'm not sure how antialiasing and such is handled for instance, but it might not be good. Good luck, and if anyone has an easier way, I'd be interested to know as well.
share|improve this answer
Your Answer


Comment: Parens Patriae :
(See in situ)
Parens Patriae :
This is the "philosophy" used to explain the arrogation of power in these matters.
Parens patriae is Latin for "parent of the nation." In law, it refers to the public policy power of the state to intervene against an abusive or negligent parent, legal guardian or informal caretaker, and to act as the parent of any child or individual who is in need of protection. For example, some children, incapacitated individuals, and disabled individuals lack parents who are able and willing to render adequate care, requiring state intervention. In U.S. litigation, parens patriae can be invoked by the state to create its standing to sue; the state declares itself to be suing on behalf of its people. For example, the Hart-Scott-Rodino Antitrust Improvement Act of 1976 (15 USC 15(c)), through Section 4C of the Clayton Act, permits state attorneys general to bring parens patriae suits on behalf of those injured by violations of the Sherman Antitrust Act.


Category Archives: C#
The.NET Bio BAM Parser is Smoking Fast
Using Selectome with.NET Bio, F# and R
Example Walk Through.
Mono.Simd and the Mandlebrot Set.
Test Case
z_{n+1} = z_n^2 + c
The Algorithm
Trying to Implement the Optimal Solution Using Mono.Simd
Results – It's Faster on Ubuntu
The Assembly Generated is Still Not Optimal
References [ + ]
Accessing dbSNP with C# and the.NET Platform
NCBI Entrez can be accessed with many different platforms (python, R, etc.), but I find.NET one of the best because the static typing makes it easy to infer what all the datafields mean, and navigate the data with much greater ease.
Documentation is sparse for this task, but here is how to access NCBI from the.NET platform. The example steps/program show how to query dbSNP for information about particular ids.
 1. Open visual studio, start a new project and add two Service References to the project: and files. Note that the efetch depends on the database used, in this case "snp" other databases have different ones. You should now have two references:image
More information is available here on setting up visual studio:
2. Next up grab the data as shown in the example. Each SNP has A LOT more data, which can be inspected in the IDE.
 1: static void Main(string[] args)
 2: {
 3: string dbSNPid="28357684";
 4: efetch.eFetchRequest re = new efetch.eFetchRequest();
 5: = dbSNPid;
 6: var serv=new efetch.eUtilsServiceSoapClient();
 7: var exchange = serv.run_eFetch(re);
 8: var snpData = exchange.ExchangeSet.Rs[0];
 9: object[] dataToReport=new object[] {
 10: snpData.Het.value,
 11: snpData.hgvs.First(),
 12: snpData.PrimarySequence.First().accession,
 13: };
 14: Console.WriteLine( String.Join("\t",dataToReport.Select(x=>x.ToString()).ToArray()));
 15: Console.ReadLine();
 16: }
The following links contain other useful information for consuming the entrez webservice in C#.
Setting up visual studio:
Using efetch:
Forming queries:
More information:
Also note that the first query takes much longer than subsequent ones, for reasons unknown to me at present.
Java vs. C# Performance Comparison for Parsing VCF Files
Making a comparison with a reasonably complex program ported between the two languages.
Update 3/10/2014: After writing this post I changed the C# parser to remove an extra List<> allocation in the C# code that was not in the Java code. After this, the Java/C# versions are indistinguishable on speed, but the C# code used ~88 MB of memory while the java version used >1GB. Therefore, I now believe the winner is C# and a fast implementation of this parser (which can be over an order of magnitude faster for certain scenarios not in this test) is available here
VCF files are a popular way to store information about genotypic variation from next generation sequencing studies. The files are essentially large matrices, where each element in the matrix represents a collection of information about the genotype of a particular person at a particular locus in the genome (in this sense, they can be considered as a multi-dimensional matrix in a flat file format). The Java Picard package is a common utility used for parsing these files. While parsing, the challenge is to read each line (row) of the file, and construct objects for each element in that row that can then be manipulated or inspected. I just finished translating the Java VCF parser in Picard to C#, and so thought it might be a good chance to compare the two different languages and runtimes. C# showed a number of advantages in the translation. The translation itself was mostly a lot of deleting. The get/set assessors in C# really allowed for the removal of seemingly endless amount of getXXXX/setXXX methods in Java. It also seemed like every other line in Java was a call to some apache commons class to perform a simple task like get the maximum value in an array, create an empty list, or do a selection on data. Extension methods and Linq have clear advantages for data processing here (though I have found these have a slight overhead relative to the for loop equivalents). Yield statements in Java also would seem to be useful. At the same time, Java had some things that would have been nice in C#. I had to implement basic collection types like immutable hashsets and dictionaries, a LinkedHashSet class as well as an OrderedGenericDictionary during the port. These should be in the C# language.
This of course am what I am most interested in. My main computer is broken, so I had to test on my windows desktop at home. For the test, each program would read a gzipped VCF file for 20,000 lines, first creating an initial lazy class representing a portion of the data and then fully decoding this lazy version to represent the complete data as objects. The test file was a VCF with >1,000 individuals, though unfortunately most of these individuals were non-calls at various positions, but its what I had on hand. Immediately after porting – After essentially re-writing the Java in C#, I ran some tests. Both Java and C# can run in either client (low-memory) or server modes. So I did both, here are the results:
Platform VM Options Working Set Paged Memory Time (s)
Java None 27.8 MB 41.32 MB 11.5
.NET None 28.9 MB 30.22 MB 15.1
Ratio 1 1.35 0.76
Java Server 362.2 MB 414 MB 7.4
.NET Server (GC) 126 MB 332 MB 14.7
Ratio 2.9 1.25 0.5
A couple noticeable conclusions here. First Java is smoking.NET on performance, but this is essentially Java code at this point and it wasn't written for C#. Second, there is a massive amount more memory used in server mode, and in Java at least one obtains a large performance win for this cost. After "Sharpening" the code – The initial port was basically Java, so I cleaned it up a bit after running it through the profiler, here are some notable changes:
 - String.Split winds up being a big cost in this parsing. When porting I initially just recreated an array every time, after I realized I was recreating such large arrays I reused them as in the Java code.
 - In C# you can use unsafe pointers and I got a big performance win out of these. I grabbed the System.String.Split code from the Mono framework, trimmed/altered it, and used it for all the split methods that seemed to be taking a long time. The Java version also implements a custom Split method, though obviously can't use pointers.
 - Some additional cleanup in the logic.
Platform VM Options Working Set Paged Memory Time (s)
Java None 27.8 MB 41.32 MB 11.6
.NET None 28.9 MB 30.22 MB 12.6
Ratio 1 1.35 0.92
Java Server 362.2 MB 414 MB 7.4
.NET Server (GC) 123 MB 181.61 MB 10.8
Ratio 3 2.27 0.68
So round 2, and once again Java is the winner for speed in server mode, though at a high cost in memory. For the lower memory client model, it is nearly a tie between the two.
What explains the difference?
These programs are nearly identical but the bottleneck is not the same in both. It seems C# can split strings much faster and Java can allocate memory much faster. Although I am less familiar with the Java profiler, it seems to show 66% of the time is spent on the String splits. In contrast, in C# the methods that are taking up time have to do with allocating memory (constructors) and the GC, string splits are only ~17% of the total time. image image One the one hand, this means that the JVM is really doing a great job in server mode on memory allocations and other optimizations. I can't think why C# shouldn't be able to match the JVM performance (perhaps dynamic recompilation is really killing it here). On the other hand, it means that the C# program can still be improved, while I can't really see how to improve the Java one. The String.Split method has already been rewritten, and I didn't see any reasonable improvements for it. In contrast, both programs have several places where memory allocations can be saved. For example, one aspect of the parser is that it relies on a factory class to create another class and so allocates twice the memory that it needs as it creates two large objects. Simply having one object be it's own factory would solve this. Similarly, several empty lists are repeatedly created that could point to the same list or simply be skipped