text:
Tag: welfare state
Why The Similarity In These Headlines Could Be A Good Thing For Labour By Lisa Mulholland
The election is less than 3 weeks away.
Labour are significantly behind in the polls and the mainstream media are doing their usual tactics of ridiculing Corbyn, and painting the tories in a glorious light; despite two disastrous performances by Johnson on the leaders debates. Not to mention a week full of fake news skulduggery by the tories.
It's enough to make you want to give up hope.
9 years of austerity, services stretched to beyond their limit, with the final nail in the privatisation coffin of the NHS hanging over us.
The U.K. electorate should be fired up. We should be ready to kick the tories out. In normal times we probably would be. But in the last 4 years have seen an extraordinary rollercoaster. We are now on our third election, not to mention the big referendum, and third Prime Minister. The public are saturated with politics.
A December election is unusual, and inconvenient.
The media are resorting to hostile tactics.
They call Corbyn a 'Marxist', a 'terrorist sympathiser', a 'Russian spy'. The list is endless and the media are relentless.
Here we have a radical Labour manifesto published yesterday. Built on hope. The light at the end of this dark political tunnel. It speaks of ambitious but realistic plans of not just ending austerity but of smashing it to pieces with large investment and nationalisation in public services.
Surely this is what people want? But the media have convinced people that it's laughable and 'communist.' And they can vote for ' anyone but Corbyn'. He's so weak and unelectable, so much s that the BBC has to mute the chants of his supporters outside the studios tonight…
I have really felt like giving up hope. 2017 offered a glimmer of something but the constant media smears and the headbanging frustration of Brexit has worn me down.
I told myself not to get my hopes up with this election. And just to hide away from all coverage of the election.
But then I remembered something. I spotted an old newspaper front page and it reminded me that isn't the first time a potential Labour government proposed something radical, and it's not the first time the media laughed it off.
It happened right before Labour were elected on a landslide and started the construction of the very "socialist, radical" idea of the NHS and welfare state. The media states that people were terrified of the prospect of the NHS, as it would "bankrupt us", "never work", and that state ownership would mean "controlling everything we do".
Does this sound familiar?
The similarities don't end there.
The Labour government of 1945 with its' Keynesian economics and The Beveridge Report of 1942, painted a picture of radical change to post-war Britain. It set out plans for the Welfare State, something which the Tories clearly opposed, favouring instead austerity over grand public spending. This, even after 14 years of events starting with the Great Depression of 1931, austerity and a World War that plunged many of the poor into even worse conditions, proves that the Tories were out of touch then with the public desire for a change and are still out of touch now, over 70 years later. Back then the media called them ' gestapos', ' socialists' and opposed Labour's plans at every single opportunity.
A similar turn of events has happened in recent times with the Global Crash of 2008 and subsequent recession led to the conservatives excuse for the introduction of crippling austerity in 2010.
Since then homelessness has doubled, use of food banks increased daily, wages stagnated and many public services are in crisis, National Debt has increased to the trillions and we still have a deficit, with Tory deadlines to clear it off being extended and extended.
Following the immediate aftermath of the 2008 Crash, Keynesian economics was brought up again with many saying that if it had been followed throughout the last 40 years, the Crash could have been avoided.
But it was caused by the over inflation and free market economics, much like 1931. Keynesian economics would have controlled the over inflation that preceded the 2008 crash and would have opposed austerity measures that followed. Keynesianism works on the belief that economic demand determines economic output, in other words the more the public are willing and able to spend, the better the economy will perform; which is the opposite of Neoliberalism.
Today we see that austerity has not reduced the debt. The UN even called austerity a political choice and found it to be ' cruel' and yet the government were quite happy to continue with it while spending generously when it suited them with the £1 billion DUP deal, and promoting a Halloween Brexit that never happened. So how long can the notion of austerity and neoliberalism limp on for?
After the rollercoaster year we have had in UK politics, with Brexit looming and then delayed, we now have the manifesto of hope and an opportunity to implement it . With its vision of an end to austerity; a universal social care system, free education for adults and grand ideas of reinvestment into public services we are being given that glimmer of hope in the same way that the Beveridge Report of 1942 probably gave the public all those years ago.
The creation of NHS and the Welfare State provided an antidote to years of austerity and changed the social and economic landscape of the UK for the better, and I'm certain that if given the chance, Corbyn's vision would do the same for generations to come.
So, what comes next? Are we heading for a similar fate we did all those years ago when Labour were ridiculed by the press and then shocked them with a landslide.
At face value when I look around me I think 'no chance'. How can we ever come up against that amount of hostility.
But the optimist in me however, would like to think that we are on the brink of a radical change for the better, not just with this election but for the future to come and that it is only matter of time before Neoliberalism is finally exposed for what it really is – greed under the guise of economic philosophy.
And maybe, just maybe we could take the right path at this enormous crossroads.
Posted on November 22, 2019 November 23, 2019 by The AvengerPosted in PoliticsTagged austerity, economics, election, GE2019, Jeremy Corbyn, labour, manifesto, neoliberalism, nhs, Politics, welfare state. Leave a comment
A Desperate Plea From A Relative Of A Rough Sleeper By The Masked Avenger Anonymous
We have all walked past a rough sleeper on the street. Sometimes we give it a second thought. Sometimes we stop and chat, maybe even try to help.
But mostly we walk on by.
Most of us are fortunate enough to have never been there and while we sympathise, we often try and forget it and move on with our busy lives. Rushing to get somewhere; an appointment or some such.
We often don't see the person beyond the sleeping bag. Sometimes it is very hard to imagine how someone got there. The government dehumanise rough sleepers. They advise us not to feed them as though they are pigeons in Trafalgar Square. They put spikes on floors to stop them being able to get some shelter in a shop doorway. Again treated like pests. So it's no wonder that we walk on by. Sometimes it is a taboo subject.
But for me it is different. I happen to know a rough sleeper very personally.
You might want to ask me a few questions. Does anyone help him? Is he loved? Do you help him? The answer is yes. To all of the above.
But our help is not enough and the 'why' and the 'how' he gets into this position is what is complex.
My uncle has undiagnosed mental health conditions. He is an addict. Self medicating I guess. He has never had the support he needed from the professionals. And this is the product of years of neglect.
Born in the 60s to parents with severe mental health issues that lost everything down to gambling, my uncle was not diagnosed with anything himself or supported. Instead when the family broke down, my grandmother had a mental breakdown and no one was there to help. The authorities left my grandmother to it and just took my uncle away into care when he was 7. And that was the start of it. In and out of care. In and out of trouble.
" A handful, naughty, out of control, the mother can't cope"
While he was in the place that was supposed to care for him, he was abused.
He went in as a child with problems and came out disturbed with even bigger problems.
No one knew what happened at the time. This is only a recent revelation. So he continued. In and out of trouble causing merry hell for the family.
As he got to adulthood he started to 'self medicate' and slowly but surely became an addict. Which led to petty crime, prison. And eventually being institutionalised .
"A write off'"
On paper yes. But what no one else saw was the snippets of the man he could have been if the support had been there during his childhood.
Detained at Her Majesty's pleasure, he had structure, routines and he flourished. He took courses and passed them all. He read and learned and became a talented writer.
He did endless courses and took all of the opportunities he could. He grabbed them with both hands.So when he went back into the outside world he started his own business, he even wrote for a national newspaper as a regular columnist. He became a published author. Some semblance of a normal life was finally coming his way.
He was capable and intelligent and we could see the person he could become if he'd been given more support as a youngster.
But things happened and again the support fell away. Without the guidance of a probation officer, without the structure, his mental health problems that simmered under the surface reared their ugly, scathing, self destructing head again.
Addiction came back with a vengeance and along came some new ones too.
So we saw him slip back. He lost everything and again he went on the slippery slope into the abyss of addiction and self destruct.
So, we try to help as a family, but its not possible to keep an eye on him 24/7.
The downward spiral was and is fast and relentless;he loses touch of where he is and he ends up on the street. He loses contact with any kind of support network and before you know it he is sleeping rough.
We can't track him. We don't know where he is.
We've had phone calls in the past from wonderful passer bys that have tried to help him. In his moments of lucidity he remembers a number of a random relative and some very nice person decides to help him and calls.
We then hear he's been in various places begging as he has lost everything. So we get there and we have to try and get him some help. He's unwell and doesn't know where he is. The police come and tell us not to bother with A and E as they are overcrowded but that they will try to help him.
Do you notice that even though I'm describing events in the past that I am using present tense? Why you might ask?
Because this is a recurring event. This happened last month but it could happen tomorrow, next week, next month. We never know what will happen next. This is the pattern that happens over and over again.
Services that are cut to shreds still try their best to help him. There are genuinely good mental health staff, hospital staff, police officers and key workers out there.
But it's not enough.
The services need to be joined up. They need more funding to give him the intensive therapy and support for his mental health needs as this is the root to all of his problems, I believe.
But all that happens is the problem is treated that day. Acute support is given while he is physically unwell. But there is not enough in place to prevent this from happening again.
So I sit here and wonder what people must think when they walk past him. When he ends up on the street, bounding in and out of shops, trying to get someone to help him.
They will never see the man he can be. The man he has been, the man he could have been.
Every person has a story, but homeless people are nothing more than pests to the Tories.
If we followed the advice that they give us, which is to ignore a homeless person, don't give them money or food; if every passer by that has helped my uncle thus far listened to this advice that this 'government' dish out my uncle would be dead by now. Perhaps that's what they want. By treating homeless people like pests perhaps they think they will just die off.
But instead there are good people out there, people try to help. And for now he and we are riding our luck. That might just change one day. And we dread phone calls sometimes. What will happen next we just don't know.
So I want to say to the people that help, the doctors, the nurses, the passers by, the staff in Pret that give out food, the key workers: Thank You!!!
Don't ever change and maybe one day if we fight hard enough we will have a government that cares too so that real change can happen and people living in the streets being dehumanised by a callous government will be a thing of the past.
Posted on January 22, 2018 February 15, 2018 by The AvengerPosted in mental health, Social Commentary, The Masked Avenger (Anonymous)Tagged anonymous, austerity, care, child mental health, children, criminal, cuts, homeless, homelessness, humanitarian crisis, hungry, mental health, mental health services, neglect, Politics, poor, poverty, self care, tories, victim support, welfare state. 2 Comments
Tory Britain: A Modern Day Disaster Zone By Lisa Mulholland
By Lisa Mulholland
When I hear people use the phrase 'emergency food parcels' it conjures up images in my head of a a war torn country or perhaps a place where a huge scale disaster has hit. I think of a place which has no infrastructure to deal with the problem at hand.
I do not think of the United Kingdom and I certainly do not think of a hardworking nurse needing to use an emergency food parcel. Yet surprisingly and shockingly it is what is happening. Right now. All around us.
1 million emergency food parcels were given out to families in the UK in 2016 according to the Trussell Trust.
I don't know about you but before 2013 I had never heard of the term 'foodbank'. But now it is a term that is quite commonplace.
What does it say about us as a society when people, both working and unemployed must go cap in hand to collect an emergency food parcel?
Recently the Red Cross was called in to support the NHS in what they called a 'humanitarian crisis'. I found this difficult to believe until I recently had the misfortune of having to visit my local A and E department. There was a 7 hour wait and when I heard the staff call out via tannoy message "We are in crisis tonight please go home unless your injury is life threatening". I could not believe my ears.
As a nation, we used to send emergency food parcels to countries that didn't have an infrastructure to support its most vulnerable in times of war, drought or disaster.
In churches, schools and local supermarkets we used to do collections for them and I remember feeling fortunate that I lived in a society that, I believed, would never experience such poverty.
But all I see is now is collections for food banks and local communities.
So what has changed?
What went so drastically wrong?
We aren't war torn, there has been no catastrophic event and there have been no natural disasters. So where is the mainstream media outcry?
There isn't any. It has been normalised and we have become anaesthetised to it.
In fact, the Conservative Party and the Mainstream Media would have us believe that our economy is doing just fine. That unemployment levels are at their lowest since 1972, according to the Office of National Statistics.
And that nothing has changed.
But it has.
And quite startlingly so. The decline has been rapid.
To my mind there has been one catalyst, that has set off a chain of very unfortunate events that has led us to the situation we are in today and that was when the Conservatives entered government in 2010.
They did not arrive in a 'landslide' fashion.
There was no overwhelming support for them.
They slithered quietly into power on the back of a hung parliament and had to form an alliance with the Lib Dems just to form a legitimate government.
Yet the chain of events that they have set in place with crippling austerity, targeting the vulnerable, and the disabled has been so severe that the UN launched an investigation into it.
Yes we, the United Kingdom were not only investigated by the UN but our austerity policies were found to be in breach of international human rights laws.
Shameful, abhorrent, cruel. But again, where is the media outcry?
We now hear terms like 'the working poor' being used. A term I have not heard in my 38 years of life but that is now a widely understood term in our society.
And now according to a leading Professor (as quoted in the Evening Standard) life expectancy improvements have now started to slow down since the dreaded year of 2010.
The rise of homelessness has doubled from 2010 and that rise is not slowing down. The number of rough sleepers has sharply increased from just under 2000 in 2010 (when Conservatives came into power) to 4,136 this year.
An increase of 134%.
If the Conservative Party could be compared to a natural disaster, I would say the one that resembles them the most is a tsunami.
They have hit us with wave after wave of bad decisions. And it feels like it is impossible to come up for air.
Just when good old Corbyn forced a U turn on child tax credit cuts, or when the plan for all school to be academies was overturned, every victory has been minimised by the mainstream media while at the same time we are hit in the the face with some other nasty Tory policy proposal.
And that is how it has gone on.
With each fight against some awful decision; some awful cut they try to impose, they simultaneously hit us with another.
How can you come up with air when the waves of cruelty keep coming?
I feel like we are living in our very own disaster movie. You know the one where all the experts like the meteorologists warn of impending doom but no one listens until it is too late.
I feel that's where we have been with this Conservative government.
In our case we had the economic experts warning us about Brexit. We had the small independent newspapers telling us how austerity would cause poverty. But then you had politicians like Gove putting down the experts with his famous quote last year when he said, "The people of this country are sick of experts".
No one listened and now look.
Most disaster movies have a happy ending. So what do we do?
Do we sit and wait for the happy ending to just arrive itself?
I certainly won't wait. I will keep writing, blogging, petitioning and campaigning until everyone gets the message. And I urge you all to do the same.
The Conservatives don't care about you or I (unless you are a millionaire).
They never have and they never will .
So if we want our happy ending we need to fight for it in any way, possible. And soon!
To read more articles like this, please visit our Facebook Page The Avenger :
The Trussell Trust
Posted on September 16, 2017 February 2, 2018 by The AvengerPosted in Politics, Social CommentaryTagged cuts, disaster, emergency food parcel, food donation, foodbanks, humanitarian crisis, nurses, poverty, Red Cross, tories, welfare state. Leave a comment
The Avenger Review: Harry Leslie Smith 'Don't Let My Past Be Your Future'
By Kelly Grehan
In 2013 Harry Leslie Smith was an unassuming 91 year old Yorkshireman when he wrote an article for the Guardian called 'This Year I Shall Wear A Poppy For The Last Time.' This was shared 60,000 times. He was then asked to speak at the Labour Party Conference and wrote two books: 'Harry's Last Stand' and 'Love Among The Ruins'. He now has a massive twitter following and runs a weekly podcast and speaks at events all over the country.
Now age 95 Harry has published his third book, described as a 'call to arms' called 'Don't Let My Past Be Your Future.'
The book starts with Harry reflecting upon his feelings of disappointment and fear of what lay ahead on the night of the Conservative election victory in 2015. It then compares Harry's miserable experiences growing up in absolute poverty with those in similar positions today.
Throughout, Harry uses facts and statistics to make his point, for example when discussing his brutal experiences of a childhood spent in transit from one set of poor accommodation to another even poorer one he points out that the use of private rental accommodation has risen by 50% since 2002 and that this, along with rent rises has doomed many children to repeating his own fate. He expresses his pain at the fate of old age being to see 'society gravitate back to the past.'
Harry shows great shrewdness in recognising the causes that allowed fascism to spread during his youth and how some many of the same courses have led to a climate where Brexit and Donald Trump have gained power and that these, in turn are a threat to our core belief systems, with 'compassion and decency' now at risk.
He (controversially) makes the point that 'perhaps it is the young today that have wisdom because they are learning to live with the selfishness of the baby boomer generation that helped create neo-liberalism and made it fashionable to disparage the welfare state while enjoying all its benefits.'
Speaking of the aims of society, Harry says 'Our thirst to do good things like find a cure for cancer and our hunger to do harm to others like selling weapons to Saudi Arabia astonish me.'
Despite his age, or maybe because of it, Harry has lost none of his enthusiasm in the belief in a better world or the belief that people, especially young people deserve better. He speaks of the injustice that a child's economic place at birth determines so much of what they are or are not entitled to.
One of the most poignant parts of the book for me are Harry's recollections of the humiliation which comes with poverty – both for adults and children. The stigma of poverty leads to negative self image and self blame. Reading this I could not help but picture those families reliant on food banks and the message we, as a society are sending those reliant on charity for food, about their worth,
With so few of those from the Second World War now left to share their experiences of life prior to the Welfare State and the NHS, it can sometimes feel like ancient history and that we are safe from the issues that pained that period. But of course, by comparing modern issues- poverty, poor housing, a rise in fascism, no refuge from domestic abuse, unaffordable health care – Harry shows that they battles won in 1945 need fighting once again.
Seeing Harry's strength in fighting against the ills of the government at his advanced years is truly inspirational. I hope reading this book encourages more people to leave their complacency behind and fight for a better, more just society as Harry and his comrades did in 1945.
The great thing about Harry's writing is it speaks across generations. I'll be buying copies for my Grandad and my friend's 16 year old for Christmas.
Don't Let My Past Be Your Future by Harry Leslie Smith is available to buy now.
Posted on September 13, 2017 September 21, 2017 by The AvengerPosted in Politics, ReviewsTagged book, Don't let my past be your future, Harry Leslie Smith, nhs, post war, poverty, release, welfare state. Leave a comment
The Tories Crusade For Morals Does Not Apply To Themselves By Kelly Grehan
Jacob Rees- Mogg a 'deadbeat dad' according to some, so why do the media portray him as a moral crusader?
Hearing Jacob Rees-Mogg this week brought back memories of my youth in the 1990s when Tory MPs often saw fit to take up moralising. There was John Redwood's condemnation of "young women [who] have babies with no apparent intention of even trying marriage or a stable relationship with the father of the child," Peter Lilley's description of single mothers as "benefit-driven" and "undeserving" and of course then Prime Minister John Major's ill fated 'Back To Basics' campaign in which he declared the Conservative Party as the Party of morality.
Of course, in the years that followed the Major government became synonymous with scandal as Tory MPs, too numerous to mention were outed for affairs and Major himself was revealed to have had a four year affair with Edwina Currie.
So, keeping with Tory tradition, Rees-Mogg, who once wrote an article in The Telegraph in defence of zero-hours contracts, is against foreign aid and who wishes to see the Human Rights Act abolished, this week gave his thoughts on abortion, a right won by women in this country in 1968, saying:
"The Catholic Church's teachings are authoritative. There is a moral absolute on abortion — that it is wrong. To take a life after a rape is not the answer. Life begins at the point of conception. One can only feel compassion for a woman in these situations — which, of course are rare — but it's hard to see how taking a child's life makes them better.'
He, having voted against equal marriage, voiced his continued opposition to it.
Maybe he has not noticed that the sky has not fallen in since the fight for LGBTQ rights was won.
Asked whether he would attend a wedding ceremony where both participants were of the same sex he replied "It's not for me to enforce my morals on others."
I find this very odd, as if marrying the person you love and want to spend your life with has some sort of moral or immoral connotation.
You know what I see as being morally indefensible?
Voting for policies that encourage poverty, poor health and social division!!
Rees-Mogg's voting record shows he has no interest in policies supporting better lives for children or families. For example he has
consistently voted against against paying higher benefits over longer periods for those unable to work due to illness or disability
voted for the bedroom tax, against spending public money to create guaranteed jobs for young people who have spent a long time unemployed
voted against a law to make private vehicles smoke-free if a child is present
voted against calling on the Government to ensure women and protected groups are not disproportionately impacted by tax and benefit changes and against publication of a gender equality strategy to improve the position of women,
voted for ending financial support for some 16-19 year olds in training and further education
-I could go on.
Another thing I find immoral is people bringing children into this world and being dis-interested in bringing them up!
Rees-Mogg this week admitted that he is not a "modern man" and had never changed a nappy, despite being a father of 6 children!!
In response, former Deputy Labour Leader Harriet Harman, referred to him as a 'deadbeat dad.'
Some may see Mogg's children who attend the same £14,000 a year school Prince Charles attended as very privileged. The nanny they have is the same one who raised Rees-Mogg before he went to Eton.
Isn't it odd that those of lower status who admit to not taking care of their own children, (and I do not mean when they are at work) are held up on various 'poverty porn' TV shows for ridicule, but wealthy people who absolve themselves of providing care for their own children are seen as 'eccentric?'
I can just imagine the view some of the tory MPs would take of a mother of 6, maybe working a low paid job, maybe with rent arrears who had six children and said she could not change their nappies!
Strangely different rules seem to apply to the rich.
Posted on September 11, 2017 February 5, 2018 by The AvengerPosted in Politics, Social CommentaryTagged class, hypocrisy, Jacob Rees-mogg, tories, welfare state. Leave a comment


