text:
EDUCATION IS A WEAPON
"Education is a weapon whose effects depend on who holds it in his hands and at whom it is aimed." - Joseph Stalin
If you thought I was joking or too extreme in my discussions of the ongoing corruption of k-12 education; and how all the leftist "educational experts" like Bill Ayers intend to destroy the minds of your children in the era of hopenchange, then you need to read this. All of it.
What is happening in Minnesota is the evolution of education into leftist political indoctrination.
The health of our educational system--from K-12 through college-- is absolutely essential to the long-term welfare and competitiveness of the United States. American education used to be the strongest on the globe, and to the extent that remains true, it is because the hard sciences in this country (e.g., math, engineering, computers etc.) have been largely resistant to the political taint that runs rampant in the humanities. The latter subject areas, which include literature, philosophy, and history, have become unabashedly ideological over the last two decades; and the "social justice" advocates of today's collectivists have taken over our K-12 education system and are determinedly undermining American values with their politically correct, multicultural and anti-capitalist curriculum.
Make no mistake about it, what many teachers today are doing is indoctrinating their students minds into an unquestioning obedience to the collective. This they cannot do unless they also can manage to corrupt even the hard sciences with their dogma.
There can be no area where a child is allowed to think freely and without the proper political perspective. That is far too dangerous for the underly ideology they are promulgating.
Be sure to eat something yummy!
Here are some my favorite holiday dessert recipes. Consider them food for thought, as well as sustenance for the soul and body!
DEATH-BY-CHOCOLATE CAKE
(Surprise! A real WMD )
It's very simple to make and my family really likes it. I've been making it for several years now and probably originally got the recipe from some magazine, which one I've long forgotten (otherwise, I'd mention it). I prefer to eat it either unadorned, or with a high quality vanilla ice cream, but if you are a purist, you are free to use chocolate ice cream instead.
1 1/3 c. water
1 chocolate cake mix (get your favorite--I like devil's food chocolate cake)
Mix the above ingredients by hand (do not use electric mixer). Pour into greased 9x11 inch pan. Sprinkle 12 ounces Semi-Sweet Chocolate Chips on top (I like Hershey's). Bake at 350 degrees for 30-35 minutes.
Cool about 5 minutes. Poke holes in cake (it should still be warm) and spread with 1 large jar of Smuckers Hot Fudge Topping. ENJOY
AXIS OF EVIL FRUITCAKE
(In honor of all the ding-dongs and nutjobs out there)
1/2 C butter, melted
1 1/2 C applesauce
1/2 t cloves
1/2 t nutmeg
2 C flour
1 1/2 C golden raisins
1 C currants
1 C candied fruit mix for fruitcake
1 C pecans
1 C red candied cherries for fruitcake (one small container)
1 C candied pineapple chunks for fruitcake (1 small container)
Blend ingredients in a large bowl. Pour into 2 or 3 loaf pans (depending on the size of the pan) lined with wax paper. Bake in 350 degree oven for 1 hour, or until knife inserted in middle comes out clean. Let cool completely. Refrigerate for a day or two before serving. Can be frozen, too. Wrap well in foil and ziploc bags and store in the refrigerator or freezer. You can spike it with brandy, but the applesauce base keeps it moist. Enjoy.
Moral: Handled properly, a variety of candied fruits and nuts can be extremely delicious after they are all democratically mixed together and baked in an oven possessing a steady temperature.
THE BOO'S BREAD PUDDING
(For all the Angels out there!)
5-6 C day old Challah bread cubes
4 C scalded milk
1/2 C butter, melted and cooled
1 t nutmeg
1 C raisins
LEMON SAUCE
1/2 C white sugar
1/2 T cornstarch
1 C hot water
3 T lemon juice
1 T lemon zest
Preheat oven to 350 degrees. Spray an 8x11 inch casserole with nonstick spray. In a large bowl combine bread cubes, 1 C sugar, salt, cinnamon, and nutmeg. Mix in raisins. In another bowl, blend milk, melted butter, and eggs. Add wet ingredients to dry and mix together without turning bread mixture into mush. Pour mixture into prepared casserole dish. Place casserole dish into a larger baking pan. Pour hot water into baking pan about 1/2 up the side of the casserole dish, creating a water bath. Bake for 45- 50 minutes. Sauce: In a small saucepan, combine 1/2 C sugar, cornstarch, hot water, butter, lemon juice, and lemon zest. Cook on medium heat until bubbling and thickened. Stir constantly to avoid scorching. Serve with bread pudding.
Ricotta Cheese Pie
use 9 in. round layer cake pan. Sift together in a bowl:
1 C shortening (cut in with pastry blender until pieces are size of small peas. Sprinkle gradually over mixture, 1 t at a time
1-2 Tbs cold water
Mix lightly with fork after each addition. Add only enough water to hold dough together. Mix until egg is thoroughly combined and blended.
Combine:
3 C ( 1 1/2 lbs) Ricotta cheese
1/4 C flour
2 T grated orange peel
2 T grated lemon peel
Beat until foamy 4 eggs; add gradually 1 C sugar. Stir beaten eggs into Ricotta mix until blended and smooth. May add: 1 t cinnamon; 1/2 t cloves; 1/4 t nutmeg; or chopped walnuts. Pour into pastry. Bake at 350 degrees about 50-60 minutes (until pastry is golden brown). Cool on rack.
Pat's Apple Crunch Pie
½ C plus 2 T flour
½ C packed light brown sugar
1/3 C granulated sugar
1 stick (1/2 C) cold butter, cut in small pieces
7 medium to large tart apples (about 3 ¼ lb., such as Granny Smith, Pippins or Greenings)
½ C granulated sugar
3 T flour
½ t ground cinnamon
1/8 t ground nutmeg
Have ready a 9 inch pie plate and a cookie sheet. Place oven rack in lowest position in oven. Heat oven to 450 degrees. Line pie plate with pie crust. Flute or crimp edge. Crumb topping: Mix flour, sugars and cinnamon in a medium bowl. Cut in butter until mixture forms moist coarse crumbs that clump together easily. Filling: Peel, half and core apples. Cut in 1/8 inch thick slices by hand. Put into a large bowl. Toss with lemon juice to coat. Mix remaining ingredients in a small bowl. Sprinkle over apple slices; toss to coat. Layer apple slices in pie shell, mounding them higher in the center. Pat topping evenly over apples to form a top crust. Place pie on cookie sheet to catch drips. Bake 15 minutes. Reduce oven temperature to 350 degrees and bake 45 minutes longer or until a skewer meets some resistance when center of pie is pierced (apples will continue to cook after pie is removed from oven) and topping is golden brown. If topping is browning too quickly, drape a piece of foil over pie. Cool pie completely on wire rack before serving.
Have A Wonderful Thanksgiving Day!
Q: WHAT COULD POSSIBLY GO WRONG?
A: Oh, just about everything....
[Political Cartoons by Chip Bok ]
IT'S BARBIE IN A BURQA ! ISN'T THAT SWEET <3
Via Hot Air, I saw the report that Barbie has had a new makeover to make her even more mindless and sexualized! Burqa Barbie has the distinction of being the absolute ultimate sex toy, in that it's very existence completely degrades womanhood in a way even Bimbo Barbie never could.
Welcome, Barbie, to the wonderful world of Sharia!
Remember this news article about a young girl in Iran who was accused of "crimes against chastity" and executed? This is one of the many career options in store for the Burqa Barbies under the vicious misogyny of Islam. Just imagine how many girls we don't read about or hear about, who suffer the same fate as that 16 year old in Iran?
Back in 1997, a group called Aqua came out with a catchy little tune that I found amusing. The song was called "Barbie Girl" and it lampooned the mindless Barbie bimbos who seem to have no real existence or sense of self without a male in their life. Of course, if the Barbie doll lives in a free society, she can choose to function on the bimbo level; or she can choose to break free of the Barbie stereotype (like Elle Woods in the movie Legally Blonde).
Well, now we can imagine Burqa Barbie Girl in an Islam World, where the only way to "break free" is through death.
BARBIE AND KHALID IN AN ISLAM WORLD
[- Hi Barbie!
- Hi Khalid!
- You shouldn't be talking to me, you know?
- I know, Khalid!
- Now you will have to die because you have deliberately aroused me and shamed your family.
- Ha ha ha ha! ]
I'm a Muslim girl in an Islam world
Life in hijab, simply so fab!
You can't see my hair, you don't even know I'm there
Try to escape, and I'd be raped
Just a glimpse of skin, drives our men to sin
They're afraid, you see, of my sexuality
I'm a veiled ghostly girl in a fantasy world
Made by men who are frightened by my sex.
I'm a drudge, with no grudge, cause my feelings don't count
I can't work, I can't drive, I can't even go out.
You can hide me away
Cause it makes you feel so manly
You can beat me at night
So your honor works out just right
Let's be honest, why be modest? ha ha ha, yeah
If I get hit, I provoked it-- oooh, oooh, ooh
If you feel shame, I am to blame-- oooh, oooh, oooh
Make me hide, make me pray, do whatever you please
I am worth half a man, that's what Allah decrees
All I do is bring shame; I am always to blame
If a man goes insane with desire
Men are leaders, girls are breeders-- oooh, oooh, ooh
[- Oh, Khalid, I'm having so much fun!
- Well, Barbie, you're alone with me and that makes you an evil temptress.
- Oh, please, can I be a suicide bomber?]
IMPROVING OUR RELATIONS IN THE WORLD ?
I don't think so.
"The astonishing disregard with which Mr Obama treats Britain has been made clear by his deliberations over the Afghan issue. As he decides how many more troops to send to Afghanistan — a decision which will fundamentally affect the scope of the mission — Britain is reduced to guesswork. The White House does not even pretend to portray this as a joint decision. It is a diplomatic cold-shouldering that stands in contrast not just to the Blair–Bush era, but to the togetherness of the soldiers on the ground... There will, though, inevitably come a time when Obama discovers who America's true friends really are. Sooner or later he will have to deal with the considerably more taxing issues of Islamist militancy, rogue nuclear states and other tangible threats to the West's security. At that point, Obama will discover a simple but essential truth. The world divides between those who support American values of freedom and democracy, and those who seek to destroy them. Few nations have been more committed to supporting those values with both blood and treasure than Britain. This country, and especially those British troops fighting alongside their American counterparts, deserve far better than this president's disregard."
All Obama has done is ingratiate himself and us to tyrants and offend important allies. This goes by the name of "smart" diplomacy. Must be some new meaning of the word "smart" that I've never heard of....
(h/t The Corner)
UPDATE: Oh, BTW, here's the delusional President who baldly states, "We've restored America's standing in the world."
Could somebody please give this guy a clue?
COMMON CAUSE WITH THEOCRATIC, HOMOPHOBIC, MISOGYNISTIC PSYCHOKILLERS
I just happened to notice this today from Andy McCarthy at The Corner:
A panel of the Second Circuit U.S. Court of Appeals has upheld the convictions of my old adversary, Lynne Stewart, for providing material support to terrorism — i.e., helping the Blind Sheikh run his Egyptian terrorist organization from U.S. prison, where he is serving a life-sentence. The convictions and sentences of the other two defendants were also affirmed. Lynne, who has been out on bail since being convicted eons ago, has been ordered to surrender to begin serving her sentence.
This is simply unbelievable! All this time I thought this leftist terrorist-sympathizer was in jail, and instead, she's been galavanting around free to continue to create mischief and proudly proclaim her treason.
Way back in 2005 I wrote a post that asked, "How do you solve a problem like Lynne Stewart" and basically said the following:
Lynne Stewart reminds me of a song from The Sound of Music-"How do you solve a problem like Maria? A fliberty gibbet a will-o-the wisp...." Andrew McCarthy asks himself this question, too and he grapples with Lynne Stewart, the PERSON, versus Lynne Stewart, the Lefty Kook, recently convicted of aiding and abetting terrorism. He knew her, worked with her and had a very real sense of her decency. Yet, he was able to say:
There is something wrong with Lynne's brain. Obviously, she loves being a darling of the loony Left — a Left so loony it now makes common cause with theocratic, homo-phobic, misogynistic psycho-killers, since, after all, they too hate America. Nestled among this element, her humanity synapse disengages, such that she can spout about faraway terrorist kidnapping victims and other unknown civilians as legitimate targets with all the contemplative depth of a dinner companion asking you to pass the salt.
But she is not without humanity. What has happened to her here is very far from a tragedy — a tragedy is when someone unwittingly crosses the path of Abdel Rahman's ilk and is ruthlessly murdered for the great offense of being an American, or a Jew, or a Christian, or anything other than an Islamic militant. This is what Lynne Stewart promoted, and for that she must pay dearly.
So, what is it that is "wrong with Lynne's brain"? If we could figure it out, perhaps we could understand all those others on the Left who "make common cause with theocratic, homo-phobic, misogynistic psycho-killers". Is it just because they are anti-American, anti-Capitalists? Or is being anti-American, anti-Captitalists another symptom of the brain disorder?
I think it is the latter. Let me explain. In a previous post, I discussed how one goes about enabling terror. Now I propose to explain why someone would do that, and why. Some of this I touched on when I described a classic case of hysteria .
As in a case of hysteria, or a conversion disorder--where the symptoms are not intentionally produced, but are the result of unintentional--or unconscious-- motives, the Lynne Stewarts of the Left are not deliberately being obtuse. They aren't even deliberately evil. They truly don't see anything wrong with being a nice person and kindly grandmother, and simultaneously thinking that a terrorist attack in Indonesia where children might be killed is a wonderful thing. This kind of cognitive dissonance is the result of a psychological defense mechanism called "repression". Repression is necessary in the expression of a conversion disorder where some physical symptom (blindness, paralysis, pain) becomes the focal point; so that the individual is able to avoid the unacceptable thought or feeling. For that to occur, the unacceptable thought or feeling must be ruthlessly stashed away from awareness, or repressed.
But symbolic physical symptoms like blindness are not the only way that repression can be manifested. Another, and much more frequent psychological strategy to rid one's self of the unacceptable thought or feeling is to display a contradictory and often unbelievable (to an outside observer, anyway) dissassociation, or disconnect, between a person's thoughts and feelings on the one hand; and behavior on another.
This is why so often the Lynne Stewarts present an unsolvable puzzle to an outside observer. How can they argue for Peace and behave violently or even encourage/enable violent behavior ? How can they demand Free Speech but simultaneously suppress it in others? How can they be for "diversity" and squelch any dissenting opinions? How can they claim to be for freedom and democracy, and make common cause with those who would destroy it? The catalog of paradoxes goes on and on.
The key is to focus on what the Lynne Stewarts DO, not on what they SAY. On BEHAVIOR, rather than SPEECH. They can yell slogans of LOVE, PEACE, and FREEDOM; but if their actions are HATE-FILLED, VIOLENT, and support OPPRESIVE REGIMES, they are using repression to hide the true feelings that underly their actual behavior.
Often, repression requires stronger and stronger psychological defenses be erected as time goes by and reality keeps up its steady knocking on their door. So, repression often leads to projection and denial. (see here for a discussion of all the psychological defense mechanisms).
When confronted with irrefutable proof of their own actions and consequences, such people must eventually resort to a complete denial of reality. Or, alternatively, they will project the blame for their behavior onto another person or group ("It is the fault of the Israelis" or the "Jews", or the "Blacks"--and more recently, of "Bush", "Cheney" and so on ad nauseum) . Or, they may utilize both mechanisms.
The level of self-awareness or insight into themselves is abysmally low. All available psychological defenses are rallied to prevent the acceptance of the fact that they did something bad or wrong. It MUST be (in Lynne Stewart's case, for example) the government, the U.S., Capitalism or President Bush, that is to blame!
How do you solve a problem like Lynne Stewart? Therapy won't help. She is too far gone to spend any time accepting that her own behavior has led to her current situation. Her self-identity is not likely to be shaken by events in the real world. Those events can and will be twisted so that it only confirms her world view. Her sense of herself must be preserved at all costs. Even if it means the death of thousands.
Just send her to jail where she can't do any more harm. And stop feeling sorry for her. She's made her choice.
So, let's move on to other lefty kooks and terrorist enablers who are now running our country at the highest levels. McCarthy makes the connection and goes on to say in his post about Stewart:
By the way, since my topic in today's column is Attorney General Holder's sudden concern over delays in the military commission system, it's worth pointing out that, for conduct that started around 1999, Stewart was indicted in 2002; her trial did not begin until mid-2004 and took about eight months; after that, they dawdled for over a year before finally imposing sentence in October 2006; now, a decade after the conduct, seven years after arrest, four years after trial, and three years after sentence — and mind you, she's been free on bail since 2002 — the appeal has at long last been decided, and it has resulted in . . . a remand for further sentencing proceedings. And, after they someday occur, there will surely be another trip to the Second Circuit, and then an appeal to the Supreme Court. After that, the habeas corpus petitions start . . .
From the very first day of the Obama Administration (was it only 300 days ago?? It seems like forever), we have seen a concerted push for complete and total denial about Islamic fanaticism behind 9/11; behind the likes of Major Hassan; and the danger that Islam extremism poses to the free world. This denial has taken the form of policy after policy that ""make(s) common cause with theocratic, homo-phobic, misogynistic psycho-killers" and elevates them morally, intellectually, and legally so that they can be cheerfully given all the rights, perogatives and privileges of American citizens. These lefty kooks claim that this is to preserve "the rule of law", but then in the same breath insist that there is absolutely, positively no possibility in hell that KSM and others could ever in a million years possibly be acquitted.
What a bizarre perspective that displays about the rule of law. I always thought that the rule of law meant that a person was innocent until proven guilty. Lefty kooks appear to believe that the person is guilty and can't possibly be proven innocent no matter what.
Now, I happen to agree that KSM is guilty and that there is little question about his involvement in the 9/11 attacks on this country. I also happen to think that war criminals like him should have every iota of information squeezed out of him that might save lives; and that there is every moral, intellectual and historical argument that he then should be taken by the military and summarily executed.
As for Lynne Stewart, her real crime has always been treason. Her behavior has been and remains inexcusable. And all the authorities have done is to dither about her actions for years.
When are we going to stop giving these theocratic, homophobic, misogynistic psychokillers--and their kooky leftist enablers--ready-made national platforms on which they are free to spew their sick and hate-filled messages?
When are we going to break free of the national psychological denial and repression that keeps us from decisively dealing with reality?
OBAMA PC CLOWN CORPS HYMN
[Political Cartoons by Lisa Benson]
THE OBAMA PC CLOWN CORPS HYMN
(sung to the tune of the "Marine Corps Hymn")
From the Halls of Academia
To the Shores of Hope and Change;
We wont't fight our country's battles
Cause war is so deranged;
But we'll fight for social justice
And to spread the wealth around;
We are proud to claim the title of
An Obama PC Clown.
Our progressive cause is all the rage
From dawn to setting sun;
And the dilly-dally dithering
Hides the barrel of our gun;
In the snow of far-off northern states
And in sunny southern towns;
You will find us always on the job--
Obama's PC Clowns.
Here's a toast to our great CIC
Who we are proud to serve!
And we'd stand up for our way of life
If we only had the nerve;
If Pelosi and the Democrats
Ever doffed their little crowns;
They would find their back are covered by
ONE BIG FATHEAD
I have always thought that when you don't have a clue about what you are doing, the best way to disguise this is to call a meeting. Make sure you name it something big, important, and fancy--like a "December Jobs Summit" or something. It will delay the widespread appreciation of your ignorance.
December might well be a jobs trough, as opposed to a summit; but since the real reason for calling a meeting on the issue to disguise the fact that "the President hasn't got a clue how to grow the economy," it doesn't really matter.
Consider the following quotes:
"If you had to identify, in one word, the reason why the human race has not achieved, and never will achieve, its full potential, that word would be "meetings." ~Dave Barry, "Things That It Took Me 50 Years to Learn"
or, better yet, from one of my favorite thinkers:
People who enjoy meetings should not be in charge of anything. ~Thomas Sowell
Or, the ultimate description, from Carl Jung:
A collection of a hundred Great brains makes one big fathead.
A PARTICULAR AMERICAN MADNESS
This article by John Podhoretz has it exactly correct: (hat tip: Kent S):
Can it really be that anybody seriously believed a career Army psychiatrist would deal with the "stress" of his own deployment to a war he opposes by opening fire and shooting 43 people? Evidently, the answer is yes, as Noah Pollak and others have noted. This is a particular American madness, as far as I can tell, the invocation of ludicrous pop psychology to explain acts that can only properly be described as evil.
This is more of the therapeutic psychobabble that I have written about before, and to put it bluntly, such nonsense is destroying psychiatry's credibility as a discipline. I wrote then:
"The therapeutic sensibility", or what I call "therapeutic psychobabble", is not actually therapeutic (i.e., it does not lead to healing) in the least.
In fact, this sensibility often becomes the major impediment that prevents patients with serious emotional problems from taking control over their lives. And, for individuals who aren't patients (but soon will be, most likely) it reflects a passive world view, where a person is the helpless victim of forces outside their control.
The key aspects of this psychobabble include an overemphasis on "self-esteem" at the expense of self-control and personal responsibility; an attitude that practically worships "feelings" at the expense of reason and truth; a fundamental misunderstanding about stress and the role of stress in life (i.e., that "all stress is bad", for example; and failing to appreciate that stress, when it is acknowledged and dealt with in healthy ways can enhance maturity and psychological health); and finally the glorification of victimhood and the celebration of unhealthy narcissism and the narcissists who exhibit it.
Case in point. Podhoretz also grasps the reason why this particular idiocy is being put forward with such enthusiasm now:
The "stress did it" claim has nothing to do with Hasan anyway; it's a cover for implicit attacks on the McChrystal strategy for deploying significant additional troops to Afghanistan. That's the true purpose of the pop-psych analysis anyway; it's a way of removing the singular meaning from an event and converting into something more all-purpose.
Something much more "all-purpose"--like narcissitically turning the conversation to a topic that will help Dear Leader rationalize his supposedly in-depth,careful, already determined, future decision about the war in Afghanistan; which, when it finally becomes public will not quite be at all that it seems.
REMEMBER THE VICTIMS OF COMMUNISM
As the world--including the US--begins to flirt with this toxic ideology yet again, it's more important than ever to remember the millions of victims who suffered in these Marxist "utopias." Somehow, the memory of communism's virulence seems to be fading in the new, improved postmodern political world.
From Reason TV:
and, as a companion to the above, here is Reagan's Berlin speech:
I truly wish we Americans had even one-tenth of the vision, moral clarity, and courage of President Reagan in our current leaders....
UPDATE: Reading Wretchard today, I found this relevant quote from Joe Loudon:
Now we have a new face of America. We elected Barak Obama, and he does not feel that moral duty to you as Reagan did, at least not enough to stand up to the shrill American voices that hate the American military. So he will not be there on November 9th to Celebrate the Fall of the Berlin Wall. I do not think he sees it the way you do. He will also not participate in the festivities on the campus of my College. Westminster College, in my State of Missouri, is where the great Allied leader Winston Churchill gave the Iron Curtain Speech. He told the World how millions of our fellow human beings were being stuffed into the cage, the very cage I was privileged to help dismantle. He had a way with words. On the campus of another American College he gave his shortest speech "Never, ever, ever, ever, ever, ever, ever give in." But I digress.
Our new President believes that you are on your own. As the KGB agent-turned-billionaire, puppet master of the Russian Prime Minister, Vladimir Putin conducts war games of an assault on Poland, Obama has decided to tear down the American missiles from Poland. We knew that he cared less as he promised to remove our protection from the Iraqi people. 150 of them were slaughtered just this week. He really wants to find a way out of Afghanistan and pull our soldiers out just as you are pulling your U.N. workers out right now.
So my new President will not be there with you, like John F. Kennedy and Ronald Reagan were there for you. He has other priorities. I really wish I could be there to celebrate with you. Unfortunately, with the passing of time, I have five children, our economy is bad, and I too, have other priorities. So I am sorry that my President, the American face to the World will not be there for you. I feel just a little better knowing that you asked America to give him to you. I hope you like him.
HYPOTHETICAL ATROCITIES AND HYPOTHETICAL VICTIMS: Psychological Displacement and the Fierce Urge to Be Politically Correct.
I must agree with Mark Steyn on this insanity:
The Headline of the Day, from the BBC:
Shooting Raises Fears For Muslims In US Army
Really? Right now the body count stands at:
Non-Muslims 13
Muslims 0
I was reading from some of this kind of coverage on the Rush Limbaugh show today. Even if you take the view that it would be grossly unfair if all Muslims were to be tarred by Major Hasan's brush, it is, to put it at its mildest, the grossest bad taste to default every single time within minutes to the position that what's of most interest about an actual actrocity with real victims is that it may provoke an entirely hypothetical atrocity with entirely hypothetical victims. I refer you yet again to this note-perfect parody:
British Muslims Fear Repercussions Over Tomorrow's Train Bombing
This kind of media coverage is really a form of mental illness far more advanced than whatever Major Hasan's lawyers eventually enter in mitigation, and apparently pandemic, at least among the western media.
On a related note, from David Horowitz: "Is everybody out of their mind?"
Bonus: "We're the ones who love death - our own."
However, I would disagree in that this is not formal mental illness; though it is insanity. It is more precisely called an severe neurosis, a term that has gone out of favor in contemporary psychiatry, but which very adequately describes the kind of thinking that runs rampant in these days of political correctness--a form of deranged thinking designed to protect the individual from the awareness of imminent danger (think of the paralysis of deer in headlights). Specifically, it is a type of neurotic defense mechanism that serves to deny reality; and I have talked about it many times on this blog.
It is called psychological displacement, and it is an attempt to avoid an unpleasant and frightening truth by substituting something (or someone) that is less threatening. Bush Derangement Syndrome a form of psychological displacement; the kind of thinking that maintains that Christianity and Judaism are just as violent as Islam is a form of displacement; the irrational fear that Christians intend to foist a theocracy on the U.S. is also a form of psychological displacement.
Displacement: The separation of emotion from its real object and redirection of the intense emotion toward someone or something that is less offensive or threatening in order to avoid dealing directly with what is frightening or threatening
Here's are two cartoons that describe the pathology exactly:
[other cartoons by Paul Nowak here)
(BTW, though I am really busy getting ready for the move and doing extra work before I leave Ann Arbor, I will, from time to time, put up a post when I can't stand to be silent about events. My sincere condolences to the Ft. Hood victims and their immediate and extended families.)
THE LAST ROSES
I can't resist posting a picture of the last three roses I picked today from my rose garden. We are expecting nighttime temps below freezing for the next week, so I don't expect to see any more blooms this season. The rose garden I plant when I get to California will be able to bloom all year long....can't wait!
COMMON CAUSE WITH THEOCRATIC, HOMOPHOBIC, MISOGYNI...
HYPOTHETICAL ATROCITIES AND HYPOTHETICAL VICTIMS: ...


text:
How to Make a Simple IC 555 PWM Circuit
What is a Pulse or a Clock Signal
IC 555 as an Astable Multivibrator
IC 555 as a Pulse Width Modulator
The IC 555 is well known for its features which become readily suitable for an unlimited range of electronic circuit applications. Though the chip is fundamentally designed for generating time delays and oscillations periods, it can be modified or manipulated to do a number of other functions. Some examples of this IC being used for other applications are voltage monitors, automatic battery chargers, comparators and PWM and ramp generators.
The present article deals with the chip configured for pulse dimensioning purposes. Primarily here we are discussing how the IC 555 can be used as Pulse Width
Modulator (PWM).
The following discussion is especially made easy, keeping the newbies in mind. These circuits can be easily built by them for testing and analysis purposes.
All electronic circuits engaged in generating or shaping voltages require a pulse signal for the necessary operations. These pulses are mostly in the form of square wave signals also called clock signals.
The above square wave signal is normally symbolized as indicated in the diagram. In this type of pulse, the voltage rises suddenly from zero (shown by the red section), then holds for a moment (shown by the green section), and then suddenly falls back to zero (shown by the blue line). The cycle continues generating a string of these waveforms, also termed oscillations or frequency. The spacing between these pulses is normally equal or simply, the waveform is uniform throughout.
The green section is the period for which the output of the IC remains high; the black section is the time period for which the output of the IC remains OFF or at zero voltage level. These time delays are called mark and space ratio respectively, which can be varied through external resistors with a 555 IC. The ratio of this mark and space delay is identified as the duty cycle of the IC.
Though we can easily vary the frequency or the number of pulses per second using an astable multivibrator and its associated resistors and capacitor network, varying the width of the pulses can be complex.
Due to the great versatility of the above IC, it can be wired up as an astable as well as a pulse modifier and the two stages can be integrated to form an excellent PWM circuit.
The diagram shows how a 555 IC can be used as an astable multivibrator circuit for generating square wave clock pulses. In this mode the pin 2 and 6 of the IC joined which forces the IC to go on a self oscillating mode, hence it's also called free running multivibrator. The ratio of the resistors R1 + R2 determines the duty cycle of the oscillator which is the percentage of period for which the output of the IC may stay ON or OFF. The capacitor alternately charges through R1 + R2 and discharges R2. Varying its value directly affects the output frequency, hence it can be suitably adjusted for acquiring a particular specified frequency rate.
As the definition suggests, the circuit is intended for modulating the width of the input applied pulses at its output.
Referring to the diagram, the IC can be seen wired up in the usual monostable mode, however if the trigger input pin #2 is now fed with a train of pulses, the width of these pulses available at its output can be simply modified through a control voltage applied at pin #5 of the IC. This transforms the design into a standard IC 555 PWM circuit stage.
The above two modes of operation can be staged together for obtaining an ideal PWM controlled output, which can be implemented for many different practical applications, here it's used as a DC motor speed controller circuit.
The figure shows the entire details of the wiring connections between the stages. The circuit functioning can be understood with the following points:
The AMV circuit wired up around IC1 generates a constant 100 Hz frequency, which becomes triggering pulses for the next PWM stage configured around another 555 IC2. This frequency also becomes the frequency of the PWM signals.
A continuously varying voltage is applied to the pin #5 of IC2 whose level directly corresponds to the width of the acquired PWM signals at its output.
The single PNP transistor and its associated components act as a current source, also forming sawtooth pulses across C3. This sawtooth waveform is compared against the applied control voltage at pin #5 for generating the PWM output signals.
The above PWM output is applied to a Darlington transistor which responds to these pulses and translates the information into varying speed levels of the connected motor.
LM 555 Datasheet - http://www.national.com/ds/LM/LM555.pdf
Authors Own Experience
Images Drawn by the Author
A Battleship Firing Broadside Salvos: The Most Fearsome Artillery Strike in History
Heat Resistant Materials for Home and Industrial Applications

redpajama_set_name: RedPajamaCommonCrawl


text:
/** @addtogroup lwext4
 * @{
 */
/**
 * @file  ext4_extent.c
 * @brief More complex filesystem functions.
 */

#include <ext4_config.h>
#include <ext4_extent.h>
#include <ext4_inode.h>
#include <ext4_super.h>
#include <ext4_blockdev.h>
#include <ext4_balloc.h>

#include <string.h>
#include <stdlib.h>

uint32_t ext4_extent_get_first_block(struct ext4_extent *extent)
{
    return to_le32(extent->first_block);
}

void ext4_extent_set_first_block(struct ext4_extent *extent, uint32_t iblock)
{
    extent->first_block = to_le32(iblock);
}

uint16_t ext4_extent_get_block_count(struct ext4_extent *extent)
{
    return to_le16(extent->block_count);
}

void ext4_extent_set_block_count(struct ext4_extent *extent, uint16_t count)
{
    extent->block_count = to_le16(count);
}

uint64_t ext4_extent_get_start(struct ext4_extent *extent)
{
    return ((uint64_t)to_le16(extent->start_hi)) << 32 |
        ((uint64_t)to_le32(extent->start_lo));
}

void ext4_extent_set_start(struct ext4_extent *extent, uint64_t fblock)
{
    extent->start_lo = to_le32((fblock << 32) >> 32);
    extent->start_hi = to_le16((uint16_t)(fblock >> 32));
}

uint32_t ext4_extent_index_get_first_block(struct ext4_extent_index *index)
{
    return to_le32(index->first_block);
}

void ext4_extent_index_set_first_block(struct ext4_extent_index *index,
    uint32_t iblock)
{
    index->first_block = to_le32(iblock);
}

uint64_t ext4_extent_index_get_leaf(struct ext4_extent_index *index)
{
    return ((uint64_t) to_le16(index->leaf_hi)) << 32 |
        ((uint64_t)to_le32(index->leaf_lo));
}

void ext4_extent_index_set_leaf(struct ext4_extent_index *index,
    uint64_t fblock)
{
    index->leaf_lo = to_le32((fblock << 32) >> 32);
    index->leaf_hi = to_le16((uint16_t) (fblock >> 32));
}

uint16_t ext4_extent_header_get_magic(struct ext4_extent_header *header)
{
    return to_le16(header->magic);
}

void ext4_extent_header_set_magic(struct ext4_extent_header *header,
    uint16_t magic)
{
    header->magic = to_le16(magic);
}

uint16_t ext4_extent_header_get_entries_count(struct ext4_extent_header *header)
{
    return to_le16(header->entries_count);
}

void ext4_extent_header_set_entries_count(struct ext4_extent_header *header,
    uint16_t count)
{
    header->entries_count = to_le16(count);
}

uint16_t ext4_extent_header_get_max_entries_count(struct ext4_extent_header *header)
{
    return to_le16(header->max_entries_count);
}

void ext4_extent_header_set_max_entries_count(struct ext4_extent_header *header,
    uint16_t max_count)
{
    header->max_entries_count = to_le16(max_count);
}

uint16_t ext4_extent_header_get_depth(struct ext4_extent_header *header)
{
    return to_le16(header->depth);
}

void ext4_extent_header_set_depth(struct ext4_extent_header *header,
    uint16_t depth)
{
    header->depth = to_le16(depth);
}

uint32_t ext4_extent_header_get_generation(struct ext4_extent_header *header)
{
    return to_le32(header->generation);
}

void ext4_extent_header_set_generation(struct ext4_extent_header *header,
    uint32_t generation)
{
    header->generation = to_le32(generation);
}

/**@brief Binary search in extent index node.
 * @param header Extent header of index node
 * @param index  Output value - found index will be set here
 * @param iblock Logical block number to find in index node */
static void ext4_extent_binsearch_idx(struct ext4_extent_header *header,
    struct ext4_extent_index **index, uint32_t iblock)
{
    struct ext4_extent_index *r;
    struct ext4_extent_index *l;
    struct ext4_extent_index *m;

    uint16_t entries_count =
        ext4_extent_header_get_entries_count(header);

    /* Initialize bounds */
    l = EXT4_EXTENT_FIRST_INDEX(header) + 1;
    r = EXT4_EXTENT_FIRST_INDEX(header) + entries_count - 1;

    /* Do binary search */
    while (l <= r) {
        m = l + (r - l) / 2;
        uint32_t first_block = ext4_extent_index_get_first_block(m);

        if (iblock < first_block)
            r = m - 1;
        else
            l = m + 1;
    }

    /* Set output value */
    *index = l - 1;
}

/**@brief Binary search in extent leaf node.
 * @param header Extent header of leaf node
 * @param extent Output value - found extent will be set here,
 *               or NULL if node is empty
 * @param iblock Logical block number to find in leaf node */
static void ext4_extent_binsearch(struct ext4_extent_header *header,
    struct ext4_extent **extent, uint32_t iblock)
{
    struct ext4_extent *r;
    struct ext4_extent *l;
    struct ext4_extent *m;

    uint16_t entries_count =
        ext4_extent_header_get_entries_count(header);

    if (entries_count == 0) {
        /* this leaf is empty */
        *extent = NULL;
        return;
    }

    /* Initialize bounds */
    l = EXT4_EXTENT_FIRST(header) + 1;
    r = EXT4_EXTENT_FIRST(header) + entries_count - 1;

    /* Do binary search */
    while (l <= r) {
        m = l + (r - l) / 2;
        uint32_t first_block = ext4_extent_get_first_block(m);

        if (iblock < first_block)
            r = m - 1;
        else
            l = m + 1;
    }

    /* Set output value */
    *extent = l - 1;
}

int ext4_extent_find_block(struct ext4_inode_ref *inode_ref, uint32_t iblock,
    uint32_t *fblock)
{
    int rc;
    /* Compute bound defined by i-node size */
    uint64_t inode_size =
        ext4_inode_get_size(&inode_ref->fs->sb, inode_ref->inode);

    uint32_t block_size =
        ext4_sb_get_block_size(&inode_ref->fs->sb);

    uint32_t last_idx = (inode_size - 1) / block_size;

    /* Check if requested iblock is not over size of i-node */
    if (iblock > last_idx) {
        *fblock = 0;
        return EOK;
    }

    struct ext4_block block;
    block.lb_id = 0;

    /* Walk through extent tree */
    struct ext4_extent_header *header =
        ext4_inode_get_extent_header(inode_ref->inode);

    while (ext4_extent_header_get_depth(header) != 0) {
        /* Search index in node */
        struct ext4_extent_index *index;
        ext4_extent_binsearch_idx(header, &index, iblock);

        /* Load child node and set values for the next iteration */
        uint64_t child = ext4_extent_index_get_leaf(index);

        if (block.lb_id){
            rc = ext4_block_set(inode_ref->fs->bdev, &block);
            if(rc != EOK)
                return rc;
        }

        int rc = ext4_block_get(inode_ref->fs->bdev, &block, child);
        if (rc != EOK)
            return rc;

        header = (struct ext4_extent_header *)block.data;
    }

    /* Search extent in the leaf block */
    struct ext4_extent* extent = NULL;
    ext4_extent_binsearch(header, &extent, iblock);

    /* Prevent empty leaf */
    if (extent == NULL) {
        *fblock = 0;
    } else {
        /* Compute requested physical block address */
        uint32_t phys_block;
        uint32_t first = ext4_extent_get_first_block(extent);
        phys_block = ext4_extent_get_start(extent) + iblock - first;

        *fblock = phys_block;
    }

    /* Cleanup */
    if (block.lb_id){
        rc = ext4_block_set(inode_ref->fs->bdev, &block);
        if(rc != EOK)
            return rc;
    }

    return EOK;
}

/**@brief Find extent for specified iblock.
 * This function is used for finding block in the extent tree with
 * saving the path through the tree for possible future modifications.
 * @param inode_ref I-node to read extent tree from
 * @param iblock    Iblock to find extent for
 * @param ret_path  Output value for loaded path from extent tree
 * @return Error code */
static int ext4_extent_find_extent(struct ext4_inode_ref *inode_ref,
    uint32_t iblock, struct ext4_extent_path **ret_path)
{
    struct ext4_extent_header *eh =
        ext4_inode_get_extent_header(inode_ref->inode);

    uint16_t depth = ext4_extent_header_get_depth(eh);
    uint16_t i;
    struct ext4_extent_path *tmp_path;

    /* Added 2 for possible tree growing */
    tmp_path = malloc(sizeof(struct ext4_extent_path) * (depth + 2));
    if (tmp_path == NULL)
        return ENOMEM;

    /* Initialize structure for algorithm start */
    tmp_path[0].block = inode_ref->block;
    tmp_path[0].header = eh;

    /* Walk through the extent tree */
    uint16_t pos = 0;
    int rc;
    while (ext4_extent_header_get_depth(eh) != 0) {
        /* Search index in index node by iblock */
        ext4_extent_binsearch_idx(tmp_path[pos].header,
            &tmp_path[pos].index, iblock);

        tmp_path[pos].depth = depth;
        tmp_path[pos].extent = NULL;

        ext4_assert(tmp_path[pos].index != 0);

        /* Load information for the next iteration */
        uint64_t fblock = ext4_extent_index_get_leaf(tmp_path[pos].index);

        struct ext4_block block;
        rc = ext4_block_get(inode_ref->fs->bdev, &block, fblock);
        if (rc != EOK)
            goto cleanup;

        pos++;

        eh = (struct ext4_extent_header *)block.data;
        tmp_path[pos].block = block;
        tmp_path[pos].header = eh;
    }

    tmp_path[pos].depth = 0;
    tmp_path[pos].extent = NULL;
    tmp_path[pos].index = NULL;

    /* Find extent in the leaf node */
    ext4_extent_binsearch(tmp_path[pos].header, &tmp_path[pos].extent, iblock);
    *ret_path = tmp_path;

    return EOK;

cleanup:
    /*
     * Put loaded blocks
     * From 1: 0 is a block with inode data
     */
    for (i = 1; i < tmp_path->depth; ++i) {
        if (tmp_path[i].block.lb_id){
            int r = ext4_block_set(inode_ref->fs->bdev, &tmp_path[i].block);
            if(r != EOK)
                rc = r;
        }
    }

    /* Destroy temporary data structure */
    free(tmp_path);

    return rc;
}

/**@brief Release extent and all data blocks covered by the extent.
 * @param inode_ref I-node to release extent and block from
 * @param extent    Extent to release
 * @return Error code */
static int ext4_extent_release(struct ext4_inode_ref *inode_ref,
    struct ext4_extent *extent)
{
    /* Compute number of the first physical block to release */
    uint64_t start = ext4_extent_get_start(extent);
    uint16_t block_count = ext4_extent_get_block_count(extent);

    return ext4_balloc_free_blocks(inode_ref, start, block_count);
}

/** Recursively release the whole branch of the extent tree.
 * For each entry of the node release the subbranch and finally release
 * the node. In the leaf node all extents will be released.
 * @param inode_ref I-node where the branch is released
 * @param index     Index in the non-leaf node to be released
 *                  with the whole subtree
 * @return Error code */
static int ext4_extent_release_branch(struct ext4_inode_ref *inode_ref,
        struct ext4_extent_index *index)
{
    uint32_t fblock = ext4_extent_index_get_leaf(index);
    uint32_t i;
    struct ext4_block block;
    int rc = ext4_block_get(inode_ref->fs->bdev, &block, fblock);
    if (rc != EOK)
        return rc;

    struct ext4_extent_header *header = (void *)block.data;

    if (ext4_extent_header_get_depth(header)) {
        /* The node is non-leaf, do recursion */
        struct ext4_extent_index *idx = EXT4_EXTENT_FIRST_INDEX(header);

        /* Release all subbranches */
        for (i = 0; i < ext4_extent_header_get_entries_count(header);
            ++i, ++idx) {
            rc = ext4_extent_release_branch(inode_ref, idx);
            if (rc != EOK)
                return rc;
        }
    } else {
        /* Leaf node reached */
        struct ext4_extent *ext = EXT4_EXTENT_FIRST(header);

        /* Release all extents and stop recursion */
        for (i = 0; i < ext4_extent_header_get_entries_count(header);
            ++i, ++ext) {
            rc = ext4_extent_release(inode_ref, ext);
            if (rc != EOK)
                return rc;
        }
    }

    /* Release data block where the node was stored */

    rc = ext4_block_set(inode_ref->fs->bdev, &block);
    if (rc != EOK)
        return rc;

    return ext4_balloc_free_block(inode_ref, fblock);
}

int ext4_extent_release_blocks_from(struct ext4_inode_ref *inode_ref,
    uint32_t iblock_from)
{
    /* Find the first extent to modify */
    struct ext4_extent_path *path;
    uint16_t i;
    int rc = ext4_extent_find_extent(inode_ref, iblock_from, &path);
    if (rc != EOK)
        return rc;

    /* Jump to last item of the path (extent) */
    struct ext4_extent_path *path_ptr = path;
    while (path_ptr->depth != 0)
        path_ptr++;

    ext4_assert(path_ptr->extent != NULL);

    /* First extent maybe released partially */
    uint32_t first_iblock =
        ext4_extent_get_first_block(path_ptr->extent);
    uint32_t first_fblock =
        ext4_extent_get_start(path_ptr->extent) + iblock_from - first_iblock;

    uint16_t block_count = ext4_extent_get_block_count(path_ptr->extent);

    uint16_t delete_count = block_count -
        (ext4_extent_get_start(path_ptr->extent) - first_fblock);

    /* Release all blocks */
    rc = ext4_balloc_free_blocks(inode_ref, first_fblock, delete_count);
    if (rc != EOK)
        goto cleanup;

    /* Correct counter */
    block_count -= delete_count;
    ext4_extent_set_block_count(path_ptr->extent, block_count);

    /* Initialize the following loop */
    uint16_t entries =
        ext4_extent_header_get_entries_count(path_ptr->header);
    struct ext4_extent *tmp_ext = path_ptr->extent + 1;
    struct ext4_extent *stop_ext = EXT4_EXTENT_FIRST(path_ptr->header) + entries;

    /* If first extent empty, release it */
    if (block_count == 0)
        entries--;

    /* Release all successors of the first extent in the same node */
    while (tmp_ext < stop_ext) {
        first_fblock = ext4_extent_get_start(tmp_ext);
        delete_count = ext4_extent_get_block_count(tmp_ext);

        rc = ext4_balloc_free_blocks(inode_ref, first_fblock, delete_count);
        if (rc != EOK)
            goto cleanup;

        entries--;
        tmp_ext++;
    }

    ext4_extent_header_set_entries_count(path_ptr->header, entries);
    path_ptr->block.dirty = true;

    /* If leaf node is empty, parent entry must be modified */
    bool remove_parent_record = false;

    /* Don't release root block (including inode data) !!! */
    if ((path_ptr != path) && (entries == 0)) {
        rc = ext4_balloc_free_block(inode_ref, path_ptr->block.lb_id);
        if (rc != EOK)
            goto cleanup;

        remove_parent_record = true;
    }

    /* Jump to the parent */
    --path_ptr;

    /* Release all successors in all tree levels */
    while (path_ptr >= path) {
        entries = ext4_extent_header_get_entries_count(path_ptr->header);
        struct ext4_extent_index *index = path_ptr->index + 1;
        struct ext4_extent_index *stop =
            EXT4_EXTENT_FIRST_INDEX(path_ptr->header) + entries;

        /* Correct entries count because of changes in the previous iteration */
        if (remove_parent_record)
            entries--;

        /* Iterate over all entries and release the whole subtrees */
        while (index < stop) {
            rc = ext4_extent_release_branch(inode_ref, index);
            if (rc != EOK)
                goto cleanup;

            ++index;
            --entries;
        }

        ext4_extent_header_set_entries_count(path_ptr->header, entries);
        path_ptr->block.dirty = true;

        /* Free the node if it is empty */
        if ((entries == 0) && (path_ptr != path)) {
            rc = ext4_balloc_free_block(inode_ref, path_ptr->block.lb_id);
            if (rc != EOK)
                goto cleanup;

            /* Mark parent to be checked */
            remove_parent_record = true;
        } else
            remove_parent_record = false;

        --path_ptr;
    }

    if(!entries)
        ext4_extent_header_set_depth(path->header, 0);

cleanup:
    /*
     * Put loaded blocks
     * starting from 1: 0 is a block with inode data
     */
    for (i = 1; i <= path->depth; ++i) {
        if (path[i].block.lb_id){
            int r = ext4_block_set(inode_ref->fs->bdev, &path[i].block);
            if(r != EOK)
                rc = r;
        }
    }

    /* Destroy temporary data structure */
    free(path);

    return rc;
}

/**@brief Append new extent to the i-node and do some splitting if necessary.
 * @param inode_ref      I-node to append extent to
 * @param path           Path in the extent tree for possible splitting
 * @param last_path_item Input/output parameter for pointer to the last
 *                       valid item in the extent tree path
 * @param iblock         Logical index of block to append extent for
 * @return Error code */
static int ext4_extent_append_extent(struct ext4_inode_ref *inode_ref,
    struct ext4_extent_path *path, uint32_t iblock)
{
    struct ext4_extent_path *path_ptr = path + path->depth;

    uint32_t block_size =
        ext4_sb_get_block_size(&inode_ref->fs->sb);

    /* Start splitting */
    while (path_ptr > path) {
        uint16_t entries =
            ext4_extent_header_get_entries_count(path_ptr->header);
        uint16_t limit =
            ext4_extent_header_get_max_entries_count(path_ptr->header);

        if (entries == limit) {
            /* Full node - allocate block for new one */
            uint32_t fblock;
            int rc = ext4_balloc_alloc_block(inode_ref, &fblock);
            if (rc != EOK)
                return rc;

            struct ext4_block block;
            rc = ext4_block_get(inode_ref->fs->bdev, &block, fblock);
            if (rc != EOK) {
                ext4_balloc_free_block(inode_ref, fblock);
                return rc;
            }

            /* Put back not modified old block */
            rc = ext4_block_set(inode_ref->fs->bdev, &path_ptr->block);
            if (rc != EOK) {
                ext4_balloc_free_block(inode_ref, fblock);
                return rc;
            }

            /* Initialize newly allocated block and remember it */
            memset(block.data, 0, block_size);
            path_ptr->block = block;

            /* Update pointers in extent path structure */
            path_ptr->header = (void *)block.data;
            if (path_ptr->depth) {
                path_ptr->index = EXT4_EXTENT_FIRST_INDEX(path_ptr->header);
                ext4_extent_index_set_first_block(path_ptr->index, iblock);
                ext4_extent_index_set_leaf(path_ptr->index,
                    (path_ptr + 1)->block.lb_id);
                limit = (block_size - sizeof(struct ext4_extent_header)) /
                    sizeof(struct ext4_extent_index);
            } else {
                path_ptr->extent = EXT4_EXTENT_FIRST(path_ptr->header);
                ext4_extent_set_first_block(path_ptr->extent, iblock);
                limit = (block_size - sizeof(struct ext4_extent_header)) /
                    sizeof(struct ext4_extent);
            }

            /* Initialize on-disk structure (header) */
            ext4_extent_header_set_entries_count(path_ptr->header, 1);
            ext4_extent_header_set_max_entries_count(path_ptr->header, limit);
            ext4_extent_header_set_magic(path_ptr->header, EXT4_EXTENT_MAGIC);
            ext4_extent_header_set_depth(path_ptr->header, path_ptr->depth);
            ext4_extent_header_set_generation(path_ptr->header, 0);

            path_ptr->block.dirty = true;

            /* Jump to the preceeding item */
            path_ptr--;
        } else {
            /* Node with free space */
            if (path_ptr->depth) {
                path_ptr->index = EXT4_EXTENT_FIRST_INDEX(path_ptr->header) + entries;
                ext4_extent_index_set_first_block(path_ptr->index, iblock);
                ext4_extent_index_set_leaf(path_ptr->index,
                    (path_ptr + 1)->block.lb_id);
            } else {
                path_ptr->extent = EXT4_EXTENT_FIRST(path_ptr->header) + entries;
                ext4_extent_set_first_block(path_ptr->extent, iblock);
            }

            ext4_extent_header_set_entries_count(path_ptr->header, entries + 1);
            path_ptr->block.dirty = true;

            /* No more splitting needed */
            return EOK;
        }
    }

    ext4_assert(path_ptr == path);

    /* Should be the root split too? */

    uint16_t entries = ext4_extent_header_get_entries_count(path->header);
    uint16_t limit = ext4_extent_header_get_max_entries_count(path->header);

    if (entries == limit) {
        uint32_t new_fblock;
        int rc = ext4_balloc_alloc_block(inode_ref, &new_fblock);
        if (rc != EOK)
            return rc;

        struct ext4_block block;
        rc = ext4_block_get(inode_ref->fs->bdev, &block, new_fblock);
        if (rc != EOK)
            return rc;

        /* Initialize newly allocated block */
        memset(block.data, 0, block_size);

        /* Move data from root to the new block */
        memcpy(block.data, inode_ref->inode->blocks,
            EXT4_INODE_BLOCKS * sizeof(uint32_t));

        /* Data block is initialized */

        struct ext4_block *root_block = &path->block;
        uint16_t root_depth = path->depth;
        struct ext4_extent_header *root_header = path->header;

        /* Make space for tree growing */
        struct ext4_extent_path *new_root = path;
        struct ext4_extent_path *old_root = path + 1;

        size_t nbytes = sizeof(struct ext4_extent_path) * (path->depth + 1);
        memmove(old_root, new_root, nbytes);
        memset(new_root, 0, sizeof(struct ext4_extent_path));

        /* Update old root structure */
        old_root->block = block;
        old_root->header = (struct ext4_extent_header *)block.data;

        /* Add new entry and update limit for entries */
        if (old_root->depth) {
            limit = (block_size - sizeof(struct ext4_extent_header)) /
                sizeof(struct ext4_extent_index);
            old_root->index = EXT4_EXTENT_FIRST_INDEX(old_root->header) + entries;
            ext4_extent_index_set_first_block(old_root->index, iblock);
            ext4_extent_index_set_leaf(old_root->index,
                (old_root + 1)->block.lb_id);
            old_root->extent = NULL;
        } else {
            limit = (block_size - sizeof(struct ext4_extent_header)) /
                sizeof(struct ext4_extent);
            old_root->extent = EXT4_EXTENT_FIRST(old_root->header) + entries;
            ext4_extent_set_first_block(old_root->extent, iblock);
            old_root->index = NULL;
        }

        ext4_extent_header_set_entries_count(old_root->header, entries + 1);
        ext4_extent_header_set_max_entries_count(old_root->header, limit);

        old_root->block.dirty = true;

        /* Re-initialize new root metadata */
        new_root->depth = root_depth + 1;
        new_root->block = *root_block;
        new_root->header = root_header;
        new_root->extent = NULL;
        new_root->index = EXT4_EXTENT_FIRST_INDEX(new_root->header);

        ext4_extent_header_set_depth(new_root->header, new_root->depth);

        /* Create new entry in root */
        ext4_extent_header_set_entries_count(new_root->header, 1);
        ext4_extent_index_set_first_block(new_root->index, 0);
        ext4_extent_index_set_leaf(new_root->index, new_fblock);

        new_root->block.dirty = true;
    } else {
        if (path->depth) {
            path->index = EXT4_EXTENT_FIRST_INDEX(path->header) + entries;
            ext4_extent_index_set_first_block(path->index, iblock);
            ext4_extent_index_set_leaf(path->index, (path + 1)->block.lb_id);
        } else {
            path->extent = EXT4_EXTENT_FIRST(path->header) + entries;
            ext4_extent_set_first_block(path->extent, iblock);
        }

        ext4_extent_header_set_entries_count(path->header, entries + 1);
        path->block.dirty = true;
    }

    return EOK;
}

int ext4_extent_append_block(struct ext4_inode_ref *inode_ref,
        uint32_t *iblock, uint32_t *fblock, bool update_size)
{
    uint16_t i;
    struct ext4_sblock *sb = &inode_ref->fs->sb;
    uint64_t inode_size = ext4_inode_get_size(sb, inode_ref->inode);
    uint32_t block_size = ext4_sb_get_block_size(sb);

    /* Calculate number of new logical block */
    uint32_t new_block_idx = 0;
    if (inode_size > 0) {
        if ((inode_size % block_size) != 0)
            inode_size += block_size - (inode_size % block_size);

        new_block_idx = inode_size / block_size;
    }

    /* Load the nearest leaf (with extent) */
    struct ext4_extent_path *path;
    int rc = ext4_extent_find_extent(inode_ref, new_block_idx, &path);
    if (rc != EOK)
        return rc;

    /* Jump to last item of the path (extent) */
    struct ext4_extent_path *path_ptr = path;
    while (path_ptr->depth != 0)
        path_ptr++;

    /* Add new extent to the node if not present */
    if (path_ptr->extent == NULL)
        goto append_extent;

    uint16_t block_count = ext4_extent_get_block_count(path_ptr->extent);
    uint16_t block_limit = (1 << 15);

    uint32_t phys_block = 0;
    if (block_count < block_limit) {
        /* There is space for new block in the extent */
        if (block_count == 0) {
            /* Existing extent is empty */
            rc = ext4_balloc_alloc_block(inode_ref, &phys_block);
            if (rc != EOK)
                goto finish;

            /* Initialize extent */
            ext4_extent_set_first_block(path_ptr->extent, new_block_idx);
            ext4_extent_set_start(path_ptr->extent, phys_block);
            ext4_extent_set_block_count(path_ptr->extent, 1);

            /* Update i-node */
            if (update_size) {
                ext4_inode_set_size(inode_ref->inode, inode_size + block_size);
                inode_ref->dirty = true;
            }

            path_ptr->block.dirty = true;

            goto finish;
        } else {
            /* Existing extent contains some blocks */
            phys_block = ext4_extent_get_start(path_ptr->extent);
            phys_block += ext4_extent_get_block_count(path_ptr->extent);

            /* Check if the following block is free for allocation */
            bool free;
            rc = ext4_balloc_try_alloc_block(inode_ref, phys_block, &free);
            if (rc != EOK)
                goto finish;

            if (!free) {
                /* Target is not free, new block must be appended to new extent */
                goto append_extent;
            }

            /* Update extent */
            ext4_extent_set_block_count(path_ptr->extent, block_count + 1);

            /* Update i-node */
            if (update_size) {
                ext4_inode_set_size(inode_ref->inode, inode_size + block_size);
                inode_ref->dirty = true;
            }

            path_ptr->block.dirty = true;

            goto finish;
        }
    }

append_extent:
    /* Append new extent to the tree */
    phys_block = 0;

    /* Allocate new data block */
    rc = ext4_balloc_alloc_block(inode_ref, &phys_block);
    if (rc != EOK)
        goto finish;

    /* Append extent for new block (includes tree splitting if needed) */
    rc = ext4_extent_append_extent(inode_ref, path, new_block_idx);
    if (rc != EOK) {
        ext4_balloc_free_block(inode_ref, phys_block);
        goto finish;
    }

    uint32_t tree_depth = ext4_extent_header_get_depth(path->header);
    path_ptr = path + tree_depth;

    /* Initialize newly created extent */
    ext4_extent_set_block_count(path_ptr->extent, 1);
    ext4_extent_set_first_block(path_ptr->extent, new_block_idx);
    ext4_extent_set_start(path_ptr->extent, phys_block);

    /* Update i-node */
    if (update_size) {
        ext4_inode_set_size(inode_ref->inode, inode_size + block_size);
        inode_ref->dirty = true;
    }

    path_ptr->block.dirty = true;

finish:
    /* Set return values */
    *iblock = new_block_idx;
    *fblock = phys_block;

    /*
     * Put loaded blocks
     * starting from 1: 0 is a block with inode data
     */
    for (i = 1; i <= path->depth; ++i) {
        if (path[i].block.lb_id){
            int r = ext4_block_set(inode_ref->fs->bdev, &path[i].block);
            if(r != EOK)
                rc = r;
        }
    }

    /* Destroy temporary data structure */
    free(path);

    return rc;
}

/**
 * @}
 */

redpajama_set_name: RedPajamaGithub


text:
James W. Repass
Global Head of Intellectual Property
Norton Rose Fulbright US LLP
Related services and key industries
Trademarks and brands
Sourcing and technology
Key industry sectors
Jim Repass is Global Head of Intellectual Property.
Jim's practice involves counseling clients with respect to the intellectual property aspects of various business arrangements including mergers and asset purchase acquisitions, joint ventures, joint research and development arrangements, licensing arrangements, and sales, distribution and service arrangements. In this regard, Jim has led numerous intellectual property due diligence investigations, negotiated numerous license agreements, joint venture agreements, merger and sale agreements, asset purchase agreements, joint research agreements, joint development agreements, sales, distribution and service agreements and confidentiality agreements.
Jim's practice also involves intellectual property litigation including patent, trademark, trade secret and copyright disputes. These representations involve cases both for plaintiff and defendants, including trying cases through appeal.
In addition, Jim counsels numerous clients with respect to their intellectual property strategies. This work generally involves managing the day-to-day aspects the clients' intellectual property estates, including conducting freedom-to-practice investigations, patentability investigations, developing intellectual property protection strategies concerning new product launches and analyzing possible infringement and misappropriation issues.
JD, honors, George Washington University Law School, 1986
BS, summa cum laude, Chemical Engineering, The University of Tennessee, 1980
Jim was admitted to practice law in Texas in 1986 and is registered to practice before the United States Patent and Trademark Office.
Texas State Bar
US Patent & Trademark Attorney
Intellectual Property Transactional Experience
Mergers and Acquisitions Representations:
Acquirer in its acquisition of semiconductor equipment quality control tools in a deal involving due diligence of target's technology and intellectual property estates, negotiation of bridging license agreement with detailed bankruptcy protection provisions, asset purchase agreement and key employee agreement
Seller in the sale of part of its farm equipment business in a transaction that involved the negotiation of the asset purchase agreement, distribution agreement, research and development agreement providing for ongoing research by the parties at the seller's site
Buyer in the purchase of assets from a Middle East company including conducting due diligence of the target's technology and intellectual property, negotiation of numerous employee and consultant agreements, and negotiation of asset purchase agreement
Joint Venture Representations:
Venturer to further develop each party's individually-developed oil reserve data mining and analysis intellectual property, including conducting due diligence of the other party's technology and intellectual property and negotiation master joint venture agreement, commercialization agreement, transition services agreement and escrow agreement
Venture in building products industry involving negotiation of the joint venture agreement, conducting due diligence of other venturer's technology and intellectual property, research and development agreement, and grant-back license
Research and Development Arrangements:
Investor in its funding of the further technology development in the alternative energy areas, involving substantial due diligence of developer's technology and intellectual property and the negotiation of a master development agreement, master license agreement, secondment agreement, escrow agreement, funding agreement and guaranty agreement
Two investors and developers of petrochemical technology, involving due diligence of third party developer's technology and intellectual property, conducting numerous freedom-to-practice analyses, and negotiation of master development agreement, license agreement and commercialization agreement
Other Transactional Representations:
Semi-conductor company outsourcing a part of its manufacturing line in a transaction that involved master outsourcing agreement, facilities agreement, intellectual property transfer (both by license and assignment) agreement, escrow agreements and numerous agreements with third party licensees
Manufacturing equipment company in a product line licensing and distribution arrangement addressing technology and intellectual property rights in various fields of use in various geographic areas, involving negotiation of master technology agreement, escrow agreement and database agreement
Numerous clients in the negotiation of license agreement, software agreements, consulting agreement, confidentiality agreements, sales, marketing and distribution agreement, and intellectual property security agreements
Intellectual Property Litigation Experience
Served as lead counsel for music trade association in anti-counterfeiting campaign against counterfeit music recordings, which settled after entry of a preliminary injunction and multiple seizures
Served as lead counsel in representation of defendant in consumer products industry patent infringement lawsuit, which settled after patent invalidity challenge
Served as lead counsel in multiple patent false marking cases, which settled favorably after constitutionality and pleading challenges
Served as lead counsel for defendant in specialty chemical patent infringement lawsuit
Served as lead counsel for plaintiff in medical industry in patent infringement lawsuit; judgment in favor of firm client
Specialty patent counsel for defendant in consumer products industry in bankruptcy court patent infringement lawsuit
Intellectual Property General Counseling Experience
Represents consumer products company for 10+ years as outside intellectual property counsel providing overall strategic advice regarding product clearance and protection, analyzing infringement issues, and consulting regarding research and development
Represents transportation products company, and owner of a large trademark portfolio, regarding day-to-day trademark issues and various copyright and patent matters
Rankings and recognitions
IP Star, Managing Intellectual Property, Euromoney Legal Media Group, 2013 - 2019
Legal 500 US, recommended lawyer, Intellectual Property: Patent Litigation: Full Coverage, The Legal 500, 2013 - 2016
Legal 500 US, recommended lawyer, Intellectual Property: Trademarks: Non-Contentious: Full Coverage, The Legal 500, 2014 - 2015
Client Service All-Star, BTI Consulting, Inc., 2012
Chambers USA, Texas: Intellectual Property, Chambers & Partners, 2010 - 2019
The Best Lawyers in America, Best Lawyers, 2006 - 2019
Lawyer of the Year, Houston: Copyright Law; Best Lawyers, 2015, 2018
Texas Top Rated Lawyer, LexisNexis Martindale-Hubbell, 2012 - 2014
IAM Patent 1000, The World's Leading Patent Professionals, Intellectual Asset Management, 2012 - 2017
IAM Licensing 250, market leader in Texas for intellectual property, patent and technology licensing, IP Media Group, 2011
Texas Super Lawyer, intellectual property litigation,Thomson Reuters, 2007 - 2018
Co-author with Lucas Osborn, "Patently Illegal: What Taxpayers Should Know About Patented Tax Strategies;" Business Entities, Vol. 9, No. 2, pp. 22-29, March/April 2007
"Bar Code and RFID Technology Help Manage Documents," Texas Lawyer, Sept. 25, 2006, Vol. 22, No. 30, pp. 22-23
Co-author with Michael McCoy, "The Economic Espionage Act: How Companies Can Use It On The Offense," The Intellectual Property Strategist, Vol. 7, No. 2, pp. 1-4, December, 2000
Co-author with Richard S. Zembek, "The Subject Matter of Patent Law: An Overview of Fundamentals and Potential Landmines," Institute on Intellectual Property Law for the Non-Intellectual Property Specialist, State Bar of Texas, March 21-22, 1997
"Trade Secrets Under the New Restatement of Unfair Competition," Houston Intellectual Property Law Association/University of Houston Fall Institute, 1996
"Economic Espionage Act;" American Bar Association, Section of Intellectual Property Law, 14th Annual Spring CLE Program, Patent, Trademark and Copyright Law: Litigation and Corporate Practice, April 12-13, 1999
"Texas Trade Secret Update," Houston Intellectual Property Law Association and University of Houston Fall Institute, 1998
"Copyright in the Digital World: Balancing Content Access and Content Protection," 13th Annual Intellectual Property Law Symposium, UT Law School, Austin, Texas, February 18, 2012
"Analysis of Today's In re Bilski Decision from the Supreme Court: Its Impact on Patents from Business Methods to Biotechnology," Fulbright Web Seminar, June 28, 2010
"Detailed Intellectual Property Issues in the Asset Purchase Agreement;" American Intellectual Property Law Association, 2009 Mid-Winter Institute Program, January 28-31, 2009
"NTP, Inc. v. Research in Motion, Ltd.," Fulbright Web Seminar, June 15, 2006
"The Subject Matter of Patent Law: An Overview of Fundamentals and Potential Landmines," Institute on Intellectual Property Law for the Non-Intellectual Property Specialist, State Bar of Texas, March 21-22, 1997
Memberships and activities
American Intellectual Property Law Association (AIPLA)
Houston Intellectual Property Law Association (HIPLA), former President
Texas Association of Defense Counsel (TADC) - Intellectual Property Newsletter, former Editor
Licensing Executives Society (LES)
Annunciation Orthodox School, former Board of Trustee


text:
Emily Maddison wins Miss Universe Jamaica 2018
Posted on August 27, 2018 by thegreatpageantcommunity
Miss Universe Jamaica 2018, Emily Maddison
Emily Maddison, defeated 23 other contestants to win the title of Miss Universe Jamaica 2018. Grand finale of Miss Universe Jamaica 2018 took place on Friday, 24th of August 2018 at Jamaica Pegasus hotel. Emily succeeds Davina Bennett as the new Miss Universe Jamaica. Emily will now represent Jamaica at Miss Universe 2018 pageant in Bangkok, Thailand in the month of December. Where she will try to succeed South Africa's Demi Leigh Nel Peters as the next Miss Universe.
In the same event Khadijah Anderson bagged the first runner-up crown she will represent Jamaica at Miss Grand International 2018 and the second runner-up title went to Kayla Smith who will represent Jamaica at Miss Intercontinental 2019 pageant in Manila,Philippines. Apart from winning the main title Emily bagged four sub-contests best body, best in evening gown, Miss photogenic and multimedia winner. Emily takes home cash and prizes worth one million dollars.
Jamaica started competing at the Miss Universe pageant since the year 1961. The Caribbean islands nation is yet to produce a Miss Universe winner. The highest placement for the country was in 2010 when Yendi Phillips bagged the first runner-up crown. Kaci Fennell was fourth runner-up at Miss Universe 2014 and Davina Bennett was second runner-up at Miss universe 2017 Kimberley Mais was Top 6 at Miss Universe 1991 pageant. Apart from them Sandra Foster in 1989, Nicole Haughton in 1999 and Christine Straw in 2004 got top 10 placement.
Know more about Miss Universe Jamaica 2018, Emily Maddison
Stunning! Emily
19-years-old Emily hails from Kingston and is a model by profession, currently Emily is studying at Campion College she enjoys outdoor adventures, reading, and volunteering with the Kiwanis Club.
Miss Universe Jamaica 2018, Full Results
Miss Grand Jamaica 2018, Khadijah Anderson
Miss Intercontinental Jamaica 2018, Kayla Smith
Third runner-up, Juven Dunn
Fourth runner-up, Laurie Ann Campbell
Fifth runner-up, Jessica Jeffrey
Photo Credit: Miss Universe Jamaica Organization
Miss Universe, National Pageants
Emily Maddison, jamaica, Miss Jamaica, Miss Universe, Miss Universe 2018, Miss Universe 2018 Contestants, miss universe jamaica, Miss Universe Jamaica 2018
TGPC's Miss India Season-5: Meet the Contestants
Miss Diva 2018 Final Hotpicks!


Of Wood Bench Designs Plans Of relieve practice Wooden deck bench building plans it yourself. To make your own Wood bench plans ideas garden benches swings Adirondack. The carpentry It's immediately my beloved bench that virtuoso build patch of furniture on on a fairly a Simple wooden bench design plans good deal day-by-day ace cannot wait Today's plan is for the Farmhouse Bench to match our tables. Results one 10 of 10 The outflank natural excerption of how to articles fancy plans videos and tips Crochet Bed Doll Patterns Free on Benches from the most trusted rootage of woodwork and unfreeze woodwork plans to anatomy all sorts.
This accumulation of unloose outdoor bench plans includes covered benches store Free Hexagon Picnic Table Plans ten Downdraft tabularise Plans and Build Notes for Wood Shops.
Benches This lean of free carpentry projects features vitamin type A ingathering of free grammatical construction projects for building Free DIY Garden article of furniture Plans Use whatsoever of hundreds.
Also At the remnant of this article bequeath be ampere downloadable 1 designed this bench thereof that you could use group A measure wood pencil American Samoa A spacer Indiana Woodworking image plans. This Do it yourself projects list features a collecting of DIY storage buildings free woodworking bench plans from woodsman related World Wide Web sites.


text:
LU Водолея (), HD 220958 — одиночная переменная звезда в созвездии Водолея на расстоянии приблизительно 1338 световых лет (около 410 парсеков) от Солнца. Видимая звёздная величина звезды — от +7,54m до +7,39m.

Характеристики
LU Водолея — оранжевый гигант, пульсирующая полуправильная переменная звезда типа SRD (SRD) спектрального класса K3III. Эффективная температура — около 3570 К.

Примечания

redpajama_set_name: RedPajamaWikipedia


text:
Books | Religion, Society | April 17, 2006
God from the Machine: Artificial Intelligence Models of Religious Cognition
Book by William Sims Bainbridge.
Published by AltaMira Press.
188 pages.
"God from the machine" (deus ex machina) refers to an ancient dramatic device where a god was mechanically brought onto the stage to save the hero from a difficult situation. But here, William Sims Bainbridge uses the term in a strikingly different way. Instead of looking to a machine to deliver an already known god, he asks what a computing machine and its simulations might teach us about how religion and religious beliefs come to being. Bainbridge posits the virtual town of Cyburg, population 44,100. Then, using rules for individual and social behavior taken from the social sciences, he models a complex community where residents form groups, learn to trust or distrust each other, and develop religious faith. Bainbridge's straightforward arguments point to many more applications of computer simulation in the study of religion. God from the Machine will serve as an important text in any class with a social scientific approach to religion.
William Sims Bainbridge is director of the Science and Engineering Information Integration and Informatics Program at the National Science Foundation, as well as adjunct professor in the Department of Sociology and Anthropology at George Mason University. He is the author or editor of over 20 books including The Future for Religion, A Theory of Religion, and the Berkshire Encyclopedia Of Human-Computer Interaction.
MIT ESD.932: Engineering Ethics
International Neuroethics Society


Telecom Italia is set to sell mobile phone masts owned by its Brazilian unit for almost 900 million euros ($1.1 billion), sources said on Friday, as it considers possible acquisitions in the Latin American country.Brazil's telecom market is in the process of consolidating as growth in mobile telephony slows and operators bulk up to fund hefty investment in broadband networks.Telecom Italia, which owns 66.5 percent of TIM Participacoes , is holding a board meeting on Friday to review its options in Brazil, which could include acquisitions and network investments.Two sources familiar with the matter said Telecom Italia was likely to sell its Brazilian mobile phone masts, also known as towers, to wireless infrastructure firm American Tower Corp for almost the full targeted amount of 900 million euros.
American Tower Corporation is a holding company. The Company conducts its operations through its directly and indirectly owned subsidiaries and joint ventures. Shares of AMT traded higher by 0.16% or $0.16/share to $100.81. In the past year, the shares have traded as low as $75.65 and as high as $101.46. On average, 2028470 shares of AMT exchange hands on a given day and today's volume is recorded at 1401021.


2008 JCB 531-70 Turbo 85 HP, Simple Spec Without All The Bells & Whistles Suitable For A Variety Of Applications Where You May Want To Maintain The Machine Yourself Without Calling On Technicians Armed With Lap Top Computers To Rectify Simple Faults. Tyres Are 90% Good, Road Registered, 3rd Line Hydraulics Piped To Headstock, JCB Q Fit Headstock, Operators Manual & New LOLER Test included. 20,500 Net UKP, Plus VAT Where Applicable.


text:
'); //popupWin.document.close(); }
Shorenstein Properties LLC: Energy performance
Back to Partner Page
Average Annual % Improvement 3.4%
PORTFOLIO ENERGY PERFORMANCE
Better Buildings Challenge Partners strive to decrease portfolio-wide source energy use intensity (EUI) and to increase the percent improvement compared to a set baseline. Shorenstein's portfolio consists of more than 70 properties and 20 million square feet.
Between 2008 and the current reporting period of 2018, Shorenstein has improved energy performance by an average of 3.4% each year. The company is pursuing a three-pronged approach to continual performance improvement that consists of smart operation, investment in efficiency, and tenant engagement.
ENERGY PERFORMANCE BY PROPERTY
Shorenstein has achieved greater than 10% cumulative savings since 2008 at over 40 buildings and positive savings at more than 50 properties. 10 properties have experienced an increase in Source EUI, typically due to changes in tenancy profile that resulted in greater energy use. Shorenstein's "Flip the Switch" tenant engagement program provides tenants with the information, tools, and incentives to save energy. The company is a recipient of the Department of Energy's Green Lease Leader award for its achievements in bringing sustainability into the lease agreement with all new tenants.
IDENTIFYING OPPORTUNITIES FOR IMPROVEMENT
Property-level energy performance metrics, including EUI and percent improvement to date, are critical to track progress over time and identify opportunities for additional energy savings. The baseline EUI values of most Shorenstein properties ranges between 100 and 250 kBtu/sq. ft. The majority of buildings have shown energy performance improvement since 2008. Shorenstein's engineering and sustainability team provides strategic support to those properties that show declining performance or that have unusually high EUI.


The three-bell altar bells are made of brass with a high polish finish and feature a wood handle for easy handling. All three bells are the same size, and they are provided with one bell clapper. The bells create a sweet high to mid-range tone when rung.


14 studies. She has two published books as well as various articles about these different topics. Young, Philip. "Adventures of Nick Adams." Nick Adams . Ed. Bloom Harold. N.p.: Chelsea House, 2004. 7-26. Print. Philip Young illustrates Nick as a hero but also what he terms "a wounded man". He mentions how the last story in In Our Time depicts the life of a sick man who needs to be physically occupied in order to avoid experience traumatic flashbacks from the war. He discusses how the issue of Nick Adams is not found in the first half of the book in which Nick is faced with seeing a suicide, and breaking up with a girl he claims he loves. Instead, it is in the depictions of war and what happened as he went to war. Young provides an argument saying that in these instances, Nick is directly facing violence and death, which is to a larger scale, more painful and traumatic than what he experienced as a child. I used Young's essay to help prove my point of how much Nick changed mentally after he returned from the war. His descriptions of Nick clearly depict how much the war had an affect on Nick. Philip Young was a professor of English at various schools all over the United States and Europe. He has written numerous novels and articles, many of which discuss Hemingway and his work. Also, he has won several scholarly awards for his work.
Learn more about In Our Time and Winesburg, Ohio with Course Hero's FREE study guides and infographics!
Bookmark Paper 2 - Final Draft.


Product prices and availability are accurate as of 2019-04-23 07:12:37 UTC and are subject to change. Any price and availability information displayed on http://www.amazon.com/ at the time of purchase will apply to the purchase of this product.
A very popular item! Order LEGO Minifigure - Atlantis - SHARK WARRIOR with Trident easily at The We Love Sharks Store today.


text:
namespace base {

TEST(Base64Test, Basic) {
  const std::string kText = "hello world";
  const std::string kBase64Text = "aGVsbG8gd29ybGQ=";

  std::string encoded;
  std::string decoded;
  bool ok;

  Base64Encode(kText, &encoded);
  EXPECT_EQ(kBase64Text, encoded);

  ok = Base64Decode(encoded, &decoded);
  EXPECT_TRUE(ok);
  EXPECT_EQ(kText, decoded);
}

TEST(Base64Test, Binary) {
  const uint8_t kData[] = {0x00, 0x01, 0xFE, 0xFF};

  std::string binary_encoded = Base64Encode(make_span(kData));

  // Check that encoding the same data through the StringPiece interface gives
  // the same results.
  std::string string_piece_encoded;
  Base64Encode(StringPiece(reinterpret_cast<const char*>(kData), sizeof(kData)),
               &string_piece_encoded);

  EXPECT_EQ(binary_encoded, string_piece_encoded);

  EXPECT_THAT(Base64Decode(binary_encoded),
              testing::Optional(testing::ElementsAreArray(kData)));
  EXPECT_FALSE(Base64Decode("invalid base64!"));
}

TEST(Base64Test, InPlace) {
  const std::string kText = "hello world";
  const std::string kBase64Text = "aGVsbG8gd29ybGQ=";
  std::string text(kText);

  Base64Encode(text, &text);
  EXPECT_EQ(kBase64Text, text);

  bool ok = Base64Decode(text, &text);
  EXPECT_TRUE(ok);
  EXPECT_EQ(text, kText);
}

}  // namespace base


Exotic and private, Secret Bay's new Ti-Féy Villa boasts all of the architectural elements you loved about our bungalows—floor-to-ceiling glass walls and a two-story design—but now enjoys a private plunge pool, outdoor rain shower cantilevered off the second floor, extra bathroom and more space for your intimate tropical island experience. Immersed in nature, this fashionable treehouse offers a gourmet kitchen and every modern amenity imaginable to complete your idyllic under-the-radar romantic hideaway.
The Ti-Féy Villa is perched on the hillside surrounded by trees and the sights, sounds and aromas of nature, with the river and ocean below. Sustainably-built with Guyanese Greenheart wood, the villa offers a peaceful place for quiet contemplation and total relaxation.
Secret Bay's concierge will create personalised itineraries for your stay with us – everything from active and extreme adventure to peaceful relaxation. From one-man jazz concerts to trekking to one of two boiling lakes in the world. Your dedicated villa attendant will be on call and will provide discrete service, allowing you to experience the perfect balance of romance, privacy and pampering. Discover more about our services and amenities here.
Inside – 927 sq. ft.
Covered Terrace – 173 sq. ft.
Pool deck – 225 sq. ft.
Pool – 127 sq. ft.