iPhone XR features the most advanced LCD in a smartphone — a 6.1-inch Liquid Retina display with industry- leading colour accuracy and an innovative backlight design that allows the screen to stretch into the corners.(1) Six stunning new finishes. Advanced Face ID lets you securely unlock your iPhone, log in to apps and pay with just a glance. The A12 Bionic chip with next-generation Neural Engine uses real-time machine learning to transform the way you experience photos, gaming, augmented reality and more. A breakthrough 12MP camera system with Portrait mode, Portrait Lighting, enhanced bokeh and all-new Depth Control. Water resistance.(2) And iOS12— Apple's most advanced mobile operating system — with powerful new tools that make iPhone more personal than ever.
(1) The display has rounded corners. When measured as a rectangle, the iPhone XR screen is 6.06 inches diagonally. Actual viewable area is less.
(2) iPhone XR is splash, water and dust resistant and was tested under controlled laboratory conditions with a rating of IP67 under IEC standard 60529 (maximum depth of 1 metre up to 30 minutes). Splash, water and dust resistance are not permanent conditions, and resistance might decrease as a result of normal wear. Do not attempt to charge a wet iPhone; refer to the user guide for cleaning and drying instructions. Liquid damage not covered under warranty.
(4) Qi wireless chargers sold separately.
(5) Group FaceTime is available in iOS 12 through a software update.
Dual SIM (nano-SIM and eSIM), (iPhone XR is not compatible with existing micro-SIM cards).


So these lemon bars are probably one of my all time favorite desserts. My great-grandmother used to make them all the time for all our family get-to-gethers.
Of course I altered her recipe just a bit so I could use my favorite Meyer lemons from Lemon Ladies Orchard. Place an order for Karen's lemons and you'll understand why. Support small growers and farmers; it's a practice I wish I could do more often.
And these lemon bars do not disappoint. I altered it so I'm basically only left with a half batch, because I will honestly destroy the entire amount made.
Oh! And you could also sneak in some powered lemon peel into the crust if you want. Just gives it that extra tartness.
Preheat oven to 350°F. Line a glass baking pan (8 X 11 or 9 X 13) with parchment paper and set aside. In a large bowl mix the melted butter with the flour and powdered sugar until combined into a dough. Press the dough evenly into the parchment lined baking pan with your fingers or the back of a spoon. Bake in the preheated oven for 15-20 minutes. While the crust bakes whisk the remaining ingredients in a large bowl until combined. When the crust is done pre-baking, pour the lemon mixture over the top and return back to the oven to bake for an additional 20-25 minutes. Remove the pan from the oven and let the bars cool completely before sprinkling on some powdered sugar. Cut and serve.


WebAdvisor is used as a part of your registration tool. You may search course offerings, register for class sections, drop/add classes sections, view/print your current schedule, make an address and/or phone number change, view grades at the end of each semester, print your unofficial transcript, and much more. For more information on how to search and register for courses, please reference our helpful 'how to' instructions.
Rowan-Cabarrus Community College recognizes that advising is an important part of your college education. The intent of the advising process is to develop a collaborative relationship between the student and the advisor. We want our students to feel a sense of connection, support and guidance. Advising encourages students to think critically, seek out resources, and develop an action plan, specifically an educational plan based on a program of study. The advising process will provide you, the student with the information and encouragement needed to take personal responsibility for your program options, and make sound decisions. Our goal is for you to achieve a meaningful and successful educational experience here at Rowan-Cabarrus.
3. Need Advisor Assistance or Have Program of Study Questions?
You may reach out to your program advisor if you need assistance understanding your program of study. Contact your Program Advisor for more information.
The Academic and Career Advising (ACA) Center is also available to provide students with an advising experience that strengthens the partnership between the student and the college community. For more information, see Student Advocacy Services. You may reach any of the ACA Center staff by calling 704-216-7222.
If you have difficulty with any of the following while registering for your classes, see your Program Advisor or the ACA Center staff for assistance.
Any other questions/concerns regarding your registration.
To be considered registered, students must pay tuition and fees. There will be no individual billing statements mailed to students. Go to payment options, for more information. To avoid deletion of your schedule, it is the student's responsibility to assure that financial aid, sponsorships, authorizations, and/or payment arrangements are made by the deadline posted for each registration period. Tuition and fees may be paid at the Navigation Station at either North or South campus.


text:
Antwon Powell found guilty in 2015 homicide case, solicitation of murder charges dropped
GREEN BAY - A Green Bay man was found guilty Monday of fatally shooting another man during a confrontation about a suspected burglary and drug theft.
Antwon C. Powell, 31, entered an Alford plea Monday in Brown County Circuit Court in the three-year-old case accusing him of fatally shooting David Shorter, 32, of Green Bay, outside Shorter's Bellevue Street apartment.
Powell entered the plea just as the court was about to begin jury selection for a trial that was scheduled to begin Tuesday morning. In entering an Alford plea, Powell maintained his innocence, but recognized the state's case against him and the likelihood of a conviction.
According to court documents, the shooting happened when Powell confronted Shorter about a theft of marijuana and several hundred dollars from Powell's apartment.
Powell was initially charged with felony first-degree intentional homicide and other related charges. As part of a plea agreement with prosecutors, the charge was reduced to first-degree reckless homicide.
Charges were also dismissed Monday in a separate case, in which Powell was accused of unsuccessfully plotting to kill his former girlfriend, Cierrra B. Hargrove — who was expected to testify against him in the Shorter murder case.
Shorter was Hargrove's mother's boyfriend.
Powell will be sentenced in Shorter's murder March 27.
RELATED:Homicide case: Antwon Powell faces new charge of soliciting inmate to kill girlfriend
The closing of multiple cases
Powell was charged in October with soliciting a fellow jail inmate set to be released to kill Hargrove.
Another inmate who overhead the conversations told authorities Powell talked about how the only evidence the state had against him in the Shorter murder would come from Hargrove, and that his father would give a gun and $5,000 to anyone who killed her.
RELATED:Green Bay woman key witness in two unrelated Brown County homicide cases
Jail officials had the inmate wear a wire and recorded Powell's calls to gather information about the murder-for-hire scheme. The calls included several to Powell's brother. The two talked about a gun and whether the brother had been in touch with Powell's father.
The gun in question may have been used to kill Shorter, a criminal complaint states.
Hargrove was also expected to testify in an unrelated case in which another one of her former boyfriends, Dontreace Saulsberry, is accused of supplying the fentanyl-laced heroin that contributed to the 2017 overdose death of a woman and her unborn baby.
Saulsberry is charged with felony first-degree reckless homicide as a party to a crime as well as other drug-related charges.
He is scheduled to enter a plea on Friday.

redpajama_set_name: RedPajamaCommonCrawl


"My objective in life is not to have a spiritual life that is separate from the rest of my life." — Ed McCracken, CEO, Silicon Graphics "My business is my ministry," proclaims Judy Wicks, founder and maitre d' of Philadelphia's renowned White Dog Café and Black Cat store. "I don't go to church. I don't pray. I went as a child, saw no signs, and just never thought about God until a few years ago.
"My business is my ministry," proclaims Judy Wicks, founder and maitre d' of Philadelphia's renowned White Dog Café and Black Cat store. "I don't go to church. I don't pray. I went as a child, saw no signs, and just never thought about God until a few years ago.
"One night, I was on the street outside my restaurant, surrounded by people, putting on one of our annual events, dancing to a good Motown song. I looked around me, saw the faces of my customers, a real racially diverse group of urbanites out there around midnight dancing in the street. I looked into those faces and found this profound sense of pure joy.
Judy Wicks' philosophy of business and life jelled years ago when she listened to an audiotape about the life of Mahatma Gandhi. People wondered why a spiritual leader became involved so deeply in politics and economics. Gandhi felt the answer was simple. He didn't believe in separating spirituality (family), economics (business), and politics (social activism). Neither does mother, businesswoman, and social activist Judy Wicks.
Judy is a walking monument to the pleasures of sharing. She wants every one of our planet's six billion people to have a seat at the table of life — a gathering of dignity, respect, and hope. No one is denied a place. And she has developed a $4.5 million-a-year business that nets well above the industry average to exemplify the value and joy of that table.
Community-building talk programs, where locals and world leaders (like whom? Any examples?) (e.g,, Marian Wright Edelman, Oliver Stone, Eldridge Cleaver) share their life stories at a "Table Talk," fill the White Dog on traditionally slow nights.
"I'm a 'small is beautiful' kind of a person," Judy acknowledges. "Rather than grow larger, I prefer to go deeper with what I have. I prefer to ask, 'How can I have deeper, more profound relationships with those around me — my staff, my customers, my local community, the farmers who grow our food, the farmers who grow our coffee in Mexico?' That's what interests me.
"Everybody can be great . . . because anybody can serve. You don't have to have a college degree to serve. You don't have to make your subject and verb agree to serve. You only need a heart full of grace. A soul generated by love." — Dr. Martin Luther King, Jr.
So, don't leave your values andyour passions at the doorstep of your business. You may be leaving your very best behind. And in any case, bringing all of you to work makes the journey that much more fun.
To read more on Judy Wicks, see ML2 E-Newsletter #45 and Ways to Give Back. Read July Wicks' life story in Chapter 3 of my New York Times bestseller, Making a Life, Making a Living.
Copyright © 2000 Dr. Mark S. Albion. All rights reserved.


