text:
News editor sets herself on fire in front of Russian government building
Irina Slavina, a Russian news editor died after setting herself on fire in front of an interior ministry office in the city of Nizhniy Novgorod.
"I ask you to blame the Russian Federation for my death," she wrote on Facebook earlier.
Authorities confirmed her body had been found with severe burns.
Slavina said on Thursday police had searched her flat looking for materials related to the pro-democracy group Open Russia. Computers and data were seized.
Footage has emerged apparently showing the moment she set herself on fire on a bench in Gorky Street, where the interior ministry in Nizhny Novgorod is situated.
In the video, a man is seen running to a woman to help extinguish the flames. She repeatedly pushes him back as he tries to use his coat to stop the fire, before she eventually falls to the ground.
Russia's Investigative Committee confirmed that Irina Slavina, who leaves behind a husband and daughter, had died but denied any connection to a search of the journalist's flat.
Irina Slavina was editor-in-chief of the small Koza Press news website. Its motto is "news and analytics" and "no censorship". Its website went down on Friday, as news of her death was confirmed.
She was one of seven people in Nizhny Novgorod whose homes were searched on Thursday, apparently as part of an inquiry into Open Russia.
Last year, she was fined for "disrespecting authorities" in one of her articles.
In a Facebook post on Thursday, she said 12 people had forced their way into her family's flat and seized flash drives, her laptop and her daughter's laptop as well as phones belonging to both her and her husband.
A swathe of tougher media and internet laws have recently come into force in Russia amid concern they may be used by the government to silence its critics.
The Kremlin said at the time the legislation was needed to improve cyber security.
Tags News editor sets herself on fire in front of Russian government building, Russia
← Donald Trump flown to military hospital hours after testing positive for coronavirus → Airbnb to block rentals over Halloween weekend


Identity theft is a common problem today. If someone obtains your social security number or birth certificate, they can open banking and credit card accounts in your name. You can end up in thousands of dollars of debt, with your credit status ruined. Many states are now making it more difficult to obtain a birth certificate to try to help prevent such identity theft.
The person listed on the birth certificate.
Anyone entitled to a copy of the birth certificate due to a court order or an attorney or licensed adoption agency that needs the certificate in order to meet the terms of Section 3140 or 7603 of the Family Code.
Members of law enforcement or a governmental agencies (as provided by law) who needs the certificate for official business reasons.
A child, grandparent, grandchild, brother, sister, spouse, or domestic partner of the person listed on the birth certificate.
An attorney representing the estate of the person listed on the birth certificate.
Anyone appointed by court to act on the behalf of the person listed on the birth certificate.
If you have been given a power of attorney, you will need to provide a copy of that when requesting the certified copy. When requesting a certified copy, you must also submit a notarized Sworn Statement. This Sworn Statement includes your signature where you state that under penalty of perjury that you are authorized to receive this certified California birth certificate.
California birth certificates can also be a certified informational copy. This has the words "Informational, not valid document to establish identity" stamped across it and these California birth certificates cannot be used to establish identity. However, it contains the same information that appears on the certified copy and you are not required to sign a Sworn Statement in order to get it.
If you have additional questions about obtaining California birth certificates, call your local Department of Health Services.


Notes: easy run after 5 days of rest to let my plantar fascia heal up.
AMRAP, minimal rest between exercises, water break after a set.
Notes: first time practicing all these moves. Took my time to learn but will incorporate these in a metcon next time.
Notes: Did it fasted. Pretty awesome experience. Some extra calisthenics thereafter when I passed a playground.
Notes: cycled to and from church.
Notes: first time running to Dreamy Draw Park. Ran fasted and only brought water tho. Started to get hungry after 5 miles. Will bring some bar or gel next time.
4 Sets, AMRAP, rest minimally only at the end of a set.
Notes: Got inspiration from these videos!
Previous Post Oven baked goodness!
Why Choose 'Organic' or 'Spray-Free'?
Supplement Review: Systemic Enzymes - "Garden of Life FYI® Joint & Tissue Food"
Transform your New Tab page with Momentum!


text:
April 24, 2020 /by Dany
https://lifecoachingandtherapy.com/wp-content/uploads/2020/12/logo-purple-horizontal.gif 0 0 Dany https://lifecoachingandtherapy.com/wp-content/uploads/2020/12/logo-purple-horizontal.gif Dany2020-04-24 08:46:212020-04-24 08:46:35female masturbation
Sign Up for Relationship Tips
Alternative Lifestyles: Guide to Non-Traditional Relationship Types January 27, 2023
Treatment for Weak Erection: Get Stiff Fast! January 26, 2023
On the Importance of Communication in Relationships January 23, 2023
How to Stop "Self Sabotaging Behaviors" January 20, 2023
Erection Problems at 30 Causes! The Causes of ED in early 30s January 19, 2023
Body Image (16)
Client Stories (5)
Creating Desire (45)
DEI Coaching (3)
Free eGuides on Relationship and Sex Tips (4)
Improving Orgasm (62)
Intimacy (130)
Kink (22)
LGBTQIA2+ (22)
Life Coaching and Therapy News (21)
Relationship Tips (90)
Sex Positions (10)
Sex Therapist (60)
The Sex Healer (218)
Trauma (52)
Archives Select Month January 2023 (13) December 2022 (15) November 2022 (12) October 2022 (13) September 2022 (11) August 2022 (9) July 2022 (10) June 2022 (12) May 2022 (12) April 2022 (13) March 2022 (12) February 2022 (12) January 2022 (14) December 2021 (14) November 2021 (13) October 2021 (13) September 2021 (13) August 2021 (10) July 2021 (11) June 2021 (12) May 2021 (16) April 2021 (19) March 2021 (16) February 2021 (12) January 2021 (13) December 2020 (15) November 2020 (16) October 2020 (18) September 2020 (16) August 2020 (16) July 2020 (20) June 2020 (17) May 2020 (17) April 2020 (18) March 2020 (18) February 2020 (15) January 2020 (17) December 2019 (12) November 2019 (11) October 2019 (8) September 2019 (9) August 2019 (10) July 2019 (10) June 2019 (8) May 2019 (7) April 2019 (2) March 2019 (7) January 2019 (1) December 2018 (1) August 2018 (1) March 2018 (2) November 2017 (1) October 2017 (1) July 2017 (1) June 2017 (4) May 2017 (3) April 2017 (2) March 2017 (1) February 2017 (1) January 2017 (1) December 2016 (1)

redpajama_set_name: RedPajamaCommonCrawl


text:
News • July 1, 2017
Tigers Seek Inspiration In Attack
Balestier Khalsa vs Home United
(3 July, Monday, 7.30pm, Toa Payoh Stadium)
Written by: Phoon Jia Hui
Coming off a goalless draw against the Garena Young Lions, Balestier Khalsa will be keen to build on that when they host Home United in the Great Eastern-Hyundai S.League at Toa Payoh Stadium on Monday night.
The result against the developmental side ended a run of four straight defeats in all competitions where they also crashed out of the RHB Singapore Cup to Cambodian side Nagaworld FC.
However, Balestier captain Zaiful Nizam believes it is a matter of time the 2014 Singapore Cup champions turn the corner and start picking up the points again.
"If you look at most of the games we've played so far this season, we have lost by not more than two goals," he said.
"This shows that we have been playing well and that we can match our opponents. However, we lack the striker upfront to finish off the chances we created but we have been working hard in training to make things right again.
"It's not going to be easy, but I believe we can do it as long as we believe in ourselves and keep going."
Having played 12 games in the S.League so far, Balestier currently lie seventh with seven points but Zaiful is confident of catching up with those teams above them in the standings.
"We can actually do better to be honest," said the 30-year-old.
"We are eight and nine points behind Geylang International and Hougang United respectively but if we can pick up some points along the way until now till the end of the season, it's still possible to better our eighth-placed finish from last season."
As one of the more senior players in the team, the Singapore international is keen to utilise his experience to guide his younger teammates when they step out on the pitch.
"We have a rather young but talented squad this season," he noted.
"But there are experienced heads like myself, Raihan Rahman and Shah Hirul who are around to guide them and provide the motivation they need. I can see that they are improving which is good to see."
Meanwhile, Home saw their four-game winning run in all competitions come to an end after they fell 3-2 to Hougang United at Jalan Besar Stadium on Friday night
Head coach Aidil Sharin is hence refusing to take Balestier lightly as they look for a positive result to make up for lost points and keep themselves within touching distance of leaders Albirex Niigata (S).
"It's not going to be easy against Balestier especially when we are playing away (from home)," he said.
"It will be our second game in the space of four days and recovery will be the key focus for the team at the moment.
"We will do our best to get the three points to stay close to Albirex at the top."
Balestier midfielder Tajeli Salamat will miss out after picking up an indirect red card against Young Lions, while Home will not have any suspension woes to contend with although goalkeeper and captain Hassan Sunny remains a long-term absentee.
Suspension: Tajeli Salamat (Balestier Khalsa)
Balestier Khalsa – LLLLD
22/06/17 Garena Young Lions 0-0 Balestier Khalsa
17/06/17 Tampines Rovers 3-1 Balestier Khalsa
01/06/17 Balestier Khalsa 3-4 Nagaworld FC (CAM) (RHB Singapore Cup)
26/05/17 Balestier Khalsa 0-1 Geylang International
19/05/17 Warriors FC 1-0 Balestier Khalsa
Home United – WWWWLÂ
30/06/17 Home United 2-3 Hougang United
23/06/17 Albirex Niigata (S) 0-2 Home United
30/05/17 Home United 3-2 Global Cebu FC (AFC Cup)
25/05/17 Home United 9-3 Brunei DPMM
21/05/17 Garena Young Lions 1-2 Home United
Head to Head (S.League)
02/05/17 Home United 1-0 Balestier Khalsa
15/10/16 Balestier Khalsa 0-5 Home United


text:
Stuart K. Spencer (born 20 February 1927) is an American political consultant. As co-founder of Spencer-Roberts, he and his firm have managed over 400 Republican political campaigns.

Stuart Spencer served in the United States Navy from 1945 to 1946, and then graduated from the East Los Angeles Junior College with an AA, and from California State University, Los Angeles, with a BA degree in Sociology in 1951.

Spencer-Roberts & Associates, Inc., was established in California in 1961 with Bill Roberts. They were among the first professional campaign managers.  In 1962 he managed Tom Kuchel's campaign for United States Senate in California.  After that, he managed Nelson Rockefeller's presidential campaign of 1964, and Don Riegle's run for Congress, Michigan, in 1966.

He ran Ronald Reagan's gubernatorial campaign in California in 1966. That year, Reagan told Spencer that "Politics is just like show business. You have a hell of an opening, coast for a while, and then have a hell of a close." He also ran Reagan's gubernatorial campaign in 1970, and his presidential campaigns in 1980 and 1984.

Stuart Spencer became the sole owner of Spencer-Roberts in 1974. In 1976 he served as Deputy Chairman for Political Organization in Gerald Ford's presidential re-election campaign. When he served as Reagan's campaign manager in 1980, he suggested that he choose George H. W. Bush as his running mate, but later recounted that Reagan wasn't keen to the idea, apparently because Reagan didn't like Bush. "There was no way he was going to pick Bush," said Spencer. "It was chemistry."

