text:
Kinsale is a town steeped in history and colour and a popular tourist destination. Kinsale was the battlefield site where the English forces defeated an Irish/Spanish force in 1601.
Charles Fort, which is a now a popular location for events, dates back to 1677. Charles Fort is a fortification that guards the entrance to Kinsale harbour – naturally it was built to protect the harbour from enemy attacks from France and Spain. On the other side of the cove you will find James's Fort near the Castlepark peninsula.
On May 7, 1915 when the German U-boat sunk the RMS Lusitania, the survivors were brought to Kinsale and the subsequent inquest on the bodies recovered was held in the town's courthouse. In light of the sad tragedy, you will find a statue in the harbour commemorating the effort.


kids encyclopedia robot
Summitview, Washington facts for kids
Kids Encyclopedia Facts
Quick facts for kids
Summitview, Washington
Location of Summitview, Washington
Location of Summitview, Washington
Country United States
State Washington
County Yakima
 - Total 2.6 sq mi (6.7 km2)
 - Land 2.6 sq mi (6.7 km2)
 - Water 0.0 sq mi (0.0 km2)
1,276 ft (389 m)
 - Total 967
 - Density 348.6/sq mi (134.6/km2)
Time zone UTC-8 (Pacific (PST))
 - Summer (DST) UTC-7 (PDT)
FIPS code 53-68417
GNIS feature ID _PHONE_
Summitview is a census-designated place (CDP) in Yakima County, Washington, United States. The population was 967 at the 2010 census.
Based on per capita income, Summitview ranks 18th of 522 areas in the state of Washington to be ranked. It is also the highest rank achieved in Yakima County.
Summitview is located at 46°35′54″N 120°38′18″W / 46.59833°N 120.63833°W / 46.59833; -120.63833 (46.598447, -120.638403).
As of the census of 2000, there were 900 people, 294 households, and 256 families residing in the CDP. The population density was 348.6 people per square mile (134.7/km²). There were 308 housing units at an average density of 119.3/sq mi (46.1/km²). The racial makeup of the CDP was 94.33% White, 0.33% Native American, 0.22% Pacific Islander, 3.33% from other races, and 1.78% from two or more races. Hispanic or Latino of any race were 7.78% of the population.
There were 294 households out of which 45.9% had children under the age of 18 living with them, 79.3% were married couples living together, 5.4% had a female householder with no husband present, and 12.9% were non-families. 9.9% of all households were made up of individuals and 2.7% had someone living alone who was 65 years of age or older. The average household size was 3.06 and the average family size was 3.29.
In the CDP, the age distribution of the population shows 29.8% under the age of 18, 6.4% from 18 to 24, 27.0% from 25 to 44, 26.6% from 45 to 64, and 10.2% who were 65 years of age or older. The median age was 40 years. For every 100 females there were 100.4 males. For every 100 females age 18 and over, there were 103.9 males.
The median income for a household in the CDP was $66,944, and the median income for a family was $67,083. Males had a median income of $48,036 versus $25,139 for females. The per capita income for the CDP was $36,301. About 2.8% of families and 2.6% of the population were below the poverty line, including none of those under age 18 and 11.5% of those age 65 or over.
kids search engine
Summitview, Washington Facts for Kids. Kiddle Encyclopedia.


text:
Package-Specific Context Entries
This example outlines how to create package-specific context entries.
The Context Panel provides easy clickable access to many commands in Maple. In Maple's user interface, when your cursor is on either input or output for 2-D math expressions (or output from 1-D math expressions), context-sensitive operations can be found in the Context Panel on the right side of the screen.
In order to make sure that as many people as possible can access commands in your package, it is important to consider adding one or more of your commands to the context-sensitive infrastructure. The following example will show you how that's possible.
First, start with a package that you have authored.
Here is a quick example of a package module that has three exports:
squared: a procedure that takes an integer and squares it
cubed: a procedure that takes an integer and cubes it
parsestring: a procedure that takes a string and attempts to parse it
Here is the output of the package exports.
Adding Context Panel Entries
There are several important parts of building individual entries for the context panel.
Most importantly, you want to know:
WHAT to call the entry; the label to show in the context panel
WHICH command you want to use; the command to apply when the label is clicked
WHEN to show the entry; under what type conditions the option is shown
HOW you will help the user use it; the tooltip to help describe what the command does
The command to add an entry to the current context-sensitive infrastructure is called ContextMenu:-CurrentContext:-Entries:-Add.
Here is a short example of using the command where you add an entry to the context panel that negates a boolean value:
"Negate", _TAG_ to show
"not %EXPR", _TAG_ to apply
boolean, _TAG_ conditions
'helpstring'="Negate the expression"): _TAG_ to show
Try clicking on the output below and using the "Negate" option from the context panel.
Using "Negate" gives the following:
The most important part of specifying a context panel entry is determining WHEN to show it. Typically, you should try to show context-sensitive entries whenever Maple detects input that is of the same type as is expected for your routines. For example, the above module expects type integer for the procedures squared and cubed, and type string for the procedure parsestring.
Here is another example using the module above. In this example, you will add a new entry called "Square" that is shown for an integer input.
"Square", _TAG_ to show
":-MyPackage:-squared(%EXPR)", _TAG_ to apply
integer, _TAG_ conditions
'helpstring'="Square the expression"): _TAG_ to show
Click on the output below, then use the "Square" option from the context panel.
Using "Square" gives the following:
Since the example for cubed will be similar to squared, you can skip that and do one more example for the parsestring procedure.
"Parse string", _TAG_ to show
":-MyPackage:-parsestring(%EXPR)", _TAG_ to apply
string, _TAG_ conditions
'helpstring'="Parse the string"): _TAG_ to show
Adding Context Panel Entries to a Package
Next, add the entries for each of the procedures created above to the code for the package module. For a package implemented as a module, new and relevant context-sensitive entries can be created inside the module's ModuleLoad export; this will cause the new context panel entries to be automatically created upon the first invocation or use of the package.
Before adding the entries for the procedures to the package module, make a copy of the current context panel. You can now freely customize the copied panel.
Note: The added entries will not be visible in the Maple context panel until you execute the Install command.
pCM := ContextMenu:-CurrentContext:-Copy():
Queries can be useful while determining when to show your context-sensitive items. New context panel entries can be configured so as to only appear under specific circumstances - such as when the package is loaded (using with).
Add a query to test if your package is loaded or not:
"Is MyPackage Loaded",
member( ':-MyPackage', packages() );
The AddMultiple command adds multiple entries in one call:
'helpstring'="Square the expression" ],
'helpstring'="Cube the expression" ],
[ "Parse string",
'helpstring'="Parse the string"],
'submenu'=["MyPackage"], _TAG_ a sub-folder for MyPackage
'active'="Is MyPackage Loaded"); _TAG_ active option tests whether some condition is met( i.e. if "Is MyPackage loaded"? );
The Install command adds the entries to the context panel:
Next, load the package to activate the entries:
Finally, you can put this together in the original procedure, creating a package that contains its own context-sensitive panel code. In order for the context-sensitive code to be available when a package is run, it is required that the code for the actions are added to the ModuleLoad section of the module. If a ModuleLoad local or export is present, then this procedure is called when the module is read from the Maple repository in which it is located (in the code below, this is done manually by calling ModuleLoad() ).
When MyPackage is loaded, the ModuleLoad section is initialized, making the commands available in the context-sensitive system.
Thus, clicking on 3 now shows a submenu for "MyPackage" as well as several available commands.
There are more examples that discuss package authoring and context panels in Maple, including:
Creating a New Package Workbook
Adding an Entry to the Context Menu Module
Return to Index for Example Worksheets
Download Help Document
What kind of issue would you like to report? (Optional)

source: openbmb/Ultra-FineWeb


Survey: Dinner or Supper?
What word do you use to refer to the last meal of the day? Some of us say "supper," and some of us say "dinner." We've noticed it's either a regional or a generational thing, and we're interested in knowing what you say. More on the history of dinner versus supper below...
Technically, the word "supper" refers to a light evening meal, and "dinner" is a more formal, hearty meal.
In colonial days, farmers were too busy to eat three meals a day, so they only had breakfast and dinner, and the wealthy had three meals a day: breakfast, dinner, and supper. Back then, dinner was a hearty meal that one ate in the middle of the day, and supper was a lighter meal that one ate before retiring for the evening.
In the 1800's, things shifted a little bit. In households of the upper classes that employed a cook or servant, dinner was served at the end of the day. Supper was eaten in the afternoon and was a lighter meal. Usually the wealthy hosted dinner parties, and were expected to set out lavish meals that lasted for several hours.
In middle class households without servants, dinner was eaten in the middle of the day, and supper was the last meal, for practical reasons: it took a lot of work to get the stove fires going, so after cooking breakfast, the housewife would keep the fires going and cook dinner next. This way she wouldn't have to make two stove fires a day and she could concentrate on her other house chores and the raising of children. This practice worked well with people who traveled or lived in encampments: think pioneer wagon trains and gold rush people.
These days, we think people just say what their parents (or others around them) say. What do you think?
(Image: Painting by Frederick Cotman; available through Easyart for Â£34.95)


TY - JOUR AU - Barbara Kornacka PY - 1970/01/01 Y2 - 2021/04/12 TI - Tra legge, corpo e simbolo. La paternità omosessuale e la cultura androcentrica in Sei come sei di Melania G. Mazzucco JF - Romanica Silesiana JA - RS VL - 12 IS - 1 SE - DO - UR - _URL_ AB - The following paper analyzes the theme of homosexual paternity. It analyzes Mazzucco's novel on three different levels: the legal and social context, the gender perspective, and the level of literary and artistic symbols. In each of these areas we can observe the importance given to traditional paternity, seen as legal power or divine creation of the men. On the contrary, homosexual paternity is excluded by law, denied as containing maternal elements, and endowed with modest symbolic power. ER -


text:
Lori Manages Digital Marketing For A Travel Agency And Believes YouTube Could Help The Company Reach A Wider Audience. She Told Her Employer That Users Choose YouTube For The Rich And Diverse Content. What Two Other Reasons Can Lori Provide For Why Users Choose YouTube? (Choose 2.)
- Users can search for specific job opportunities.
- Users can directly engage with the creators they care about.
- Users can connect with a community.
- Users can search for specific ads.