It appears rather like a maritime version of the biblical tale of Jesus' feeding in the desert: you take some pieces of old, mouldy wood, and from that, you create a seagoing vessel for almost 100 warriors.
In year 2000 the task was placed in the hands of master shipbuilder Søren Nielsen, and now the mission is completed. The Sea Stallion from Glendalough is nearly finished and will later set sail for Dublin, Ireland, where the original Viking ship was built 958 years ago.
The remains of the original ship lies in the Viking Ship Museum a few hundred meters from the shipyard in Roskilde. Many tourists have been disappointed when they saw how little was actually left of the largest warship in the collection - the Skuldelev 2. A few unimpressive bits of wood lie at the bottom of a large metal frame, to illustrate the impressive size of the real warship.
But to the leader of the Viking Ship Museum's shipyard, it is exactly the right bits that have survived. Exactly the ones that are required to make a reconstruction possible.
- We have almost the entire keel, and we know the distance between the ribs. We also have most of the stern, so we can practically figure out what the ship looked like, says Søren Nielsen.
- But we do not claim to have made a 100% exact replica of the original Skuldelev 2 Viking ship . The ship is our bid, based on available data.
Søren Nielsen is justifyably proud of launching the world's largest reconstructed Viking ship, but the launching also contains a drop of melancholy - it marks the end of his and his team's task. For four years, they have attempted to copy the way in which the Vikings made ships.
- Our task wasn't to build a Viking ship as fast as possible. First and foremost, we have gathered experience on the methods used. Quite consciously, we have prolonged the process for four years, because we wanted to experiment and record everything we did.
Even minor details in the very technique employed have been pondered upon and tried out. Thus, at one point it was necessary to send four shipbuilders to Norway for two weeks to learn the correct way to use the axe for a particular cut. Noone in Denmark had the necessary experience in this very special axe-technique (see the article Artful Axework ed.).
With a rope tied around his waist, Søren Nielsen also climbed to the top of an oak tree to chop off the curved branches with an axe, as the branches would often split if the tree was felled with the crown still in place. The curved branches are required for certain parts of the ship, as they are much stronger than they would be if they were made from a straight piece of wood.
The treatment of the wood is one of the main reasons for the Viking ships being at the same time strong and flexible. The Vikings clove wood along the grain, instead of sawing it, as has been done since the Middle Ages. Afterwards, they constructed the ship by placing the planks slightly overlapping in the so-called clinker-technique.
Clinkerbuilding, combined with avoiding cutting the grain of the wood by sawing, is the secret behind the lightness and strength of the Viking ship, as compared to the ships of later ages.
However, it takes time to cleave planks instead of just sending it to the sawmill and having it cut, and working the wood by axe requires massive amounts of time.
The number of craftsmen working on the Sea Stallion has varied somewhat. Towards the end, apart from Søren Nielsen himself, there have been eight shipbuilders and an apprentice, and the ship is estimated to have cost between 23.000 and 24.000 working hours when completed.
Not all the time was spent on the old metods, though. Where it was of no importance to the learning process, electric drills and chainsaws have been employed in order to save time for more rewarding tasks later in the process.
In the Viking Age, more people were probably engaged in the work. Søren Nielsen believes that there must have been about ten shipbuilders, and five "untrained hands" for a project like this. Furthermore, some twenty men would have been employed in the woods, cutting and cleaving the tree-trunks. Building the ship requires 14 large oak trees, each one meter thick.
The Vikings would use an estimated 28.000 hours on building af ship like the Sea Stallion from Glendalough. On the other hand, they would probably complete the ship in 6 months, as the Vikings most likely did not spend much time trying to figure out the right way of doing it, or documenting their progress on the computer. They knew how.
If the Vikings were to see the Roskilde-project today, they would probably not be impressed by the modern attitude to work.
- We know from various written sources that they were far more specialized than we can be. They had people in the woods, working on felling and cleaving, and they had specialists for many sub-processes in the building. They were even paid very differing wages, according to the status of the craft in question, says Søren Nielsen.


text:
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Diagnostics.Contracts;
using System.Dynamic;
using MongoDB.Driver;

namespace MongoDB
{
  public sealed class Mongo : DynamicObject, IDisposable
  {
    private readonly string _host;
    private readonly int _port;
    private readonly ConcurrentDictionary<string, Database> _databases =
      new ConcurrentDictionary<string, Database>();

    public enum Dir
    {
      Asc = 1,
      Desc = -1
    }

    public Mongo()
      :this("localhost", 27017)
    { }

    public Mongo(string host, int port)
    {
      _host = host;
      _port = port;
    }

    ~Mongo()
    {
      Dispose(false);
    }

    public int Port { get { return _port; } }
    public string Host { get { return _host; } }

    public override bool TryGetMember(GetMemberBinder binder, out object result)
    {
      result = GetDB(binder.Name);
      return true;
    }

    public IEnumerable<string> GetDatabaseNames()
    {
      Contract.Ensures(Contract.Result<IEnumerable<string>>() != null);
      var names = new List<string>();
      dynamic cmd = new Command("listDatabases", 1);
      dynamic result = GetDB("admin").ExecuteCommand(cmd);
      foreach (var db in result.databases)
      {
        names.Add(db.name as string);
      }
      return names;
    }

    public Database GetDB(string name)
    {
      Contract.Requires(!string.IsNullOrWhiteSpace(name));
      return _databases.GetOrAdd(name, x => new Database(x, this));
    }

    private Doc AdminCommand(string cmd)
    {
      return GetDB("admin").ExecuteCommand(new Command(cmd, 1));
    }

    public void ShutdownServer()
    {
      try
      {
        AdminCommand("shutdown");
      }
      catch (MongoException ex)
      {
        //this is the desired path
        if (ex.Message.Equals("Server connection failed"))
          return; //server should be down
      }
      throw new MongoException("ShutdownServer failed");
    }

    public Doc ServerBuildInfo()
    {
      return AdminCommand("buildinfo");
    }

    public string ServerVersion()
    {
      return ServerBuildInfo()["version"] as string;
    }

    private void Dispose(bool disposing)
    {
      if (disposing)
      {
        foreach (var db in _databases.Values)
        {
          db.Dispose();
        }
        _databases.Clear();
      }
    }

    public void Dispose()
    {
      Dispose(true);
      GC.SuppressFinalize(this);
    }
  }
}

redpajama_set_name: RedPajamaGithub


text:
Q: Test of significance of multiple proportions in two groups I have a dataset of two genetically different cell types, "A" and "B", and each of them can have four different morphologies, let's say "spiky cell", "elongated cell", "round cell", "triangular cell". This yields a 2x4 contingency table:
              Spiky   Long    Round    Triangular
Type "A":       1      10      13       44
Type "B":      10       3       3       20

How do I test if the differences in morphologies are different? As in "Cell group B has a significantly higher proportion of spiky cells than cell group A".
Normally, I would use a Fisher's exact test, and I have thought about just doing four Fisher's tests. However, since there are four different morphologies, I feel like I should be using a statistical model that models all four proportions. Like in the above example, it seems that there are more spiky "B" cells and more elongated "A" cells, and they are somehow not independent, since a cell can only be one of the four. Should I be using some kind of multilevel model?
I have tried searching for answers in previous questions, but I didn't find a solution. I hope someone can suggest a good test or maybe direct me to a previous discussion.
Thanks!

A: If you use a chi-square you can partition it into 2x2 contrasts - possibly with the aid of collapsing some groups for some of the contrasts. (Your lowest expected values are 3.81 and  4.50, which for most purposes is plenty.)
Alternatively, you could use a chi-square and perform the various 2x2 post hoc comparisons. If you want them, you can even do the usual kinds of significance level adjustments for those.
If you don't have to have formal tests, you can just look at the Pearson residuals or  (the signed square root of) the contribution to chi-square from the independence model to see which cells contributed substantively to significance.
Similar things can be done with the G-test (the likelihood-ratio-test form of chi-square).
You might instead fit a multinomial model via GLMs and test whichever contrasts or post hoc comparisons matter for you.

redpajama_set_name: RedPajamaStackExchange


Nominations will close Monday at 5pm central time. The Illinois Matmen staff will then choose what we feel are the strongest nominations. The top nominations will then be placed in a poll on the Illinois Matmen home page for everyone to vote. The poll will close Wednesday morning at 8am at which time the winner will be announced.
Not sure how many kids go into regionals with a losing record and come out of regionals like this!
"Panther freshman Donnie Hidden was a prime example Saturday. He came in as the No. 2 seed at 145 pounds with a 19-24 record. He left with the regional title after an 11-3 major decision against Peoria High�s Maldonaldo Guyton. The Peoria High junior upset top-seeded Drew Greenwood of Morton in the semifinals with a pin in sudden-victory."


Château Chocolate is a Belgian, roasted specialty malt. It adds deep brown color and a nutty, toasted flavor. Although somewhat bitter, Chocolate malt is much milder than black malt. It is used in strong and dark beers, especially porters, stouts, and brown ales.


For mutual funds, dividend payouts have not been considered when calculating "Overall Gain", and hence an investment shows loss based on present and investment NAV even though the payout received has exceeded the investment amount. Why is that?
The overall gain gives you the absolute gain based on your investment as per the books of accounts. Hence, you see the loss on your investment due to the reduction in NAV.
The NAV gets reduced because of the declared dividends. To know the actual return on your investment, use the XIRR reports, which will gives you true annualised return on your mutual funds, which takes care of the dividend received from mutual fund.
So, for any asset, Annualised Return (XIRR) is the most important and accurate report which gives you the annualised return on any asset, even if have multiple buy, sell transactions in this asset over the period of time and also if you have received income (dividend/interest/other income) from this asset.


text:
What's open and closed New Year's Eve and New Year's Day
BT Toronto | posted Tuesday, Dec 31st, 2019
It is the most wonderful time of the year and also the busiest. Before you head out and about over the holidays, consult our list below of what's open and closed from now until New Year's Day.
Transit | Malls | Grocery/drug stores | LCBO/Beer stores | Tourist attractions | Government offices and banks | City of Toronto services
Dec. 31: Regular service, with free rides from 7 p.m. on Dec. 31 until 7 a.m. on Jan. 1
Jan. 1: Sunday service (subway and most surface routes start at 8 a.m.)
Click here to refer to the service schedule.
GO Transit
Dec. 31: Sunday schedule, with early homebound and late-night service, and free rides after 7 p.m.
Jan. 1: Sunday schedule
Dec. 31: 10 a.m. to 6 p.m.
Jan. 1: 11 a.m. to 6 p.m.
Dufferin Mall
Dec. 31: 9:30 a.m. to 5:30 p.m.
Jan. 1: Closed
Dec. 31: 9 a.m. to 6 p.m.
Jan. 1: 12 p.m. to 7 p.m.
Erin Mills Town Centre
Dec. 31: 9:30 a.m. to 5 p.m.
Shops at Don Mills
Toronto Premium Outlets
Jan. 1: 9:30 a.m. to 7 p.m.
Grocery/drug stores
Most grocery stores will be closed on New Year's Day but some local stores may be open. Call your local store before heading out.
LCBO/Beer Stores
Dec. 31: Most stores will have extended hours, click here to locate your store's hours
The Beer Store
rel="noopener">Select stores will be open from 11 a.m. to 5 p.m.
Dec. 31: Stores will close at 6 p.m.
AGO: Open over the holidays.
Casa Loma: Open over the holidays.
CN Tower: Open over the holidays.
Ontario Science Centre: Open over the holidays.
Ripley's Aquarium of Canada: Open over the holidays.
Royal Ontario Museum: Open over the holidays.
Toronto Zoo: Open over the holidays.
Government offices and banks
No mail delivery on New Year's Day and banks are closed as well.
City of Toronto services
Garbage, blue bin and green bin collection will not take place on New Year's Day but will be picked up the following day. The next day's collection will move to the next day and so on. This applies to daytime and nighttime curbside collection. Click here for more information.
Toronto Public Library
Recreation centres and skating rinks
The City of Toronto's municipal offices, community and recreation centres, arenas, child-care centres and museums will be closed on New Year's Day. Recreation centres will be open until 4 p.m. on New Year's Eve.
Click here for list of activities to do in the city over the break.
No comments have been left yet, get the conversation started!
Leave a Comment Below Cancel reply
You're logged in as . Logout.
Unexpected error. Please try again.
Notice: Your email may not yet have been verified. Please check your email, click the link to verify your address, and then submit your comment. If you can't find this email, access your profile editor to re-send the confirmation email. You must have a verified email to submit a comment. Once you have done so, check again.
Want to embed media into your comment? Just paste in a URL in a separate paragraph to the page where you would normally view the media (like on YouTube) and it will automatically be embedded into your comment.
Kids across Canada more at risk of hospitalization from flu this season: doctor January 17, 2020
FBI arrest former Canadian reservist, suspected neo-Nazi January 17, 2020
Court backlog delays family's civil suit against Brampton hospital over son's suicide January 17, 2020
Significant snowfall coming to GTA on Saturday January 17, 2020
Teachers in Ontario's French system start work-to-rule campaign January 16, 2020