In 1985, his firm allegedly received over $350,000 to run the Panamanian presidential campaign of Eric Delvalle,
and in 1988 he was assigned to improve Dan Quayle's image. In October of that year he remarked on the difficulty of the task, saying "First we had to shut that John Birch father of his up, and then the National Guard thing hit."

Karen Spencer joined Spencer-Roberts in 1989 and expanded the firm's roles into public policy, avocation, and political strategic planning. She registered as a California state lobbyist and as a federal lobbyist in Washington, DC.

Stuart Spencer has had a long friendship with Dick Cheney, having worked with him as far back as the Ford administration. In 1993, he speculated that Cheney would seek the presidency in 1996.  He told "Human Events" magazine, "Look, I'm pro-choice and Dick is pro-life but I'm for him if he runs. He's like a brother to me."

Spencer voted for Democrat Joe Biden over Republican incumbent Donald Trump in the 2020 election, the first Democrat he supported since Harry Truman in the 1948 election.

References

External links

Los Angeles Times profile of Stuart Spencer and his role in the 2020 elections.

1927 births
Living people
American political consultants
California Republicans
California State University, Los Angeles alumni
United States Navy sailors

redpajama_set_name: RedPajamaWikipedia


Apparently, public resentment toward wired mice or other old and awkward controllers is quite intense. As if Bluetooth-enabled mice were not enough, software giant, Microsoft, introduced the Kinect. Leap Motion came in last year with its own solution called Leap Sensor. And just a few days ago, a new Kickstarter campaign was launched, touting a tiny wearable mouse called Mycestro. Today, Thalmic Labs officially tapped into the competition with its muscle-sensor armband called Myo.
Basically, it's a modified version of any gesture-based controller. It has the capability of detecting any notable movement made by your muscle. That movement will be translated into a digital command that will enable you to navigate on your digital devices. In other words, it can understand not only your waving hand but also your snapping fingers. Check out the unofficial demo video below.
Powering Myo are a set of rechargeable batteries and an ARM processor. Connection is established via Bluetooth and it is expected to not only be compatible with Windows PC and Mac but also any mobile devices as well as game consoles. Shipment will not start before we hit the end of this year but you can preorder it for $149.
Further details about Myo are still covered with the company's silence but even at this stage we can tell that it's actually pretty nice. Still, I wouldn't expect it to sell like a hot cake unless the developer team doesn't mind pushing their back encouraging app and software developers to make apps compatible with it.


text:
Abortion Rights are Human Rights: Women's March, Boston
Legendary photographer Mick Rock passes away at age...
"Issue 02" by Bottega Veneta OUT NOW
"On the phone with Britney Spears" by Yan...
Abel Ferrara reads Gabriele Tinti's poems at the...
Designer and Art Director Natacha Ramsay-Levi has just...
An old map of New York at The City Reliquary Museum in Brooklyn, New York. Photo Caroline Gaimari
Cushnie and Ochs S/S 2010 at the Chelsea Art Museum, New York….
Pamela Love at her jewelry presentation F/W 2012, New York City. Photo…
A performance by New York artist Kalup Linzy at the Tim Hamilton…
Peaches Geldof and Chrissie Miller at the New York New York party…
Richard Kern at the opening of his show Photos 1980 – 1999…
Back in NYC tonight, Caroline Gaimari in Purple New York. Photo Olivier…
Dree Hemingway and Mel Ottenberg at Lit Lounge, New York. Photo Caroline…
United Bamboo S/S 2010 at the Altman Building, New York. This was…
Brice Marden, Rene Ricard and Waris Ahluwalia at the opening of Rene's…


text:
What is What If?
Joining the SocietyShopOur Journal
What if we invited you to join us on this journey to learn, grow and thrive? To create a community that can spark a social movement of positive change and connection through food? Learn more about what joining the society today can offer you!
All hand picked by us because of the quality of their products, their beliefs and practices. All our suppliers are based within NSW, most of them being based right here in the Southern Highlands. We are not only committed to serving high quality, sustainability sourced products but also in supporting our local farmers and reducing our transportation kilometres in the process.
Carrington Meats is a farm to fork offering. Together Robert and Jessica Bell make Carrington Meats, a hormone free, pasture raised, locally produced and affordable product. The couple's passion for Agriculture led to them both studying it in NSW. Upon return to the highlands it was then that they became aware of the limited access families had to locally raised beef.
Little Big Dairy Co. Coming from a long and proud line of Dairy Farmers (over 100 years long!). Little Big Dairy have worked hard to sustainably produce the best milk to purchase. They started with the idea to deliver the 'best tasting, single source milk' to as many people as possible. They have a herd of 800 Holsteins, born and raised on their farm.
Our veg comes from various local supplies. With our founder's passion being to grow what she cooks, this would only mean we have our very own hand built gardens in Fitzroy Falls. We also source our veg from Duck Foot Farm, organically grown vegetables using the no dig method! Along with Moonacres and Mothertree Farm.
Established in 2011, Double Roasters started roasting ethically sourced 'green coffee' in Marrickville. Training baristas along the way they have developed a brand that shares knowledge and serves nothing but quality beans to their communities. Double Roasters practice 'origin to cup' and have an environmental mission to ensure consistency in their quality coffee as well as helping sustain people, communities and our planet.
Kangaroo Valley Pastured raised eggs. (Better than free range). Their eggs are collected and processed onsite everyday. They reuse and recycle all trays and milk crates, this helps them minimise waste. All their eggs leave the farm within 2-4 days of being laid, this will make them the freshest eggs available on the market. In a few words, that's why we love these guys!
Wholegrain Milling Co. started over 40 years ago at Wendy and Harry Neale's families kitchen table. Now led by their son Craig Neale and his family, they work with Australia's best bakers and farmers to sustainably grow their organic and sustainable grains.
Redleaf Farm is a family run farm who's beliefs and passions are just like our own. Passionate about ethically raising their animals, educating others about food and sustainable agriculture. Home to heritage breed Saddleback Pigs, Border Leicester X Merino sheep.
Hills Family Farmers, a family of Potato farmers based right here in the highlands. Established in 1904. Everything from planting, maintaining, picking, sorting and packing is done within the family on the farm in Robertson.
What if we work together to inspire, educate and grow our society through food and sustainability to bring us all back to where we need to be - working with nature, not against it? If we're not contributing to the solution, we're part of the problem.
Day in the life of
The What If Society is an assembly of passionate like-minded chefs, and creatives in the Southern Highlands of NSW who set out to form a food-focused cooperative of professionals, local producers and enthusiasts working together to educate, inspire and grow in our shared passion for food, sustainability and the natural environment. Come and meet the team!
A huge part of The What If Society is education. We want to share as much knowledge as we can with our community and learn from each other whilst doing so. Our masterclasses are designed to be an intimate, hands-on experience. We offer a range of different masterclasses throughout the year. COMING SOON!
Join our community by subscribing to What If Society. Choose between the Basic membership - 10% off all orders in our pantry, exclusive cooking videos and our chefs' recipe cards direct to your inbox - or a more personalised Premium membership curated just for you. Both subscriptions offer excellent value and exclusive rates to our product larder and range of services. We can't wait to meet you!
We have so much to tell you and many, many plans for the future. So be sure to stay in the loop with our regular What If journal entries. We'll be showcasing loads of hidden gems in and around the Southern Highlands, introducing you to our team of chefs, growers and producers all experts in their acquired fields as well as providing you with plenty of tips and tricks on composting and the sustainable way of living.
enquiries@thewhatifsociety.com
The What If Studio
55a Throsby Street
Moss Vale NSW 2577


text:
Famous Landmarks
7 Gas, Food and Lodging Landmarks
by Eric Peterson
START COUNTDOWNNEXT
Start the Countdown
Often a gas station, motel, or restaurant uses a huge statue or other gimmick to lure customers.
Publications International, Ltd.
The triumvirate of road-trip necessities: gas, food, and lodging. All three are typically readily available along the American roadside, which makes for some heated competition among the sellers. And when it comes to the intersection of commerce and the road trip, kitsch sells.
Therefore, many roadside merchants have employed a strategy that mixes equal parts P. T. Barnum and I. M. Pei. They saw their gas station, diner, or motel as a blank canvas that could be artfully decorated as a means to higher profits.
They crafted big emblems of their trade -- be it a donut or a muffler -- and bolted them to the roof. They built structures that were so unique in their design they were sure to demand a driver's stare. But some of the cutting-edge features they found so eye-catching at first have not aged well and today come off as pure kitsch.
The whole phenomenon of these roadside landmarks can be boiled down to a hypothetical scenario along these lines: Say you are driving through the middle of nowhere and you notice that your gas gauge is a hairsbreadth from 'E.' On one side of the road is a typical service station, standard issue in every way. Across the street stands the competition, a station identical to the first except for the fact it's capped by a 20-foot-long wrench. From which are you going to buy gas?
For many, wherever the gas is cheaper. But if a gallon costs the same at both establishments, the one with the giant tool on top is the natural choice, simply because it has a giant tool on top.
Some motels and restaurants conceal their quirkiest details within a nondescript exterior; you might find a prehistoric cave dweller-theme suite in a motel that looks completely stereotypical from the street.
But if the proprietors don't manage to communicate at least a hint of the place's wacky inner-child on the surface, then they're not getting their story across to the passing carloads, at least not loudly enough.
Why? It's simply because these places are the most blatantly commercial examples of roadside Americana. They exist to sell gas, motel rooms, and combination plates, and the atmosphere is a mere by-product.
Their origins are rarely mysterious, and their message is clear: Eat here. Sleep here. Fill up here. This is the place. Stop and spend money. When it comes to advertising, you've got to be obvious, and you've got to be direct. So why not use a massive statue or exceedingly unusual architecture?
But chain motels, chain restaurants, and chain gas stations dominate the modern American roadside, and modern corporate honchos don't put much stock in roadside kitsch.
As a result, when chain properties put the squeeze on their independent and older competitors, they put the squeeze on kitsch. This trend has put roadside landmarks that double as businesses on the endangered list.
So, while we can, let's enjoy these landmarks to their fullest. We'll begin with the Longhorn Grill on the next page.
The Taj Mahal Is Turning Green: The Struggle to Preserve Priceless Monuments
5 New UNESCO World Heritage Sites That Exemplify the List
How the Parthenon Came to Live in Nashville
Why the Taj Mahal Is Inspiring Protests and Controversy in India
What Time Is It? Time for the World's Most Accurate Clock!


text:
01. Ms. John Soda - No. One
02. Ms. John Soda - Sometimes Stop, Sometimes Go
03. Ms. John Soda - I & # 8217
04. Ms. John Soda - If Someone Would Know
05. Ms. John Soda - I Think It Could Work, Marilyn
While Talking
MORR MUSIC
MORR 040CD MORR 040CD
Ms. John Soda are Stefanie Böhm (Couch) and Micha Acher (The Notwist, Tied & Tickled Trio). While Talking is both the study and result of constant exchange between human beings and it deals with communication in numerous ways: conversations that work and sometimes don't, contradictions, misunderstandings and the incapacity to make oneself understood as well as to fully understand someone else. The opener presents itself almost defiantly. Compared to the debut, the song's calm sections appear more epic, whereas the expressive elements seem to be even more "in your face." The spectrum of Stefanie Böhm's and Micha Acher's musical influences is more varied than before. They use anything ranging from distorted punk bass to psychedelic twang sounds. "If Someone Would Know," for example, is reminiscent of cruising through a desert by night just like in a David Lynch film. "I Think It Could Work, Marilyn" reanimates Marilyn Monroe and Elvis taking a walk up in the mountains. Although Ms. John Soda's expression has become more varied, Stefanie Böhm's charismatic and beguiling voice remains the central element in all the songs. Their ability to transform the entire range of human emotions into musical expression is breathtaking.
Other releases on MORR MUSIC
Other releases by MS. JOHN SODA