or Login to see your representatives.
Key Votes
SB 558 - Montana Electric and Gas Authority Act - Key Vote
Montana Key Votes
Stage Details
Legislation - Bill Failed (Senate) (25-25) - (Key vote)
Title: Montana Electric and Gas Authority Act
Vote Smart's Synopsis:
Vote to pass a bill to create the Montana Electric and Gas Authority.
-Authorizes the authority to engage in activities necessary to maintaining an adequate and efficient supply of natural gas and electricity, including acquiring ownership of fuel supplies and facilities located within or outside of the state [sec.6(1)]. -Authorizes the authority to issue negotiable bonds [sec.8]. -Allows the legislature to make appropriations to the authority for the acquisition of the stock or assets of a public utility, which are to be treated as an advance to the authority and repaid as mutually agreed [sec.22]. -Sets tax classes for property owned by the authority [sec.23-25]. -Establishes that any electric transmission lines and facilities owned by the authority with a capacity of less than 500 kilovolts are not subject to taxation [sec.27(1)(b)].
Legislation - Introduced (Senate) -
Title: Montana Electric and Gas Authority Act
 - Greg H. Lind (MT - D) (Out Of Office)
Back to top


text:
What is Structural Testing?
Structural testing, also known as glass box testing or white box testing is an approach where the tests are derived from the knowledge of the software's structure or internal implementation.
The other names of structural testing includes clear box testing, open box testing, logic driven testing or path driven testing.
Structural Testing Techniques:
Statement Coverage - This technique is aimed at exercising all programming statements with minimal tests.
Branch Coverage - This technique is running a series of tests to ensure that all branches are tested at least once.
Path Coverage - This technique corresponds to testing all possible paths which means that each statement and branch are covered.
Calculating Structural Testing Effectiveness:
Statement Testing = (Number of Statements Exercised / Total Number of Statements) x 100 % Branch Testing = (Number of decisions outcomes tested / Total Number of decision Outcomes) x 100 % Path Coverage = (Number paths exercised / Total Number of paths in the program) x 100 %
Advantages of Structural Testing:
Forces test developer to reason carefully about implementation
Reveals errors in "hidden" code
Spots the Dead Code or other issues with respect to best programming practices.
Disadvantages of Structural Box Testing:
Expensive as one has to spend both time and money to perform white box testing.
Every possibility that few lines of code is missed accidentally.
Indepth knowledge about the programming language is necessary to perform white box testing.


text:
Estimating the girth of fish by applying an elliptic model
- A new method for estimating the maximum girth of roundfish is proposed as illustrated; this is based on an elliptic approximation of the cross sections of the fish body. Results derived from a small sample horse mackerel, Trachurus trachurus, suggest that maximum girth estimates based on the elliptic model are more precise than the values estimated by applying a conventional method.
- Miscellaneous themes
- Journal Article


Puma Helicopters Mark 50 Years' RAF Service With Flypasts
Ten of the helicopters are flying over locations with significance to the Puma Force as part of a training sortie.
A formation of Puma helicopters is commemorating 50 years of RAF service with flypasts in areas significant to the aircraft's history.
Ten of the helicopters are covering the route as part of a training sortie to mark the occasion.
RAF Benson shared maps and examples of the locations, along with expected timings, although it was stressed that these may change at short notice.
Writing on Facebook, the base said: "The first Puma helicopters were delivered into service in 1971.
"A formation of up to 10 Puma helicopters will depart RAF Benson tomorrow morning as part of a training sortie that will include flypasts of notable locations for the Puma Force over the past 50 years.
"This includes sites that hold historical significance for the Puma Force as well as those that provide support to delivering current Puma operational capability."
First delivered on 29 January 1971, the medium-lift support helicopters have flown combat and humanitarian operations around the world, deployed in places including Northern Ireland, Bosnia, Kosovo, Iraq, Afghanistan, Mozambique and the Caribbean.
As part of the 50th anniversary of the aircraft's service, a helicopter at the airbase was given a unique new paint job that includes the badges of the squadrons that have flown the Puma, and a tail fin emblazoned with the Union Flag and its own bespoke Puma 50 logo.