text:
TV Tapings (12)
Currently Rated : 3 by 12 customer(s)
About About the Museum of Sex in New York City
At the Museum of Sex in midtown Manhattan you can explore the history, evolution, and cultural significance of sexuality. Featuring over 15,000 object permanently displayed such as cover art, sex films, models, and more as well as constantly changing exhibits. The museum addresses a wide range of topics such as sex lives of animals, lesbian and gay history and erotica, BDSM, pornography, and sex work in a sophisticated manner. Museum of Sex offers visitors the opportunity to explore material and artifacts from different cultures and time period.
Hours and Admission at New York Cities Museum of Sex
Sunday-Thursday: 10:00am-8:00pm
Friday and Saturday: 10:00am-9:00pm
seniors: $15.25+tax
Adults: $17.50+tax
Students: $15.25+tax
Contact Client All fields are required unless indicated.
Message for Museum of Sex
One of our staff members will respond shortly.
Intrepid Sea, Air and Space Museum
At the Intrepid Sea, Air and Space Museum in New York City take you through a journey of heroism and excitement.
Central Park Sightseeing
Central Park Sightseeing offers several guided tours including bike, pedi cab, and horse carriage tours through New Yorks famed Central Park.
The American Museum of Natural History in New York City is one of the most celebrated museums in the world
The Guggenheim Museum in New York City features one of the finest collections of modern and contemporary art in the world.
Liberty Helicopter Sighseeing Tours
Liberty Helicopter Tours in New is an unforgettable way to view New York City's most popular landmarks.
Bike and Roll Central Park
Bike and Roll New York City features bike tours and rentals all across the city.
Madame Tussauds Wax Muesum
At Madame Tussauds Wax Museum in New York City you can get up close and personal with 200 celebrities.
Empire State Building Observatory
At the Empire State Building Observatory you can enjoy stunning 360-degree views of New York City and on clear days you can see up to five states.
911 Memorial
The 9/11 Memorial in New York's financial District offers a great opportunity to remember and honor the thousands of innocent men, women, and children lost on 9/11.


text:
Review: Cloud Dance Festival: Restless at Jackson's Lane Theatre
Performance: 24 April 2009
Reviewed by Marie Walton - Friday 1 May 2009
Cloud Dance Festival began its third year with 'Restless', a diverse collection promising a stimulating evening's entertainment. Friday night's program opened with the choreography of Denise Horsley.
'Still' had poetry at its heart creating a sympathetic sadness for the lone woman bathed in a shaft of light. Random pauses in gentle cradling postures establish a maternal sentiment with spiralling movements punctuating the steady flow. It is a private journey back and forth along a lit pathway and leaves a sense of emptiness and lingering sorrow.
Subsequently, Transience Dance Company removed all physical boundaries from the start. 'Transience' commenced with a lit auditorium; bare bricked back wall and two slowly undulating performers. The piece progressed with random repetitive entrance and exits and hunched postured dancers presenting a strange insanity. An extreme verbal onslaught was unleashed by the entrance of a further performer babbling angrily through the auditorium, and at points, directly at audience members. With moments of brief synchronicity adding to the eccentricity, the highly expressive performers were both mesmerizing and disturbing, their cackling laughter as they slowly walked off was entertainingly unsettling.
'Push', choreographed by Melody Squire, provided a precise if somewhat repetitive contrast. The dancers of Sol Dans executed solos, duets and collective choreography with accuracy and a pleasurable attention to detail. The movements created an uninterrupted stream of merging patterns with only momentary attempts at dynamic variation. A perfect delivery by a strong group of dancers.
The concept behind ktdt's (Katie Thies Dance Theatre's) performance of 'I found a bag of nuts' was an attractive device. The structure of the piece, in its entirety, being influenced by the dancers and the random cues and instructions they are given before and throughout. The casual fragments of text whilst performers created squares with tape and played with props, added to the informal and amusing performance. On the whole it was a pleasant insight into a choreographic tool that left the audience to speculate how it would differ if watched for a second time.
The most encapsulating performance of the evening came from Cloud Dance. 'Come out to show them' bombarded and trapped the onlooker inside a positively disturbing moment in time. Huge abstract projections supported the visual attack as the six dancers, with bandaged heads and gathered white dresses, poured erratically through the space. The unmistakable image of these women simultaneously advancing towards the audience, with the accompaniment of flashing images and increasingly enveloping noise, created a gripping yet uncomfortable experience. Beautifully executed, the dancers, images and piercing sounds harass the senses into an escalating departure from reality.
'Running Through You' is a lighthearted and intimate solo from Eade and Perkins Presents…. and one of the highlights of the evening. A refreshing insight into a very personal explanation combining dance and text to achieve an exchange of unexpected information. Having completed a series of movements the dancer returns to the start of the sequence, only this time adding explanations to each part, immediately providing an easy clarity and relation to various text and actions. Quite often humorous and endearing, the varieties of mediums, including a delightful 'freestyle' to 'Raspberry Beret', merge amazingly well. An uplifting and pleasingly different approach to physical expression resulting in a very likeable performance.
The second highlight of the evening came from Off The Map with a beautiful interpretation of segregation and the desire for acceptance. 'I've been waiting' is an excellent portrayal of one man's struggle through awkward and almost clumsy phrases whilst two flawlessly synchronized women complete various extracts of choreography. Without any acknowledgement from the other dancers he continues his self-conscious journey pausing intermittently to watch the others manoeuver seamlessly past. The gentle sadness of the situation is complimented by the acoustic music of Fink, which only adds to the overall likeability of both the performers and the piece itself. Eventually the trio joins in unison but the relief is only temporary and the man is deserted at the finish, crestfallen as he watches the two women leave.
The final piece 'Be Mine', by Drew McOnie Dance Theatre, promises a theatrical escape back to the times when women unmistakably oozed femininity and men were nothing but perfect gentlemen. With this in mind it delivers all of the above and more. With a backdrop of melodious crooning from Judy Garland, the fun-filled choreography delivers atmosphere by the bucket-loads and is performed with such lively enthusiasm by all the dancers it is impossible not to be mesmerized. A passionate display of 'show tune' glamour, this is entertainment at its super sweetest and not for the faint-hearted. As the last piece of the evening, it places a definite full stop on a distinct and assorted program.
Cloud Dance Festival's line-up boasts an excellent array of pieces including some of the most promising developing talent in both performance and choreography.


text:
Organic farm rules need to be reviewed soon, not slowly rewritten
Alan Guebert
Farm and Food File
Nearly everything about Francis and Susan Thicke's southeastern Iowa, organic dairy farm whispers bucolic: a herd of Jersey cows and calves graze on rolling acres of green pastures amid fenced farm fields and acres and acres of tree-thick woods.
Even the farm's name, Radiance Dairy, relays an easy calm.
But there's nothing calm about the food fight the Thickes (pronounced tick-ee) and their organic colleagues have taken on since 2018 when they formed the Real Organic Program to challenge what they see as the "compromised standards" of the U.S. Department of Agriculture's National Organic Program, or NOP.
Fights over organic standards are older than NOP itself. In fact, clear, national, and enforceable organic standards were a key reason Congress created NOP in 1990.
From the start, however, NOP wasn't a comfortable fit for USDA, a red tape machine more accustomed to administering billion-dollar crop subsidy programs than an organic program with little money and no bureaucracy.
But NOP did have clear, understandable rules to help producers become "certified" organic growers and a "USDA Organic" label to help them build new, value-based markets for what they produced.
And, uniquely, NOP had a voluntary, 15-member National Organic Standards Board appointed by the secretary to recommend proposed changes in the production, handling, and processing of organic products like food and clothing.
Over the next 20 years, organic food sales grew from dollar bills to billions of dollars. In 2020, organic food sales hit $50.1 billion, according to the Organic Trade Organization.
As sales surged, though, the standards board became a lightning rod for proposals aimed to make organic production bigger, faster, and cheaper to, it was claimed, meet increasing demand.
Organic stalwarts worried that the rules were evolving so bigger, more commercial growers could cash in on organic's higher profit margins and perceived higher quality at the expense of smaller, more specialized farmers who had followed the rules to build those markets over decades.
Whatever the reason, real or perceived, the organic standards slowly slackened, says Francis Thicke in a recent telephone interview. The result was the rise of "big organic."
Today, he suggests, those relaxed rules mean "that maybe half the tomatoes sold as 'organic' in the country are grown through hydroponics," a no-soil process that Thicke says fails to meet original NOP standards on "improving the soil."
"How can they do that when there's no soil?"
Thicke, who holds a Ph.D. in agronomy and served on the National Organic Standards Board from 2013 through 2018, knows the answer: because the standards board said they could. Case closed.
Unless, he suggests, organic farmers push USDA to reconsider where "lesser standards" are sure to lead — a less valuable market that threatens the existence of every organic grower, big and small.
As such, Thicke linked up with a non-government organic effort called the Real Organic Program in 2018 to do what he felt USDA wasn't: to certify new farms under the old standards and promote their products as "real" organic.
Despite early success, few in the group want the confusion that comes with a competing organic program. Ideally, USDA and its now-returned former boss, Iowan Tom Vilsack, will review NOP and consider closing some "loopholes" that the group believes allowed organic standards to slide.
To begin that conversation, Thicke and nearly four dozen other former members of the National Organic Standards Board sent Vilsack a letter in late April that outlined changes USDA "could easily adopt" to restore the "public trust" in the "integrity" of the NOP. It was clear, concise, and respectful.
And it was received that way. "The secretary replied quite quickly," says Thicke, "and we're working to set up a meeting later this month."
This is a good, first sign because clear rules, like fences, remain important to everyone — growers and customers alike.
And while every rural American knows this, sometimes it's good to remind everyone what side of the fence they stand.
The Farm and Food File is published weekly throughout the U.S. and Canada.