text:
Aunty closes the ratings gap
Seven down, Nine eases, Ten gains but the ABC is the winner in teleland's viewing changes, as Terry Television explains.
Seven down, Nine eases, Ten gains but the ABC is the winner in teleland's viewing changes, as Terry Television explains.
This past week will mark an important event in Australian television. For the first time since Oztam ratings started in 2001, the Ten Network moved move into second place, after Nine, and past Seven, as the second most watched TV network in the country.
As of the end of viewing at 23.59 on Wednesday night, Ten had moved past Seven. Not by much, only three thousand or so people, but i'ts come as other changes in viewing trends continue to emerge in the Australian television audience.
Since 2001, both the Ten Network and ABC have added viewers, while Nine has lost some. The big loser has been the Seven Network. The big winner has been the ABC which has experienced a 20% plus jump in the average number of people watching its programs since the start of 2001.
And other figures show that as 2004 has gone on, the Nine Network in particular is losing viewers and market share, so too Seven. While the ABC and Ten are adding eyeballs. In fact Nine's losses are accelerating this year as its news and current affairs battle and its weakening position in the vital Sydney market take their toll.
But the big picture, from 2001 to 2004 shows that in overall numbers from Oztam (Total People in TV speak), the Seven network's 'total audience' has dropped from an average of 1.148 million in 2001 to just over 908,000 so far this year. That's a sharp drop of 20% in round terms, although with the Olympics in the offing, that number will kick upwards.
The Nine Network has seen its audience drop in the five capital cities from 1.195 million (not that much in front of Seven) to only 1.169 million, down a small 26,000 people, making Seven the big loser.
More importantly, the people deserting Seven haven't fled to Nine. The ABC and the Ten Network have been the big winners. The national broadcaster has seen its average audience jump by around 124,000 people, or 23% to 656,421 people. Ten has seen is average audience rise by just over 10% from 832,352 to 907,266, just behind Seven.
And this last week saw Ten's average audience rise to 910,902 people, while Seven's eased a touch to 907,413.
So far as the commercial networks are concerned they wouldn't be all that fussed about the ABC picking up viewers. Ten picking up more viewers however won't thrill Nine or Seven.The Packer network wouldn't be too upset by what it would see as a small but manageable loss of eyeballs, while Seven would shrug its shoulders, say thank god Ten didn't get them and plough on.
Seven makes great play for example of its improvement performance in the 25-54 and 16-39 demographics, the ones prized by advertisers for the 'younger viewer'. But then Nine makes similar claims and Ten says 'we still are number one.'
More worrying for Nine though is that Seven is making a habit of winning the 5.30pm to 7.30 pm slots in Sydney and nationally more weeks than not in the last three months, only to fall away because of poor mid-to-late evening shows (except for Blue Heelers and All Saints).
That is the toughest battleground in television this year and the bitterest, and Seven is winning and slowly improving its viewer numbers.
Nine is losing viewers and losing viewers badly in Sydney.
For years Nine executives boasted that more Australians got their news and current affairs from Nine than any other broadcaster. A line pinched from the ABC (commercial) Network in the United States.
That is no longer seen on Nine. Those days of regarding ABC news and current affairs viewers and those watching Seven and Ten's news and more limited current affairs offerings, as fodder for A Current Affair, 60 Minutes and the National Nine News, are well gone at Willoughby. It's become a battle to keep the ones they have.
The broad sweep of those average figures shows that in Sydney, for example, Seven lost 51,000 people out of the 239,000 shed in the past three and a bit years. By contrast Nine lost almost 20,000 viewers in Sydney of the total loss of 26,000. That is not a good situation. And it's one the Network conveniently ignores in its jibes at Seven and its sharp loss of viewers.
If you then look at the progressive numbers for the first 30 weeks of this year against 2003, you find that Nine's audience has slipped by only half a per cent nationally and in Sydney. Seven's is down almost one per cent and 1.7% nationally.
In contrast Ten has seen its share rise by 0.9% and the bigger winner has been the ABC, up 1.6%, underlining what the national broadcaster has been known to many people as Anything But Commercial.
But that clouds the reality of Nine's problems THIS YEAR. They are made clearer when you look at analysis they issue every week in their summary of the previous week's numbers. Nine's five capital total people share in week 30 of the ratings (the week ending July 24 was 29.1%, down a big 2.0% from the 31.1% in the same week (week 30 of ratings) 2003.
And in Sydney, the fall has been from 30.9% last year to a 28.2% share, a drop of an even sharper 2.7% (second only to a very sharp 4.1% fall in Perth). The Sydney drop is a mark of the damage done to Nine this past year by the management policies of John Alexander, Kerry Packer and to a lesser extent, the departed Jim Rudder and newish CEO, David Gyngell, especially in the 5.30-7.30 pm slots where Seven has been winning.
If you look at other cities, apart from Perth, there were much smaller falls in Melbourne, Brisbane and Adelaide and those have been helping Nine keep its head in front.
On the same basis last year Seven share in week 30 nationally was 25.3%, this year its down to 22.8%. OUCH! Not good news for David Leckie. Ten's share has jumped from 23.8% to 26.2% in week 30 of 2004, while the ABC has risen from 15.2% to 17.6%. A great performance.
So Nine still winning, Seven losing ground, Ten gaining and the ABC chortling. (Officially it doesn't join the commercials in crunching its ratings numbers, which is a pity given the great successes this year of a variety of programs.)
But you have Nine shedding people in the 5.30-7.30pm slots to Seven, and Seven shedding people in the mid-evening and late night slots to Nine, Ten and the ABC.
When the market leader loses viewers like Nine has this year it's a bigger event than Seven shedding people, Ten gaining and the ABC performing very well.
Nine's losses open opens up possibilities to Ten, and even Seven, especially if the latter can keep its news and current affairs going well.
But its biggest problem is the almost desert-like look of its mid-to-late evening programming where there's only a couple of areas where still-loyal viewers still drop in. But they are doing that in fewer numbers.
A lot is being hoped for from the Olympics and the post Olympics push. Maybe too much!


text:
//
//  W A R N I N G
//  -------------
//
// This file is not part of the Qt API.  It exists for the convenience
// of other Qt classes.  This header file may change from version to
// version without notice, or even be removed.
//
// We mean it.
//

#include <QtCore/qendian.h>
#include <QtCore/qtimer.h>
#include <QtCore/qdebug.h>

#include <QtMultimedia/qaudioinput.h>

#include "qaudio_mac_p.h"
#include "qaudioinput_mac_p.h"
#include "qaudiodeviceinfo_mac_p.h"

QT_BEGIN_NAMESPACE

namespace QtMultimediaInternal
{

static const int default_buffer_size = 4 * 1024;

class QAudioBufferList
{
public:
    QAudioBufferList(AudioStreamBasicDescription const& streamFormat):
        owner(false),
        sf(streamFormat)
    {
        const bool isInterleaved = (sf.mFormatFlags & kAudioFormatFlagIsNonInterleaved) == 0;
        const int numberOfBuffers = isInterleaved ? 1 : sf.mChannelsPerFrame;

        dataSize = 0;

        bfs = reinterpret_cast<AudioBufferList*>(qMalloc(sizeof(AudioBufferList) +
                                                                (sizeof(AudioBuffer) * numberOfBuffers)));

        bfs->mNumberBuffers = numberOfBuffers;
        for (int i = 0; i < numberOfBuffers; ++i) {
            bfs->mBuffers[i].mNumberChannels = isInterleaved ? numberOfBuffers : 1;
            bfs->mBuffers[i].mDataByteSize = 0;
            bfs->mBuffers[i].mData = 0;
        }
    }

    QAudioBufferList(AudioStreamBasicDescription const& streamFormat, char* buffer, int bufferSize):
        owner(false),
        sf(streamFormat),
        bfs(0)
    {
        dataSize = bufferSize;

        bfs = reinterpret_cast<AudioBufferList*>(qMalloc(sizeof(AudioBufferList) + sizeof(AudioBuffer)));

        bfs->mNumberBuffers = 1;
        bfs->mBuffers[0].mNumberChannels = 1;
        bfs->mBuffers[0].mDataByteSize = dataSize;
        bfs->mBuffers[0].mData = buffer;
    }

    QAudioBufferList(AudioStreamBasicDescription const& streamFormat, int framesToBuffer):
        owner(true),
        sf(streamFormat),
        bfs(0)
    {
        const bool isInterleaved = (sf.mFormatFlags & kAudioFormatFlagIsNonInterleaved) == 0;
        const int numberOfBuffers = isInterleaved ? 1 : sf.mChannelsPerFrame;

        dataSize = framesToBuffer * sf.mBytesPerFrame;

        bfs = reinterpret_cast<AudioBufferList*>(qMalloc(sizeof(AudioBufferList) +
                                                                (sizeof(AudioBuffer) * numberOfBuffers)));
        bfs->mNumberBuffers = numberOfBuffers;
        for (int i = 0; i < numberOfBuffers; ++i) {
            bfs->mBuffers[i].mNumberChannels = isInterleaved ? numberOfBuffers : 1;
            bfs->mBuffers[i].mDataByteSize = dataSize;
            bfs->mBuffers[i].mData = qMalloc(dataSize);
        }
    }

    ~QAudioBufferList()
    {
        if (owner) {
            for (UInt32 i = 0; i < bfs->mNumberBuffers; ++i)
                qFree(bfs->mBuffers[i].mData);
        }

        qFree(bfs);
    }

    AudioBufferList* audioBufferList() const
    {
        return bfs;
    }

    char* data(int buffer = 0) const
    {
        return static_cast<char*>(bfs->mBuffers[buffer].mData);
    }

    qint64 bufferSize(int buffer = 0) const
    {
        return bfs->mBuffers[buffer].mDataByteSize;
    }

    int frameCount(int buffer = 0) const
    {
        return bfs->mBuffers[buffer].mDataByteSize / sf.mBytesPerFrame;
    }

    int packetCount(int buffer = 0) const
    {
        return bfs->mBuffers[buffer].mDataByteSize / sf.mBytesPerPacket;
    }

    int packetSize() const
    {
        return sf.mBytesPerPacket;
    }

    void reset()
    {
        for (UInt32 i = 0; i < bfs->mNumberBuffers; ++i) {
            bfs->mBuffers[i].mDataByteSize = dataSize;
            bfs->mBuffers[i].mData = 0;
        }
    }

private:
    bool    owner;
    int     dataSize;
    AudioStreamBasicDescription sf;
    AudioBufferList* bfs;
};

class QAudioPacketFeeder
{
public:
    QAudioPacketFeeder(QAudioBufferList* abl):
        audioBufferList(abl)
    {
        totalPackets = audioBufferList->packetCount();
        position = 0;
    }

    bool feed(AudioBufferList& dst, UInt32& packetCount)
    {
        if (position == totalPackets) {
            dst.mBuffers[0].mDataByteSize = 0;
            packetCount = 0;
            return false;
        }

        if (totalPackets - position < packetCount)
            packetCount = totalPackets - position;

        dst.mBuffers[0].mDataByteSize = packetCount * audioBufferList->packetSize();
        dst.mBuffers[0].mData = audioBufferList->data() + (position * audioBufferList->packetSize());

        position += packetCount;

        return true;
    }

    bool empty() const
    {
        return position == totalPackets;
    }

private:
    UInt32 totalPackets;
    UInt32 position;
    QAudioBufferList*   audioBufferList;
};

class QAudioInputBuffer : public QObject
{
    Q_OBJECT

public:
    QAudioInputBuffer(int bufferSize,
                        int maxPeriodSize,
                        AudioStreamBasicDescription const& inputFormat,
                        AudioStreamBasicDescription const& outputFormat,
                        QObject* parent):
        QObject(parent),
        m_deviceError(false),
        m_audioConverter(0),
        m_inputFormat(inputFormat),
        m_outputFormat(outputFormat)
    {
        m_maxPeriodSize = maxPeriodSize;
        m_periodTime = m_maxPeriodSize / m_outputFormat.mBytesPerFrame * 1000 / m_outputFormat.mSampleRate;
        m_buffer = new QAudioRingBuffer(bufferSize + (bufferSize % maxPeriodSize == 0 ? 0 : maxPeriodSize - (bufferSize % maxPeriodSize)));
        m_inputBufferList = new QAudioBufferList(m_inputFormat);

        m_flushTimer = new QTimer(this);
        connect(m_flushTimer, SIGNAL(timeout()), SLOT(flushBuffer()));

        if (toQAudioFormat(inputFormat) != toQAudioFormat(outputFormat)) {
            if (AudioConverterNew(&m_inputFormat, &m_outputFormat, &m_audioConverter) != noErr) {
                qWarning() << "QAudioInput: Unable to create an Audio Converter";
                m_audioConverter = 0;
            }
        }
    }

    ~QAudioInputBuffer()
    {
        delete m_buffer;
    }

    qint64 renderFromDevice(AudioUnit audioUnit,
                             AudioUnitRenderActionFlags* ioActionFlags,
                             const AudioTimeStamp* inTimeStamp,
                             UInt32 inBusNumber,
                             UInt32 inNumberFrames)
    {
        const bool  pullMode = m_device == 0;

        OSStatus    err;
        qint64      framesRendered = 0;

        m_inputBufferList->reset();
        err = AudioUnitRender(audioUnit,
                                ioActionFlags,
                                inTimeStamp,
                                inBusNumber,
                                inNumberFrames,
                                m_inputBufferList->audioBufferList());

        if (m_audioConverter != 0) {
            QAudioPacketFeeder  feeder(m_inputBufferList);

            int     copied = 0;
            const int available = m_buffer->free();

            while (err == noErr && !feeder.empty()) {
                QAudioRingBuffer::Region region = m_buffer->acquireWriteRegion(available);

                if (region.second == 0)
                    break;

                AudioBufferList     output;
                output.mNumberBuffers = 1;
                output.mBuffers[0].mNumberChannels = 1;
                output.mBuffers[0].mDataByteSize = region.second;
                output.mBuffers[0].mData = region.first;

                UInt32  packetSize = region.second / m_outputFormat.mBytesPerPacket;
                err = AudioConverterFillComplexBuffer(m_audioConverter,
                                                      converterCallback,
                                                      &feeder,
                                                      &packetSize,
                                                      &output,
                                                      0);
                region.second = output.mBuffers[0].mDataByteSize;
                copied += region.second;

                m_buffer->releaseWriteRegion(region);
            }

            framesRendered += copied / m_outputFormat.mBytesPerFrame;
        }
        else {
            const int available = m_inputBufferList->bufferSize();
            bool    wecan = true;
            int     copied = 0;

            while (wecan && copied < available) {
                QAudioRingBuffer::Region region = m_buffer->acquireWriteRegion(available - copied);

                if (region.second > 0) {
                    memcpy(region.first, m_inputBufferList->data() + copied, region.second);
                    copied += region.second;
                }
                else
                    wecan = false;

                m_buffer->releaseWriteRegion(region);
            }

            framesRendered = copied / m_outputFormat.mBytesPerFrame;
        }

        if (pullMode && framesRendered > 0)
            emit readyRead();

        return framesRendered;
    }

    qint64 readBytes(char* data, qint64 len)
    {
        bool    wecan = true;
        qint64  bytesCopied = 0;

        len -= len % m_maxPeriodSize;
        while (wecan && bytesCopied < len) {
            QAudioRingBuffer::Region region = m_buffer->acquireReadRegion(len - bytesCopied);

            if (region.second > 0) {
                memcpy(data + bytesCopied, region.first, region.second);
                bytesCopied += region.second;
            }
            else
                wecan = false;

            m_buffer->releaseReadRegion(region);
        }

        return bytesCopied;
    }

    void setFlushDevice(QIODevice* device)
    {
        if (m_device != device)
            m_device = device;
    }

    void startFlushTimer()
    {
        if (m_device != 0) {
            m_flushTimer->start((m_buffer->size() - (m_maxPeriodSize * 2)) / m_maxPeriodSize * m_periodTime);
        }
    }

    void stopFlushTimer()
    {
        m_flushTimer->stop();
    }

    void flush(bool all = false)
    {
        if (m_device == 0)
            return;

        const int used = m_buffer->used();
        const int readSize = all ? used : used - (used % m_maxPeriodSize);

        if (readSize > 0) {
            bool    wecan = true;
            int     flushed = 0;

            while (!m_deviceError && wecan && flushed < readSize) {
                QAudioRingBuffer::Region region = m_buffer->acquireReadRegion(readSize - flushed);

                if (region.second > 0) {
                    int bytesWritten = m_device->write(region.first, region.second);
                    if (bytesWritten < 0) {
                        stopFlushTimer();
                        m_deviceError = true;
                    }
                    else {
                        region.second = bytesWritten;
                        flushed += bytesWritten;
                        wecan = bytesWritten != 0;
                    }
                }
                else
                    wecan = false;

                m_buffer->releaseReadRegion(region);
            }
        }
    }

    void reset()
    {
        m_buffer->reset();
        m_deviceError = false;
    }

    int available() const
    {
        return m_buffer->free();
    }

    int used() const
    {
        return m_buffer->used();
    }

signals:
    void readyRead();

private slots:
    void flushBuffer()
    {
        flush();
    }

private:
    bool        m_deviceError;
    int         m_maxPeriodSize;
    int         m_periodTime;
    QIODevice*  m_device;
    QTimer*     m_flushTimer;
    QAudioRingBuffer*   m_buffer;
    QAudioBufferList*   m_inputBufferList;
    AudioConverterRef   m_audioConverter;
    AudioStreamBasicDescription m_inputFormat;
    AudioStreamBasicDescription m_outputFormat;

    const static OSStatus as_empty = 'qtem';

    // Converter callback
    static OSStatus converterCallback(AudioConverterRef inAudioConverter,
                                UInt32* ioNumberDataPackets,
                                AudioBufferList* ioData,
                                AudioStreamPacketDescription** outDataPacketDescription,
                                void* inUserData)
    {
        Q_UNUSED(inAudioConverter);
        Q_UNUSED(outDataPacketDescription);

        QAudioPacketFeeder* feeder = static_cast<QAudioPacketFeeder*>(inUserData);

        if (!feeder->feed(*ioData, *ioNumberDataPackets))
            return as_empty;

        return noErr;
    }
};

class MacInputDevice : public QIODevice
{
    Q_OBJECT

public:
    MacInputDevice(QAudioInputBuffer* audioBuffer, QObject* parent):
        QIODevice(parent),
        m_audioBuffer(audioBuffer)
    {
        open(QIODevice::ReadOnly | QIODevice::Unbuffered);
        connect(m_audioBuffer, SIGNAL(readyRead()), SIGNAL(readyRead()));
    }

    qint64 readData(char* data, qint64 len)
    {
        return m_audioBuffer->readBytes(data, len);
    }

    qint64 writeData(const char* data, qint64 len)
    {
        Q_UNUSED(data);
        Q_UNUSED(len);

        return 0;
    }

    bool isSequential() const
    {
        return true;
    }

private:
    QAudioInputBuffer*   m_audioBuffer;
};

}

QAudioInputPrivate::QAudioInputPrivate(const QByteArray& device, QAudioFormat const& format):
    audioFormat(format)
{
    QDataStream ds(device);
    quint32 did, mode;

    ds >> did >> mode;

    if (QAudio::Mode(mode) == QAudio::AudioOutput)
        errorCode = QAudio::OpenError;
    else {
        audioDeviceInfo = new QAudioDeviceInfoInternal(device, QAudio::AudioInput);
        isOpen = false;
        audioDeviceId = AudioDeviceID(did);
        audioUnit = 0;
        startTime = 0;
        totalFrames = 0;
        audioBuffer = 0;
        internalBufferSize = QtMultimediaInternal::default_buffer_size;
        clockFrequency = AudioGetHostClockFrequency() / 1000;
        errorCode = QAudio::NoError;
        stateCode = QAudio::StoppedState;

        intervalTimer = new QTimer(this);
        intervalTimer->setInterval(1000);
        connect(intervalTimer, SIGNAL(timeout()), SIGNAL(notify()));
    }
}

QAudioInputPrivate::~QAudioInputPrivate()
{
    close();
    delete audioDeviceInfo;
}

bool QAudioInputPrivate::open()
{
    UInt32  size = 0;

    if (isOpen)
        return true;

    ComponentDescription    cd;
    cd.componentType = kAudioUnitType_Output;
    cd.componentSubType = kAudioUnitSubType_HALOutput;
    cd.componentManufacturer = kAudioUnitManufacturer_Apple;
    cd.componentFlags = 0;
    cd.componentFlagsMask = 0;

    // Open
    Component cp = FindNextComponent(NULL, &cd);
    if (cp == 0) {
        qWarning() << "QAudioInput: Failed to find HAL Output component";
        return false;
    }

    if (OpenAComponent(cp, &audioUnit) != noErr) {
        qWarning() << "QAudioInput: Unable to Open Output Component";
        return false;
    }

    // Set mode
    // switch to input mode
    UInt32 enable = 1;
    if (AudioUnitSetProperty(audioUnit,
                               kAudioOutputUnitProperty_EnableIO,
                               kAudioUnitScope_Input,
                               1,
                               &enable,
                               sizeof(enable)) != noErr) {
        qWarning() << "QAudioInput: Unable to switch to input mode (Enable Input)";
        return false;
    }

    enable = 0;
    if (AudioUnitSetProperty(audioUnit,
                            kAudioOutputUnitProperty_EnableIO,
                            kAudioUnitScope_Output,
                            0,
                            &enable,
                            sizeof(enable)) != noErr) {
        qWarning() << "QAudioInput: Unable to switch to input mode (Disable output)";
        return false;
    }

    // register callback
    AURenderCallbackStruct cb;
    cb.inputProc = inputCallback;
    cb.inputProcRefCon = this;

    if (AudioUnitSetProperty(audioUnit,
                               kAudioOutputUnitProperty_SetInputCallback,
                               kAudioUnitScope_Global,
                               0,
                               &cb,
                               sizeof(cb)) != noErr) {
        qWarning() << "QAudioInput: Failed to set AudioUnit callback";
        return false;
    }

    // Set Audio Device
    if (AudioUnitSetProperty(audioUnit,
                                kAudioOutputUnitProperty_CurrentDevice,
                                kAudioUnitScope_Global,
                                0,
                                &audioDeviceId,
                                sizeof(audioDeviceId)) != noErr) {
        qWarning() << "QAudioInput: Unable to use configured device";
        return false;
    }

    // Set format
    // Wanted
    streamFormat = toAudioStreamBasicDescription(audioFormat);

    // Required on unit
    if (audioFormat == audioDeviceInfo->preferredFormat()) {
        deviceFormat = streamFormat;
        AudioUnitSetProperty(audioUnit,
                               kAudioUnitProperty_StreamFormat,
                               kAudioUnitScope_Output,
                               1,
                               &deviceFormat,
                               sizeof(deviceFormat));
    }
    else {
        size = sizeof(deviceFormat);
        if (AudioUnitGetProperty(audioUnit,
                                    kAudioUnitProperty_StreamFormat,
                                    kAudioUnitScope_Input,
                                    1,
                                    &deviceFormat,
                                    &size) != noErr) {
            qWarning() << "QAudioInput: Unable to retrieve device format";
            return false;
        }

        if (AudioUnitSetProperty(audioUnit,
                                   kAudioUnitProperty_StreamFormat,
                                   kAudioUnitScope_Output,
                                   1,
                                   &deviceFormat,
                                   sizeof(deviceFormat)) != noErr) {
            qWarning() << "QAudioInput: Unable to set device format";
            return false;
        }
    }

    // Setup buffers
    UInt32 numberOfFrames;
    size = sizeof(UInt32);
    if (AudioUnitGetProperty(audioUnit,
                                kAudioDevicePropertyBufferFrameSize,
                                kAudioUnitScope_Global,
                                0,
                                &numberOfFrames,
                                &size) != noErr) {
        qWarning() << "QAudioInput: Failed to get audio period size";
        return false;
    }

    // Allocate buffer
    periodSizeBytes = numberOfFrames * streamFormat.mBytesPerFrame;

    if (internalBufferSize < periodSizeBytes * 2)
        internalBufferSize = periodSizeBytes * 2;
    else
        internalBufferSize -= internalBufferSize % streamFormat.mBytesPerFrame;

    audioBuffer = new QtMultimediaInternal::QAudioInputBuffer(internalBufferSize,
                                        periodSizeBytes,
                                        deviceFormat,
                                        streamFormat,
                                        this);

    audioIO = new QtMultimediaInternal::MacInputDevice(audioBuffer, this);

    // Init
    if (AudioUnitInitialize(audioUnit) != noErr) {
        qWarning() << "QAudioInput: Failed to initialize AudioUnit";
        return false;
    }

    isOpen = true;

    return isOpen;
}

void QAudioInputPrivate::close()
{
    if (audioUnit != 0) {
        AudioOutputUnitStop(audioUnit);
        AudioUnitUninitialize(audioUnit);
        CloseComponent(audioUnit);
    }

    delete audioBuffer;
}

QAudioFormat QAudioInputPrivate::format() const
{
    return audioFormat;
}

QIODevice* QAudioInputPrivate::start(QIODevice* device)
{
    QIODevice*  op = device;

    if (!audioDeviceInfo->isFormatSupported(audioFormat) || !open()) {
        stateCode = QAudio::StoppedState;
        errorCode = QAudio::OpenError;
        return audioIO;
    }

    reset();
    audioBuffer->reset();
    audioBuffer->setFlushDevice(op);

    if (op == 0)
        op = audioIO;

    // Start
    startTime = AudioGetCurrentHostTime();
    totalFrames = 0;

    audioThreadStart();

    stateCode = QAudio::ActiveState;
    errorCode = QAudio::NoError;
    emit stateChanged(stateCode);

    return op;
}

void QAudioInputPrivate::stop()
{
    QMutexLocker    lock(&mutex);
    if (stateCode != QAudio::StoppedState) {
        audioThreadStop();
        audioBuffer->flush(true);

        errorCode = QAudio::NoError;
        stateCode = QAudio::StoppedState;
        QMetaObject::invokeMethod(this, "stateChanged", Qt::QueuedConnection, Q_ARG(QAudio::State, stateCode));
    }
}

void QAudioInputPrivate::reset()
{
    QMutexLocker    lock(&mutex);
    if (stateCode != QAudio::StoppedState) {
        audioThreadStop();

        errorCode = QAudio::NoError;
        stateCode = QAudio::StoppedState;
        QMetaObject::invokeMethod(this, "stateChanged", Qt::QueuedConnection, Q_ARG(QAudio::State, stateCode));
    }
}

void QAudioInputPrivate::suspend()
{
    QMutexLocker    lock(&mutex);
    if (stateCode == QAudio::ActiveState || stateCode == QAudio::IdleState) {
        audioThreadStop();

        errorCode = QAudio::NoError;
        stateCode = QAudio::SuspendedState;
        QMetaObject::invokeMethod(this, "stateChanged", Qt::QueuedConnection, Q_ARG(QAudio::State, stateCode));
    }
}

void QAudioInputPrivate::resume()
{
    QMutexLocker    lock(&mutex);
    if (stateCode == QAudio::SuspendedState) {
        audioThreadStart();

        errorCode = QAudio::NoError;
        stateCode = QAudio::ActiveState;
        QMetaObject::invokeMethod(this, "stateChanged", Qt::QueuedConnection, Q_ARG(QAudio::State, stateCode));
    }
}

int QAudioInputPrivate::bytesReady() const
{
    return audioBuffer->used();
}

int QAudioInputPrivate::periodSize() const
{
    return periodSizeBytes;
}

void QAudioInputPrivate::setBufferSize(int bs)
{
    internalBufferSize = bs;
}

int QAudioInputPrivate::bufferSize() const
{
    return internalBufferSize;
}

void QAudioInputPrivate::setNotifyInterval(int milliSeconds)
{
    if (intervalTimer->interval() == milliSeconds)
        return;

    if (milliSeconds <= 0)
        milliSeconds = 0;

    intervalTimer->setInterval(milliSeconds);
}

int QAudioInputPrivate::notifyInterval() const
{
    return intervalTimer->interval();
}

qint64 QAudioInputPrivate::processedUSecs() const
{
    return totalFrames * 1000000 / audioFormat.frequency();
}

qint64 QAudioInputPrivate::elapsedUSecs() const
{
    if (stateCode == QAudio::StoppedState)
        return 0;

    return (AudioGetCurrentHostTime() - startTime) / (clockFrequency / 1000);
}

QAudio::Error QAudioInputPrivate::error() const
{
    return errorCode;
}

QAudio::State QAudioInputPrivate::state() const
{
    return stateCode;
}

void QAudioInputPrivate::audioThreadStop()
{
    stopTimers();
    if (audioThreadState.testAndSetAcquire(Running, Stopped))
        threadFinished.wait(&mutex);
}

void QAudioInputPrivate::audioThreadStart()
{
    startTimers();
    audioThreadState = Running;
    AudioOutputUnitStart(audioUnit);
}

void QAudioInputPrivate::audioDeviceStop()
{
    AudioOutputUnitStop(audioUnit);
    audioThreadState = Stopped;
    threadFinished.wakeOne();
}

void QAudioInputPrivate::audioDeviceFull()
{
    QMutexLocker    lock(&mutex);
    if (stateCode == QAudio::ActiveState) {
        audioDeviceStop();

        errorCode = QAudio::UnderrunError;
        stateCode = QAudio::IdleState;
        QMetaObject::invokeMethod(this, "deviceStopped", Qt::QueuedConnection);
    }
}

void QAudioInputPrivate::audioDeviceError()
{
    QMutexLocker    lock(&mutex);
    if (stateCode == QAudio::ActiveState) {
        audioDeviceStop();

        errorCode = QAudio::IOError;
        stateCode = QAudio::StoppedState;
        QMetaObject::invokeMethod(this, "deviceStopped", Qt::QueuedConnection);
    }
}

void QAudioInputPrivate::startTimers()
{
    audioBuffer->startFlushTimer();
    if (intervalTimer->interval() > 0)
        intervalTimer->start();
}

void QAudioInputPrivate::stopTimers()
{
    audioBuffer->stopFlushTimer();
    intervalTimer->stop();
}

void QAudioInputPrivate::deviceStopped()
{
    stopTimers();
    emit stateChanged(stateCode);
}

// Input callback
OSStatus QAudioInputPrivate::inputCallback(void* inRefCon,
                                AudioUnitRenderActionFlags* ioActionFlags,
                                const AudioTimeStamp* inTimeStamp,
                                UInt32 inBusNumber,
                                UInt32 inNumberFrames,
                                AudioBufferList* ioData)
{
    Q_UNUSED(ioData);

    QAudioInputPrivate* d = static_cast<QAudioInputPrivate*>(inRefCon);

    const int threadState = d->audioThreadState.fetchAndAddAcquire(0);
    if (threadState == Stopped)
        d->audioDeviceStop();
    else {
        qint64      framesWritten;

        framesWritten = d->audioBuffer->renderFromDevice(d->audioUnit,
                                                         ioActionFlags,
                                                         inTimeStamp,
                                                         inBusNumber,
                                                         inNumberFrames);

        if (framesWritten > 0)
            d->totalFrames += framesWritten;
        else if (framesWritten == 0)
            d->audioDeviceFull();
        else if (framesWritten < 0)
            d->audioDeviceError();
    }

    return noErr;
}

QT_END_NAMESPACE

#include "qaudioinput_mac_p.moc"

redpajama_set_name: RedPajamaGithub


text:
Q: setImageResource for Image Button from a class In Android M, I need to set an ImageButton to a specific resource in the drawable folder.
Which will which will work from the MainActivity where the view was declared.
I have a second Activity that needs to call a class with the method
being to select the correct resource using a switch statement.
I cannot get the reference to the ImageButton correctly into the called Class.
I am using a constructor to set the context within the class and have made the ImageButton mRecordImageButton object public, but still have the unresolved reference to object error for mRecordImageButton. (unable to resolve symbol).
Here is the code in the class.
in the MainActivity
public ImageButton mRecordImageButton;

in the ImageButtonProperties.java class file
 package twistlogic.com.miwidget;

    import android.app.Activity;
    import android.content.Context;
    import android.widget.ImageButton;

    public class ImageButtonProperties {
        Context context;

        public ImageButtonProperties() {
                this.context = context;                 // constructor
            }

        public void ImageButtonSym(EnumLists enumList) {

            switch (enumList) {
                case VIDEO_OFF:
                    (ImageButton) ((Activity)context).mRecordImageButton.setImageResource(R.drawable.ic_bluetooth_black_18dp);
                    break;
             default:
            }

        }

    }

Thank for any help.
//////////////////////////////////////////////////////////////////////////////
Thank you for the assistance, I am just learning so your help is appreciated.
The constructor is being called now, when I check with the debugger, but I still have and unresolved reference to the button.
Call to the constructor as you suggested, I have it after setContentView
setContentView(twistlogic.com.miwidget.R.layout.activity_camera2_video_image);
final ImageButtonProperties properties = new ImageButtonProperties((this));
In the main class I have
    private ImageButton mRecordImageButton;
I also tried public, but that also didn't work
I call with:
    properties.ImageButtonSym(AppButtonStates.VIDEO_REC_ON);
the called class is
public class ImageButtonProperties {
    Context context;
public ImageButtonProperties(Context context) {
    this.context = context;          // constructor
}

public void ImageButtonSym(int appButtonStates) {
    switch (appButtonStates) {
        case AppButtonStates.VIDEO_REC_ON:
            (ImageButton) ((Activity)context).mRecordImageButton.setImageResource(twistlogic.com.miwidget.R.mipmap.btn_video_online);
            break;

    }
}

}
I was using as a guide, 'how to change text from another activity', but I still get the mRecordImageButton as an unresolved reference. Maybe I am not understanding the Context object. I thought that if I had the context, that all the objects in the view would be accessible. Is that an error in understanding?
Thank you,

A: Your constructor is missing an argument, it should look this this:
 public ImageButtonProperties(Context context) {
        this.context = context;
    }

and in the Activity call the constructor like this:
ImageButtonProperties properties = new ImageButtonProperties(this);

The way it is just now you're just assigning nothing to nothing. I'd be surprised if lint wasn't giving you a warning about it.

redpajama_set_name: RedPajamaStackExchange


During your first visit to Doctor Haley, you will become familiar with our office, our staff and our methods. We will make a great effort to ensure that you feel comfortable during your visit.
We understand that each patient's treatment is different, and we promise to give you the personal attention you deserve. Your first visit will consist of an examination and discussion of potential treatment options.
Once Dr. Haley establish his findings, he will review his findings with you and recommendations to you. After treatment options have been thoroughly explored, you will receive a detailed treatment plan, which includes all recommended treatments, costs and insurance information.


text:
Juventus deducted 15 points and Paratici banned from Italian football for 30 months
Juventus have been deducted 15 points in the wake of an investigation into the club's past transfer dealings.
The Italian Football Federation (FIGC) confirmed the news on Friday, with ex-Juve director Fabio Paratici – who is now at Tottenham – given a two-and-a-half-year ban from Italian football.
Paratici's ban includes a request for an extension to cover UEFA and FIFA activities, meaning potentially a big knock-on impact for Premier League side Spurs.
Former Juve chairman Andrea Agnelli has also been banned from holding office in Italian football for the next two years.
It has been widely reported the decision is likely to be appealed by Juve.
The Bianconeri had been third in Serie A, but have now dropped to 10th – 12 points off the Champions League places – as a result of the punishment.
Turin Public Prosecutor's Office had been seeking a nine-point deduction following a hearing earlier on Friday.
But the FIGC went with a harsher punishment after Juve were found to have used transfers to artificially boost their balance sheet.
The sanction comes on the back of chairman Agnelli, vice-president Pavel Nedved and the rest of the Bianconeri's board resigning en-masse last year.
That came in the wake of an investigation being launched into financial violations during their time in charge.
A separate ruling made last year acquitted Juve and other clubs of their financial conduct within Serie A, with a case centred on player values in exchanges and transfers.
But football prosecutors reopened the case Juve after seeking new documents collected by public prosecutors in Turin surrounding the club's conduct.
Juve have denied any wrongdoing, while lawyers claimed prosecutors had not brought enough in to reach the adequate threshold for a new ruling.
The 36-time Italian champions are next in action on Sunday at home to Atalanta, in what was set to be a potentially crucial clash in the race for Champions League qualification.
Financial Fair Play
Andrea Agnelli
Tottenham are reportedly investigating a potential move for young Bayer Leverkusen centre-back Piero Hincapie, despite the hefty asking price for the Ecuador international.
Hincapie, 21, is in his second Bundesliga season after arriving from Argentinian side Talleres, and has forced his way into Leverkusen's starting XI, earning 13 starts among his 15 total league appearances this campaign.
He also has 24 senior international caps for Ecuador under his belt, playing every minute of his country's three group stage fixtures at the Qatar World Cup.
Hincapie's emergence has not gone unnoticed, and Leverkusen are said to be informing interested clubs that any sale of their talented youngster will come at a heavy price.
TOP STORY – SPURS KICK THE TYRES ON PRIZED LEVERKUSEN DEFENDER
According to the Sun, Spurs boss Antonio Conte is desperate to add a new central defender before the end of the month, but the club were knocked back by a massive £80million price tag.
The report indicates Hincapie would be in favour of a move to the Premier League, and to Tottenham specifically, but that it would be far more likely to occur at the end of the season.
Interestingly, the Sun believes Leverkusen would be open to accepting as little as £20m if it meant Hincapie could spend the rest of the season on loan with the German side, but with his contract tying him to Leverkusen until 2026, it is hard to believe they would budge so significantly from their lofty valuation.
It also mentions Tottenham's pursuit of Sporting right-back Pedro Porro is on the verge of falling through, but Portuguese publication Record is reporting that a verbal agreement is in place for a £42m (€48m) deal.
– GiveMeSport are reporting Chelsea will make a run at 23-year-old Juventus striker Dusan Vlahovic at the end of the season, while Calciomercato adds Juventus are anticipating the Serbian's departure and will seek to replace him with 25-year-old Atalanta forward Ademola Lookman.
– According to Sport, Barcelona are focusing on 25-year-old Wolves midfielder Ruben Neves as their long-term replacement for Sergio Busquets after failing to land Real Sociedad talent Martin Zubimendi.
– Manchester United believe they are priced out of the Harry Kane sweepstakes, per the Daily Star.
– Mail on Sunday are reporting Arsenal have returned with a second offer for 21-year-old Brighton and Hove Albion midfielder Moises Caicedo, but their £70m bid is still below the £80m demand.
– The Telegraph adds that the outcome of Arsenal's push for Caicedo will not affect their desire to sign West Ham midfielder Declan Rice after the season, and they will try to secure both.


text:
Doll Hearts
by Colleen Clayton
Published: April 24, 2018 by Muse Contemporary
Source: Kindle purchase
Category: YA, Contemporary, Summer, Amusement Parks, Diabetes, Family Drama, Hoarders
Book Description: 17-year-old Julianne Bell's life is caving in on her. Literally. Her mother is a hoarder and shopping addict whose retail drug of choice is collectible dolls. She also dabbles in lesser fixations like snow globes, commemorative plates, kitchen gadgets, and never-to-be-used exercise equipment. Their house is not a home but more a bizarro game of Garage Sale Tetris in which flea market finds, Amazon boxes, and QVC shipments are puzzled together in a labyrinth of consumer excess and looming bankruptcy. It's a situation Julianne has grown adept at hiding. That is, until the day her school cafeteria account slips into the red. Meal-skipping is not an option for someone with Type 1 Diabetes, so when Julianne has a seizure in class, her father claims custody. Living with her dad and annoyingly perfect step-mom is not how Julianne planned to spend her summer, let alone her senior year. Needing fast cash to help her mom avoid foreclosure, Julianne takes a job at an amusement park, and as luck would have it, her former classmate—heartthrob Brandon Wright—also works there. Between sweeping up cigarette butts at the park, racing to solve her mom's personal and financial disasters, a medical condition that needs constant monitoring, and a budding romance, Julianne Bell's messy life just got a whole lot messier.
Set against a summery backdrop of roller coasters, pool parties, and cute boys, DOLL HEARTS explores issues of obsessive-compulsive hoarding, family bonds, and first love.
I loved Colleen Clayton's first book What Happens Next. It is a contemporary gem, and I definitely recommend that you read it if you haven't already. Because of that I was excited to read her new book Doll Hearts. Unfortunately, I have very mixed feelings about this book.
What I liked: The story of Julianne dealing with her mom's hoarding and OCD, as well as her relationship with her dad and Melody, was raw and felt realistic. And I really appreciated how the story ended with all of that. It wasn't perfect, but Julianne grew up a lot and ended up in a good place for herself. I don't know a lot about type 1 diabetes, or how accurate is this portrayal of it, but found that part of the book to be interesting and eye opening. Though I wanted to shake Julianne every time she got mad at her friends for their care and concern. I also liked Julianne's new friendship with Dana and also with Lindsey, and her job at Cedar Point.
What I loathed: However, I hated the romance. It was a complete miss for me, and that pretty much ruined my enjoyment of the story. I didn't like Brandon much throughout the story, and I completely lost all trust in him after that end party. WHAT?! I didn't buy his explanation at all. The whole Adriana situation made me very angry. He shouldn't have been hanging out with Adriana at all after he started dating Julianne. Full stop. For me, there was nothing swoony about this storyline or this guy. You're not going to convince me that Brandon wasn't still playing around, and I hated that in the end he never really realized why Julianne was upset - or apologized. And while Julianne acted tough at first, I can't believe she just fell for his explanation at the end like it was nothing. Yeah right. No thank you, buddy.
I cannot recommend this book, because I hated the romance, and that's a very important factor in my enjoyment of any story. However, I did like Julianne and a lot of the other elements in Doll Hearts, and I'd be interested in another story by this author - assuming the romance was different than this.
Love Triangle Factor: None from Julianne's perspective. There's definitely a reverse love triangle happening from Brandon's perspective though. You're not going to convince me that there isn't.


text:
Will Weissert, Associated Press Will Weissert, Associated Press
https://www.pbs.org/newshour/politics/warren-says-sanders-told-her-a-woman-couldnt-win-presidency
Warren says Sanders told her a woman couldn't win presidency
Politics Jan 14, 2020 7:58 AM EST
WASHINGTON (AP) — Elizabeth Warren said Monday that fellow Democratic presidential candidate Bernie Sanders told her he didn't think a woman could win the White House when they met privately in 2018.
Sanders has denied telling Warren that a woman couldn't win. But the Massachusetts senator said in a statement that during their two-hour meeting to discuss the 2020 election, "among the topics that came up was what would happen if Democrats nominated a female candidate. I thought a woman could win; he disagreed."
The dispute marked an extraordinary turning point in a Democratic primary that, with few exceptions, has been characterized by genial differences over domestic issues such as health care. The feud brewing between Warren and Sanders will likely change the tone of the campaign going into Tuesday's debate and comes less than three weeks before the Iowa caucuses launch the Democratic contest. It also marks a jarring split between the two longtime progressive allies, potentially giving an opening for a more moderate rivals such as former Vice President Joe Biden to attempt unifying the party.
In her statement, Warren said she and Sanders "have far more in common than our differences on punditry."
"I'm in this race to talk about what's broken in this country and how to fix it — and that's what I'm going to continue to do," she said. "I know Bernie is in the race for the same reason. We have been friends and allies in this fight for a long time, and I have no doubt we will continue to work together to defeat Donald Trump and put our government on the side of the people."
CNN first reported Sanders' comment earlier Monday, based on the accounts of anonymous people with knowledge of the meeting. That drew a swift and strong denial from Sanders, a Vermont senator, who said, "It is ludicrous to believe that at the same meeting where Elizabeth Warren told me she was going to run for president, I would tell her that a woman couldn't win."
WATCH: As Booker drops out, Iowa polls show same 4 candidates atop Democratic field
Sanders aides then accused Warren's campaign of leaking what they said was an inaccurate description of what was said during the meeting.
That helped prompt Warren's statement hours later. Jeff Weaver, a senior adviser to Sanders, then seemed to try and defuse the situation, refusing to refute Warren's version and instead saying only on CNN on Monday night that "those conversations can sometimes get misconstrued."
Still, the controversy is likely to revive anxiety among Democrats about whether — nearly four years after Hillary Clinton lost her White House bid — voters are willing to support another woman running for president. Such questions have dogged Warren and other female candidates throughout the 2020 campaign.
Hawaii Rep. Tulsi Gabbard tweeted Monday night that she had also met with Sanders before announcing her presidential campaign. "In that meeting, he showed me the greatest respect and encouragement, just as he always has," Gabbard wrote.
The clash between Sanders and Warren comes on the eve of a Democratic presidential debate in Iowa, the last before that state kicks off the Democratic primary with its leadoff caucuses on Feb. 3. Warren and Sanders, both of whom support universal health care, tuition-free public college and raising the minimum wage, have for months competed for their party's most liberal wing while refraining from attacking each other.
But following a Politico story over the weekend that reported the Sanders campaign had instructed some volunteers to characterize Warren as a candidate for wealthy and well-educated voters in conversations with undecided voters, Warren issued a rare critique of her opponent. She said she was "disappointed" Sanders was instructing staffers to "trash" her.
That set the stage for Monday's hours of additional squabbling — and may well spell a lively debate Tuesday.
Stephanie Taylor and Adam Green, co-founders of the Progressive Change Campaign Committee, which has at times praised both Warren and Sanders, released its own statement Monday night saying they "believe that a back-and-forth about this private meeting is counter-productive for progressives."
"In this pivotal moment of the campaign, progressives must work together to defeat Donald Trump," Taylor and Green said.
Left: Democratic 2020 U.S. presidential candidate and U.S. Senator Elizabeth Warren (D-MA) speaks at a campaign town hall meeting in Marshalltown, Iowa, U.S., January 12, 2020. Photo by Brian Snyder/Reuters
Wanting change, Democratic voters grapple with who can win
By Steve Peoples, Associated Press
WATCH: McConnell says he'll 'strongly oppose' the war powers resolution
By Matthew Daly, Laurie Kellman, Associated Press
Early state voters say they're more swayed by basic issues than impeachment, Iran
By Will Weissert, Hunter Woodall, Associated Press
Tamara Keith and Amy Walter on Iowa caucus countdown, Sanders vs. Warren
Politics Jan 13


[Local events] Fwd: Schomburg, Froude,	Anderson! Saturday May 21st 7:30 pm! Waypost!
Please come out to The Waypost <http://www.thewaypost.com/> (3120 N.
Williams Ave., PDX) Saturday, May 21st for a smashing night of poetry.
Richard Froude, in town for one night only. Come out and support the arts!
Festivities begin at 7:30 pm.
co-edits Octopus Books and Octopus Magazine. He lives in Portland, OR.
Lust. He lives in Denver, Colorado.
co-edits the magazine /Thuggery & Grace/.