text:
What's That Weird Sound That Happens When I Open My Car Window?
You're driving down the highway and decide to let in a bit of fresh air. You roll down one of your windows, and suddenly it's like a freight train is running right next to your car. The overwhelming, rhythmic "thumping" sound feels like it's about to blow out your eardrums.
We've all experienced it. But what is it?
That's wind buffeting ‒ a loud and annoying phenomenon that happens when you roll down a lone window in your vehicle. But why does that happen, and what can you do to stop it?
Let's find out.
3 Facts About Wind Buffeting
1. It's Caused When Two Pockets of Air Crash Together
Get ready for some science. Wind buffeting is caused by an occurrence known as Helmholtz Resonance. In a nutshell, when you open just one window in your vehicle ‒ or the sunroof or moonroof ‒ the air inside your car thumps up against the faster-moving air outside the window.
When they clash, these two bodies of air compress and decompress over and over again. The result? Small wind vortexes that create that loud thumping sound.
These factors can affect wind buffeting:
- The size and shape of your vehicle: You'll hear louder thumping from newer, aerodynamic cars compared to older, boxy models. (More on that below.)
- Your driving speed: The faster you drive, the more noticeable and extreme the noise.
- Back vs. front windows: Wind buffeting is worse in back windows, since your front windows have side mirrors to help redirect the airflow.
2. It's More Common in Newer Vehicles
New cars are more aerodynamic than their older cars. That means their shape and design help them move through the air more easily, reducing overall drag.
Unlike older vehicles, they're also constructed to keep air sealed inside the vehicle rather than letting it escape ‒ or enter. It's great for fuel economy, among other things.
But with all that air closely hugging the exterior of newer vehicles, any kind of opening – like your backseat window – will interrupt that smoother airflow and cause that thumping sound.
See also: How to Get Better Gas Mileage (And Other Questions About Fuel Economy)
3. It's Pretty Easy to Fix
Want the thumping to go away? Just open another window to help stabilize the air pressure. Voilà!
If only all other car annoyances were so easy to solve (we're looking at you, flat tires).
Feel Right at Home
From the position of the steering wheel to your favorite station on the radio, your car is your safe haven on the road ‒ even with a little wind buffeting along the way. We want you to feel just as comfortable with your auto insurance coverage.
Get a no-obligation quote from a local car insurance agent near you today.


text: OBJECTIVE: To estimate the effects of increasing gas prices on mortality. METHOD: We developed a simulation-based partial equilibrium model that estimated the public health effects of a 20% rise in gas prices. Estimates on price elasticity for gasoline, price elasticity of motor vehicle crashes, relations among gasoline use, air pollution, and mortality were drawn from literature in economics, epidemiology, and medicine. RESULTS: For sustained 20% increases in gasoline prices over 1 year, and assuming other prices and factors were constant, we estimated: 1994 (range, 997 to 4984) fewer deaths from vehicle crashes and 600 (range, 300 to 1500) fewer deaths from air pollution. Combining both, we estimated 2594 fewer deaths. A Monte Carlo simulation involving varying assumptions on elasticities and relations indicated that 95% of the combined reduction in deaths was between 1747 and 3714. CONCLUSION: Results suggest that high gas prices have public health implications.

source: HuggingFaceFW/fineweb-edu


text:
annoying space between an image and table bottom
Anybody got ideas how to eliminate space between the bottom line of an image and the bottom line of a table?
gives unneeded and unexpected thin line between the image and and the bottom of the table, at least in my IE6.
Same phenomenon can be seen when you write text instead of placing an image, and there the extra space suits, but my goal is to place the image at the bottom of the table. Thanks for help


text:
Definition from Wiktionary, the free dictionary
- Rhymes: -eɪʃən
indentation (plural indentations)
- The act of indenting or state of being indented.
- A notch or recess, in the margin or border of anything; as, the indentations of a leaf, of the coast, etc.
- A recess or sharp depression in any surface.
- The act of beginning a line or series of lines at a little distance within the flush line of the column or page, as in the common way of beginning the first line of a paragraph.
- A measure of the distance from the flush line; as, an indentation of one em, or of two ems.
notch or recess in a margin or border
recess or sharp depression in a surface
act of beginning a line at a distance from the flush line


Take the 2-minute tour ×
now() gives me
datetime.datetime(2010, 7, 6, 5, 27, 23, 662390)
How do I get just datetime.datetime(2010, 7, 6, 5, 27, 0, 0) (the datetime object) where everything after minutes is zero?
share|improve this question
add comment
3 Answers
up vote 21 down vote accepted
dt.replace( second=0, microsecond=0)
share|improve this answer
Note that this is just a value and does not alter dt - if that's what you want then also assign it back to dt. – John Mee Jun 30 '11 at 4:00
add comment
You can use datetime.replace to obtain a new datetime object without the seconds and microseconds:
the_time = datetime.now()
the_time = the_time.replace(second=0, microsecond=0)
share|improve this answer
or the_time= datetime.now().replace(second=0, microsecond=0) – tzot Aug 4 '10 at 11:05
add comment
I know it's quite old question, but I haven't found around any really complete answer so far.
There's no need to create a datetime object first and subsequently manipulate it.
dt = datetime.now().replace(second=0, microsecond=0)
will return the desired object
share|improve this answer
add comment
Your Answer


text:
Giudizio Mediazione Conversione. Francesco Gentile e la filosofia della controversia
Abstract: Judgment Mediation Conversion. Francesco Gentile and the Philosophy of Litigation
The essay focuses on Francesco Gentile's philosophy of litigation, starting from Capograssi's and Opocher's legacy. The possibility of ascertain the truth in legal adjudication has been questioned following the fall of the legicentric paradigm, and the consequent rise of ADR: these major events challenged the current assumptions in the theory of litigation, but Francesco Gentile's idea of truth as "conversion" might still play a prominent role in understanding the inter-subjective meaning of truth in dispute-setting.


text:
The next time you're about to order some calorie-bomb at a restaurant, pay attention to how loud the music is. Because the two things might be linked...
A new study in Sweden found loud music in restaurants makes us more likely to choose unhealthy menu options. And we're more likely to go with something healthy like a salad when the music ISN'T so loud.
Researchers went to a café and played music at different decibel levels to see how it affected what people ordered. Either 55 decibels, which is like background chatter or the hum from a refrigerator... or 70 decibels, which is closer to a vacuum cleaner.
And when they cranked it to up 70, people were 20% more likely to order something unhealthy, like a burger and fries.
They did it over the course of several days and kept getting the same results. So the study seems pretty legit.
The explanation is pretty simple. Basically, soft music is calming, and louder music gets us amped up. It even increases our heart rate. And that can impact our decision-making.


Help us get to over 4,000 biographies in 2018.
Henry Barton Turner
From Magicpedia, the free online encyclopedia for magicians by magicians.
Jump to: navigation, search
Henry Barton Turner
BornDecember 2, 1885
Brierley Hill, Birmingham, England
DiedDecember 6, 1970 (age 85)
Henry Barton Turner (_PHONE_) was a magician, specializing in escapes, that performed as Houdeen, Henri Deville, the Wizard of the Army, The Great Deville.
Turner became a music hall performer as The Great Deville, the Wizard of the Army, in the 1920s and this career continued until the early 1930s.
The act incorporated Houdini-style escapes and earlier in his career, during the first decade of the twentieth century when Houdini and his brother Hardeen were topping bills Europe, Turner briefly adopted the name of Houdeen.
"The Wizard of the Army" title used by Deville was a foil to Val Walker, "The Wizard of the Navy", who was also featuring unusual escapes in the early 1920s.
Illusions were also featured by Deville in some of his performances including "Dividing a Lady in Two, the 20th Century Unsolved Problem and Super Miracle", a version of Selbit's "Sawing a woman in half".
By 1936, he started a business selling illusions, manuscripts and books. Some of his manuscripts offered were of Hindu Fakir's Feats, 25 Long Lessons in Hypnotism, and Ventriloquism for Amateurs with 9 Dialogues.
During World War II, Deville worked for the Fairey Aviation Company building aircraft but also managed to continue his magic business[1]
See also: Mr Eugene Deville "Dr Henri Deville" of Manchester, who was elected to membership of The Magic Circle on 4th June 1929.
 1. No. 134. THE GREAT DEVILLE, WIZARD OF THE ARMY, Complete Rich Cabinet of Magical Curiosities by Edwin A. Dawes (2005)


text:
Why you need a publish path for SEO
Publish path makes your URL more SEO-friendly. If your page title is Charlottetown Summer Events and Attractions, you can choose to create a publish path /charlottetown-events
URL length is an important search engine optimization (SEO) factor. There is a strong connection between a shorter URL length and higher SEO rankings. Google has been making efforts to shorten or even hide the display of URLs in the browser. A very long URL can look suspicious and discourage people from clicking it.
Publish paths can also be used to label pages in multiple languages.
Entering your publish path
To enter the published path, follow these steps:
- Go to the Pages menu in the top-left corner of the Sitebuilder.
- Click on the cog Settings icon to enter the Page settings area:
- Scroll down to the SEO Settings area and locate the Publish path field.
- Enter the publish path for the page as you want it to appear in the URL.
- Click Submit.
- To make your changes live, click the Publish button.
Customizing the publish path
When you first enter the publish path, it's created as /publish---path (example) by default. You may want to change this. Simply enter the new publish path text in the field, removing extra dashes, and click Submit, then Publish.
Language-specific public paths
When creating a multi-language website, you may wish to customize your publish paths so that they reflect your website structure. For example, to group all French-language pages, you can enter public paths as follows:
To learn more about creating multi-language navigation, visit this tutorial.


Start a new topic
I then exported the gerbers using units "Inch", and the "Decimal Digits" of "1". Now when I reload the gerbers they look wrong. What happened?
If you selected to export the Gerbers with a "Decimal Digit" of "1". This means that the accuracy of your gerber files is only to 1 decimal place (i.e 1/10th inch), and your gerber files coordinates will be rounded down.
For example, if a coordinate in your gerber file was meant to be 2.24 inches, it would be rounded to 1 decimal place of accuracy, resulting in 2.2 inch.
Note: This is typically the case when you view your resulting gerbers in a "gerber viewer" and see many weird geometries.
Solution: Simply export your gerbers with at least 4 "decimal digits" and you should be fine.
Login or Signup to post a comment


Motivation for J1939
SAE J1939 Protocol
The SAE (Society of Automotive Engineers) J1939 protocol is a higher-layer protocol based on CAN (Controller Area Network). It is used in commercial vehicles and construction machinery for communication of electronic control units. The protocol was developed in the mid-1980s to ensure standardized communication between electronic control units of different manufacturers. It focuses on the diesel engine and its communication with, for example, the gearbox, brake, or retarder (engine brake).
SAE J1939 und CAN (Controller Area Network)
The SAE J1939 protocol uses CAN (Controller Area Network, ISO 11998-1 and ISO 11998-2) as the physical layer. The CAN protocol plays a major role in motor vehicle networking and represents a commonly used method for bit serial communication between electronic control units (ECUs). Typical ECUs include: Engine, transmission, and brake ECUs as well as the instrument panel and door ECUs.
Last modified: Thursday, 12 April 2018, 8:59 AM


text:
I attended an engagement party where the couple was toasted, but I don't drink alcohol, so used my water glass with which to toast. My husband thinks that for the toast, I should have had a glass of champagne in hand, and just pretend to drink. What is the protocol for toasting, any other tips?
Dear Faux Pas,
You were fine with toasting with the water glass. When a toast is given, everyone, except the one being toasted, should take part with any glass handy, even an empty one is better than not toasting at all.
Basic tips for toasting are:
1. If you are the guest of honor being toasted, while the toast is being made, do not stand and do not drink to the toast.
2. If you are the guest of honor being toasted, after the toast is made, then you can stand and say thank you to the one who gave you the toast.
3. The first toast should be made by the host.
4. The one offering the toast should stand.
5. The one offering the toast should keep the speech simple and brief, and indicate the end of the toast by raising the glass and saying something such as "Cheers!"
6. Other guests should always take part in a toast using whatever glass is handy.


[FFmpeg-devel] Definition of audio and video frames according to av_read_frame()
Unga unga888 at yahoo.com
Sun Aug 26 08:52:22 CEST 2012
Dear all
FFmpeg documentation says "For video, the packet contains exactly one frame. For audio, it contains an integer number of frames if each frame has a known fixed size (e.g. PCM or ADPCM data). If the audio frames have a variable size (e.g. MPEG audio), then it contains one frame."
1. Regarding video, does av_read_frame() return anything other than I-frame,
P-frame or B-frame?
2. Regarding audio, what is the definition of audio frame? If I say, an audio frame contain one audio sample, is it correct?
Many thanks in advance.
Best regards
More information about the ffmpeg-devel mailing list


Before creating a communication plan, we often recommend that schools and districts conduct a communication audit. In many ways, an audit sets the stage for more meaningful communication planning.
Through a communication audit, you can gain a better understanding of stakeholders' perceptions of your school or district, get a sense of what stakeholders think about your current communication efforts and determine which types of information are of particular interest to your stakeholders. It also allows you to find out how your stakeholders prefer to be informed.
While school district communication audits can take many forms, there are a couple key components common to most of them:
1) Inventory of current practices
As an initial step, an audit features a review of all of a school district's current communication practices, including the methods used to reach stakeholders. For example, does the district currently use social media, direct mail or e-newsletters?
Through this process, you can determine, in broad strokes, what is working well and any potential areas of improvement.
2) Community and staff surveys
A great method of gathering valuable feedback from stakeholders is to conduct a survey focused on the district's current communication efforts. This typically centers on a survey of community members and staff. A survey allows you to capture baseline data related to how people come to think about the district, where they get their information and the challenges they experience in obtaining news and information about the district.
In general, it is best practice to leave surveys open for 20-30 days. Specific efforts should be taken during this time to ensure a solid response rate. This may include sending a postcard to all residential addresses in the district, emailing parents and staff, posting the survey to social media and distributing a news release.
In addition to a communication inventory and survey, communication audits may include focus groups. This is often a good option if there are issues or data points uncovered in the survey that need to be more closely examined.
Once you have completed a communication audit, you will have the data and information you need to engage in comprehensive communication planning. It marks the first step in your efforts to better communicate and engage with your stakeholders, which over time leads to greater overall trust between a district and its community.


Children urged to make waves
GET off the Xbox and get into the ocean this summer, with the North-West Vegemite SurfGroms children's program.
The robust, cutting-edge junior surf development program teaches kids all about surf conditions, surf survival, beach etiquette, basic first aid and ocean rescue skills - as well as how to surf a gnarly wave.
"We guarantee that you'll be standing up before you complete the course," SurfGroms instructor Joey Cotton said.
The Vegemite SurfGroms program is a national initiative available to anyone aged between five and 12, regardless of experience or ability.
This summer it will be offered in Devonport, Ulverstone and Hawley Beach.
"It's all about introducing kids to a healthy lifestyle that is inherently Australian. Too many kids aren't getting out enough and are opting for the Xbox instead. Summer's approaching, the water is getting warmer - why not make the most of the beach?" Mr Cotton said.
"There aren't too many patrolled beaches on the NorthWest Coast also, making it extra important for kids to be aware of the dangers out there.
"That's where we come in."
SurfGroms is the only surf school operating directly out of the North-West, the next-closest being Scamander on the East Coast.
"Tassie's pretty good in terms of beach fatalities - let's keep it that way," Mr Cotton said.
Tablet - Narrow
Tablet - Wide


