The driving mission behind all we do is to offer service and advance the betterment of all concerned above ourselves. To that end, the Rotary Club of Cashiers Valley develops and supports good works that benefit our community in a variety of ways.
Since our club received its charter in March 1993, we have created numerous service projects and initiatives to benefit our community.
The Rotary Club of Cashiers Valley has raised and dispersed more than $1,000,000 to a number of community groups that work on behalf of public health and welfare, education, and recreation.
We also recognize the achievements of local students and support their goals of higher education through our support of local Student of the Month and Rotary Scholarships programs.


de Mórdha Bed & Breakfast offers comfortable, friendly, laid back accommodation in the rural heartland of the Dingle Peninsula. Located in Dún Chaoin (Dunquin on your GPS) & overlooking the Blasket Islands on the very tip of the Peninsula, our Bed and Breakfast guarantees our guests the very best in Irish hospitality.
Very popular amongst the walkers and hikers of The Dingle Way, de Mórdha Bed & Breakfast is also the closest B&B to the Blasket Island Ferries, and is a perfect accommodation base to explore the Slea Head Drive.
Our B&B is situated in the heart of Dún Chaoin, on the tip of the Dingle Peninsula, overlooking the Blasket Islands, about the halfway point of the Slea Head Drive (16kms from An Daingean/Dingle).


text:
King Kenny watching Utd closely
Former Liverpool striker and manager Kenny Dalglish insists the club's chase for the Premier League crown this season isn't over yet, with only four games of the season to go.
The Reds currently sit three points behind league leaders Manchester Utd, who also have a game in hand. But United's remaining fixtures see them face a local derby, Arsenal, and relegation-threatened Hull City on the final day of the season, as well as having Champions League distractions.
Dalglish was manager the last time Liverpool won the top-flight league in 1990 and yesterday the Scot, who has been linked with a return to Anfield as part of Rafa Benite'z team of staff, told Radio Merseyside, "Unfortunately we're dependant on someone doing us a favour. All of a sudden you become a fan of whoever Manchester United are playing."
United, who play Arsenal in their Champions League semi-final, second leg on Tuesday night, travel to struggling Middlesbrough, who beat Liverpool at the Riverside Stadium earlier this year, on Saturday lunchtime. If Middlesbrough were to take points off Alex Ferguson's men, surely the title race would be very much alive.
Dalglish continued, "Fergie is going to make about eight changes he said for the weekend.
"I don't think he has players there that means he could put a bad side out, but maybe it gives Middlesbrough a wee bit more encouragement."
Anfield Road End update: Major progress with central core in place!

redpajama_set_name: RedPajamaCommonCrawl


212 DEGREES – ONLY ONE DEGREE CAN MAKE A DIFFERENCE!
At 211 degrees…water is hot.
And, it's that one extra degree that… Makes all the difference.
How many of us ever really consider what is takes to be just a little bit better at work, in our relationships, at a hobby, etc.? Honestly, many of us probably dream about making major improvements in our lives without ever achieving many of those dreams. The reason for this may be that our dreams are unrealistic or that we never take the necessary steps to begin and follow-through with achieving our dreams. Maybe we are intimidated by taking those first steps to improve or believe that the final destination is unreachable because the journey is too difficult.
How many of us want to be better? Dumb question of the day Tim! Of course all of us want to be better! But, what will it actually take to make a difference in our lives to become better? How much work is going to be involved to be better? These are all important questions to ask, but maybe being better is not as difficult or challenging a task as we believe it to be. Using boiling water as an example, we see that it really doesn't take much additional effort to make a huge difference. Applying one extra degree of temperature to water means the difference between something that's simply very hot and something that generates enough force to power a machine.
Secrets to success simply don't exist. Most of us instinctively know it, but won't admit it. Success in anything has one fundamental aspect: Effort. And in most cases, to achieve exponential results requires extra effort. That's the extra degree. Thomas Edison once said that, "Many of life's failures are men who did not realize how close they were to success when they gave up." Vince Lombardi said that, "Inches make the champion." Did you know that at NASCAR's Daytona 500 from 1997 – 2006, the winner took the checkered flag by an average margin of 0.175 seconds…. less than two-tenths of a second. For the winner, it meant $509,000…. more….in winnings!
This makes things a little easier as we ask ourselves the question, what are the few most important things that we can incrementally improve to make the biggest difference? Can you identify some of those things today?
Sam Parker and Mac Anderson from the book, "212° The Extra Degree.


text:
Groton Open Space Association, Inc > 2005 > April
Thomas L. Crowley, Mower Of Haley Fields, Dies at 81
April 25, 2005 gosainc Uncategorized No comments yet
STONINGTON–Thomas L. Crowley, 81, of Stonington, who for 19 years mowed the fields at Haley Farm State Park under contract to GOSA, died April 29, 2005, at his home in Stonington.
In a letter to Mr. Crowley's family, GOSA Director Sidney Van Zandt wrote, "He was an icon for us at the Groton Open Space Association. When he began, the fields had reverted badly, but over the years, he and you have brought back so many of the fields and uncovered so many of the stone walls that had long since disappeared under vines and brush. That allowed them to return to their peaceful grandeur instead of being hidden by the march of the forest." Mr. Crowley used a 1953 John Deere tractor in the mowing.
Ms. Van Zandt said separately, "Because of Mr. Crowley's ill health this year, his grandson, Brian, cut most of the fields, despite the enormous amount of snow and time spent away helping care for his granddad. Mr. Crowley's, son, Thomas, was back at the Haley Farm a few days after Mr. Crowley's death tending to the 'edging' with another helper, using their weed-whackers to attack the vines on the walls."
An obituary in the Westerly (R.I.) Sun said that Mr. Crowley was born in New Jersey and that he married the former Florence Schweitzer in 1951 in Yonkers, NY. A resident of the Wequetequock section of Stonington for many years, he operated the Crowley Farm and delivered cordwood to many homes in the area. He also was employed at one time as a rigger at the Electric Boat Division of General Dynamics. Mr. Crowley was described as an avid collector of coins, stamps, and rocks. He is survived by his wife and two sons, Thomas F. Crowley of Pawcatuck and Raymond J. Crowley of Great Barrington, RI, three brothers, seven sisters and five grandchildren.


This Column will have some of the same old stuff I usually talk about presented in the same old ways. It will also have some different new stuff that I'll be saying about the same old stuff. Be prepared to hear about Google, GoPros, and Marvel - along with maybe some other stuff along the way.
This first part is a bit of a downer - fair warning.
My grandpa was a carpenter. My dad builds stuff. It turns out I build some stuff too.
My whole life dad took me out to the barn to fix things, build things, and perform various types of maintenance. I don't think he thought I really learned all that much. I did, though. Possibly from his training - or, possibly just through exposure & osmosis. I learned some things you should do, some things you shouldn't do, and how to appreciate what you've done when you're done.
I used some of those things I learned to turn this desk I'm sitting at from a thing that was absolutely perfect for the circumstances which I used to have into something that is absolutely perfect for the circumstances I have now.
Motto: Labor Day = Don't Go to Work? What?
Last Column was very... focused. This time the glasses are coming off. Things are going to be nice and out-of-focus. I'm going to hit up the many things I've made not to write about since the two Columns ago.


