text:
As of the 29th October 2012
These Terms and Conditions (and the GAME Privacy Policy) form a contract between Game Retail Ltd ('GAME') and you, the 'Account Holder', in relation to how GAME Reward points are earned and spent.
1. The GAME Reward programme is open to any person who applies and is accepted for a GAME Reward account, either at a GAME store in the UK or online at www.game.co.uk. GAME may extend, amend or terminate the GAME Reward programme at its discretion, or amend these Terms and Conditions at any time in which case GAME will post notices on its website at www.game.co.uk and in-store. If you apply for a GAME Reward account you confirm that you accept these Terms and Conditions. GAME may refuse an application for a GAME Reward account if it has good reason to do so.
2. If you apply for a GAME Reward account in a GAME store you will need to provide one of the sales team with your title, forename, surname, address and sex. If you apply for a GAME Reward account online, you will need to create a GAME account and you will be required to input the same information together with a valid email address and your date of birth.
3. An administration fee is chargeable on an application for a GAME Reward account. This fee may be waived at GAME's discretion.
4. GAME Reward cards, where issued, remain the property of GAME. If requested, Account Holders are required to return any GAME Reward card that they hold to GAME or to destroy it.
5. Account Holders are responsible for the security of their GAME Reward cards and credentials and for any points earned or redeemed ('spent') using them. If a GAME Reward card or other credentials are lost, stolen, or damaged or a person has gained unauthorised access to the Account Holder's GAME Reward details or account, the Account Holder should notify GAME immediately, either online at www.game.co.uk/contact-us or through one of the team at a GAME store, so that appropriate security measures can be taken and, where appropriate, a new card or new credentials can be issued.
6. GAME Reward cards cannot be used as credit cards or guarantee cards.
7. Account Holders earn GAME Reward points on purchases in GAME stores or online. To earn points in a GAME store, the Account Holder must present their GAME Reward card or credentials to a member of the GAME sales team at the till at the beginning of the transaction. To earn points online, you must link your online GAME account with your GAME Reward account. To link your accounts, login to your GAME account at www.game.co.uk and follow the instructions in the 'My Account' section. Your GAME Reward account must be registered with a UK post code in order to link your accounts. Account Holders can only link one GAME Reward account to each GAME account. Once your GAME Reward account is linked to your GAME account points are automatically credited to your GAME Reward account when you complete a qualifying purchase after logging in.
8. GAME Reward points will only be added at the time of purchase and cannot be added at a later date. It usually takes up to 24 hours for points to be available in your GAME Reward account. GAME Reward points cannot be earned on purchases made prior to joining the GAME Reward programme.
9. Points are awarded on every purchase over £1.00, except on the purchase of gift vouchers and mobile game downloads. Points can be earned on downloads from a date to be notified to Account Holders (by notices in store and at www.game.co.uk.) Other products may be included or excluded from time to time at the discretion of GAME.
10. Account Holders will receive points on qualifying purchases calculated at the rate of 1 point for every £0.125 spent (rounded up to the nearest whole number, so, for example, a purchase for £9.98 earns 80 points and a purchase for £10.01 earns 81 points). GAME reserves the right to remove incorrectly calculated Reward points and/or Reward points which have been added erroneously.
11. GAME reserves the right to vary the rate at which GAME Reward points are earned (including offering bonus points from time to time) on providing 14 days' notice. Notice is properly given if we post details of any changes at www.game.co.uk and in store.
12. Account Holders can redeem GAME Reward points against purchases in GAME stores or online at the rate of £1.00 per 400 points. The minimum redemption is 400 points or £1.00 against a purchase but any number of points above 400 can be redeemed pro-rata. No change or credit will be given for any overpayment using points. GAME reserves the right to vary the number of points required to be redeemed against a purchase or to exclude certain products from the GAME Reward programme.
13. Points cannot be redeemed until registered on an Account Holder's GAME Reward account. Note that as stated above, it takes around 24 hours for points earned to register.
14. To redeem points against an intended purchase in a GAME store, the Account Holder must present their GAME Reward card or GAME App to a member of the GAME sales team at the till at the beginning of the transaction. To redeem points against intended purchases online at www.game.co.uk, login to your account and select the option to pay by redeeming points at the appropriate point during the payment process.
15. GAME Reward points can be used as part payment towards a product either online or in a GAME store. GAME Reward points will be not earned on products where points have been redeemed as payment or part payment for that product.
16. GAME Reward points have no cash redemption value. GAME Reward points are for Account Holder's personal use and cannot be exchanged, sold or transferred to another Account Holder's account. GAME Reward points can only be redeemed in the country in which the GAME Reward account is registered.
17. If a transaction on which points are earned or redeemed is cancelled or reversed or a product is returned (in accordance with GAME's Returns Policy) GAME will reverse the associated points earned or redeemed. Account Holders must present their GAME Reward card or credentials to a member of the GAME sales team when they require a refund so that points awarded can be debited from the GAME Reward account for the product being returned.
18. The GAME Reward programme is operated and promoted by Game Retail Limited Unity House, Telford Road, Basingstoke, Hampshire RG21 6YJ.
19. GAME's Privacy Policy contains details of how GAME collects and uses information from Account Holders and with whom that information may be shared. The Privacy Policy is available on request and online.
20. It is the responsibility of the Account Holder to notify GAME of any change to or error in their contact details. Details can be updated either at a GAME store or online. GAME reserves the right to suspend a GAME Reward account if an Account Holder's contact details are incomplete or inaccurate.
21. GAME reserves the right to amend these Terms and Conditions, or suspend or terminate the GAME Reward programme at any time. GAME will notify Account Holders of any changes to these Terms and Conditions by posting notices in store and online at www.game.co.uk/reward. GAME will where reasonably possible give Account Holders 14 days' notice of any changes, suspension or termination. Earning or redeeming points after notice is posted will constitute acceptance of any amended Terms and Conditions.
22. Account Holders can terminate their GAME Reward account on written notice to GAME at any time.
23. Any Account Holder may only hold one GAME Reward account at any time. Game reserves the right to de-duplicate its lists of Account Holders by terminating or merging GAME Reward accounts that it reasonably believes to be duplicates issued to the same Account Holder.
24. If GAME reasonably believes that an Account Holder is in breach of these Terms and Conditions or that the Account Holder has abused the GAME Reward programme, GAME reserves the right to take any appropriate action, including suspending or terminating the Account Holder's GAME Reward account.
25. If the GAME Reward programme or an individual account is terminated (for whatever reason) the Account Holder's right to earn or redeem points is lost.
26. If an Account Holder has not used their GAME Reward account for a period of 12 months or more, their GAME Reward account balance may be reset to zero. Where this occurs Game may continue to hold your details unless you ask us to delete them. Account Holders are entitled to apply to have their GAME Reward account reactivated and GAME may, at its discretion, re-award any points which were held in the Account Holder's account at the time the account was zeroed. Re-instatement will not however be possible if you have asked us to delete your details.
27. No party other than the Account Holder and GAME has any rights under the Contracts (Rights of Third Parties) Act 1999 or any equivalent legislation in any jurisdiction, or otherwise, to enforce any term of these Terms and Conditions.
28. These Terms and Conditions are subject to and shall be interpreted under English Law.
29. Any dispute arising under or in connection with these Terms and Conditions is subject to the exclusive jurisdiction of the English courts.


text:
Patients & Visitors Patient Info
While You're an Inpatient
Following is some helpful information you may need while staying at Rochelle Community Hospital.
- Room Assignments
- Calling Your Nurse
- Patient Valuables
- Patient Meals
- Vending Machines
- Surgery Waiting Room
- Telephone Instructions
- Internet Access from Within the Hospital
Room Assignments
For your safety, your room assignment is based on your admitting diagnosis and the type of nursing care you will need during your stay.
Calling Your Nurse
- Our nursing staff will be attentive to your needs. Should you need a nurse, a call button is located at the bedside. Nursing personnel will show you how the call button works so you can ask for assistance.
- Your room also has an intercom at the bedside. This enables you to speak directly with the nurse at the nurses' station.
- For your safety and assistance, an emergency call button is located in your bathroom.
Patient Valuables
Rochelle Community Hospital asks that you have all valuables and personal belongings sent home with family members or friends. The hospital cannot assume responsibility for loss or damage to any personal belongings or valuables you may choose to keep with you.
When needed, there is a procedure to have personal items placed in safekeeping until you are discharged. Contact the nurse if you have items you want to be held in the safe.
Patient Meals
- Nutritious, well-balanced meals are an important part of your treatment and recovery.
- The Food Service Department will provide you with nutritious meals consistent with your diet orders as requested by your physician.
- A Registered Dietitian is on staff and available for consultation and instruction if you are on a therapeutic diet or have special needs.
Patients are served:
Breakfast between 8:00 and 8:30 a.m.
Lunch between 11:45 a.m. and 12:15 p.m.
Dinner between 4:45 and 5:15 p.m.
Bedtime snacks are served between 8:00 and 9:00 p.m.
Occasionally your meal may be delayed if you are scheduled for special tests or treatments. You will be served after your examination, test or surgery.
- Guest Meal - You may like to have a family member or friend eat in your room with you. Arrangements can be made for our Food Service Staff to deliver a delicious, reasonably priced guest meal to your room.
- Cafeteria - The Cafeteria is located in the basement of the hospital and serves nutritious meals to our staff and visitors.
Serving hours:
Monday through Friday
Continental Breakfast 6:45 a.m. through 9:00 a.m.
Lunch 11:30 a.m. through 1:00 p.m.
Dinner 5:00 p.m. through 6:15 p.m.
Weekends and Holidays
Lunch Noon through 1:00 p.m.
Dinner 5:00 p.m. through 6:00 p.m.
The Food Service Staff also offers hot and cold tea, as well as coffee, free of charge for guests and employees during normal serving hours.
Vending Machines
Vending machines are located in the Cafeteria and are accessible during normal Cafeteria serving hours. Additional vending machines are located across from the Patient Access area outside the Emergency Department and are available 24 hours a day.
Surgery Waiting Room
Family and friends who are waiting to see surgical patients may stay in the Waiting Room on the second floor, the Meditation Room on the first floor or the Cafeteria in the basement.
Telephone Instructions
Every patient bed at Rochelle Community Hospital has a telephone assigned to it. Your telephone extension number is the same as your bed or room number. For example, if your room number is 206-2 then your telephone extension number would be 2062.
Placing calls from the Patient Room:
You may place a local call from your phone at any time. In order to access an outside line, dial "8," then "1," then the area code and local number you wish to call. Long distance calls may only be made by using one of two methods:
Credit card calls can be made by dialing 8-0, then the number that you are calling. When using this method, do not pause after you have dialed 8-0. If you do, your call will not be completed. You cannot dial an outside operator directly; the system is programmed not to allow this.
Collect calls may be made by using the same procedure as above.
If you are not able to place the above calls yourself, you may receive assistance from the hospital operator. To reach the hospital operator, dial "0" on your phone.
Receiving calls:
Family and friends may call you via one of two methods:
- They can reach you by dialing 815-562-2181 and telling the hospital operator your name or by asking them to connect to your extension.
- Callers may also dial 815-562-2181 and then enter your number when the automated attendant answers. Extensions may be dialed as soon as the automated attendant answers and the recording starts.
Incoming calls to patient areas will be restricted during the time period from 10:00 p.m. until 6:00 a.m. This is done to assure that patients receive the rest that is needed for their recovery.
Internet Access from Within Hospital
Rochelle Community Hospital provides FREE wireless Internet Access from anywhere within the hospital. We provide a non-secure 802.11b "HotSpot" with a broadcast SSID of RCH-Public. Contact Information Systems at ext. 1542 (Help Desk) if you have questions.

subset: commoncrawl


text:
Young indigenous men most likely to be in juvenile detention
YOUNG indigenous people are 31 times more likely to be in juvenile detention, a new report has revealed.
Young men are also over-represented in the juvenile detention population, accounting for 91% of young people in detention.
These alarming statistic were contained in a report released on Thursday by the Australian Institute of Health and Welfare.
The report focused on trends over the four-year period from the June quarter 2008 to the June quarter this year.
On an average night in the June quarter of this year there were 1024 young people in juvenile detention across Australia, the report found.
AIHW spokesman Tim Beard said this equated to about one in every 3000 young people aged 10-17 in the overall population.
But alarmingly one in 217 indigenous young people aged 10-17 were in detention on an average night, he said.
"Indigenous young people were 31 times as likely as non-indigenous young people to be in detention on an average night in the June quarter 2012, up from 27 times as likely in the June quarter 2008," Mr Beard said.
Most young people in detention were aged 10-17, and just over half (53%) were indigenous.
Both the number and rate of young people in detention have remained relatively stable over recent years.
Of the 1000 young people in detention, a little more than 50% were awaiting the commencement or outcome of their court matter or sentencing.
In the last year, there was an increase in the unsentenced population (up 9%) and a decrease in the sentenced population (down 9%).


text:
Incumbent Wharton wins Memphis mayoral race
Memphis voters chose A C Wharton as the commanding winner over nine rivals Thursday to continue as mayor for the next four years, signaling confidence in an incumbent whose short stint on the job had already won him popular support for his ability to lead the city through tough times.
With 100 percent of precincts, Wharton received 65 percent of the votes cast to 28 percent for his nearest rival, Edmund Ford Sr., the brother of former U.S. Rep. Harold Ford Sr. The others split the rest with James Harvey Sr., a commissioner from Shelby County surrounding Memphis, who lagged well behind at nearly 3 percent in a race with a light voter turnout, the count showed.
Wharton, a silver-haired lawyer and former college professor, was the candidate to beat entering the race. He had won a special election in 2009 to replace the city's first elected black mayor, Willie Herenton, after Herenton resigned in his fifth term and 18 years in the job.
The typically low-key Wharton was exuberant during his victory speech, waving his hands and yelling his campaign slogan, "we are a city in motion" as more than 100 supporters clapped and cheered. He stood at a podium in front of a large rectangular poster that included a picture of President Barack Obama.
"We are one city," said Wharton, 67. "I see the pain, I see the suffering. But there is room enough for all of us in this city."
Wharton, Ford and Harvey are black, important in a city where 63 percent of the approximately 646,000 residents are African-American, according to the 2010 Census. New Census data released last week showed Memphis, a city known for blues music and the Beale Street tourist drag, is the poorest big city in the nation.
During his first term, Wharton gained in popularity by mediating a crisis stemming from a long-running school funding battle. But budget woes persist as the city has grappled with attempts to ease a deficit that had risen to $60 million, leading to pay cuts for firefighters and police officers. Gang crime and infant mortality also are issues he has to face.
Wharton had been criticized by Harvey and others for backing large tax breaks for big companies that were considering building plants in Memphis. Wharton says tax breaks were important in attracting companies that are bringing thousands of jobs to the Memphis area.
Wharton also faces what could be a difficult transition to a unified school system after voters approved consolidation of the city and county school districts.
Voters who backed Wharton said they welcomed his calm, reassuring manner on the job.
During the historic Memphis flood in the spring, Wharton maintained calm as he coordinated with county emergency management officials and made several public pleas for citizens take the flood and evacuation orders seriously.
Supporters also spoke of his breadth of job experiences.
He previously had served for about seven years as mayor of Shelby County. He also was the first African-American law professor at the University of Mississippi, a position he held for 25 years. And he also once served as Shelby County's chief public defender.
At Central Christian Church on Thursday, one of the city's busiest polling places, two dozen voters said they chose Wharton while none said they voted for the other candidates.
"He is doing a real good job," Mike Harris, a 36-year-old restaurant manager, said of Wharton. "I look at what he inherited. We had problems when he got here. He's handled it very well."
Carl Sebelius, 70, said he has known Wharton for years and has confidence in him.
"I don't see any need to change at this stage of the game," he said


text:
Previous Lecture
Complete and continue
Certified Soundtrap Educator
First Section
Course Introduction with Taylor Haun (0:31)
Goals with the Course (0:26)
Course Structure (1:00)
Why Soundtrap?
Why Soundtrap? (2:36)
Easy Recording
Getting Started in the Studio (0:07)
Introduction Soundtrap Studio (0:59)
Loop Library (1:36)
Collaboration (2:23)
Software Instruments (1:18)
Audio Recordings & Effects (1:52)
How to import a track
How to download your project as an mp3
Collaboration - Podcasts (1:35)
Support (0:15)
Studio Project Introduction (0:21)
Studio Project Guide
Pre-Quiz Pep Talk (0:15)
Studio Quiz
EDU Admin
EDU Admin Introduction (0:25)
The Soundtrap EDU Admin Features (1:25)
Import students with CSV-file
Invite students from Google Classroom (2:17)
Import students - Schoology (1:45)
Assignment creation: Soundtrap
Assignment Creation: Google Classroom (2:33)
Setting Up Students Accounts (1:01)
EDU Admin Quiz
Collaboration and inspiration for the classroom
Collaboration in the Classroom (0:12)
Soundtrap can be used on any device, anywhere.
STEAM - Adding the Arts to STEM
The 21st Century Skills and Student Engagement
Benefits of Project Based Learning
A demo that will make you look cool (1:27)
Cloud-based music tool engages students on a new level (8:37)
5 ways music and tech are adding a little STEAM to our lessons (1:51)
Inspiration: Links
Security and Privacy
Soundtrap security regulations for children & COPPA
Certification Test
Certification Test
Congratulations! (0:23)
Studio Project Introduction
Lecture content locked
If you're already enrolled,
you'll need to login
Enroll in Course to Unlock


text:
In what could be a startling wakeup call to university administrators whose actions sometimes are challenged on constitutional grounds, a jury has found former Valdosta State University President Ronald M. Zaccari personally liable for $50,000 damages for the school's due process violations of a former student.
According to a report from the Foundation for Individual Rights in Education, Zaccari had waged a campaign against student Hayden Barnes after Barnes protested Zaccari's plan to build two parking garages on campus.
The administrator had called Barnes' personal Facebook page a "threatening document" and labeled the student a "clear and present danger."
Advertisement - story continues below
WND reported earlier when the 11th U.S. Circuit Court of Appeals rejected Zaccari's request for protection and decided to let a jury determine whether Barnes was due damages on his claim that Zaccari unjustly tossed him from the school.
The case originated when Zaccari, when he was still president of Valdosta State, ordered Barnes to be "administratively withdrawn," or expelled, because he alleged Barnes was a threat.
TRENDING: Scott Baio floats moving to Utah to run against Mitt Romney
The student had been campaigning against a plan by Zaccari to spend $30 million of the college's money for parking garages.
A district court said Barnes could seek damages from Zaccari personally, and a three-judge panel of the 11th Circuit Court agreed.
Advertisement - story continues below
Get "Taking America Back," Joseph Farah's manifesto for sovereignty, self-reliance and moral renewal
FIRE now has reported the jury found Zaccari liable for $50,000 in damages.
"College administrators have been blatantly and willfully violating student rights for decades, but they have far too often dodged personal responsibility. Not so today," said FIRE President Greg Lukianoff. "We hope this serves as a much-needed wakeup call to college administrators that it's time to start paying close attention to the basic rights of their students."
Barnes told FIRE that he feels vindicated after the five-year fight.
"This is a victory for me but it's also a victory for students everywhere. I hope that other college administrators take heed and see that violating students' rights can be costly and that they will be held accountable. I thank my legal team and FIRE for making this victory possible and my friends and family for standing by me through this difficult fight."
Advertisement - story continues below
Barnes had protested Zaccari's plan to build the parking garages – at a cost of $30 million.
"By posting flyers and sending emails to Zaccari, student and faculty governing bodies, and the board of regents of the university system of Georgia, Barnes expressed his concerns and proposed what he saw as environmentally friendly alternatives. Barnes also penned a letter to the editor of the VSU student newspaper about the proposed parking garage plans and wrote to Zaccari to ask for an exemption from the mandatory student fee designated for funding the construction," Fire reported.
Zaccari's response was that he ordered Barnes to be "administratively withdrawn" from VSU in May of 2007. The move came after members of his administration had raised concerns about whether that was proper.
"Zaccari absurdly claimed that Barnes presented a 'clear and present danger' to both Zaccari and the VSU campus on the basis of a cut-and-paste collage Barnes had posted on his Facebook page that included pictures of Zaccari, a parking deck, and the caption 'S.A.V.E.—Zaccari Memorial Parking Garage,'" FIRE said.
Advertisement - story continues below
In the original district court ruling, the judge found Zaccari violated Barnes rights by expelling him without a notice or a hearing. The ruling said because Zaccari violated the law, he was not eligible for immunity from lawsuits.
FIRE said its pressure on the university system prompted the regents to reverse Barnes' expulsion in 2008, and Zaccari soon retired.
"Under further pressure from FIRE, former VSU President Patrick J. Schloss dismantled VSU's unconstitutional free speech zone in September 2008," FIRE noted.
Find out what it's like for the faithful to be in a secular college, in "Fish Out of Water," while Jim Nelson Black outlines in "Freefall of the American University" the bias and proselytizing that goes on in higher education.


text:
Noisy Flames - Gas Double Oven Ranges
Possible Solutions
Flames are noisy/yellow:
Compare the flame to the illustrations below. If the flames look like A:
- A burner port (hole) may be clogged.
- Check to be sure the burner caps are positioned correctly.
If LP (propane) gas is being used, the cooktop may have been converted improperly, call for service.
Normal flames look like B or C.
Still need help? Call or schedule service.
You may need assistance from a qualified technician. Call 1-800-422-1230 or click below to schedule an appointment.


text:
Plumber Surrey
Are you looking for a professional local Plumbing company in Surrey? well you have come to the right place as H20's plumbers are not only on call out 24 hours a day and 7 days a week across Surrey they also offer a friendly and professional service that is always performed to the highest standards.
H2O plumbers are experienced and effective at providing a rapid comprehensive service for domestic homes and commercials premises in Surrey. We are equipped for all types of work from minor plumbing projects, such as changing a tap washer, shower swaps, to major plumbing projects like designing, supplying and installing heating and hot water systems, we offer a 24/7 service. Our engineers are fully qualified and experienced in all types of domestic and commercial works, including:
* Emergency services
* General plumbing
* Mains water pipe-works
* Cylinders vented / Pressurised cylinders
* Storage tanks and overflows
* Under floor heating
* Toilet systems
* Pumps and valves
* Power flushing
* Pipe bursts
* Showers swaps
* Towel rails
* Waste disposal
* Saniflo's
* Tanks
* Immersion heaters
* Water Softeners
* Water Testing and Treatment
Call one of our Plumbers in Surrey now on 0800 7797 820 for more information.


text: Editing Talk:Shadow of the Ghoul 0 Hi, welcome to WoWWiki! Please log in to edit this wiki! Joining Wikia is free, and it only takes a minute.We hope that you become a member of the WoWWiki community! Don't have an account? Click here to join WoWWiki. You do not have permission to edit this page: The action you have requested is limited to users in one of the groups: FANDOM Staff, FANDOM Helpers, Wiki Managers, Content Team Members. Please log in to edit this wiki.Joining WoWWiki is free, and it only takes a minute.We hope that you sign in, and become a member of the community!Click here to log in or create an account more + You can view and copy the source of this page: {{Infobox talent |name=Name |image=Temp.png<!--Replace with correct icon--> |description=Description of spell on tooltip, substituting rank changing numbers for X (use Y or Z if more than one number). |class=Class |location=Tree, Tier x |affects=which abilities/stats/talents does this one affect? |ranks=# of ranks |talent_req=does this talent require another to be taken? (optional) |points_req=# of talent points required to reach this tier }} Retrieved from "https://wowwiki.fandom.com/wiki/Talk:Shadow_of_the_Ghoul" Edit summary Preview Mobile Desktop Show changes


text:
From part I I neglected to point out that you should un comment #define _USE_SSE in the config.h as mentioned below. This preproc directive will allow you to run on device. It was also mentioned that you could get more speed out of Speex if you #define FIXED_POINT instead of FLOATING_POINT. I have not verified this and Speex runs acceptable in my implementation without it but its worth mentioning.
You have a lot of vocal audio data. Maybe it needs to be stored on an iPhone. Maybe it needs to glide effortlessly over the network like a slice of dental floss blowing in the wind. Whatever the case, you need a good compressor and Speex is a great solution. Hi, I'm Cliff. You're here because you're looking for an answer to your audio compression needs. I'm here to deliver the secrets to decompressing audio with the Speex codec. That, for what it's worth, is the only reason I'm still hanging around here. In any other event you'd probably find me on South Street sharing a soda with a cat. I digress . . .
In part I of this series I explained how to get Speex to compile. Today we'll try to import the OGG container format into our project and move onto Speex decompression. Because not everyone may be aware, a brief explanation on codecs and containers is in order. Audio encoding is typically made of two distinct pieces. You would usually have a container format and an encoding. The audio container holds the meta data, or descriptive information, for the actual audio file. This meta or descriptive information includes things like how many channels are in the audio data, what sample rate it is recorded at, and the endianness (not Indianness) of the audio data. There are other potential data held in the container format depending on the type of encoding you use. Finally, the descriptive (meta) data will have the location (offset) of the actual audio data in the file. The encoding is the actual raw audio data that is to be delivered directly to the output device or speakers. The encoding can be a direct digital dump (that is the actual audio samples taken over time as the audio was recorded) or it can be a compressed variant of the raw samples. It's important to note that the encoding and the container are not usually dependent upon one another. That mean you can mix and match Speex encoding with a wave container format just the same as you can put raw uncompressed samples in an OGG container. It's just more common to find uncompressed data in a wave container and Speex compressed audio in an OGG container.
Let's take a step back and try some TDD. Following best practices, we need to create a need for the Speex codec and the OGG container. I realize this is cart before the horse style since we've already imported Speex but bear with me as I'm doing this tutorial on my time off. Also up until now I've been completely out of the TDD habit for a while as I strive to work closely with others who are uncomfortable with the style. We start by creating a "Unit Test Bundle" target in the project. Create a new objective C class named "CCCSpeexDecoderTest" using the "New File…" dialog and do not choose (unselect) the "also create .h file" option. Include the following in your new Objective-C class file.
// // CCCSpeexDecoderTest.m // SpeexLib // // Created by Clifton Craig on 11/13/10. // Copyright 2010 Craig Corporation. All rights reserved. // #include <SenTestingKit/SenTestingKit.h> @interface CCCSpeexDecoderTest : SenTestCase { NSString* wavFile; NSString* speexFile; } @end @implementation CCCSpeexDecoderTest -(void) setUp { wavFile = [[NSBundle bundleForClass:[self class]] pathForResource:@"sample" ofType:@"wav"]; speexFile = [[NSBundle bundleForClass:[self class]] pathForResource:@"sample" ofType:@"spx"]; } -(void) testFirstTest { STAssertNotNil(wavFile,@"A sample wav file is required to test speex decoding."); STAssertNotNil(speexFile,@"A sample speex file is required to test speex decoding."); } @end
Running this tells us that we're going to need some speex data to operate on. (I've taken the liberty to generate a wav file using the "say" command and converted it to a Speex encoded file using the JSpeex API via Groovy. I'll include both in a download of the project for this lesson.) Next we'll create a structure to hold our unit tests and test resources. We will be following the "golden copy" testing pattern. You later learn that using the pattern here is rather fragile, however a more purist approach would take us through an exercise of re-writing the entire Speex project which is outside the scope of my tutorial. Using Finder, I created a "Tests" and a "Resources" folder under my src folder in my project. Drag/drop these folders into XCode to create the corresponding groups. Then drag/drop the sample wave and sample speex files (named "sample.wav" and "sample.spx" respectively) into the "Resources" group in XCode. Running the test will now pass.
We now work our way through creating the decoder. I'll spare the individual steps in TDD as it would make this text overly verbose and I'll try to summarize instead. We need an actual decoder instance which we'll be importing. TDD suggests we import what we don't have so add the import for a CCCSpeexDecoder type which does not exist. Build and fail. (The failure is important as it formalizes the class or feature you are about to add/change/delete.) We also need to be able to create this type and give it some audio to decode. It will also need a place to send the decoded audio data. I'm going to define an abstraction for providing/receiving the audio data so that we don't necessarily need a file system so I'm adding a test to demonstrate/document the need for an audio source, a test to demonstrate/document the need for an audio sink, and one other test that formalizes how we plug these two abstractions into the decoder.
#import "CCCSpeexDecoder.h" @interface CCCSpeexDecoderTest : SenTestCase <CCCSpeexAudioSource, CCCSpeexAudioSink> { NSString* wavFile; NSString* speexFile; CCCSpeexDecoder *decoder; } @end @implementation CCCSpeexDecoderTest //... -(void) testAudioSourceIsDefined { id<CCCSpeexAudioSource> anAudioSource = self; } -(void) testAudioSinkIsDefined { id<CCCSpeexAudioSink> anAudioSink = self; } -(void) testCanCreateDecoder { [[CCCSpeexDecoder alloc] initWithAudioSource:self andAudioSink:self]; }
And this calls for the additional CCCSpeexDecoder class which defines the abstractions…
#import <Foundation/Foundation.h> @protocol CCCSpeexAudioSource @end @protocol CCCSpeexAudioSink @end @interface CCCSpeexDecoder : NSObject { } - (id) initWithAudioSource:(id<CCCSpeexAudioSource>) anAudioSource andAudioSink:(id<CCCSpeexAudioSink>) anAudioSink; @end #import "CCCSpeexDecoder.h" @implementation CCCSpeexDecoder - (id) initWithAudioSource:(id<CCCSpeexAudioSource>) anAudioSource andAudioSink:(id<CCCSpeexAudioSink>) anAudioSink { self = [super init]; if (self != nil) { } return self; } @end
Now we go back and add one more test that explains what we're after.
-(void) testCanDecode { [decoder decodeAudio]; }
Build and fail so that we know to define the method.
-(void) decodeAudio { }
We now have defined the ability to decode audio. We have to set our expectation for this method. (Test first begins with declaring or expressing a need for a feature or function then setting an expectation for its behavior.) After invoking decodeAudio we would expect to have collected the decoded audio bytes somewhere. I'll add a mutable data fieldin the test for this.
@interface CCCSpeexDecoderTest : SenTestCase <CCCSpeexAudioSource, CCCSpeexAudioSink> { NSString* wavFile; NSString* speexFile; CCCSpeexDecoder *decoder; NSMutableData *decodedAudio; } @end @implementation CCCSpeexDecoderTest -(void) setUp { wavFile = [[NSBundle bundleForClass:[self class]] pathForResource:@"sample" ofType:@"wav"]; speexFile = [[NSBundle bundleForClass:[self class]] pathForResource:@"sample" ofType:@"spx"]; decoder = [[CCCSpeexDecoder alloc] init]; decodedAudio = [[NSMutableData alloc] init]; }
And we add a test to exercise the method and document/verify our expectation:
-(void) testDecodeAudioFillsDecodedAudio { STAssertTrue([decodedAudio length] == 0, @"Should NOT have accumulated data"); [decoder decodeAudio]; STAssertTrue([decodedAudio length] > 0, @"Should have accumulated data"); }
Here's the Oogly part. We are calling a method with no return value. We've defined an abstraction around collecting data (an audio sink) and we've made our test case adopt the protocol for this abstraction. The protocol defines no methods. The test calls for data to magically arrive in the mutable data field. Indirectly, our test is stating that given a source and a sink, when the decodeAudio message is sent we should have accumulated data in the sink. running the test fails because we haven't added the functionality. We step into the decodeAudio implementation and fill in the simplest thing that works.
-(void) decodeAudio { NSString *pretendData = @"pretendData"; [audioSink audioWasDecoded: [NSData dataWithBytes:[pretendData cStringUsingEncoding:NSUTF8StringEncoding] length:[pretendData length]] ]; }
You see we are talking to an audioSink object here. Because we don't really have an audiosink object in scope (I just made it up b/c it felt right) we need to declare it.
@interface CCCSpeexDecoder : NSObject { id<CCCSpeexAudioSink> audioSink; }
If we run we still won't get satisfaction because we haven't ensured that the audiosink given in the constructor is the one we talk to when we decode audio. So we revisit the init method.
- (id) initWithAudioSource:(id<CCCSpeexAudioSource>) anAudioSource andAudioSink:(id<CCCSpeexAudioSink>) anAudioSink { self = [super init]; if (self != nil) { audioSink = [anAudioSink retain]; } return self; }
We also need to release in our dealloc.
- (void) dealloc { [audioSink release]; [super dealloc]; }
Let's be more specific. When decoding audio we will want to discover the meta data or attributes of the audio. This information is usually the first group of bytes in a file and it explains what the rest of the file contains. We'll declare an expectation to receive a callback in our sink which contains the meta data in an easily navigable NSDictionary.
-(void) testDecodeAudioReturnsHeaderInfoToSink { STAssertNil(headerInfo, @"We should start with no header info."); [decoder decodeAudio]; STAssertNotNil(headerInfo, @"We should now have header info."); }
and we need to add an NSDictionary field to our test to record the header info.
@interface CCCSpeexDecoderTest : SenTestCase <CCCSpeexAudioSource, CCCSpeexAudioSink> { //Other fields... NSDictionary *headerInfo; } @end
we add the simplest thing that will work.
-(void) decodeAudio { NSString *pretendData = @"pretendData"; [audioSink headerWasDecoded:[NSDictionary dictionary]]; [audioSink audioWasDecoded: [NSData dataWithBytes:[pretendData cStringUsingEncoding:NSUTF8StringEncoding] length:[pretendData length]] ]; }
…And this calls for an additional method in our AudioSink protocol.
@protocol CCCSpeexAudioSink <NSObject> -(void) audioWasDecoded:(NSData*) someDecodedAudio; -(void) headerWasDecoded:(NSDictionary*) theAudioAttributes; @end
Which bleed back into the test where we store the attibutes as our header info. Add the following to the test case.
-(void) headerWasDecoded:(NSDictionary*) theAudioAttributes { headerInfo = theAudioAttributes; }
Now we'll look at individual attributes given to the sink during the parse. We set some expectations for numeric values mapped to specific keys in the header info.
-(void) testDecodeAudioHeaderInfoIncludesSpecificValues { [decoder decodeAudio]; NSNumber *value = [headerInfo valueForKey:@"sampleRate"]; STAssertNotNil(value, @"Should have returned a number"); value = [headerInfo valueForKey:@"frameSize"]; STAssertNotNil(value, @"Should have returned a number"); value = [headerInfo valueForKey:@"numberOfChannels"]; STAssertNotNil(value, @"Should have returned a number"); value = [headerInfo valueForKey:@"decodeBlockSize"]; STAssertNotNil(value, @"Should have returned a number"); value = [headerInfo valueForKey:@"framesPerPacket"]; STAssertNotNil(value, @"Should have returned a number"); }
And as you'll note a pattern here we should do some refactoring.
-(void) assertNumericValueInDictionary:(NSDictionary*)aDictionary atKey:(NSString*)aKey { NSNumber *value = [headerInfo valueForKey:aKey]; STAssertNotNil(value, @"Should have returned a number"); } -(void) testDecodeAudioHeaderInfoIncludesSpecificValues { [decoder decodeAudio]; [self assertNumericValueInDictionary:headerInfo atKey:@"sampleRate"]; [self assertNumericValueInDictionary:headerInfo atKey:@"frameSize"]; [self assertNumericValueInDictionary:headerInfo atKey:@"numberOfChannels"]; [self assertNumericValueInDictionary:headerInfo atKey:@"decodeBlockSize"]; [self assertNumericValueInDictionary:headerInfo atKey:@"framesPerPacket"]; }
Because I forget the attributes of the file provided I'm going to use a discovery test technique. With this technique we use a dummy expected value in our assert and allow the assertion error message tell us what the actual value is. I wouldn't do this in normal testing. It's only because I already have working code that I'm plugging in and because this tutorial is getting wordy that I'm going to take the cheap way out.
-(void) assertIntValue:(int)anInt isInDictionary:(NSDictionary*)aDictionary atKey:(NSString*)aKey { NSNumber *value = [headerInfo valueForKey:aKey]; STAssertNotNil(value, @"Should have returned a number"); STAssertEquals([value intValue], anInt, @"Integer value %i should exist for key %@", anInt, aKey); } -(void) testDecodeAudioHeaderInfoIncludesSpecificValues { [decoder decodeAudio]; [self assertIntValue:-999 isInDictionary:headerInfo atKey:@"sampleRate"]; [self assertIntValue:-999 isInDictionary:headerInfo atKey:@"frameSize"]; [self assertIntValue:-999 isInDictionary:headerInfo atKey:@"numberOfChannels"]; [self assertIntValue:-999 isInDictionary:headerInfo atKey:@"decodeBlockSize"]; [self assertIntValue:-999 isInDictionary:headerInfo atKey:@"framesPerPacket"]; }
Once we implement the actual parsing logic we will start to see the actual values reported in the assertion errors. (I am adapting existing working code rather than developing the code from test cases.) We will pull the values from the errors back into the asserts to make the test pass and document what our expectations actually are.
Now we need to actually start pulling audio from our audio source abstraction. Because we used protocols, our test can pose (using the self-shunt pattern) as the audio source and provide data for the decoder. We step into the decoder and start doing some actual parsing.
-(void) decodeHeader { [audioSink headerWasDecoded:[NSDictionary dictionary]]; } -(void) decodeAudio { NSString *pretendData = @"pretendData"; [self decodeHeader]; [audioSink audioWasDecoded: [NSData dataWithBytes:[pretendData cStringUsingEncoding:NSUTF8StringEncoding] length:[pretendData length]] ]; }
Importing OGG
At this point we have to import OGG for decoding the container so we can read the file meta data. Download and unpack libogg (not liboggz) from the Xiph.org download site.
We need to add the ogg header files to the header search path, so drag/drop the ogg folder from the include folder in the root of the unpacked directory into your XCode project. (/path/to/libogg-1.2.1/include/ogg) Choose to Copy the files from the dialog and select your static lib target before accepting the dialog. Delete the config_types.h.in and makefile.am and Makefile.in from this folder and group. (Also move them to trash.) Double click the project icon in the left tree pane and select the "Build" tab. Type "header search" in the search box at the top to narrow the options to the header search path. You need to add, "$(SRCROOT)" as one of your header search path values here. Create an XCode group for the ogg source code and drag/drop the "bitwise.c" and "framing.c" files from the unpacked libogg source folder. (/path/to/libogg-1.2.1/src).
At this point building unit test target should leave you with errors from the latest round of header info asserts which we will fix in the next part of the series. We have a fully configured project with access to both the speex and ogg encoding/decoding APIs which is exciting. In the next part of the series we will tackle calling into these APIs to decode the data. I'm going to upload my part II example project to my box account so it will be in the right and pane for your downloading pleasure. Until next time…
(Some of you will have noticed I accidentally published this post the other day before finishing it. This is why I'm publishing it half baked tonight. There's alot here and a lot more to cover. Keep checking back for updates!)


text:
What is the date of the next Vancouver Sun Run?
Sunday, April 19, 2020
How can I register?
The best way to register is by registering yourself online through our website. A credit card is required for payment online.
How do I know if I'm registered?
If you enter online, you will receive an email message confirming your registration. If you submit your entry by mail or in person, you will also receive an email confirmation once we have input your registration information onto our system. You can log back into our registration system and confirm your entry. For more information, you can call the Vancouver Sun Run office.
Do I have to Register?
YES! NO RACE BIB, NO ACCESS TO THE COURSE – a valid race bib is mandatory to gain access to our race course, if you are not displaying a valid race bib you will be removed from the event.
Can I register on race day?
No. There is no race day registration.
What is the closing date for race registration?
You can register by mail, or online. Mailed entries must be postmarked a week before deadline. Online registration closes April 9, 2019 at midnight.
After April 9, 2019 you can register IN PERSON only on April 12 & 13, 2019 at the Vancouver Sun Run Fair @ our host venue, BC Place Stadium, Vancouver, BC.
When do I get my Race Bib, Technical Shirt and Timing Tag?
InTraining Clinic participants: Pick up your race package from your clinic leader.
Individuals: Pick up your race package at the Vancouver Sun Run Fair @ BC Place Stadium, Vancouver, BC, entrance to the fair is 777 Pacific Blvd
- Friday, April 12, 2019 10 am – 7 pm
- Saturday, April 13, 2019 10 am – 5 pm
Team Members: Team technical shirts will be delivered from the screen printer directly to team captains by April 10, 2019.
Team captains MUST still pick up race bibs for all team members at the exclusive team captain package pick-up at BC Place Stadium
- Wednesday, April 10, 2019 9am to 7pm
- Thursday, April 11, 2019 9am to 7pm
There is no team pick up on Saturday, April 13, 2019 or race day, please contact our office for special arrangements. Race packages for team members' friends or family, who are not on your team and are registered as individuals or in The Shaw 2.5k Mini Sun Run, must be picked up separately at the Vancouver Sun Run Fair @ BC Place Stadium.
Can I get a Refund or Transfer my Entry if I am no longer able to participate?
Our policy states that YOUR RACE ENTRY IS NON-REFUNDABLE AND NON-TRANSFERABLE. Upon registration you would have had to acknowledge that you agree to our race policy which states that we are unable to process refunds or transfers. Our event is so large that we must download information to process the race bibs and shirts early to get them all done in time for race day.
What do I need to collect my bib and T-shirt, etc at the Sun Run Fair?
Go on line and look up your race bib number before going to the Vancouver Sun Run Fair @ BC Place Stadium, at 777 Pacific Blvd. You will be asked for that number when collecting your items.
May I pick up a number and technical shirt for someone else?
Yes. Provided the person's entry has been pre-paid and an online or paper entry form has been completed.
Can I pick up my T-shirt and race number on race day?
Yes, only if you are pre-registered out-of-town entrant. An out-of-town entrant includes anyone who must pay long distance charges to call Vancouver from home, or special arrangements contact our office for more information. Race day package pick-up is located at the Hyatt Regency Vancouver 2nd level, between 6:30 am and 8:00 am.
How do I ensure that I have the correct timing tag?
Make sure the bib tags' number matches the race bib number that is found on the front of the race bib. For example, if your race bib number is 10234 then your tag's number will say 10234. The timing tag is located on the back of your race bib. Volunteers will help verify a match using special scanners at the Vancouver Sun Run Fair @ BC Place Stadium. As you go through the scanners, your name should appear on the screen. If they do not match, go to the Solutions Desk. Tags cannot be replaced or exchanged on race day.
Can I get another timing tag on race day if I forget mine at home?
No. There will be no tag exchanges or replacements made on race morning.
No Tag = No Results.
Are Strollers Allowed on the Course?
YES Strollers are most welcome at both our Shaw 2.5k Mini Sun Run and our 10K route. The children in the stroller do not require a race bib. Participants with a stroller MUST REGISTER for the10K course in the 1:46 time category for the safety of the children and our other participants.
What does my entry fee pay for?
Your Vancouver Sun Run entry fee helps to pay for staging, organizational and administrative costs such as: technical shirts and screen printing; city costs including ambulance, traffic authority and police; medical supplies; fencing, stages, tents, radios, water station equipment; race bibs, pins, timing tags, race timing and data entry organization; online entry administration fees; venue rental; entertainment, signage and pageantry; fruit and bagels at the finish party; volunteer shirts, lunches and transportation; elite athlete prize money and hosting; production and printing of marketing material to raise awareness and inform the public, including a direct mail and direct email to past participants, plus event management and marketing fees.
The Vancouver Sun Run's primary mandate is to promote health, fitness and community spirit and to support amateur athletics. While the Vancouver Sun Run is not designated as a charity event, over $2.97 million in proceeds from the Vancouver Sun Run have been donated to important causes since 1985.
Is there a gear check facility at the start?
Your warm dry gear can be transported to the finish area for just $5. Pay at the Purolator gear check trucks on race day before 8:30 a.m. Look for the Purolator trucks at the access streets in the start zone. Get there early. The Purolator truck for red zone will be parked on Howe, not Granville and will be open until 9 a.m.
The perforated gear check tag on your bib will be used to identify your gear; submit the tag with your gear. Show your race number to claim your gear. Gear Check pick-up will be in the far east parking lot across from the Arena until 12:30 pm. Items left on the street at the start will be collected after the race and donated to the Salvation Army charity.
What is the best way to get to and from the race?
By all means, use public transit! For race day transit information, please call TransLink at (604) 953-3333. Visit Translink's official website for more details — click here. Aquabus Ferries is offering frequent sailings on Sun Run morning. For more details visit www.aquabus.com or call 604-689-5858.
What time do the roads start closing?
The roads start closing at 5:30 am.
Is there parking at the at the start or finish zone?
The best option is to park near the finish area at B.C. Place Stadium. There's some free street parking and a number of pay parking lots. But beware of street closures, which start at 5:00am in the start and finish zones. Leave plenty of time to reach your destination.
When will results be published?
The names and times of all finishers will be published in the Vancouver Sun newspaper on Monday, April 14, 2019. Online results will be posted shortly after the event.
What do I do with the Timing Tag after the run?
You can take the tag home with you! The tags are DISPOSABLE and there is no need to return your tag at the finish line. Once you have finished the race, please keep moving when you cross the finish line to the water station so runners don't back up.
Can I switch tags with another participant?
No. Tags are individually coded and non-transferable. Please do not switch tags or allow another participant to run with your tag.
Do Shaw Mini Sun Runners need a Timing Tag?
No. The Shaw 2.5k Mini Sun Run is not a timed event. They do need to visible be showing their race bib.
What is a Wave Start?
Entrants of similar ability are grouped in different time zones and start the race in a series of short timed intervals. Participants are assigned a time zone based on their estimated finish time.
How do I know I'm in the correct time zone?
Use your previous Vancouver Sun Run time or the time from another sanctioned event to guide you. Or see Runners Profiles on the Race Details page.
How do I start in the same zone as my friend?
To start in the same zone, you both must select the same estimated finish time on your entry forms. If you are different levels of ability, you must choose the zone appropriate for the slower runner.


text:
New Delhi [India], Oct 11 (ANI): Congress president Rahul Gandhi said on Thursday said that Defence Minister Nirmala Sitharaman's current visit to France was an attempt by the Narendra Modi-led government to "cover up" the alleged Rafale scam.
Addressing a press briefing over the issue, the Congress chief alleged, "Defence Minister Nirmala Sitharaman's trip to France is part of the government's "cover-up" on Rafale. Why has Defence Minister suddenly rushed to France to Rafale's plant? What is the emergency?"
According to media reports, Sitharaman is likely to take stock of the progress in the supply process of Rafale fighter jets by Dassault to the Indian Air Force (IAF). There are also speculations that she is likely to visit the facility where the jets are being manufactured.
Intensifying his attack on the ruling government, Gandhi reiterated that there is a clear cut case of corruption against the Prime Minister of India.
The Congress chief reiterated his earlier statement about Reliance Defence being deliberately chosen by the government as the Offset partner for the deal. "Prime Minister gave the Rafale deal to Anil Ambani to save his (Anil Ambani) business," he said.
"Earlier, former French president revealed that Indian Prime Minister had told them that Reliance should get a deal. Now a senior official of Dassault has said the same. It is a clear-cut case of corruption against Prime Minister of India. Both the official and ex-president of France have said clear cut that the Indian Prime Minister gave Rs 30, 000 crores "compensation" to Anil Ambani. Rafale Company's senior executive has clearly stated that choosing Anil Ambani's company was a compensation for the purchase of Rafale."
Gandhi added that Dassault Aviation, the makers of the Rafale fighters, will say what the Indian government wants them to say. "Dassault is sitting on a huge contract. Dassault will say what the Indian government wants them to say. Their internal document clearly stated that Prime Minister has said that without this compensation the deal will not be done," he added.
Gandhi also termed Prime Minister Modi as a "corrupt man".
"I would like to clearly tell the youth of the country that the Prime Minister of India is a corrupt man," he stated.
Asserting his claim, the Congress president said, "Even the former French President has stated that the Prime Minister of India is corrupt. The media that is questioning is being suppressed." He also criticised the Prime Minister for being silent over the raging controversy.
After a French media report cited a Dassault executive as saying that the joint venture with Reliance Defence was "imperative and mandatory" for the deal, the company clarified that it had "freely chosen" India's Reliance Group for a partnership to set up joint-venture Dassault Reliance Aerospace Ltd (DRAL) for manufacturing parts of the Rafale aircraft and Falcon 2000 business jets.
In a statement, Dassault further confirmed that "it has sold 36 Rafale aircraft to India within the framework of the September 2016 Inter-Government Agreement between France and India".
The Rafale controversy took a new twist after former French president Francois Hollande claimed that the Indian government proposed Reliance Defence's name as the offset partner for Dassault Aviation. However, he later backtracked and said only Dassault could comment on the partnership.
The Congress has been accusing the Centre of irregularities in the high-profile Defence fighter jets contract, alleging that the Prime Minister Narendra Modi-led government was procuring each aircraft at a cost of over Rs 1,670 crore as against Rs 526 crore finalised by the United Progressive Alliance (UPA) government. (ANI)


text:
Author:Dirk Pfeiffer
|←Author Index: Pf
|Dirk Pfeiffer
(20th century – )
- Knowles TG, Kestin SC, Haslam SM, Brown SN, Green LE, et al. 2008 Leg Disorders in Broiler Chickens: Prevalence, Risk Factors and Prevention. PLoS ONE 3(2): e1545. doi:10.1371/journal.pone.0001545
This work is released under the Creative Commons Attribution 2.0 license, which allows free use, distribution, and creation of derivatives, so long as the license is unchanged and clearly noted, and the original author is attributed.


text:
the pity party
In my last post, I asked, "If you took all the stories about African countries in American newspapers and removed those about poverty, disease, and war, I wonder what would be left?"
Ryan Briggs has an answer for the New York Times. I think it shows that the vast majority of their coverage is the story of general misery. Why? Some of it is valid. There is a lot of poverty, disease, and, unfortunately, war on the continent.
But the pity party is only part of the thousands of stories on the continent. It's unfortunate that a journalist can't get a headline in the NYT when he or she writes about women's cooperative associations or churches that take over the management of schools in order to keep them open or what it's like to dance under the Congolese stars until all hours of the night.
There are aspects of African states that are beautiful and peaceful and wonderful. There are people who make extraordinary sacrifices on behalf of others. But they don't usually make headlines.


text:
Brookings Farmers Market
Date(s) - 06/08/2019
9:00 am - 12:00 pm
Brookings Farmers Market
Support your local producers at the Brookings Farmers Market! This non-profit organization was established to provide the community with a connection to local farmers and entrepreneurs to sell directly to the consumer. Explore where your food comes from and feel confident you're providing healthy meals for you and your family. Products vary given the season, however, most area producers sell a variety of fruits, vegetables, herbs, meats, jams, honey, bread, coffee, soap, eggs, teas, mixes, and more. Each week offers something new and delicious.
Beginning in June through August, Prairie Soul Yoga hosts FREE yoga starting at 9:30 AM on the greens of the County Courthouse. All ages and skill levels are encouraged to join.
Stay tuned for 2019 festival dates featuring strawberries, tomatoes, and more!
The Brookings Farmers Market is open every Saturday from May through October, from 9 a.m. – 12 p.m.
Please Note: The market will occasionally close early due to weather or vendors selling out of products. Therefore, be sure to arrive early! The Brookings Farmers Market is closed on Hobo Day.


text: Nelson Irrigation dealers around the world rely on professional software to create irrigation designs that help companies prosper. Whether you need a complete system design, project organization, quotes, or sprinkler uniformity analysis, Nelson Irrigation dealers have the digital essentials to help maximize the impact of your sprinkler purchase. Contact your local Nelson Irrigation District Manager for more details.


text:
TOMATOES are the most popular grown vegetable or fruit, whichever you prefer, around the world. The range of varieties is astounding, none more so than those grown by Howard Hollingsworth, a friend from Yass.
Most garden writers provide their infinite wisdom of how to grow tomatoes at the beginning of the season. Just to be different, I bring you the expert knowledge of Howard so that you will have more success next year. Recently, Howard gave us a basket with just a few of the varieties he grows in the open garden, picking them four weeks before Christmas.
His secret is that, in late winter, he grows a green crop of mustard seed. When it's about 30cm high, he digs it into the soil with garden lime. Then he plants the tomatoes with at least four sets of leaves under the soil and mulches with Lucerne hay (for its nitrogen content). The tomatoes are grown under shadecloth. After planting no other fertilisers, chemical or organic sprays are used.
Howard likes to stress the tomatoes by only watering every 7-9 days.
In the basket were Ponderosa Red, Ponderosa Pink, Pederson's Beefsteak, Polish, Hungarian Heart, Tommy Toe, Moneymaker and Elfie.
THANKS to the vagaries of the weather, many autumn flowering shrubs have jumped the gun and are flowering early. One example is Lagerstroemia indica or crepe myrtle and it is timely to visit your local garden centre to see the glorious range of colours of this outstanding shrub. Available from dwarf varieties, that can be grown in containers, to 3-4-metre specimens for the larger garden.
THE famous Collector's Plant Fair weekend is more than a month away but, given the popularity of the event, accommodation nearby can be at a premium. This yearly event is held at the Hawkesbury Race Course, Clarendon, near Windsor, on April 12-13. More than 50 specialist growers from all over NSW and Victoria attend with keynote speakers from the UK and the US. More information at collectorsplantfair.com
I LIKE this quotation from the eminent British landscape architect, Russell Page (1906-1985): "When folk visit your garden, remember that one of your aims must be to lift people, if only for a moment, above their daily preoccupations. Even a glimpse of beauty will enable them to make a healing contact with their inner world. Nor must you ascribe such an idea as sentimentality. It is one most valid and justification for gardens and gardeners."
THE demand for sun hats and proper sunglasses has been huge with the recent rolling heatwaves. The place to buy these used to be the now-closed Cancer Council shop at Fairbairn. But don't despair, the Sun Protection Shop at Federation Square, Gold Creek Village, off the Barton Highway, stocks the official Cancer Council range. Call 6230 2887.
• From now until the end of April is bulb planting time.
• Have a look at perennials in your garden. If the dried flowers have a full head of seeds, sprinkle them around in bare spots. Then the perennials can be dug and divided to further fill bare spots.
• Sow sweet peas against a wire or lattice frame for support.
• Don't be misled, the recent rain has barely laid the dust and watering should continue as normal. Plants growing close to the house or under the eaves will have received no rain, so do not neglect these areas.
• Keep the fork out of garden beds if you have drip irrigation installed!
Win a book
GIVEN the interest in last week's subject of cacti and succulents, there's an excellent book on the subject called "Cacti and Succulents for Cold Climates" by Leo J. Chance (Timber Press, 2012). It lists 274 outstanding species for challenging conditions of extreme heat to cold.
I have a copy of this for one lucky reader. Write your name, suburb and a contact phone number on the back of an envelope and send it to Cedric's Cactus Book, GPO Box 2448, Canberra 2601 by Friday, March 14. The winner will be announced in the edition of March 20.


text:
15% Off Road Runner Finally
Quote of the day:
|The Greatest Record on the Books
interview one of our own:
Reebok Sues Nike over Nike Free A judge should toss this lawsuit out the door. The Nike Free was a pretty revolutionary concept if you ask us.
10,000 Expected for Pat Tillman Run
Chasing Kimbia Auction Ends Tomorrow
USATF Passes New Rule Banning Headphones/Music Devices Starting To Be Enforced No more ipods at official USATF road races. Makes sense to us. The Grandma's Marathon races are already preparing for it and saying they will enforce it.
We like it: Christine Ohuruogu's Ban Upheld She never tested positive but she missed several tests and she was rightfully banned. Nothing is more important than making sports drug free and missing tests has to result in a ban. We do think since there is no indication she was on drugs that perhaps the lifetime ban on the Olympics is a bit stiff, but maybe not.
Reebok Sues Nike Over Nike Free Reebok says Nike is violating a patent it has on 'collapsible shoe' technology.
Profile of Portland Pilots Men's XC Coach Rob Conner The Pilots have 4 times been top 12 at NCAAs in XC. Quite a character - a vegan who drives a Harley.
Update on Equity in Athletics Lawsuit Against Department of Education and Potentially JMU Title IX is terrible for men's track and we're glad someone is suing, I mean when is the last time an engineering department's male-female ratio was equal to the student body's as a whole?
American Track Action
Interim Florida Track Coach Steve Lemke's Press Conference He talks about Tom Jones passing away. You can even watch a video of the press conference.
Ethiopian Athletics Federation (EAF) Releases Statement From Kenenisa Bekele Further Explaining Why He Dropped Out of Saturday's World XC
Heard On The Boards:Is Noakes Wrong? All of you wannabe exercise physiologists will love this one as it talks about the central governor model. Is it legitimate science or not?
Kenyans Proud To Be Hosting Event Tergat: "We should all of us be proud of the championships as they are an opportunity to showcase our great country" Ethiopians are happy to be in Africa as well. Bekele: "The fact that I'm here is a demonstration of my respect for the Kenyan people. I'm not here to destroy Kenyans in their backyard."


text:
Les Paul Forum Sponsor/Dealer Classifieds
Exclusively for Sponsor/Dealers! Classified Ads Area for music related business ads only. The Les Paul Forum is not affiliated with any advertisers. The Les Paul Forum is not responsible for any transactions.
Scroll Down And Click On All Of Our Sponsors' Logos For Their Websites!