I've been busy at work, but I've managed to occasionally fit some graphics programming in between. I've improved the look of basically everything in game and done some internal changes that should make turning this into an actual game much easier. The art is still really lacking, but technology-wise, I feel I'm approaching my target.
I had some ideas to turn this game into an elaborate farming/survival game, but after wasting some time on it, decided against it. Mostly because it would take an absurd amount of time and secondly, there seems to be a lot of farming games already. I'm aiming for a sandbox game right now. I think figuring out every plant's preferred growing conditions, flowering and branching patterns should be interesting enough.


On Park Avenue, begonias are blooming in hues matching the blur of passing taxicabs. At Bryant Park, the white tents of Fashion Week have been tucked away, and grass now shines on the lawn. And throughout the city, hotels and restaurants are readying themselves for the millions eager to visit at this lovely, exciting time of year. ¶ Collectively, the visitors will spend billions, and it's easy to imagine how. The bright lights of Broadway come with ticket prices of more than $100. Dinner at the Rainbow Room costs $200 a person. Even an elevator ride to the top of the Empire State Building will set you back $19. ¶ Still, New York City needn't be a daunting destination for travelers on a budget. As you plan your spring or summer sojourn, consider mixing into your itinerary some of these free Big Apple experiences.
Why pay $25 for a whirlwind bus tour when the Big Apple Greeter program will match you with a New Yorker eager to show you around for free?
Let your volunteer guide give you an insider's perspective of such trendy neighborhoods as SoHo or TriBeCa or lead you to an off-the-beaten-path outer-borough neighborhood that you might not see otherwise, such as multicultural Astoria in Queens. Sign up at www.bigapplegreeter.org.
Art lists adult admission as $20, many visitors don't realize that this is a suggested price. You can pay as little as a penny.
Admission at the Natural History Museum and the Brooklyn Museum is also suggested, and other museums have discounts on particular days.
You'll find free or suggested admission at the Museum of Modern Art from 4 to 8 p.m. Fridays and the Museum of the City of New York from 10 a.m. to noon Sundays. For a list, see www.nytix.com/Museums.
Central Park, the vast backyard of the Met, is a must-see, but the city also has a plethora of other noteworthy public spaces.
Bryant Park's London plane trees make it one of the loveliest in the city. Watch children ride the carousel by day and, beginning in June, enjoy a free movie on the lawn by night in this Midtown oasis.
Madison Square Park offers views of the iconic Flatiron building and the culinary delights of the Shake Shack, a local favorite.
Farther downtown is Washington Square Park, the heart of New York University, where you can watch lively chess and checkers matches.
Or check out bustling Union Square Park, host to the city's largest farmers market, which operates on Mondays, Wednesdays, Fridays and Saturdays.
For a list of city parks, visit www.nycgovparks.org.
Another charming but lesser-known park is Riverside, on the western side of Manhattan along the Hudson River.
As you stroll the scenic waterfront promenade, stop at the dock at either 56th or 72nd Street, where the New York City Downtown Boathouse offers free, walk-up kayaking on weekends, holidays and some weekday evenings through October. (From June to September, you can also sign up beforehand for a free three-hour guided trip.) For info, see www.downtownboathouse.org.
Down the Hudson River in New York Harbor is Governors Island, accessible by a free five-minute ferry ride featuring sweeping city views. The varied architecture of this 172-acre island, from pre-Civil War arsenal buildings to 20th century neoclassic structures, narrates its fascinating history.
First inhabited by Native Americans, it was bought by the Dutch and then by the British, who used it as a Revolutionary War base. After changing into U.S. hands, the island played a role in most major U.S. military engagements. In the 1960s, it became the Coast Guard's largest installation, with an on-island population of more 3,000.
A ghost town since the Coast Guard left in 1996, the island today welcomes visitors on Fridays, Saturdays and Sundays beginning next weekend. Musical and theatrical performances take place most weekends. Enjoy the only-front-facing view of the Statue of Liberty. More information is at www.govisland.com.
Take in panoramic views of the Manhattan skyline as you cross the Brooklyn Bridge on foot. From July to October, marvel at the public art installation that is the talk of the city: artist Olafur Eliasson's four 90- to 120-foot man-made waterfalls (with one under the bridge).
The bridge will be packed with other out-of-towners, but few know to fuel up beforehand with a cone at the scenic pier-side Brooklyn Ice Cream Factory or on coal-oven pizza at a local favorite, Grimaldi's. Fewer still know to stay after sundown, when, beginning in July, the Brooklyn Bridge Park will offer free activities such as weekly concerts and movie screenings. For more information and directions, visit www.brooklynbridgepark.org.
So many free events take place in New York City each day that it is impossible to list them. Many of the best lectures, concerts, performances, gallery openings and assorted activities are collected online by FreeNYC, www.freenyc.net.


text:
In + Around The IE
IE Guides
Eggstravaganza Family Egg Hunt
Eggstravaganza Family Egg Hunt 2020
Bloom 2019 – An Event for New and Expectant Moms
Bloom 2020 – An Event for New and Expecting Moms
Donuts with Santa – 2019
Contributor Application Form
Meet the Owner & Executive Team
Inland Empire Mom Collective
AllDining outFree ActivitiesSummer CampsThings To Do
Fourth of July Events In and Around the Inland Empire
Ultimate Guide to Splash Pads in the Inland Empire
The Inland Empire's Ultimate Summer Camp Guide
Ultimate Guide to June 2021 Events In and Around the Inland…
Things To Do For Families Wanting To Get Out For A…
Summer 2021 Bucket List In And Around The Inland Empire
The Best Pediatric Dentists In The Inland Empire
IE Mom Collective
Inland Empire Mom Collective is written FOR local Moms, BY local Moms. We are passionate about the community, and the families who live here. Our purpose is to provide community, resources and support.
IE Mom Collective - June 15, 2021 0
With temperatures in the three digits, we have to stay cool somehow. Splash pads are becoming increasingly more popular nowadays, and knowing where to go can make it a fun and cool summer. This...
IE Mom Collective - June 4, 2021 0
Don't want your kids to be bored this summer? No problem because we've compiled a HUGE list of summer camps in the Inland Empire your kids might be interested in! We've included a wide...
How Surrogacy Helped My Family
IE Mom Collective - May 17, 2021 0
Karen Erikson is a mom and a former surrogate, who lives in the Inland Empire (Temecula/Murrieta area) and would like others to know what it's like to become a surrogate. In 2019 I completed my...
Pay Off Credit Card Debt Faster
IE Mom Collective - April 12, 2021 0
Have you seen the balance on your credit cards increase over time and are wondering how to pay it down quickly? Wondering if it's best to consolidate all that debt into one account to avoid...
Repeat Surrogacy With Extraordinary Exceptions
Have you already been a surrogate? Looking to do it again? If you're considering a repeat surrogacy, you already know the ropes. You know how the process works, what journey entails and everything else. But this...
Repeat Surrogacy
IE Mom Collective - April 6, 2021 0
Karen Erikson is a mom and a former surrogate, who lives in the Inland Empire (Temecula/Murrieta area) and would like others to know what it's like to become a surrogate. In early 2020 I began...
7 Tips For Creating A Healthy Parenting Mindset
IE Mom Collective - March 15, 2021 0
Do you have a healthy parenting mindset? It's a question not many of us parents have ever thought about before. However, it can help improve your parenting and relationship with your kids and your expectations...
The Surrogate Matching Process: A Personal Experience
Karen Erikson is a mom and a former surrogate, who lives in the Inland Empire (Temecula/Murrieta area) and would like others to know what it's like to become a surrogate. In late 2018 I was...
How Long Does It Take To Get Matched With A Family As A Surrogate?
IE Mom Collective - March 4, 2021 0
There are a lot of questions that come up when it comes to potential surrogate mothers and one FAQ is about how long does it take to get matched with a family as a...
7 Things Happily Married Couples Do For Each Other Without Being Asked
IE Mom Collective - February 16, 2021 0
Like parenting, marriage is anything but easy. There's good day and bad days. The thing with marriage is that you have to work at it day in and day out. Expressing love is one...
Inland Empire Mom Collective is a locally-focused parenting resource for moms and families. Passionate about parenting and our community, Inland Empire Mom Collective strives to connect area moms to relevant resources, local businesses, can't-miss happenings, and most of all — each other!
© Inland Empire Mom Collective© - 2022


Taking different approaches to collaboration and adaptation, the two films in this programme emerge from the meeting point of physical and virtual worlds as they speculate capitalist utopias and dystopias.
Beatrice Gibson's F for Fibonacci is loosely based on William Gaddi's modernist novel JR in which an eleven-year-old capitalist creates the world's greatest virtual empire using his school's pay phone. Deftly exploring relationships between music and film and education, the film is structured around a conversation between the artist and an eleven-year old boy who created a Minecraft environment for its lead character, Mr Money.
Ben Rivers and Gabriel Abrantes' collaborative film The Hunchback is a sci-fi adaption of the titular story cycle in the Arabian Nights. Set in a virtual simulation of medieval society, employees of a dystopian tech-company are forced to get back in touch with their feelings by taking on different social roles inside an archaic social order. When a participant playing a hunchback is killed during the simulation, the historical fiction begins to fall apart.