Have you wondered how you would look without all your teeth? If you do not take good care of them, it will only be a matter of time before you will really see how you will look like without those pearly whites. It is a good thing that you can prevent this from happening. Here are some tips to prevent dental extraction.
Regularly floss. Many people think brushing is enough, but it is unable to clean the small gaps between teeth. It also cannot remove food debris and plaque from sides of the back molars. Flossing can effectively clean the teeth from front to back.
Drink water. Aside from washing away food debris and bacteria in the mouth, it also neutralizes the acidity that weakens the teeth. Rinse your mouth after your meals to get rid of food bits out of your mouth.
Do not smoke. Smoking gives you bad breath and makes the teeth look yellowish. It also affects saliva production and makes you a mouth breather which can have a big effect on your dental health.
Check your diet. Our teeth need good nutrition to properly develop and function. Eat a balanced diet that consists of vegetables, fruits and dairy, as well as magnesium, calcium, phosphorus and vitamin D.
Limit acidic foods. Acid breaks down the tooth enamel, leading to cavity formation and tooth decay. It is hard to completely avoid acidic foods, but knowing which foods are can help you control your intake.
Chew xylitol gum. Studies have shown that chewing xylitol gum helps reduce tooth decay and gum disease. Also, it has shown to promote saliva production and increase the mouth's resistance to bacteria.
Avoid teeth clenching. Grinding the teeth can lead to attrition, which is a kind of wear die to teeth-to-teeth contact. Clenching or grinding can expose the tooth dentin and cause severe tooth sensitivity.
Never ignore symptoms. Discolored teeth, severe teeth sensitivity and bleeding gums can have underlying conditions. If you notice anything new and unusual to your gums or teeth, consult your dentist immediately.
See your dentist regularly. Visit the dental clinic for check-ups twice a year to ensure dental health. If you develop an oral problem, your dentist can treat it early and prevent possible complications.
Follow the tips above and enjoy a healthy set of teeth that will not stop you from smiling. All these might seem like too big a job, but the payoffs are completely worth it. If you have any more questions about dental extraction and oral care, schedule an appointment with a reliable dentist in your area today.
I Am A professional Dentist in Castle Hills of Lewisville, The Colony, Tx and genuinely care about the health and well being of teeth and gums. visit http://www.castlehillsdentistry.com/ for more info about oral care.


text:
Eastern European StatesCurrently selected
Assembly of States Parties » States Parties to the Rome Statute » Eastern European States
1. Croatia, 21 May 2001
2. Serbia, 06 September 2001
3. Poland, 12 November 2001
4. Hungary, 30 November 2001
5. Slovenia, 31 December 2001
6. Estonia, 30 January 2002
7. Republic of North Macedonia, 06 March 2002
8. Bosnia and Herzegovina, 11 April 2002
9. Bulgaria, 11 April 2002
10. Romania, 11 April 2002
11. Slovakia, 11 April 2002
12. Latvia, 28 June 2002
13. Albania, 31 January 2003
14. Lithuania, 12 May 2003
15. Georgia, 05 September 2003
16. Montenegro, 23 October 2006
17. Czech Republic, 21 July 2009
18. Republic of Moldova, 12 October 2010


text:
What is the Gross Reservoir Expansion Project?
1041 Permit News and Documents
Raising a Dam
Progress and Schedule
Minimizing Impacts
Community Responsiveness
Subsurface Investigations
Contractor Interest Form
Protecting Colorado Rivers and Streams
Environmental Review Process
Gross Reservoir
This short video summarizes Denver Water's community commitments based on years of study and robust outreach to Gross Reservoir neighbors. Also, read more on our Community Responsiveness page and on DenverWaterTAP.org !
Jeff Martin, Denver Water's program manager on the Gross Reservoir Expansion Project sits for an interview about the project goals, core values and minimizing inconvenience to our neighbors.
Provide $2 million towards aquatic habitat improvements on the Upper Colorado River.
Provide $1 million to the Upper Colorado River Wild and Scenic Management group to fund flow-related projects to protect the outstanding and remarkable values within segments of the Upper Colorado River.
Provide $6 million to Grand County to use towards environmental projects, and continue to participate in the "Learning By Doing" collaborative effort, which has already resulted in tangible positive environmental impacts on the West Slope.
Construct and maintain sediment pond on Berthoud Pass to keep the Fraser River bottom clean. Check out, "Good for drivers, bad for the Fraser River."
Restore a portion of Fraser Flats in Grand County. Check out, "Keep it cool: Good for the Fraser River and its trout."
Release water into Ranch Creek in response to high temperatures found through water temperature monitoring. Check out, "Searching for solutions to help trout keep their cool."
Monitor stream temperatures and water quality in Gross Reservoir, South Boulder Creek and the Fraser River Basin.
Provide funding towards Colorado Parks and Wildlife's cutthroat trout habitat projects to protect and restore native trout populations.
Through a cooperative process, replace culverts on Fraser River, Cabin Creek and St. Louis Creek with aquatic organism passage culverts that will enable free passage of fish and other aquatic organisms.
Provide flushing flows in the Williams Fork and Fraser River basins.
Provide more than 1,000 acre-feet of water in Grand County for environmental purposes.
Complete a stream restoration project on South Boulder Creek.
Create an environmental pool in Gross Reservoir that will be managed by the Cities of Boulder and Lafayette to provide flows into South Boulder Creek during periods of low or no flows.
Allow Grand County to store up to 2,500 acre-feet of water in Williams Fork Reservoir for environmental purposes.
Complete a stream restoration project on the Williams Fork River.
Begin stream bank monitoring on the North Fork of the South Platte River and South Boulder Creek to identify erosion and/or unstable banks, and make repairs, as needed.
Construct a fish ladder on Cabin Creek in Grand County.
Convey approximately 540 acres of land near the Moffat Tunnel to the U.S. Forest Service for permanent protection and management as part of the National Forest System.
Protect raptor species, fight invasive species, relocate rare plant species and responsibly remove trees and brush in the reservoir's expanded footprint.
Continue to participate in the U.S. Fish and Wildlife Service's Upper Colorado River Recovery Program and the Platte River Recovery Implementation Program, both designed to protect endangered species.
Online Office Hours
Out of concern for the safety of our employees and community, Denver Water has suspended in-person office hours and events indefinitely.
We do offer online one-on-one appointments with our project representatives who can answer your questions about the Gross Reservoir Expansion Project. We invite you to search for an available time and book an online meeting here.
We look forward to speaking with you!
Gross Reservoir Expansion Proposal Presents Water Demand, Environmental Concerns
Law Week Colorado - Nov. 24, 2020 - "... the agreement obligates Denver Water to reduce diversions during drought years. "The project itself was shaped and designed to avoid damaging or affecting flows in the driest of years," he said. "The project will only take...
Osprey Point Closure
Nov. 30, 2020 - Beginning the week of Nov. 30, Denver Water will be performing a safety project at the Osprey Point boat ramp at Gross Reservoir. This project will remove unstable rock at the boat ramp to ensure a safe environment for the public and Denver Water...
Going electrofishing on the Fraser Flats
TAP - Nov. 20, 2020 - "The data from the fish surveys are shared with Learning By Doing, a unique partnership between East and West Slope organizations in Colorado that focuses on maintaining the aquatic environment in Grand County and improving conditions when...
Aging outlet works at base of Denver Water dam call for major upgrade to valves, pipes.
October 16, 2020 - TAP - "At Gross Reservoir, one of the most important reservoirs in Denver Water's system, it's time to replace the outlet works, a seven-month job so big it will require sawing up massive slabs of concrete and removing fat steel pipes so big a short...
GIS Interactive Map
Thank You Supporters
Email: grossreservoir@denverwater.org
© 2019 Denver Water | Privacy Policy
Boating recreation is closed at Gross reservoir. Hiking and fishing access remains open, please ensure you are following local COVID-19 guidelines. If you have questions, please contact us.


Villa Griya Atma is conveniently located on the outskirts of Ubud, in the rustic village of Tengkulak Kelod. Villa Griya Atma is just a 10-minute drive from Sukawati Art Market, Monkey Forest and the heart of Ubud where you can find Ubud Palace, Ubud Art Market abd scores of galleries, restaurants and spas. Villa Griya Atma can be reached with a 90-minute drive from Ngurah Rai International Airport. Villa Griya Atma is far enough from noisy city but still has easy access to many interesting places in Ubud area.
Villa Griya Atma overlooks unimpeded verdant rice field and forest views and offers a calm and serene setting for an enjoyable holiday. Villa Griya Atma is designed as a modern interpretation of Balinese traditional living, the spacious villa is tastefully appointed with wooden fitting and floor-to-ceiling windows and each room on ground floor opens on a wide patio giving maximum view of the surrounding natural beauties. Villa Griya Atma is the place where you can experience ultimate comfort amidst lush green environment.
Villa Griya Atma is a four bedroom villa with Master bedroom facing the rice fields and the infinity swimming pool and featuring en-suite bathroom with bathtub and an outdoor shower as well as an indoor daybed. Two other bedrooms on ground floor face the swimming pool. Both have indoor and outdoor bathroom with showers. The fourth bedroom, on second floor faces other rice fields. It is also a study and has its own lounge with sofa and TV. It has en-suite bathroom with indoor shower.
An open concept living and dining area overlooks the garden, the swimming pool and rice fields. A family room faces the back garden with a fish and turtle pond. There is also kitchen that is used for final preparation of the dishes before serving. It has a refrigerator, a microwave oven, and a water dispenser.
Villa Griya Atma is managed by villas' staff : 1 cook, 6 waiters and room attendants, 1 pool attendant and maintenance man, 1 gardener, 2 night watchmen. The villa manager will welcome you upon arrival. She will visit you during your stay to check whether everything goes fine. You also call on her in case of a difficulty or to arrange activities.