Take the 2-minute tour ×
I am getting this error when I GetById() on an entity and then set the collection of child entities to my new list which comes from the MVC view.
I don't quite understand this line:
Why would I change the relationship between 2 entities? It should remain the same throughout the lifetime of the whole application.
The code the exception occurs on is simple assigning modified child classes in a collection to the existing parent class. This would hopefully cater for removal of child classes, addition of new ones and modifications. I would have thought Entity Framework handles this.
The lines of code can be distilled to:
var thisParent = _repo.GetById(1);
thisParent.ChildItems = modifiedParent.ChildItems();
share|improve this question
6 Answers 6
up vote 59 down vote accepted
You should delete old child items thisParent.ChildItems one by one manually. Entity Framework doesn't do that for you. It finally cannot decide what you want to do with the old child items - if you want to throw them away or if you want to keep and assign them to other parent entities. You must tell Entity Framework your decision. But one of these two decisions you HAVE to make since the child entities cannot live alone without a reference to any parent in the database (due to the foreign key constraint). That's basically what the exception says.
What I would do if child items could be added, updated and deleted:
public void UpdateEntity(ParentItem parent)
 // Load original parent including the child item collection
 var originalParent = _dbContext.ParentItems
 .Where(p => p.ID == parent.ID)
 .Include(p => p.ChildItems)
 // We assume that the parent is still in the DB and don't check for null
 // Update scalar properties of parent,
 // can be omitted if we don't expect changes of the scalar properties
 var parentEntry = _dbContext.Entry(originalParent);
 foreach (var childItem in parent.ChildItems)
 var originalChildItem = originalParent.ChildItems
 .Where(c => c.ID == childItem.ID && c.ID!= 0)
 // Is original child item with same ID in DB?
 if (originalChildItem!= null)
 // Yes -> Update scalar properties of child item
 var childEntry = _dbContext.Entry(originalChildItem);
 // No -> It's a new child item -> Insert
 childItem.ID = 0;
 // Don't consider the child items we have just added above.
 // (We need to make a copy of the list by using.ToList() because
 // _dbContext.ChildItems.Remove in this loop does not only delete
 // from the context but also from the child collection. Without making
 // the copy we would modify the collection we are just interating
 // through - which is forbidden and would lead to an exception.)
 foreach (var originalChildItem in
 originalParent.ChildItems.Where(c => c.ID!= 0).ToList())
 // Are there child items in the DB which are NOT in the
 // new child item collection anymore?
 if (!parent.ChildItems.Any(c => c.ID == originalChildItem.ID))
 // Yes -> It's a deleted child item -> Delete
Note: This is not tested. It's assuming that the child item collection is of type ICollection. (I usually have IList and then the code looks a bit other.) I've also stripped away all repository abstractions to keep it simple.
I don't know if that is a good solution but I believe that some kind of hard work along these lines must be done to take care of all kinds of changes in the navigation collection. I would be happy as well to see an easier way.
share|improve this answer
So what if some are only changed? Does that mean I still have to remove them and add them again? – jaffa Apr 4 '11 at 17:10
_USER_: No, you can also update existing items of course. I've added an example how I would probably update the child collection, see Edit section above. – Slauma Apr 4 '11 at 18:33
_USER_: Lol, if I knew that you are going to modify your answer I would not write my answer... – Ladislav Mrnka Apr 4 '11 at 19:53
_USER_: No, no, I am glad that you wrote your own answer. Now at least I know that it's not complete nonsense and much too complicated what I did above. – Slauma Apr 4 '11 at 20:27
I would add a condition when retrieving the originalChildItem in the foreach:...Where(c => c.ID == childItem.ID && c.ID!= 0) otherwise it will return the newly added children if the childItem.ID == 0. – perfect_element Mar 1 at 17:02
This is a very big problem. What actually happens in your code is this:
 - You load Parent from the database and get an attached entity
 - You replace its child collection with new collection of detached children
 - You save changes but during this operation all children are considered as added becasue EF didn't now about them till this time. So EF tries to set null to foreign key of old children and insert all new children => duplicate rows.
Now the solution really depends on what you want to do and how would you like to do it?
If you are using ASP.NET MVC you can try to use UpdateModel or TryUpdateModel.
If you want just update existing children manually, you can simply do something like:
foreach (var child in modifiedParent.ChildItems)
 context.Entry(child).State = EntityState.Modified;
Attaching is actually not needed (setting the state to Modified will also attach the entity) but I like it because it makes the process more obvious.
If you want to modify existing, delete existing and insert new childs you must do something like:
var parent = context.Parents.GetById(1); // Make sure that childs are loaded as well
foreach(var child in modifiedParent.ChildItems)
 var attachedChild = FindChild(parent, child.Id);
 if (attachedChild!= null)
 // Existing child - apply new values
 // New child
 // Don't insert original object. It will attach whole detached graph
// Now you must delete all entities present in parent.ChildItems but missing
// in modifiedParent.ChildItems
// ToList should make copy of the collection because we can't modify collection
// iterated by foreach
foreach(var child in parent.ChildItems.ToList())
 var detachedChild = FindChild(modifiedParent, child.Id);
 if (detachedChild == null)
share|improve this answer
But there is your interesting remark about using.Clone(). Do you have the case in mind that a ChildItem has other sub-child navigation properties? But in that case, wouldn't we want that the whole sub-graph is attached to the context since we would expect that all the sub-childs are new objects if the child itself is new? (Well, might be different from model to model, but let's assume the case that the sub-childs are "dependent" from the child like the childs are dependent from the parent.) – Slauma Apr 4 '11 at 20:35
It would probably require "smart" clone. – Ladislav Mrnka Apr 4 '11 at 20:39
What if you don't want to have a Child's collection in your context? _URL_ – kirsten g Nov 27 '13 at 4:55
I've no idea why the other two answers are so popular!
I believe you were right in assuming the ORM framework should handle it - after all, that is what it promises to deliver. Otherwise your domain model gets corrupted by persistence concerns. NHibernate manages this happily if you setup the cascade settings correctly. In Entity Framework it is also possible, they just expect you to follow better standards when setting up your database model, especially when they have to infer what cascading should be done:
You have to define the parent - child relationship correctly by using an "identifying relationship".
If you do this, Entity Framework knows the child object is identified by the parent, and therefore it must be a "cascade-delete-orphans" situation.
Other than the above, you might need to (from NHibernate experience)
instead of replacing the list entirely.
_USER_'s comment reminded me that detached entities are another part of the overall problem. To solve that, you can take the approach of using a custom model binder that constructs your models by attempting to load it from the context. This blog post shows an example of what I mean.
share|improve this answer
Setup as identifying relationship won't help here because the scenario in the question has to deal with detached entities ("my new list which comes from the MVC view"). You still have to load the original children from the DB, find the removed items in that collection based on the detached collection and then remove from the DB. The only difference is that with an identifying relationship you can call parent.ChildItems.Remove instead of _dbContext.ChildItems.Remove. There is still (EF <= 6) no built-in support from EF to avoid lengthy code like the one in the other answers. – Slauma May 7 '13 at 21:39
I understand your point. However, I believe with a custom model binder that loads the entity


text: We analyze the mechanism of condensation of orientational moduli [as introduced in Phys. Rev. D 87, 025025 (2013)] on multi-Skyrmionic configurations of the four-dimensional Skyrme model. The present analysis reveals interesting novel features. First of all, the orientational moduli tend to decrease the repulsive interactions between Skyrmions, the effect decreasing with the increase of the baryon number. Moreover, in the case of a single Skyrmion, the appearance of moduli is energetically favorable if finite-volume effects are present. Otherwise, in the usual flat topologically trivial case, it is not. In the low-energy theory these solutions can be interpreted as Skyrmions with additional isospin degrees of freedom.


text:
You can create a new user mailbox from scratch in Microsoft Exchange Server 2016 or you can create a user mailbox from existing user account in an active directory domain. When you create a mailbox from an existing account, their information is pulled from active directory domain. When you create a new user in Exchange Server 2016 and provide complete detail, it's user account is already created in active directory domain.
In this article, we will look into the method of creating a new user mailbox in Exchange Server 2016 by providing details.
Create a New User Mailbox in Microsoft Exchange Server
1. Log in to Exchange Admin Center (EAC) with administrator account on following URL,
https:///ecp
2. In mailboxes tab, click plus sign -> User mailbox
3. Choose new user, type first name, last name, type the user's alias in user logon name, type password and confirm password, and click Save. The newly created user will be added in Users container in active directory.


Memory Alpha
Kang's Summit
38,872pages on
this wiki
Kang's Summit was an area on Qo'noS that was known for its population of saber bear.
In 2371, while hunting saber bear on the Summit, Martok was captured by the Dominion. (DS9: "In Purgatory's Shadow")
It is likely that this location was named for Kang, one of the Klingon Empire's greatest warriors. Alternately, it could be named for legendary title character from the epic poem The Fall of Kang.
External linkEdit
Around Wikia's network
Random Wiki


Palo Alto URL Filtering Order
What happens when a URL matches multiple patterns (multiple custom URL filtering categories and allow/block-list) within a URL filtering profile?
When that happens, the category chosen is the one that has the most severe action defined below (block being most severe and allow least severe).
1. block
2. override
3. continue
4. alert
5. allow
For example, if * exists in MyAlertList and MyBlockList simultaneously) within the same URL filtering profile the URL, the action will be "block" and the category name will be "MyBlockList". This is similar to the original behavior between "allow-list" and "block-list" in that the block-list will be checked BEFORE the allow-list if a URL matches both "allow-list" and "block-list".
The priority for URL filtering is:
1. block list
2. allow list
3. custom categories
4. cached
5. pre-defined categories
Above I'm pointing out in bold red that "custom categories" have a higher priority than the "pre-defined categories". This is important to know when building out your URL Filtering profiles.
More Stories
Purchasing Hardware Software


How to Sign In as the User
1. Go to the
2. Navigate to the Users tab and search for the user you wish to log in as.
3. Once the user is selected click on "Sign in as User".
4. Choose a login method of either "Use Fingerprint" (fingerprint is provided by your developer and is the preferred method) or by sending a code to the end user's 2FA device (which will trigger a text message to the user's device). Once either of these methods is completed you will be signed in as the user.
Have more questions? Submit a request