text:
Cartridge Guides
Shooters' FORUM
Guns of the Week
Varmint Pages
6BR Info Page
6BR Improved
17 CAL Info Page
223 Info Page
22BR Info Page
6PPC Info Page
6XC Info Page
243 Win Info Page
6.5x47 Info Page
6.5-284 Info Page
7mm Info Page
Top Gunsmiths
Bullet Reviews
Second Edition of Litz Applied Ballistics Book Announced
Bryan Litz, author of Applied Ballistics for Long Range Shooting, is releasing a Second Edition of his highly respected treatise on Ballistics. The new book is complete, and Bryan Litz is currently taking orders through his AppliedBallisticsLLC.com website. Bryan plans to start shipping Second Editions on April 18, 2011. The Applied Ballistics (2d. Edition) book and CD, as a package, sell for $49.95 plus shipping.
CLICK HERE for Applied Ballistics (2d. Edition) Book Description.
CLICK HERE to Order Applied Ballistics for Long Range Shooting, 2d. Edition
New Edition is Bigger and Better
Along with all the impressive content from the original book, the Second Edition of Applied Ballistics contains more chapters, more pages, more test-derived bullet data, plus the updated Version 2.0 of the Point Mass Ballistics Solver software (on CD). The Second Edition is even physically bigger — Bryan has bumped up the size to a larger, easier-to-read 7″ x 10″ format. In the bigger book you'll find two completely new chapters, plus updates of existing chapters. The Second Edition contains new experimental test data on 61 additional bullets, and bullet data pages now include complete stability data. Bryan has also included ballistic performance analysis for both long range hunting and long range target shooting.
A Gold-Mine of Information
If you've seen a copy of the First Edition, you'll know that Bryan has assembled the "mother lode" of ballistics information, much of which is hard to find anywhere else. Heck, just getting Bryan's field-test-derived bullet data may be worth the "price of admission" for many shooters. While the book goes into many advanced aspects of ballistics, this is not a graduate-level treatise. Bryan successfully created a book that can benefit any serious shooter, not just math wizards or college professors. Here are some of the many topics covered by Applied Ballistics (2d. Edition):
The Ballistic Coefficient
G1 vs. G7 BC Models
Bullet Shapes (Tangent vs. Secant)
Gravity Drop
Uphill/Downhill Shooting
Wind Deflection
Temperature/Pressure Effects
Monolithic Bullets (NEW)
Gyroscopic (Spin) Drift
The Coriolis Effect
Using Ballistics Programs
Getting Control of Sights
Bullet Stability
Extended Long Range Shooting
CD Provides Significantly Enhanced Software
With each copy of Applied Ballistics For Long Range Shooting (2d. Ed.), Bryan includes a CD containing Version 2.0 of the Point Mass Ballistics Solver. Combined with experimentally-measured BCs, this program can deliver extremely accurate trajectories and even calculate spin drift. In response to user requests, this 2.0 software update provides valuable new capabilities. First, now you can output trajectories in inches, centimeters, MOA or MILS. Take your pick — whichever you prefer. Second, the new software now provides bullet kinetic energy at all ranges. Last but not least, you can now easily print out your ballistics as a text file.
DEALER ORDERS: If you are interested in becoming a dealer, please email
bryan.litz [at] appliedballisticsllc.com for information on bulk-order discounts.
Disclosure: Applied Ballistics LLC Advertises with AccurateShooter.com.
Share the post "Second Edition of Litz Applied Ballistics Book Announced"
Permalink Bullets, Brass, Ammo, New Product No Comments »
X-Treme Shooting Has Titanium and CG Inch Actions in Stock
X-Treme Shooting Products has announced that its new line of Titanium actions is in full production, with short and long receivers ready to ship. The .338 receivers should be ready by the time of the NRA Annual meeting in late April. X-Treme Shooting is currently the only manufacturer of Titanium rifle receivers in the USA. Titanium construction offers significant weight savings, without compromising durability. On a long-action build, using a Titanium action could save up to 10 ounces. The short and long Titanium receivers both have a Rem 700 footprint, but with enhancements for improved function and accuracy. These are custom-grade actions, "absolutely true and dimensionally correct."
Benefits of Titanium Construction
Why Titanium? In addition to being much lighter than steel (by volume), Titanium is extremely strong, and very corrosion-resistant. That is why it is used for critical parts in jet airplanes and spacecraft. Titanium is as strong as steel, but 45% lighter. It is 60% heavier than aluminum, but twice as strong. Titanium has the highest strength to weight ratio of any common metal. Titanium does requires special milling tools and techniques for production. However, it is otherwise a highly-desirable material for rifle actions because it is light, strong, and corrosion-resistant.
New CG INCH Action Available
X-Treme Shooting sells a variety of other precision products, including the CG X-Treme Mod22 two-stage trigger, the Centra Goliath Front Sight, and the CG INCH target action from Australia shown below. The new INCH action, designed by Robert Chombart, are offered with either .308 or .223 bolt faces, for $1075.00. This is an excellent action for F-Class and Fullbore shooters. Call for finish options and other details.
For more information or to place an order, email ctmyers [at] x-tremeshooting.com, or call (513) 313-3464, or visit X-TremeShooting.com.
Share the post "X-Treme Shooting Has Titanium and CG Inch Actions in Stock"
Permalink Gunsmithing, New Product No Comments »
Olympic Quotas Earned and Team USA Strikes Gold in Sydney
The 2011 ISSF Combined World Cup shooting competitions were held in Sydney, Australia on March 21-31. In Sydney, the world's top shooters vied for coveted Olympic "Quotas" that would secure eligibility to compete at the 2012 London Olympic Games. 34 Olympic Quotas were awarded during the course of the 15 ISSF pistol, rifle and shotgun events in Sydney. Lead by its shotgunners, Team USA performed superbly in Australia, finishing with 8 total medals, including 3 Golds, more than any other country. China finished second in the medal count.
American Medal Winners:
Gold: Jamie Beyerle (Lebanon, PA), Women's 50m Rifle Three Position
Gold: Kim Rhode (El Monte, CA), Women's Skeet
Gold: Jon Michael McGrath (Tulsa, OK), Men's Skeet
Silver: Matt Emmons (Browns Mills, NJ), Men's 50m Rifle Three Position
Silver: Amy Sowash (Richmond, KY), Women's 50m Rifle Three Position
Silver: SFC Eric Uptagrafft (Phenix City, AL), Men's 50m Rifle Prone
Silver: Staff Sergeant Joshua Richmond (Hillsgrove, PA), Men's Double Trap
Silver: Caitlin Connor (Winnfield, LA), Women's Skeet
Young Americans Win Gold
The United States fielded one of the youngest teams in Australia. But the young shooters more than held their own. Team USA rifle shooter Jamie Beyerle dominated the Women's 50m three-position event, to win Gold with a total of 685.3 points. Beyerle's fellow American Amy Sowash finished second. Beyerle shot great in windy conditions that bothered many of her rivals. You can watch Jamie shoot in the first video linked below.
Another gold-medal performance was turned in by 18-year-old skeet shooter John McGrath, the current ISSF Junior World Champion. McGrath qualified for the Men's Skeet Final by hitting 124 of 125 targets, and then "cleaned" all his 25 Final targets. In an exciting finish, McGrath took the Skeet Gold Medal by beating 2007 World Champion Georgios Achilleos of Cyprus in a shoot-off.
Highlights of the 2011 ISSF Shooting World are now available on the ISSF's YouTube Channel. Linked below are videos of the Women's 50m 3-Position Highlights and Men's Prone 50m Air Rifle event. You can also visit www.ISSF-Shooting.org for the complete tournament results, interviews with shooters, and the latest international shooting news.
Women's 50m 3-Position (Featuring Jamie Beyerle)
Men's 50m Prone
Thanks to JoeF for sourcing this story.
Share the post "Olympic Quotas Earned and Team USA Strikes Gold in Sydney"
Permalink - Videos, Competition 1 Comment »
- Articles (842)
- Videos (1,480)
Bullets, Brass, Ammo (1,645)
Gear Review (1,149)
Gunsmithing (901)
Handguns (365)
Hot Deals (1,260)
Hunting/Varminting (599)
New Product (1,706)
Reloading (1,154)
Shooting Skills (762)
Tactical (441)
Tech Tip (798)
Find Posts by Day
Select Month January 2020 (63) December 2019 (87) November 2019 (89) October 2019 (88) September 2019 (79) August 2019 (88) July 2019 (88) June 2019 (80) May 2019 (84) April 2019 (81) March 2019 (79) February 2019 (67) January 2019 (69) December 2018 (62) November 2018 (66) October 2018 (74) September 2018 (72) August 2018 (70) July 2018 (65) June 2018 (62) May 2018 (66) April 2018 (65) March 2018 (67) February 2018 (59) January 2018 (70) December 2017 (69) November 2017 (66) October 2017 (67) September 2017 (74) August 2017 (72) July 2017 (74) June 2017 (67) May 2017 (67) April 2017 (67) March 2017 (65) February 2017 (63) January 2017 (76) December 2016 (64) November 2016 (66) October 2016 (70) September 2016 (71) August 2016 (69) July 2016 (71) June 2016 (72) May 2016 (62) April 2016 (59) March 2016 (69) February 2016 (61) January 2016 (70) December 2015 (66) November 2015 (65) October 2015 (72) September 2015 (77) August 2015 (74) July 2015 (64) June 2015 (65) May 2015 (69) April 2015 (69) March 2015 (72) February 2015 (63) January 2015 (74) December 2014 (73) November 2014 (73) October 2014 (82) September 2014 (71) August 2014 (74) July 2014 (73) June 2014 (70) May 2014 (69) April 2014 (67) March 2014 (66) February 2014 (58) January 2014 (80) December 2013 (69) November 2013 (59) October 2013 (68) September 2013 (54) August 2013 (73) July 2013 (69) June 2013 (65) May 2013 (65) April 2013 (65) March 2013 (58) February 2013 (61) January 2013 (67) December 2012 (71) November 2012 (72) October 2012 (71) September 2012 (62) August 2012 (74) July 2012 (65) June 2012 (60) May 2012 (66) April 2012 (64) March 2012 (59) February 2012 (56) January 2012 (71) December 2011 (60) November 2011 (63) October 2011 (63) September 2011 (59) August 2011 (64) July 2011 (58) June 2011 (58) May 2011 (57) April 2011 (58) March 2011 (57) February 2011 (55) January 2011 (67) December 2010 (59) November 2010 (52) October 2010 (59) September 2010 (52) August 2010 (63) July 2010 (56) June 2010 (61) May 2010 (60) April 2010 (64) March 2010 (66) February 2010 (60) January 2010 (72) December 2009 (65) November 2009 (58) October 2009 (68) September 2009 (61) August 2009 (62) July 2009 (62) June 2009 (59) May 2009 (61) April 2009 (68) March 2009 (63) February 2009 (55) January 2009 (76) December 2008 (62) November 2008 (60) October 2008 (54) September 2008 (57) August 2008 (63) July 2008 (60) June 2008 (59) May 2008 (55) April 2008 (60) March 2008 (62) February 2008 (57) January 2008 (57) December 2007 (59) November 2007 (59) October 2007 (61) September 2007 (60) August 2007 (64) July 2007 (59) June 2007 (62) May 2007 (67) April 2007 (57) March 2007 (47)
Guy on Tips for Using LEE Collet Dies
Jim See on Barrels Can Yield More Velocity After 100-150 Rounds
Grant on Sunday GunDay: Merkel RX Helix Straight-Pull Hunting Rifle
Smitty on TOP TEN Methods to Dry Cartridge Brass after Wet Cleaning
Chase on TOP TEN Methods to Dry Cartridge Brass after Wet Cleaning
John on New Mauser M 12 Rifle to Be Distributed by Blaser USA
Chip Breaker on TOP TEN Methods to Dry Cartridge Brass after Wet Cleaning
Jim Fortune on TOP TEN Methods to Dry Cartridge Brass after Wet Cleaning
CharlieTX on TOP TEN Methods to Dry Cartridge Brass after Wet Cleaning
mikee on TOP TEN Methods to Dry Cartridge Brass after Wet Cleaning
.22 LR 6.5 Creedmoor Air Rifle ammo Ammunition AR15 ballistics Benchrest Berger Bullets Brass Brownells Bryan Litz Camp Perry CMP Discount F-Class F-Open F-TR high power Hornady hunting IBS Lapua Long-Range NRA NSSF Optics Palma Pistol Powder PRS RCBS Reloading Remington Rimfire Sale Savage Scope SHOT Show Sierra Bullets Smallbore Smith Wesson Tactical USAMU Video
To comment on a post, click Post Title or "Comment" Link.
The Bulletin title serves as the "Home" button. To get ALL posts, click the Bulletin Title or Bulletin Button at top of page.
ALL Bulletin content is copyrighted, © 2020 AccurateShooter.com. You may not reproduce original text or photos without advanced permission in writing.
AccurateShooter.com
SHOOTERS' FORUMS
Bulletin FEED (RSS)
Copyright © 2020 Accurate Shooter