Don't you just love her work?
I do! I've also really fallen for the design of her website...it fits her art so beautifully!
Another great artist, who truly inspires me is 'Lobster and Swan'.
I can't get enough of this beauty and lovely originality!
where you can download amazing ART from various artists for FREE.
Ohhh, such pretty pictures! I love the last two!
I especially dig the Lobster and Swan made cards. Such a pretty twirl of colors.
I am so happy you are back beautiful girl.
I hope my posts were ok in your absence.
Such beauty! I really love the second artist's work. Everything looks so delicate!


text:
HomeBusinessHow Far Can This Oversold Bounce Go?
How Far Can This Oversold Bounce Go?
November 29, 2011 Scott Redler
US stock futures point to a higher open again Tuesday, but are well off early morning highs after American Airlines filed for voluntary Chapter 11 bankruptcy. Hopes continue to surge that Europe will again take action to stem the tide of a deepening sovereign debt crisis. Bond yields remain high in major Eurozone countries, and policy makers are discussing creative ways for re-financing debt. Italy saw its borrowing costs surge at a action of three-year treasuries today, which had been foreshadowed by a rise in bond yields on the secondary market.
AMR Corp. (AMR) shares fell 60% in the pre-market after AA filed for bankruptcy protection. The company reported around $4 billion in cash and equivalents, and replaced its CEO with Gerard Arpey with Thomas W. Horton. American Airlines will continue to operate a normal schedule while it enter bankuptcy.
Despite those aforementioned rising borrowing costs in Europe, European equity markets are higher again to today as the Euro gained 0.4%. Today's gap up will come despite Fitch Rating lowering its outlook on US credit from stable to negative, although it kept America's triple-A rating intact. The revised outlook resulted from another political gridlock in Washington, where the so-called Supercommitee has not been able to agree on fiscal measures to reduce the US deficit by $1.2 trillion over the next 10 years. Reports also continue to suggest that S&P will likely cut France's triple-A credit rating in the near future.
The Wall Street Journal reported this morning that Facebook is preparing for a 2012 IPO between April and June. Analysts believe the public offering will raise about $10 billion and value the company at around $100 billion. Social networking and new internet IPOs have been a mixed bag in 2011, with LinkedIn (LNKD) enjoying tremendous early success before falling off, and Groupon (GRPN) experiencing heavy selling over the past week after debuting early this month.
TECHNICAL TAKE
Markets had a strong gap up yesterday with limited intra-day action, which was positive for investors but not necessarily for short-term traders. Traders that positioned into yesterday's afternoon dip are getting rewarded as we are getting some upside follow through this morning. Cyber Monday proved as strong as Black Friday, and there is more talk about leveraging the EFSF. At this point, the market is working off extreme oversold conditions and still has a ton to prove if this were to be more than just an oversold bounce.
There are several areas of resistance to take note of for today's intra-day action.
Resistance #1 will be the $119.19-120.35 area, which is the area right under that pro gap from November 21st.This could be the easy spot to bounce to. If you did get long last week on Wednesday, Friday or Monday, this is a spot to sell some for the quick bounce It would be very impressive to close at the high end of this zone today.
Resistance #2 is the 50-day moving average that is curling down (a bearish sign). The zone stretches from $120.75 to $121.43 (the gap fill). This is the area that some technical traders could look to test some new shorts if there is nothing concrete out of Europe and bond yields continue to surge.
Resistance #3 is the $122.75-$123.25 zone, which can be considered the line in the sand for the bears to keep bearish composure intact. I don't expect this area to come into play this week, if it comes into play at all.
The Tech sector is still broken on the charts, but showed strength yesterday and could continue to lead any bounces.
Apple (AAPL) closed on the 200-day Friday and then had a nice move yesterday. The stock still has some room to the $383-385 area. I would sell some longs if you bought yesterday or by the 200-day in this zone, and let the stock prove it can change character, from weak to strong again.
Amazon.com (AMZN) has been broken since earnings. Some talked about positioning on Friday for some great retail results. I waited until yesterday. It still has some room to fill the gap and perhaps see $197-200.
Baidu.com (BIDU) seems to be one of the only Chinese stocks still in the game, but there is no real pattern here.
Google (GOOG) still shows relative strength. Institutions seems to be accumulating it for the long-term, but short term it's just a trade as it gives two way action. If you bought yesterday, perhaps taking profits into the gap that gets filled in the $591-594 zone would be prudent.
Intel (INTC) has given a nice two day move and still seems investment quality. It has some short term resistance around $23.90-24.10.
VMWare (VMW) had a nice day yesterday and has some room back to $96-97.
IBM needs time but remains investment quality in my opinion. It will have a lot of resistance around $184-185.
The retail sector still acts well, especially after a strong start to the Christmas shopping season.
Mercado Libre (MELI) has a nice chart and is showing a ton of relative strength. This should be on the go-to momentum list.
Deckers (DECK) and Under Armour (UA) both had nice days yesterday and continue to act well.
Macy's (M) is still above moving averages. It's a slower trading stock but looks good for higher prices.
Lululemon (LULU) is losing some of it's momentum as it is less bouncy lately.
Wal-Mart (WMT) still hangs tough and if you are a macro investor, stay the course. No short term pattern here.
Oil Service ETF (OIH) looks a bit like an inverted head and shoulders bottoming pattern is being built. Under that assumption, last week's low could be a great area to trade long against on a micro and macro level. There will be a ton or resistance though in the $119.73-121.52 area.
Panera (PNRA) had a break out to the upside through highs. It's good to see that can happen with new IPOs.
Linked In (LNKD) continues to get punished and it was listed as a short on the T3Live "Off the Charts" newsletter with the action area around $70.
Banks were the first group to trade well off the highs yesterday and are still a problem area.
Watch Bank of America (BAC) if to goes through a recent low of $5.13. If that happens it, will likely also result in extreme pressure across the rest of the sector.
Goldman Sachs (GS) has the $87-89 area to trade long against. If this area doesn't hold, you can see pressure as well.
Disclosures: Scott Redler is long SPY AAPL AMZN
About Scott Redler 367 Articles
Scott Redler is the Chief Strategic Officer of T3 Live. He develops all trading strategies for the service and acts as the face of T3 Live. Mr. Redler focuses on thorough preparation and discipline as a trader.
Mr. Redler has been trading equities for more than 10 years and has more recently received widespread recognition from the financial community for his insightful, pragmatic approach. He began his career as a broker and venture capitalist where he was able to facilitate relationships that led him into trading. Beginning his trading career at Broadway Trading in 1999, Mr. Redler moved on with Marc Sperling to Sperling Enterprises, LLC after establishing himself as one of the best young traders in the firm. As a manager at Sperling Enterprises, continued to trade actively while working closely with all traders in the firm to dramatically increase performance.
Mr. Redler has participated in more than 30 triathlons and one IronMan, exhibiting a work ethic that also defines his trading. His vast knowledge and meticulous attention to detail has led to regular appearances on CNBC, Fox Business, Bloomberg, and he is a regular contributor to Minyanville and Forbes' Intelligent Investing blog. He has been quoted in the Wall Street Journal and Investor's Business Daily, among other publications.
Scott received a B.B.A. in Marketing/Finance from the State University of New York at Albany, graduating Magna Cum Laude from Albany's School of Business.
Visit: T3Live
S&P500: Next Stop 50-day?
March 6, 2012 Global Macro Monitor
Smooth Sailing for the S&P
October 28, 2013 WSP
Did the Market Price Brexit Wrong?