1 year ago
Solution To End Lynchings? Only Produce Female Calves Through Artificial Insemination, Says BJP Minister Giriraj Singh
Bobins Abraham
Bobins AbrahamUpdated on Sep 05, 2019, 16:23 IST
Union Minister for Animal Husbandry, Dairying and Fisheries Minister Giriraj Singh seems to have found a solution for the lynching menace in the country in the name of cattle protection.
According to Singh, through artificial insemination, if we ensure that only female calves are born, incidents of lynchings will also end.
"In the near future, only female calves will be born through sex-sorted semen. Now, the cases of mob lynchings in the name of stray cattle won't be reported," Singh said.
Mob Lynching
Explaining the logic behind his suggestion Singh stated that people tend to abandon bull calves as they are a financial burden for the farmers and they later become stray cattle.
Earlier such animals used to be sold to slaughterhouses, but since most of the states banned cattle slaughter, the farmers end up dumping them on the streets.
Singh also suggested that female calves born using semen from genetically superior bulls will also improve fertility and increase milk production which will ensure that the farmers keep them longer and not abandon them when they become less productive.
Mob Lynching
Last week Singh had said that "with help of the in-vitro fertilization (IVF) and Embryo Transplant, the unproductive livestock in the country will be utilized as surrogate mothers. The word 'factory' was used to explain these techniques to friends who pet cows and not to open political factories for people."
"We will use IVF technology from cows giving 20 litres milk, on cows which stop giving milk. We will bring a revolution," he had said.
Lynchings in the name of cow protection have been for long an issue in the country. Many, especially those from the Muslim community were trashed and even killed by the so-called cow vigilantes merely on the suspicion of cattle smuggling.
Mob Lynching
Another major problem states that have banned cattle slaughter are facing is the increasing number of stray cows. After most of the slaughterhouses were shut down due to the ban, farmers in states like UP began abandoning their unproductive cows on the streets. Fed up with the alarming number of stray cows attacking their crops, farmers in UP had resorted to locking cow in their hundreds inside government buildings like schools and hospitals, demanding that the government should take them away.
The Conversation (0)
Start a conversation, not a fire. Post with kindness.


Starting up SACHIP v.0.21 NAME sachip v.0.21 -- a script to allow the user to create filtered spectra and light curves from XTE/SA data with either a single command-line entry, or a simplified Q/A session. USAGE sachip -[bcdghilmopt] DESCRIPTION SACHIP is a Perl script which allows the user to create and plot spectra and light curves for a given list of XTE Science Array files, taking into account (optional) time and energy filter information. All necessary information can be supplied by the user as switches on the command line, and the script can/will take sensible defaults in the absence of overriding user input. Alternatively, the script can be run interactively, in which case the user will be prompted for important parameters not supplied as switches. PARAMETERS (actually SWITCHES/FLAGS) (grouped by function): -i {file} - provide name of ASCII file containing list of XTE/SA files (assumed default: 'fits_files.txt'). -p {file} - provide root filename for product files - i.e.,'sachip -p paris' will create files, paris.pha. (assumed default:'sachip_out'). -b {number} - provide requested binning for light curve file - i.e.'sachip -b 1.0' will create 1-second bins. (assumed default: 32 seconds). -c "{channels}" - provide range of ORIGINAL (not binned) channel filters to be used in the accumulation, e.g. "10-20,40-100". -t "{times}" - provide range of times to be used to filter the data (additional to those already present in the GTI extension) when accumulating, e.g. "48798400.0-48798900.0". -m - Resultant spectra/curves will contain separate columns for each of the good data columns in the input files. -o - Resultant spectra/curves will contain the sum of all the good data columns (the default). -d - Take default values for all parameters not set on the command line. -g - Take all GOOD columns (this is not only the current default, but your only option at the moment). -s - Device to plot on (assumed default: '/xterm'). -l - Logfile switch. Currently, logging is the default (in a file sachip.log), and -l will disable this logging. -h - Print this help information. EXAMPLES sachip -b 8.0 -m -p torres -d will create and plot one spectra and one light curve file, The output files will be called and torres.pha, and will contain one column per input good data column. The light curve will have 8-sec binning. Sensible defaults taken for all other values. sachip -i kim.txt -t "{times}" -c "{channels}" -b 1000.0 -og will look in file 'kim.txt' for the list of input files, apply time and channel filter ranges as applied, and create and plot a 1000-sec binned light curve and a single spectrum, to be found in and sachip_out.pha. Values not provided will be prompted for (in this case, the root for the product file). sachip -d will take fits_files.txt and plot a spectrum and light curve for all the data with 32-sec resolution and put the data in and sachip_out.pha. sachip will prompt the user for each parameter. NOTES SACHIP is intended as a 'fast' tool to minimize the amount of FTOOLing around for the user with straightforward data analysis requirements. It is not intended to replace or reproduce the full functionality available from the individual FTOOLS. However, I'm open to suggestions about how to improve the script to meet commonly-occuring data analysis needs. Future versions will include calls to XTEFILT and MKTIME to apply simple data cleaning. BUGS Please report problems to SEE ALSO SAEXTRCT and FPLOT for more information.


text:
Wood is an excellent material for container gardens because it lets the plant roots breathe and it is relatively light weight. You can also make your own containers to whatever size you like. The wood will deteriorate after several years, however, so wooden planters are best used for shorter lived plants rather than trees or shrubs which you will keep planted for many years. Making your planter from redwood or cedar will make it longer lived, as these woods resist insects and wood rot.
Here are instructions for making a 12 x 12 x 12 inch planter. It can be easily modified to make whatever size planter you like: some suggestions for making larger or smaller planters are included at the end of this article.
Wood saw (hand or power)
note some hardware/lumber stores will cut wood for you for a small fee
Drill and 1/2 to 3/4 drill bit
T or L square (for making sure your corners are square and sides straight)
Miter box (for making straight cuts)
Workbench with vise or clamp (to hold wood as you cut or join together)
20 or more nails, 2 to 2 1/2" long (6d to 8d size)
8 or more nails, 1 1/2" long (4d size)
50 or more finishing nails
4 feet of redwood or cedar 2x2 board, cut to about 10.5 long (see Making the Base, below)
(note, these 2x2 will actually be about 1.5 x 1.5, as the wood is cut to 2x2 and then finished so that it is smooth)
8 1/2 feet of redwood or cedar 1x2 board (actually about 1/2 x 1 1/2), four cut into 12 long sections, four cut 13 long
4 feet of redwood or cedar 1x1" board (about 1/2 x 1/2") cut to 12" lengths
10 feet of redwood or cedar fence board, 6 wide, cut into ten 12 long sections
Making the Base
Measure the width of your 2x2 board. Cut four lengths, each 12 minus the width. For example, if your board is 1 1/2 wide, cut four lengths 10 1/2 long.
Lay out your four pieces so they form a 12 square, with one end of each length overlapping the next going around the square.
Nail the square together, using one 2 or 2 1/2" nail at each corner, going through the overlapping section into the board next to it.
Making the Bottom
Cut two 12 long sections of the fence board for the bottom of the planter. If the fence boards have the corners cut off the tops, you can use these pieces for the bottom since they won't show and they'll be supported by the base.
Lay these fence board sections over the base, matching up edges and corners. Use 8 of the 1 ½ inch nails to attach to the base, four for each board (two along the edge and one at each end). Note: you can use more nails if you like for a more secure fit.
Drill five 1/2 to 3/4 holes for drainage, one in the center and one near each corner.
Making the Sides
Place a 12 fence board section on one edge of the base, even with the bottom and corner, to form the start of one of the four sides of your planter. Place one of the 12 1x2 sections on top of it at the base, and nail through both boards to the base board using a 2 nail about 1 from the corner. Now hammer a second 2" nail through both boards to the base about 1 from the other edge of the fence board. Place a second fence board next to the first (and between the base and the 1x2) and hammer through both boards to the base in two places 1 from either edge, just like the first.
Turn over, and on the opposite side nail in two more fence boards to the base with a 12 1x2 section on top, using the 2" nails.
For the remaining two sides in between, hammer together as the first two but using the 13 long 1x2 sections, overlapping with the first two at the corners. Use finishing nails at the corners to secure the 1x2 to each other for a tight fit.
Finishing the Top
Using two of the 12 long 1x2 boards, nail them along the top outside edge of the fence boards using the finishing nails, above where you used the 12 long boards along the base. Nail the remaining 13 long 1x2 boards on the opposite outside edges, overlapping the corners. Use finishing nails at the corners to nail the 1x2 to each other, making a strong corner and a more finished look.
Note: placing a 2x4 or 4x4, a tool box, or something else substantial against the edge inside the container will make hammering the top and corners much easier.
Place one 1x1 section inside each corner for additional strength. Hammer at least two finishing nails per each side of the corners through from the outside into the 1x1, about 3" from the top and bottom.
You can paint or oil your planter box on the outside for a more finished look. Decorate it with rope or macramι cord tied around it, or add wooden cut-outs or flower decals available from craft stores. Experiment and make the container uniquely yours.
To Make a Different Size Planter Box
The same basic design can be used for smaller or larger planters.
For a small planter you can use 1x1 boards for the base and ½ x 1 for the edge boards, using smaller and shorter nails.
For a really large planter use 2x4 or 4x4 for your base boards and 2x4 for your edge boards, with 2x2 reinforcing the inside of your corners. You may want to use boards thicker than fence boards for your sides, or reinforce the sides with additional 2x4 in the middle and at the corners.


In places like Nova Scotia's fishing communities, a forerunner was historically considered an omen for the future. In this collection, I consider how a forerunner also refers to the people or things that came before: my family's history in Maritime culture and tradition. Throughout my career I have sought to express my identity as a Maritime artist through bringing my sense of 'home' into my work, showing unexpected beauty in the reinterpretation of forms found in my surroundings.
The pieces in Forerunner turn this gaze back on my family's place in this landscape, and our connections to fishing, farming, logging and hunting. It is a collection where these divergent themes emerge in pieces that feature ordinary applied materials and atypical colour, juxtaposed with rich textures and shapes. Rugged, with an understated beauty, each composition has a distinct and playful narrative that speaks to the gift and bounty of the land and sea.
This gallery is a highlights a selection of the series created between 2015-2016 Available at LA PAI Gallery
(Click Image for Availability)