You have the energy and enthusiasm today, to cast a light upon things that you may have been avoiding, or that you were just not aware of. A strong sense of clarity and openness, illuminates previously hidden aspects of a situation, and allows you to find new, and more productive ways of working with them. Although you may have felt hampered, or in the dark in some way recently, these new insights back up your intuitive feelings, and help you to gain a stronger belief in your own ability to ascertain the dynamics at work.
NextAstrology: Is The Fault in Our Stars?


text:
Penn State wants 'The Second Mile' charity to help pay abuse settlements
There is new information about the settlements stemming from the Jerry Sandusky case.Penn State wants the charity Sandusky founded to help pay out settlements to his sexual assault accusers.The university sent News 8 court documents it filed in Centre County Orphans Court.Penn State said The Second Mile was in a position to prevent and stop Sandusky from abusing children, but negligently failed to do so.Sandusky met several of his victims through the charity, which was set up to help disadvantage youth.The Second Mile dissolved earlier this year.So far, Penn State has paid more than $92 million in claims.
CENTRE COUNTY, Pa. —
There is new information about the settlements stemming from the Jerry Sandusky case.
Penn State wants the charity Sandusky founded to help pay out settlements to his sexual assault accusers.
The university sent News 8 court documents it filed in Centre County Orphans Court.
Penn State said The Second Mile was in a position to prevent and stop Sandusky from abusing children, but negligently failed to do so.
Sandusky met several of his victims through the charity, which was set up to help disadvantage youth.
The Second Mile dissolved earlier this year.
So far, Penn State has paid more than $92 million in claims.