text:
Anita Finlay's Blog
Video Book Intro
Get First 3 Chapters
Speaker / Host
Speaker / Host Overview
Dare We Say episodes
Newsmax TV episodes
The Jerry Doyle Show
Interviews, Radio & Podcasts
Finlay & Smart Talk Archives
America's Radio News Network
Actor Overview
Anita's Radio Demo
Fighting for Women's Rights at the Voting Booth
by Anita Finlay
in Misogyny, Sexism
GOP efforts to ram through Brett Kavanaugh's lifetime Supreme Court appointment while hiding vital information about him from the public showcases not only the urgency of overturning one-party rule, but the need to elect more Progressive women to office. Women's rights in particular will be affected if Kavanaugh is confirmed and, as predicted, pushes the Supreme Court further right, likely overturning Roe v. Wade. That Senators Feinstein and Leahy have accused him of perjury and this process still moves forward is another shocking reminder of the deep consequences of not showing up to vote.
In the past eighteen months, women around the country, and the world, have joined the fight against harassment and abuse via the #MeToo and #TimesUp movements. These protests received vital boosts through events such as the anniversary of #WomensMarch, prominent award shows and speeches by elected officials and celebrities, who vowed to stand in solidarity to protect future generations from the violations they have suffered. While this was a big step forward, the worldwide spotlight won't mean much unless we make our voices heard at the voting booth.
Voting may seem like a no brainer. It's not. Particularly at midterms, where turnout is notoriously low. All politics is local, each vote critical. Every Senator, Congress person, State representative and Council member can have a profound effect on our daily lives, with the power to enact legislation that will turn #MeToo protests into more than a rallying cry.
Note how little has changed in the 6 years since the 4thEstate conducted its comprehensive, shocking media study, revealing that men are solicited for their opinions in news articles 5 times as much as women – even on women's health issues. On matters of the economy and foreign policy, men were quoted 3:1 and 4:1 over women.
Reflective of this, the current ratio in Congress is 80.2% men to 19.8% women – with policies to match.
Older white men still frame the conversation on political, health, economic and foreign policy issues on Sunday talk shows. The ratio of older white males to women and people of color has not changed. Whose stories are being told and from who's perspective?
How many powerful, sexist men in news media like Charlie Rose, Matt Lauer, Bill O'Reilly, Chris Matthews, Cenk Uygur or Glenn Thrush framed the political coverage of our first ever female nominee – and what was the result in 2016?
As one of Time's 2017 Persons of the Year: The Silence Breakers put it:
"When Trump won the election, I felt a crushing sense of powerlessness. And then I realized that I had to do something."
As Time also noted:
"The language used by the man who would become America's 45th President, captured on a 2005 recording, was, by any standard, vulgar. He didn't just say that he'd made a pass; he "moved on her like a bitch." He didn't just talk about fondling women; he bragged that he could "grab 'em by the pussy."
"That Donald Trump could express himself that way and still be elected President is part of what stoked the rage that fueled the Women's March the day after his Inauguration."
Women who were treated so contemptuously, both on the campaign trail and on the ground, throughout the entire 2106 election cycle are the ones who are responsible for galvanizing a minority opposition Party by staging the #WomensMarch — the largest protest in US history. The anniversary march was almost as well attended as the first. Replete with pink pussy hats, women had finally said 'enough.' And owing to the #MeToo movement, a number of sexist media predators have now been exposed and forced to step down.
Of necessity, #MeToo and #TimesUp are just getting started. In her much lauded speech at the Golden Globes, Cecil Be DeMille Lifetime Achievement Award Recipient Oprah Winfrey stated:
"We all have lived too many years in a culture broken by brutally powerful men. For too long, women have not been heard or believed if they dare speak the truth to the power of those men. But their time is up."
Already, the #MeToo movement has gotten backlash from men (and some women) saying "That's enough ladies." Liam Neeson said this is turning into "a bit of a witch hunt." Matt Damon came out to "mansplain" the difference between rape and a "pat on the butt," Andrew Sullivan tells us to "Resist the excesses of #MeToo." The relentlessly misogynist Bill Maher just referred to #MeCarthyism."
Why the defensive posture? #MeToo is a righteous anger that has been simmering for eons, yet women (and affected men) are supposed to ration themselves in their complaint and, at long last, pursuit of justice?
"We'll allow you to have your say, ladies – but not too much" is the expression of the insecure male who cannot tolerate a criticism he feels duty bound to personalize even if he is not the subject. Think of all the "no women" or "no colored" policies endured for centuries and now, a few months of protest against predators is "too much"?
We must no longer ration ourselves when it comes to having our voices.
The outspokenness of women and people of color only seems outlandish because we are so used to white male dominance in media, politics, business and even entertainment – where the highest paid are almost always white men.
#TimesUp on telling us we've had our say and should once again be quiet.
The great irony is if the current administration is brought down, it will be in great part because of the courage, determination, protests – and VOTES – of The Silence Breakers – all those who were disrespected by power brokers in media, politicians, "bros" of both parties, and of course by Vladimir Putin and his Russian 'bots'.
Along with disgust at the "election" of admitted "pussy-grabber" Trump, doubtless part of these protests are in reaction to the misogynist double standard Hillary Clinton received at the hands of the press, her opponents and the far left in 2016. Hundreds more women are running for political office in the 2018 midterms, busting through old conditioning telling them they need "one more degree" or "more experience" to be qualified when no man ever stopped himself with such a thought.
These women deserve serious consideration and every opportunity to raise the level of our representation in government (frankly, the only way to ensure more women-friendly policies). Yet activism comes in many forms. It's the poster you make for a visibility event. It's the article you share letting your friends learn about someone's qualifications. It's the Town Hall you attend or the protest march. Surely, the most vital activism is exercising your right in the voting booth to choose who you want to fight for you, without consideration to or fear of a partner or peer. In our daily struggles juggling bills, family care and career, our votes are still the biggest way we can fight back against those who tell us we don't matter.
#TimesUp for predators to control the narrative that keeps them in power and keeps us fearful of speaking out against their misdeeds.
#TimesUp for women and people of color to be harassed, abused and not have their work recognized and rewarded equally.
#TimesUp for us to keep silent. We claim an equal seat at the table. Time for our voices to be heard – whether we choose to run for office or not.
#TimesUp also means women must have agency over their own bodies and the freedom to determine their own futures.
#TimesUp to be cajoled into accepting crumbs at the table or to be treated as a political football at election time.
Our protests and our votes bring with them an opportunity for lasting change for the betterment of both women and men.
The solidarity of millions is what makes those who would abuse their power know they can no longer intimidate their targets into silence and ensures that we can translate today's protests into tomorrow's representation.
#KamalaHarris#StopKavanaugh#TimesUpMeToo
Select a Category Select Category Addiction Affordable Care Act Aging Alaska American Express Americas Radio News Network AP Scandal Beauty Benghazi Bullying Chef Chelsea Clinton Christmas CIA Crystal Nichols Dare We Say Darlene Love Disaster Preparedness DOMA Domestic Violence Election 2016 Election 2020 Family Feminism Fiscal Cliff Gay Marriage Gender Equality General Blog GM Gun Control Halloween Hillary Clinton Hollywood Home Slider Hypersexualization of Women Janet Yellen Jerry Doyle Show Love Marriage Media Bar Media Bias Mental Illness Millennials Minimum Wage Misogyny Mitt Romney Mother's Day New York Times Newsmax Oscars Phylicia Rashad Political President Barack Obama Presidential Election Racism Republicans RNC Secretary of State Hillary Clinton Self-Image Sexism Sexual Assault Supreme Court Terrorism Travel Uncategorized Violence Against Women Women at the Box Office Women in Music Women in Politics
Connect with Anita!
Join Anita's Newsletter
Simply enter your information below to
stay connected with Anita through her
e-newsletter.
Dirty Words on Clean Skin
Dirty Words on Clean Skin is a #1 Amazon Women in Politics book for 16 weeks.
Anita Finlay's book, Dirty Words on Clean Skin has been accepted to the Clinton Presidential Library and is on the curriculum at Pasadena City College.
Buy NowDownload ChaptersRead Book Reviews
"...shares the nasty truth of contemporary misogyny. Adroitly, Finlay relates these injustices to the plight of all women and tells it like it is for women aspiring to power."
Marcia Pappas, NOW-NY, Pres.
"Anita took a very controversial topic and created a book that reads like an adventure story and educates at the same time. In the process, her entire life changed. A well-researched and fascinating book!"
Lynne Klippel, AuthorSalon.TV
Why an Apology to Hillary Helps All Women
Gratitude In Challenging Times
Democrats and the Value of Debating Trump
Hillary and My Promises for 2020
Kamala Harris and Women's Fight for Equal Pay
The Electoral College Must Go
Connect with Anita
Commercial / TalentWorks
(818) 818 972-4300
Theatrical / Angel City Talent
Media / Publicist
Allen Media Strategies
Burke Allen (703) 589-8960


text:
#include "stdlib.h"

/***************************************
 *
 *   String conversion function
 *
 ***************************************/

/**
 * atof - convert ASCII string to double
 *
 * @desc The function converts the initial portion of the string pointed to by nptr to double.  The behavior is
 the same as strtod(nptr, (char **) NULL);
 * @return The converted value
 */
double atof(const char *nptr){
    double val, power;
    int i, sign;
    const char *s = nptr;

    for (i = 0; isspace(s[i]); i++) /* skip white space */
        ;
    sign = (s[i] == '-') ? -1 : 1;
    if (s[i] == '+' || s[i] == '-')
        i++;
    for (val = 0.0; isdigit(s[i]); i++)
        val = 10.0 * val + (s[i] - '0');
    if (s[i] == '.')
        i++;
    for (power = 1.0; isdigit(s[i]); i++){
        val = 10.0 * val + (s[i] - '0');
        power *= 10;
    }
    return sign * val / power;
}

/**
 * atoi - convert ASCII string to integer
 *
 * @desc The function converts the initial portion of the string pointed to by nptr to int.  The behavior is the
 *       same as strtol(nptr, (char **) NULL, 10);
 * @return The converted value
 */
int atoi(const char *nptr){
    int i, n, sign;
    const char *s = nptr;

    for (i = 0; isspace(s[i]); i++) ;/* skip white space */
    sign = (s[i] == '-') ? -1 : 1;
    if (s[i] == '+' || s[i] == '-') /* skip sign */
        i++;
    for (n = 0; isdigit(s[i]); i++)
        n = 10 * n + (s[i] - '0');
    return sign * n;
}

/**
 * atol - convert ASCII string to long integer
 *
 * @desc The function converts the initial portion of the string pointed to by nptr to int.  The behavior is the
 *       same as strtol(nptr, (char **) NULL, 10);
 * @return The converted value
 */
long atol(const char *nptr){
    long ret = 0L;
    int neg = 0;
    const char *s = nptr;

    while (s && *s && isspace(*s))
        s++;
    if (*s == '-' || *s == '+'){
        neg = *s == '-';
        s++;
    }
    for ( ; s && *s && isdigit (*s); s++)
        ret = (ret * 10) + (isdigit (*s) ? *s - '0' : *s);
    return (neg ? -ret : ret);
}

/**
 * strtod - convert ASCII string to floating point
 *
 * @desc The functions convert the initial portion of the string pointed to by nptr to double, float, and long double
 *		 representation, respectively.
 * @return These functions return the converted value
 */