text:
Home 2019 April 13 Geoffrey Rush's victory in his defamation case could have a chilling effect on the #MeToo movement
Geoffrey Rush's victory in his defamation case could have a chilling effect on the #MeToo movement
April 13, 2019 April 13, 2019 in Life, Law & Culture
The Federal Court's judgment is a very long judgment. This article gives you both the gist of the judge's reasoning for finding Geoffrey Rush was defamed by the Telegraph newspaper in its various publications concerning him, and the possible ramifications of the decision. By and large though, the judge arrived at his findings in the light of his assessment of the reliability of the evidence of the key witness and by reference to the civil standard of proof in defamation cases where an applicant, like Rush, is only required to prove their case on the 'balance of probabilities', not 'beyond reasonable doubt', the standard that applies in criminal cases. Also the judge decided the newspaper had talked to prove the truth of the imputations affecting Rush that flowed from its various publications. Read on…
We republish this article in accordance with The Conversation's open republishing policy, which we at FSN share.
The decision in Geoffrey Rush v Nationwide News, handed down today in Australia's federal court, is the first – and so far, only – legal determination of a case associated with the #MeToo movement in Australia.
The defamation case was decided in favour of the actor Geoffrey Rush, who had sued News Corp's Nationwide News, the publisher of the Daily Telegraph, over allegations the newspaper published regarding Rush's inappropriate behaviour with an unnamed fellow actor, later identified as Eryn Jean Norvill, who gave evidence in the case.
In finding for Rush, Justice Michael Wigney decided that the defence of truth argued by Nationwide News had not been proven. Because Wigney said Rush had suffered significant distress – and to vindicate his reputation – he set non-economic damages at A$850,000. This is more than double the cap in cases not involving aggravated damages, with further economic loss still to be determined.
In handing Geoffrey Rush a victory in his defamation case against The Daily Telegraph, the judge said the actor's reputation was harmed by a "recklessly irresponsible piece of sensational journalism." Dylan Coker/AAP
The Rush decision comes as the Australian #MeToo Movement seems to have gone quiet. The high-profile cases that arose in the year following #MeToo, which included allegations against television presenter Don Burke, actor Craig McLachlan and politicians Barnaby Joyce, Luke Foley and Jeremy Buckingham, have mostly faded from public view.
Craig McLachlan, defamation and getting the balance right when sexual harassment goes to court
None of these cases have been heard under sexual harassment laws, and none of the women has claimed or received any remedy. Rather, what most of these cases have in common is that the men involved have sued or threatened to sue for defamation.
While reckless and sensationalist media stories certainly cause harm, the Rush decision and other defamation cases may lead someone who has experienced sexual harassment to think that the reputational interests of the accused are better protected by law than those alleging harassment.
Australia has particularly strong defamation laws, which the Rush trial has brought into sharp relief. Actress Yael Stone, who publicly raised further concerns about Rush, said that Australia's defamation laws made her "terrified" to speak up.
Will the decision in favour of Rush have a further chilling effect on future harassment claims, especially in the absence of any successful, high-profile sexual harassment cases?
Sexual harassment: layers of silence
We have, on paper, strong laws in Australia to respond to individual incidents of sexual harassment in the Sex Discrimination Act 1984 (Cth). But laws are useless if they are not enforced, and only a tiny proportion of sexual harassment incidents are ever reported (just 17%), let alone taken to court.
Of those few reports, most are kept quiet and out of the public view. If an incident is reported in a workplace, for instance, only a few insiders may ever know about it because of non-disclosure agreements.
We need to do more about sexual harassment in the workplace
If a harassed person makes a complaint to the Australian Human Rights Commission, he or she must go through a compulsory, confidential conciliation stage. If this is unsuccessful and the complainant proceeds to court, there are very strong incentives to settle the case privately (namely the cost and difficulty of pursuing a case).
While these layers of confidentiality and privacy may suit the harassed as well as the alleged harasser, the flip side is that it makes sexual harassment, an enormous social problem, barely known to the public. Only the tiniest number of cases make it to court and into public scrutiny.
And if women speak up publicly through social or conventional media, defamation laws come into play.
What impact will the Rush decision have on sexual harassment reporting?
An unfortunate side effect of the decision is that it is likely to have an additional silencing effect on sexual harassment discussions and reporting. Such a widely reported defamation case can only further entrench public perceptions of the risks of speaking up.
There are further concerns. There is the potential for the public to mistakenly see this as a sexual harassment case between Rush and Norvill, rather than a defamation case between Rush and Nationwide News.
#MeToo has changed the media landscape, but in Australia there is still much to be done
Since the court found that the defence of "truth" was not proven, this may lead to a misconception that Norvill's statements about inappropriate behaviour were a lie. This will only be reinforced by Wigney's statements questioning Norvill's credibility, saying she was a witness "prone to exaggeration and embellishment".
The judge said Eryn-Jean Norvill had nothing to gain from making accusations against Rush, but was not an 'entirely credible witness'. Peter Rae/AAP
But having insufficient evidence to prove the truth of a statement in law is not the same thing as it being a lie. That misconception has the potential to exacerbate stereotypes about women making up claims of assault and harassment.
The Rush decision is a legal success for the actor, but it may have unintended side effects for the #MeToo movement and the effectiveness of sexual harassment laws.
People bringing sexual harassment cases to court generally receive very low damages payouts. Compared to the million-dollar awards for a celebrity defamation case, the median damages payment in a sexual harassment case is below A$30,000. The severe under-reporting and under-valuing of sexual harassment allegations, and the silencing of public discussion of the problem, may be further impacted by this decision, as well.
We need the #MeToo movement to continue if we are to tackle the continuing problem of sexual harassment and gendered abuse. In delivering his summary judgement, Wigney's comment to the courtroom is surely the truest statement of all:
… it would have been better for all concerned if the issues that arose … were dealt with in a different place to the harsh, adversarial world of a defamation proceeding.
By Karen O'Connell, Associate Professor, Faculty of Law, University of Technology Sydney
Reflections on the Fenian Legacy in Australia – The 2020 Wild Goose Lecture
Now considered a national treasure and held safely in archives the State Library of NSW, this rare document is...
Poets paddock – Kevin Gillam
This week we are pleased to feature Kevin Gillam. At the launch of Kevin's fourth book of poetry, the...
A Freo Getaway – Fitzgerald River National Park
October 8, 2020 October 8, 2020 in Life, Law & Culture
If you visit the The Friends of Fitzgerald River National Park website you will discover the following information about...
SHIPS THAT PASS
March 1, 2017 March 29, 2017 in Life, Law & Culture
Jo Darbyshire is about to open a new exhibition exploring shipping and the WA coast at PS Art Space...
Book Review – Word of Dog
Now, it is nearly Christmas, and time to start ticking pressies off the pressies list for your loved ones....
January 16, 2021 January 16, 2021 in Life, Law & Culture
We here at the Fremantle Shipping News magazine are now back from our Christmas break, as you will have...
Governing Freo-style – Freo Finalises Finances for 2020/21
Fremantle Council has just adopted a fairly benign 2020-21 annual budget that features no increase in rate revenue and...
The Voyage of The Hougoumont – Entry 4
Shipping News readers have the opportunity to journey with the Hougoumont, the last convict ship to Australia which arrived...
Fremantle Wesley Church - A Place of Solitude, Beauty and Activity…SHACtivate! – A Great Way To Enjoy Election Day!!


