text:
« Trump's Twitter habit is most intense in the morning
When Mike called Sean »
The image of a man who understands "regular people"
More on Trump N Twitter:
Aides said they often compiled positive feedback for Mr. Trump. He revels in the stream of praise from his most loyal followers, on paper or as he scrolls through his phone early in the morning and late at night.
That's so pathetic. No, I don't feel sorry for him, I just find it pathetic. Contemptible, and pathetic. Random fools on Twitter think he's awwwwwwsome, and that gives him the cuddly feelz.
The Times presents a graph showing that tweets that get lots of love on Twitter are repellent to the sane adult public. It's kind of as if Trump spent all his time courting gamers or zombie fans.
The president is keenly aware of his number of followers and reluctant to acknowledge that any of them are not real. Mr. Trump has accused Twitter of political bias for its periodic purges of bot accounts across the platform, which have cost him — and other prominent users — hundreds of thousands of followers. When he met with the company's chief executive, Jack Dorsey, in April, Mr. Trump reportedly pressed him at length about the lost followers.
It's so cruel to take his loyal bots away.
According to data from YouGov, which polls about most of the president's tweets, some of the topics on which Mr. Trump got the most likes and retweets — jabs at the N.F.L., posts about the special counsel's investigation, unfounded allegations of widespread voter fraud — poll poorly with the general public.
But people close to Mr. Trump said there was no dissuading him that the "likes" a tweet got were evidence that a decision or policy proposal was well received.
Last December, after Mr. Trump announced plans to withdraw some troops from Syria, lawmakers came to the White House to argue against it. According to Politico, Mr. Trump responded by calling in Mr. Scavino.
"Tell them how popular my policy is," Mr. Trump asked Mr. Scavino, who described for the lawmakers social media postings that had praised Mr. Trump's decision. Aides said that for Mr. Trump, his Twitter "likes" were proof that he had made the right call.
Ok, I take back the "nothing we didn't know" claim. I didn't know that. Dear god – he makes his policy on Syria according to what's popular on Twitter.
He and his flunkies are hoping Twitter will win him a second term.
While some campaign aides say Mr. Trump's tweets can be a distraction, they also view Twitter as an essential tool to present him as someone strong, willing to stand up to so-called political elites and what the president recently called the "unholy alliance of corrupt Democrat politicians, deep-state bureaucrats and the fake-news media."
The aides seek to cultivate the image of a man who understands "regular people." Mr. Trump's team believes that his unvarnished writing, poor punctuation and increasing profanity on Twitter signal authenticity — a contrast to the polished, vetted, often anodyne social media style of most candidates.
Absolutely. Who needs health insurance and affordable housing and decent wages when there's an ignorant sexist racist loudmouth being "authentic" on Twitter?
Trump's Twitter habit is most intense in the morning
Tillerson has been neglecting his Trump-image duties
"One wonders if these people are people at all"
"These aren't people. These are animals."
5 Responses to "The image of a man who understands "regular people""
Democractic candidate for president: "I think we should provide health care for everyone."
Savvy Pundit: "Well, once again the Democrats are blowing it. They need to understand that such policies may play well to the activist online base, but Twitter is not representative of the voting public."
Donald J. Trump: "So I told the generals, who cares about your 'casualty estimates' or whatever. My proposal to 'blow shit up and take the oil' got lots of retweets, so we're going to go with that."
Savvy Pundit: "This man is a political genius and Democrats must learn from him."
I have learned to hate the word "authentic". I learned from Garrison Keeler that I am a fake. Why? Because I go to art films and foreign films and live theatre, and no one goes to those unless they are trying to be seen (by whom? No one in my neck of the woods goes to those to see who is going, because attendance sucks. If I wanted to be "seen", I would go where the politicos go – the state fair, the Nascar track, the bowling alley. Of those the only one I could tolerate would be the bowling alley, and I can't bowl anymore because of four shoulder surgeries.
Authentic? Authentic is doing what you like to do, not what your uneducated brother-in-law with the monster truck and the beer belly like to do. Authentic is whatever you are, no matter what. I would not be authentic if I did the things most politicians do to court voters, and I suspect most of them aren't being authentic either, unless they really love eating fried Twinkies and meat on a stick for several months every four years.
And if that is authentic, I'd rather be fake.
And I always thought the measure of the effectiveness of a course of action was whether or not it advanced policy goals and achieved intended aims in some objectively verifiable fashion. What this tells us is that <iTTrump has no policy goals beyond Twitter "likes." I can imagine a lot of people "liking" it if Trump would walk off a cliff, and if I thought it had any chance of encouraging him to to so, I would join Twitter in a flash and launch my own army of bots.
…eating fried Twinkies…
I find it alarming that part of me is drawn to the idea of this…
It's a funny thing 'likes'. One of the online comments I've felt most proud of for both clarity and cohesion of thought and just (to me) rightness, was massively down voted. Thing is, because the down votes were, by the tone of reply comments also 99% from misogynist racist arsehats, I didn't care. By contrast, my comment with the most likes ever was telling a well known media commentator in NZ that they were behaving like an ignorant jerk. It was just a virtual polite flip of the finger. Likes are only worth what the audience that gives them is worth.
zubanel
Don't be so sure it won't.


text:
Bus service proposal: route 488
The London bus network is kept under regular review. As part of this, we develop proposals for changes to services. We recently consulted on proposals to extend route 488 to Dalston and have now reached a decision. Subject to the completion of the necessary traffic management... More
Closed 20 November 2009
Bus service proposal: route 46
The London bus network is kept under regular review. As part of this, we develop proposals for changes to services. More
Closed 5 March 2010
Closed 19 March 2010
Bus service proposal: route N171
Closed 6 August 2010
The London bus network is kept under regular review. As part of this, we develop proposals for changes to services. In early 2011, we asked for views on a possible change to bus route 470 at Merantun Way/Merton Industrial Park. TfL's consultation results can be found at the bottom of... More
Closed 14 February 2011
Bus service proposal: routes 46 & 187
Closed 1 April 2011
The London Bus Network is kept under regular review. As part of this, we develop proposals for changes to services. Why we consulted Bus route 307 operates between Brimsdown station and Barnet, Arkley Hotel. Transport for London (TfL) have been working with the London Borough of... More
Closed 15 April 2011
Planned changes to Dial-a-Ride application process
Transport for London is planning to make changes to its Dial-a-Ride application process. The changes include: A new application form which would ask for more information about an applicant's health, disability and barriers to travel than the current form The introduction of... More
Closed 3 May 2011
Bus stand proposal: A4 Cromwell Gardens
TfL is planning to install a new bus stand for route 430 outside the Victoria and Albert museum on Cromwell Gardens. The intention is that route 430 moves to this site from the current temporary stand location on Cromwell Place. There would be minor changes to road layout to accommodate the... More
Bus service proposal: route 360 (Exhibition Road)
The Royal Borough of Kensington & Chelsea are working to transform Exhibition Road into a fully accessible single surface space with reduced traffic congestion and more room for pedestrians. TfL is working with the Council as a partner to improve transport links for all members of the... More
Closed 10 June 2011
The London Bus Network is kept under regular review. As part of this, we develop proposals for changes to services. Consultation We recently reviewed bus route 491 in the Solar Way area and worked with the London Borough of Enfield to review the route that the bus currently takes.... More
Closed 15 July 2011
Bus service proposal: route 152 Mitcham Town Centre
TfL regularly reviews bus services and responds to service suggestions. We were considering a change to route 152 in Mitcham. Why we were consulting We had received a suggestion about route 152 route in Mitcham Town Centre, towards New Malden. To make it quicker for bus users... More
Bus service proposal: routes W13 & W15
The London Bus Network is kept under regular review. As part of this, we develop proposals for changes to services. Why we consulted Route W13 (Leytonstone – Woodford Wells) We proposed to reduce the Saturday frequency from a bus every 15 minutes to a bus every 20 minutes.... More
Bus service proposal: routes 206, 224 & PR2
Closed 19 August 2011
The London Bus Network is kept under regular review. As part of this, we develop proposals for changes to services. We proposed a change to route 78 in the Nunhead area. Buses would no longer use Dundas Road or Ansdell Road, but would use Belfort Road and Lausanne Road for the... More
Bus service proposal: Improving route 265 along Beverley Way
The London bus network is kept under regular review. As part of this, we develop proposals for changes to services. Why we Consulted We considered a number of improvements to route 265 in Beverley Way to enable passengers to better access and interchange between bus services. ... More
Closed 2 September 2011
Bus service proposal: routes 81 and 222
The London bus network is kept under regular review. As part of this, we develop proposals for changes to services. Why we consulted Route 81 (Slough – Hounslow) In order to give more capacity we increased the westbound morning peak frequency in May 2011 from a bus every 11... More
Closed 23 September 2011
Bus service proposal: routes 621, 636, 637 & 638
The London bus network is kept under regular review. As part of this, we develop proposals for changes to services. Why we consulted We developed proposals for routes 621, 636, 637 and 638 and asked for your views. Route 621 (Lewisham – Crown Woods College) Route 621... More
Closed 4 November 2011
Proposed TfL Lane Rental Scheme
Road congestion is a major issue for London's transport system, causing significant frustration for road users and affecting Londoners' quality of Life. With around half a million holes dug in London's roads every year, it is not surprising that roadworks account for about a third of... More
The London bus network is kept under regular review. As part of this, we develop proposals for changes to services. Why we consulted We consulted on proposals for route 186 and asked for your views. Currently during Monday to Saturday daytimes, route 186 runs every 10 minutes... More
Bus service proposal: routes 4 and 214
The London bus network is kept under regular review. As part of this, we develop proposals for changes to services. Why we consulted We developed proposals for routes 4 and 214 and asked for your views. Route 4 (Archway Station – Waterloo) Route 4 runs between Archway... More
Closed 9 December 2011
Bus stop proposal: routes 190, 337, 391 and 419 bus stop H, Richmond Bus Station
The London Bus Network is kept under regular review. As part of this, we develop proposals for changes to services. As a result of a recent review of bus stopping arrangements at Richmond Bus Station, Transport for London (TfL) considered a change to the first stops for routes 190, 391... More
Closed 16 December 2011
The London bus network is kept under regular review. As part of this, we develop proposals for changes to services. Why we consulted We developed proposals for route 236 and asked for your views. Route 236 (Finsbury Park Station – Hackney Wick, Eastway) [24 hour service] ... More
Bus service proposal: routes 66, 145, 366 and N8
The London bus network is kept under regular review. As part of this, we develop proposals for changes to services. Why we consulted Eastbound buses on routes 66, 145, 366 and N8 currently run in a loop via Redbridge station forecourt to stop outside the station entrance. This... More
Bus service proposal: Pall Mall - proposed changes to routes 9 and N9 (including the heritage service on route 9)
The London Bus Network is kept under regular review. As part of this, we develop proposals for changes to services. Transport for London (TfL) considered a change to routes 9 and N9 (including heritage service) following changes to the road network around Pall Mall. Why we... More
The London bus network is kept under regular review. As part of this, we develop proposals for changes to services. Why we consulted Route 220 is a 24 hour service and runs from Willesden Junction to Wandsworth. The current Monday to Friday peak period frequency is a bus... More
Bus service proposal: routes 103 and 128
The London bus network is kept under regular review. As part of this, we develop proposals for changes to services. Why we consulted We developed proposals for routes 103 and 128 and asked for your views. Route 103 (Rainham – North Romford) Route 103 runs between... More
Bus service proposal: new night bus route N113 and changes to route N13
The London Bus Network is kept under regular review. As part of this, we develop proposals for changes to services. Why we consulted We prorosed the introduction of a new route N113 which would combine with the N13 to provide the existing level of service between Finchley Road... More
Battersea Rise/Northcote Road Junction Improvement Project
Transport for London recently invited comments on proposed improvements to the Battersea Rise/Northcote Road junction. Why we consulted We drew up proposed to carry out a an improvement project at the Battersea Rise/Northcote Road junction. The main features of the project... More
Closed 11 January 2012
The London bus network is kept under regular review. As part of this, we develop proposals for changes to services. Why we consulted We developed proposals for route 24 and would asked for your views. Route 24 (Hampstead Heath – Pimlico) [24 hour service] Route 24... More
522 results. Page 1 of 18

redpajama_set_name: RedPajamaCommonCrawl


Isn't the most compelling feature of dinosaurs their very different-ness from anything we've ever seen? Maybe that's why kids love them so much. And yet, there is something familiar about them as well (which is why kids are free to love them so much).
The timing of my own childhood and growth has paralleled years of progressively interesting dinosaur discoveries. Even the big star dinos of my youth have been re-named and revised from lumbering dumb beasts to sprinting, bellowing, warm-blooded (and feathered!) creatures that probably tasted a lot like chicken. Is it, then, the (now) near-constant revision of our ideas about dinosaurs, their ubiquity in computer-animated film and television or my own study of evolution of life that has caused the once exotic features of the dinosaurs to look a lot less exotic to me than they once did? I wonder if it's just me that thinks that prehistoric life doesn't look all that strange (anymore).
In short, life is about as interesting today as it ever was. And as odd.
The other day I saw a photo a friend shot in South America of a Vizcachas. It's a relative of the Chinchilla (in the rodent family). But what it really is is a rabbit with a long curly tail (with a strip of squirrel-like hair on it). That little critter just floored me: I'd never seen one before.
Now I understand enough about evolution and natural selection to know that you would probably only need to switch on a couple of inactive genes in a regular rabbit to make it grow a tail like its South American cousin (or switch a couple off in the Vizcachas to make a rabbit), but still, a long-tailed rabbit just seems pretty damn funny to me: like a literal cut-and-paste conglomerate of animal parts.
But then, isn't that what we are? Not of parts cut and pasted from animals outside our line of descent, of course, but a continuous modification of the basic body plan that once swam in the ocean (with our telltale up and down fishy flexing of the spine)?
Creationists like to cry out for the "transitional" creatures in the fossil record: the midway point between the fish and the Tetrapod, or the early monkey and man. But the glaring (so obvious we easily miss it) truth is this: we ourselves are the not-so-missing link between what we once were and what we are becoming.
If we were to meet a living Ardipithecus (the current candidate for the most recent common ancestor of monkeys, apes and man), she wouldn't think herself a missing link at all, or a transitional being, for she would look just like her own mother, and were she to have a daughter, the child would not appear to have made any dramatic step towards homo sapiens sapiens. But in truth grandmother, mother and daughter "Ardi" were quietly moving away from what their ancestors "were" to what their descendants would "become" (thank you Richard Dawkins for supplying the framework for this useful descriptive tool).
One of the few places we have actually been able to "observe" evolution is in the laboratory, where scientists have been culturing parallel generations of e-coli bacteria for twenty years and have observed one line actually evolving to make use of a food source the original colony was not able to feed upon. But then bacteria reproduce incredibly fast compared to us humans. We have to look back thousands and millions of years to see the branching of our family tree.
But if we could follow our line back, one after the other, we would eventually go all the way back to a bacteria, or a single celled organism that gave "birth" to every animal that walks, flies or swims across our earth, sky and oceans. And if we followed the trail back to us, we would pass innumerable branches in the trail where we would see creatures that looked exactly like we did (then) taking a different road (to be, then, separated from us by a mountain range, or a melting ice bridge, or a drifting continent) so that by the time we met them again, we (or they, or both) would have evolved into a different species and we might very well no longer recognize the cousinship that links us to our common ancestor.
Perhaps its natural that this kind of knowledge gives me different eyes for dinosaurs and dolphins, trout and trumpeter swans. We are all variations on a theme, with mutation and natural selection (and sexual selection, let's not forget) exerting pressure and favoring this slight change over that one until a bacteria grows a skeleton, a fish learns to walk and a hominid learns to play the piano. So Whales are most closely related to Hippopotomuses, and Manatees to Elephants. Chimpanzees are more closely related to Humans than they are to Orangutans. Mice share 85% of our DNA, a head of lettuce 40%.
With facts as mind-blowing as that, Dinosaurs don't look so strange to me at all. They look, well, familiar. Like some really wild cousins I never got the chance to meet.
This entry was posted on Sunday, April 11th, 2010 at 5:17 pm	and is filed under Sermons. You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed.


You deserve love! You can have love. My Mother's Love Mojo brings love into our lives, but expect it in any form! Cats, dogs, mother-in-laws, your co-workers and little children may fall in love with you along with people who bring you happiness, romance, flirtations, love and maybe marriage.
Get ready for some perhaps un-expected fun with this one! This high-impact Mojo is 2 minutes and 6 seconds long. It is available as an mp3 download ONLY.


text:
Kamenets () is a rural locality (a village) in Golovinskoye Rural Settlement, Sudogodsky District, Vladimir Oblast, Russia. The population was 46 as of 2010.

Geography
Kamenets is located 32 km west of Sudogda (the district's administrative centre) by road. Golovino is the nearest rural locality.

References

Rural localities in Sudogodsky District

redpajama_set_name: RedPajamaWikipedia


text:
by TheCheerBuzz June 22, 2020
written by TheCheerBuzz June 22, 2020 0 comment
Share 0FacebookTwitterPinterestLinkedinEmail
On May 27th 2020, it was officially announced that Varsity Brands in combination with the USASF is facing a lawsuit.
The situation is pretty complicated and can be difficult to understand. We read the whole 49 pages long lawsuit and will be breaking it down in this post, making it as easy to understand as possible.
Who filed the lawsuit? Fusion Elite All Stars – individually and on behalf of others similarly affected. The gym has filed the suit along with three law firms.
Who is it against? Varsity Brands and the U.S. All Star Federation.
(UPDATE: there is another lawsuit against them. Read more about it here)
DISCLAIMER: TheCheerBuzz is not affiliated with Varsity Brands in any way. The following article does not necessarily reflect our own opinions. We do not make a statement in this lawsuit but present the case in a transparent and unbiased form. Images displayed within this article are not affiliated with the lawsuit.
First of all, what is "Varsity Brands"?
Everyone in the cheerleading industry probably recognizes the name "Varsity", but there is more to the company name than you might think.
There are three main companies under the Varsity Brand name. These are;
Varsity Spirit
Herff Jones
Varsity Spirit is the section of the company that most of us are familiar with, but you might have also been exposed to the Herff Jones brand without knowing.
You know the custom Worlds and Summit rings? The NCA National Champions rings? The Majors rings? Herff Jones makes them!
However, it doesn't end there…
There are actually many more recognizable brands under the Varsity name, which we will get into later.
Why are they sued?
Varsity Brands are essentially being sued for monopolizing the cheerleading industry. Fusion Elite filed what is called an "antitrust lawsuit". This type of lawsuit is:
"for claims of anticompetitive business practices which led to unfair competition, price-fixing, or other types of fraud." Source.
We will get into exactly how it is alleged that Varsity has a monopoly on the industry, but first, what exactly is a monopoly?
According to the Cambridge Dictionary, a monopoly is defined as:
"an organization or group that has complete control of something, especially an area of business, so that others have no share."
The lawsuit states how Varsity, in combination with the USASF, has gained control over the All-Star cheerleading industry through a "series of intentional and methodical business maneuvers."
Fusion Elite means that they, as well as all other similarly affected, have lost money due to this situation. The lawsuit seeks to recover "money damages" that gyms have suffered due to the increase in costs.
Eric Cramer, chairman at one of the law firms involved, explained their claims in this article:
"This lawsuit seeks to restore free and fair competition to an industry that, we allege, has been intentionally captured and controlled by one dominant player through an illegal predatory scheme."
Is the cheerleading industry a monopoly?
The case is based on Varsity Brands' control of the majority of the cheerleading industry and market. Do they really control it? Let's find out!
Two key parts of the market are competitions and apparel, as every All-Star gym competes and wears uniforms (often practice wear as well).
There are many different competitions during a season for U.S teams, as well as other well-known cheerleading apparel companies. At first glance, this seems enough to think that the market is not a monopoly.
Since there are other competing businesses on the market – where is the problem? Well, most of these other businesses are in fact owned by Varsity.
The competition market
You can probably name many different All-Star competitions held each season. They all have different names, which means they are held by different companies, right?
The lawsuit states that Varsity controls almost 90% of the competition market. It explains how the company has eliminated most of its competition on the market by buying out those companies.
UCA, NCA, USA Cheer, the American Cheerleaders Association, JAMFest, and the Universal Dance Association are examples of brands owned by Varsity.
UCA was founded by the same founder as Varsity and has been a part of the company since its beginning. They later (2004) bought the "National Spirit Group" and took ownership of the National Cheerleader Association (NCA).
Before JAMFest Brands merged with Varsity in late 2015, they were one of Varsity's biggest competitors – producing events like The Majors and The U.S Finals.
Spirit Celebrations and Epic Brands have also been acquired by Varsity. These event producers were the biggest competitors "left on the market" after those mentioned before merged with Varsity.
This means Varsity controls all of the major cheerleading competitions – the NCA National Championship, The Summit, The Cheerleading Worlds (through USASF), The Majors, UCA International Cheerleading Championship and more.
Prices of these competitions (registration fees, admission fees, etc.) have allegedly increased since they were acquired by Varsity.
Quote from an anonymous source (not a part of the lawsuit):
"Varsity has taken over the competition market completely in the United States. Whenever a popular competition was held, they would 'suddenly' host their own competition on the same weekend, close to the original competition. Everything to attract teams to them instead."
Allegations towards the USASF
The U.S. All-Star Federation was created in 2004 by Varsity, NCA, CheerSport, and America's Best amongst others.
The USASF, like other companies, has a board of directors who decide on policies for the company. There are 13 members of the board – 7 from the competition producers that founded the USASF, the chairman of the organization, and 4 program owners.
Be the first to know about news like this by signing up for our newsletter!
According to the lawsuit, Varsity controls over 75% of the board seats since they have acquired more and more of the 7 companies that founded the USASF.
This could mean that the USASF makes decisions that benefit Varsity, and/or negatively affects competitors.
In 2012, it was suggested that there should be a separation of board members affiliated with Varsity Brands, and the other "non-Varsity members". This would allow other event producers and gym owners to be represented on the board. That has not happened yet.
Again – it doesn't end there…
In order to attend competitions sponsored by the USASF (42% of them are produced by Varsity), the gym must be members of the USASF. Sounds fair!
However, there are some more rules to it. USASF member gyms pay between $19 to $24.55 per athlete. If gyms attend competitions (even a single one) that are not sponsored by the USASF – the price increases to $34 per athlete.
Varisty's control over Worlds and Summit bids
Varsity controls which competitions can give out bids to The Summit and The U.S. Finals since those competitions are owned by the company.
At the moment, teams can only get Summit and U.S. Finals bids at Varsity owned competitions. This essentially forces all of the gyms and teams competing for bids to attend Varsity's competitions.
Bids for the Cheerleading Worlds are controlled by the USASF and are given out at 42 different competitions. 33 of those are currently owned by Varsity.
The fact that Varsity controls the majority of the competitions giving out bids makes it harder for competitors to attract teams to their events. Receiving a bid is essentially the goal for all teams and makes the Varsity competitions crucial to attend.
The "Stay-to-Play" events
At some competitions held by Varsity, there is a "Stay-to-Play rule" which says that all teams must stay at a "Varsity-approved" hotel in order to compete.
The lawsuit states that these hotels are often much more expensive than other alternatives, earning Varsity more money as they get a share from the hotels.
If a team stays at another hotel, they will not be allowed to compete. If Varsity finds out the rule was violated after the competition, the gym will be fined.
The apparel market
Since Varsity entered the All-Star Apparel market in 1980, the company has gained over an 80% share of the market, according to the lawsuit.
The biggest (moneywise) and most prestigious gyms make up a big share of the apparel market.
Varsity often signs contracts with these gyms, requiring them to only purchase All-Star apparel from Varsity.
On competitions held by Varsity, there are showrooms with apparel to buy. Often, only Varsity apparel is allowed to be on display and available to purchase as other apparel brands are forbidden.
The lawsuit included this quote from the founder of Rebel Athletic:
"The JAM Brands competitions had been Rebel's most effective platform for marketing to elite cheer teams. 'Not partnering with an event company is one thing,' says Noseff Aldridge (founder of Rebel Athletic). 'But being locked out of partnering with an event company – knowing that a competitor is now going to be in your booth space showing its product – it's a double whammy.'"
Apparel affecting competition scores
Another thing that is mentioned in the lawsuit has to do with the team's scores.
Judges at Varsity competitions are supposedly instructed to "reward" gyms who spend more money on Varsity competitions and apparel with higher scores.
It's also stated that USASF judges often give extra points to teams wearing Varsity apparel and therefore discourages them from wearing apparel from other companies.
Hold on – are they actually breaking any laws?
The lawsuit claims that Varsity continuingly violates "Section 2 of the Sherman Act".
The Sherman Antitrust Act is a U.S. law that regulates competition between companies and prohibits the monopolization of markets. Section 2 states:
"Section 2 of the Sherman Act makes it unlawful (meaning illegal) for any person to monopolize, or attempt to monopolize, or combine or conspire with any other person or persons, to monopolize any part of the trade or commerce among the several States, or with foreign nations…" Source.
Varsity responded to the lawsuit with this statement:
"Varsity is aware of the lawsuit filed yesterday by a group of plaintiff's attorneys and the allegations contained therein are completely unfounded. Varsity complies with all federal, state, and local regulations, including all antitrust and competition laws. We intend to vigorously defend ourselves against this meritless action."
What a weak response. Complying with laws doesn't imply morality just legality.
— CEA Richmond (@CEA_RVA) May 28, 2020
The lawsuit demands that the case gets a trial by a jury.
Some hope that this is enough to change the situation and the alleged monopoly. Others, however, aren't that confident.
Gyms won't sign on out of fear of poor scores, not getting a bid to worlds/ Summit etc.. but I agree Varsity controls this sport in a way it should not. We needs one of the mega gyms to join the suit.
— Michele Favaro (@michele_favaro) May 27, 2020
Maybe more gyms have to speak up, maybe this lawsuit is enough.
Maybe nothing will change, maybe everything will change.
We simply have to wait and see...
UPDATE: Varsity & the USASF, along with others, are hit with another lawsuit. Read more about it here: Varsity And The USASF Sued Again – Here's What You Need To Know
Share 0 FacebookTwitterPinterestLinkedinEmail
TheCheerBuzz
This post was created by TheCheerBuzz staff.
What Are The New Makeup & Hair Guidelines?
New Teams + Those Switching Divisions For The 2020-2021 Season
IASF Announces Changes To Worlds 2021 & New Division Names
* GDPR: By using this form you agree with the storage and handling of your data by this website.


Doing good in HCI: Can We Broaden Our Agenda?
Every year, thousands of HCI researchers, industry experts, and members of the public gather at the ACM SIGCHI conference to discuss recent developments in our field. We share our projects, debate our ideas, and make plans for future work. For many, it is an invaluable opportunity to check in with our peers and evaluate our priorities. We have noticed a recent rhetorical trend in HCI publications and in the pubs at CHI: A lot of people want to focus their work on "doing good," "making a difference," or "being inspiring." This is an exciting, if highly controversial, trend—one that has direct implications for those of us interested in broad notions of sustainability.
In this article, we describe how researchers conducting work on new economic models, marginalized communities, HCI4D, and low-carbon societies are indirectly contributing to the corpus of work relevant to sustainability and doing good. We do so by introducing what we mean by sustainability and doing good. We then briefly describe those areas of research and link them to sustainability and HCI, highlighting instances where this link might not be obvious or can be strengthened. Through this, we aim to highlight some of the indirect links between communities of research within HCI and identify exciting opportunities for future work that engage with the "wicked" problems many of us care about.
In 2014, the sustainable HCI (SHCI) community collectively argued that a clear-cut definition of sustainability might impose unnecessary constraints on research in the field . Given the variety, scale, and complexity of sustain-ability problems we face as humans and as diverse researchers, sustainability goals and metrics should be defined on a per-project basis. Those projects can include research "related, for example, to energy, pollution, poverty, employment, water, climate, and ecosystem health" , among other topics.
Since 2014, the wider HCI community has produced a considerable body of exciting research that addresses diverse sustainability issues. Browsing through the CHI 2017 proceedings on the hunt for cutting-edge research related to sustainability, we noted more than 30 talks that related to a broader definition of sustainability . These papers cover a variety of topics including ICT4D/HCI4D, designing for marginalized communities, new economic models, and designing a low-carbon and sustainable society. Even within these topics, HCI research covers issues that include policy, food, gender, trust, mobile technologies, understanding the built environment, poverty, infrastructure, labor, privacy and trust, education, and resources and transportation.
It's tempting to encourage those outside of SHCI to define or mark the theme of sustainability in their work, making their contribution to sustainability more obvious. This is not something we would like to advocate, as it might push people away from the larger point of thinking and collaborating beyond the current bounds of SHCI. Instead, we think that a great way of thinking about sustainability in HCI is to look at where research is making a difference and promoting good will.
Sustainability—for us—is about exploring and promoting positive socio-ecological change across a number of societal contexts. We believe that doing good, making a difference, and being inspiring are themes that could be leveraged more readily in SHCI. These themes are appearing more regularly in the context of our research, as well as in the philanthropic events run at our conferences. Doing good and making a difference are by no means new themes or mantras in HCI; the CHI 2016 conference attempted to leverage the expertise of our community by organizing a community service day, an event that was repeated at CHI 2017 .
While leveraging philanthropy and the values of doing good, we need to be conscious of whose good we are doing. Joyojeet Pal's recent commentary questions the good within HCI in terms of professional practice and the motivation behind the good that is being done . We see sustainability in HCI offering multiple opportunities for doing good, in a global sense, that isn't just an afterthought or a pat on the back, and is instead a core value to the research. In the midst of challenging ways in which sustainability is tackled on a global scale, we see places for good in our work while challenging who the good is for, and at what cost the good comes for others. Examples include: ensuring that those who lack access to resources aren't penalized or excluded as we tackle resource consumption; challenging the impact of e-waste at home, but also accommodating those who rely on its economy; and the role of digital technology in reshaping the way in which we feed 7 billion people globally.
Figure. CHI4GOOD: Philanthropy is growing at our annual HCI conference.
HCI is already a diverse community, with visionary ideas and an affection for philanthropy. In the following sections, we identify several unexplored opportunities for doing good and considering sustainability across more diverse areas of HCI.
Uber, AirBnB, MechanicalTurk, and Kickstarter are just a few examples of so-called sharing-economy platforms that promise to deliver new economic models. The common thread across these platforms is that they have the power to change society in terms of how goods and services are organized, compensated, and taxed. Through technology, the complexities of economic engagements are allegedly reduced so that people and their activities can be connected directly and more easily. This is meant to open up new economic opportunities for people who want to make a bit of additional cash in their spare time, or who would otherwise have limited access to employment opportunities. And this is where sharing-economy platforms often claim their affiliation with doing good.
Few, if any, of these platforms consider the impact of their technological innovations on social and ecological sustainability. However, such systems have already demonstrated that they have the power to create long-term changes in economic structures. For example, Uber has changed the nature of taxi services in many cities around the world, and AirBnB has similarly affected housing and rental markets. There are real concerns about whether these organizations pay appropriate local taxes and minimum wages, and many governments are just beginning to discuss how to regulate sharing-economy businesses. These changes have direct implications for those of us interested in sustainability; economic and social sustainability directly influence ecological sustainability, as do the changes in the shape and nature of the services being delivered.
Accessibility—the notion of making computer systems accessible to people of all abilities—has been a common theme throughout much of the history of HCI. More recently, some members of the HCI community have focused their research on working with, supporting, and serving marginalized communities, groups of people who are underrepresented in and/or underserved by existing political, economic, and social structures. Examples of HCI working with or designing for marginalized communities include technologies that: help low-income persons establish and maintain financial security; facilitate access to transport and technology; or improve the quality, breadth, and accessibility of education.
Economic and social sustainability directly influence ecological sustainability.
Marginalized communities highlight various types of inequalities that exist globally, some of which extend to our own discipline; computing and academia have been rightfully criticized for being exclusive to and for many communities. But this is part of why sensitively conducted research with and for marginalized communities can be a powerful tool. HCI, with its strong background in investigating interdisciplinary challenges and proposing solutions, has unique qualifications to address issues related to inclusivity and inequality, both of which directly affect sustainability.
There is a growing body of HCI research that focuses on communities in the Global South. Much of this research examines how digital technologies are being or could be used to directly intervene in the longstanding and complex sociopolitical and economic issues related to international development (i.e., the "for development"/4D in HCI4D). These sociopolitical and economic issues include but are not limited to: economic and food insecurity, gender inequality, and access to quality education, healthcare, and Internet infrastructure.
The perception of sustainability research in HCI is often that its primary focus is behavior change, persuasion, or reducing energy impacts in a way that may cripple growth and innovation. Redesigning society is much more than this, requiring new understandings of how the roles of digital technologies and infrastructures can encourage positive and sustainable trajectories, beyond just eco-feedback and individual behavior change. It is important to distinguish that the search for a low-carbon society can benefit from changing behavior or persuasion while simultaneously gaining broad empirical understandings of how technology can be redesigned to promote sustainable trajectories. Learning from the breadth of HCI research (and beyond) is essential in the evaluation of how these technologies and trajectories drive us toward a zero- (or even negative-) carbon society.
Global climate change is showing no signs of slowing, hitting society harder than ever before with more frequent and extreme weather events across the globe (e.g., droughts, flooding, freak weather events). We need to act quickly and wisely. Combined with the impacts of fluctuating economies and austerity (hunger, homelessness, and food banks) and a step change in geopolitical landscapes, the scientific community has declared it is two-and-a-half minutes to midnight , indicating the imminence of the next global catastrophe. In an attempt to tackle these wicked and systemic challenges, we hope that we are doing our bit to broaden the horizons for sustainability in HCI.
In this article, we have endeavored to demonstrate the connections between a variety of HC I research topics and sustainability. There are more connections to be made, but we wanted to start by linking these based on our observations of CHI 2017 and our personal interests. As we move closer toward midnight and as we experience the effects of global climate change more regularly, the SHCI community is branching out and considering how to tackle more broad issues of sustainability. Examples include grasping how HCI meshes with the UN's Sustainable Development Goals  and developing design patterns  that encourage sustainability issues to be tackled in broader HCI research.
By broadening the scope of SHCI to include work being conducted under the theme of doing good, we hope SHCI can become more exciting and inviting to existing and upcoming HCI work, thus furthering the field and opening new avenues for research. There are more than just a few starting points for meshing good and sustainability among the overwhelming diversity present in HCI research. Our discussion serves as a starting point for linking these topics that may have an unclear connection to SHCI, but it should be considered as work contributing to sustainability.
1. Silberman, M., Nathan, L., Knowles, B., Bendor, R., Clear, A., Håkansson, M., Dillahunt, T., and Mankoff, J. Next steps for sustainable HCI. Interactions 21, 5 (2014), 66–69.
4. Pal, J. CHI4Good or Good4CHI. Proc. of the 2017 CHI Conference Extended Abstracts on Human Factors in Computing Systems. ACM, 2017, 709–721.
6. Eriksson, E., Pargman, D., Bates, O., Normark, M., Gulliksen, J., Anneroth, M., and Berndtsson, J. HCI and UN's Sustainable Development Goals: Responsibilities, barriers and opportunities. Proc. of the 9th Nordic Conference on Human-Computer Interaction ACM, 2016, 140.
7. Knowles, B., Clear, A.K., Mann, S., Blevis, E., and Håkansson, M. Design patterns, principles, and strategies for sustainable HCI. Proc. of the 2016 CHI Conference Extended Abstracts on Human Factors in Computing Systems. ACM, 2016, 3581–3588.


text:
#ifndef __GST_GL_SHADER_STRINGS_H__
#define __GST_GL_SHADER_STRINGS_H__

#include <gst/gst.h>
#include <gst/gl/gl-prelude.h>
#include <gst/gl/gl.h>

G_BEGIN_DECLS

GST_GL_API
const gchar *gst_gl_shader_string_fragment_highp_precision;
GST_GL_API
const gchar *gst_gl_shader_string_fragment_mediump_precision;

GST_GL_API
const gchar *gst_gl_shader_string_vertex_default;
GST_GL_API G_DEPRECATED_FOR(gst_gl_shader_string_fragment_get_default)
const gchar *gst_gl_shader_string_fragment_default;

GST_GL_API
const gchar *gst_gl_shader_string_vertex_mat4_texture_transform;
GST_GL_API
const gchar *gst_gl_shader_string_vertex_mat4_vertex_transform;
GST_GL_API G_DEPRECATED_FOR(gst_gl_shader_string_fragment_external_oes_get_default)
const gchar *gst_gl_shader_string_fragment_external_oes_default;

GST_GL_API
const gchar * gst_gl_shader_string_get_highest_precision        (GstGLContext * context,
                                                                 GstGLSLVersion version,
                                                                 GstGLSLProfile profile);

GST_GL_API
gchar * gst_gl_shader_string_fragment_get_default               (GstGLContext * context,
                                                                 GstGLSLVersion version,
                                                                 GstGLSLProfile profile);
GST_GL_API
gchar * gst_gl_shader_string_fragment_external_oes_get_default  (GstGLContext * context,
                                                                 GstGLSLVersion version,
                                                                 GstGLSLProfile profile);

G_END_DECLS

#endif /* __GST_GL_SHADER_STRINGS_H__ */

redpajama_set_name: RedPajamaGithub


Nagpur Metro Rail Map and Routes Reviewed by admin on May 17, 2014 .
With the Nagpur Metro Rail Project receiving authorization from the Union Cabinet on Wednesday, August 20, 2014, Prime Minister Shri. Narendra Modi is programmed to put the foundation stone of the project by 21st August 2014. Nagpur Metro Rail, being set up with the intention to decrease the traffic overcrowding in the urban parts of the Nagpur city, is expected to be finished by December 2016. The Nagpur metro rail network has been planned to enhance the city's transportation system, and thereby, help in the fast development of the 13th largest city of the country.
The Nagpur metro rail route will be spread across a length of about 38.21 kilometer. It will be serviceable on two corridors, first one is North-South Corridor and the second one is East-West Corridor. Length of North-South Corridor is about 19.65 KM will be running from Automotive Square to MIHAN, while the East-West Corridor which is 18.55 KM in length will be covered from Prajapati Nagar to Lokmanya Nagar. Total number of metro stations on Corridor No. 1 and Corridor No. 2 would be 17 and 19, respectively.


Wenn es im Wahlkampf um Flüchtlinge geht, dann um die, die in den vergangenen Monaten aus Afrika in Italien angekommen sind. Deren Zahl man senken will. A new study suggests that it may not be possible to extend the human life span beyond the ages already attained by the oldest people on record. Dramatically Different Hydrating Jelly - Shop Clinique's Dramatically Different Hydrating Jelly at Sephora. A lightweight, oil-free water-jelly that delivers 24-hour hydration. Tags: dramatically, different, Two angles facing left, which often indicate, "return to the beginning." Two angles facing right, which often indicate, "advance to the end." When the 5G wireless standard hits the mainstream, our Clinique Dramatically Different Moisturizing Gel bines oil-free hydration with skin-strengthening ingredients. Shop Clinique's Dramatically Different Moisturizing Lotion+ at Sephora. A dermatologist-developed face moisturizer that softens, smooths, and improves.
Tiny amounts of alcohol dramatically extend a worm's life, but why?


text:
Inside Boxing
The sweet science blog from the Los Angeles News Group
Inside MMA
Farther Off the Wall – Sports Media
Bernard Hopkins never considered taking on a weak opponent in final fight
Posted on October 24, 2016 by Robert Morales
In his most recent fight, Bernard Hopkins (right) was dominated by light heavyweight champion Sergey Kovalev in November 2014/Photo by Associated Press
Bernard Hopkins is 51. He's a living legend and will be inducted into the International Boxing Hall of Fame on the first ballot.
Not one person would have blamed Hopkins if he decided to fight a tomato can for his farewell fight. Hopkins doesn't roll like that, though. Instead, he's taking on highly ranked light heavyweight Joe Smith Jr. in his final bout Dec. 17 at the Fabulous Forum (on HBO).
Hopkins and the rest of the interested parties played host to a news conference Monday to formally announce the bout. Hopkins was asked about taking on a guy who in his most recent bout stunned everyone by stopping Andrzej Fonfara in the first round this past June in Chicago, instead of an easy mark.
"That's not me," Hopkins said. "And you would look at it as, 'Bernard wants the easy way out.' I never want anything easy. And just give me an opportunity and I want to figure it out myself. And I think that is more of the credibility that's in me even at this age, to understand that's just me.
"I don't want nobody to think anything different. Win, lose or draw, this is the final one. I will win and I will win impressively. And I'm in it with a guy that's going to push me, that's going to make me fight a young man's fight in this sport."
Hopkins, of Philadelphia, is 55-7-2 with 32 knockouts. Smith, 27, of Long Island, N.Y., is 22-1 with 18 knockouts. That's a knockout ratio of 78 percent. He is ranked as high as No. 2 in the world.
This entry was posted in Inside Boxing blog and tagged Bernard Hopkins, Golden Boy Promotions, HBO Boxing, Joe Smith Jr., Star Boxing by Robert Morales. Bookmark the permalink.
Floyd Mayweather Jr. realistic, Conor McGregor laughable at grand arrivals
Conor McGregor is simply in awe of his three-month-old son, Conor Jr.
Abel Sanchez proud two Mexicans are trainers for big Sept. 16 showdown
Two-division champion Timothy Bradley all class in retirement statement
Vasyl Lomachenko, Miguel Marriaga make weight for Saturday's bout
Boston BOS on Canelo Alvarez says he still feels best fighting in junior middleweight division
Strategy Games on Manny Pacquiao, Floyd Mayweather Jr. are both taking in tonight's NBA game between Heat and Bucks in Miami
Sergii lominov on Manny Pacquiao, Floyd Mayweather Jr. are both taking in tonight's NBA game between Heat and Bucks in Miami
Андей Новиков on Sergio Martinez finds Martin Murry no joke
Matt Braly on Danny Garcia, Keith Thurman ready for their special night in Brooklyn
Inside Boxing blog
Weigh-ins


With our team of industry experts, experienced in providing the best products for our customers, we can help you to find the right industrial door solution for your business.
accurate and precise measurements, ensuring a smooth and secure installation.
Not only do we manufacture our own high-quality roller shutter doors, we provide a fully comprehensive servicing, repairs and maintenance service to all our customers, ensuring their doors are operating at full efficiency at all times.
DFI are able to offer service and maintenance agreements for all your doors and associated equipment.
© Doors For Industry 2019 - All Rights Reserved.


text:
Die Bienenhüterin (Originaltitel: The Secret Life of Bees) ist ein US-amerikanisches Filmdrama aus dem Jahr 2008. Regie führte Gina Prince-Bythewood, die auch das Drehbuch anhand des Romans Die Bienenhüterin von Sue Monk Kidd aus dem Jahr 2002 schrieb.

Handlung

Der Film spielt im Jahr 1964 in South Carolina. Die 14-jährige Lily Owens lebt auf der Farm ihres gewalttätigen Vaters und hat regelmäßig Albträume vom Tod ihrer Mutter Deborah, an dem sie sich schuldig fühlt (Lily war zu dem Zeitpunkt vier Jahre alt). Eine Ersatzmutter findet sie in Rosaleen Daise, der schwarzen Haushaltshilfe ihres Vaters.

Nachdem das Wahlrecht für alle US-Amerikaner bestätigt ist (Civil Rights Act), begleitet Lily Rosaleen in die benachbarte Stadt, in der Rosaleen sich in das Wahlregister eintragen lassen will. Lily muss allerdings mit ansehen, wie Rosaleen zusammengeschlagen, von der Polizei abgeführt und in ein Krankenhaus gebracht wird. Sie beschließt, Rosaleen aus dem Krankenhaus zu befreien und gemeinsam mit ihr zu fliehen.

Ziel ihrer Flucht ist der Ort Tiburon, von dem Lily vermutet, dass sie dort etwas über die Vergangenheit ihrer Mutter recherchieren kann. Allerdings weiß sie nicht genau, wie sie es anstellen soll und so landen Rosaleen und sie zunächst auf der Farm der Bienenzüchterin August und ihren Schwestern June und May. Dort lernt sie Zac kennen, der zusammen mit August arbeitet.

Kritiken

Die Organisatoren des Toronto International Film Festivals schrieben, die Regisseurin behandle die komplexen Rassenfragen mit Sensibilität. Besonders bemerkenswert sei die Darstellung von Dakota Fanning.

Hintergründe

Der Film wurde in North Carolina im Januar und Februar 2008 gedreht. Seine Weltpremiere fand am 5. September 2008 auf dem Toronto International Film Festival statt. Am 17. Oktober 2008 startete der Film in den Kinos der USA. In Deutschland war der Film vom 23. April 2009 an zu sehen.

Weblinks

Einzelnachweise

Filmtitel 2008
US-amerikanischer Film
Filmdrama
Literaturverfilmung
Alicia Keys


The Major Alliance acknowledges the need to work on a sustainable health care system that is focussed on healthy living. One cannot start too early with stimulating a healthy life style, so that children can extend their lives in good health. In this respect, the theme of Healthy Life overlaps with the theme of Safe and Healthy Growing.
In collaboration with the Noaber Foundation's Healthy Life Alliance (HLA), the Major Alliance believes there is a need to build a sustainable and holistic health care system that is focused on Healthy Living. In order to achieve this, we have chosen four subthemes; food, housing, work, and leisure. That is, living a healthy life is determined by one's behaviour, diet, work and work life balance and leisure time. In cooperation with the HLA and an extensive list of other partners, we organise tables that facilitate processes in which the vision that is been outlined above, are turned into concrete results. By inviting civil society, business and the government(s) for these table sessions, we expand our knowledge and achieve our goals faster.
A healthier life style not only benefits the individual, but also spares the health care system. Therefore a National Prevention Agreement is being designed in cooperation with funds, interest groups and the Ministry of Health, Welfare and Sport, in which the transition from curative to preventive health care forms the basic principe.


text:
<!DOCTYPE HTML>

<title>AMDBlendMinmaxFactor (LWJGL 3.1.0 - OpenGL)</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="dc.created" content="2016-10-30">
<link rel="stylesheet" type="text/css" href="../../../javadoc.css" title="Style">
<link rel="stylesheet" type="text/css" href="../../../jquery/jquery-ui.css" title="Style">

JavaScript is disabled on your browser.

Skip navigation links

Package

Class

Deprecated

Index

Prev Class

Next Class

Frames

No Frames

All Classes

SEARCH:
<input type="text" id="search" value=" " disabled="disabled">
<input type="reset" id="reset" value=" " disabled="disabled">

JavaScript is disabled on your browser.

Summary:

Nested |

Field |

Constr |

Method

Detail:

Field |

Constr |

Method

Package org.lwjgl.opengl

Class AMDBlendMinmaxFactor

java.lang.Object

org.lwjgl.opengl.AMDBlendMinmaxFactor

public final class AMDBlendMinmaxFactor
extends java.lang.Object

Native bindings to the AMD_blend_minmax_factor extension.

The EXT_blend_minmax extension extended the GL's blending functionality to allow the blending equation to be specified by the application. That
 extension introduced the MIN_EXT and MAX_EXT blend equations, which caused the result of the blend equation to become the minimum or maximum of the
 source color and destination color, respectively.

The MIN_EXT and MAX_EXT blend equations, however, do not include the source or destination blend factors in the arguments to the min and max functions.
 This extension provides two new blend equations that produce the minimum or maximum of the products of the source color and source factor, and the
 destination color and destination factor.

Field Summary

Fields

Modifier and Type
Field and Description

static int
GL_FACTOR_MAX_AMD

GL_FACTOR_MIN_AMD

Accepted by the mode parameter of BlendEquation and BlendEquationi, and by the modeRGB and modeAlpha parameters of
 BlendEquationSeparate and BlendEquationSeparatei.

Method Summary

Methods inherited from class java.lang.Object

equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Detail

GL_FACTOR_MIN_AMD, GL_FACTOR_MAX_AMD

Accepted by the mode parameter of BlendEquation and BlendEquationi, and by the modeRGB and modeAlpha parameters of
 BlendEquationSeparate and BlendEquationSeparatei.

Skip navigation links

Package

Class

Deprecated

Index

Prev Class

Next Class

Frames

No Frames

All Classes

JavaScript is disabled on your browser.

Summary:

Nested |

Field |

Constr |

Method

Detail:

Field |

Constr |

Method

Copyright LWJGL. All Rights Reserved. License terms.


Voices from a tragedy: Oregon school shooting The Umpqua Community College shooting in Roseburg, Oregon put the small town in national spotlight. Watch survivors, law enforcement, political figures, community members and newspeople tell the tragic story of the Oregon school shooting.
UPDATE: The sheriff's office released a corrected count Friday, saying 10 people were killed and nine were wounded Thursday.
8:43: In Roseburg, an Umpqua Community College faculty member says: "We know this is not going to be our defining moment, we will not be terrified." A mother of six asks that the parents of the shooter be included in people's prayers. "They lost a son today, too."
8:36: In a vigil at Portland City Hall, a mic is open to anyone who wants to speak. People touched by the shooting are asked to go first. Some are from Roseburg.
8:34: Hundreds gathered in Roseburg's Stewart Park for a community vigil.
8:20: Oregon State Police Superintendent Richard Evans says of the sheriff's decision not to name the shooter: "There's a national discussion and police movement not to give attention to a gunman in a mass shooting."
8:15: CBS News quotes unnamed law enforcement sources that four guns -- a combination of pistols and a rifle -- were found at the shooting scene.
7:27: Douglas County Sheriff John Hanlin says tactical teams and bomb squads have cleared all the Umpqua Community College buildings and are going through the vehicles in the parking lot.
7:25: Douglas County Sheriff John Hanlin: "We do know we have at least two heroic officers who went into the building and exchanged gunfire with him." Oregon State Police is handling the officer-involved shooting, he said, and will release information from an investigation in the future.
7:20: Douglas County Sheriff John Hanlin:"We have information that leads us to believe that we know who the shooter is. The official ID will come from the Medical Examiner's office. Let me be very clear: I will not name the shooter. I will not give him the credit he probably sought prior to this horrific and cowardly act. Media will get the name confirmed in time, but you will never hear me mention his name. We encourage media to not use it, we encourage you not to repeat it, not to glorify and create sensationalism for him. He in no way deserves this."
7:16: Law enforcement will begin press conference shortly.
7:08: Officers are now escorting out neighbors at the Winchester apartment complex listed as Harper-Mercer's address.
7:06: At 7 p.m. at least six police units pulled up to the apartment listed as Harper-Mercer's with officers in camouflage. They brought police dogs.
6:52: The Oregonian/OregonLive has confirmed the shooter is Chris Harper-Mercer, a 26-year-old resident of nearby Winchester.
6:39: The Oregonian/OregonLive is on scene at a Winchester apartment complex listed in voting records as Chris Harper-Mercer's address. Sheriff's deputies are also there, and the complex is blocked off by crime tape.


text:
import ConfigParser, sys, os, string
from pygr.mapping import Collection
import pygr.Data

try:
    import hashlib
except ImportError:
    import md5 as hashlib

config = ConfigParser.ConfigParser({'testOutputBaseDir' : '.', 'smallSampleKey': ''})
config.read([ os.path.join(os.path.expanduser('~'), '.pygrrc'), os.path.join(os.path.expanduser('~'), 'pygr.cfg'), '.pygrrc', 'pygr.cfg' ])
msaDir = config.get('megatests_dm2', 'msaDir')
seqDir = config.get('megatests_dm2', 'seqDir')
smallSampleKey = config.get('megatests_dm2', 'smallSampleKey')
testInputDB = config.get('megatests', 'testInputDB')
testInputDir = config.get('megatests', 'testInputDir')
testOutputBaseDir = config.get('megatests', 'testOutputBaseDir')

if smallSampleKey:
    smallSamplePostfix = '_' + smallSampleKey
else:
    smallSamplePostfix = ''

## msaDir CONTAINS PRE-BUILT NLMSA
## seqDir CONTAINS GENOME ASSEMBLIES AND THEIR SEQDB FILES
## TEST INPUT/OUPTUT FOR COMPARISON, THESE FILES SHOULD BE IN THIS DIRECTORY
##        exonAnnotFileName = 'Annotation_ConservedElement_Exons_dm2.txt'
##        intronAnnotFileName = 'Annotation_ConservedElement_Introns_dm2.txt'
##        stopAnnotFileName = 'Annotation_ConservedElement_Stop_dm2.txt'
## testDir = os.path.join(testOutputBaseDir, 'TEST_' + ''.join(tmpList)) SHOULD BE DELETED IF YOU WANT TO RUN IN '.'

# DIRECTIONARY FOR DOC STRING OF SEQDB
docStringDict = {
    'anoGam1':'A. gambiae Genome (February 2003)',
    'apiMel2':'A. mellifera Genome (January 2005)',
    'dm2':'D. melanogaster Genome (April 2004)',
    'dp4':'D. pseudoobscura Genome (February 2006)',
    'droAna3':'D. ananassae Genome (February 2006)',
    'droEre2':'D. erecta Genome (February 2006)',
    'droGri2':'D. grimshawi Genome (February 2006)',
    'droMoj3':'D. mojavensis Genome (February 2006)',
    'droPer1':'D. persimilis Genome (October 2005)',
    'droSec1':'D. sechellia Genome (October 2005)',
    'droSim1':'D. simulans Genome (April 2005)',
    'droVir3':'D. virilis Genome (February 2006)',
    'droWil1':'D. willistoni Genome (February 2006)',
    'droYak2':'D. yakuba Genome (November 2005)',
    'triCas2':'T. castaneum Genome (September 2005)',
    }

# GENOME ASSEMBLY LIST FOR DM2 MULTIZ15WAY
msaSpeciesList = ['anoGam1', 'apiMel2', 'dm2', 'dp4', 'droAna3', 'droEre2', 'droGri2', 'droMoj3', \
                  'droPer1', 'droSec1', 'droSim1', 'droVir3', 'droWil1', 'droYak2', 'triCas2']

class PygrBuildNLMSAMegabase(object):
    'restrict megatest to an initially empty directory, need large space to perform'
    def __init__(self, testDir = None):
        import random
        tmpList = [c for c in 'PygrBuildNLMSAMegabase']
        random.shuffle(tmpList)
        testDir = os.path.join(testOutputBaseDir, 'TEST_' + ''.join(tmpList)) # FOR TEST, SHOULD BE DELETED
        if testDir is None: testDir = 'TEST_' + ''.join(tmpList) # NOT SPECIFIED, USE CURRENT DIRECTORY
        try:
            os.mkdir(testDir)
            testDir = os.path.realpath(testDir)
        except:
            raise IOError
        self.path = testDir
        try:
            tmpFileName = os.path.join(testDir, 'DELETE_THIS_TEMP_FILE')
            open(tmpFileName, 'w').write('A'*1024*1024) # WRITE 1MB FILE FOR TESTING
        except:
            raise IOError
        pygr.Data.update(self.path)
        from pygr import seqdb
        for orgstr in msaSpeciesList:
            genome = seqdb.BlastDB(os.path.join(seqDir, orgstr))
            genome.__doc__ = docStringDict[orgstr]
            pygr.Data.addResource('TEST.Seq.Genome.' + orgstr, genome)
        pygr.Data.save()
    def copyFile(self, filename): # COPY A FILE INTO TEST DIRECTORY
        newname = os.path.join(self.path, os.path.basename(filename))
        open(newname, 'w').write(open(filename, 'r').read())
        return newname
    def teardown(self):
        'delete the temporary directory and files'
        for dirpath, subdirs, files in os.walk(self.path, topdown = False): # SHOULD BE DELETED BOTTOM-UP FASHION
            # THIS PART MAY NOT WORK IN NFS MOUNTED DIRECTORY DUE TO .nfsXXXXXXXXX CREATION
            # IN NFS MOUNTED DIRECTORY, IT CANNOT BE DELETED UNTIL CLOSING PYGRDATA
            for filename in files:
                os.remove(os.path.join(dirpath, filename))
            os.rmdir(dirpath)

class Build_Test(PygrBuildNLMSAMegabase):
    def seqdb_test(self): # CHECK PYGR.DATA CONTENTS
        l = pygr.Data.dir('TEST')
        preList = ['TEST.Seq.Genome.' + orgstr for orgstr in msaSpeciesList]
        assert l == preList
    def collectionannot_test(self): # BUILD ANNOTATION DB FROM FILE
        from pygr import seqdb, cnestedlist, sqlgraph
        dm2 = pygr.Data.getResource('TEST.Seq.Genome.dm2')
        # BUILD ANNOTATION DATABASE FOR REFSEQ EXONS
        exon_slices = Collection(filename = os.path.join(self.path, 'refGene_exonAnnot_dm2.cdb'), \
            intKeys = True, mode = 'c', writeback = False) # ONLY C
        exon_db = seqdb.AnnotationDB(exon_slices, dm2,
                               sliceAttrDict = dict(id = 0, exon_id = 1, orientation = 2,
                                                  gene_id = 3, start = 4, stop = 5))
        msa = cnestedlist.NLMSA(os.path.join(self.path, 'refGene_exonAnnot_dm2'), 'w', \
            pairwiseMode = True, bidirectional = False)
        for lines in open(os.path.join(testInputDir, 'refGene_exonAnnot%s_dm2.txt' % smallSamplePostfix), 'r').xreadlines():
            row = [x for x in lines.split('\t')] # CONVERT TO LIST SO MUTABLE
            row[1] = int(row[1]) # CONVERT FROM STRING TO INTEGER
            exon_slices[row[1]] = row
            exon = exon_db[row[1]] # GET THE ANNOTATION OBJECT FOR THIS EXON
            msa.addAnnotation(exon) # SAVE IT TO GENOME MAPPING
        exon_db.clear_cache() # not really necessary; cache should autoGC
        exon_slices.close() # SHELVE SHOULD BE EXPLICITLY CLOSED IN ORDER TO SAVE CURRENT CONTENTS
        msa.build() # FINALIZE GENOME ALIGNMENT INDEXES
        exon_db.__doc__ = 'Exon Annotation Database for dm2'
        pygr.Data.addResource('TEST.Annotation.dm2.exons', exon_db)
        msa.__doc__ = 'NLMSA Exon for dm2'
        pygr.Data.addResource('TEST.Annotation.NLMSA.dm2.exons', msa)
        exon_schema = pygr.Data.ManyToManyRelation(dm2, exon_db, bindAttrs = ('exon1',))
        exon_schema.__doc__ = 'Exon Schema for dm2'
        pygr.Data.addSchema('TEST.Annotation.NLMSA.dm2.exons', exon_schema)
        # BUILD ANNOTATION DATABASE FOR REFSEQ SPLICES
        splice_slices = Collection(filename = os.path.join(self.path, 'refGene_spliceAnnot_dm2.cdb'), \
            intKeys = True, mode = 'c', writeback = False) # ONLY C
        splice_db = seqdb.AnnotationDB(splice_slices, dm2,
                               sliceAttrDict = dict(id = 0, splice_id = 1, orientation = 2,
                                                  gene_id = 3, start = 4, stop = 5))
        msa = cnestedlist.NLMSA(os.path.join(self.path, 'refGene_spliceAnnot_dm2'), 'w', \
            pairwiseMode = True, bidirectional = False)
        for lines in open(os.path.join(testInputDir, 'refGene_spliceAnnot%s_dm2.txt' % smallSamplePostfix), 'r').xreadlines():
            row = [x for x in lines.split('\t')] # CONVERT TO LIST SO MUTABLE
            row[1] = int(row[1]) # CONVERT FROM STRING TO INTEGER
            splice_slices[row[1]] = row
            splice = splice_db[row[1]] # GET THE ANNOTATION OBJECT FOR THIS EXON
            msa.addAnnotation(splice) # SAVE IT TO GENOME MAPPING
        splice_db.clear_cache() # not really necessary; cache should autoGC
        splice_slices.close() # SHELVE SHOULD BE EXPLICITLY CLOSED IN ORDER TO SAVE CURRENT CONTENTS
        msa.build() # FINALIZE GENOME ALIGNMENT INDEXES
        splice_db.__doc__ = 'Splice Annotation Database for dm2'
        pygr.Data.addResource('TEST.Annotation.dm2.splices', splice_db)
        msa.__doc__ = 'NLMSA Splice for dm2'
        pygr.Data.addResource('TEST.Annotation.NLMSA.dm2.splices', msa)
        splice_schema = pygr.Data.ManyToManyRelation(dm2, splice_db, bindAttrs = ('splice1',))
        splice_schema.__doc__ = 'Splice Schema for dm2'
        pygr.Data.addSchema('TEST.Annotation.NLMSA.dm2.splices', splice_schema)
        # BUILD ANNOTATION DATABASE FOR MOST CONSERVED ELEMENTS FROM UCSC
        ucsc_slices = Collection(filename = os.path.join(self.path, 'phastConsElements15way_dm2.cdb'), \
            intKeys = True, mode = 'c', writeback = False) # ONLY C
        ucsc_db = seqdb.AnnotationDB(ucsc_slices, dm2,
                               sliceAttrDict = dict(id = 0, ucsc_id = 1, orientation = 2,
                                                  gene_id = 3, start = 4, stop = 5))
        msa = cnestedlist.NLMSA(os.path.join(self.path, 'phastConsElements15way_dm2'), 'w', \
            pairwiseMode = True, bidirectional = False)
        for lines in open(os.path.join(testInputDir, 'phastConsElements15way%s_dm2.txt' % smallSamplePostfix), 'r').xreadlines():
            row = [x for x in lines.split('\t')] # CONVERT TO LIST SO MUTABLE
            row[1] = int(row[1]) # CONVERT FROM STRING TO INTEGER
            ucsc_slices[row[1]] = row
            ucsc = ucsc_db[row[1]] # GET THE ANNOTATION OBJECT FOR THIS EXON
            msa.addAnnotation(ucsc) # SAVE IT TO GENOME MAPPING
        ucsc_db.clear_cache() # not really necessary; cache should autoGC
        ucsc_slices.close() # SHELVE SHOULD BE EXPLICITLY CLOSED IN ORDER TO SAVE CURRENT CONTENTS
        msa.build() # FINALIZE GENOME ALIGNMENT INDEXES
        ucsc_db.__doc__ = 'Most Conserved Elements for dm2'
        pygr.Data.addResource('TEST.Annotation.UCSC.dm2.mostconserved', ucsc_db)
        msa.__doc__ = 'NLMSA for Most Conserved Elements for dm2'
        pygr.Data.addResource('TEST.Annotation.UCSC.NLMSA.dm2.mostconserved', msa)
        ucsc_schema = pygr.Data.ManyToManyRelation(dm2, ucsc_db, bindAttrs = ('element1',))
        ucsc_schema.__doc__ = 'Schema for UCSC Most Conserved Elements for dm2'
        pygr.Data.addSchema('TEST.Annotation.UCSC.NLMSA.dm2.mostconserved', ucsc_schema)
        pygr.Data.save()
        pygr.Data.clear_cache() # force resources to reload when requested

        # QUERY TO EXON AND SPLICES ANNOTATION DATABASE
        dm2 = pygr.Data.getResource('TEST.Seq.Genome.dm2')
        exonmsa = pygr.Data.getResource('TEST.Annotation.NLMSA.dm2.exons')
        splicemsa = pygr.Data.getResource('TEST.Annotation.NLMSA.dm2.splices')
        conservedmsa = pygr.Data.getResource('TEST.Annotation.UCSC.NLMSA.dm2.mostconserved')
        exons = pygr.Data.getResource('TEST.Annotation.dm2.exons')
        splices = pygr.Data.getResource('TEST.Annotation.dm2.splices')
        mostconserved = pygr.Data.getResource('TEST.Annotation.UCSC.dm2.mostconserved')

        # OPEN DM2_MULTIZ15WAY NLMSA
        msa = cnestedlist.NLMSA(os.path.join(msaDir, 'dm2_multiz15way'), 'r', trypath = [seqDir])

        exonAnnotFileName = os.path.join(testInputDir, 'Annotation_ConservedElement_Exons%s_dm2.txt' % smallSamplePostfix)
        intronAnnotFileName = os.path.join(testInputDir, 'Annotation_ConservedElement_Introns%s_dm2.txt' % smallSamplePostfix)
        newexonAnnotFileName = os.path.join(self.path, 'new_Exons_dm2.txt')
        newintronAnnotFileName = os.path.join(self.path, 'new_Introns_dm2.txt')
        tmpexonAnnotFileName = self.copyFile(exonAnnotFileName)
        tmpintronAnnotFileName = self.copyFile(intronAnnotFileName)

        if smallSampleKey:
            chrList = [ smallSampleKey ]
        else:
            chrList = dm2.seqLenDict.keys()
            chrList.sort()

        outfile = open(newexonAnnotFileName, 'w')
        for chrid in chrList:
            slice = dm2[chrid]
            try:
                ex1 = exonmsa[slice]
            except KeyError:
                continue
            else:
                exlist1 = [(ix.exon_id, ix) for ix in ex1.keys()]
                exlist1.sort()
                for ixx, exon in exlist1:
                    saveList = []
                    tmp = exon.sequence
                    tmpexon = exons[exon.exon_id]
                    tmpslice = tmpexon.sequence # FOR REAL EXON COORDINATE
                    wlist1 = 'EXON', chrid, tmpexon.exon_id, tmpexon.gene_id, tmpslice.start, tmpslice.stop
                    try:
                        out1 = conservedmsa[tmp]
                    except KeyError:
                        pass
                    else:
                        elementlist = [(ix.ucsc_id, ix) for ix in out1.keys()]
                        elementlist.sort()
                        for iyy, element in elementlist:
                            if element.stop - element.start < 100: continue
                            score = int(string.split(element.gene_id, '=')[1])
                            if score < 100: continue
                            tmp2 = element.sequence
                            tmpelement = mostconserved[element.ucsc_id]
                            tmpslice2 = tmpelement.sequence # FOR REAL ELEMENT COORDINATE
                            wlist2 = wlist1 + (tmpelement.ucsc_id, tmpelement.gene_id, tmpslice2.start, tmpslice2.stop)
                            slicestart, sliceend = max(tmp.start, tmp2.start), min(tmp.stop, tmp2.stop)
                            tmp1 = msa.seqDict['dm2.' + chrid][slicestart:sliceend]
                            edges = msa[tmp1].edges()
                            for src, dest, e in edges:
                                if src.stop - src.start < 100: continue
                                palign, pident = e.pAligned(), e.pIdentity()
                                if palign < 0.8 or pident < 0.8: continue
                                palign, pident = '%.2f' % palign, '%.2f' % pident
                                wlist3 = wlist2 + ((~msa.seqDict)[src], str(src), src.start, src.stop, \
                                    (~msa.seqDict)[dest], \
                                    str(dest), dest.start, dest.stop, palign, pident)
                                saveList.append('\t'.join(map(str, wlist3)) + '\n')
                        saveList.sort()
                        for saveline in saveList:
                            outfile.write(saveline)
        outfile.close()
        md5old = hashlib.md5()
        md5old.update(open(tmpexonAnnotFileName, 'r').read())
        md5new = hashlib.md5()
        md5new.update(open(newexonAnnotFileName, 'r').read())
        assert md5old.digest() == md5new.digest() # MD5 COMPARISON INSTEAD OF COMPARING EACH CONTENTS

        outfile = open(newintronAnnotFileName, 'w')
        for chrid in chrList:
            slice = dm2[chrid]
            try:
                sp1 = splicemsa[slice]
            except:
                continue
            else:
                splist1 = [(ix.splice_id, ix) for ix in sp1.keys()]
                splist1.sort()
                for ixx, splice in splist1:
                    saveList = []
                    tmp = splice.sequence
                    tmpsplice = splices[splice.splice_id]
                    tmpslice = tmpsplice.sequence # FOR REAL EXON COORDINATE
                    wlist1 = 'INTRON', chrid, tmpsplice.splice_id, tmpsplice.gene_id, tmpslice.start, tmpslice.stop
                    try:
                        out1 = conservedmsa[tmp]
                    except KeyError:
                        pass
                    else:
                        elementlist = [(ix.ucsc_id, ix) for ix in out1.keys()]
                        elementlist.sort()
                        for iyy, element in elementlist:
                            if element.stop - element.start < 100: continue
                            score = int(string.split(element.gene_id, '=')[1])
                            if score < 100: continue
                            tmp2 = element.sequence
                            tmpelement = mostconserved[element.ucsc_id]
                            tmpslice2 = tmpelement.sequence # FOR REAL ELEMENT COORDINATE
                            wlist2 = wlist1 + (tmpelement.ucsc_id, tmpelement.gene_id, tmpslice2.start, tmpslice2.stop)
                            slicestart, sliceend = max(tmp.start, tmp2.start), min(tmp.stop, tmp2.stop)
                            tmp1 = msa.seqDict['dm2.' + chrid][slicestart:sliceend]
                            edges = msa[tmp1].edges()
                            for src, dest, e in edges:
                                if src.stop - src.start < 100: continue
                                palign, pident = e.pAligned(), e.pIdentity()
                                if palign < 0.8 or pident < 0.8: continue
                                palign, pident = '%.2f' % palign, '%.2f' % pident
                                wlist3 = wlist2 + ((~msa.seqDict)[src], str(src), src.start, src.stop, \
                                    (~msa.seqDict)[dest], \
                                    str(dest), dest.start, dest.stop, palign, pident)
                                saveList.append('\t'.join(map(str, wlist3)) + '\n')
                        saveList.sort()
                        for saveline in saveList:
                            outfile.write(saveline)
        outfile.close()
        md5old = hashlib.md5()
        md5old.update(open(tmpintronAnnotFileName, 'r').read())
        md5new = hashlib.md5()
        md5new.update(open(newintronAnnotFileName, 'r').read())
        assert md5old.digest() == md5new.digest() # MD5 COMPARISON INSTEAD OF COMPARING EACH CONTENTS

    def mysqlannot_test(self): # BUILD ANNOTATION DB FROM MYSQL
        from pygr import seqdb, cnestedlist, sqlgraph
        dm2 = pygr.Data.getResource('TEST.Seq.Genome.dm2')
        # BUILD ANNOTATION DATABASE FOR REFSEQ EXONS: MYSQL VERSION
        exon_slices = sqlgraph.SQLTableClustered('%s.pygr_refGene_exonAnnot%s_dm2' % ( testInputDB, smallSamplePostfix ),
            clusterKey = 'chromosome', maxCache = 0)
        exon_db = seqdb.AnnotationDB(exon_slices, dm2, sliceAttrDict = dict(id = 'chromosome', \
            gene_id = 'name', exon_id = 'exon_id'))
        msa = cnestedlist.NLMSA(os.path.join(self.path, 'refGene_exonAnnot_SQL_dm2'), 'w', \
            pairwiseMode = True, bidirectional = False)
        for id in exon_db:
            msa.addAnnotation(exon_db[id])
        exon_db.clear_cache() # not really necessary; cache should autoGC
        exon_slices.clear_cache()
        msa.build()
        exon_db.__doc__ = 'SQL Exon Annotation Database for dm2'
        pygr.Data.addResource('TEST.Annotation.SQL.dm2.exons', exon_db)
        msa.__doc__ = 'SQL NLMSA Exon for dm2'
        pygr.Data.addResource('TEST.Annotation.NLMSA.SQL.dm2.exons', msa)
        exon_schema = pygr.Data.ManyToManyRelation(dm2, exon_db, bindAttrs = ('exon2',))
        exon_schema.__doc__ = 'SQL Exon Schema for dm2'
        pygr.Data.addSchema('TEST.Annotation.NLMSA.SQL.dm2.exons', exon_schema)
        # BUILD ANNOTATION DATABASE FOR REFSEQ SPLICES: MYSQL VERSION
        splice_slices = sqlgraph.SQLTableClustered('%s.pygr_refGene_spliceAnnot%s_dm2' % ( testInputDB, smallSamplePostfix ),
            clusterKey = 'chromosome', maxCache = 0)
        splice_db = seqdb.AnnotationDB(splice_slices, dm2, sliceAttrDict = dict(id = 'chromosome', \
            gene_id = 'name', splice_id = 'splice_id'))
        msa = cnestedlist.NLMSA(os.path.join(self.path, 'refGene_spliceAnnot_SQL_dm2'), 'w', \
            pairwiseMode = True, bidirectional = False)
        for id in splice_db:
            msa.addAnnotation(splice_db[id])
        splice_db.clear_cache() # not really necessary; cache should autoGC
        splice_slices.clear_cache()
        msa.build()
        splice_db.__doc__ = 'SQL Splice Annotation Database for dm2'
        pygr.Data.addResource('TEST.Annotation.SQL.dm2.splices', splice_db)
        msa.__doc__ = 'SQL NLMSA Splice for dm2'
        pygr.Data.addResource('TEST.Annotation.NLMSA.SQL.dm2.splices', msa)
        splice_schema = pygr.Data.ManyToManyRelation(dm2, splice_db, bindAttrs = ('splice2',))
        splice_schema.__doc__ = 'SQL Splice Schema for dm2'
        pygr.Data.addSchema('TEST.Annotation.NLMSA.SQL.dm2.splices', splice_schema)
        # BUILD ANNOTATION DATABASE FOR MOST CONSERVED ELEMENTS FROM UCSC: MYSQL VERSION
        ucsc_slices = sqlgraph.SQLTableClustered('%s.pygr_phastConsElements15way%s_dm2' % ( testInputDB, smallSamplePostfix ),
            clusterKey = 'chromosome', maxCache = 0)
        ucsc_db = seqdb.AnnotationDB(ucsc_slices, dm2, sliceAttrDict = dict(id = 'chromosome', \
            gene_id = 'name', ucsc_id = 'ucsc_id'))
        msa = cnestedlist.NLMSA(os.path.join(self.path, 'phastConsElements15way_SQL_dm2'), 'w', \
            pairwiseMode = True, bidirectional = False)
        for id in ucsc_db:
            msa.addAnnotation(ucsc_db[id])
        ucsc_db.clear_cache() # not really necessary; cache should autoGC
        ucsc_slices.clear_cache()
        msa.build()
        ucsc_db.__doc__ = 'SQL Most Conserved Elements for dm2'
        pygr.Data.addResource('TEST.Annotation.UCSC.SQL.dm2.mostconserved', ucsc_db)
        msa.__doc__ = 'SQL NLMSA for Most Conserved Elements for dm2'
        pygr.Data.addResource('TEST.Annotation.UCSC.NLMSA.SQL.dm2.mostconserved', msa)
        ucsc_schema = pygr.Data.ManyToManyRelation(dm2, ucsc_db, bindAttrs = ('element2',))
        ucsc_schema.__doc__ = 'SQL Schema for UCSC Most Conserved Elements for dm2'
        pygr.Data.addSchema('TEST.Annotation.UCSC.NLMSA.SQL.dm2.mostconserved', ucsc_schema)
        pygr.Data.save()
        pygr.Data.clear_cache()

        # QUERY TO EXON AND SPLICES ANNOTATION DATABASE
        dm2 = pygr.Data.getResource('TEST.Seq.Genome.dm2')
        exonmsa = pygr.Data.getResource('TEST.Annotation.NLMSA.SQL.dm2.exons')
        splicemsa = pygr.Data.getResource('TEST.Annotation.NLMSA.SQL.dm2.splices')
        conservedmsa = pygr.Data.getResource('TEST.Annotation.UCSC.NLMSA.SQL.dm2.mostconserved')
        exons = pygr.Data.getResource('TEST.Annotation.SQL.dm2.exons')
        splices = pygr.Data.getResource('TEST.Annotation.SQL.dm2.splices')
        mostconserved = pygr.Data.getResource('TEST.Annotation.UCSC.SQL.dm2.mostconserved')

        # OPEN DM2_MULTIZ15WAY NLMSA
        msa = cnestedlist.NLMSA(os.path.join(msaDir, 'dm2_multiz15way'), 'r', trypath = [seqDir])

        exonAnnotFileName = os.path.join(testInputDir, 'Annotation_ConservedElement_Exons%s_dm2.txt' % smallSamplePostfix)
        intronAnnotFileName = os.path.join(testInputDir, 'Annotation_ConservedElement_Introns%s_dm2.txt' % smallSamplePostfix)
        newexonAnnotFileName = os.path.join(self.path, 'new_Exons_dm2.txt')
        newintronAnnotFileName = os.path.join(self.path, 'new_Introns_dm2.txt')
        tmpexonAnnotFileName = self.copyFile(exonAnnotFileName)
        tmpintronAnnotFileName = self.copyFile(intronAnnotFileName)

        if smallSampleKey:
            chrList = [ smallSampleKey ]
        else:
            chrList = dm2.seqLenDict.keys()
            chrList.sort()

        outfile = open(newexonAnnotFileName, 'w')
        for chrid in chrList:
            slice = dm2[chrid]
            try:
                ex1 = exonmsa[slice]
            except KeyError:
                continue
            else:
                exlist1 = [(ix.exon_id, ix) for ix in ex1.keys()]
                exlist1.sort()
                for ixx, exon in exlist1:
                    saveList = []
                    tmp = exon.sequence
                    tmpexon = exons[exon.exon_id]
                    tmpslice = tmpexon.sequence # FOR REAL EXON COORDINATE
                    wlist1 = 'EXON', chrid, tmpexon.exon_id, tmpexon.gene_id, tmpslice.start, tmpslice.stop
                    try:
                        out1 = conservedmsa[tmp]
                    except KeyError:
                        pass
                    else:
                        elementlist = [(ix.ucsc_id, ix) for ix in out1.keys()]
                        elementlist.sort()
                        for iyy, element in elementlist:
                            if element.stop - element.start < 100: continue
                            score = int(string.split(element.gene_id, '=')[1])
                            if score < 100: continue
                            tmp2 = element.sequence
                            tmpelement = mostconserved[element.ucsc_id]
                            tmpslice2 = tmpelement.sequence # FOR REAL ELEMENT COORDINATE
                            wlist2 = wlist1 + (tmpelement.ucsc_id, tmpelement.gene_id, tmpslice2.start, tmpslice2.stop)
                            slicestart, sliceend = max(tmp.start, tmp2.start), min(tmp.stop, tmp2.stop)
                            tmp1 = msa.seqDict['dm2.' + chrid][slicestart:sliceend]
                            edges = msa[tmp1].edges()
                            for src, dest, e in edges:
                                if src.stop - src.start < 100: continue
                                palign, pident = e.pAligned(), e.pIdentity()
                                if palign < 0.8 or pident < 0.8: continue
                                palign, pident = '%.2f' % palign, '%.2f' % pident
                                wlist3 = wlist2 + ((~msa.seqDict)[src], str(src), src.start, src.stop, \
                                    (~msa.seqDict)[dest], \
                                    str(dest), dest.start, dest.stop, palign, pident)
                                saveList.append('\t'.join(map(str, wlist3)) + '\n')
                        saveList.sort()
                        for saveline in saveList:
                            outfile.write(saveline)
        outfile.close()
        md5old = hashlib.md5()
        md5old.update(open(tmpexonAnnotFileName, 'r').read())
        md5new = hashlib.md5()
        md5new.update(open(newexonAnnotFileName, 'r').read())
        assert md5old.digest() == md5new.digest() # MD5 COMPARISON INSTEAD OF COMPARING EACH CONTENTS

        outfile = open(newintronAnnotFileName, 'w')
        for chrid in chrList:
            slice = dm2[chrid]
            try:
                sp1 = splicemsa[slice]
            except:
                continue
            else:
                splist1 = [(ix.splice_id, ix) for ix in sp1.keys()]
                splist1.sort()
                for ixx, splice in splist1:
                    saveList = []
                    tmp = splice.sequence
                    tmpsplice = splices[splice.splice_id]
                    tmpslice = tmpsplice.sequence # FOR REAL EXON COORDINATE
                    wlist1 = 'INTRON', chrid, tmpsplice.splice_id, tmpsplice.gene_id, tmpslice.start, tmpslice.stop
                    try:
                        out1 = conservedmsa[tmp]
                    except KeyError:
                        pass
                    else:
                        elementlist = [(ix.ucsc_id, ix) for ix in out1.keys()]
                        elementlist.sort()
                        for iyy, element in elementlist:
                            if element.stop - element.start < 100: continue
                            score = int(string.split(element.gene_id, '=')[1])
                            if score < 100: continue
                            tmp2 = element.sequence
                            tmpelement = mostconserved[element.ucsc_id]
                            tmpslice2 = tmpelement.sequence # FOR REAL ELEMENT COORDINATE
                            wlist2 = wlist1 + (tmpelement.ucsc_id, tmpelement.gene_id, tmpslice2.start, tmpslice2.stop)
                            slicestart, sliceend = max(tmp.start, tmp2.start), min(tmp.stop, tmp2.stop)
                            tmp1 = msa.seqDict['dm2.' + chrid][slicestart:sliceend]
                            edges = msa[tmp1].edges()
                            for src, dest, e in edges:
                                if src.stop - src.start < 100: continue
                                palign, pident = e.pAligned(), e.pIdentity()
                                if palign < 0.8 or pident < 0.8: continue
                                palign, pident = '%.2f' % palign, '%.2f' % pident
                                wlist3 = wlist2 + ((~msa.seqDict)[src], str(src), src.start, src.stop, \
                                    (~msa.seqDict)[dest], \
                                    str(dest), dest.start, dest.stop, palign, pident)
                                saveList.append('\t'.join(map(str, wlist3)) + '\n')
                        saveList.sort()
                        for saveline in saveList:
                            outfile.write(saveline)
        outfile.close()
        md5old = hashlib.md5()
        md5old.update(open(tmpintronAnnotFileName, 'r').read())
        md5new = hashlib.md5()
        md5new.update(open(newintronAnnotFileName, 'r').read())
        assert md5old.digest() == md5new.digest() # MD5 COMPARISON INSTEAD OF COMPARING EACH CONTENTS


More and more people, scientists and religious people alike, are coming to the obvious conclusion that Intelligent Design is scientifically vacuous.
It [Intelligent Design] is not a theoretical alternative to evolution, because it suggests no other credible means by which this outside intelligence created the complexity of life. There is nothing in the theory of evolution, the only one that holds any water in explaining the origin of the species, that proves or disproves the existence of such an intelligent "designer." Even if one thinks of God as a separate, distinct being that manipulates the universe, "intelligent design" offers no intelligent reason to suggest that evolution wasn't God's chosen instrument of creation.
This "awe-wareness" gives spiritual expression its rightful place alongside scientific exploration. We don't need the non-theory of "intelligent design" to make the claim that science and religion are compatible. God is manifested dramatically in the processes of nature that science relentlessly strives to understand and describe.


This Scary Cat Halloween pin depicts a cat with its back up and ready to attack anyone who approaches. Its sleek body is an attention-grabbing design. Witches and cats are the two most enduring Halloween symbols and the most popular selection for costumes.
Halloween cat lore and superstitions persevere to this very day. A black cat is associated with evil. The Celts would sometimes sacrifice a cat in a bonfire during their festival. Witches were believed to be shape shifters and would most often take the form of cats. Sometimes they believed that cats were reincarnated witches.
Pet owners usually keep their black cats inside around Halloween for fear that they might be used in satanic rituals. But don't be a scaredy cat! This cat pin is an attractive adornment despite the fact that the color is associated with evil. Superstitious prejudice and Halloween lore make these felines an emblem of this festive holiday.
1. Draw and cut out the stencil (there is a pattern at the bottom of this page).
2. Lay down the pieces on the correct tint glass and sketch about the shape with a permanent marker. Generously cover up the drawing with beeswax or Chap Stick.
3. A glass saw is desirable to cut the shape. Follow near the line to retain the shape and all the small details.
4. Cleanse with soap and soak in plain water or employ glass cleaner to strip off the pen marks and scum. Air dry the items.
5. Position the sections on a all set up kiln ledge and put the shelf in the kiln. Be sure to grip the glass by the side to avoid fingerprints.
6. Close up the top or access. Switch on the kiln.
7. View the job at approximately 1325 degrees Fahrenheit. While peeking at your hot glass have on glasses with IR and UV shield.
8. As soon as the project possesses your preferred look, shut down and unplug the kiln. If the kiln is manufactured with thick fire bricks, you can permit it to cool down on its own. On the other hand if it is constructed with ceramic fiber, the kiln must be kept on and supervised so that it does not cool off more than approximately 300 degrees Fahrenheit per hour.
9. As soon as the temperature goes down under 100 degrees Fahrenheit, the kiln may be opened.
10. When the fused piece has cooled down to room temperature, you can add a brooch back. Stick on the brooch back with a two part epoxy.


text:
Andersen Airmen receive Article 15s
36th Wing Legal Office
ANDERSEN AIR FORCE BASE, Guam -- During the month of May 2008, four Andersen Airmen received Nonjudicial Punishment. The circumstances of the cases are as follows:
An airman first class from 36th Comptroller Squadron absented himself from his place of duty and remained so absent for 2 days, in violation of Article 86, Uniform Code of Military Justice. For this action, the member received a reduction to airman basic and a reprimand.
A senior airman from 36th Expeditionary Aircraft Maintenance Squadron stored and displayed pornographic images on his government computer in violation of Article 92, UCMJ. For this action, the member received a reduction to the rank of airman first class, forfeiture of $417 pay, restriction to the limits of Andersen Air Force Base for 10 days, and 10 days extra duty.
A staff sergeant from the 36th Munitions Squadron operated a motorcycle while drunk in violation of Article 111, UCMJ. For this action, the member received a reduction to senior airman, a forfeiture of $1,023 pay per month for 2 months, which was suspended through Nov. 18, and 45 days extra duty.
A staff sergeant from the 36th Civil Engineer Squadron failed to go to his appointed place of duty on two occasions and failed to stay awake while on duty in violation of Articles 86 and 92, UCMJ. For these actions, the member received a reduction to senior airman and 45 days extra duty.
Punishment under Article 15 of the UCMJ, otherwise known as Nonjudicial Punishment, is action by a service member's commander in response to suspected violations of the UCMJ. The commander determines if the service member committed the offense and, if so, imposes appropriate punishment. Accepting procedures under Article 15 is a choice of forum and not an admission of guilt. Service members always have the option to turn down Article 15 proceedings and demand to be tried by court-martial.
The legal office is available to brief at unit commander calls or other unit functions regarding current military justice or other legal issues affecting Andersen AFB. Please direct any questions or concerns to the Military Justice team at 36WG.jam@andersen.af.mil or 366-2939.


HOW DEFINE ART ? MY ART ?
Yes, art can be defined.
but watch the context, the cultural and historical period.
Art or arts ? Which art ?
See also Horace, the Roman poet.
See also craft ( as in 19th. c. " Arts and crafts" ) . etc.
Where we do the defining is also important. eg. Take Ireland and, say, the contemporary art of composed music.
Why do I insist that in Ireland still today there is hardly a concept, a definition, or the possibility of defining composed musical works – composed by Irish composers – as art, indeed as Irish art, an art on a level with eg. Irish poetry, film, painting etc.
What are the causes of this blindness, this prejudice, this exclusion of this definition ?
Is it lazy thinking? Could it be lack of experiencing New Irish Music, is that it ?
There have in the past been many definitions of art, of musical composition.
it is sicut fumus, like smoke, ethereal.
It is a temporal art, indeed THE time-art par excellence.
Time-bending, stretching, sculpting, stitching, overlapping, deluding, defying, conquering.
Composing is hope, utopian, mythic, fighting the good fight.
Music keens, protests, praises a fightin´ transcendence beyond the grave.
Certainly, music can be defined.
Irish contemporary music fights for its place in defining Ireland, Irish art, Irish artists.