double strtod(char *str, char **ptr){
    char *p;
    //const char *str = nptr;
    //char **ptr = endptr;

    if (ptr == (char **)0)
        return atof (str);

    p = str;

    while (isspace (*p))
        ++p;

    if (*p == '+' || *p == '-')
        ++p;

    /* INF or INFINITY.  */
    if ((p[0] == 'i' || p[0] == 'I') && (p[1] == 'n' || p[1] == 'N') && (p[2] == 'f' || p[2] == 'F')){
        if ((p[3] == 'i' || p[3] == 'I') && (p[4] == 'n' || p[4] == 'N') && (p[5] == 'i' || p[5] == 'I') && (p[6] == 't' || p[6] == 'T') && (p[7] == 'y' || p[7] == 'Y')){
            *ptr = p + 7;
            return atof (str);
        } else {
            *ptr = p + 3;
            return atof (str);
        }
    }

    /* NAN or NAN(foo).  */
    if ((p[0] == 'n' || p[0] == 'N') && (p[1] == 'a' || p[1] == 'A') && (p[2] == 'n' || p[2] == 'N')){
        p += 3;
        if (*p == '('){
            ++p;
            while (*p != '\0' && *p != ')')
                ++p;
            if (*p == ')')
                ++p;
        }
        *ptr = p;
        return atof (str);
    }

    /* digits, with 0 or 1 periods in it.  */
    if (isdigit (*p) || *p == '.'){
        int got_dot = 0;
        while (isdigit (*p) || (!got_dot && *p == '.')){
            if (*p == '.')
                got_dot = 1;
            ++p;
        }

        /* Exponent.  */
        if (*p == 'e' || *p == 'E'){
            int i;
            i = 1;
            if (p[i] == '+' || p[i] == '-')
                ++i;
            if (isdigit (p[i])){
                while (isdigit (p[i]))
                    ++i;
                *ptr = p + i;
                return atof (str);
            }
        }
        *ptr = p;
        return atof (str);
    }
    /* Didn't find any digits.  Doesn't look like a number.  */
    *ptr = str;
    return 0.0;
}

/**
 * strtol - convert a string to a long integer
 *
 * @desc The function converts the initial part of the string in nptr to a long integer value according to the
 *       given base, which must be between 2 and 36 inclusive, or be the special value 0.
 * @return The function returns the result of the conversion, unless the value would underflow or overflow. If
 *         an underflow occurs, strtol() returns LONG_MIN.  If an overflow occurs, strtol()  returns  LONG_MAX.   In  both
 *         cases, errno is set to ERANGE.  Precisely the same holds for strtoll() (with LLONG_MIN and LLONG_MAX instead of
 *         LONG_MIN and LONG_MAX).
 */
long int strtol(const char *nptr, char **endptr, int base){
    const char *s = nptr;
    unsigned long acc;
    int c;
    unsigned long cutoff;
    int neg = 0, any, cutlim;

    /*
     * Skip white space and pick up leading +/- sign if any.
     * If base is 0, allow 0x for hex and 0 for octal, else
     * assume decimal; if base is already 16, allow 0x.
     */
    do {
        c = *s++;
    } while (isspace(c));
    if (c == '-') {
        neg = 1;
        c = *s++;
    } else if (c == '+')
        c = *s++;
    if ((base == 0 || base == 16) &&
            c == '0' && (*s == 'x' || *s == 'X')) {
        c = s[1];
        s += 2;
        base = 16;
    }
    if (base == 0)
        base = c == '0' ? 8 : 10;

    /*
     * Compute the cutoff value between legal numbers and illegal
     * numbers.  That is the largest legal value, divided by the
     * base.  An input number that is greater than this value, if
     * followed by a legal input character, is too big.  One that
     * is equal to this value may be valid or not; the limit
     * between valid and invalid numbers is then based on the last
     * digit.  For instance, if the range for longs is
     * [-2147483648..2147483647] and the input base is 10,
     * cutoff will be set to 214748364 and cutlim to either
     * 7 (neg==0) or 8 (neg==1), meaning that if we have accumulated
     * a value > 214748364, or equal but the next digit is > 7 (or 8),
     * the number is too big, and we will return a range error.
     *
     * Set any if any `digits' consumed; make it negative to indicate
     * overflow.
     */
    cutoff = neg ? -(unsigned long)LONG_MIN : LONG_MAX;
    cutlim = cutoff % (unsigned long)base;
    cutoff /= (unsigned long)base;
    for (acc = 0, any = 0;; c = *s++) {
        if (isdigit(c))
            c -= '0';
        else if (isalpha(c))
            c -= isupper(c) ? 'A' - 10 : 'a' - 10;
        else
            break;
        if (c >= base)
            break;
        if (any < 0 || acc > cutoff || acc == cutoff && c > cutlim)
            any = -1;
        else {
            any = 1;
            acc *= base;
            acc += c;
        }
    }
    if (any < 0) {
        acc = neg ? LONG_MIN : LONG_MAX;
        errno = ERANGE;
    } else if (neg)
        acc = -acc;
    if (endptr != 0)
        *endptr = (char *) (any ? s - 1 : nptr);
    return (acc);
}

/**
 * strtoul - convert a string to an unsigned long integer
 *
 * @desc The function  converts  the  initial  part  of the string in nptr to an unsigned long integer value
 *       according to the given base, which must be between 2 and 36 inclusive, or be the special value 0
 * @return The function returns either the result of the conversion or, if there was a leading minus  sign, the
 *         negation  of  the  result of the conversion represented as an unsigned value, unless the original (non-negated)
 *         value would overflow; in the latter case, strtoul() returns ULONG_MAX and sets the  global  variable  errno  to
 *         ERANGE.  Precisely the same holds for strtoull() (with ULLONG_MAX instead of ULONG_MAX).
 */
unsigned long int strtoul(const char *nptr, char **endptr, int base){
    const char *s = nptr;
    unsigned long acc;
    int c;
    unsigned long cutoff;
    int neg = 0, any, cutlim;

    /*
     * See strtol for comments as to the logic used.
     */
    do {
        c = *s++;
    } while (isspace(c));
    if (c == '-') {
        neg = 1;
        c = *s++;
    } else if (c == '+')
        c = *s++;
    if ((base == 0 || base == 16) &&
            c == '0' && (*s == 'x' || *s == 'X')) {
        c = s[1];
        s += 2;
        base = 16;
    }
    if (base == 0)
        base = c == '0' ? 8 : 10;
    cutoff = (unsigned long)ULONG_MAX / (unsigned long)base;
    cutlim = (unsigned long)ULONG_MAX % (unsigned long)base;
    for (acc = 0, any = 0;; c = *s++) {
        if (isdigit(c))
            c -= '0';
        else if (isalpha(c))
            c -= isupper(c) ? 'A' - 10 : 'a' - 10;
        else
            break;
        if (c >= base)
            break;
        if (any < 0 || acc > cutoff || acc == cutoff && c > cutlim)
            any = -1;
        else {
            any = 1;
            acc *= base;
            acc += c;
        }
    }
    if (any < 0) {
        acc = ULONG_MAX;
        errno = ERANGE;
    } else if (neg)
        acc = -acc;
    if (endptr != 0)
        *endptr = (char *) (any ? s - 1 : nptr);

    return (acc);
}

/***************************************
 *
 *    Math function
 *
 ***************************************/

/**
 * abs - compute the absolute value of an integer
 */
int abs(int j){
    return j < 0 ? -j : j;
}

/**
 * labs - compute the absolute value of an integer
 */
long int labs(long int j){
    return j < 0 ? -j : j;
}

/**
 * llabs - compute the absolute value of an integer
 */
long long int llabs(long long int j){
    return j < 0 ? -j : j;
}

/***************************************
 *
 * Data Structure and Algorithm function
 *
 ***************************************/

/**
 * bsearch - binary search of a sorted array
 *
 * @desc The function searches an array of nmemb objects, the initial member of which is pointed to by base, for a member
 *		 that matches the object pointed to by key.  The size of each member of the array is specified by size
 * @return The function returns a pointer to a matching member of the array, or NULL if no match is  found. If there are
 *		   multiple elements that match the key, the element returned is unspecified.
 */
void *bsearch (const void *key, const void *base, size_t nmemb, size_t size, int (*compar) (const void *, const void *)){
    size_t l, u, idx;
    const void *p;
    int comparison;

    l = 0;
    u = nmemb;
    while (l < u){
        idx = (l + u) / 2;
        p = (void *) (((const char *) base) + (idx * size));
        comparison = (*compar) (key, p);
        if (comparison < 0)
            u = idx;
        else if (comparison > 0)
            l = idx + 1;
        else
            return (void *) p;
    }

    return NULL;
}

/**
 * swap - swap two variables (for qsort)
 */
static void swap(void *base, size_t i, size_t j, size_t size){
    void *tmp = malloc(size);

    memcpy(tmp, (char *)base + i * size, size);
    memmove((char *)base + i * size, (char *)base + j * size, size);
    memcpy((char *)base + j * size, tmp, size);
    free(tmp);
}

/**
 * qsort - sorts an array
 *
 * @desc The function sorts an array with nmemb elements of size size.  The base argument points to the start of
 *		 the array
 * @return The function returns no value
 */
void qsort(void *base, size_t nmemb, size_t size, int (*compar) (const void *, const void *)){
    int i, last;

    if (nmemb <= 1)
        return;

    swap(base, 0, nmemb / 2, size);

    last = 0;
    for (i = 1; i < nmemb; i++)
        if (compar((char *)base + (i * size), base) < 0)
            swap(base, i, ++last, size);

    swap(base, 0, last, size);

    qsort(base, last, size, compar);
    qsort((char *)base + (last + 1) * size, nmemb - last - 1, size, compar);
}

/**
 * srand - pseudo-random number generator
 *
 * @desc The function sets its argument as the seed for a new sequence of pseudo-random integers to be returned
 *       by rand().  These sequences are repeatable by calling srand() with the same seed value.
 *       If no seed value is provided, the rand() function is automatically seeded with a value of 1
 * @return The function returns no value
 */
void srand(unsigned int seed){
    __rand_next__ = seed;
}

/**
 * rand - pseudo-random number generator
 *
 * @desc The function returns a pseudo-random integer between 0 and RAND_MAX.
 * @return The functions return a value between 0 and  RAND_MAX.
 */
int rand(void){
    __rand_next__ = __rand_next__ * 1103515245 + 12345;
    return (unsigned int)(__rand_next__ / 65536) % 32768;
}

/**
 * rand - pseudo-random number generator
 *
 * @desc The function is supplied with a pointer to an unsigned int, to be used as state. This is a very small amount of
 *       state, so this function will be a weak pseudo-random generator.
 * @return The functions return a value between 0 and  RAND_MAX.
 */
int rand_r(unsigned int *seed){
    unsigned int next = *seed;
    int result;

    next *= 1103515245;
    next += 12345;
    result = (unsigned int) (next / 65536) % 2048;

    next *= 1103515245;
    next += 12345;
    result <<= 10;
    result ^= (unsigned int) (next / 65536) % 1024;

    next *= 1103515245;
    next += 12345;
    result <<= 10;
    result ^= (unsigned int) (next / 65536) % 1024;

    *seed = next;

    return result;
}

/***************************************
 *
 *   Memory control function
 *
 ***************************************/

/**
 * morecore - ask system for more memory (for malloc)
 *
 * @desc system implement (like UNIX os use sbrk() alloc data segment)
 */
