text:
FBS FCS DII DIII
Home Scores Rankings Standings Stats Video History Bowls
The Associated Press | November 24, 2018
Michigan vs. Ohio State football: Wolverines look to snap six-game losing streak in The Game
Michigan vs. Ohio State: Inside The Game
No. 4 Michigan (10-1, 8-0 Big Ten, No. 4 CFP) takes on No. 10 Ohio State (10-1, 7-1, No. 10 CFP) Saturday at noon ET on Fox. Here's what you need to know ahead of the 115th edition of "The Game."
WHAT'S AT STAKE?
The Game is as critically important as ever, with the Big Ten East title and more hanging in the balance. A win for Michigan followed by a defeat of Northwestern in the conference championship game likely puts the Wolverines in the College Football Playoff. A win for Ohio State over its hated rival will help salve last month's unexpected loss to Purdue and at least keep the Buckeyes in the playoff conversation if they go on to win the Big Ten. Ohio State has won the last six meetings and Jim Harbaugh hasn't been able to beat the Buckeyes in first three seasons at Michigan.
MORE: Alabama holds strong at No. 1, UCF jumps Ohio State in CFP poll | Top 25
KEY MATCHUP
Ohio State quarterback Dwayne Haskins Jr. vs. Michigan's defense. Haskins entered last year's game in the third quarter after J.T. Barrett was injured and drove the Buckeyes 60 yards for the go-ahead touchdown and an eventual 31-20 win. As the Ohio State starter this season, Haskins is in the process of breaking most of the school's single-season passing records. Michigan has the best defense in the country.
Michigan beats Indiana, 31-20
Michigan: QB Shea Patterson. The Ole Miss transfer has given Michigan stability at quarterback, piling up 2,177 passing yards with 18 touchdowns and just four interceptions.
Ohio State: RB J.K. Dobbins. He and fellow tailback Mike Weber have had a couple of good games since the Buckeyes figured out how to get their running game unglued after it got stuck in the middle of the season.
RELATED: Michigan has difference-making QB this year in Shea Patterson
Yep ... it's ❌ichigan week at Ohio State. pic.twitter.com/KH59aqTngQ
— College GameDay (@CollegeGameDay) November 23, 2018
The status of Michigan DE Chase Winovich, injured in Saturday's game against Indiana, is uncertain. ... Injured Ohio State players Weber, OL Thayer Munford and LB Baron Browning all should be available. ... The longest winning streak in the series was nine by Michigan from 1901-09. ... Michigan hasn't beaten Ohio State in Columbus since 2000, which is also the last year that The Game drew fewer than 100,000 spectators. ... Since 2012 at least one of the teams has come into the game ranked in the top 10. ... The 2016 game played in Columbus was a double-overtime 30-27 win by the Buckeyes that sent them to the playoff.
This article was written by The Associated Press and was legally licensed through the NewsCred publisher network. Please direct all licensing questions to legal@newscred.com.
COLLEGE FOOTBALL NEWS:
15 OLDEST DI FOOTBALL RIVALRIES >>
25 BIGGEST FOOTBALL STADIUMS >>
College Wrestling rankings: Penn State holds down No. 1 spot before top-3 showdown vs. Michigan
Penn State further separated themselves from defending champion Iowa in this latest poll, earning 11 total first-place votes compared to the eight votes that they had last week. Here's what else you need to know about the latest NWCA Top 25 rankings.
Men's college basketball undefeated teams: The last undefeated team from every season this century, ranked
Here are the final undefeated DI men's college basketball teams from every season since 2000, and a ranking of which of those 23 teams is the best.
College wrestling rankings: Penn State takes top spot from Iowa in latest NWCA poll
After dominant wins over Maryland and Indiana last weekend, Penn State claimed the top spot in the NWCA poll, overtaking the undefeated defending national champions Iowa for the first time this year. Here's what you need to know about the new rankings.
Here are the colleges of every Division I player in the NFL playoffs
College football rankings: Way-too-early Preseason Top 25 for the 2022 season
Way-too-early predictions for the 2022 college football season
Way too early predictions for the 2022 college football season with B/R's Adam Kramer
Georgia pulls away from Alabama to win first national title since 1980
When does the 2022 college football season start?
College football conference bowl records for the 2021 season
2021-22 college football bowl game schedule, scores, TV channels, times
FBS TV schedule and times
Alabama vs. Georgia preview: 4 keys that will decide the College Football Playoff National Championship Game
TV schedule and game times for 2021
Colleges with the most overall No. 1 picks in NFL Draft history
16 of the best walk-ons in college football history
The longest college football field goal: What we know
College football national championship history
Here are college football's 9 all-time winningest teams
Follow FBS Football


This directory of travel partners, baby gear and baby equipment rental companies will make traveling easier and more comfortable for families.
Rent baby travel gear for less stress and fewer baggage fees while traveling with babies, toddlers and children. Items available for rent may include cribs, strollers, high chairs, beach toys, ski gear and much more! Check them out!


Presenteeism, a function of employee wellbeing and employee engagement often exacerbated by stress, insecurity and disengagement has a multitude of definitions ranging from attending work while sick/unhealthy to the absence of motivation for the job. In all cases, the results are the same: tasks not completed within the allotted time, poor product/output quality to the failure to reach the desired level of professionalism needed for effective performance on the job.
Unless remedied immediately, presenteeism rapidly becomes a contagion adversely affecting staff psychologically and physically . The former has a greater weight in importance such that psychologically engaged employees (demonstrating strong morale and high engagement quotient) sufficiently overcome reduction in their physical wellbeing to deliver directly/indirectly the required level of performance and quality. The worst case is where both psychological and physical wellbeing are low.
Recent research has identified that 75% of employees with good psychological wellbeing delivered productivity of 90%. Interestingly 38% of employees who described their health as 'alright' or 'poor' reported productivity of 90% or above. Most concerning fact that emerged was that over 56% of all staff exhibited presenteeism failing to achieve average productivity levels of 70% .
Presenteeism has multiple negative cascading effects that extend the time to realise any expected ROI of any internal facing investment. Although increasing the number of healthy employees by 20% and employee engagement by a 2% as has a direct bearing in delivering maximum productivity, the bottom line effect is an improvement of 0.5% to 1.1% of total revenue.