College Vs. Pros: Should Athletes Leave School Early?
Use your ← → (arrow) keys to browse more stories
College Vs. Pros: Should Athletes Leave School Early?
Jeff Zelevansky/Getty Images
We see it every year. Athletes that are still in college must choose between the risk of going professional in their sport, or risking injury for another year of ball.
Athletes like O.J. Mayo and Michael Crabtree have been a few of the players that have put their education on hold to test their values in their respective sports. Other athletes like Troy Smith and A.Q. Shipley have put education first, while still reaching the professional level in their sports.
Athletes have been successful through both of these decisions; however, some athletes have been left behind that chose the wrong path to professionalism. You can take professionalism any way you want it, but in this case I refer to professionalism as the act of making a living in any field, whether that means being an athlete or working in a cubicle in your metropolitan broker's office.
There are many points to both sides of the arguments and each has levied beneficial stories and opinions. Ultimately the decision is yours to what you think in this situation, but I can promise you that what you get from these next statements could persuade you to either side.
Leaving School for a Professional sport
1) Allows great athletes to earn a living faster and provide for their families
Like it or not, the money that athletes get goes a long way towards the development of their families and themselves.
Good people find ways to do good things for society. These players could put the money back into their communities and give youths in their hometown the ability to play sports when it could have been previously impossible.
Giving money to people isn't always a bad thing.
2) Prevents the risk of injury in college
One of the main factors in college athletes choosing to leave early is the risk of injury. Many athletes feel that if they stay in college they could get injured and put their professional career at risk.
If these athletes choose to leave early, they will get paid great money and there are benefits for players who get injured. Although these benefits might not be as bountiful as a healthy athlete's contract, it is a great way for a player to receive closure if anything were to happen that could question their future in the sport.
3) Allows for studies after their career
Many of you can remember the expenses of college. Athletes that do not get scholarships are put in a hole financially with loans gaining interest while they are trying to decide what to do with their lives.
Though many athletes do receive some amount of money from their college or university for sports, some do not receive this reward. Going professional would link the athlete to financial security and they could probably study just about anything they would want after their professional career.
Staying in College and receiving a Degree
1) Secures the future of the athlete
Not everyone becomes a professional athlete. There are many people that make an honest living every day in careers that do not involve playing a sport.
For those fortunate enough to be the elite in their sport, receiving a degree before going pro is a way to tie the loose ends to their future.
Risk to injury is high in professional sports and if an athlete's career would be in jeopardy, they would have something to fall back on. You can do many things in the work force with a college degree and this option is probably the safest decision to ensure a career in any field.
2) Teaches maturity
Apart from the outlandish amounts of money professional athletes receive; some of this money is given to athletes barely in their 20's. College kids are used to being broke. Its college. Everybody is broke.
Go from rags to riches too quickly and these athletes may not know what to do with their money. Before you know it they could own a ten bedroom house on Miami Beach with a BMW and Ferrari in the garage. You may say "what's the big deal?" but both you and I know this is not how money should be spent.
Suppose an athlete spends one year in college and goes to the NBA. All of those first year or two classes aren't completely useless. The athlete could take a financial accounting class in his second year that could teach him the proper way to invest his money.
Instead of that athlete spending half of his $3.5 million contract on a house and car they could invest away money to ensure a bright future for them and their family. At 19-or 20-years-old these athletes don't need millions of dollars and if they do get it they should at least know what to do with it.
3) Enhances knowledge
Most individuals go to college to gain the knowledge they need to make their way in the work force. This kind of knowledge will help anyone trying to find their calling in the work place.
Athletes have a gift physically and most have gifts intellectually as well. To make the most of their college experience would be to finish, graduate, and earn a degree.
Take Myron Rolle for example. Rolle was a gifted safety that played at Florida State from 2006 to 2009. Rolle postponed his entry in the NFL Draft in 2009 to study over-seas at Oxford after he received the Rhodes Scholarship (only awarded to 32 people every year).
How many players can you think would postpone their entry into the NFL Draft to go to Oxford to attend more school? Rolle is a prime example of a true student-athlete and other athletes should take this example as they try to decide whether to leave early or stay and finish their studies.
The Final Prognosis
The fact is this: these players are student-athletes. Student comes before athlete. These players go to college for an education, not a draft pick. Although some of these players do end up playing at the next level, the smartest decision they can make is to ensure their future by finishing school.
Load More Stories
Follow B/R on Facebook
Out of Bounds


text:
Making fake clouds for a party or holiday decoration can be done in just five simple steps. While clustering white balloons together as clouds is simple, it is not very realistic. By taking a little extra time, you can create unique, realistic clouds. This craft can be done by children, over the age of seven, with some adult supervision.
- Skill level:
- Moderately Easy
Other People Are Reading
Things you need
- White spray paint
- Cotton batting
- Spray adhesive
- Large paint brush or soft cloth
- Clear tape
- Fishing line
- Ornament hanger
Blow up 7 to 10 balloons and tie off the ends. Use twine to tie balloons into a cluster. The number of balloons you use will determine the size of your clouds.
Wet newspaper with water and paper mache around the outside of the balloon cluster. Mix one part flour and one part water in large bowl. Apply mixture to wet newspaper using a paint brush or soft cloth. Allow to dry thoroughly.
Spray paint the paper mached balloon cluster white. Add a second coat of paint if newsprint is still visable. Allow to dry.
Spray balloon cluster with spray adhesive. Apply cotton batting to the sprayed area. Once the adhesive is dry, pull small bits of cotton batting loose to form clouds.
Carefully insert an ornament hanger into the top of the cluster. Tie fishing line to the hanger and attach it to the ceiling with clear tape.
- 20 of the funniest online reviews ever
- 14 Biggest lies people tell in online dating sites
- Hilarious things Google thinks you're trying to search for


text:
The working and contractual conditions of FRA staff are based on the Staff Regulations (SR) and the Conditions of Employment of Other Servants of the European Communities (CEOS).
The Agency has no permanent officials, but is staffed mainly by Temporary Agents and Contract Agents recruited through open selection procedures.
FRA contracts for Temporary Agents have an indefinite duration, following a probationary period of nine months.
Temporary Agent posts are classified according to the nature and importance of the duties required in:
- Administrators' function group (AD): comprises twelve grades from AD 5 to AD 16 corresponding to technical, administrative, advisory, linguistic and scientific duties
- Assistants' function group (AST): comprises eleven grades from AST 1 to AST 11 corresponding to executive, technical and clerical duties
The duration of contracts for Contract Agents varies according to the needs of the Agency. At the FRA, most Contract Agents have a contract's duration of 2 years. The contract can be renewed for a second fixed-term period of 3 years, and upon its second renewal converted into a contract of indefinite duration.
Contract Agent posts are classified in four function groups corresponding to the duties and responsibilities involved:
- Function group IV: comprises six grades corresponding to administrative, advisory, linguistic and equivalent technical tasks
- Function group III: comprises five grades corresponding to executive tasks, drafting, accountancy and other equivalent technical tasks
- Function group II: comprises four grades corresponding to clerical and secretarial tasks, office management and other equivalent tasks
- Function group I: comprises three grades corresponding to manual and administrative support service tasks
Contract Agents whose contract is concluded for a duration of at least one year are required to serve the following probationary periods:
- 6 months if employed in function group I
- 9 months if employed in function group II-IV
If the duration of the contract is less than twelve months, Contract Agents may be exempted from the requirement to serve a probationary period.


What Is a Security Deposit?
Learn the basics of a security deposit, the purpose it serves before tenant moves in, and if there are any state laws regarding security deposits protecting landlords and tenants.
What is a security deposit?
A security deposit is a sum of money that landlords require tenants to pay before they move in; the purpose is to have a financial backup if a tenant fails to pay rent or damages the rental property. Most states set a dollar limit, such as one or two months' rent, on how much a landlord can collect as a deposit. States typically require landlords to return the deposit by a specified deadline after a tenant moves out, along with an itemization of deposit deductions for unpaid rent or the cost of repairing damages to the rental unit. A tenant may not use a security deposit as last month's rent, unless the landlord agrees or the lease or rental agreement states that the deposit may be used this way. Finally, a deposit is typically refundable; in fact, some states, such as California, specifically prohibit landlords from charging nonrefundable fees, while others, including Arizona, allow certain types of nonrefundable fees, such as for cleaning or pets.
Books, Forms & eGuides


text:
Light Reflective Value (LRV) measures the amount of visible and usable light that reflects from (or absorbs into) a painted surface. The scale is black/zero to white/100.
Red Green Blue
These Red, Green and Blue colour codes are used in digital representation of colour. These three sets of codes create wide representation of colours on the screen. Although it is critical to see the paint colour in person, the digital representation gives the idea when we research colours at home.
239, 221, 193
This color code is a hexadecimal way to represent RGB values, often used for building a website to represent colors digitally. It's a secondary color code that allows us to experience colors in digital format.


text:
During volcanic eruptions, empirical relationships are used to estimate mass eruption rate from plume height. Although simple, such relationships can be inaccurate and can underestimate rates in windy conditions. One-dimensional plume models can incorporate atmospheric conditions and give potentially more accurate estimates. Here I present a 1-D model for plumes in crosswind and simulate 25 historical eruptions where plume height Hobs was well observed and mass eruption rate Mobs could be calculated from mapped deposit mass and observed duration. The simulations considered wind, temperature, and phase changes of water. Atmospheric conditions were obtained from the National Center for Atmospheric Research Reanalysis 2.5° model. Simulations calculate the minimum, maximum, and average values (Mmin, Mmax, and Mavg) that fit the plume height. Eruption rates were also estimated from the empirical formula Mempir = 140Hobs4.14 (Mempir is in kilogram per second, Hobs is in kilometer). For these eruptions, the standard error of the residual in log space is about 0.53 for Mavg and 0.50 for Mempir. Thus, for this data set, the model is slightly less accurate at predicting Mobs than the empirical curve. The inability of this model to improve eruption rate estimates may lie in the limited accuracy of even well-observed plume heights, inaccurate model formulation, or the fact that most eruptions examined were not highly influenced by wind. For the low, wind-blown plume of 14–18 April 2010 at Eyjafjallajökull, where an accurate plume height time series is available, modeled rates do agree better with Mobs than Mempir.
Additional publication details
Testing the accuracy of a 1-D volcanic plume model in estimating mass eruption rate


text:
Vance Dickason Consulting, 333 S. State St., Ste. 152, Lake Oswego, OR 97035
Although successful CAE software that allows the accurate simulation and development of loudspeaker enclosures and crossover networks has been available for professional design work for several years, a number of loudspeaker industry practitioners still persist in using traditional methods of ''cut and try.'' This presentation outlines a computer-aided loudspeaker development case study of a commercial three-way loudspeaker using a vented enclosure and a crossover network that incorporated fourth-order acoustic slopes. Measurement of the resulting prototype showed close agreement, within 0.5--1 dB, with the computer simulation. Time required for the development of the fairly complex crossover network determined for this loudspeaker was less than 1.5 h, substantially less than what is generally expected of ''cut and try'' methods. Key to the resulting accuracy using this type of computer software is the correct portrayal of interdriver time delay and driver phase. Driver phase for this project was derived from the driver magnitude using a highly sophisticated phase calculation methodology, as opposed to being directly measured with a two-port analyzer. Other criteria responsible for the success of the loudspeaker modeling portrayed in this case study are the ability to predetermine the group delay performance of the enclosure design, and the ability to examine crossover network transfer function during the design process.