static Header *morecore(size_t nu){
    char *cp, *sbrk(int);
    Header *up;
    if (nu < NALLOC)
        nu = NALLOC;
    cp = sbrk(nu * sizeof(Header));
    if (cp == (char *) -1) /* no space at all */
        return NULL;
    up = (Header *) cp;
    up->s.size = nu;
    free((void *)(up+1));
    return freep;
}

/**
 * malloc - Allocate dynamic memory
 *
 * @desc malloc() allocates  size  bytes and returns a pointer to the allocated memory.  The memory is not cleared. If
 *       size is 0, then malloc() returns either NULL, or a unique pointer value that can later be  successfully  passed
 *       to free().
 * @return malloc(), the value returned is a pointer to the allocated memory, which is suitably aligned for any kind of
 *		   variable, or NULL if the request fails.
 */
void *malloc(size_t size){
    size_t nbytes = size;
    Header *p, *prevp;
    size_t nunits;

    nunits = (nbytes+sizeof(Header)-1)/sizeof(header) + 1;
    if ((prevp = freep) == NULL) { /* no free list yet */
        base.s.ptr = freeptr = prevptr = &base;
        base.s.size = 0;
    }
    for (p = prevp->s.ptr; ; prevp = p, p = p->s.ptr) {
        if (p->s.size >= nunits) { /* big enough */
            if (p->s.size == nunits) /* exactly */
                prevp->s.ptr = p->s.ptr;
            else { /* allocate tail end */
                p->s.size -= nunits;
                p += p->s.size;
                p->s.size = nunits;
            }
            freep = prevp;
            return (void *)(p+1);
        }
        if (p == freep) /* wrapped around free list */
            if ((p = morecore(nunits)) == NULL)
                return NULL; /* none left */
    }
}

/**
 * free - Free dynamic memory
 *
 * @desc free()  frees the memory space pointed to by ptr, which must have been returned by a previous call to malloc(),
 *       calloc() or realloc().  Otherwise, or if free(ptr) has already been called before, undefined  behavior  occurs.
 *       If ptr is NULL, no operation is performed.
 * @return free() returns no value
 */
void free(void *ptr){
    Header *bp, *p;
    void *ap = ptr;

    bp = (Header *)ap - 1; /* point to block header */
    for (p = freep; !(bp > p && bp < p->s.ptr); p = p->s.ptr)
        if (p >= p->s.ptr && (bp > p || bp < p->s.ptr))
            break; /* freed block at start or end of arena */
    if (bp + bp->size == p->s.ptr) { /* join to upper nbr */
        bp->s.size += p->s.ptr->s.size;
        bp->s.ptr = p->s.ptr->s.ptr;
    } else
        bp->s.ptr = p->s.ptr;
    if (p + p->size == bp) { /* join to lower nbr */
        p->s.size += bp->s.size;
        p->s.ptr = bp->s.ptr;
    } else
        p->s.ptr = bp;
    freep = p;
}

/**
 * calloc - Allocate dynamic memory
 *
 * @desc calloc()  allocates memory for an array of nmemb elements of size bytes each and returns a pointer to the allo-
 *       cated memory.  The memory is set to zero.  If nmemb or size is 0, then  calloc()  returns  either  NULL,  or  a
 *       unique pointer value that can later be successfully passed to free().
 * @return the value returned is a pointer to the allocated memory, which is suitably aligned for any kind of variable,
 *		   or NULL if the request fails.
 */
void *calloc(size_t nmemb, size_t size){
    void *ptr;

    ptr = malloc(nmemb * size);
    if (ptr)
        memset(ptr, '\0', nmemb * size);
    return ptr;
}

/**
 * realloc - Allocate dynamic memory
 *
 * @desc realloc() changes the size of the memory block pointed to by ptr to size bytes.  The contents will be unchanged
 *       to the minimum of the old and new sizes; newly allocated memory will be uninitialized.  If  ptr  is  NULL,  the
 *       call  is equivalent to malloc(size); if size is equal to zero, the call is equivalent to free(ptr).  Unless ptr
 *       is NULL, it must have been returned by an earlier call to malloc(), calloc() or realloc().  If the area pointed
 *       to was moved, a free(ptr) is done.
 * @return realloc() returns a pointer to the newly allocated memory, which is suitably aligned for any kind  of  variable
 *         and  may be different from ptr, or NULL if the request fails.  If size was equal to 0, either NULL or a pointer
 *         suitable to be passed to free() is returned.  If realloc() fails the original block is left  untouched;  it  is
 *         not freed or moved.
 */
void *realloc(void *ptr, size_t size){
    Header *bp;
    void *new_ptr;
    size_t old_size;

    if (ptr == NULL)
        return malloc(size);
    bp = (Header *)ptr - 1;     /* point to block header */
    old_size = sizeof(Header) * (bp->s.size - 1);
    new_ptr = malloc(size);
    if (new_ptr == NULL) {
        return NULL;
    }
    if (old_size <= size) {
        memcpy(new_ptr, ptr, old_size);
    } else {
        memcpy(new_ptr, ptr, size);
    }
    free(ptr);
    return new_ptr;
}


Travel from Queenstown with an overnight stay in the Catlins area, and return to Queenstown.
Overnight stay at Maclean Falls Holiday Park separate accommodation with own facilities. Optional Maclean Falls walk.
Curio Bay Fossilised forest, tide dependant.
Waipapa Point Lighthouse, sealions, seals.
Return to Queenstown arrive approx 6pm.
Cost $345 incl taxes per person per day includes refreshments, Min of 4 people required. Lunch not included cafe stop for lunch. For more than 4 people please contact us for a price.
NOTE : accommodation, dinner, lunch & breakfast at own expense, travel by Toyota Landcruiser Minimum 4 people required.
Travel from Dunedin with an overnight stay in the Catlins area, and end tour in Queenstown.
Tautuku Beach lookout, bush walk Lake Wilkie.
Visit Cathedral Caves tide dependant.
Cost $345 incl taxes per person per day includes refreshments, Min of 4 people required, lunch not included cafe stop for lunch. For more than 4 people please contact us for a price.
NOTE: accommodation, dinner,lunch & breakfast at own expense, travel by Toyota Landcruiser, Minimum 4 people required.
Cannibal Bay beach walk to view sealions.
Arrive Queenstown drop of hotel approx 7 pm.
Cost Adult $345 per person incl 15% tax shared tour. Refreshments included, lunch not included cafe stop for lunch.
Minimum 4 people required, for more than 4 people please contact us for a price.
Includes option 1 or option 2 depending on tour start point, overnight in Te Anau visiting Milford Sound day 3, and return to Queenstown.
A relaxed day ahead as we enter the Fiordland National Park and the Eglinton Valley stopping at the Mirror Lakes boardwalk, Knobs Flat, The Divide, Monkey Creek and enter the Homer Tunnel traveling 1.2 km through to the Cleddau Valley. Our last stop before Milford is The Chasm viewing the 22m deep ravine carved by the Cleddau River.
At Milford Sound we take a 1.5 hour cruise on the fiord, enjoy your time aboard viewing wildlife and the majestic scenery, lunch is available aboard.


> > *Pterodactylus* reached over 2 m wingspan.
> on other bird competitors.
typical bat lifestyle is known so far.
> back in the Jurassic).
> How does this relate?
compete if they weren't segregated by time.
> > > speculative limb here).
> > So speculative that I needn't even answer IMHO. Why "less thrust"?
> > Azhdarchids had powerful flapping abilities.
> creatured be relative to a non-feathered juvenile?
What effect should age have here?
> I don't see why this should be speculative.
> feathers--which is why I asked the question in the first place.
dictionary isn't scientific enough to know either.
> > were predators that were able to run after them -- phorusracoids.
they, so their situation has already been worse?
> Pterosaurs are elegant and speedy walkers compared to what?
> > > --must watch their babies more carefully.
> All egg layers must.
Many don't. Turtles for instance.
> > bird, take over the world in the mid-EK?
> existed--took over the world.  I'm only using it as an example.
So do you consider this specific example falsified?


text:
Producers Index / Jeremy S. Bloom
Jeremy S. Bloom
Jeremy Bloom (@Jeremy_s_Bloom) is a sound designer & technical producer for WNYC studios.
His work can be heard on episodes of Nancy, Two Dope Queens, Radiolab, So Many White Guys, and more. Jeremy's experience spans across podcasts, film/TV, immersive exhibits, and theater. Outside of WNYC, Jeremy was nominated for a 2019 Primetime Emmy for Outstanding Sound Editing on the documentary FYRE. His original sound designs have been presented internationally by Netflix, Discovery, The National Park Service (Statue of Liberty), Magnolia Films, BBC Wales, CNN Films, History Channel, The Tenement Museum, America's Test Kitchen, ATG London, New York Theatre Workshop, and more. Jeremy has taught the next generation of sound designers at CUNY, Yale, and Princeton. Visit his website.
Jeremy S. Bloom sound designed the 2019 Third Coast / Richard H. Driehaus Foundation Competition Award-winning piece: "Punks."


Features long sleeve pullover and long pants, a stylish tracksuit for man.
Fine workmanship, comfortable and breathable to wear.
Hoodie and long sleeve design, casual and fashion.
Perfect for morning jogging/workouts, a must have to active wear wardrobe.


A craft brewery is coming to the East End development in Akron.
Eighty-Three Brewery, a production brewery, tasting room and eatery, plans to open next year in the brick building that houses the Goodyear Theater along East Market Street in the city's Middlebury neighborhood.
The building is part of Goodyear Tire & Rubber Co.'s former world headquarters.
"It's pretty cool to go into a historic building," said Chris Surak, 35, an Akron homebrewer who's launching the seven-barrel brewery with his wife Stephanie, 34, and other investors.
The Suraks announced the brewery project last week on social media.
The East End area is home to high-end apartments, a Hilton Garden Inn and SummaCare, with plans for retail and restaurants to feed the people living and working there. A brewery fits in with the redevelopment, Surak said.
The Suraks are still in the early stages of the project.
Eighty-Three will cover about 4,500 square feet on the first floor of the building. Surak plans to brew a wide variety of styles, eventually hoping to develop barrel-aging and sour programs.
The brewery also will offer guest beers and wine.
Surak worked in graphic design and advertising before and said his creativity shines through his brewing. His wife works in accounting.
He also designed the Eighty-Three logo, which is an abstract eight and three mashed together.
Eighty-Three refers to the year that Surak was born.
The Akron area has seen a boom in craft brewery openings over the last few years — as has the entire country. The Brewers Association, a Boulder, Colo.-based trade group, estimated that there were 6,655 active breweries in the United States as of June 30, up from 5,562 a year ago.
"It's a good time for breweries in Akron," Surak said.
The city is home to Akronym, Aqueduct, BrickOven, Hoppin' Frog, R. Shea, Thirsty Dog and Two Monks, with Lock 15 and Missing Falls planning to open. R. Shea also is opening a large production brewery downtown.
Zac Kohl, executive director of the Well Akron Community Development Corp. in the Middlebury neighborhood, said the nonprofit is excited to see East End development growing.