text:
HOME / REVIEWS / BIOSHOCK_INFINITE / CHEATFACTOR GAME REVIEW
BioShock Infinite Review
Welcome to our CHEATfactor Game Review of BioShock Infinite. We review the game and then factor in how the available cheats affect the overall game experience.
Reviewed on: PC
Developer: Irrational Games
Publisher: 2K Games
Rated: "M" for Mature
by Joe Sinicki
Presentation 10/10
Yes, when you get up close on the console versions, some of the details look a bit muddy, but that feels like a small gripe when you take into account just how polished the rest of the game is.
Gameplay 10/10
Built on the DNA of the original Bioshock, Infinite takes the structure of the classic shooter and introduces new elements and abilities to create something that's wholly its own. Something special.
Lasting Appeal 9/10
There are audio logs to collect and special rewards for completing certain tasks, but you won't find much beyond the 12-15 hour campaign. There is a 1999 mode, with absurd difficulty, but it's not going to appeal to everyone.
Overall 10/10
For all of the hype and all of the delays in production - Bioshock Infinite delivers in almost every way possible. It's a chilling tale of love, desire, race, class, religion and even hope.
CHEATfactor 9/10
I still have the notebook I used the first time I saw Bioshock Infinite being played live. It was at E3 a few years ago, behind closed doors. As a huge fan of the original Bioshock and System Shock before it, I was excited to check out the next game in the series but cautious due to the fact that I didn't think anything could pass up my experiences to with the previous titles. Looking back at the notebook, I wrote down words like "mind blowing" and "game changing."
Now, three years and a multitude of delays and staff changes later; the finished copy is in my hands, and I can't help but remember that E3 meeting room. Not only has Bioshock Infinite met all of my high expectations -it blows them away. Infinite does things that no other game has done. It's a remarkable tale that will actually find you caring about the world you're in and its inhabitants. A world masterfully created, that offers a viscerally beautiful challenge. When we look back at this generation of games, Bioshock Infinite deserves to be mentioned in the same sentence as games like Half Life 2, Journey and the top tier of modern titles.
"...a floating city seemingly stuck in a time long gone by."
Infinite leaves behind the underwater dystopia of Rapture from the original Bioshock, and its less than stellar sequel in favor of Columbia, a floating city seemingly stuck in a time long gone by. To the naked eye, Columbia is nothing short of paradise - it's the America that everyone envisioned but never really existed encapsulated. There are clean boardwalks, town squares with barbershop quartets and little pieces of Americana spread throughout the world. Through your travels though you'll find out quite quickly that Columbia is hiding some very dark secrets.
Players take on the role of Booker Dewitt; an early 1900s flunky in deep with the wrong people. He's given one last chance - go to Columbia, find a girl, bring her back to New York and the debts would be whipped clean. It isn't long after Booker arrives in Columbia that he's signaled out as "the false Sheppard" and becomes caught in the middle of a civil war between the men of Comstock -the city's founder and the Vox Populi; a renegade group of terrorists. What follows is a remarkably exciting and alluring tale of escape - but it's also so much more.
Infinite works on the strength of the detail and believability of its world. On the surface, Columbia is paradise, but your journey will take you through the gritty and dark side of the floating utopia that you were never meant to see. Places like the segregated bathrooms and the backs of warehouses in the boardwalk district. Infinite tells a moving tale that deals with race, culture, class and freedom but the beauty is in how you're not forced to hear all of it, you'll have to search the world for all of the details, much like you did in the original Bioshock for Andrew Ryan.
It should also be mentioned that the world of Bioshock Infinite is so believable thanks to remarkable voice work throughout the entire experience. The fantastic work of Troy Baker in the role of Booker Dewitt gives the game's leading man a certain rough edge, and the game's entire supporting cast, from the causal conversation of passersby to the prophetic words of Zachary Comstock, delivers a believable and astounding performance. I often stopped in the middle of the game just to eavesdrop on someone's conversation.
"...a fantastic job giving Elizabeth a unique personality..."
Undoubtedly though, the game is made by the performance of Courtney Draper, who gives absolute life to Elizabeth - the girl you've been sent to bring back to New York. Right from your first meeting Elizabeth steals the show and becomes an unforgettable character. Courtney and Irrational Games has done a fantastic job giving Elizabeth a unique personality and as a result - more life than I've ever seen in a character in a video game. It wasn't long before our first meeting that I actually cared what happened to Elizabeth and being protective over her, especially in the game's boss fights - but the beauty is that I didn't have to be.
You see, even though Elizabeth is your constant companion and at your side for the good majority of the game, you never really have to protect her - in fact, it's the exact opposite. Not only can Elizabeth handle herself in a fight (she never picks up a gun or throws a punch, but she's smart enough to get out of the way when needed), but she'll actually help you out during battle by scrounging for health, ammo and other resources. Just how helpful is Elizabeth? I'm not ashamed to admit that I wouldn't have made it through a number of the game's heavier battles if it weren't for her help.
Much of Infinite's gameplay is built heavily on the DNA of Bioshock and System Shock before it. Guns are fired with the right trigger while your Vigors (think plasmids from the original Bioshock) are fired with the left. Many of the vigors are recycled from previous games, but they're still a blast to use, and when timed correctly they can mean the difference in a heavy fight. Here you'll use salts to gain more vigors and the power to use them, unlike the eve of previous games - and salts seem much more widely available. This sometimes means that fights aren't as desperate as in the past, but they're still as much fun.
"...guns feel appropriately weighted and different..."
Something must also be said for how technically sound Bioshock Infinite really is. The game controls smoothly and guns feel appropriately weighted and different depending on the situation and the ammo type you're using. Many times battles take place in larger, open areas - giving you the freedom to plot your moves and use a mixture of vigors and firepower to take down your enemies.
It's the new ideas of Bioshock Infinite that will draw the majority of attention to Bioshock Infinite. Columbia is a large city, complete with floating islands and huge structures, so the game introduces Skyhooks, which are rails that can take you throughout the entire city. Just riding on them is fun enough, but adding them to your combat makes a huge difference, as you'll have the freedom to launch off of them and strike your enemies. Combine this with Elizabeth's ability to create tears, which serve as windows to other places in time and space, which allows you to import objects and weapons and you have something unlike anything you've ever played before.
For all of the hype and all of the delays in production - Bioshock Infinite delivers in almost every way possible. It's a chilling tale of love, desire, race, class, religion and even hope. Throughout the journey you're bound to care more about these characters than you have cared about a character before. It's visceral, it's creative and it's remarkable. I may catch some flack for this - but Bioshock Infinite is one of the most important games of our generation.
CHEATS USED: Unlimited Health, Super Jump, Salt, more
The citizens of Columbia will stop at nothing to make sure Elizabeth - their lamb is kept in their city. Why not even the odds with the trainer from Cheat Happens?
You'll have unlimited health, shields and ammo along with an Infinite supply of salts to keep your vigors fresh.
What's best about the trainer is that it includes the same cheats you'd expect from a trainer for a shooter, but also thanks to options like adding lockpicks and super jump, you're able to explore some of Columbia's more hidden areas with more ease, and eliminate some of the backtracking.
DOWNLOAD THESE AND OTHER EXCLUSIVE CHEATS
• Unlimited Health
• 1024 x 768
• 1280 x 1024
Wallpaper #1 of 1 Show All
Outlast 2 Review for PC
Sniper Ghost Warrior 3 Review for PC
Nier Automata Review for PC
Bulletstorm Full Clip Edition Review for PC
Styx Shards of Darkness Review for PC
Posted: Mar 14, 2017
2. Outlast 2
3. Fenix Rage
4. Grand Theft Auto V (GTA 5)
5. Civilization 6
6. Bulletstorm: Full Clip Edition
7. Darkest Dungeon
8. BioShock Infinite
9. Nier: Automata
10. Assassin's Creed: Unity
Highest Scored Reviews
3. Mass Effect 3
4. Red Dead Redemption
6. Metal Gear Solid V: The Phantom Pain
7. Uncharted 2: Among Thieves
8. Gears of War 3
9. Legend of Zelda: Skyward Sword
10. Uncharted 3: Drake's Deception


Grades nine (9) and ten (10) make up the last two years of the intermediate curriculum in the Ontario Ministry of Education's requirements for the Ontario Secondary Graduation Diploma. These years, with their largely compulsory subjects, provide the skill and content base for specialization in the senior division.
Canadian Independent College offers preparatory courses for University or College to students in Grades 11 and 12. These courses are designed to aid the students to gain the knowledge base and skills they need to meet the entrance requirements for University or College programs. Emphasis is placed on the theoretical aspects of the course content, as well as concrete applications.
By the end of the Grade 12 year, students will have been able to complete the 30 credits required. Coupled with the completion of 40 hours of community involvement and successfully passing the required Ontario Secondary School Literacy test, students will be qualified for the Ontario Secondary School Diploma (OSSD) awarded by the Ontario Ministry of Education. Students who have completed an OSSD with at least six (6) acceptable prerequisite credits at the 4U/4M (Pre - University) are eligible for direct admission to universities or colleges worldwide.
*** This is a GUIDE only****Courses change each semester however the essence is shown.


Emma Finney co-founded So Jewellery together with her partner Jon Tompkins 8 years ago, having spent the previous decade building a successful retail business selling sterling silver jewellery and gifts to discerning customers in Surrey.
This constant insight into what customers want, what impresses them and what brings them into your store time and again, might account for why, since it's launch, So Jewellery is enjoying such success as a sought-after silver jewellery brand.
Brand of the Year and Supplier of the Year Finalists at the prestigious Jewellery Awards, So Jewellery has been Highly Commended in the Premium/Luxury Category at the Gift Association's Gift of the Year Awards and nominated a Hot 100 Business Bigshot with Professional Jeweller Magazine - all great testaments to the the company's growing popularity as a highly desirable silver jewellery brand.
So Jewellery's clean, modern branding and trademark packaging have earnt the brand a well-deserved reputation as the ultimate in affordable luxury. Across the ranges there are currently over 200 designs of silver earrings, silver pendants, silver rings, silver bracelets and silver cufflinks which is ever-evolving.
Each purchase can be accompanied by a Special Occasions Care Card which adds a personalised touch to your gift. From Happy Birthday to Anniversary, Congratulations to Thank You, Christening to Confirmation, 18th to 21st Birthday, Graduation to With Love from Me to You, we have most occasions covered!