↑ Eric Rosenthal. "The 8 Jews of Rap: The Beastie Boys". Complex.
↑ Keith Caulfield (May 4, 2012). "Beastie Boys Blazed Billboard Chart History". Billboard.com. สืบค้นเมื่อ May 4, 2012.
↑ "Obituary: Adam 'MCA' Yauch". BBC News. 4 May 2012. สืบค้นเมื่อ 9 May 2012.
↑ Grischow, Chad (2011-03-16). "Beastie Boys Announce Hot Sauce Committee Release Date". IGN.com. สืบค้นเมื่อ 2015-03-27.
↑ "Hot Sauce Committee, Pt. 2 – Beastie Boys". Metacritic.com. สืบค้นเมื่อ 2013-07-06.
↑ Michael Hogan (May 4, 2012). "Beastie Boys Rock & Roll Hall Of Fame". HuffingtonPost.com. สืบค้นเมื่อ May 4, 2012.
↑ Kaufman, Gil (2012-05-04). "Adam Yauch Of Beastie Boys Dead At 47 - Music, Celebrity, Artist News". MTV.com. สืบค้นเมื่อ 2013-02-19.
↑ "Timeline". Beastiemania.com. สืบค้นเมื่อ June 3, 2012.
↑ Raul Pollicino (July 6, 1983). "Gigography". BeastieMania.com. สืบค้นเมื่อ December 7, 2009.
↑ Raul Pollicino (June 25, 1982). "Gigography". BeastieMania.com. Archived from the original on November 23, 2009. สืบค้นเมื่อ December 7, 2009.
หน้านี้แก้ไขล่าสุดเมื่อวันที่ 19 ธันวาคม 2560 เวลา 23:41 น.