text:
Research Article| November 10 2009
The degradation of diethyl phthalate (DEP) during ozonation: oxidation by-products study
Yeon Jung Jung;
Yeon Jung Jung
1Department of Environmental Engineering, YIEST, Yonsei University, 234 Maeji, Heungup, Wonju 220-710, Republic of Korea
Byung Soo Oh;
Byung Soo Oh
2Center for Seawater Desalination Plant, 261, Cheomdan-gwagiro, Buk-gu, Gwangju 500-712, Republic of Korea
Kyoung Suk Kim;
Kyoung Suk Kim
3Future Development Institute, Sinpo-dong, 1-ga, Masan-si, Gyeongsangnam-do, Republic of Korea
Minoru Koga;
Minoru Koga
4Faculty of Environmental and Symbiotic Science, Prefectural University of Kumamoto, 3-1-100 Tsukide, Kumamoto 862-8502, Japan
Ryota Shinohara;
Ryota Shinohara
Joon-Wun Kang
Tel.: +82-33-760-2436 Fax:
; E-mail: jwk@yonsei.ac.kr
J Water Health (2010) 8 (2): 290–298.
https://doi.org/10.2166/wh.2009.301
Yeon Jung Jung, Byung Soo Oh, Kyoung Suk Kim, Minoru Koga, Ryota Shinohara, Joon-Wun Kang; The degradation of diethyl phthalate (DEP) during ozonation: oxidation by-products study. J Water Health 1 June 2010; 8 (2): 290–298. doi: https://doi.org/10.2166/wh.2009.301
The degradation of diethyl phthalate (DEP) in an aqueous solution during ozonation was investigated by identifying the oxidation intermediates using GC–MS. The experiments were carried out in semi-batch mode with a 1.5 mg l−1-min ozone dose. The proposed degradation pathways were divided into hydrolysis of the aliphatic chain (pathway (A)) and hydroxylation resulting from ∙OH attack in the aromatic ring (pathway (B)). With increasing ozone dose, the aromatic ring of DEP was opened and acidic compounds, such as malonic acid, succinic acid and glutaric acid were formed. In addition, the ozonation of DEP for 18 min induced hydrogen peroxide (H2O2) generation at levels six times higher than pure water. Of the intermediates indentified, phthalic acid (PA) and phthalic anhydride (PAH) enhanced the degradation of DEP by promoting ozone decomposition.
degradation, diethyl phthalate (DEP), hydroxyl radical, intermediates, ozone


So... your scruffy wooden floor needs a makeover. There seem to be plenty of restoration and sanding companies about. Do you go for a local one? Or try further afield?
All at the right price for you!
It's always wise to get more than one quote. This will take longer, but why be in a hurry? Unless you have a time frame for a new floor i.e. a special event at home, it's worth taking a measured decision over such a long term investment.
Companies do vary in what they offer and charge. Sometimes widely so. Some are more thorough, some just less efficient and inherently more pricey. It may be tempting to go for the quote in the middle. You have a budget and want to find the best value. Yet consider: are you willing to pay the price for feeling that satisfied glow each time you survey your new floors? Regret can be too costly, however much you have 'saved' on a cheaper job.
If a quote appears outrageously cheap, there must be a good reason. And that's probably a bad one. Sloppy sanding, poor quality materials, too few coats..
Creating a new floor takes time: in the sanding itself; applying various coats of stain and finish - and allowing adequate drying time. Don't be afraid to ask for details of every stage: a good company will be able to tell you with reasonable accuracy how long the job will take.
The wonders of websites now allow you to see before and after examples with clear colour pictures. However, the real thing reveals far more..
Ask for testimonials. Are there satisfied customers you can talk to and see their new floors for yourself? A trustworthy company will be happy to pass on its customers' details (with permission). And some of these may be more than pleased to show off their beautiful restored floors.
Of course, a good company is likely to have a full set of customers and may not be able to do the job immediately. Unless you are in a desperate hurry for that new look, it should be worth waiting for.
May we suggest that Floor Sanding will cover all the bases.
So do get in touch to find out how!


Delhi have their second win of IPL 6. They have beaten PWI by 15 runs. Pune were once again in a good position but found a way to lose. Maybe.... that is their talent. Sad though. DD are off the bottom of the table as well.
PWI 137-4 after 19 overs. Pune need 28 runs off the last over and they don't have Gayle in their team.
OUT! Yuvraj Singh caught on the boundary line. PWI 130-4. The left-hander made 31 off 24 balls. PWI now need 25 runs off 12 balls to win.
PWI 119-2 after 16 overs. 9 runs from the last over. DD are keeping themselves in the game. Just about. PWI still have the advantage but Wright is struggling in the middle. Yuvraj has 27 off 18 balls.
PWI 96-2 after 13 overs. Yuvraj is getting into his stride now but Pune need him to play the seniors role to perfection today. PWI require another 69 runs with 8 wickets and 42 balls remaining.
WICKET! Finch walking back now. Double blow for PWI, 78-2. Irfan gets his second wicket of the over. Batsman unfortunate to be sent back though. It came off his pocket!
OUT! Super catch by Unmukt Chand sends Uthappa back. PWI lose their first wicket, 76-1. Uthappa made 37 off 33 balls.
PWI 75-0 after 10 overs. Just 4 off the over but PWI need to make sure they don't leave this too late. 90 runs off 60 balls -- that's the equation.
PWI 71-0 after 9 overs. PWI are surely in the stronger position here.
PWI 58-0 after 7 overs. Not the best start but it gives them a good platform. DD need to get Finch's wicket. He is the main driving force.
PWI 25-0 after 4 overs. Steady start by PWI. This will not be an easy chase. Keeping wickets in hand is the key.
PWI 10-0 after 2 overs. Yadav didn't get his line right and the Pune batsman picked him off.
PWI 0-0 after 1 over. Irfan Pathan starts off with a maiden -- the third time he has bowled a maiden in IPL 6. Uthappa's batting seems to have fallen away this season... well for a couple of seasons now.
DD finish with 164-5. 13 runs off the last over and DD have a very competitive total on board. Not an easy track to bat on and PWI will need Yuvi to come to the party.
OUT! Jadhav falls. DD 159-5. Holes out in the deep.
DD 151-4 after 19 overs. A six off the first ball (Jadhav) and another off the fourth ball (Warner) made sure that it was a big over for DD. And a six off the last ball meant that DD went past 150. Exactly what they needed too. Warner went to 51 too off just 24 balls with 4 fours and 4 sixes.
DD 130-4 after 18 overs. Good over for PWI, just 6 runs off it. This is a big ground, fours and sixes have not been easy to come by.
DD 124-4 after 17 overs. Warner got two fours in the first three balls but then Dinda came back well with two nice slower balls. But Warne had the last laugh by slamming the last ball for another four. Warner has 36 and is looking very dangerous.
DD 111-4 after 16 overs. Can DD take it to 150 somehow? They will need that kind of total to post a challenge. Hasn't looked like an easy track to bat on.
DD 101-4 after 15 overs. Warner on 16 and Jadhav on 3. The left-handed Australian batsman is Delhi's last hope.
WICKET! DD are 96-4. Rohrer is caught by Uthappa -- a good catch, a really good catch. That's three catches behind the stumps for him.
After 12 overs, DD are 80-3. They need a partnership now to make a game of this. Still have a platform.
WICKET! Unmukt is out as well. Rahul Sharma the bowler and Uthappa took a good catch. 68-3 and in big trouble.
OUT! Dinda gets Sehwag with a short ball. Gloved to the keeper. DD 68-2 after 10 overs. It was a bad ball and Sehwag went for the hook. Unlucky. But Dinda has the big wicket. Sehwag made 29 off 26 balls.
DD 67-1 after 9 overs. Just five runs off Yuvraj Singh's first over. Truly boring stuff. And now we have a strategic timeout too.
DD 62-1 after 8 overs. Sehwag has made his way to 27 while Unmukt Chand is on 13. Pune's bowlers aren't getting their line right.
DD 46-1 after 7 overs. It really does feel like a match between two of the bottom-placed teams in the IPL. Lacks an edge.
DD 37-1 after 6 overs. Sehwag took a while but then he gave the crowd at Raipur something to shout about by hitting the first ball of the over by six and then following it up with a four.
DD 24-1 after 5 overs. India's U-19 captain Unmukt Chand is in the middle alongwith Sehwag. Wonder what total they have in mind... doesn't look like an easy pitch.
DD 20-1. Jayawardene falls after making 12. Dinda the bowler. The ball seemed to stop on the batsman and it simply looped to Wright at extra cover.
After 4 overs, DD have jus 20-0 on board. Not the quickest start for sure.
Poor start to the match -- two streaky fours from Mahela's bat and then four wides down the leg-side. DD 17-0 after 3 overs.
One happy fellow will be the guy who gets that ball signed by the winning captain in the #DDvsPWI match. Valuable ball. Limited supply.
The stoppage due to the sight screen problem was 7 minutes. After 2 overs, DD have 8-0 on the board. Nothing of note so far.
Long break in the middle. Play has been stopped due to a sightscreen that hasn't closed properly.
Millions spent on yet another cricket stadium...wonder how many turf pitches and training facilities are there in Chhattisgarh.
The Shaheed Veer Narayan Singh Intl Stadium at Raipur is the 19th IPL venue in India. No first-class games have been hosted here at yet.
Brilliant first over by Bhuvi. Just 3 runs off it. He kept it at a good length and the batsmen didn't take too many chances either. DD 3-0 after 1 over.
First game at Raipur. Mahela on strike. Bhuvneshwar with the ball. A good crowd in as well.
Toss won by Pune Warriors India, who chose to field first.
A lacklustre Delhi Daredevils will be desperate to change the course of their disastrous campaign when they square up against an equally out-of-sorts Pune Warriors in an IPL 2013 match here today.
The match will also mark debut of a new venue -- the 'International Cricket Stadium' -- in the capital city of Chattisgarh and the successful staging of the two matches in this year's league could well open the doors for international assignments in near future.
On paper, there is not much to choose between the two sides as they have been equally woeful losing matches on the trot.
While the Daredevils languish at the bottom of the table with seven defeats in eight games, the Warriors have fared no better this time having lost six games out of their eight encounters and are currently placed eighth.
Both teams are seeking redemption and being pitted against each other gives that perfect opportunity to both the sides to get some confidence back which has been battered by repeated failures.
The match begins at 2000 hrs IST.