I am slow but I am not totally late. The original Memorial Day was the 30th of May. It began after the Civil War. And with all that went on this weekend I did take sometime to reflect on the service of those in the military. Sometimes you think of other people serving or that is the army a blob of unknown people. But when I took a minute to think the number serving or have served is high. Both my grandfathers, grandma Lorna (nurse in WW2), my brother and my cousin Seth, these are only the immediate family. If I consider the extended family of second cousins, great uncles, etc. there are many. I encourage you to consider those who have served and are serving and say thank you. I am not sure that I could but I appreciate the freedom they protect. THANK YOU! Our weekend included visits from friends and family alike. This is Chris with his youngest Hannah. They took time out of their holiday to drive up to Pennsylvania. Thanks.
Aaron meets his great grandpa Graffius for the first time. Yes there was ice cream but it wasn't the Meadows.
We finally got to use our deck furniture. We had a picnic that included friends and family.
Tuesday was a big day for me. We left Aaron for the day with Abuela(this was a first). It made shopping easier but it did feel a little weird. Perry and I do clothing and shoe shopping once a year and this was the day. Aaron did great and I did fine. It was a nice day with my hubby.


Chris Mowry (w) o Alex Milne (a) o Carlos Magno, Milne (c) Setting out in search of OPTIMUS PRIME and the AUTOBOTS, ARCEE is captured by the vicious THUNDERCRACKER. And what better punishment for this AUTOBOT warrior than being the catalyst for a new squad of DECEPTICONS? ARCEE must learn that a good leader conquers all, especially in war.