text:
How to measure your cat?
Each cat is unique in size, select the size with the closest measurements. To ensure accurate measurements, make sure that your cat is standing properly, not sitting or lying down. Use the size chart below as a guide. We recommend using a fabric measuring tape when determining your cat's measurements and allow some leeway to ensure a comfortable fit. If you do not have a fabric measuring tape, use a shoelace or any other string and measure it up against a ruler.
1. Chest: measure the widest part of the chest, which is usually 1-2 inches or 3-5 centimeters behind his/her front legs.
2. Length: measure along his/her backbone from the base of the neck to the base of his/her tail.
3. Weight: if you do not know the weight of your cat, weigh yourself holding and not holding your cat. Subtract the numbers, and now you have your cats weight.


Rice Water for Skin, Hair and Health
The craze of using rice water is catching up very fast. If you have not yet heard of it, rice water is highly beneficial for certain health issues and also in taking care of the skin and hair. Let us first see the health benefits:
 - instantly energizes the body due to the high concentration of carbohydrates
 - provides instant relief from diarrhea
 - has been used successfully to treat gastroenteritis
 - prevents cancer
 - controls high blood pressure
 - helps in preventing Alzheimer's disease
 - reduces the body temperature or internal heat of the body
 - prevents constipation
In short, I would say it provides all the health benefits that eating rice would provide. But, more than that, rice water has been used as a face wash and a hair wash.
 - Washing your face with rice water makes your skin very soft and it also helps in improving the complexion
 - Is a great substitute for toner and firms up your skin
 - Helps in reducing the size of the pores on your skin
 - Washing your hair with rice water brings shine in the hair and helps to keep it healthy. Follow up with cold water rinse.
 - Powdered rice grains are also used as body scrub and they make your skin extra soft
How to make rice water?
I have read at many places that the water used to wash rice prior to cooking is rice water. But, that is not the actual rice water. You may collect it but it will not give you the full benefits. Instead, you should boil the rice in more water than usual quantity you use so that the rice does not absorb all the water and strain the extra water. This water is the actual rice water which is full of nutritional benefits. You may drink it or let it cool to use as a face wash or a hair wash. You may even garnish it with various spices and herbs. Read this article for step by step instruction on how to cook rice water.
Watch the video to learn how you can use rice water in various ways. But, make sure you cook the rice water the proper way.
 1. says
 hi dear i have a question how often shd we use tis rice water and if we boil the rice it also contain salt as we add salt in the rice is it ok to use such water on yr skin
 - says
 oops!!! I didn't see about the salt part. yes, don't add salt as it dries out the skin if used on a daily basis. actually, we do boil rice without adding salt.
 - Anonymous says
 do not add salt while cooking the rice. You add it when u want salt later. One benefit u dont need loads of salt
 the curries and other side dishes will add the salt ok bye
 - says
 Well, the whole point of rice water is to place the RAW RICE into warm/hot water to leave behind all the healthy benefits. At that point, you'd drain the rice water off and THEN you start to add ingredients to your rice, that including the salt. You add anything to your rice while making your rice water.
 - Anonymous says
 Delicious Rice water Recipe:
 1 Cup rice
 1 Cinnamon stick
 1/2 Gallon of cold water
 put the rice and the cinnamon stick(cut in half)in a bowl with 3cups of water wait for about an hour and put in a blender use a strainer to pour the water in to your 1/2 gallon of cold water so the rice and cinnamon stay on the strainer and not on water,add Sugar to your rice water and enjoy :)
 - Shikha says
 If you add salt then may be fat increase so you can drink it like a normal water and use like a normal water on face and hair
 2. says
 Hey Fatima
 You can use the rice water any number of times you want. There is no limit. And, yes, there is no problem in drinking rice water with salt or using it on skin. But, make sure not to use it on hair because salt is not good for hair.
 3. says
 hi dear thnks for the reply i was wondering whether the starch water we get whn we cook the rice is it safe for the skin
 dear i have one more request can u also post something for a perfect make up as u knw its the season of marriages and we all go out so please can v have some articles on tat
 i actually want to knw how can u get a glow on the face like the shiny look katrina has i mean wht kind of a bronzer or wht is used to get tat affect thnks in advance
 4. Anonymous says
 Can you please tell me what rice protein does for your skin? I have seen this in facial products, but have been unable to find any info on it. Is it the same as what you are speaking of?
 Thank you for your time and have a wonderful day.
 5. says
 hey…rice protein makes skin soft, firmer and lightens the skin tone too…so using rice water helps in keeping skin soft….hope this answers your doubt…do get back if you have questions…would love to clarify them :)
 - says
 hey, yes, in the video, the rice is not boiled…I have provided the link for the instructions for boiled water…you can use the drained water too but I am not sure how much it really helps with keeping the skin face clear!!!
 6. shruthy says
 hye! diz s shruti..im 21 yrs old..n i have regular break outs.. so can yo help me out by giving some korean natural home remedies.. thanx in advance! :) :)
 7. says
 hey Shruti…I am sorry but I can really not help you with Korean remedies coz I am not Korean…but I have posted on acne skin care so you can go through them…hope this helps :)
 8. Anonymous says
 hi dere…Liked ur info…well just wanna know a homemade cleanser nnd one more thing for how many days we can store the boiled rice water..Esha..
 9. says
 hi Esha…I am sorry but I didn't get the point of homemade cleanser….boiled rice water should ideally be consumed on the same day I suppose..actually you can make it in adequate quantity and if any extra is left, just drink it…it is very nutritious and healthy for intake too :)
 10. says
 Hi Swati
 I was reading another article on rice water and it said tht the water left after washing the rice has to be used.And yur post says that the water left after cooking the rice has to be used. Please advise
 11. says
 Hi Ariya…welcome to my blog….I have mentioned this point in the post that many people advise that collecting that water is beneficial for skin but actually that water is more of dirty than full of benefits from rice..that's what I feel and I have drunk the rice water from boiling so I know its a bit different in texture than the water collected from washing rice…so my advise would be to get boiled rice water…hope this helps :)
 12. Anonymous says
 When you use rice-water you have to use the water left over from rinsing the rice. Because it is full of impurities, you should separately boil this water. I have found that if you refrigerate it the product lasts longer. Tip: try adding green tea while boiling and it becomes a great skin-care product ^__^
 13. says
 Love your blog :) found this just a few days before my marriage it was great but if I had known this before It would've been just great, my bad luck.. nevertheless…
 I found this tip very useful and forced it on my husband too.. He also liked it.. hehe :) I just wanted to know if we can preserve this water?? usually when I cook thr is a lot of rice water left out and i collect everything. Its not possible to use the whole thing. So I was just wondering if it can be refrigerated or preserved in some other way?
 14. says
 thanks a lot Madhuri and welcome to the blog…hope you will keep enjoying it :)
 yes, you can keep the water I guess…I am not very sure but I don't think it will get spoiled if refrigerated but not more than 3 days!!!
 15. Madhuri says
 Yes you are right.. I had kept it outside for several days and what I noticed was that the starchy texture is gone and it becomes just plain thin translucent kind of water.. So it becomes useless for what we actually want to achieve. So use it the same day or maximum the next day not more than that.
 16. Anonymous says
 hi… but does having the boiled rice water result in weight gain??
 please advice as i was told that if u consume it everyday it results in weight gain.
 thanks so much
 - says
 well…as far as my experience with the rice water, I didn't notice any weight gain and I had taken rice water for a long time!!! but, may be its possible because it has starch. But, if you take brown rice water, that will not cause any such effects. hope this helps :)
 17. Anonymous says
 hey loved your tip, just one doubt


text:
- Chemistry is one of those things that just cannot be planned for when casting a film.
- At present, if you draw a company pension you cannot go back to work for that company.
- The workload in Bradford is so great that it cannot take on any new clients at present.
Both the one-word form cannot and the two-word form can not are acceptable, but cannot is more common (in the Oxford English Corpus, three times as common). The two-word form is better only in a construction in which not is part of a set phrase, such as 'not only... but (also)': Paul can not only sing well, but he also paints brilliantly.
Definition of cannot in:
- The British & World English dictionary


text:
I have a project that requires more than 200 damage cases with some cases being coppies of the other one with one compartment les for example. Is there a way to duplicate existing cases or create them in txt or excell and import into Maxsurf to speed up the process?
Yes - there are definitely ways you can simplify this process and take some of the manual work out of it.
There are three main solutions that you could do here:
1) All of the tables in MAXSURF can be copied and pasted into Excel and back again. So one method would be to create your 200 damage cases
- Ctrl-A in the Damage Case window, if you select multiple columns you can add multiple cases at once
- You can copy the Damage Cases Table out to Excel. Shift-Ctrl-C will copy the table with headers.
- In Excel you can use formulas etc to manipulate and create all of your damage combinations
- Use Copy Paste to bring the table back into MAXSURF
2) Use the MAXSURF COM interface to talk directly between Excel VBA and MAXSURF. For a problem like this, I would use the Extents of damage capabilities and over create damage cases, then search and remove duplicates.
- Take a look at the Automation Samples in the install folder (C:\Program Files\Bentley\Offshore\MAXSURF CONNECT Edition V23\Automation Samples) and the Automation manual in Modeler (Help | MAXSURF Modeler Automation Help) to learn about using COM.
- If you have troubles getting started with COM, take a look at MAXSURF Automation COM Troubleshooting - MAXSURF | MOSES | SACS - Wiki - MAXSURF | MOSES | SACS - Bentley Communities
3) The Probabilistic Stability in MAXSURF Ultimate can automatically create all of the damage combinations you require. You will need to set up the regions on the vessel (zones, bulkheads and decks). Once you have the cases you want in the probabilistic damage, you can copy them across to Deterministic Cases using Cases | Copy Prob Dam Cases.My question back to you, is how do you intend to manage and present this many cases to Class? Do you have 200 damage cases x 10 intact cases? If you are dealing with 2000 cases, then you're going to have to be thoughtful about how you will manage the results that you generate.
Thank you. I think using Excel method we cannot copy the Extend of Damage assiged to each case. Correct?
There are 3 intact Load Cases. In total, including intermediate flooding, there will be about 340 damage cases. Still a lot!