redpajama_set_name: RedPajamaCommonCrawl


text:
Operanut
raving about operas
Pomes
The Crusades – 1934
The Lion Hunt
The New Year – 1936
Of what use is life on earth
The moon was in the heavens
Spring – 1936
A Strange Experience
Afraid to Die
Counting Sheep – 1937
Epic in the Morning – 1942
Letter 1 – 1942
Pome to Nana from Phil – 1942
The Steeplechase – 1947
We've got a new house – 1950
Every ticking minute – 1951
Thank You Note – 1955
The Mare – 1956
Poem on a Turnpike
Plan Ahead – 1956
First came the pot – 1956
Merrily We Roll Along – 1938
Chapter 1: Thea's Diary 1943-1960
1.1 Together -through 6/5/44
1.2 Philip at Sea -through 8/14/45
1.3 Together, Again -through 4/30/47
1.4 And Baby Makes Three -through 1/3/50
1.5 And Baby Makes Four -through 11/8/52
1.6 And Baby Makes Five -through 5/1/53
1.7 Long Island -through 1/3/55
1.8 Offers -through March 1957
1.9 Chicago, Here We Come -through 1960
Chapter 2: Log of Our Travels by Thumb 1943-1944
2.1 Short Trips
2.2 New York to Colorado
2.3 Colorado to New York
Chapter 3: Five Letters 1949-1956
3.1 Letter One: 1949
3.2 Letter Two: 1950
3.3 Letter Three: 1953
3.4 Letter Four: 1955
3.5 Letter Five: 1955-6
Chapter 4: William Prager: Personal Recollections – 1985
Chapter 5: Retirement 1991
The Great Prince of Plasticity
Thea's Words
They Should All Be Hugged and Kissed
Chapter 6: After 1991
Holland & Greece 1994
The Seaman
Chapter 1: Letter to Antiochians 1944
Chapter 2: Letters from Sea 1944
2.0 Log of the Trip
2.1 Across the Atlantic
2.2 In the Mediterranean
2.3 Port Augusta, Sicily
2.4 Bari, Italy
2.5 Brindisi, Italy
2.6 Interlude
2.7 Messing About the Mediterranean
2.8 Second Front
2.9 Homeward Bound
3.0 Nettleton News – June
3.1 At Sea – July
3.2 Panama – September
3.3 At Sea Past Eniwetok – October
3.4 In Yokohama Harbor – October
3.5 Telegram – December
Groundhog Letters 1970-1979
pre GHD-1970
GHD-1971
GHD-Final
On the Death of my Father
Nonagenarian Natterings
Opera Reviews
Read the Opera Reviews
Playreading Blurbs
An Enemy Of The People 2012
Halfway up the Tree 2012
The Tavern 2012
Liliom 2012
You Can't Take it with You 2012
"Willy" by Sue 1963
Minneapolis Star Tribune 1986
Longfellow Messenger 1987
Thea's Obituary 2008
Philip's Obituary 2014
← Cyrano de Bergerac – Plácido Domingo sticks his nose into San Francisco
Tosca at Opera San Jose – The Ultimate Opera →
The Marriage of Figaro – An intimate production
Posted on November 11, 2010 by philip
Last month I had the privilege of attending a Grand Opera performance of Mozart's "perfect" opera, The Marriage of Figaro, performed by the San Francisco Opera at War Memorial Opera House. I was one 3,000 or so present, and I enjoyed it tremendously. If you'd like to read my review, click here.
Ralston Mansion
Last night I had the privilege of attending an Intimate Opera performance Mozart's "perfect" opera, The Marriage of Figaro, performed by the Notre Dame de Namur music department in the Ballroom of Ralston Hall Mansion. I was one of 100 or so present, and I enjoyed it tremendously. The music was the same. The performers were different but the characters were the same. The language was different but this one was simply a translation of that one. But it was a totally different experience.
The experience began when we entered the NDNU campus in Belmont and drove up the steep narrow road to the magnificent mansion built in 1867. I note that it was built nearer to the date of the premier performance of Figaro (1786) than to today's date! Charles found a parking space right next to the building.
Ballroom Floor Plan
We collect our tickets at the "box office", an antique table set up in the spacious foyer, and proceed through the Cipriani Room and the Salon to our front row seats in the Grand Ballroom.
Ballroom with chandeliers
And Grand it is. From its two-toned hardwood floors to its three large chandeliers hanging from its high ceiling. From out-door views through the windows to the sconces and mirrors on the walls. It is the perfect setting for the Mozart opera we are about to hear. My excitement starts building even before anything happens.
Maestro Gregory Stapp
Maestro Gregory Stapp comes on "stage" to welcome the audience and give the usual spiel about cell phones, then steps back, turns to begin the overture with the 5-person orchestra. Since they are so few and since their musical sounds blended so well with the singers, they deserve to be named:
** Louise Costigan-Kerns (Piano & Harpsichord),
Weonsun Joo (Piano),
Elizabeth Morando (Flute),
James Tsai (Violin),
Alexis Flores (Violin),
** Ben Malkevaich (Cello)
[** = on NDNU faculty]
During the applause after the overture, the Maestro reverses his "podium" so he faces the stage from the rear, and Act I begins.
Seeing this intimate production up so close, I notice things that I had never thought of before in all the many times I have seen it. For instance, the neat way that Mozart and da Ponte introduce their characters one or two at a time. I want to follow that idea, but there are complications with regard to the pictures. There were two different casts for four of the lead female parts, and the only action photos were from the dress rehearsal of the other cast. Therefore, as I introduce each of those four roles, I will show two pictures: a rehearsal photo with the singer I did not see, and a posed photo of the singer I did see. Got that straight?
Susanna (Gabrielle Guidi) and Figaro (Rolfe Dauz) discuss wedding plans
Posed shot of Figaro and Susanna (Bailey Batti
Figaro is played in both casts by guest artist Rolfe Dauz, a senior at the San Francisco Conservatory of Music. He does a great job, both singing and acting the part of an independent personal servant to perfection. He has fun with his opening "measurement song", measuring everything in sight but not monkeying with the words. At one point he even hands one end of his tape to a gentleman in the front row while measuring a piece of floor with the other.
As you can see from the picture "my" Susanna, Baily Batti, has an attractive face and beautiful smile and she is a perfect foil for Rolfe's Figaro; their voices blend nicely together. Those two young people were such a delight to watch and listen to.
Marcellina (Jenny Matteucci) shows her IOU from Figaro to her friend Dr. Bartolo (Richard Mix)
Next to appear are Marcellina (Jenny Matteucci) and Dr. Bartolo (Richard Mix) – same singers for both casts. Jenny is a student at NDNU and this is her first opera performance. I'm sure it won't be her last. Her face suggests that she is not naturally skinny, but Costume Designer Kate Irvine Mills managed to pile enough additional padding on so that she is almost grotesque. Richard is another guest artist with a fine deep voice who has been singing opera in the Bay area for almost 20 years. I have heard him before in several roles with Pocket Opera.
Cherubino: Alexis Flores
Cherubino: Alanna Pinell
Scene: Susanna alone in her room. One by one three males show up to play the hilarious impromptu game of Musical Chair. First, Cherubino skips in complete with raging hormones and love letter to the Countess. The other Cherubino, Alexis Flores, receives her Bachelor of Music degree this year. She is a versatile musician, doubling as Second Violinist in the orchestra when not actually on stage. "My" Cherubino, Alanna Pinell, received her BFA from NDNU this year. I had seen her in several productions before, including a real cute rendition as Papagena in The Magic Flute. She has a delightful voice and lots of acting ability. Her small stature is a definite asset when she curls up in the chair to hide and when she cowers before the wrath of Count Almaviva.
Count Almaviva (Michael Reed)
And Michael Reed, the Count in both casts is indeed someone to cower before. A giant of a man with a deep voice to match and a definite star among the student performers. He's due to get his BFA in Musical Performance in 2011, so I hope I get to see him again. I'll never forget the light-footed way he moved his massive body about the stage as Jupiter (transformed into a fly by a pair of gauzy wings) in the Pocket Opera-NDNU joint production of Orpheus in the Underworld a couple of years ago. His performance Sunday shows that he continues to mature both as a singer and as an actor.
Don Basilio (Daniel G. Norberg)
Don Basilio (Daniel G. Norberg), the prissy music master, gossip monger, and primp for the Count completes the performers in Act I. Danny will get is MFA in Musical Performance in 2011. I have seen him before in several roles, most notably as Monasteros in the Magic Flute. He also doubles in the cameo part of Don Curzio in the last act.
Wedding Procession
Before I introduce the last two characters who first appear in Act II, let me say a few words in praise of the blocking. Director Gregory Stapp does a wonderful job of moving people around on the small stage, both when the stage is full, as in the wedding dance pictured above, and when there are only a few people on stage. An example of this that really caught my attention was the quartet by Susanna and the three men in her bedroom in Act I. Here is what I wrote about that scene after seeing SFO's production last June:
With all four on-stage characters now visible to each other we see and hear one of Mozart's signature treats: an ensemble of voices each singing his or her own version of events directly to the audience but in perfect harmony and counter-point. In this case it's a quartet, but sometimes it's a trio or a sextet or whatever. Susanna is singing about her narrow escape, and Cherubino about the trouble he is in with the Count. The Count is bewailing his lost opportunity at seduction: "It's all the fault of that damned page, but I can't be too hard on him or he'll spread the gossip." And Basilio is brimming over with delight at all the great gossip he's picking up.
Now, make no mistake. The sound of those four voices singing together was beautifully mixed and integrated by the time it reached Row R in the orchestra. But I didn't really notice to what extent the singers were moving as they sang because it made very little difference which voice was on the right and which on the left. Further, the singers had it easy; all of the audience was in front of them so there was no question about which way to face. The whole musical experience was very satisfying.
But it was a different order of magnitude Sunday night. In my front row seat I was virtually in the middle of those four singers. At any given moment I might hear the Count's deep voice in my right ear from 4 feet away, Don Basilio's lighter voice from 14 feet in my left, and the two female parts from across the stage and all of 30 feet distant in both ears. The genius of Gregory Stapp's direction was that without being the least bit obtrusive, he kept those singers moving about and the vocal mix that reached my brain kept changing. It was a fantastic experience.
An obvious complication of theater-in-the-semi-round is that a singer can't face everyone in the audience at once. Consequently sometimes one will have a side- or even a back-view of the singer. But with the constant motion, no one view lasted long. Frankly, I never noticed a change in voice quality whether or not I could see the singer's lips moving.
Countess Rosina: Mary Garcia
Countess Rosina: Megan Conray
Act II introduces the Countess Rosina. Unfortunately, the only photograph available for "my" Countess ( Megan Conray) was the head-shot above right. She is a "Performance Certificate" at NDNU who already holds BM and MM degrees from San Francisco State University. I have seen her in other major roles with NDMU, most notably as Queen of the Night in Magic Flute and a terrific performance in the title role of Suor Angelica. Suffice it to say that she fully lived up to my expectations. The other Countess (Mary Garcia) received her BA in Music (Magna Cum Laude) and is currently pursuing her MFA.
Count Almaviva with Antonio the gardener
The minor role of Antonio the gardener and uncle of Susanna was capably played by Freddie Navas. I liked his accent during his recitative lines, but thought he overdid the drunken reeling a bit, particularly in his second appearance. Freddie is a member of the Army National Guard Orchestra. He is working on his BFA at NDNU but hopes to continue to an eventual MFA.
Barbarina: Leah Sawick
Barbarina: Jacqueline Kerns
The final named cast member was Antonio's daughter Barbarina. "My" Barbarina, Jacqueline Kerns, is shown in a posed shot above right taken during the intermission. She is only a high school freshman at Menlo School, but she did a nice job with Barbarina's small solo at the beginning of Act IV. The other Barbarina, Leah Sawick, shown left is in her junior year at NDNU, working towards an MFA.
So these are the people I saw and loved Sunday evening. I can't urge you to go and see it, because that was the last of four performances held on two weekends. But I can urge you to be on the lookout for future performances from this talented and imaginative group. This is the first time they introduced this intimate venue – I hope it won't be the last. But they have shown great imagination before. Both Suor Angelica and Dialogues of the Carmelites were shown in their chapel – singularly apt for those particular operas.
You ask me, "But when all is said and done, which performance was better?" That's not a meaningful question. It 's like asking me which is better, baseball or apple pie. The two performances are different animals and I thought they were both great. Let me rephrase the question: "If I could see one and only one of the two performances again next month, which one would I go to?" I answer without hesitation: "The intimate performance at Notre Dame de Namur University."
Ciao – – – – – – The Opera Nut
This review by Philip G Hodge appeared in sanfranciscosplash.com on November 11, 2010.
This entry was posted in Opera Review and tagged Figaro, Marriage of Figaro, Mozart, NDNU. Bookmark the permalink.
The Magic Flute Review – Pocket Opera is Magic
Madama Butterfly Review – Opera San Jose's Provocative Take on Puccini's Classic Favorite
Elixir of Love Review – West Bay Opera produces another gem
GALA Review – West Bay Opera starts a tradition?
Hansel & Gretel Review – An Afternoon of Sheer Delight
Archives Select Month March 2014 (1) February 2014 (2) December 2013 (1) November 2013 (4) October 2013 (2) September 2013 (3) August 2013 (2) July 2013 (1) June 2013 (3) May 2013 (4) April 2013 (2) March 2013 (3) February 2013 (1) December 2012 (2) November 2012 (1) October 2012 (4) September 2012 (3) August 2012 (3) July 2012 (1) June 2012 (5) May 2012 (5) April 2012 (3) March 2012 (3) February 2012 (4) January 2012 (3) December 2011 (2) November 2011 (7) October 2011 (4) September 2011 (3) August 2011 (2) July 2011 (7) June 2011 (1) May 2011 (5) April 2011 (8) March 2011 (3) February 2011 (4) January 2011 (2) December 2010 (2) November 2010 (5) October 2010 (4) September 2010 (5) August 2010 (4) July 2010 (5) June 2010 (7) May 2010 (1) April 2010 (1) March 2010 (2) January 2010 (1) December 2009 (1) November 2009 (2) October 2009 (4) August 2009 (1) May 2009 (1) March 2009 (2) January 2009 (4) November 2008 (2) October 2008 (1) May 2008 (1)
All Things Kelly
My Opera Reviews
Springthistle Design
Team Silver
The Greenhen Family Page
Operanut	Privacy Policy


Anyone who's stepped out of Sydney city and into the great outdoors lately will have seen the crowds flock around Kur-in-gai National Park. Here people are either volunteering themselves (and their 3 closest buddies) to complete the Oxfam 100km hike or among who are just keen to get out of the hustle and bustle. And these day's I've been hitting the National Park's like they're going out of style preparing for multiple upcoming trips.
Yep, I can be seen scaling boulders, ambulating from river to river and debouching onto open plains with the rest of em. Not only have I learn how to 'pitch' a tent, 'stoke' a fire and 'dig' my own rest room I've certainly got a taste for adventure and wilderness.
Not only was I will filled with a sense of adventure, even the most fastidious of us enjoyed what these treks have on offer. They're all clearly marked (no room for mapping error) and do have frequent rest rooms (for our most precious of peeps).
How long is it: 13kms approx..
How long does it take: 6 hours approx..
How do I get there: There are train stations at either end along the Newcastle Service Line.
Difficulty: I'd say pretty hard!
How long is it: 2.5 kms (each direction) approx..
How long does it take: 1 hours (each direction) approx..
Difficulty: Not too bad, moderate to hard.
We did this on our second day of hiking, so I'm not sure whether it was more challenging because we were tired or because of its actually degree of difficulty.
How long is it: 28kms approx..
How long does it take: 7-10 hours approx. Depends if/how you wish to break it up.
I'd recommend staying the night so you're not too rushed. There are plenty of places along the way to stop and take a dip.
How long does it take: 3 hours (each direction) approx..
Mostly scenic, something you'd do if friends and family were coming to town and you didn't know what to do with them.
How long does it take: 3 hours approx.
Overall, very scenic and perfect for kids that require entertainment.
Follow on @whoislexiconnors on Instagram for all trekking pics and more.


Not the right property? Try these other listings 1390583?
The data relating to real estate for sale on this web site comes in part from the Internet Data Exchange Program of the Greater Erie Board of Realtors. Real Estate listings held by brokerage firms (licensees) other than Weichert Realtors include the name of the listing brokers.


text:
Browse > Home / Business, Commentary, Featured Stories, Headlines, Opinion, Politics / ANALYSIS: Despite decision, Firs Mobile Home Park will close unless law changes
ANALYSIS: Despite decision, Firs Mobile Home Park will close unless law changes
The Firs Mobile Home Park real tragedy is because of poor advice from those who guided the 170 mostly Hispanic residents.
Continually ignored by attorneys and political guidance for the residents is the fact the city had absolutely no choice to allow eventual closure of the facility, and because state law directs them to do exactly what they have done: allow Jong Park to redevelop his property to its "highest and best usage."
State law said all along – and still says – the old and crumbling mobile home park is not the highest and best usage of the land.
Potentially, the lawyers and supporters of Firs would have much better aided the people who have lived in the park for many years if they had gone to the Washington Legislature instead of the streets of SeaTac and its city hall.
The state could have helped, but the city was powerless to do so.
Just more time
King County Superior Court Judge LeRoy McCullough on June 7 gave the residents a three month extension when he ordered the city and the park's owner to redo some of the paperwork required for the park's closure, effectively reversing a portion of an earlier ruling and buying the residents additional time. The ruling sent the case back to the SeaTac Planning director for review.
Judge McCullough made it clear it was a technical delay and it is not a real win for the residents of Firs. They needed better help in the SeaTac Blogs' opinion.
"So that's where we are, I am reversing and remanding it so that the particulars that were adopted by the people of SeaTac can be followed, all right?" Judge McCullough ruled on June 7.
So most Hispanic residents have been under virtually certain eviction since October 2016. That is when park owner Jong Park said they must leave within a year because he was going to develop a hotel and apartments on the land.
Most of the mobile homes on the pads are old and cannot be moved, exacerbating the issue for the residents. Pads and the property near them are what mobile home owners rent from the park owner, and those rents have apparently been properly paid.
The real issue is the way a property owner, under state law, uses his land.
City hasn't jurisdiction
SeaTac, and all other cities in Washington state, have no authority to not follow state law. Only the Washington Legislature can make changes in state law. Some action on the matter has been made at recent legislative sessions, but nothing to change the rules governing the Firs decision.
Jong Park followed all the rules, said Judge McCullough. But with an apparent interest in ameliorating the residents' situation, he made some changes in its June ruling. That gave the residents a few more months before what appears to be the inevitable closure of the park.
The essential problem is what about the residents?
The judge said he was not requiring a new State Environmental Policy Act (SEPA) decision in the matter.
"As I've indicated, the … decision timeline passed and I'm not going to undo that. Nevertheless, the plan can be revised pursuant to proper input in a proper appeal period."
There were complaints that not all papers and required lists were property distributed to all of the residents.
Spanish not required
In addition, the major resident complaint seemed to be that the city did not publish their documents in Spanish that virtually all Firs' residents have as their first, often only, language.
"Spanish interpretation of some of the notices is encouraged, as is City facilitation of a certified interpreter, but I will indicate that that's not required," Judge McCullough said in his June 7 oral decision."
With other provisions earlier, Judge McCullough said 90 days will be enough time for the city to make its determination.
"Within 90 days, the owner will issue a mobile home park relocation plan," and the city will have 90 days to "approve that plan, deny that plan, or require some modification."
"If that plan is approved, the director may then follow with a certificate of approval and the process that's been followed before will be followed again."
That means the residents have to leave, under state law and with interpretation of Judge McCullough.
SeaTac had no choice
What bothers us is the way the residents were guided by political and legal overseers.
The law is clear and SeaTac city officials followed the law. There is absolutely no way the city of SeaTac could have acted in the manner that would have helped Firs' residents. The state law spells out ways these matters are handled.
Judge McCullough simply gave the outcome a bit more time to come to fruition.
It is the same result as it was in the beginning, it just took longer.
Where was the action in the Legislature to get the state laws on mobile home parks changed so the inevitable outcome could be different?
Political manipulators kept Firs' residents demanding the City of SeaTac should violate state law and deny Mr. Park's "best and proper use" of his property.
That would have just prolonged the inevitable.
But those same people giving resident's guidance in SeaTac did nothing about changing the state law.
What changes that were made in Olympia were not suggested or guided by South King County lawmakers because they were not asked to do so. We also note that one former city official and current state legislator kept urging Firs residents to demand city officials change the outcome of the Firs matter, even though she apparently could have been knowledgeable and helpful.
Firs' residents should have received better help and guidance.
Posted by Scott Schaefer on Friday, June 29, 2018 at 2:16 pm
Filed under Business, Commentary, Featured Stories, Headlines, Opinion, Politics · Tagged with analysis, city of seatac, commentary, editorial, firs mobile home park, Law, legal, News, opinion, Seatac
2 Responses to "ANALYSIS: Despite decision, Firs Mobile Home Park will close unless law changes"
Vicki Lockwood says:
Thank you Mr. Mayne for clarifying this situation. The City of SeaTac never had one ounce of responsibility for saving these homes. It was (or should have been) clear when they paid their monthly rent that they did not own the property beneath their mobile homes.
They knew they did not own the land when they acquired these residences. This is precisely why their homes sold for about 5% of what it would cost to buy an entry level home that included the property the home sits on. We all have to shoulder the risks associated with our decisions. They chose to risk the possibility of a relocation notice. When that notice was given, whose fault was it? No one's except those who were willing to accept that risk.
I am sorry that this happened to the residents, and I am angry that some individuals and groups used the residents to further their own selfish political causes while prolonging the relocation date that is inevitable.
Chuck D'Arielli says:
Gosh could the "SHE" you mention as former city official and current state legislator be the ex city council member and mayor Mia Gregerson? Who has done NOTHING but try to make the city council look bad since the people removed from office. And hopefully will be voted out of her current position in the next election.


text:
HomeHistoryThe Wild Places
The Wild Places
Publisher GRANTA BOOKS
The Wild Places quantity
Are there any genuinely wild places left in Britain and Ireland? Or have we tarmacked, farmed and built ourselves out of wildness?
In his vital, bewitching, inspiring classic, Robert Macfarlane sets out in search of the wildness that remains.
Be the first to review "The Wild Places" Cancel reply
Tinker Tailor Soldier Spy : The Smiley Collection
The Silent Patient : The record-breaking, multimillion copy Sunday Times bestselling thriller and Richard & Judy book club pick
Imprint Orion (an Imprint of The Orion Publishing Group Ltd )
First Little Readers: Guided Reading, Level C: 25 Irresistible Books That Are Just the Right Level for Beginning Readers Paperback – Illustrated, 1 October 2010 by Liza Charlesworth (Author)
Jumpstart reading success with this big collection motivating storybooks correlated with Guided Reading Level C. Most pages of these full-color storybooks feature just two or three lines of simple, repetitive text to help children learn to read with ease and confidence. Includes a tip-filled parent guide. A great value!
1. The Pie that Jack Made
2. Funny Foods
3. Round the Clown
4. Follow that Cat!
5. Counting Bugs
6. Lunch Crunch
7. Bubble Shapes
8. All About Dinosaurs
9. Make a Pizza
10. This Little Piggy
11. Tail Tale
12. Eight Arms are Great
13. Bat Facts
14. Snow Tracks
15. Lots of Legs
16. Polka-a-Dot World
17. The Teeny Tiny Man
18. Giant Friends
19. Hot Dog, Hot Dog
20. Squares are Everywhere
21. Surprises
22. Shadow Guessing Game
23. Monkey Business
24. Draw a Pig
25. Clay Play
– 25 full color, 8-page books
– 4-page parent guide
– Sturdy storage box
Publisher Flatiron Books
Publication City/Country New York
Edition Statement Reissue
Imprint ALLEN LANE
"What Do You Care What Other People Think?" : Further Adventures of a Curious Character
Kwame Nkrumah's Liberation Thought: A Paradigm for Religious Advocacy in Central Ghana Paperback – 1 August 2005 by Robert Yaw Owusu (Author)
The Gulag Archipelago : (Abridged edition)
Imprint Vintage Classics
Kwame Nkrumah: The Father of African Nationalism Paperback – 15 December 1998 by Professor David Birmingham (Author)
The first African statesman to achieve world recognition was Kwame Nkrumah (1909-1972), who became president of the new Republic of Ghana in 1960. He campaigned ceaselessly for African solidarity and for the liberation of southern Africa from white settler rule. His greatest achievement was to win the right of black peoples in Africa to have a vote and to determine their own destiny.
He turned a dream of liberation into a political reality. He was the leader of Ghana who urged Africa to shed the colonial yoke and who inspired black people everywhere to seek their freedom.
This revised edition of Birmingham's fine and accessible biography chronicles the public accomplishments of this extraordinary leader, who faced some of the century's most challenging political struggles over colonial transition. African nationalism, and pan-Africanism. It also relates some of the personal trials of a complex individual.
As a student in America in the late 1930s, Nkrumah, shy, disorganized, but ambitious and persistent, earned four degrees in ten years. For political training he then went to England. Nkrumah found writing difficult throughout his lifetime, but once back in his African homeland, with its oral heritage, Nkrumah blossomed as a charming conversationalist, a speechmaker, and eventually a visionary and inspiring leader.
Nkrumah's crusades were controversial, however, and in the 1960s he gradually lost his heroic stature both among his own people and among his fellow leaders. He lived his last years in exile.
This remarkable life story, which touches on many of the issues facing modern Africa, will open a window of understanding for the general leader as well as for graduate and undergraduate classes.
In this new edition, Birmingham also examines Nkrumah's exile and provides insight into the image of Nkrumah that has emerged in the light of research recently published.
Stephen Hawking The Theory of Everything by Stephen Hawking – Paperback
Stephen Hawking is widely believed to be one of the world's greatest minds: a brilliant theoretical physicist whose work helped to reconfigure models of the universe and to redefine what's in it. Imagine sitting in a room listening to Hawking discuss these achievements and place them in historical context. It would be like hearing Christopher Columbus on the New World. Hawking presents a series of seven lectures-covering everything from big bang to black holes to string theory, that capture not only the brilliance of Hawking's mind but his characteristic wit as well. Of his research on black holes, which absorbed him for more than a decade, he says, "It might seem a bit like looking for a black cat in a coal cellar". Hawking begins with a history of ideas about the universe, from Aristotle's determination that the Earth is round to Hubble's discovery, over 2000 years later, that the universe is expanding. Using that as a launching pad, he explores the reaches of modern physics, including theories on the origin of the universe (example, the big bang), the nature of black holes and space-time.
Kwame Nkrumah and Nkrumaism: The Essential Elements of the Ideology for All African People, Those at Home and Those Abroad Paperback
This work, "Kwame Nkrumah and Nkrumaism: The Essential Elements of the Ideology for All African People, Those at Home and Those Abroad", examines the ideology for African people. An ideology organizes a people, unifies them, and guides them toward collective action in the common pursuit of an objective. The only objective that ensures the complete and permanent liberation of all African people, those at home and those abroad, is Pan-Africanism: a unified, socialist Africa controlled by African people. Nkrumaism is the ideology, the blueprint, that will guide African people and their descendants toward that objective. Nkrumaism takes its name from Osagyefo Dr. Kwame Nkrumah, not because of any hero worship and not because he was the first to articulate a theory of liberation for African people, but because he "synthesized and advanced" the African liberation theory espoused by his Pan-African predecessors. Most importantly, he dedicated himself to ensure that this ideology was put into practice and thus became, unlike anyone before or since him, the foremost practitioner of the ideology for the African Revolution. Based on the history, culture and current reality of African people worldwide, Nkrumaism is "like a light on a dark night showing the way to follow." This work explores seven essential elements of Nkrumaism: identity, enemy, objective, philosophy, ideology, strategy and tactics. With our understanding of these elements, African people will forge the necessary ideological unity among a majority of our people at home and abroad in order to guarantee the successful building of Pan-Africanism. A Union of African Socialist States (UASS) is not only possible; it's on the horizon! Forward ever, Backward never!
The Strange Death of Europe : Immigration, Identity, Islam
Imprint Bloomsbury Continuum
Illustrations note No illustrations


text:
//#define LINUX / WINDOWS

#include "tetris.h"

int main(void)
{
	/* game start and main loop */

	shape current_shape;			// our shape
	shape_data * shapes[NUMBER_OF_SHAPES];	// used for randomizing
	int sleep;
	int init_lvl_speed;
	int level_speed;
	int time_to_move;	// controls when automatic movement happens
	int score_backup;
	int seed;
	bool is_time_to_render;

	#ifdef LINUX
		disable_echo();
	#endif

	// goto here when restarting the game (I know, I know)
	restart:

	sleep = SLEEP_MS;					// check for input 60 times a second
	init_lvl_speed = LEVEL_1_SPEED;		// wait 0.5 seconds to move down, also the number of levels
	seed = time(NULL);

	shapes[0] = □
	shapes[1] = &candy_cane_left;
	shapes[2] = &candy_cane_right;
	shapes[3] = &z_shape_left;
	shapes[4] = &z_shape_right;
	shapes[5] = &traffic_sign;
	shapes[6] = &stick;

	score = 0;
	score_backup = score;
	is_score_new = true;	// does score need re-rendering

	level = 1;
	is_level_new = true;	// does level need re-rendering

	time_to_move = 0;
	level_speed = init_lvl_speed;
	is_game_over = false;
	did_shape_hit_bottom = false;
	is_time_to_render = false;

	// screen coordinates for rendering
	render_row = 4;
	render_col = 40 - (FIELD_COLS) / 2;

	srand(seed);
	clear_screen();
	show_cursor(false);
	show_controls(render_row, 5);

	get_field();	// save backup of the active field
	initialize_shape(&current_shape, shapes[shape_rand()]);

	/* render the first frame on the screen
	 * from here on rendering happens on need only basis */
	initialize_field();

	next_shape = shapes[shape_rand()];
	is_next_updated = true;	// does the next shape screen needs re-rendering

	/* check if something that needs displaying
	 * has changed and print it */
	render();

	// main loop
	while (true)
	{
		sleep_ms(sleep);
		++time_to_move;

		if (kbhit())	// check if something was pressed
		{
			switch (getch())	// get what was pressed
			{
				case MOVE_LEFT:
					move(&current_shape, left);
					is_time_to_render = true;
					break;
				case MOVE_RIGHT:
					move(&current_shape, right);
					is_time_to_render = true;
					break;
				case ROTATE_LEFT:
					rotate_90d(&current_shape, LEFT);
					is_time_to_render = true;
					break;
				case ROTATE_RIGHT:
					rotate_90d(&current_shape, RIGHT);
					is_time_to_render = true;
					break;
				case FAST_DOWN: // DOWN_QUICKER times faster than the level speed
					level_speed /= DOWN_QUICKER;
					break;
				case QUIT_GAME:
					if (ask_player("Quit? (y/n)"))
					{
						move_cursor_xy(0, 0);
						show_cursor(true);
						exit_game();
					}
					break;
				case PAUSE_GAME:
					pause_game();
					break;
				case RESET_GAME:
					if (ask_player("Reset? (y/n)"))
					{
						reset_field();
						goto restart;
					}
				default:
					break;
			}
		}

		if (level_speed <= time_to_move)
		{
			// automatic movement
			move(&current_shape, down);
			is_time_to_render = true;
			time_to_move = 0;
		}

		if (did_shape_hit_bottom)
		{
			// check for full rows
			scan_field();

			if ((score_backup + LEVEL_UP <= score) && (level < MAX_LEVEL))
			{
				++level;
				is_level_new = true;
				score_backup = score; // store for comparison
			}

			initialize_shape(&current_shape, next_shape);
			next_shape = shapes[shape_rand()];
			is_next_updated = true;

			/* initialize_shape() checks for valid position
			 * if the position is not - the game is over */
			if (is_game_over)
				end_game();

			level_speed = init_lvl_speed - (SPEED_RESOLUTION * level);
			did_shape_hit_bottom = false;
			is_time_to_render = true;
		}

		if (is_time_to_render)
		{
			render();
			is_time_to_render = false;
		}
	}

	return 0;
}

void sleep_ms(int ms)
{
#ifdef WINDOWS
	Sleep(ms);
#else
	usleep(ms * 1000);
#endif
}

void get_field(void)
{
	/* backups the main field in field_buffer before
	 * updating field to a new state */
	copy_matrix(FIELD_ROWS, FIELD_COLS, field, field_buffer);
}

void reset_field(void)
{
	/* zero out both fields */
	int row, col;

	for (row = 0; row < FIELD_ROWS; ++row)
		for (col = 0; col < FIELD_COLS; ++col)
			field[row][col] = 0;

	copy_matrix(FIELD_ROWS, FIELD_COLS, field, field_buffer);
}

bool ask_player(char * msg)
{
	/* asks the player a yes or no question
	 * used for the quit and reset messages */
	char ch;
	int msg_len = strlen(msg);
	int i;

	// go above field
	move_cursor_xy(render_row - 1, render_col + FIELD_COLS / 2 - msg_len / 2);
	// print the message
	puts(msg);

	// get input without echo
	while ((ch = getch()) != 'y' && ch != 'n')
		continue;

	// delete message
	for (i = 0; i < msg_len; ++i)
	{
		move_cursor_xy(render_row - 1, render_col + FIELD_COLS / 2 - msg_len / 2 + i);
		putchar(' ');
	}

	if ('y' == ch)
		return true;

	return false;
}

void pause_game(void)
{
	/* pauses the game */
	char msg[] = "Paused";
	int msg_len = strlen(msg);
	int i;

	// move above field
	move_cursor_xy(render_row - 1, render_col + FIELD_COLS / 2 - msg_len / 2);
	// print pause message
	puts(msg);
	// get any key without echo
	while (PAUSE_GAME != getch())
		continue;

	// remote pause message
	for (i = 0; i < msg_len; ++i )
	{
		move_cursor_xy(render_row - 1, render_col + FIELD_COLS / 2 - msg_len / 2 + i);
		putchar(' ');
	}
}

void show_controls(int row, int col)
{
	/* prints the controls at row, col */
	move_cursor_xy(row, col);
	printf("%c - move left\n", MOVE_LEFT);
	move_cursor_xy(++row, col);
	printf("%c - move right\n", MOVE_RIGHT);
	move_cursor_xy(++row, col);
	printf("%c - move down faster\n", FAST_DOWN);
	move_cursor_xy(row += 2, col);
	printf("%c - rotate left\n", ROTATE_LEFT);
	move_cursor_xy(++row, col);
	printf("%c - rotate right\n", ROTATE_RIGHT);
	move_cursor_xy(row += 2, col);
	printf("%c - pause/unpause\n", PAUSE_GAME);
	move_cursor_xy(++row, col);
	printf("%c - reset\n", RESET_GAME);
	move_cursor_xy(++row, col);
	printf("%c - quit\n", QUIT_GAME);
}

void show_score(int score, int row, int col)
{
	/* prints the score at row, col */
	move_cursor_xy(row, col);
	printf("Score: %-5d", score);
}

void show_level(int level, int row, int col)
{
	/* prints the level at row, col */
	move_cursor_xy(row, col);
	printf("Level: %-2d", level);
}

void show_next(shape_data * sd, int row, int col)
{
	/* prints the next shape at row, col */
	int m_r, m_c;
	move_cursor_xy(row, col);

	puts("Next:");
	for (m_r = 0; m_r < MATRIX_SIZE - 1; ++m_r)
	{
		move_cursor_xy(++row, col);
		for (m_c = 0; m_c < MATRIX_SIZE; ++m_c)
			if (0 == sd->grid[m_r][m_c])
				putchar(' ');
			else
				putchar(sd->code);
	}
}

void exit_game(void)
{
#ifdef WINDOWS
	exit(0);
#else
	enable_echo();
	exit(0);
#endif
}

void end_game(void)
{
	/* game over */
	char msg[] = "Game Over";
	int msg_len = strlen(msg);

	move_cursor_xy(render_row - 1, render_col + FIELD_COLS / 2 - msg_len / 2 );
	puts(msg);

	show_cursor(true);
	// reset the cursor for the console
	move_cursor_xy(0, 0);
	exit_game();
}

int shape_rand(void)
{
	/* return a pseudo random number for indexing
	 * in the shape_data pointer array */
	return rand() % NUMBER_OF_SHAPES;
}

void initialize_field(void)
{
	/* create the field and print the first frame */
	int row, col, f_row;
	int row_rend, col_rend;

	row_rend = render_row;
	col_rend = render_col - 1; // one less because of border

	move_cursor_xy(row_rend, col_rend);

	// draw borders
	for (row = 0; row < FRAME_BUFF_ROWS; ++row)
	{
		putchar(BORDER);

		move_cursor_xy(row_rend, col_rend + FIELD_COLS + 1);

		putchar(BORDER);
		move_cursor_xy(++row_rend, col_rend);
	}

	for (col = 0; col < FRAME_BUFF_COLS + 2; ++col)
		putchar(BORDER);

	// draw first frame
	row_rend = render_row;
	col_rend = render_col;

	move_cursor_xy(row_rend, col_rend);
	for (row = 0, f_row = row + 1; row < FRAME_BUFF_ROWS; ++row, ++f_row)
	{
		for (col = 0; col < FRAME_BUFF_COLS; ++col)
		{
			if (0 == field[f_row][col])
				frame_buffer[row][col] = FIELD;
			else
				frame_buffer[row][col] = (char)field[f_row][col];

			putchar(frame_buffer[row][col]);
		}
		move_cursor_xy(++row_rend, col_rend);
	}
}

void render(void)
{
	/* checks for difference between field and field_buffer and draws only what's new
	 * also checks and handles if score, level, and next need re-drawing */
	int row, f_row, col;
	int row_rend, col_rend;

	row_rend = render_row;
	col_rend = render_col;

	move_cursor_xy(row_rend, col_rend);

	for (row = 0, f_row = row + 1; row < FRAME_BUFF_ROWS; ++row, ++f_row)
	{
		for (col = 0; col < FRAME_BUFF_COLS; ++col)
		{
			// see what's new
			if (field[f_row][col] != field_buffer[f_row][col])
			{
				// go to new content cell
				move_cursor_xy(row_rend + row, col_rend + col);
				// place in the frame buffer
				frame_buffer[row][col] = (char)field[f_row][col];

				// print
				if (0 != frame_buffer[row][col])
					putchar(frame_buffer[row][col]);
				else
					putchar(FIELD);
			}
		}
	}

	// check and draw HUD
	if (is_next_updated)
	{
		show_next(next_shape, render_row, render_col + FIELD_COLS + 2);
		is_next_updated = false;
	}

	if (is_score_new)
	{
		show_score(score, render_row + MATRIX_SIZE, render_col + FIELD_COLS + 2);
		is_score_new = false;
	}

	if (is_level_new)
	{
		show_level(level, render_row + MATRIX_SIZE + 2, render_col + FIELD_COLS + 2);
		is_level_new = false;
	}

	// backup the new state of field
	get_field();
}

void move_cursor_xy(int row, int col)
{
	/* move the console cursor to row, col */
#ifdef WINDOWS
	HANDLE h;
	COORD c;

	h = GetStdHandle(STD_OUTPUT_HANDLE);
	c.X = col;
	c.Y = row;
	SetConsoleCursorPosition(h, c);
#else
	printf("\e[%d;%dH", row, col);
#endif
}

void show_cursor(bool show)
{
	/* show/hide the console cursor */
#ifdef WINDOWS
	HANDLE h;
	CONSOLE_CURSOR_INFO inf;

	h = GetStdHandle(STD_OUTPUT_HANDLE);
	inf.dwSize = 25; // default size
	inf.bVisible = show;
	SetConsoleCursorInfo(h, &inf);
#else
	// ANSI escape
	if (show)
		printf("\e[?25h");	// show
	else
		printf("\e[?25l");	// hide
#endif
}

void clear_screen(void)
{
#ifdef WINDOWS
	system("cls");
#else
	// ANSI escape
	printf("\e[2J");
#endif
}

void scan_field(void)
{
	/* scans the field and removes full rows */
	int row, col;
	bool is_row_full;

	for (row = FIELD_ROWS - 1; row >= 0; --row)
	{
		is_row_full = true;

		for (col = 0; col < FIELD_COLS; ++col)
		{
			 if (0 == field[row][col])
			 {
				 is_row_full = false;
				 break;
			 }
		}

		if (is_row_full)
		{
			++score;
			is_score_new = true;

			int r1, r2, c;
			// move upper row to current row
			for (r1 = row, r2 = r1 - 1; r1 > 0; --r1, --r2)
			{
				for (c = 0; c < FIELD_COLS; ++c)
					field[r1][c] = field[r2][c];
			}

			// start from the bottom row again
			row = FIELD_ROWS; // one more because for loop will decrement
		}
	}
}

void copy_matrix(int rows, int cols, int m_s[rows][cols], int m_d[rows][cols])
{
	/* copies a source matrix to an equal size destination */
	int row, col;

	for (row = 0; row < rows; ++row)
	{
		for (col = 0; col < cols; ++col)
			m_d[row][col] = m_s[row][col];
	}
}

bool is_position_legal(shape * s, int (* coordinates)[2])
{
	/* checks if we can place the shape at coordinates */
	if ( (is_position_collision(s, coordinates)) || is_position_out_of_bounds(s, coordinates) )
		return false;

	return true;
}

bool is_position_collision(shape * s, int (* coordinates)[2])
{
	/* see if we are hitting something */
	int i, row, col;
	bool result = false;

	for (i = 0; i < SHAPE_ELEMENTS; ++i)
	{
		row = coordinates[i][0];
		col = coordinates[i][1];

		if (0 != field[row][col])
		{
			result = true;
			break;
		}
	}

	return result;
}

bool is_position_out_of_bounds(shape * s, int (* coordinates)[2])
{
	/* see if we are getting out of the field bounds */
	int i, row, col;
	bool result = false;

	for (i = 0; i < SHAPE_ELEMENTS; ++i)
	{
		row = coordinates[i][0];
		col = coordinates[i][1];

		if ( (row < 0 || row > FIELD_ROWS - 1) || (col < 0 || col > FIELD_COLS - 1) )
		{
			result = true;
			break;
		}
	}

	return result;
}

void move(shape * s, const int * direction)
{
	/* move shape in direction */
	int (* coords_backup)[2];		// backup the coordinates buffer address
	int curr_pos[2];				// field coordinates for the pivot point of the shape

	// backup original coodinates buffer
	coords_backup = s->field_coords;

	// remove current shape for now
	clear_current_coordinates(s);

	// switch to new buffer
	s->field_coords = buffer_shape_field_coords;

	// copy coordiantes
	copy_matrix(SHAPE_ELEMENTS, 2, coords_backup, s->field_coords);

	// add direction to pivot point
	curr_pos[0] = s->field_coords[0][0] += direction[0];
	curr_pos[1] = s->field_coords[0][1] += direction[1];

	// get new field coordinates
	calculate_field_coordinates(s, curr_pos[0], curr_pos[1]);

	if (!(is_position_legal(s, s->field_coords)))
	{
		// get back original coordinates
		s->field_coords = coords_backup;
		put_shape_back(s);

			// check if we were moving down
			if (1 == direction[0])
				did_shape_hit_bottom = true;

		return;
	}

	// commint
	copy_matrix(SHAPE_ELEMENTS, 2, s->field_coords, coords_backup);
	// get original coordinates pointer back
	s->field_coords = coords_backup;
	// put shape at new position
	place_shape_on_field(s);
}

void initialize_shape(shape * s, shape_data * s_data)
{
	/* fill the shape data structure with needed information */

	// copy the shape's gird
	copy_matrix(MATRIX_SIZE, MATRIX_SIZE, s_data->grid, buffer_matrix);

	// point to the copy
	s->grid = buffer_matrix;
	// point to the field coordinates buffer
	s->field_coords = shape_field_coordinates;
	// get the pivot point of rotation
	s->pivot = s_data->pivot;
	// get the thing that makes out the shape
	s->code = s_data->code;
	// find where the shape elements are in it's own grid
	get_shape_from_grid(s);
	// replace the 1s in the grid with it's original elements
	code_shape(s);
	// put it on the field
	create_new_shape(s);
}

void create_new_shape(shape * s)
{
	/* places the shape on it's starting position
	 * or ends the game */
	int row, col;

	row = 2; // always put pivot on second row

	// this makes the stick and the square appear in the middle
	col = (FIELD_COLS / 2) - (s->length / 2) + s->pivot[0] - s->pivot[1];

	// find the actual coordinates in the field matrix
	calculate_field_coordinates(s, row, col);

	if (!(is_position_legal(s, s->field_coords)))
		is_game_over = true;

	// if ok put it out there
	place_shape_on_field(s);
}

void get_shape_from_grid(shape * s)
{
	/* gets the coordinates for every shape element in it's own grid
	 * also the length of the longest part of the shape */
	int i, row, col, coord_row, len;

	// initialize length to 0
	s->length = len = 0;

	for (row = 0, coord_row = 0; row < MATRIX_SIZE; ++row)
	{
		for (col = 0; col < MATRIX_SIZE; ++col)
		{
			if (0 != s->grid[row][col])
			{
				/* write down the coordinates of each element of
				 * the shape in the matrix and count the length */
				s->coordinates[coord_row][0] = row;
				s->coordinates[coord_row][1] = col;
				++coord_row;
				++len;
			}
		}

		/* if the last row had more elements than the previous
		 * save that and reset the length counter */
		if (s->length < len)
			s->length = len;

		len = 0;
	}

	/* place the pivot point as the first coordinate
	 * this is very important */
	for (i = 0; i < SHAPE_ELEMENTS; ++i)
	{
		if (s->coordinates[i][0] == s->pivot[0] &&
			s->coordinates[i][1] == s->pivot[1])
			{
				int temp;
				temp = s->coordinates[0][0];
				s->coordinates[0][0] = s->pivot[0];
				s->coordinates[i][0] = temp;

				temp = s->coordinates[0][1];
				s->coordinates[0][1] = s->pivot[1];
				s->coordinates[i][1] = temp;
			}
	}
}

void code_shape(shape * s)
{
	/* replaces the 1s in the grid with
	 * the actual shape representation */
	int i, row, col;

	for (i = 0; i < SHAPE_ELEMENTS; ++i)
	{
		row = s->coordinates[i][0];
		col = s->coordinates[i][1];

		s->grid[row][col] = s->code;
	}
}

void clear_current_coordinates(shape * s)
{
	/* removes the shape from the field */
	int i, row, col;

	for (i = 0; i < SHAPE_ELEMENTS; ++i)
	{
		row = s->field_coords[i][0];
		col = s->field_coords[i][1];
		field[row][col] = 0;
	}
}

void put_shape_back(shape * s)
{
	/* places the shape back on the field */
	int i, row, col;

	for (i = 0; i < SHAPE_ELEMENTS; ++i)
	{
		row = s->field_coords[i][0];
		col = s->field_coords[i][1];
		field[row][col] = s->code;
	}
}

void calculate_field_coordinates(shape * s, int row, int col)
{
	/* finds out the actual field coordinates for every shape element */
	int i;
	int start_row, start_col;
	int field_row, field_col;
	int shape_row, shape_col;
	int zero_position[2];

	// used to divorce the shape from it's own coordinates
	zero_position[0] = s->coordinates[0][0];
	zero_position[1] = s->coordinates[0][1];

	// used to center (somewhat) when intializing
	start_row = row;
	start_col = col;

	for (i = 0; i < SHAPE_ELEMENTS; ++i)
	{
		shape_row = s->coordinates[i][0];
		shape_col = s->coordinates[i][1];

		field_row = start_row + shape_row - zero_position[0];
		field_col = start_col + shape_col - zero_position[1];

		// write down the field coordinates
		s->field_coords[i][0] = field_row;
		s->field_coords[i][1] = field_col;
	}
}

void place_shape_on_field(shape * s)
{
	/* place the shape in the field matrix */
	int i, field_row, field_col, shape_row, shape_col;

	for (i = 0; i < SHAPE_ELEMENTS; ++i)
	{
		shape_row = s->coordinates[i][0];
		shape_col = s->coordinates[i][1];
		field_row = s->field_coords[i][0];
		field_col = s->field_coords[i][1];

		/* extract the coordinates from the grid to their
		 * proper place on the field */
		field[field_row][field_col] = s->grid[shape_row][shape_col];
	}
}

void rotate_90d(shape * s, int direction)
{
	/* rotates the shape's grid at 90 degrees left or right
	 * around it's pivot point */

	/* 0, 0 pivot prevents rotation
	 * we don't need to rotate the square */
	if (0 == s->pivot[0] && 0 == s->pivot[1])
		return;

	int (* backup)[MATRIX_SIZE];	// backup the matrix buffer address
	int (* coords_backup)[2];		// backup the coordinates buffer address
	int curr_pos[2];				// field coordinates for the pivot point of the shape
	int shift_value[2] = {0, 0};	// shift values for the rotated shape
	int row, col;

	// copy the original grid
	copy_matrix(MATRIX_SIZE, MATRIX_SIZE, s->grid, buffer_matrix_copy);

	// backup the original grid address
	backup = s->grid;

	// backup the original coords buffer address
	coords_backup = s->field_coords;

	/* save current field position for the pivot point
	 * it's all we need */
	curr_pos[0] = s->field_coords[0][0];
	curr_pos[1] = s->field_coords[0][1];

	// point to a new matrix buffer
	s->grid = buffer_matrix_copy;
	// mark the pivot point
	s->grid[s->pivot[0]][s->pivot[1]] = PIVOT_POINT;

	// transpose
	for (row = 0; row < MATRIX_SIZE; ++row)
	{
		for (col = 0; col < MATRIX_SIZE; ++col)
			m_temp[col][row] = s->grid[row][col];
	}

	if (LEFT == direction)
	{
		// reverse cols - rotates left
		int row_temp;
		for (col = 0; col < MATRIX_SIZE; ++col)
		{
			for (row = 0, row_temp = MATRIX_SIZE - 1; row < MATRIX_SIZE; ++row, --row_temp)
			{
				s->grid[row][col] = m_temp[row_temp][col];
				m_temp[row_temp][col] = 0; // zero for later
			}
		}
	}
	else
	{
		// reverse rows - rotates right
		int col_temp;
		for (row = 0; row < MATRIX_SIZE; ++row)
		{
			for (col = 0, col_temp = MATRIX_SIZE - 1; col < MATRIX_SIZE; ++col, --col_temp)
			{
				s->grid[row][col] = m_temp[row][col_temp];
				m_temp[row][col_temp] = 0; // zero for later
			}
		}
	}

	// find pivot point
	for (row = 0; row < MATRIX_SIZE; ++row)
	{
		for (col = 0; col < MATRIX_SIZE; ++col)
			if (PIVOT_POINT == s->grid[row][col])
			{
				shift_value[0] = s->pivot[0] - row;
				shift_value[1] = s->pivot[1] - col;
				goto shift_shape; // exit the nested loop
			}
	}

	shift_shape: // shift the shape so we get rotation around the pivot
	for (row = 0; row < MATRIX_SIZE; ++row)
	{
		for (col = 0; col < MATRIX_SIZE; ++col)
			if (0 != s->grid[row][col])
			{
				m_temp[row + shift_value[0]][col + shift_value[1]] = s->grid[row][col];
				s->grid[row][col] = 0; // zero out for later
			}
	}

	// fill with the code for the shape
	for (row = 0; row < MATRIX_SIZE; ++row)
	{
		for (col = 0; col < MATRIX_SIZE; ++col)
			if (0 != m_temp[row][col])
				s->grid[row][col] = s->code;
	}

	// get new shape coordinates from it's grid
	get_shape_from_grid(s);

	// remove shape from field for now
	clear_current_coordinates(s);

	// point to new coordinates buffer
	s->field_coords = buffer_shape_field_coords;

	// get new field coordinates
	calculate_field_coordinates(s, curr_pos[0], curr_pos[1]);

	// check if we can actually place the shape there
	if (is_position_legal(s, s->field_coords))
	{
		// commint
		copy_matrix(MATRIX_SIZE, MATRIX_SIZE, s->grid, backup);
		copy_matrix(SHAPE_ELEMENTS, 2, s->field_coords, coords_backup);

		// switch back to original buffers
		s->field_coords = coords_backup;
		s->grid = backup;
		place_shape_on_field(s);
	}
	else
	{
		// switch back to original buffers
		s->field_coords = coords_backup;
		s->grid = backup;

		// get old shape coordinates
		get_shape_from_grid(s);
		// put the shape back in it's place
		put_shape_back(s);
	}
}

void print_m(int row, int col, int m[row][col])
{
	/* prints a row, col matrix for testing and
	 * debugging purposes */
	int i, j;

	for (i = 0; i < row; ++i)
	{
		for (j = 0; j < col; ++j)
			printf("%3d", m[i][j]);

		putchar('\n');
	}

	putchar('\n');
}

redpajama_set_name: RedPajamaGithub


text:
Canada's Felix Auger Aliassime reacts as he plays Australia's Alex de Minaur during the final Davis Cup tennis match between Australia and Canada in Malaga, Spain, Sunday, Nov. 27, 2022. THE CANADIAN PRESS/AP-Joan Monfort
Canada beats Australia to claim its first Davis Cup tennis championship
Canada has automically qualified for the 2023 Davis Cup Finals
Canada won its first Davis Cup title on Sunday, beating Australia behind victories from Denis Shapovalov and Felix Auger-Aliassime.
Montreal's Auger-Aliassime beat Australia's Alex de Minaur 6-4, 6-3 on Sunday to clinch Canada's first Davis Cup championship.
Shapovalov, from Richmond Hill, Ont., won Canada's first singles match — 6-2, 6-4 over Thanasi Kokkinakis — on Sunday.
Shapovalov had dropped both his singles matches this week and needed treatment on his back during a three-set loss Saturday in the semifinals to Italy's Lorenzo Sonego that lasted 3 hours, 15 minutes. But the left-hander moved quickly around the court Sunday, setting up angles to put away winners while racing to a 4-0 lead in the first set.
"(I am) definitely happy to get a singles win for the team. You know, I felt close the last two matches. The games have been good, but just wasn't able to get over the finish line," said Shapovalov.
Auger-Aliassime then finished off his superb second half of the season by completing a perfect week in Spain. He twice had kept the Canadians alive after Shapovalov dropped the opening singles match, and on Saturday he replaced his weary teammate to join Vasek Pospisil for the decisive doubles point.
This time, he made sure the doubles match wouldn't even be necessary.
"The emotions are tough to describe," said Auger-Aliassime. "We grew up together, dreaming about being on this stage, winning these types of matches, winning the Davis Cup. It's really a dream come true. That's what we play for. That's what sport is for. It was a great moment for us and for the country."
It was Canada's second Davis Cup final appearance in four years.
A Canadian squad featuring Shapovalov, Auger-Aliassime and Vasek Pospisil advanced to the 2019 final, where it lost 2-0 to Spain.
With the win, Canada has automatically qualified for the 2023 Davis Cup Finals.
With files from The Associated Press
Pro sportsTennis
Justin Trudeau talks allyship during appearance on 'Canada's Drag Race' spinoff
Alphonso Davies scores Canadian men's first-ever World Cup goal


text:
The School of Practical Philosophy, a not-for-profit educational corporation chartered by the Regents of the University of the State of New York, enjoys tax-exempt status as a Section 501(c)3 organization pursuant to the provisions of the Internal Revenue Code. Among the purposes listed in the School's corporate charter are:
• To study the great philosophical and religious teachings of the past and present
• To teach and demonstrate how these principles can be put to practical and effective use
• To promote the observation of the natural laws governing relationships among members of society
• To examine the principles, ideals, customs and traditions upon which the United States was established
• To sponsor a series of lectures on philosophy, economics and related subjects by distinguished guests
In practical terms, the School has two aspects: the educational side, concerned with the courses, studies and activities that are offered to the general public, students, and members of the School; and the organizational side, concerned with the provision of instructors, legal and regulatory compliance, administration and day-to-day operations.
All educational aspects are led by the senior tutor, who decides the direction and content of course material and studies, deals with the appointment of instructors or "tutors" as they are called and other related matters. The current Senior Tutor is Barry Steingard, who has held that position since 1996. The Senior Tutor appoints a Principal of the School who assists in the various activities and operations of the School. The current Principal is Russell Bosworth.
On the organizational side, the School is governed by a Board of Trustees that is elected from the Membership at the annual meeting of Members. There are currently a total of nine members of the Board of Trustees, each of whom serve for a term of three years. Three are elected at each annual meeting, making for a three-year rotating cycle, with the terms of three members ending each year and three seats open to election to the Board. From among the members of the Board, the Trustees elect for a two-year term a President, Vice-President, Treasurer and Secretary.
From time to time, the Board of Trustees adds to the School's Membership by selecting from those individuals who are attending the School's classes those students in good standing who have progressed satisfactorily in the courses of instruction offered by the School, who have implemented them in practice, and who have acted in furtherance of the goals and activities of the School.
There are presently 74 Members in the School.
HOWARD SCHOTT, President and Chairman of the Board, has recently retired as a teacher of chemistry, physics and philosophy in New York City schools for forty-six years. He was the headmaster of the Abraham Lincoln School from 1994 through 2004. Howard has been a member of the School since 1973. He was elected to the Board of Trustees in 1991 and he has served as its President since that time.
ALLAN MOLLER, Vice President, joined the School in 1968 and has served on its Board since 1973. He is an attorney in private practice who has extensive experience in both the public and private sector. He has acted as Counsel to the Board and School since 1973.
MARY BOSWORTH has been a member of the School of Practical Philosophy since 1992. She joined the Board of Trustees in 2015 and currently serves as Treasurer. Mary's background is in Business and Education. She has an M.B.A. in Marketing from Fordham University and a Master's Degree in History from Hunter College. Mary currently teaches in a New York City Independent School.
EARL MILLER, Secretary, was elected as a trustee in February 2009. He has been a member of the School since 1974. Mr. Miller recently retired as President of NIP Management Services, LLC, a financial and insurance services company, based in Woodbridge, NJ. He continues to consult on a part time basis, while expanding his role in the oversight of the School's Hudson Valley Branch.
ROBERT BLEJER has been a student of the School of Practical Philosophy since 1971. He has been a trustee since 1995 and a former Principal of the School.
RUSSELL BOSWORTH is founder and president of Bosworth Financial Services, a firm that provides financial planning and investment management services. He has been a member of the School since 1981. He is head of the Plato Studies program, and for the past seven years, as Principal of the School, he has been responsible for managing the School's administrative functions.
DEVANG GAMBHIRWALA has been a student of the School of Practical Philosophy since 1996, and was elected to the board in 2017. Devang's background is in investment management. He is currently a Principal and Portfolio Manager for QMA, a quantitative equity and multi-asset class investment manager owned by Prudential Financial, Inc. As a board member, Devang helps oversee investments for the school.
KATHY KIGEL has been a member of the School since 1973. She was elected to the board in 2015. She was a nursery school teacher for 18 years and then served as a Director for 20 years. Kathy has also taught Mathematics K-7th grade part time.
DONALD WIEGMANN is founder and president of Trinity Woodworking Company, a position he has held for more than twenty years. He has been a member of the School of Practical Philosophy since 1977. During this time he has overseen the School's branch in the Hudson Valley, managed the School's Wallkill property and served as a Trustee on the Board of Directors.


text:
Q: Switch input selection according to the time I am currently writing a small program that saves workers as "IN" in the morning and saves "OUT", I want the program to switch the radio to "IN" in the morning and disables "OUT". The same thing in the afternoon, switch the radio to "OUT" and disables "IN"

function EnableDisable() {

  var today = new Date();
  var curHr = today.getHours();

  if (curHr > 12) {
    option1.disabled = true;
    option1.disabled = false;
    alert("come here");

  } else {
    option1.disabled = false;
    option2.disabled = true;;
  }
};

    <input type="radio" class="form-control input-lg" name="status" value="in" id="option1" autocomplete="off" checked disabled="disabled"> In

    <input type="radio" name="status" value="out" id="option2" autocomplete="off" disabled="disabled"> Out

A: I recommend you split the functionality. You shouldn't try to handle multiplay states within the same method. Your project needs the following methods:

*

*Init(h) the function you call once when you startup the project

*CheckIn(input) the function that handles saving the checkIn time

*CheckOut(input) the function that handles saving the checkOut time

Remaining functionality like disabling the IN button when it's not been checked before 12 should be its own method and could be handled with an interval.
Eventually, you would get something like this:

const init = (h) => {
    const btnGroup = document.querySelector('.btn-group');
  const btnSucess = btnGroup.querySelector('.btn-success input');
  const btnDanger = btnGroup.querySelector('.btn-danger input');

  const isMorning = h > 6 && h < 12;
  const isAfternoon = h > 12 && h < 20;

  if(isMorning) {
    btnSucess.disabled = false;
    btnDanger.disabled = true;
  } else if(isAfternoon) {
    btnSucess.disabled = true;
    btnDanger.disabled = false;
  } else {
    btnSucess.disabled = true;
    btnDanger.disabled = true;
  }
}

const checkIn = (input) => {
  input.disabled = true;
  const today = new Date();
  console.log(today.toString());
}
const checkOut = (input) => {
  input.disabled = true;
  const today = new Date();
  console.log(today.toString());
}

const setup = () => {
    const hours = new Date().getHours();
    init(hours);

}

// Load
window.addEventListener('load', setup);

    <input type="radio" class="form-control input-lg" name="status" value="in" id="option1" autocomplete="off" onInput="checkIn(this)"> In

    <input type="radio" name="status" value="out" id="option2" autocomplete="off" onInput="checkOut(this)" disabled> Out

This is of course not perfect code. You should check within your checkOut() function if there is a checkIn time saved. I recommend saving this time by using new Date().getTime() for doing this.
This should be enough to give you a headstart. I want to point out that your system currently isn't that flexible. If for example there is something that has to be checked-IN after 12 then you might have a problem. You should work on your business case what should happen if a user doesn't follow the model traject you have build.
Good Luck

redpajama_set_name: RedPajamaStackExchange


13th Age is an "open" d20-based tabletop fantasy RPG similar in play to games like D&D 3.0/3.5 and Pathfinder.
What makes 13th Age different from these other games?
Icons - Powerful factions that exert their will on the realm in some way or another.
Relationships - A quantitative measurement of how much influence a given Icon exerts on a character.
Backgrounds - Instead of advancing individual skills, a character assigns points to jobs or positions they have held, which can help them with actions in-game.
One Unique Thing - Every player character in 13th Age has one unique thing about them that separates them from every other individual in the campaign's universe. This defines both the character and the universe by exclusion.
Dungeon World is a fantasy tabletop roleplaying game. Created by Sage LaTorra and Adam Koebel, the game uses the Powered by the Apocalypse engine originally designed for Apocalypse World and used in Monsterhearts and other games. The game has an old school style but coupled with modern rules.
Dungeon World uses the Powered by the Apocalypse engine to produce old school Dungeons & Dragons play. The game uses the same six ability scores used by D&D (Strength, Dexterity, Constitution, Intelligence, Wisdom, Charisma). Dungeon World also uses D&D character classes: the bard, cleric, druid, fighter, paladin, ranger, thief, and wizard.
Like other Powered by the Apocalypse games, actions in Dungeon World are called Moves. When a player character makes a move, the player rolls two six sided dice and adds the appropriate ability modifier. On a result of 10+ the move succeeds without complication. On a result of 7-9 the move partially succeeds or succeeds with a problem, allowing the GM to make a move of their own. On a result of 6 or less the move fails, giving the character XP and allowing the GM to make a move. Characters share general moves and gain unique moves from their class.
d20HeroSRD.com provides all of the Open Game Content rules necessary to play the 3rd Edition of the Mutants and Masterminds Superhero Roleplaying Game by Green Ronin Publishing. This includes everything but the two phrases "Hero Points" and "Power Points."Those phrases (and the associated mechanics) are replaced on this site by the phrases "Victory Points" and "Character Points."
...it is human-centric but cosmopolitan: The background of the OTU features a human-dominated universe. As such, the core rules primarily focus on development of human characters touching only briefly on a few non-human species. Despite the dominance of humanity, a large number of aliens was always implied to exist, inside and outside of Charted Space. There are numerous Traveller publications with rules and extensive information on playing aliens.
...includes much interstellar travel: Interstellar travel is through the use of the jump drive, which moves a ship through "jump space" a few light-years at a time. Each jump always takes about one week.
...has limited communication: There is no faster-than-light information transfer – meaning no ansible, subspace radio or hyper-wave. Communication is limited to the speed of travel.
...has a feudalist governmental system: Relatively slow communication speeds mean that local rulers cannot be directly controlled by central authority. Therefore, affairs are managed by independent nobility, who make use of classic titles such as Baron, Duke and Archduke.
...is a non-utopian future and has no "Prime Directive": The human race never evolves into a superior state. People remain people and continue to show courage, wisdom, honesty and justice, along with cowardice, deceit, and criminal behavior. Planets fight out internal wars, and capitalism is the major driving force of civilization. The same factors that shaped Earth shape the Traveller universe.
Swords & Wizardry is a simulacrum (also sometimes called a "retroclone") of the original edition of the 1974 fantasy roleplaying game written by Gary Gygax and Dave Arneson. Now everyone can play this ENnie award-winning re-creation of the original rules without paying hundreds of dollars for the original books.
These are the rules the classic megadungeon Rappan Athuk was designed for!
The Modern Path: Heroes of the Modern World" uses the Pathfinder Roleplaying Game as its base but then provides additional resources and options suitable for modern settings. This site is heavily linked to d20pfsrd.com throughout since not ALL mechanics needed to run or play in a game are provided by Game Room Creations. The parts of the rules that The Modern Path does not change are linked to and fully available via d20pfsrd.com.