Ask not for whom the NULL tolls; it tolls for thee.
NULL has, rightly, been called a "billion dollar mistake". If that is so, then None is a hundred million dollar mistake, at least.
Forgetting, for the moment, about the numerous pitfalls of a C-style NULL, Python's None has a very significant problem of its own. Of course, the problem is not None itself; the fact that the default return value of a function is None is (in my humble opinion, at least) fine; it's just a marker that means "nothing to see here, move along". The problem arises from values which might be None, or might be some other, useful thing.
APIs present values in a number of ways. A value might be exposed as the return value of a method, an attribute of an object, or an entry in a collection data structure such as a list or dictionary. If a value presented in an API might be None or it might be something else, every single client of that API needs to check the type of the value that it's calling before doing anything.
Since it is rude to use a "simple suite" (a line of code like if x: y() with no newline after the colon), that means the minimum number of lines of code for interacting with your API is now 4: one for the if statement, one for the then clause, and one for the else clause.
Of course NoneType doesn't have an attribute called method, but why is value a NoneType? Science may never know.
In languages with static type declarations, there's a concept of an Option type. Simply put, in a language with option types, the API declares its result value as "maybe something, maybe null", and then if the caller fails to account for the "null" case, it is a compile-time error.
Python doesn't have this kind of ahead-of-time checking though, so what are we to do? In order of my own personal preference, here are three strategies for getting rid of maybe-None-maybe-not data types in your Python code.
This acknowledges that the partially-constructed MyValueBuilder is a different type than MyValue, and, crucially, if you look at its API documentation, it does not misleadingly appear to support the do_something operation which in fact requires foo, bar, and baz all be initialized.
Wherever possible, just require values of the appropriate type be passed in in the first place, and don't ever default to None.
Sometimes, None is a placeholder indicating an implicit state machine, where the states are "initialized" and "not initialized".
Internally, rpc_client still has to maintain a private _connection attribute which may or may not be present, but by hiding this implementation detail, we centralize the complexity associated with managing that state in one place, rather than polluting every caller with it, which makes for much better API design.
This allows the code within rpc_client itself to blindly call self._connection.send whether it's actually connected already or not; upon connection, it could un-buffer that data onto the ready connection.
Sometimes, you actually have quite a few states you need to manage, and this starts looking like an ugly proliferation of lots of weird little flags; various values which may be True or False, or None or not-None.
In those cases it's best to be clear about the fact that there are multiple states, and enumerating the valid transitions between them. Then, expose a method which always has the same signature and return type.
Using a state machine library like ClusterHQ's "machinist" or my Automat can allow you to automate the process of checking all the states.
Automat, in particular, goes to great lengths to make your objects look like plain old Python objects. Providing an input is just calling a method on your object: my_state_machine.provide_an_input() and receiving an output is just examining its return value. So it's possible to refactor your code away from having to check for None by using this library.
"Send a message now if we're connected, or later if not."
"Enqueue a message for when we are connected."
"send all messages enqueued by _send_message_later"
The absolute lowest-level way to deal with multiple possible states is to, instead of exposing an attribute that the caller has to retrieve and test, expose a function which takes multiple callbacks, one for each case. This way you can provide clear and immediate error feedback if the caller forgets to handle a case - meaning that they forgot to pass a callback. This is only really suitable if you can't think of any other way to handle it, but it does at least provide a very clear expectation of the interface.
Notice that while this is slightly awkward, it has the nice property that the connection_present callback receives the value that it needs, whereas the connection_not_present callback doesn't receive anything, because there's nothing for it to receive.
Of course, the best strategy, if you can get away with it, may be the non-strategy: refuse the temptation to provide a maybe-None, just raise an exception when you are in a state where you can't handle. If you intentionally raise a specific, meaningful exception type with a good error message, it will be a lot more pleasant to use your API than if return codes that the caller has to check for pop up all over the place, None or otherwise.
The underlying principle here is the same: when designing an API, always provide a consistent interface to your callers. An API is 1 to N: you have 1 API implementation to N callers. As N→∞, it becomes more important that any task that needs performing frequently is performed on the "1" side of the equation, and that you don't force callers to repeat the same error checking over and over again. None is just one form of this, but it is a particularly egregious form.
The Python community needs a tool for distributing software to end users.
Python has a big problem. While it's easy and fun to produce software in Python, it's hard to produce software that people - especially laypeople who are not professional software developers - can use.
On a server, by loading a web page.
On a web page, by running it in your browser.
Out of these 10 scenarios, Python currently has half of a good deployment story for one of them: running an application on a server, as a back-end. This is a serious problem for the future of Python and one we need to figure out how to face as a community.
Even the "good" deployment story is somewhat convoluted, as you need to know about at least some Linux distribution's package manager, and native dependencies, and Pip, and virtualenv, and wheels, and probably docker too.
If you want to run a Python application in your browser, your best bet right now is probably Brython. However, brython is still in its infancy, and basic faciltiies like preparing your code for production to achieve acceptable start-up performance, and an explanation of how to use libraries are missing. With big chunks like that missing it's hard to advocate for Brython's use in production.
Moving on to scenario 3, this may be one of the best-supported configurations; py2app actually works surprisingly well. But it's still incredibly confusing for new users. Which native objects (dylibs and frameworks and data files) to bundle are options to py2app itself, and not something that can be handled automatically by libraries. So if, for example, PyGame depends on SDL.framework or libSDL.dylib, you as an application developer need to understand how to figure that out and specify that list.
On Windows, the situation gets worse. To work as a Windows exectuable, you need to bundle the Python interpreter, but unlike in an OS X application, you can't just copy in a whole directory. So you end up needing a tool like PyInstaller or cx_Freeze. PyInstaller hasn't seen a release in the last 2 years; it doesn't support Python 3. It also doesn't work: if I try to package the most basic Twisted program possible, with pyinstaller 2.1 I get "no module named zope.interface", and if I try to package it with pyinstaller trunk, I get "no module named itertools". cx_Freeze similarly can't figure out how to include zope.interface no matter what I tell it to do. This problem isn't specific to libraries that I use; most Python projects will run into it.
py2exe, on the other hand, only supports Python 3.3+, and so is unusable with a lot of important python libraries.
For a GUI application for Linux, you might have some small hope of building a distro-specific package that users could install, but that would involve using a distro-specific toolchain that had nothing to do with Python, and you need to repeat that work for Debian, Ubuntu, Fedora, and whatever other distros you want to support.
All of these same tools are what I would use to build a stand-alone command-line executable for Windows, Mac, or Linux, and they all break down in similar ways.
In the mobile space, there is absolutely zero tooling included with the language to even get started there. It might be possible to use Kivy to get a build onto iOS or Android. I haven't had an opportunity to test those. But they still require you to install Homebrew, and a C compiler, and a whole bunch of fairly specific platform tooling to get started, and there are lots of different ways that can go wrong.
So how do other languages stack up?
And of course, in Go, there's no way to get anything but a fully functional self-contained executable at the end of the build process. Everything is fully redistributable by default.
As a community, Python needs a clear, well-documented, well-supported, modern way to produce build artifacts that are easy to create and easy to share. We need to have this for all popular platforms and the browser. This is a tricky problem: it requires knowledge of lots of fiddly build details.
This wheel has been re-invented, poorly, a dozen or so times. My list above was just a subset. In addition to py2app, py2exe, pyinstaller, cx_Freeze, and the Kivy bundling tools, we've also got terrarium, bbfreeze (which is unmaintained), pipsi, pex, and probably some others I don't know about.
All of the tools I'm aware of that are trying to provide fully self-contained execution, though (pyinstaller, cx_freeze, bb-freeze, py2app) are poorly designed because they value optimized distribution size over actually working by default. Rather than reading setuptools metadata and discovering the full set of dependencies which have been declared to be required, all of these tools use weird AST-parsing heuristics and buggy path-traversal hacks to try to construct a guess as to the minimal set of files that might be required, then require the poor application developer to fill in the gaps. This means none of them work with namespace packages, none of them work properly with plugin systems or runtime configuration systems; generally, they don't work correctly with late binding, which is one of Python's greatest strengths. Of course, a full Python interpreter with the whole standard library is quite large. If we had a tool that worked well but produced very large executables, we could of course start adding an "optimized mode" to try to crunch things down for production.
And all this is to say nothing of the insanely intricate and detailed knowledge that every Python programmer eventually acquires about the C runtime semantics of their chosen platform. When a C compiler is required but missing, most tools still just emit tracebacks. When a shared library goes missing dues to an OS upgrade or package removal, you just see whatever the dynamic linker thinks to report, no explanation of how to fix it or what to do next.
The Python packaging ecosystem has made great strides in the last few years; Pip, in particular, has gone from a buggy and insecure mess to a mostly workable software delivery mechanism for developers. There are still bugs, but they are getting dealt with at a reasonable clip. However, Pip only delivers software to developers, and still requires you to have a Python runtime, a build environment, and tricky command-line tools to get things in place for development. The Python community has effectively no tools to deliver software to users.
The good news, though, is that it's a simple matter of programming, and that all the core technologies for doing all the really hard things that need to be done (pip, and zipimport and macholib, for example) already exist. It's just a simple matter of programming: wiring together the metadata from setuptools, determining native dependencies with something like otool or ldd (or whatever the equivalent is on Windows, I still haven't figured that out myself), pulling them all into a bundle, tacking the Python interpreter on.
GUIs, in Python, on the Mac, made easy for back-end developers.
I like making computers do stuff. I find that getting a computer to do what I want it to produces a tremendously empowering feeling. I think Python is a great language to use to tell computers what to do.
In my experience, the most empowering feeling (albeit often, admittedly, not the most useful or practical one) is making one's own computer do something cool. But due to various historical accidents, the practical bent of the Python community mainly means that we get "server-side" or "cloud" computers to do things: in other words, "other people's computers".
If you, like me, are a metric standard tech industry hipster, "your own computer" means "Mac OS X". Many of us have written little command-line tools to automate things, and thank goodness OS X is enough of a UNIX that that works nicely - and it's often good enough. But sometimes, you just want to press a button and have a thing happen; sometimes a character grid isn't an expressive enough output device. Sometimes you want to be able to take that same logical core, or some useful open source code, that you would use in the cloud, and instead, put it into an app. Sometimes you want to be able to learn about writing desktop apps while leveraging your existing portfolio of skills. I have done some of this, and intend to do more of it at work, and so I'd like to share with you some things I've learned about how to do it.
Back when I was a Linux user, this was a fairly simple proposition. All the world was GTK+ back then, in the blissful interlude between the ancient inconsistent mess when everything was Xt or Motif or Tk or Swing or XForms, and the modern inconsistent mess where everything is Qt or WxWidgets or Swing or some WebKit container with its own pile of gross stylesheet fruit salad.
and you were pretty much off to the races. If you wanted to, you could load a UI file that you made with glade, if you had some complicated fancy stuff to display, but that was optional and reasonably straightforward to use. I used to do that all the time, for various personal computing tasks. Of course, if I did that today, I'm sure they'd all laugh at me.
So today I'd like to show you how to do the same sort of thing with OS X.
To be clear, this is not a tutorial in Objective C, or a deep dive into Mac application programming. I'm going to make some assumptions about your skills: you're a relatively experienced Python programmer, you've done some introductory Xcode material like the Temperature Converter tutorial, and you either already know or don't mind figuring out the PyObjC bridged method naming conventions on your own.
If you are starting from scratch, and you don't have any code yet, and you want to work in Objective C or Swift, the modern Mac development experience is even smoother than what I just described. You don't need to install any "packages", just Xcode, and you have a running app before you've written a single line of code, because it will give you a working-by-default template.
The problem is, if you're a Python developer just trying to make a little utility for your own use, once you've got this lovely Objective C or Swift application ready for you to populate with interesting stuff, it's a really confusing challenge to get your Python code in there. You can drag the Python.framework from homebrew into Xcode and then start trying to call some C functions like PyRun_SimpleString to get your program bootstrapped, but then you start running into tons of weird build issues. How do you copy your scripts to the app bundle? How do you invoke distutils? What about shared libraries that you've linked against? It's hard enough to try to jam anything like setuptools or pip into the Xcode build system that you might as well give up and rewrite the logic; it'll be less effort.
If you're a Python developer you probably expect tools like virtualenv and pip to "just work". You expect to be able to put a file into a folder and then import it without necessarily writing a whole build toolchain first. And if you haven't worked with it a lot, you probably find Xcode's UI bewildering. Not to mention the fact that you probably already have a text editor that you like already, and don't want to spend a bunch of time coming up to speed on a new one just to display a button.
Luckily, of course, there's pyobjc, which lets you write your whole application in Python, skipping the whole Xcode / Objective C / Swift side-show and just add a little UI logic. The problem I'm trying to address here is that "just adding a little UI logic" (rather than designing your program from the ground up as an App) in the Cocoa / ObjC universe is famously and maddeningly obscure. gtk.Window() is a reasonably straightforward first function to call; [[NSWindow alloc] initWithContentRect:styleMask:backing:defer:] not so much.
This is not even to mention the fact that all the documentation, all the tutorials, and all the community resources pretty much expect you to be working with .xibs or storyboards inside the Interface Builder portion of Xcode, and you're really on your own if you are trying to do everything outside of that. py2app can help with some of the build issues, but it has its own problems you probably don't want to be tackling if you're just getting started; it'll sap all your energy for actually coding.
I should mention before we finally dive in here that if you really just want to display a button, a text area, maybe a few fields, Toga is probably a better option for you than the route that I'm describing in this post; it's certainly a lot less work. What I am assuming here is that you want to be able to present a button at first, but gradually go on to mess around with arbitrary other OS X native APIs to experiment with the things you can do with a desktop that you can't do in the cloud, like displaying local notifications, tracking your location, recording the screen, controlling other applications, and so on.
So, what is an enterprising developer - who is still lazy enough for my rhetorical purposes here - to do? Surprisingly enough, I have a suggestion!
As you can see, this creates a MyUI.xib file in your project, with nothing in it.
Now we've got a UI file which contains a window. How can we display it? Normally, Xcode sets all this up for you, creating an application bundle, a build step to compile the .xib into a .nib, to copy it into the appropriate location, and code to load it for you. But, as we've discussed above, we're too lazy for all that. Instead, we're going to create a Python script that compiles the .xib automatically and then loads it.
We run Interface Builder Tool, or ibtool, to convert the xib, which is a version-control friendly, XML document that Interface Builder can load, into a nib, which is a binary blob that AppKit can load at runtime. We don't want to add a manual build step, so for now we can just have this script do its own building as soon as it runs.
This needs to be loaded into an NSData because that's how AppKit itself wants it prepared.
Finally, runEventLoop() just runs the event loop, allowing things to be displayed.
Now, in a terminal, you can run this program by creating a virtualenv, and doing pip install pyobjc-framework-Cocoa, and then python button.py. You should see your window pop up - although it will not take focus. Congratulations, you've made a window pop up!
One minor annoyance: you're probably used to interrupting programs with ^C on the command line. In this case, the PyObjC helpers catch that signal, so instead you will need to use ^\ to hard-kill it until we can hook up some kind of "quit" functionality. This may cause crash dialogs to pop up if you don't use virtualenv; you can just ignore them.
In other words, add a Clicker subclass of NSObject, give it a clickMe_ method decorated by objc.IBAction, taking one argument, and then make it do something you can see, like print something. Then, make a global instance of it, and pass it as the owner parameter to NSNib.
At this point it would probably be good to explain a little about what the "file's owner" is and how loading nibs works.
When you instantiate a Nib in AppKit, you are creating a collection of graphical objects, connected to an object in your program that you construct. In other words, if you had a program that displayed a Person, you'd have a Person.nib and a Person class, and each time you wanted to show a Person you'd instantiate the Nib again with the new Person as the owner of that Nib. In the interface builder, this is represented by the "file's owner" placeholder.
I am explaining this because if you're interested in reading this article, you've probably been interested enough in Mac programming to do something like the aforementioned Temperature Converter tutorial, but such tutorials almost universally just use the single default "main" nib that gets loaded when the application launches, so although they show you how to do many different things with UI elements, it's not clear how the elements got there. This, here, is how you make new UI elements get there in the first place.
Back to our clicker example: now that we have a class with a method, we need to tell Xcode that the clicking the button should call that method. So what we're going to tell Xcode is that we expect this Nib to be owned by an instance of Clicker. To do this, go to MyUI.xib and select the "File's Owner" (the thing that looks like a transparent cube), to to the "Identity Inspector" (the tiny icon that looks like a driver's license on the right) and type "Clicker" in the "Class" field at the top.
If you save your xib at this point and re-run your python file, you should be able to click on the button and see something happen.
In case you're wondering where setStringValue_ comes from, it's a method on NSTextField, since labels are NSTextFields.
I've pre-filled mine out with a unicode "BALLOT X" character, for style points.
And there you have it! Now you have an application that can open a window, take input, and display output.
This is, as should be clear by now, not really the preferred way of making an application for OS X. There's no app bundle, so there's nothing to code-sign. You'll get weird behavior in certain cases; for example, as you've probably already noticed, the window doesn't come to the front when you launch the app like you might expect it to. But, if you're a Python programmer, this should provide you with a quick scratch pad where you can test ideas, learn about how interface builder works, and glue a UI to existing Python code quickly before wrestling with complex integration and distribution issues.
In your virtualenv, you'll want to pip install twisted[osx_platform] to get all the goodies for OS X, including the GUI integration. Since all Twisted callbacks run on the main UI thread, you don't need to know anything special to do stuff; you can call methods on whatever UI objects you have handy to make changes to them.
You might have other problems with this technique, and this post definitely can't fit solutions to all of them, but now that you can load a nib, create classes that interface builder can understand, and run a Twisted main loop, you should be able to use the instructions in other tutorials and resources relatively straightforwardly.


text:
Q: R - Create data frame which checks for NAs in multiple data frames I have two data frames such as
df1 <- data.frame(Company = c('A','B','C','D','E','F'),
                  `X1980` = c(21,NA,53,57,11,26),
                  `X1981` = c(35,33,45,NA,NA,12))
df2 <- data.frame (Company = c('A','B','C','D','E','F'),
                   `X1980` = c(78,2,NA,24,25,26),
                   `X1981` = c(435,33,45,5,10,12))

I would like to create a new data frame (df3) keeping the company column as is. The values for the years 1980 and 1981 should be 0 if either one or both values are NA and 1 if both values are not NA.
Resulting in the following data frame:
result df3
        Company  1980  1981
           A       1     1
           B       0     1
           C       0     1
           D       1     0
           E       1     0
           F       1     1

I'm new here, so if there's any way I can improve my question then just let me know :)
Thanks already for your help!