text:
Silicon Europe
Insight4Elections #GE16 – Which candidates get the most coverage?
Big party leaders dominate column inches
As we move into the final days of #GE16, it's perhaps time to look at who has been racking up the column inches in the press.
Researchers from the Insight Centre for Data Analytics have been tracking media coverage of candidates as part of their Insight4Elections data analysis project. The researchers have been tracking coverage of candidates across RTE, Irish Times, Independent, IrishExaminer, The Journal, BBC and Reuters since campaigning started on the 3rd of February.
Unsurprisingly, Enda Kenny tops the pile with 150 articles to date across the tracked outlets. Gerry Adams notched up 115. Micheál Martin was in third place with 112, while Joan Burton is next with 109.
The gulf in coverage is perhaps unsurprising but will strengthen the argument of the smaller party leaders that they are not getting equal access to the electorate when it comes to the main media channels.
Lucinda Creighton and Stephen Donnelly clocked 36 and 34 articles respectively.
Among independent candidates Michael Healy Rae tops the pile with 19 mentions, followed by Shane Ross TD and Tipperary's Michael Lowry.
Insight4Elections is a publicly available web tool where users can dig into the numbers for themselves. You can find the link here. http://insight4news.ucd.ie/
Posted by Editor in Chief at 10:37
Labels: Which candidates get the most coverage?
Blog Archive January 2019 (4) December 2018 (1) November 2018 (3) May 2018 (14) April 2018 (22) March 2018 (29) February 2018 (30) January 2018 (28) December 2017 (14) November 2017 (17) October 2017 (27) September 2017 (10) August 2017 (26) July 2017 (19) June 2017 (28) May 2017 (35) April 2017 (31) March 2017 (34) February 2017 (30) January 2017 (28) December 2016 (29) November 2016 (38) October 2016 (32) September 2016 (28) August 2016 (32) July 2016 (37) June 2016 (41) May 2016 (34) April 2016 (37) March 2016 (36) February 2016 (40) January 2016 (36) December 2015 (39) November 2015 (37) October 2015 (40) September 2015 (41) August 2015 (32) July 2015 (39) June 2015 (49) May 2015 (43) April 2015 (38) March 2015 (44) February 2015 (41) January 2015 (46) December 2014 (45) November 2014 (48) October 2014 (43) September 2014 (46) August 2014 (40) July 2014 (41) June 2014 (40) May 2014 (41) April 2014 (51) March 2014 (64) February 2014 (80) January 2014 (63) December 2013 (47) November 2013 (55) October 2013 (56) September 2013 (44) August 2013 (47) July 2013 (57) June 2013 (72) May 2013 (79) April 2013 (70) March 2013 (66) February 2013 (56) January 2013 (55) December 2012 (34) November 2012 (41) October 2012 (57) September 2012 (53) August 2012 (38) July 2012 (36) June 2012 (44) May 2012 (52) April 2012 (47) March 2012 (53) February 2012 (43) January 2012 (47) December 2011 (43) November 2011 (58) October 2011 (49) September 2011 (49) August 2011 (46) July 2011 (6) June 2011 (53) May 2011 (28) April 2011 (34) March 2011 (60) February 2011 (12) January 2011 (5) December 2010 (3) November 2010 (2) September 2010 (3) August 2010 (1) July 2010 (1) June 2010 (2) April 2010 (1) March 2010 (1) January 2010 (3) December 2009 (1) October 2009 (3) August 2009 (2) April 2009 (4) March 2009 (2) February 2009 (3) January 2009 (3) December 2008 (2) November 2008 (5) October 2008 (12) September 2008 (13) August 2008 (9) July 2008 (35) June 2008 (46) May 2008 (12)
Cyberia Ireland
Cyber Security for Ireland
Welcome to Silicon Ireland
We are a nominated Daily Irish Tech blog started in 2008, We focus on Irish Tech news, SME's ,we love Irish start-ups,we love looking at new ideas & we love to feature all that is great in the Irish Tech community.
We have had over 5 Million page views to our blogs .
We thank you for visiting and hope you enjoy our coverage.
Annual Sponsors 2018
Free Tech Advice
YourTechSOS
Data Solutions in Ireland
Managing large scale data
Startup Stories Sponsored by
Startup Stories 2014/15
siliconireland
@siliconireland
@silirenewswire
nwz@siliconirelandnews.com
siliconirelandnewswire.com
Silicon Ireland Team:
Editor:	C OConnor
North W Ed: C Gordon
Dublin E Ed : N Hussain
Galway W Ed:	P Higgins
Startup Ed: M Grainger
Features Ed: Una Martin
Accounts : R Mcquire
Based in Dublin, Ireland:
Silicon Ireland Menu
Silicon Ireland Twitter Ireland
Silicon Ireland You Tube Channel
Silicon Ireland Facebook
Dublin Jobs Site
V Blog Awards 2017
Irish Blog Awards Short List 2016
Nominated Tech Blog
E Blog 14
Shorty Award Nominated 12
Best Business Twitter Account
Social Media Awards 2011
Nominated Irish Blog Awards 2011
Tech Blog Shortlist 2010
Silicon Ireland News
The opinions, beliefs and viewpoints expressed by the various authors, employees and guest writers on this web site do not necessarily reflect the opinions, beliefs and viewpoints of Silicon Ireland News.
Copyright Silicon Ireland News 2008-2018
We have updated our Privacy Notice to reflect GDPR Regulation - Read Here