Asked by: Sherly Xuereb
asked in category: General Last Updated: 15th March, 2020
How do you keep a glass kettle clean?
Fill the kettle 1/2 full using a solution of equal parts water and vinegar. Bring the solution to boil and allow the kettle to switch off. Unplug the kettle and allow the solution to sit in the kettle for at least half an hour. Pour out the vinegar solution and rinse the kettle again and again with clear water.
Click to see full answer.
In this regard, how do I clean my Ikich kettle?
[Warm Tips] To descale your kettle, simply fill it with some vinegar and water, boil it, and let it soak for 1 hours. Finally wipe away the scale with a cloth. Please feel free to contact us when you meet any questions or problems.
how often should you change your kettle? You can wash off the layer of minerals once a weak. Otherwise, you will have to change your kettle very quick. Still, if you live in a hard water area, you will be better off if you change your kettle after maximum two years of use.
how do I get rid of limescale in my kettle naturally?
Fill the kettle with a solution of equal parts water and vinegar, and let this soak for an hour. After that, boil the kettle, then turn it off and unplug it from the power. Let the water and vinegar mixture sit in the kettle for another 15-20 minutes, then throw it away and rinse the kettle thoroughly.
Is it safe to drink from a kettle with limescale?
Limescale comes from the high concentration of calcium found in the hard water we drink, so it will not cause you harm if you consume some from your kettle or coffee maker. However, there is no research which shows that drinking hard water increases your risk of developing kidney stones.
29 Related Question Answers Found
What happens if you accidentally drink limescale?
Does Coke get rid of limescale?
Is it OK to reboil water in a kettle?
How does coke remove limescale from kettle?
Is it safe to drink limescale?
How long do you let Coke sit in toilet?
How does baking soda remove limescale from kettle?
What can I use as a descaler?
How do you remove limescale from a kettle without vinegar?
How do you clean the inside of a tea kettle?
How do you clean a glass kettle with vinegar?
How do you clean a glass kettle with a lemon?
How do you remove thick limescale from a kettle?


HUNG KINGS' COMMEMORATION DAY - Back to The Roots of Our Cultural Values
On Saturday morning March 27, CIS students have visited the Hung Kings Temple at the History Ethnic and Cultural Park (district 9) with over 30 students and teachers from the Saturday Vietnamese Program onboard. Following the Hung Kings Temple, impressive performance, and others, students have been able to engage in a valuable learning experience. During the journey to the Hung Kings Temple, the students had the opportunity to participate in various activities and engage in a valuable learning experience.
Students were listening to a presentation at Hung King Temple
Here, they were able to expand their understanding of their origin as well as learn about the great contributions of the Hung Kings, accompanied by informative lectures. Also, there is an enormous artwork depicting the material and spiritual life of the residents in Van Lang's era, and 33 stones representing the 33 islands of the Truong Sa archipelago, which is a reminder of the awareness of the sea and island sovereignty.
Designing historical Hung Vuong period attire
Following the impressive performance, students soon got to shaping "bánh giày", which are round, white glutinous rice cakes, to recreate the traditional scene of hand pounding rice in the exploration of the 2875-258 BC Van Lang lifestyle
Students glutinous with rice and make bánh giày
Finish cooking of the Hung Vuong dynasty
The succeeding culture-themed games, including Cheraw dance and tug of war, kept spirits high until the end. By allowing students to interact with a part of Vietnam's history, these activities boosted their appreciation for Vietnamese tradition and culture, specifically during the Hung Vuong period.
Cheraw dance
"I can feel the value of Vietnamese history and our country's soul through each unique painting and ancient artifacts. That's what I want to learn and cultivate. I will bring my filial spirit to discover Vietnamese people's cultural values and beauty wherever I go to continue enriching my understanding. It is also luggage for me to bring in my future journey to a new horizon." (Minh Anh, Grade 11)
 At the end of the trip, students took a photo together
All journeys leave behind an unforgettable trace, and those aiming to instigate experience and newfound knowledge surrounding cultural values especially so. This occasion brings meaning and memorable experiences, particularly the students in grade 11 of CIS.
Related posts


Performance Problems - Not Where You'd Expect
The new rendering system in Woopsi is coming along nicely. In most areas it increases rendering speed and reduces flicker. In one area, though, it hasn't been an improvement at all. Scrolling has become a problem.
In the old system, scrolling regions were extremely quick, mainly because most of the scrolling is done by just using the DMA to copy the existing pixels to a new location. In the new system, however, scrolling is sluggish and annoying. It seems to take more than one frame to perform a single scroll operation, which results in the display lagging behind the stylus and the system appearing to be, well, a bit rubbish.
I've already made one major optimisation. Instead of asking every gadget to draw every damaged rectangle until there are no rectangles left (which results in dozens of pointless, complex clipping operations), Woopsi uses the hierarchy of the gadgets to its advantage. If a parent gadget does not intersect a damaged rectangle, there is no way for its children to intersect it either. In avoiding trying to draw those children we save a lot of time.
However, this did not solve the scrolling problem. So what could it be? More to the point, how can it have happened, as the scrolling code hasn't actually changed?
I had a few guesses. Perhaps the scrolling operation was running more than once. Putting break points into the Xcode version of Woopsi quickly killed that idea. Perhaps I need to cache the contents of ScrollingPanels in some sort of off-screen bitmap - maybe it's all the redrawing that is a problem. But it couldn't be that - there weren't any problems before. Perhaps the list of newly-revealed rectangles that need to be redrawn that is returned by the scrolling routine is inaccurate. Testing it overturned that idea.
So I turn to Xcode's "Instruments", something that I wish Visual Studio would copy. Running Woopsi through the CPU Sampler suggests that the only thing Woopsi is doing is creating Rect objects. Creating rectangles is making Woopsi's scrolling rubbish? That makes no sense.
Except, perhaps it does.
All of the new rendering functions create WoopsiArrays of Rect objects. As the inital size of a WoopsiArray is 100, and as they store objects, not pointers to objects, that means that each function call to one of these methods creates hundreds of Rect objects. Worse, these functions are recursive. There are probably tens of thousands of Rect objects being created every time the screen redraws.
I tried switching to arrays of pointers-to-rect objects, but quickly got bogged down in recursive memory allocation hell. Instead, I altered the WoopsiArray class so that it accepts an initial reserved size parameter. In most cases, none of the methods needs more than 4 rects in a list, so I've gone with that as the initial size. I've also changed the way that the array class resizes itself; it now doubles in size every time it needs to allocate more space instead of increasing by 100 elements. I believe this is the behaviour of the STL's vector class.
Surprisingly enough, these very minor changes fixed the scrolling problems and boosted the speed of Woopsi everywhere else. I'm not sure I can remember it being this quick.
It's a very old programmer's cliche, but it's true. Performance problems aren't always where you'd expect.
Happy Belated Birthday, and More Event Stuff
It was the blog's birthday on April 11th. I'd intended to put up a birthday post like I did last year, and maybe a celebratory Woopsi app, but exam work got in the way. Ah well.
Anyhoo, I made some more Woopsi changes nearly a month ago that I haven't been able to post about yet, so here's some info on those.
One of the lingering problems with the Gadget class has been the way it overloads the draw() method. There are two draw() methods, one without parameters, and one with a single parameter (a Gadget::Rect). The first method works out which parts of the gadget are visible, whilst the second actually draws those visible parts. Sounds good, but in practice it causes problems.
There is a bug in GCC (or a weird C++ behaviour; let's assume it's a bug in the compiler and not a design flaw in the language) that prevents this arrangement from working. If we create a subclass of gadget (let's call it "SubGadget"), we want to override the draw(Rect) method so the gadget can define how to draw each visible region. However, we don't want to override the draw() method, as this is identical for all gadgets. Unfortunately, we can't override one without also overriding the other. The compiler complains. As a workaround for this I have been overriding draw() with a method that just calls the base method, but this is clunky.
As a proper fix, the draw() method is now called "redraw()". This change will probably break your code if you have created your own gadgets.
There are a few more changes in the event system. Previously, whenever a selection was made in the context menu, the gadget that "owned" the menu raised an event indicating the selection. It was then the programmer's responsibility to check the context menu gadget itself to determine which value had been chosen. This is no longer the case - the handleContextMenuSelectionEvent() method now receives a reference to a "ContextMenuEventArgs" object that contains a pointer to the menu item that was selected. Much simpler to work with.
In other changes, the WoopsiArray and LinkedList classes no longer contain the "begin()" methods. This was left over from when Woopsi switched from the STL vector class to the WoopsiArray, a change in which I'd purposely made the WoopsiArray a drop-in replacement for the vector. The "begin()" was just a stub method, though - the WoopsiArray does not implement the STL iterator code, and begin() simply returned a zero. The WoopsiArray uses indexes internally, not pointer arithmetic, to navigate its contents.


United Nations Directories
for Electronic Data Interchange for
Administration, Commerce and Transport
5419 Rate type code qualifier [B]
Desc: Code qualifying the type of rate. Repr: an..3 Code Values: 1 Allowance rate Code specifying the allowance rate. 2 Charge rate Code specifying the charge rate. 3 Actual versus calculated price difference rate Difference rate of actual price and calculated price. 4 Standard labour rate Labour rate for a normal working day. Synonym: Straight time. 5 Overtime labour rate Labour rate for overtime. 6 Premium labour rate Labour rate for premium time. 7 Calculation rate To identify a rate which is to be applied in a calculation. 8 Coefficient The coefficient which is to be used as a multiplier. 9 Indemnity rate To specify the rate of an indemnity. 10 Guarantee reserved calculation rate To specify the rate that has been used to calculate the monetary amount reserved as a guarantee. 11 Waiting time indemnity rate To specify the rate of an indemnity for waiting. ZZZ Mutually defined The rate type is mutually agreed by the interchanging parties.
Data Element Cross Reference
DataElement 5419 is used in the following Batch Composite Elements:
Copyright United Nations, all rights reserved
UN Economic Commission for Europe
Palais des Nations, CH-1211 Geneva 10, Switzerland
UN/EDIFACT Directories