A: Here is a one-liner.
cbind(df1[1], (!is.na(df1[-1]) & !is.na(df2[-1])) + 0L)
#  Company X1980 X1981
#1       A     1     1
#2       B     0     1
#3       C     0     1
#4       D     1     0
#5       E     1     0
#6       F     1     1

Data, corrected
df1 <- data.frame(Company = c('A','B','C','D','E','F'),
                  `1980` = c(21,NA,53,57,11,26),
                  `1981` = c(35,33,45,NA,NA,12))
df2 <- data.frame (Company = c('A','B','C','D','E','F'),
                   `1980` = c(78,2,NA,24,25,26),
                   `1981` = c(435,33,45,5,10,12))

redpajama_set_name: RedPajamaStackExchange


text:
Man claims CANU ranks tied him to post, beat him unconscious
Jul 30, 2011 News 0
…father collapses and dies on hearing news
Head of the Customs Anti Narcotics Unit, James Singh, has denied allegations that his ranks inflicted a severe beating on a Vreed-en-Hoop, West Coast Demerara resident, on Tuesday causing him to be hospitalized.
Seshnarayan Dwarka is alleging that he was taken from his home around 05:00hrs by CANU ranks on Monday after they conducted a search and came up empty handed.
Seshnarayan Dwarka displays injuries on arms and belly
Yesterday, Dwarka recounted a story of being pulled from his home, with a black bag placed over his head and about 15 ranks beating him about the body.
He also showed Kaieteur News photographs of his bruised and distended stomach.
Kaieteur News was told by Dwarka that after he was taken from his home, he was handcuffed and taken into a tinted motorcar.
He was then taken to CANU headquarters on Homestretch Avenue for further questioning.
The man said that the officers started questioning him about some "missing drugs and a Blackberry cell phone".
"They asking me to tell them where the drugs and cell phone deh…I say I ain't know nothing…I does walk and sell," Dwarka told Kaieteur News yesterday.
He said the ranks became more hostile towards him and started using threats in an effort to get him to talk about the "missing items".
Dwarka said that he was placed in a room with about 15 ranks who started beating him about the body to make him talk.
A black bag was then placed over his head and Dwarka alleges that the ranks stared stomping him in the abdomen.
The man said that during the beating he maintained that he knew nothing about the drugs or the missing cell phone.
Later that same day, Dwarka said that his wife, Kavita, went to CANU headquarters to query why he was arrested and was being detained even though the police found nothing in the home.
According to the wife, the ranks told her that he was being questioned about "missing cocaine and a Blackberry cell phone" and that she shouldn't worry about anything.
Her request to see her husband was granted, and according to her his entire face, hands and abdomen appeared to be swollen and discoloured.
The woman was eventually sent away. "They asked her not to contact any lawyer since they were going to release me after more questioning," Dwarka said.
Seconds after his wife left, Dwarka said that the ranks tied him to a post and started beating him again.
This time he said that the beating was so severe that he was rendered unconscious. He was revived after the ranks threw a bucket of water on him.
After this, Dwarka alleges that the ranks placed him in a vehicle and took him to the Le Repentir Cemetery, where the beating continued.
They allegedly spent about 30 minutes in the burial ground, before they went back to CANU headquarters.
"All de time in de burial ground they deh beating…then they turn and say they gun pay me to tell them is where de things deh," Dwarka explained.
Dwarka was eventually released on Tuesday after his father died. According to Dwarka, his father suffered from hypertension and collapsed after hearing about the incident.
The man said that the CANU ranks told him to return. Instead, he sought the services of prominent defence attorney lawyer, Nigel Hughes.
The attorney told Kaieteur News yesterday that he will be filing criminal and civil charges against CANU come next week.
Meanwhile, head of CANU, James Singh yesterday denied any wrongdoing on his agency's part.
According to Singh, Dwarka came into the office for questioning into the missing items.
He said that the man admitted that he took the items and gave a statement to this effect. Singh said that Dwarka left the office without any marks on his body and expressed puzzlement at the man's allegations.
Investigations into the matter are continuing.