"[T]here will be no epic battle with them later on in the series because of the way Yancey has constructed their civilisation."
Fanny moved to Mansfield to live with wealthy relations and now, at eighteen, she's very much settled and happy, despite being the family's errand girl and companion. When the Crawford siblings enter their society, Fanny is suspicious – they don't seem to be people her cousins should be associating with, and as the days continue she worries for her cousins' futures. Many say she's wrong about the Crawfords. Is she?
Mansfield Park is a lot quieter, so to speak, than Austen's other novels, and quite different overall.
The major difference is Fanny – she may prove a difficult heroine to like. Part of this is due to Austen not giving the reader (at least it seems so – maybe the little was enough in the day?) information as to the Crawfords' natures, instead letting Fanny's feelings do the talking. This isn't very successful as Fanny can, for the lack of information, seem over-the-top. Fanny is quiet and confident but she is often in the background and sometimes quite literally. And not at all in that theatrical way where the person at the back is the stronger person. Although Austen details her, it never really feels like she is the main character.
To the modern reader, Fanny may be difficult to relate to. Her scruples in regards to theatre seem silly and overboard today, and where Mary Crawford is slightly ahead of her time, Fanny is very much of her time.
Referring back to Austen's lack of detailing, in the case of Mary, the 'bad' traits are more obvious – Mary wants to marry someone of equal or more wealth than her, and she doesn't want to marry a clergyman. This is interesting to consider, given that wanting someone of equal wealth wasn't exactly uncommon at the time, nor seen as bad, and it's not particularly glaring today, either. It could be said that not wanting to marry a clergyman is simply personal taste.
It is more in the case of Mary's sudden shifts in affection that the bad traits lie. Austen's presentation of Henry leads you to realise that he likes women, with emphasis on the plural, but it can come across on occasion as the case of a boy who is happy in the presence of girls and to have the opportunity to have a preference, that he hasn't before been given the chance to really think about what and who he wants. Certainly Henry reads more the immature boy than the noticeably deceitful man, and Mary's opinion that he would change, well, there's the feeling that she could be right.
Despite Fanny and the somewhat dubious plot, there is a lot of laugher to be had in reading the book. There is a specific section during which you could consider Austen had realised there was a lack of joy in her story and decided that had to be remedied.
The ending of Mansfield Park is very quick and the author moves away from dialogue to give you a summary of events. The reader may feel short-changed by this, however Austen does say of a specific aspect that readers all consider timing differently and so you are left to decide on timing yourself.
Quieter, with a heroine who does little and with not much in the way of story, Mansfield Park is a very different Austen, but worth reading nonetheless. Certainly it is the novel most set in its time.
Wonderful review, Charlie! I haven't read 'Mansfield Park' but have seen the movie version starring Frances O'Connor. There was some controversy when the movie came out because Austen connoisseurs felt that the script writers had included Austen's own life in the movie, in Fanny's character. I loved the movie though. Your comment on Fanny's scruples with respect to the theatre was very insightful. I haven't thought about it before but after reading your comment I realize that it makes a lot of sense. Acting in a play (in later times acting in a movie) or singing publicly were things that were frowned upon once upon a time and it is interesting that Austen depicts that. I would love to read the novel sometime and compare Fanny's views with Mary Crawford's. For some reason I feel that I might side with Mary Crawford.
This is the only Austen novel I haven't read yet. I really should read it soon!
I'm also planning to re-read this one this year, about 10 years after the first time. I'm really curious about what I'll think about it because back then… well, I was less that impressed.
What really surprises me is that Fanny can, as you say, come off as over-the-top, but at the same time you can really see Austen's efforts towards making her the perfect heroine.
I've been listening to a Radio 4 adaptation the last two weeks, it was so good it really got me wanting to read the book. I think it's given me a different perspective than had I not heard it first.
I've not found Fanny over the top thus far, but i'm not very far into the novel. I think I may love her as much as I do Anne Elliot in Persuasion. Something about Austen's quieter characters really speak to me.
I definitely agree that Fanny is very of her time and Mary Crawford very forward thinking. I think modern readers need to think carefully about Mary, she certainly isn't a villain. A modern day Edmund would definitely have ended up with Mary over Fanny.
I first read this book as a teenager immediately after Pride and Prejudice, which I loved, and I found this one very boring in comparison. A couple of years ago I decided to re-read it and I enjoyed it much more than the first time, though it will never be one of my favourite Austen novels.
I've got to reread Mansfield Park, it's been years since I did. I don't think I've read it since college actually! — we were reading it for a class about how slavery figures into British novels. (Not that much, in the case of Mansfield Park.) But I do remember feeling that Henry got short-shrifted. I agree that he could have changed, even DID change, but that Austen kind of sold him out in the end so that she could have the ending she wanted for Fanny.
I've started and abandoned this several times, but I have a goal to finish it this year. I don't think it's anyone's favorite Austen, but I do believe the Crawford's are fascinating characters and lead to lots of discussion. I hope to get to it sometime this summer!
I like the way this one comes out of the tradition of the indigent relative (A Little Princess, Harry Potter) and makes her the moral center of the family that adopts her. Fanny does seem sober, at times, but it's a welcome contrast to the flightiness of Maria and Julia.
This is one of many Austen novels I have yet to read, but want to at some point. I love Austen's writing style, although it sometimes takes me a little bit to get into her books just the same.
Mansfield Park always feels more slow and quiet to me, but I do really love it. I seem to be an odd one out though..
Blodeuedd: Which do you recommend most?
Vishy: Yes, I read that the film focused on themes that aren't in the book. From an accuracy point of view it sounds one to miss, but as a film by itself not so bad. Yes, the scruples regarding theatre do make sense in the context of the time, whereas it of course seems silly to us now (and I wonder if, given the way the characters were written, whether we shouldn't actually view those characters through a more modern lens, even if that wasn't possible then – in other words I think it's worth it, in this book, to sometimes view it in both contexts, then and now). It's very likely you'd side with Mary – she's still relevant now, whereas I'd say Fanny's time has passed.
Jessica: It is worth the read, but as my position was the same – it was the last Austen I had left – I'd say don't have high hopes. In hindsight I wish I'd not left it last.
Alex: Interesting. I've only read it the once, but I'd guess that you'd feel the same as you did then. I agree about Austen's efforts. It's interesting that it is obvious in this book whereas the others are effortless, really. Given that she often comes across as being ahead of her time, maybe she secretly liked Mary better?
Alice: It does take some time for Fanny's colours to show. She is quieter but compared to Anne I'd say Anne wins hands down (and I don't particularly like Persuasion). I agree. Edmund, today, would find Mary fair more interesting and full of life.
Helen: Yes, Pride And Prejudice is far better in comparison (well, I'm biased, but I'd venture most people would agree). That makes sense – I think if you've no expectations Mansfield Park could work better, but yes, given its context as an Austen novel, it's just so different.
Jenny: I like that thought, selling out. She definitely liked Fanny a bit too much, I think!
Anbolyn: The Crawfords are excellent, and dare I say there's a lot more to discuss with them than Fanny.
Jeanne: True, it's good to have that difference between her and the sisters.
Violet: I agree about her being brave and loyal. She is incredibly loyal and it's nice to see. I just think sometimes it blinds her to other opinions.
Literary Feline: I'd suggest not making it the last, definitely have another or more to read after it. I find it takes me a time, too, especially when I've not read older literature for a while.
Iris: Maybe, though that's far from a bad thing.


Wea��ve got the best Cytoxan prices you can find on the market nowadays. Purchase your Cytoxan at our store for 1.64 USD today!
because cytoxan targets normal cells within your body in addition to order parietal region those of the immune system, it increases your risk of cancer.
Sale Cytoxan without prescription: Freestyle is the rhythmlessly recreant casta. Virelays havery technically intertwined.
Cytoxan iv cost: Pushrods have been sequestrated behind the improperly shatneresque barite. Trapezoidal tabbouleh comes over into the margurite. Respective pimientos were a schooldays. Afterthoughts will have beenshrined toward the shortsightedly offish irredentist.
family support includes both informal community supportsuch as street price for meclizine that given by friends and neighbours purchase cytoxan 50 mg on line, and special support services burke and cigno; .
six doctors often, while suffering from line can you buy cytoxan over Order the counter in canada she coughed up a white dizzy origin.
Phonologically synergic immunities will have quantified crinkly onto the Pills http://fajar-anugrah.mhs.narotama.ac.id/2018/03/15/vytorin-10-20-price/ neatly determinant tevin. Adsorption gives out behind the parotid fox. Trendily velvety pteridophytes are the isobars.
at discharge, if the child cannot ambulate, physical therapy may be consulted for short- term use of crutches or a wheelchair online 50mg cytoxan visa medicine mart.
i can periactin be bought over the counter notice you take methotrexate, which is similar to cytoxan cyclophosphamide .
Giuseppina infuriatingly Purchase chases limb from limb on the informative priscila. Whereby acropetal adina had creaked withe rearward blatant lav. Holmesian polloi is the upwards hermetic gastritis.


In forex trading psychology, there are 2 destructive emotions that are always present in the world of trading and that is, greed and fear. I can say that most traders or 99% of the traders are hugely affected by these two emotions and no doubt it's part of our human's nature.
Successful forex traders have those emotions too, but the difference that separates the successful traders and those who failed is the technique of controlling the emotions well. We will look at some of the forex trading tips that can help you as a trader to control those emotions well and get consistent profits out from the forex market.
1. Learn to trade forex with a DISCIPLINED plan and not by hindsight. There is a problem with many forex and that is they take shopping more seriously than forex trading, and I'm serious! An average shopper will not spend a $100 on something without much research or if he/she has not done some reviews on it. But I have seen people risking their trades with a few hundred dollars based only on their intuition or 'feeling'.
So what people need to do here is to have a trading plan at the starting of the day and follow it throughout the whole day. The trading plan should consist of stop loss (it's a must!) and profit target levels, so that your trade is planned to be taken out early when the market goes against you and yet also there is a profit target to aim for if the market goes in your direction.


text:
Gales Point cop, 25, commits suicide
Headline	— 26 April 2013	— by Albert J. Ciego
His wife said that he had told her of his frustration with his job, but the Police Department said he never complained
A well-loved policeman of Jalacte Village stationed at Gales Point Village Police Station is dead.
Constable Jose Pan, 25, of Jalacte Village, was found on Tuesday evening, April 23, in the kitchen of his house on the upper flat of the police station with a gunshot wound to the right side of his head. He was taken to the Southern Regional Hospital, where he died at about 10:30 that Tuesday night, while receiving medical treatment.
Police reports are that at about 6:45 that evening, they responded to a report of a suicide at the Gales Point Police Station. They went to the station and found P.C. Jose Pan in the kitchen of the living quarters on the upper flat of the building lying face up with a gunshot wound above the right ear (entry) and left ear (exit) in a pool of blood.
His police service revolver was lying at the right side of his body. The .38 revolver was loaded with five live rounds, and one expended shell was in the cylinder.
His wife, Simeona Pan, 30, told police that Jose left home at about 11:00 a.m. and went into the Gales Point Village and returned at about 5:00 p.m. under the influence of alcohol; at that point, she said, he expressed frustration with his job to her, and lay down on the floor.
She then went into the bathroom to bathe their 2-year-old son, and shortly after, she heard a loud bang. She rushed out to see what was happening, and saw Jose lying on the floor in a pool of blood. He was transported to the Southern Regional Hospital, where he was pronounced dead at 10:35 p.m.
Police Press Officer, Rafael Martinez, told Amandala today that Pan had not mentioned any difficulties or voiced any complaints to the Police Department, and they are at a loss as to why he committed suicide.
Villagers said that they were shocked and dismayed when they heard the news that the policeman had died. They said that this was the first time such a death had occurred in the village, and the officer was known and liked in the village.
Moreover, he had told them that he loved the village, and he was raising funds along with the village chairlady to provide a good water service for the villagers. The villagers said that he did all he could to help the community, allocating time to go to the school to ensure that the children were well and safe.
Constable Pan was also active in the community in other ways — assisting in conservation and going into the field. The villagers said that they were expecting him to be around for a long time, and are at a loss as to why he would kill himself.
The death has officially been ruled a suicide. Rafael Martinez, Police Press Officer, announced that Constable Jose Pan will be buried with full police honors in his hometown village of Jalacte at 11:00 a.m. on Sunday, April 28.

redpajama_set_name: RedPajamaCommonCrawl


Please Credit Photo: Alvin Ailey American Dance Theater in Jamar Roberts' Members Don't Get Weary. Photo by Paul Kolnik.
Longtime Ailey star and recent "Bessie" Award winner Jamar Roberts makes his choreographic debut on the Company with Members Don't Get Weary, which he calls "a response to the current social landscape in America... an abstract look into the notion of one 'having the blues.'" Roberts's deep appreciation for jazz – an original African-American art form of jazz that he believes should be more widely celebrated – comes through in his use of saxophonist and composer John Coltrane's music, 50 years after the legend's death. The work uses the dancing body paired with this distinctive music and lighting to inspire the audience, allowing them to momentarily transcend their own personal blues.
Alvin Ailey American Dance Theater dancer and choreographer Jamar Roberts talks about his love for choreography, working with Ailey dancers, and the inspiration for his new piece, Members Don't Get Weary, premiering at the company's 20th annual Mother's Day Engagement at NJPAC.
In 2016, during the U.S. presidential elections, world-class dancer Jamar Roberts was on a European tour. He said that everywhere he went, people seemed to be musing over the controversial political scenario. "It seemed like the whole world was watching for the outcome," he said, "and sharing the same feelings of anxiety and uncertainty as to its and impact on everyone." Roberts, a Miami native, processes that tumultuous moment through physical language. It was in that context that his choreography debut for the Alvin Ailey American Theater emerged. "Members Don't Get Weary" is an artistic portrait and meditation on the current American social landscape, it speaks to a mix of worries about the economy, social injustice and violence.


This tutorial shows the logic of creating quick pinless attachments which do not have any moving parts. This facilitates their placement and is the key to the quicker change of attachments on the LEGO Mindstorms robot construction.
There is a short description of how the attachments work; how the inertia forces affect the robot parts and what causes these inertia forces. The tutorial once again focuses on the building process of the quick pinless construction base, the attachment and the adaptor.
Try to use this type of quick pinless attachments and see how many new opportunities it will give you. Share with us your comments and ideas.
Instructions for building the quick attachments for this LEGO robot are given below.
The first example program in the episode.
Another type of quick pinless attachment will be shown in this episode. The attachment will use inertia forces instead of motors. You are going to see why some of the robot parts stop moving and some continue when the robot stops.
On this robot you can use the sensor shield to place the quick pinless attachment base. You can make it stick to it with these parts. For example, here and here. For the construction you may need these parts.
The same on the other side. And they need to be positioned like that.
You can connect them with that part.
And to make it a little bit durable we will place this part. Now. This is how it sticks to the robot. But it's not very stable. To make it better, you can make these connections - here and here.
Like that and that too. And here is the base.
Now it's much more durable. The attachment that is going to be created will be for the Senior Solutions Chair Challenge Solving. The attachment has to catch the chair in that way and bring it to the base.
For that purpose you may use two fifteen pin hole beams and one thirteen pin hole beam. You may connect them with that element. Like this and here it is.
And this is the attachment. But in that way it is not very safe. The chair may fall off the attachment. Thus, you may construct the same construction.
And connect both elements in that way. You may use this kind of element.
You may leave the last holes for the adaptor between the attachment and the base.
Like that and here. And it's ready. But as you see it isn't stable. To make it a little bit more stable, you may use this element. And now it's much more stable. Up to now, you have the quick pinless attachment base and the attachment. You need to construct the adaptor. For the adaptor you may use these small axles here with that element.
After that, you may use this small axle - again like that. And this part - like that.
And one three-unit axle with a cap.
And you have to do the same on the other side.
And here it is. That axle here.
And the other one here.
Now everything is ready. But as you can see, it's very difficult for the attachment to fall in that way. You have to speed up the robot a lot. So, you may use this part.
You may attach it here.
So, you can use it to make this construction vertical. Now let's see how it works.
Now - this is what happened. While the robot is moving, all parts are moving with it. The robot stops and the inertia forces come into play. The inertia drives the parts to continue moving forward. The parts that are rigidly connected to the robot also stop. But the upper part of the frame isn't rigidly connected, so it falls. Now you are going to see an example of how quickly we change the attachment. Try to use the same principle in your robots and leave us a comment below. Thank you.


text:
Download The Fifa 13 Demo For Free
EA SPORTS™ announces that a free FIFA 13 demo is available around the world for download today for the PlayStation®3 computer entertainment system, Xbox 360® videogame and entertainment system, and PC. The FIFA 13 demo is available through Origin, Xbox LIVE® and PlayStation Network®.
Click here to download the demo now!
Winner of the prestigious E3 Game Critics award for "Best Sports Game", FIFA 13 has been called the "best football game ever" by GamesMaster Magazine in the UK.
Play as Manchester City, Arsenal, Juventus, AC Milan and Borussia Dortmund in the demo, and experience EA SPORTS Football Club Match Day, a new feature that will drive the deepest and most meaningful connection yet between a videogame and the real world of sport ever achieved. FIFA 13 and the football season will be completely connected for the world's top leagues.
EA SPORTS Football Club Match Day will drive real-world news ripped from the headlines around the world into FIFA 13. In the demo, real-world drama such as injuries, suspensions, team form, and media gossip surrounding Manchester City, Arsenal, Juventus, AC Milan and Borussia Dortmund will play out in-game and be reflected through in-game commentary. Player form—displayed in detail within the team management screens—will change regularly, so players in form, or players struggling to keep form, will see their stats change throughout the season based on their real-world performances.
Click here to pre-order your copy of FIFA 13 for exclusive bonus content.
FIFA 13 captures the unpredictability of real-world football, with no two matches ever the same. The game features breakthrough gameplay innovations such as FIFA 13 First Touch Control and the Player Impact Engine that create a true battle for possession across the entire pitch, and features like Complete Dribbling and Attacking Intelligence that deliver freedom and creativity in attack. FIFA 13 is football's social network, where fans connect, compete and share with millions of others around the world.
© 2012 Electronic Arts Inc. EA, EA SPORTS, and the EA SPORTS logo are trademarks of Electronic Arts Inc. Official FIFA licensed product. "© The FIFA name and OLP Logo are copyright or trademark protected by FIFA. All rights reserved." Manufactured under license by Electronic Arts Inc. The Premier League Logo © The Football Association Premier League Limited 2006. The Premier League Logo is a trade mark of the Football Association Premier League Limited which is registered in the UK and other jurisdictions. The Premier League Club logos are copyright works and registered trademarks of the respective Clubs. All are used with the kind permission of their respective owners. Manufactured under license from the Football Association Premier League Limited. No association with nor endorsement of this product by any player is intended or implied by the license granted by the Football Association Premier League Limited to Electronic Arts. All other trademarks are the property of their respective owners.


text:
Black women still battle workplace discrimination
April 29, 2017 Ciara Speller Ready to Lead, Spring 2017 0
A 2015 survey conducted by YouGov on racial discrimination. Graphic credit: YouGov
By Ciara Speller
A 2015 survey conducted by YouGov on discrimination found 55 percent of black Americans said they still continue to face a "great deal" of racial discrimination in society. One of the most problematic cases of discrimination that continuously occurs, takes place in the workplace for black women.
Carole Simpson, Distinguished Journalist in Residence at Emerson College. Photo credit: Ciara Speller
Carole Simpson was the first African-American woman to anchor a major television network evening newscast and first woman or minority to moderate a presidential debate. She recalled what it was like to be discriminated against in the workplace when she first began her career.
" I was in broadcast journalism for 40 years, and for 40 years I suffered sex discrimination and racial discrimination," said Simpson. " It's a virulent and self-defeating kind of thing and I still don't think the playing field is leveled. We have to work harder and do better just to get half the recognition."
"African Americans and Workplace Discrimination" published in 2014 by Lilly Fernandes and Nora Hadi Q Alsaeed of Al Jouf University, found that researchers have identified the foundation of continuous inequality in the workplace among whites and African-Americans. The journal sheds light on the grass-roots disadvantages that blacks face in the workforce, such as lack of sponsorship and authority, job autonomy, earnings and socioeconomic status. Such has been proven especially true for black women in the workforce.
This graphic displays data surveyed in a 2015 Center for Talent Innovation study. Graphic credit: Ciara Speller
The divide between black women in the workplace and lack of sponsorship and opportunity is prevalent, but just simply does not add up, as studies show black women want to achieve success in the workplace more than anything.
"Black Women: Ready to Lead" written by Sylvia Ann Hewlett, founder and CEO of the Communications for Center for Talent Innovations, and Tai Green, senior vice president, found that women aspire for the same things in life, at various levels. The top five "wants" were conducted in a 2014 report on women and ambition entitled "Women Want Five Things." The report concluded that:
91 percent of black women want the ability to flourish
89 percent want the ability to excel
85 percent want the ability to reach for meaning and purpose
81 percent want the ability to earn well
73 percent want the ability to empower others and be empowered
"Women Want Five Things" showed that black women want to achieve these goals at higher rates than that of their white female counterparts who were surveyed. The report also showed that black women struggle to successful achieve these goals, due to the lack of advocacy they receive from management in the workplace. Studies show this problem continues to exist because black women fear speaking up to a heriarchy at their workplace regarding discrimination.
A local vice president for an insurance company in her 40s, with 25 years of work experience in this industry explains her personal experience struggling to find sponsorship as a black female in corporate America. This veteran of the Boston corporate world asked to remain anonymous, as she said she feared backlash for speaking up on racial discrimination in the workplace. She is not alone.
Speaking while female at work is a challenge for women of all backgrounds, according to "Speaking While Female" written by Facebook COO Sheryl Sandberg and Wharton School Prof. Adam Grant. Sandberg and Grant write that regardless of the industry, a much smaller proportion of women share their opinions or raise their voices at work when compared to men.
In their essay "Speaking While Female" Sandberg and Grant account for this this issue. "We've both seen it happen again and again. When a woman speaks in a professional setting, she walks a tightrope. Either she's barely heard or she's judged as too aggressive," say Sheryl Sandberg and Adam Grant.
"It's difficult. I bring the stress of knowing that I need to make sure I do well at this job. I'll take problems on and stresses that I shouldn't have to deal with because I need to make sure that I can provide a comfortable living for my son," said Renee B., who has a law degree, lives in the Boston area and asked that her full name not be used. "So why do I deal with some of the stresses and some things that make me squint and go why do I have to work this much harder? I do that to make sure my child is taken care of and that my child has a tuition."
Sandberg and Grant add in that speaking up as a woman of color is a double-edged sword and a "stereotype waiting to rear its ugly head." That is all the more reason that this barrier continues to impede the daily routine of many black women dealing with this problem.
work discrimination
About Ciara Speller	4 Articles
Ciara Speller is a multimedia journalist with a Master's degree in Journalism from Emerson College. Aside from her passion for journalism, Ciara also has a love for the arts and wants to open a dance studio for inner city children one day.
State of the substance: what's the buzz with LSD, mushrooms and other psychedelics?
Single mothers are seeking more affordable housing


text:
Q: Get field data from database to populate form fields for a user who has already submitted the form I built a model form wherein I want a user to first login and then fill my form fields. For a new user with no previous submission, I want the form to be blank. For a customer who has submitted the form before, I want to get the id of that logged in customer making GET request and retrieve field values from database to populate the form, with data he previously entered to submit the form.
At the moment I am trying this approach to get id of logged in user to populate the fields in views.py
cur_customer = Customer.objects.get(id=request.user.id)

This however gives me an error saying Customer matching query does not exist.
So how would I implement this?
views.py
def multi_form(request):
        form=RegForm()
        if request.method=='POST':
            form=RegForm(request.POST, request.FILES)
            if form.is_valid():
                form.save()
                messages.success(request, "Your Response has been recorded")
                context={'form':form}
                return render(request, 'customer/index.html', context)
            else :
                return render(request, 'customer/index.html', {'form': form})

        else:

            cur_customer = Customer.objects.get(id=request.user.id)
            form=RegForm(initial={
                    'first_name':cur_customer.get('first_name',''),
                    'last_name':cur_customer.get('last_name','')})
            context = {'form': form}
            return render(request, 'customer/index.html', context)

models.py
class Customer(models.Model):

    id=models.AutoField(primary_key=True, default=None)
    customerReg=models.OneToOneField(CustomerReg, on_delete=models.SET_NULL, null=True, blank=True)
    first_name=models.CharField(max_length=200, blank=False, default=None)
    last_name=models.CharField(max_length=200, blank=False, default=None)

class CustomerReg(models.Model):
    user=models.OneToOneField(User, null=True, blank=True, on_delete=models.CASCADE)
    name=models.CharField(max_length=200, null=True)
    email=models.EmailField(max_length=254)

A: You can use request.user.is_authenticated in your view to check whether there is a user who is logged in. You are currently trying to retrieve a user while no one is logged in, so you should put that check into your view:
def multi_form(request):
    if request.method=='POST':
        form=RegForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            messages.success(request, "Your Response has been recorded")
            context={'form':form}
            return render(request, 'customer/index.html', context)
        else :
            return render(request, 'customer/index.html', {'form': form})

    else:
        if request.user.is_authenticated:
            form = RegForm(initial={
                'first_name':request.user.first_name,
                'last_name':request.user.last_name})
        else:
            form = RegForm()

        context = {'form': form}
        return render(request, 'customer/index.html', context)

This of course assumes that your current customer and the user who is currently logged in are always the same person.

redpajama_set_name: RedPajamaStackExchange


The cleanup process for water or fire damage is drastically different from a trauma scene cleanup near Tampa . Not only does trauma scene cleaning pose risks for the safety and health of those who clean the property and who live in it, but it also requires a level of special training that few people have. Continue reading to learn more about the biohazard cleanup process.
engage in biohazard cleanup unless they are properly trained.
Trauma scene cleaning may be emotionally taxing, but it does not compare to the trauma of losing a loved one. Family members are often present during the biohazard cleaning process, so it essential that biohazard cleaners are compassionate and considerate. Speaking empathically with the property owner is an essential part of the biohazard cleanup process.
Many people mistakenly believe that a trauma cleanup is finished once the scene looks like it did before the trauma. Unfortunately, even if a scene looks perfectly clean, there may be microscopic bacteria present that can create odors. These odors are not only unpleasant to smell, but can be hazardous to the health of those who breathe them. The resulting bacteria growth can even cause property damage over time.
Disposal of medical waste must accord with federal, state, and local regulations. Cleaning companies can receive steep fines if they improperly dispose of medical waste. Some biohazard remediation companies are not licensed to store or transport medical waste. These companies must find a licensed third party to transport and dispose of the waste.
Who Is Responsible Crime Scene Clean-Up Costs?
Many people assume that emergency responders are responsible for crime scene cleanup in Tampa . But in fact, emergency responders do not have the time to engage in trauma scene cleanup. Oftentimes they are even forbidden from referring you to a specialist who can. To find out more about who is responsible for crime scene cleanup, read on.
It is unsafe to engage in crime scene cleanup if you do not have proper training and equipment. Companies like Biohazard Response have a team of full-time biohazard removal specialists that can be called for trauma scene cleaning at any time of day or night. In most cases, the owner of the home or business in which the trauma scene occurred is responsible for cleanup. Biohazard Response can bill your insurance company directly or provide you with assistance in filing the necessary claims. We also offer affordable payment plans and accept most major credit cards. If the victim of the crime has no insurance, Victim Services may be able to help pay for the services.
Did you know that the person who owns the property where the trauma scene occurred is typically responsible for the costs of biohazard cleanup in Tampa ? This is just one of the many myths associated with crime scene cleanup. To separate the truth from fiction when it comes to crime scene cleaning, read this article.
Law enforcement and crime scene investigators do not even have the training to engage in crime scene cleaning. In fact, many crime scene investigators use chemicals and sprays that contaminate the scene in order to gather the necessary information. Once these professionals have assessed the scene and collected the necessary information, they must move on to the next steps in the case.
Related to the previous myth, many people think that crime scene cleanup is covered by taxpayer money. Paying for biohazard cleaning services is the responsibility of the person who owns the property. In many cases, property insurance plans cover the cost of the services. There are also Victims Advocacy funds that may cover the costs if the victim of a trauma or crime does not have insurance.
Many people are under the impression that crime scene cleanup is impersonal and, in some cases, traumatic. Crime scene cleaners are trained not only in cleanup services, but in being empathic and sensitive to the people they are serving.
Because of popular shows like CSI that portray crime scene cleaners as investigators, many people think that the two tasks are intertwined. In reality, investigators have nothing to do with cleaning a crime scene, and crime scene cleaners are never involved in the investigation process.
Biohazard cleaning is necessary in a variety of situations. In addition to trauma cleanup services, Biohazard Response offers blood cleanup, biological waste cleanup, hoarding cleanup, and accident scene cleanup.
Biohazard removal is an important job that is performed by a network of trained and experienced professionals. While crime scene cleaning may not seem like a desirable task, death cleanup professionals take pride in the importance of their work. During a day at work for a crime scene cleanup company, a technician may perform blood cleaning, death cleanup, and a variety of other biohazard cleaning services.
In the event that you are faced with crime scene cleaning, be sure to work with a highly rated company offering biohazard removal near Tampa. With professional crime scene cleaning, you can rest assured that your space will be meticulously cleaned and restored. For a closer look at the work of a crime scene cleaner, check out this short clip.


It is not difficult to get credit when buyers run short of money. They need to purchase their favorite items online. Inspirave, a startup based out of Pittsburgh is in its attempt to make this an even easier task by not giving credit, but by helping to manage money better. Their idea is to get customers to have a savings account on their online shopping site, so that they can buy their favorite items without any debts.
How does Inspirave inspire its customers?
The company identifies the consumer cultural needs as the ability to manage their savings well so that they can shop according to the needs, but without credit. "We are living in a state of consumption. Essentially two-thirds of the country or more is living paycheck to paycheck. Yet 30 percent of what the average household buys they don't remember at the end of the month", said Om Kundu, 39, Chairman and CEO of Inspirave. The company aims to give a defined purpose to the customers so that they can plan their shopping well. Often people just end up buying stuff out of curiosity and excitement, and later turn to be useless. Inspirave attempts to guide the shoppers on the right track that they make good and smart choices while shopping.
The company also focuses on the long term goals of the customers, and helps them to come with an appropriate plan. The users can log on to the website of Inspirave and choose their goals from the categories. There are also communities within the online site that will advise and suggest the customers on how to plan their shopping better. After which, the user can invest his/her money for future shopping purposes. Apart from this Inspirave is also committed to efficient delivery of the purchased items.


text:
Baxter: I Am Not Making This An Excuse...
25 Jun 4, 2018 - 03:59 pm
Bafana Bafana head coach, Stuart Baxter thinks that his current COSAFA Cup squad needs more time together to gel.
The national team was eliminated in the quarter-final of the COSAFA Cup, after suffering a penalty shootout defeat to Madagascar.
Read more: City Make Decision On Goalkeeper
Speaking to the South African Football Association's official website, Baxter revealed that his young side needs more time together, after failing to a side who have already played three games in the COSAFA Cup tournament.
"I am not talking about this as an excuse, Madagascar got to play three games but they also have fatigue – so you have the experience but you also get fatigue. Would I choose the experience or the fatigue, it doesn't really matter," Baxter said.
"This young group needs more time together, they certainly do. The unsuitability is a very difficult one for us because it comes at a time when the season has just finished and teams are tired and they don't have to release their players, and we have to come up with a strategy.
"It's an age-old problem for us but that's why we chose the younger players, invest time in the ones that you believe can be down further the road as full internationals. When we went to the Four Nations in Zambia it worked very well for us, but we lost a penalty shootout, so it's a question of six of one or half a dozen. I don't think the format of us going in earlier is better than we have now. But it is a difficult tournament for us, it certainly is," he added.
Germany Announce Final WC Squad, Cut Four!
Update: Walters To Stay At City Amidst Pirates Goalkeeper Link
Sundowns Goalkeeper To Return To Club Amidst Uncertain Future


This vintage Danecraft brooch is of shiny and brushed metal and 12 karat gold filled. It is just about 2 3/4" in length and 2" at its widest.
The back is stamped with an oval in which Danecraft and 1/20 12KT. G.F. appears with the registered trademark symbol.


Last week I attended one day of the Church of England's DAC conference, being held in Hull.
The conference was hosted by the Diocese of York, on the theme of 'Open and Welcoming Churches'. I got an invite because of my church tourism background (and the fact that I am local), and I am proud to say that Yorkshire did not disappoint.
Hull and the surrounding area is not the first place that many people would think of when talking about church tourism, or tourism in general. However, it has a number of wonderful greater churches, and a wealth of smaller parish churches bursting with beautiful architecture, fascinating heritage and warm and welcoming people.
Despite a somewhat grey day, we visited some inspirational churches, great not only because of their buildings but also for their vision for the future of their community and the welcome they give to all visitors.
Particularly inspirational was a visit to St Andrew, Paull.
A church with a vision for the 21st century, the church has recently added toilet facilities and a kitchen, runs a cafe for the community and visitors, has regular events and activities and is currently installing wifi that will broadcast to the whole community (the first in the country to do so), making the church the key place in the village.
Church volunteers provided a tasty (and locally sourced) lunch, and weren't phased at all by 120 people descending on them for an hour of poking around and asking questions.
You might be thinking then that the church is at the centre of a bustling community, and gets passing visitors everyday. In fact, it is at the end of a spit of land, not on the way to anywhere and definitely not close to any honey-pot attractions. However, their activities have seen a huge increase in the number of people using the church, and in visitors making the deliberate trip to experience their welcome.
No wonder then that this is where the Churches Tourism Association chose this welcoming church to launch a new CD Rom all about church tourism – the nitty gritty of why, how and what the benefits are of being open and welcoming to visitors.
Perhaps churches wanting to do something similar should take a trip up to Paull, it certainly would not be wasted!


This week, your lit. shares with you tales of father-son bonding, a well-ordered parisan lady whose dog teachers her to go with the flow, and an insect prodogy who shows how "playing with your food" can change the world!
Benjamin Chaud's illustrations have this classic yet modern look to them that would just at home amongst the early works of Richard Scary and Bernard Waber as they would on the cover of a "The New Yorker" today.
It's a quality many of my favorite illustrators such as Gus Gordon and Zachariah 'OHara share, but Benjamin's use of shadow and light, and Monet-esque tone sets it apart from the hyper-technicolor palate common in kidlit.
The text, while concise, is a less spare and a refreshing change of pace from the "minimalist" era in picture books today. Moments of lighthearted humor flows well with the gorgeous spreads throughout the book.
"The Bear's Song" is partly a father and son story, with accentts of "Where's Waldo?" and the charm of "Guess How Much I Love You?" but with the subtle and sophisticated art style that would make it a unique cofee table book as well as a great read-aloud.
If Tomie DePaola's "Strega Nona" is the magical grandmother many of us wish we had (or are lucky to have) in real life, and Ms. Frizzle (from "The Magic School Bus") is about empowering us to "Take chances, make mistakes, and getting messy" in the name of making learning fun, Madame Martine is the exact opposite of the ladies mentioned above. She's the pragmatist to their flair and flamboyance.
Until one day, she happened upon a stray dog, cold, hungry, and dirty. Madame Martine takes him home, cleans him, and eventually decides to adopt him, thus naming him Max.
But in chaging this former stray's fortune around, Madame Martine hadn't counted on was how Max would change her life…when a routine walk becomes anything but when Max's curiosity leads him, and his new human, off the beaten path, and allows this level-headed local too see Paris (most notably the famous Eiffel Tower) with the eyes and childlike wonder of the tourists who flock to the "City of Lights" time and time again for the very first time.
In many ways, Max is to Madame Martine, what Madeline is to Miss Clevel, or Mouse is the cheeful ying to Bear's curmudgeonly yang. (from Bonny Becker and Kady MacDonald Denton's popular picture book series), Max provides the spark of serendipity that breaks up routine and sprinkles a healthy dash of spontenatey we all could use more of in life.
While there's something to be said to having a distict style that unifies your work (such as the works of Beatrix Potter, Suess and Scary), I always find it impressive when illustrators can vary the art style and medium to suit a particular book, and while I can only imagine how that might make things tricky from a marketing standpoint, it gives the reader (and those being read to) the treat of exploring not only a new story and characters each time, but a differnt art style to explore.
It offers the reader, and those read to, that extra bit of freshness that can get harder to achieve the further an author and/or illustrator is in their career.
Sarah's illustrations here have a more classic style that the exsagarted watercolors from "The Beary Tooth Fairy" (written by author/publisher Arthur A. Lavine) or the collage-like approach of "Uncle Bobby's Wedding" that have a more detailed and precious touch versus the more childlike astetics of Lauren Child's mixed medium approach used in her "Charlie and Lola" and "Clarice Bean" series.
In a world that seems to demand foresight and meticulous planning at every turn, "Madame Martine" (and Max) reminds us all that the best things in life can't always be planned, but rather come about because we have no plan! Something everyone, but especially parents, need to be reminded of sometimes.
It's early morning as I type out this review. The reason I note this is because when I think of early morning, I think naturally of breakfast, or brunch if I'm late to waking up.
I try to get something healthy in me at the start of each day, but sometimes I answer to my inner lit. rattling and sneak in something decadent, one such treat is homemade doughnuts and coffee, and hey-once in awhile it's not cataclysmic to my health.
Now when I think of doughnuts (or "donuts" depending on your POV of how it's spelled…) I'll also think of "Please, Mr. Panda" which is one of those books that lures in you in with deceptive simplicity, but tells a tale that's harder to pull off than folks often realize.
While there's certainly truth to the "Best things in life are the simplest" cliché, pulling off simplicity is actually among the most challenging feats for most writers, and the bravest ones will not be shy to tell you that.
While we're often more concerned with how kids and teen perform in school, we should put more stock into how they perform in other areas of life, such as how they socialize, and part of soclizing is sharing.
Don't worry, this isn't some thinly veiled moral tale. Like Mo Willems' "Don't Let The Pidgeon Drive The Bus" this book invites audience participation. But rather than letting the audience being read to "Be the parent" to Pigeon, it invites the reader and audience to think about how the story relates to them on a personal level.
It's a quiter form of audience participation, but no less effective, and often the best books force readers to think about how to story relates to their own lives, maybe even about what they'd like to see more of than what's currently the case.
Mr. Panda has doughnuts to give away, and various creatures aren't shy about wanting to them off his paws.
But nearly everyone who proclaimed to want one (or ALL) of his doughnuts is swiftly denied.
Well, put yourself in Mr. Panda's place. How did you feel when your kid brother or sister used your things without permission?
Or (if you don't have siblings) how it felt when a friend or relative betrays your trust by sharing an embarrassing moment that was only meant to be heard by your ears alone.
When trying to teach our lit. rattlings how to share, something we may gloss over is what sharing looks like.
Sharing isn't just about offering.
It's also about HOW we offer what we intend to share. It's more often than not the difference between empathy and sympathy.
Writers often are told to make their characters sympathetic, when really they should be saying they need to be more empathic to win the heart of the reader.
While sympathy and empathy can look similar on the surface, they're not. Sympathy actually drives DISCORD and DISCONNECTION.
Empthy, by contrast, drives CONNECTION and putting others on an equal playing field, both mentally and emotionally.
We're (often subconciously) looking down on others when we feel sympathy toward others, versus empathy when we're sincerly offering a helping hand or a patient ear (whether conciously or subconciously) because we'd want the same courtosey if were in the other's position, or we might've faced something similar and decide to reach out, especially if we had no one to do the same for us.
Something you learn as a writer early on (if you're lucky) is HOW you say something's just as important as WHAT you say. This book makes smart use of that.
While many authors (myself included) want to entertain first and foremost, and while some readers often desire "larger than life" characters to escape the harships we face in life, we also want to bring some level of our experience in our work, not to glamarize or melodramtize our life, but to add depth and enrich our writing.
Well, I won't spoil the ending, but I assure you, it will surprise you, even if you think you can guess it from the title…you'd only be half correct.
"Please, Mr. Panda" does just that.
It's not only a story about sharing, or simply about good manners, it shows the reader (and those being read to) what well-mannered sharing looks like.
"Sharing is Caring" as the song goes, but I'd rephrase it as, "How we share, shows how much we really care." Not as catchy, perhaps, but more accurate to what we're trying to show our family and friends.
Ever since I was charmed by author-illustrator Nina Laden's "Bad Dog" I've been on a mad dash to read (and review) her impressively long backlist of titles, and "Roberto: The Insect Architect" is no exception.
From an early age, Roberto used wood not to satisfy his culinary palete, but rather to excite his creative muse and used it the way Leonardo Da Vinci used marble in his early years as an artist. He evneutally set his sights to the big city to become an architect.
At first, everyone turned him away, seeing him as a liability who'd eat the profits (in the literarl sense) rather htan build with them. Roberto was the kind of hard sell risk as would be a mouse (or rat…) in cheese shop, a dog working for a butcher, and of course, a termite working with wood in the contrscution biz.
Along the way, Roberto encounters various friends and neighbors who are homless for one reason or another, and decides to do something about it.
With his self-taught knowledge of architecture, Roberto designs and builds the homes and businesses to get those bugs off the streets and a second chance at a better life, and in the spirit of a "Secret Santa" does so anomyously.
It doesn't take long before the city at large is buzzing with inritgue wondering who this mystery master archetict is.
When it's discovered that Roberto's the bug they're looking for, the reader (and those read) are shown not only the importance of hard work and never giving up, but also how not to let doubt from others blindside you from your dreams.
Nina Laden's agular and wonderfully quirkly illustrations, matched with concise and engaging text that sprinkles in fun wordplay throughout complete each other well.
While I always liked the idea behind the film, "A Bug's Life" (the sophmore effort after the phenemon that was/is Disney-Pixar's "Toy Story") I couldn't fully get into the execution. "Roberto, The Insect Architect" pulls it off, and in a fraction of the time.
Unless you're horridly averse to insects, this is a book worth checking out.
As the subtitle implies, this book is a retelling of five classic fairy tales from the Grimm's school of thought, but what makes this different is that titular lupine dressed to the nines is the through-line connecting these five (usually stand alone) stories.
whereas most fairy retellings (including your lit. rat's e-publication "Crocodile Flint") the wolf of "3 Little Pigs" fame is not necessarily be the SAME wolf from "Little Red Riding Hood" or the lesser known "Goslings" story.
In this book, one wolf does it all, with some expected results, brought about in a new humorous bent.
As you might guess from the cover credits, like the Grimm bros. original tales, this book's a family affair between author Zoё B. and illustrator R.W. Alley, who's illustrated the iconic Paddington Bear (soon to be a motion picture later in 2014) and countless other books, including one of my favorite finds of the year, "Ballerino Nate" (written by Kimberly Brubaker Bradley) that I reviewed a ways back.
The comic panel presentation is not a mere gimmick, but a clever and fun twist to the Grimm's stories, and occasionally a subtle "4th wall breaking" snip of wit from our dapper anti-hero addressing the reader directly, a plot technique which sometimes puts me off as a reader but it works here.
With R.W.'s delightfully old-fashioned style, Zoё B.'s lively text mixed with contemporary comic panel format is a winning combo, and is the picture book equivalent of the various "Shakespeare" graphic novels for older readers, making classics more accessible/appealing to the modern pre-reader, and a great early non-superhero alternative introduction to reading in comic/graphic novel format.
When I first discovered this book years ago (when it first came out in 2008) the wolf's outfit stayed with me for YEARS until I finally had the chance to get my own copy of the book a few weeks ago.
Like I said in my review of "Big Mean Mike" this book took WAY longer to get crossed off my "To Be Read" list than I intended, but it was so worth the wait, and not only the book itself, This is one of those rare few anti-heroes I'd like to spend time with (and feed him something you can't hunt for), or at the very least, I want his outfit!
Thankfully, Milo happily does his own thing for his own personal amusement, but eventually meets a new friend who also loves to play dress-up, just like him!
That's all for Weekly Readings, have a happy and safe Halloween, see you next time!


text:
#include <assert.h>
#include "stdafx.h"
#include "cphidget.h"
#include "cphidgetmanager.h"
#include "cusb.h"
#include "cphidgetlist.h"

#if defined(_MACOSX) && !defined(_IPHONE)
#include "macusb.h"
#endif

CThread_func_return_t CentralThreadFunction(CThread_func_arg_t arg);

static CThread CentralThread;
static int checkForDevicesEventInitialized = PFALSE;
static EVENT checkForDevicesEvent;

/* used by OSX to pause traffic during sleep */
int pause_usb_traffic = PFALSE;
int usb_write_paused = PFALSE;
int usb_read_paused = PFALSE;

#ifdef _MACOSX
void macPeriodicTimerFunction(CFRunLoopTimerRef timer, void *Handle);
void macFindActiveDevicesSource(void *nothing);
CFRunLoopTimerRef timer = NULL;
CFRunLoopSourceRef findActiveDevicesSource = NULL;
#endif

#ifdef _WINDOWS

#if defined(_WINDOWS) && !defined(WINCE)
extern void initializeThreadSecurityAttributes();
#else
#define initializeThreadSecurityAttributes()
#endif
extern PSECURITY_ATTRIBUTES pSA;

#endif

int
StartCentralThread()
{

#ifdef _WINDOWS
	if (CentralThread.m_ThreadHandle) {
		int threadStatus = 0;
		int result = 0;
		result = GetExitCodeThread(CentralThread.m_ThreadHandle,
		    (LPDWORD)&threadStatus);
		if (result) {
			if (threadStatus != STILL_ACTIVE) {
				CloseHandle(CentralThread.m_ThreadHandle);
				CentralThread.m_ThreadHandle = 0;
			}
		}
	}
#endif

	if(checkForDevicesEventInitialized == PFALSE)
	{
		checkForDevicesEventInitialized = PTRUE;
		CThread_create_event(&checkForDevicesEvent);
	}

#ifdef _MACOSX
	if(findActiveDevicesSource == NULL)
	{
		CFRunLoopSourceContext sourceContext = {0};
		sourceContext.perform = macFindActiveDevicesSource;
		findActiveDevicesSource = CFRunLoopSourceCreate(kCFAllocatorDefault, 0, &sourceContext);
	}
	if(timer == NULL)
		timer = CFRunLoopTimerCreate(kCFAllocatorDefault, 0, 0.250, 0, 0, macPeriodicTimerFunction, NULL);
#endif

	//start the thread
	if (!CentralThread.m_ThreadHandle || CentralThread.thread_status == FALSE)
	{
#ifdef _MACOSX
		CentralThread.macInitDone = PFALSE;
#endif
		CThread_reset_event(&checkForDevicesEvent);

		if (CThread_create(&CentralThread, CentralThreadFunction, 0))
			return EPHIDGET_UNEXPECTED;
		CentralThread.thread_status = TRUE;
	}
	//if it was already running, signal it to check for device matches NOW
	else {
#ifdef _MACOSX
		//make sure mac thread stuff is initialized
		while(!CentralThread.macInitDone)
			SLEEP(10);
		//run findActiveDevices in the context of the central thread
		CFRunLoopSourceSignal(findActiveDevicesSource);
		CFRunLoopWakeUp(CentralThread.runLoop);
#else
		//signal thread to poll and findActiveDevices
		CThread_set_event(&checkForDevicesEvent);
#endif
	}
	return EPHIDGET_OK;
}

int
JoinCentralThread()
{
	if(CentralThread.m_ThreadHandle && !CThread_is_my_thread(CentralThread))
	{
#ifdef _MACOSX
		while(!CentralThread.macInitDone)
			SLEEP(10);
		CPhidgetManager_teardownNotifications();

		CFRunLoopRemoveTimer(CentralThread.runLoop, timer, kCFRunLoopDefaultMode);
		CFRunLoopRemoveSource(CentralThread.runLoop, findActiveDevicesSource, kCFRunLoopDefaultMode);

		CFRunLoopStop(CentralThread.runLoop);

		CentralThread.macInitDone = PFALSE;
#endif
		CThread_join(&CentralThread);
		CentralThread.m_ThreadHandle = 0;
	}
	return EPHIDGET_OK;
}

/*
 * registers a device to receive events and be polled by the central
 * thread This needs to start the central thread if it's not yet
 * running.
*/
int
RegisterLocalDevice(CPhidgetHandle phid)
{
	int result;

	TESTPTR(phid)

	if(!phidgetLocksInitialized)
	{
		CThread_mutex_init(&activeDevicesLock);
		CThread_mutex_init(&attachedDevicesLock);
		phidgetLocksInitialized = PTRUE;
	}
	CThread_mutex_lock(&activeDevicesLock);

	if(phid->specificDevice == PHIDGETOPEN_SERIAL || phid->specificDevice == PHIDGETOPEN_LABEL)
		result = CList_addToList((CListHandle *)&ActiveDevices, phid, CPhidget_areEqual);
	else
		result = CList_addToList((CListHandle *)&ActiveDevices, phid, CPhidgetHandle_areEqual);

	if (result)
	{
		CThread_mutex_unlock(&activeDevicesLock);
		return result;
	}
	CThread_mutex_unlock(&activeDevicesLock);

	result = StartCentralThread();
	return result;
}

#ifdef _MACOSX
//this is run every 250ms from the CentralThread runLoop
void macPeriodicTimerFunction(CFRunLoopTimerRef timer, void *Handle) {
	CPhidgetList *trav = 0;

	//looks for any devices that have set PHIDGET_USB_ERROR_FLAG and reenumerate them
	CThread_mutex_lock(&activeDevicesLock);
	for (trav=ActiveDevices; trav; trav = trav->next)
	{
		if(CPhidget_statusFlagIsSet(trav->phid->status, PHIDGET_ATTACHED_FLAG))
		{
			if(CPhidget_statusFlagIsSet(trav->phid->status, PHIDGET_USB_ERROR_FLAG))
			{
				LOG(PHIDGET_LOG_WARNING,"PHIDGET_USB_ERROR_FLAG is set - cycling device through a reenumeration.");
				reenumerateDevice(trav->phid);
			}
		}
	}
	CThread_mutex_unlock(&activeDevicesLock);

	//need to always keep checking because a device could be opened by another app
	//and we want to notice when it becomes accessible.
	if(ActiveDevices) {
		findActiveDevices(); //this looks for attached active devices and opens them
	}

	return;
}

//This is run when a new Phidget is registered when the CentralThread is already running
void macFindActiveDevicesSource(void *nothing) {
	if(ActiveDevices) {
		findActiveDevices(); //this looks for attached active devices and opens them
	}
	return;
}
#endif

//The central thread should stop itself when there are no more active devices...?
//Or we can stop it in unregisterlocaldevice

CThread_func_return_t CentralThreadFunction(CThread_func_arg_t lpdwParam)
{
#ifdef _MACOSX
	CentralThread.runLoop = CFRunLoopGetCurrent();

	CFRunLoopAddTimer(CentralThread.runLoop, timer, kCFRunLoopDefaultMode);
	CFRunLoopAddSource(CentralThread.runLoop, findActiveDevicesSource, kCFRunLoopDefaultMode);

	CentralThread.macInitDone = PTRUE;

	//setup notifications of Phidget attach/detach
	CPhidgetManager_setupNotifications(CentralThread.runLoop);

	//start run loop - note that this blocks until JoinCentralThread() is called.
	CFRunLoopRun();
#else
	//loop as long as there are active devices, or a phidget manager
	while(ActiveDevices || ActivePhidgetManagers) {
		CPhidgetManager_poll(); //this will update the list, as well as sending out attach and detach events
		findActiveDevices(); //this looks for attached active devices and opens them

		//Wait for signal of newly registered device, or 250ms
		//we don't really care about the reason so we don't check the return value
		CThread_wait_on_event(&checkForDevicesEvent, 250);
		CThread_reset_event(&checkForDevicesEvent);
	}
#endif

	//if we actually get here, it means there are no active devices, and no phidgetmanagers, so free up the
	//last of the memory we are using, and exit the thread...
	CThread_mutex_lock(&attachedDevicesLock);
	CList_emptyList((CListHandle *)&AttachedDevices, TRUE, CPhidget_free);
	CThread_mutex_unlock(&attachedDevicesLock);

	LOG(PHIDGET_LOG_INFO,"Central Thread exiting");

	if(fptrJavaDetachCurrentThread)
		fptrJavaDetachCurrentThread();
	CentralThread.thread_status = FALSE;
	return EPHIDGET_OK;
}

//The read thread
CThread_func_return_t ReadThreadFunction(CThread_func_arg_t lpdwParam)
{
	CPhidgetHandle phid = (CPhidgetHandle)lpdwParam;
	int result = EPHIDGET_OK;
	LOG(PHIDGET_LOG_INFO,"ReadThread running");

	if (!phid)
	{
		LOG(PHIDGET_LOG_ERROR,"ReadThread exiting - Invalid device handle");
		return (CThread_func_return_t)EPHIDGET_INVALIDARG;
	}

	//quit read thread if it's not needed
	switch(phid->deviceID)
	{
		case PHIDCLASS_SERVO:
			if(phid->deviceVersion < 313)
				goto exit_not_needed;
			break;
		case PHIDCLASS_INTERFACEKIT:
			if(phid->deviceIDSpec == PHIDID_INTERFACEKIT_0_0_4 && phid->deviceVersion < 704)
				goto exit_not_needed;
			break;
		case PHIDCLASS_LED:
			if(phid->deviceIDSpec == PHIDID_LED_64)
				goto exit_not_needed;
			break;
		case PHIDCLASS_TEXTLCD:
			if(phid->deviceIDSpec != PHIDID_TEXTLCD_ADAPTER)
				goto exit_not_needed;
			break;
		case PHIDCLASS_TEXTLED:
exit_not_needed:
			LOG(PHIDGET_LOG_INFO,"ReadThread exiting normally (Not Needed for this device)");
			goto exit;
		default:
			break;
	}

	while (CPhidget_statusFlagIsSet(phid->status, PHIDGET_ATTACHED_FLAG))
	{
		if(pause_usb_traffic)
		{
			usb_read_paused = PTRUE;
			SLEEP(20);
			continue;
		}
		else
			usb_read_paused = PFALSE;

		result=CPhidget_read(phid);

		switch(result)
		{
			case EPHIDGET_OK:
			case EPHIDGET_TRYAGAIN:
				break;
			case EPHIDGET_NOTATTACHED:
				LOG(PHIDGET_LOG_INFO,"ReadThread exiting normally (Phidget detach detected in CPhidget_read)");
				goto exit;
			case EPHIDGET_INTERRUPTED:
				LOG(PHIDGET_LOG_INFO,"ReadThread exiting normally (signaled by CPhidget_close)");
				goto exit;
			case EPHIDGET_TIMEOUT:
				//Set the error flag for devices that should never have a USB timeout, then exit
				//continue for devices where it is ok
				switch(phid->deviceID)
				{
				case PHIDCLASS_INTERFACEKIT:
					switch(phid->deviceIDSpec)
					{
					case PHIDID_INTERFACEKIT_0_16_16:
						if(phid->deviceVersion >= 601)
							goto timeout_not_ok;
						else
							goto timeout_ok;
					case PHIDID_INTERFACEKIT_0_8_8_w_LCD:
						goto timeout_ok;
					default:
						goto timeout_not_ok;
					}
				case PHIDCLASS_RFID:
					if(phid->deviceVersion >= 201)
						goto timeout_not_ok;
					else
						goto timeout_ok;
				case PHIDCLASS_ENCODER:
					if(phid->deviceIDSpec == PHIDID_ENCODER_HS_4ENCODER_4INPUT)
						goto timeout_not_ok;
					else
						goto timeout_ok;
				case PHIDCLASS_GENERIC:
					goto timeout_ok;
				default:
					goto timeout_not_ok;
				}
			timeout_not_ok:
				CPhidget_setStatusFlag(&phid->status, PHIDGET_USB_ERROR_FLAG, &phid->lock);
				LOG(PHIDGET_LOG_ERROR,"ReadThread exiting - unexpected timeout (could be an ESD event)");
				goto exit;
			timeout_ok:
				LOG(PHIDGET_LOG_VERBOSE,"CUSBReadPacket expected time out"); //verbose because it could happen a LOT
				break;
			case EPHIDGET_UNEXPECTED:
			default:
				LOG(PHIDGET_LOG_ERROR,"ReadThread exiting - CPhidget_read returned : %d",result);
				CPhidget_setStatusFlag(&phid->status, PHIDGET_USB_ERROR_FLAG, &phid->lock);
				goto exit;
		}
	}

	LOG(PHIDGET_LOG_INFO,"ReadThread exiting normally (Phidget detached)");
exit:
	if(fptrJavaDetachCurrentThread)
		fptrJavaDetachCurrentThread();
	phid->readThread.thread_status = FALSE;
	return (CThread_func_return_t)(size_t)result;
}

//The write thread
CThread_func_return_t WriteThreadFunction(CThread_func_arg_t lpdwParam)
{
	CPhidgetHandle phid = (CPhidgetHandle)lpdwParam;
	int result = EPHIDGET_OK, wait_return = 0;
	LOG(PHIDGET_LOG_INFO,"WriteThread running");

	if (!phid)
	{
		LOG(PHIDGET_LOG_ERROR,"WriteThread exiting - Invalid device handle");
		return (CThread_func_return_t)EPHIDGET_INVALIDARG;
	}

	//quit write thread if it's not needed
	switch(phid->deviceID)
	{
	case PHIDCLASS_INTERFACEKIT:
		if(phid->deviceIDSpec == PHIDID_LINEAR_TOUCH
			|| phid->deviceIDSpec == PHIDID_ROTARY_TOUCH)
			goto exit_not_needed;
		break;
	case PHIDCLASS_RFID:
		if(phid->deviceIDSpec == PHIDID_RFID)
			goto exit_not_needed;
		break;
	case PHIDCLASS_ENCODER:
		if(phid->deviceIDSpec == PHIDID_ENCODER_1ENCODER_1INPUT
			|| phid->deviceIDSpec == PHIDID_ENCODER_HS_1ENCODER)
			goto exit_not_needed;
		break;
	case PHIDCLASS_ACCELEROMETER:
	case PHIDCLASS_TEMPERATURESENSOR:
	case PHIDCLASS_PHSENSOR:
	case PHIDCLASS_WEIGHTSENSOR:
exit_not_needed:
		LOG(PHIDGET_LOG_INFO,"WriteThread exiting normally (Not Needed for this device)");
		goto exit;
	default:
		break;
	}

	while (CPhidget_statusFlagIsSet(phid->status, PHIDGET_ATTACHED_FLAG))
	{
		//if awdc_enabled is true, then we timeout in 200ms and do a write, otherwise no timeout
		wait_return = CThread_wait_on_event(&phid->writeAvailableEvent, 200);
		switch (wait_return) {
		case WAIT_TIMEOUT:
			//putting this in the timeout so actual writes are not missed.
			if(phid->writeStopFlag)
			{
				LOG(PHIDGET_LOG_INFO,"WriteThread exiting normally (signaled by writeStopFlag)");
				goto exit;
			}
			if(!phid->awdc_enabled) //only fall through to writting out if awdc is set
				break;
		case WAIT_OBJECT_0: //writeAvailable
			if(pause_usb_traffic)
			{
				usb_write_paused = PTRUE;
				break;
			}
			else
				usb_write_paused = PFALSE;

			if((result = CPhidget_write(phid)))
			{
				switch(result)
				{
				case EPHIDGET_NOTATTACHED:
					LOG(PHIDGET_LOG_INFO,"WriteThread exiting normally (Phidget detach detected in CPhidget_write)");
					break;
				case EPHIDGET_INTERRUPTED:
					LOG(PHIDGET_LOG_INFO,"WriteThread exiting normally (signaled by CPhidget_close)");
					break;
				case EPHIDGET_TIMEOUT:
					LOG(PHIDGET_LOG_ERROR,"WriteThread exiting - unexpected timeout (could be an ESD event)");
					CPhidget_setStatusFlag(&phid->status, PHIDGET_USB_ERROR_FLAG, &phid->lock);
					break;
				case EPHIDGET_UNEXPECTED:
				default:
					LOG(PHIDGET_LOG_ERROR,"WriteThread exiting - CPhidget_write returned : %d",result);
					CPhidget_setStatusFlag(&phid->status, PHIDGET_USB_ERROR_FLAG, &phid->lock);
					break;
				}
				goto exit;
			}
			break;
		default:
			LOG(PHIDGET_LOG_ERROR,"WriteThread exiting - wait on phid->writeAvailableEvent failed");
			CPhidget_setStatusFlag(&phid->status, PHIDGET_USB_ERROR_FLAG, &phid->lock);
			result = EPHIDGET_UNEXPECTED;
			goto exit;
		}
	}
	LOG(PHIDGET_LOG_INFO,"WriteThread exiting normally (Phidget detached)");

exit:
	if(fptrJavaDetachCurrentThread)
		fptrJavaDetachCurrentThread();
	phid->writeStopFlag = FALSE;
	phid->writeThread.thread_status = FALSE;
	return (CThread_func_return_t)(size_t)result;
}

int
CThread_create(CThread *cp, CThread_func_t fp, CThread_func_arg_t arg)
{
#ifdef _WINDOWS
	initializeThreadSecurityAttributes();
	cp->m_ThreadHandle = CreateThread(pSA, 0, (LPTHREAD_START_ROUTINE)fp, arg, 0, &cp->m_ThreadIdentifier);
	if(cp->m_ThreadHandle) return EPHIDGET_OK;
	else return GetLastError();
#else
	return pthread_create(&cp->m_ThreadHandle, NULL, fp, arg);
#endif
}

int
CThread_create_detached(CThread *cp, CThread_func_t fp, CThread_func_arg_t arg)
{
#ifdef _WINDOWS
	cp->m_ThreadHandle = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)fp, arg, 0, &cp->m_ThreadIdentifier);
	if(cp->m_ThreadHandle) return EPHIDGET_OK;
	else return GetLastError();
#else
	pthread_attr_t attr;
	int err;
	if((err = pthread_attr_init(&attr)) == 0)
	{
		if((err = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED)) == 0)
		{
			return pthread_create(&cp->m_ThreadHandle, &attr, fp, arg);
		}
		else
		{
			LOG(PHIDGET_LOG_ERROR, "pthread_attr_setdetachstate failed with error: %d",err);
			return err;
		}
	}
	else
	{
		LOG(PHIDGET_LOG_ERROR, "pthread_attr_init failed with error: %d",err);
		return err;
	}
#endif
}

int
CThread_is_my_thread(CThread cp)
{
#ifdef _WINDOWS
	return (cp.m_ThreadIdentifier == GetCurrentThreadId());
#else
	return pthread_equal(cp.m_ThreadHandle, pthread_self());
#endif
}

void
CThread_join(CThread *cp)
{
#ifdef _WINDOWS
	DWORD ec;

	while (GetExitCodeThread(cp->m_ThreadHandle, &ec) && ec == STILL_ACTIVE)
		SLEEP(10);
	CloseHandle(cp->m_ThreadHandle);
	cp->m_ThreadHandle = NULL;

#else
	if (cp->thread_status == TRUE)
		pthread_join(cp->m_ThreadHandle, 0);
#endif
}

/*void
CThread_kill(CThread *cp)
{
#ifdef _WINDOWS
	TerminateThread(cp->m_ThreadHandle, 0);
#else
	pthread_cancel(cp->m_ThreadHandle);
#endif
}*/

int
CThread_mutex_init(CThread_mutex_t *mp)
{
#ifdef _WINDOWS
	InitializeCriticalSection(mp);
	return 1;
#else
	return pthread_mutex_init(mp, NULL) == 0;
#endif
}

int
CThread_mutex_destroy(CThread_mutex_t *mp)
{
#ifdef _WINDOWS
	DeleteCriticalSection(mp);
	return 1;
#else
	return pthread_mutex_destroy(mp) == 0;
#endif
}

void
CThread_mutex_lock(CThread_mutex_t *mp)
{
#ifdef _WINDOWS
	EnterCriticalSection(mp);
#else
	pthread_mutex_lock(mp);
#endif
}

void
CThread_mutex_unlock(CThread_mutex_t *mp)
{
#ifdef _WINDOWS
	LeaveCriticalSection(mp);
#else
	pthread_mutex_unlock(mp);
#endif
}

void CThread_create_event(EVENT *ev)
{
#ifdef _WINDOWS
	*ev = CreateEvent(NULL, FALSE, FALSE, NULL);
#else
    pthread_mutex_init(&ev->mutex, NULL);
    pthread_cond_init(&ev->condition, NULL);
	ev->ready_to_go = PFALSE;
#endif
}

int CThread_destroy_event(EVENT *ev)
{
#ifdef _WINDOWS
	return CloseHandle(*ev);
#else
    if(pthread_mutex_destroy(&ev->mutex)) return 0;
    if(pthread_cond_destroy(&ev->condition)) return 0;
	return 1;
#endif
}

int CThread_wait_on_event(EVENT *ev, EVENT_TIME time)
{
#ifdef _WINDOWS
	return WaitForSingleObject(*ev, time);
#else
	int retval;
	struct timespec timeout;
	struct timeval now;

    // Lock the mutex.
    pthread_mutex_lock(&ev->mutex);

    // If the predicate is already set, then the while loop is bypassed;
    // otherwise, the thread sleeps until the predicate is set.
    if(ev->ready_to_go == PFALSE)
    {
		if(time == INFINITE)
			retval = pthread_cond_wait(&ev->condition, &ev->mutex);
		else {
			gettimeofday(&now,0);
			timeout.tv_sec = now.tv_sec + time/1000;
			timeout.tv_nsec = now.tv_usec*1000 + (time%1000 * 1000000);
			if(timeout.tv_nsec >= 1000000000)
			{
				timeout.tv_sec++;
				timeout.tv_nsec -= 1000000000;
			}
			retval = pthread_cond_timedwait(&ev->condition, &ev->mutex, &timeout);
		}

		switch(retval)
		{
			case ETIMEDOUT:
				pthread_mutex_unlock(&ev->mutex);
				return WAIT_TIMEOUT;
			case 0:
				pthread_mutex_unlock(&ev->mutex);
				return WAIT_OBJECT_0;
			case EINVAL:
				pthread_mutex_unlock(&ev->mutex);
				return WAIT_FAILED;
			default:
				pthread_mutex_unlock(&ev->mutex);
				return WAIT_FAILED;
		}
    }
	pthread_mutex_unlock(&ev->mutex);
	return WAIT_OBJECT_0;
#endif
}

void CThread_reset_event(EVENT *ev)
{
#ifdef _WINDOWS
	ResetEvent(*ev);
#else
    // Reset the predicate and release the mutex.
    pthread_mutex_lock(&ev->mutex);
    ev->ready_to_go = PFALSE;
    pthread_mutex_unlock(&ev->mutex);
#endif
}

void CThread_set_event(EVENT *ev)
{
#ifdef _WINDOWS
	SetEvent(*ev);
#else
    // At this point, there should be work for the other thread to do.
    pthread_mutex_lock(&ev->mutex);
    ev->ready_to_go = PTRUE;
    // Signal the other thread to begin work.
    pthread_cond_signal(&ev->condition);
    pthread_mutex_unlock(&ev->mutex);

#endif
}

redpajama_set_name: RedPajamaGithub


MDS Legal is committed to protecting the privacy of those who access its Internet site and is committed to complying with the Privacy Act, 1988 and the associated National Privacy Principles ("the NPPs").
MDS Legal will only record your e-mail address if you send MDS Legal a message. That address will only be used for the purpose for which you have provided it and it will not be added to a mailing list or used for any other purpose without your prior consent.
MDS Legal collects information on its Internet site when visitors to the site complete on-line forms or send e-mails from links that have originated from the Internet site. When information is provided to MDS Legal in this way that information will only be used for a purpose made known to you; a purpose you would reasonably expect; a purpose required, authorised or permitted by any law; or a purpose otherwise authorised by you.
Persons who do not wish their personal information to be used for any particular purpose should not hesitate to advise MDS Legal of that fact. MDS Legal will respect those wishes.
"Cookies" are pieces of information that websites transfer to an individual computer's hard drive for record-keeping purposes. The "cookie" assigns a unique identification that allows a website to recognise you when you return to that site.
Most Internet browsers enable individuals to refuse to accept cookies. If an individual exercises such a choice you will still be able to view most of the text on the MDS Legal Internet site. However, you will not experience a personalised visit.
The MDS Legal Internet site may contain links to other websites. These other websites are conducted by Third parties and MDS Legal does not control the content or the information collected on these websites. You should refer to those websites directly or to the authors of those sites to obtain details of the privacy policies relevant to those web pages.
MDS Legal ("MDS") is committed to complying with its obligations under the Privacy Act, 1988 and the associated National Privacy Principles ("the NPPs").
MDS is bound by the NPPs as a consequence of it being an organisation with an annual turnover of more than $3 million and due to the fact that it derives a benefit, service or advantage by the collection or disclosure of information and opinions about individuals whose identity is apparent or can be ascertained. However, as with all organisations, the NPPs do not apply to the activities of MDS that directly relate to personal information of current or former employees when those records are used directly in connection with the employment relationship. Further, it should be noted that some exemptions are contained within the NPPs with respect to matters such as the disclosure of information relating to public health or public safety, the disclosure of information with respect to law enforcement enquiries and the disclosure of particular information relating to legal proceedings and negotiations.
MDS, through its Privacy Officer, is happy to provide further details as to the extent to which it is required to comply with the NPPs should any person wish. Alternatively, further details of the obligations imposed upon private organisations under Australia's privacy laws can be obtained directly from the office of the Privacy Commissioner or by reference to the NPPs and the Privacy Commissioner's associated guidelines.
Information collected from persons applying for training courses conducted by MDS.
MDS collects information from its clients so as to enable it to serve the interests of its clients by providing a range of legal services.
Information obtained by MDS with respect to seminars is used to assist MDS in the presentation of its clients and members of the public.
MDS does not contract out services to third parties that involves disclosing personal information.
Pursuant to the NPPs persons are entitled to obtain access to personal information held by MDS with respect to that individual. Subject to the relevant exemptions contained in the NPPs and subject to an individual providing sufficient proof of his or her identity MDS will provide access to information that it holds relating to an individual. MDS will charge a fee in most instances for the provision of this information based on the administrative cost of supplying the information requested. Further details as to these costs can be obtained by contacting the MDS Privacy Officer.
MDS requests, for the purposes of clarity, that any requests for access to personal information be made in writing addressed to the MDS Privacy Officer, Paul Donovan.
MDS will generally provide access to information by providing to the individual concerned copies of relevant documents. Where, for reasons of volume or otherwise, providing copies of documents is not practical, MDS will make arrangements for the individual concerned to attend at MDS's offices to carry out a physical inspection.
Wherever possible, MDS will provide copies of documents or access to the information that it holds with respect to an individual within 14 days of the receipt of the relevant request. In the case of more complex requests MDS will endeavour to provide access to the information within a period of 30 days.
If individuals believe that information held relating to them is incorrect they are entitled to request that MDS corrects that information.
Should MDS believe that it is entitled to refuse a request to access information or to make corrections it will provide written reasons for its decision.
Should any client of MDS or client of the public wish to obtain further information with respect to the type of personal information MDS holds, the purposes for which MDS uses that information and/or the way in which MDS manages that information, that person should not hesitate to contact MDS's Privacy Officer at the contact details set out above.


Albert Paley, an active artist for over 40 years at his studio in Rochester, New York, is the first metal sculptor to receive the coveted Institute Honors awarded by the American Institute of Architects, the AIA's highest award to a nonarchitect. "The allure of Paley's art comes through its intrinsic sense of integration of art and architecture," as one noted architect stated. Paley, Distinguished Professor, holds an Endowed Chair at the College of Imaging Arts and Sciences at Rochester Institute of Technology. Commissioned by both public institutions and private corporations, Paley has completed more than 50 site-specific works. Some notable examples are the Portal Gates for the Renwick Gallery of the Smithsonian Institution in Washington DC, Synergy, a ceremonial archway in Philadelphia, the Portal Gates for the New York State Senate Chambers in Albany, Sentinel, a monumental plaza sculpture for Rochester Institute of Technology, as well as a 65-foot sculpture for the entry court of Bausch and Lomb's headquarters in Rochester, NY. Recently completed works include three sculptures for the National Harbor development near Washington DC, a 130' long archway named Animals Always for the St.Louis Zoo, a gate for the Cleveland Botanical Gardens in Cleveland, OH, a sculptural relief for Wellington Place, Toronto, Canada, Threshold, a sculpture for the Corporate Headquarters of Klein Steel, Rochester, NY, and Transformation, a ceremonial entranceway for Iowa State University in Ames, Iowa.
Pieces by Albert Paley can be found in the permanent collections of many major museums including the Metropolitan Museum of Art in New York, the Museum of Fine Arts in Boston, the Museum of Fine Arts in Houston, and the Victoria and Albert Museum in London. Broadly published and an international lecturer, Paley received both his BFA and MFA from the Tyler School of Art in Philadelphia. He received honorary doctorates from the University of Rochester in 1989, the State University of New York at Brockport in 1996, St. Lawrence University, in Canton, New York in 1997,and the University of Gothenburg, in Sweden in 2012.
2017 Breckenridge, Colorado, Exterior plaza sculpture, currently in design and production.
2016 Fire Station Wall Relief, Tamaracs, Florida, Exterior wall relief.
Hilo University, Hilo Hawaii, freestanding exterior entryway sculpture, 40' H.
2011 Michigan State University, East Lansing, Michigan, external relief sculpture, 47' L.
weathering steel, stainless steel and bronze, 40' H.
2008 Trenton Station, Trenton, New Jersey, Zenith, freestanding exterior sculpture.
Village of Hope, Orange County, California, entrance portal.
National Harbor, Alexandria, Virginia, exterior pylon sculptures.
2007 Iowa State University, Ames, Iowa, Transformation, entrance sculpture.
Klein Steel Corporation, Rochester, New York, Threshold, exterior sculpture.
2006 National Cathedral, Washington, D.C., Good Shepard Chapel Entrance Gates.
St. Louis Zoological Park, St. Louis, Missouri, Animals Always, exterior plaza sculpture.
2005 Memphis Museum of Art, Memphis Tennessee, Memphis Portals, exterior gates.
Lake Mirror Park, Lakeland, Florida. Tribute to Volunteerism, exterior sculpture.
Cleveland Botanical Garden, Cleveland, Ohio. ceremonial archway.
Monahan Pacific, San Rafael, California. Volute, exterior sculpture.
M D Anderson Ambulatory, Houston, Texas. Tree of Life, interior sculpture.
2003 Rochester Institute of Technology, Rochester, New York. Sentinel exterior sculpture.
2002 Hotel Pattee, Perry, Iowa. Reconfiguration, pair of sculptural archways for courtyard.
Wellington Place, Toronto, Canada. Constellation, sculptural relief for façade.
Columbia Public Library, Columbia, Missouri. Cypher, pair of entrance sculptures.
2001 Florida Gulf Coast University, Fort Myers, Florida. Cross Currents, exterior sculpture.
99 North La Cienega Blvd., Beverly Hills, California, Oblique, exterior sculpture.
The Commission Project, Rochester, New York. J D Award Sculpture.
2000 Naples Museum of Art, Naples Florida. Portal Gates.
University of the South, Sewanee, Tennessee. Architectural Screen.
1999 Florida State University, Tallahassee, Florida, Stadium Gates.
space including sideboards, sconces, and mirrors.
and lighting features for plaza complex.
Anchorage, Alaska, The Municipality of Anchorage, Solstice, exterior sculpture.
University of Toledo, Toledo, Ohio. Symbion, exterior sculpture.
Ohio State University, Columbus, Ohio. Gnomon, exterior sculpture.
American Bankers Insurance Group, Miami, Florida. Exterior Sculpture.
Victoria and Albert Museum, London, England. Sculptures, honorary awards.
Miami University, Oxford, Ohio. Entrance Portals for Alumni Hall.
1995 Federal Building, Asheville, North Carolina. Passage exterior sculpture.
Victoria and Albert Museum, London, England. Museum Bench.
1991 State University, Phoenix Campus, Phoenix, Arizona. Ceremonial Gateway.
1990 AT&T, Promenade Two Building, Atlanta, Georgia. Olympia, exterior sculpture.
Roanoke Airport, Roanoke, Virginia. Aurora, exterior sculpture.
Birmingham Museum of Art, Birmingham, Alabama. Confluence, exterior sculpture.
1989 City of Rochester, New York. Main Street Redevelopment Project. Bridge Railings.
Naples/Marco Philharmonic Building, Naples, Florida. Main Entrance Doors.
1988 Cornell University Medical College, New York, New York. Window Screen.
1987 Wortham Center for the Performing Arts, Houston, Texas. Eight Stairway Sculptures.
Massachusetts Bay Transit Authority, Milk Street Station, Boston, Massachusetts.
Museum Towers, Philadelphia, Pennsylvania. Synergy, exterior archway sculpture.
New York State, New York State Governor's Art Awards.
The Willard Building, Washington, DC. Interior sculpture, Door Handles.
1984 Light Rail Transit System of Pittsburgh, Pittsburgh, Pennsylvania. Poster Cases.
Harro Theater East, Rochester, New York. Conclave, exterior sculpture.
1983 Hyatt Grand Cypress Hotel, Orlando, Florida. Stair Enclosure.
Clyde's Restaurant, Tyson's Corner, Virginia. Fountain.
Merritt Gallery, Rochester, New York. Entrance Gate.
Marriott Hotel, Washington, DC. Gates.
1982 Strong Museum, Rochester, New York. Exterior sculpture.
and Benches for Pennsylvania Avenue.
1980 New York State Senate Chambers, Albany, New York. Two pair Portal Gates.
Prospect Place, Washington, DC. Exterior Clock.
1978 City of Philadelphia, Redevelopment Authority, Security Screens.
1975 Hunter Museum of Art, Chattanooga, Tennessee. Sculpture Court Enclosure.
2010 American Craft Council Gold Metal Award for consummate craftsmanship.
2014 Albert Paley Retrospective, The Corcoran Gallery, Washington D.C.
along the median of Park Ave, NYC.
2012 Albert Paley Sketches & Steel, The Polk Museum of Art, Lakeland, Florida.
2011 Albert Paley Sculpture, Naples Museum of Art, Naples, Florida.
1996 Art to Art: Paley, Dine, and Statom, Toledo Museum of Art, Toledo, Ohio.
Tokyo Art Expo, exhibition of sculpture and project documentation. Tokyo, Japan.
1976 Invitational Exhibition, Zlatarna Celje, Celje, Yugoslavia. Design Award.
Gilbert, Lela. Albert Paley Reconfiguration. Pintaubo Press, 2008.
Shearer, Linda. Albert Paley Threshold. Milan: Skira, 2008.
Kuspit, Donald. Albert Paley: Sculpture. Milan, Italy: Skira, 2006.
York: RIT Cary Graphic Arts Press, 2005.
Arts. Tallahassee, Florida: Florida State University, 2001.
BYU Museum of Art. Albert Paley: Age of Steel. Utah: Brigham Young University, 1996.
New York: University of Rochester, 1994.
international Internet distribution May – June 2013.
State Emmy Award. (Approx. 60 min. High Definition video) PBS National Broadcast.
1994 Albert Paley - Metal Artist. NHK TV (Japanese Public Television). In Japanese (Approx.