text:
What if Russia Won the Ukraine War but the Western Press Didn't Notice?
Posted on January 17, 2023 by Yves Smith
The level of creative story-telling about Russia's progress in the Ukraine War has reached the point where the scenario below is not entirely impossible. Sadly yours truly lacks the literary skills to execute a Philip K. Dick rendering of this sketch:
A man in his late 30s, in mud-spattered combat gear at the outskirts of a Mitteleuropaish city, watches as six helicopters roar overhead. He stumbles after them and then steadies his gait. Eventually he runs into a county road and is able to determine which direction is not the way he came. He keeps walking.
Eventually, he flags down a truck. He succeeds in explaining in broken Polish that he's an American and asks if they can they drop him off closer to a military base or the US embassy….
In a bed in a VA hospital back home, Eric speaks to a visitor, his sister Sarah:
Cousin Harry has agreed to let me live with him for a few months while I look for work. But you have contacts in publishing. I have a story that needs to be told, even if there's no money in it. "The last American in Ukraine." The lowly soldier there during the dying days of the government in Kiev, who saw some of the final actions, including watching the official helicopters fly away to safety.
Do you think you can make some introductions? Do you know any magazine editors?
Sarah apparently had a word with the doctors. A series of men in white coats come to speak to Eric about what he thought he saw when he fancied he was in Lviv and hiked into Poland. It's not too long before he is committed.
In a testament to modern medicine, it takes only a year to free Eric of his delusions and return him to society.
As Lambert, a battle-scarred veteran of the War in Iraq information wars has repeatedly volunteered, the propaganda shrouding the Ukraine conflict is far more intense and truth-disengaged than anything has encountered. I agree. And as readers and colleagues have attested, it's also turned plenty of formerly-thinking people into narrative wind-up dolls.
A big reason for the orgy of hype has been that, as Alexander Vershinin pointed out in a recent article in Russia Matters, it is essential for Ukraine to maintain the appearance of success to keep aid flowing:
Ukraine's second constraint is the coalition nature of its warfare. Since running out of its own stocks, Ukraine is increasingly reliant on Western weaponry. Maintaining the Western coalition is crucial to the Ukrainian war effort. Without a constant string of victories, domestic economic concern may cause coalition members to defect. If Western support dries up due to depletion of stock or of political will, Ukraine's war effort collapses for lack of supplies. In some ways, Ukraine has no choice but to launch attacks no matter the human and material cost.
Mind you, the level of outside backing is greater than Vershinin suggests. The US and its allies are funding Ukraine's budget deficit. The West has also been providing more manpower support. Ursula von der Leyen had to try to walk back an end-of-November scripted remark that Russia had killed 100,000 Ukraine soldiers. More recently, Douglas Macgregor put the deaths in Ukraine forces at 150,000 and casualties at 450,000.1 Remember at the start of the war, Ukraine's total forces, including reservists, were roughly 600,000. So reports from Russian forces even as of a couple of months ago, based on radio chatter, that estimated some opposing units were as much as 70% foreign based on chatter in Polish, Romanian, and English seems entirely possible.
Remember also that at the beginning, most Western military experts expected Russia to quickly dispatch Ukraine and were surprised to work out that Russia had not only gone in with comparatively light forces but didn't have large reserved ready to go. Even so, independent experts often observe that Russia did dispatch most of Ukraine's initial equipment and much of its manpower.
Even so, the West, having spent decades fighting wars against insurgents, wasn't prepared for the burn rate of this conflict. So it has been imperative to keep thumping that Russia is being beaten to keep the money flowing long enough to make that a reality…as if the West's defense misspending could be solved by throwing more money at the problem.
Ukraine's Mighty Wurlitzer has been dutifully amplified by the Western media: the ghost of Kiev, Snake Island, the insinuations that Russia bombed itself at both the Zaporzhizhia nuclear plant and the Nord Stream pipelines and specific claims that Russia engaging in human wave tactics to horrific losses. We also see hoary old fables like Russia having primitive everything – equipment, technology, training, leadership – predisposing broad swathes of the public to accept derivative spin like the neverending, nevertrue claims that Russia was running out of artillery and missiles.
And we've seen an unrelenting deluge of Big Lies, like Putin's incredible roster of heath problems, his supposed weak hold on power and resulting paranoia, that feeds another oft-told tale, that Putin's ouster is just in sight by implication would lead to him being replaced by someone more tractable. And as a corollary "Russia is generally bad at everything" comes the claims that Russia's "conscript" army is suffering from terrible morale and desertions because they are losing so many men compared to the highly motivated, well-trained and equipped, and more blonde Ukrainians.
Russia has made errors, like initially conceptualizing the Special Military Operation as a way to bring Ukraine to the negotiating table, and not anticipating the ferocity of Collective West opposition, or optimistically assuming contract soldiers whose terms of duty ended in August would re-up for the good of Mother Russia. The latter miscalculation thinned out manning across a very long line of contact, setting up the strategically not very consequential but still very bad looking Kharkiv retreat. But they've typically recognized problems and made efforts to correct them.
Nevertheless, Soledar has fallen and the loss of Bakhmut looks baked in, absent horrific Russian errors. The so-called Zelensky line is breaking even before Russia has put its recently-mobilized forces to work in a serious way. Regular commentators are waiting for the Russian hammer to fall, although Russia may simply grind more forcefully by pressing harder at more points along the very long line of contact. Remember one concern on the Russian side is avoiding "winning" in a way that leads to NATO panic and desperate action…not that the Collective West's fragile emotional state can be readily managed.
With that context, you'd expect some members of the press to have worked out that things are not going very well for Ukraine and the classic cowboy movie rescue of the calvary riding over the hill (here in the form of tanks and artillery) will be too little, too late.
Instead, the media seems to be trying to integrate snippets of facts on the ground with the heroic tale of inevitable Ukraine victory. We'll stick to headlines since they have an impact regardless of whether the rest of the story gets read. Lambert and others flagged the Financial Times story below as an extreme form of flipping facts:
So instead of the common spin, that Soledar and Bakhumt are not consequential (despite Zelensky demonstrating the reverse by carting a flag from Bakhmut to present to Pelosi), the pink paper is doing that one better by depicting Ukraine as cleverly out attritting Russia.
Confirming what we are seeing in the English language media:
Erich Vad, ex-brigadier General of Germany's army:
"To a large extent, we are witnessing a media conformity that I have never seen before in the Federal Republic of Germany. This is pure opinion mongering."#Germany #ukraine #ukrainerussiawar https://t.co/tADgQ0TPIp
— Dimitri Lascaris (@dimitrilascaris) January 14, 2023
Despite this being a holiday weekend, and hence international news often filling in for the domestic slow-down, my impression is that the Anglo press is averting its eyes from Ukraine. For instance, yesterday morning, there was not a single Ukraine story on Bloomberg's landing page. Ditto today. The only headline at the Journal is below the fold:
And the only story on the landing page of the BBC:
At the same time, we also see charges that Ukraine is plotting yet more stunts, like its Kerch Bridge attack, or its scary-seeming but ultimately ineffective drone attacks on Engels Air base, where Russia stations its nuclear bombers. Recall we'd predicted more terrorist attempts as Ukraine battlefield success looked more remote. From the Ministry of Defense's Telegram channel Monday morning:2
Finally, what is particularly disturbing is Ukraine nationals and their allies trying to silence opponents of Banderitism in the US, specifically Scott Ritter:
You'll note that Ritter had agreed to talk only about his experience as an weapons inspector and keep well away from current events. Yet Ukrainian loyalists vowed to put the restaurant out of business if the owner didn't cancel Ritter's appearance. (which I assume means somehow physically destroy it or threaten patrons).
This development followed hard on the heels of this presentation. I've sometimes watched Ritter talk to peaceniks and other local groups. They usually skew geriatric and follow instructions, as in ask questions in the Q&A (although there is often a garrulous exception who manages to wrap his query in an over-long anecdote.
In this talk, the first speaker, Dan Kovalik, had been to Donbass and showed photos of daily life, memorials to dead children, shelling damage, reconstruction, and victims of Ukraine torture, including one who'd had all his teeth broken off at the gum line to inflict maximum pain.
Ritter was second and used himself as a case example of how First Amendment rights were being restricted to stifle debate about the Ukraine conflict. He focuses on how his name was on the Ukraine hit list. Ritter was particularly upset that US tax dollars appear to be funding it:
The Q&A section was a radical departure from the norm for these events. See in particular the woman who starts speaking at 1:06, charges Kovalik with offering propaganda, and loudly insists that Russian war crimes in Bucha and Kherson were investigated and confirmed by UN inspectors. Ritter didn't have the opportunity to say he'd called for that from the outset, in writing, and no such thing happened. She also tried to hijack the Q&A at several later points.
Another questioner at 1:16 presented himself as of Russian descent3 and proceeded to argue for "facts" that are false, like saying Russia blocked the implementation of the Minsk accord.4 He tried to talk over the moderator when the moderator corrected some of the ethnic Russian's "information".
Even though their actions may not have been coordinated, both these speakers hogged air time and stridently maintained they had "facts" that conclusively disproved what the speakers had said….even though those "facts" were falsehoods.
The start of in-person intimidation of anti-Ukraine war voices is a troubling development. This is harder to follow than big media stories but bears watching.
1 Macgregor seems to be applying the classic rule of thumb in modern wars of 3 casualties for every death. But other reports about Ukraine suggest its ratio of dead to injured is way way high due to not having enough field hospitals close to the front so as to be able to treat the wounded in the crucial first hour. So I would assume that Macgregor's estimate of total Ukraine dead, at 150,000, is pretty good, but the casualties are much lower, at say 150,000. To put it another way, Ukraine's high level of deaths is due in part to not being prepared to accept the level of casualties it is suffering,
2 Douglas Macgregor dismissed the idea that Ukraine would become the ground for an insurgent war. He explained why the terrain and population distribution worked strongly against that.
3 Entirely possible. For instance, Victoria Nuland's paternal grandfather was a Russian Jew.
.4 To add: the Maidan coup was not in conformity with constitutional processes, for instance, there were too few votes in the legislature for the legal ouster of Yanukovich; the early 1930s Soviet famine did not target Ukraine even though Ukraine did suffer the most.
This entry was posted in Banana republic, Europe, Media watch, Politics, Russia on January 17, 2023 by Yves Smith.
← Natural Gas Futures in Europe Plunge 15% Today, Down 84% from Crazy Spike Physical Wallets Are Shrinking in Relevance in UK, Claims Survey Commissioned by Mastercard →
John R Moffett January 17, 2023 at 7:19 am
It's all very depressing to know that we don't have journalism in this country (except for small outlets). The corporate owned news has always been filled with pro-war propaganda, but this is far worse than even the Iraq WMD fairly tales. Just like we are not getting any mea culpa's from the corporate owned news on "Russiagate", we will never get any remorse or reconciliation on their Ukraine boosterism. They will just move on to the next propaganda campaign, whatever that turns out to be.
non-prophet Jim January 17, 2023 at 8:39 am
Won't it be wonderful when the conflict in Ukraine grinds to its inevitable conclusion, and all the media mis-informers are held up to eternal ridicule while being consigned to the dustbin of history and silenced in favor of more accurate voices.
Oh, wait. I forgot that consequences were for other people.
Well, one can dream.
hk January 17, 2023 at 12:56 pm
Japan in 1944. There won't be B29's flying overhead dropping some cargo soon to prove otherwise….at least I hope not.
Carolinian January 17, 2023 at 7:39 am
I've only seen a couple of Ukraine flags in my neighborhood but I would bet they are flown by elderly people who spend a lot of time on MSNBC or just NBC and the other networks. Visual propaganda works. To suggest that it is fake is to challenge not just the attitudes toward a far away country but the companionship that those news personalities provide. You could say the visceral hatred of Trump is part of the same thing with perhaps more justification.
And of course Fox News has always exploited the same phenomenon and arguably pioneered it. Ailes said "you are nothing if not on TV."
fresno dan January 17, 2023 at 8:24 am
It is quite amazing that McCarthism (no, not that one – the one from the 50's) and the red scare has come back. And censorship, character assassination, and wholesale lying along with it…only this time there is greater bipartisan consensus.
Catchymango January 17, 2023 at 3:17 pm
Here in Toronto the Ukraine flag being displayed outside homes is generally a good indicator that a neighbourhood has been invaded by PMC yuppies of the "in this house" variety. Maybe they are themselves (or the friends of) PMC Ukrainian diaspora, but if you go to the more Asian suburbs you won't find any of this Ukraine boosterism. I feel bad for the Russian/Ukrainian areas because they definitely must feel pressure to denounce and conform, but I'm hopeful that the wave of hysteria has crested and that more ppl will not buy into this PMC media bonanza which was so pervasive last year.
PlutoniumKun January 17, 2023 at 7:42 am
When you look into history, its surprisingly common to see examples where a country lost a war, but somehow most people didn't notice (or accept) it. The US of course is an expert in this, in having lost in Iraq and Afghanistan, just to take the most recent examples. China engaged in a long struggle parallel to and after the US lost to tame Vietnam and failed at that too, and most Chinese didn't notice. There is also the insidious loss, such as Germany suffered in WWI, which was so subtle that many Germans simply refused to believe it. It is one of the privileges of large, rich countries with tame/controlled media that this is possible. How can you lose a war when the enemy is still well away from your border? Small countries rarely have this luxury, but a few have tried it, most notably Paraguay in the 19th Century.
I think its entirely probable that if and when Ukraine unambiguously loses the war, it will pass unnoticed in the west. Its hard to say what form it will take – Ukraine may simply fall apart as a functioning state, or the Russians may stop pushing forward and will keep punishing attempted counterattacks until they stop. Or a temporary armistice may de facto become semi-permanent (like in Korea). But only people with an interest in saying 'we lost', or with the integrity to admit it will do so, and there are no signs at all of anyone like that around. The war is too lucrative for a lot of ideological and financial interests.
zagonostra January 17, 2023 at 8:12 am
Maybe it's because this post opens with a reference to PKD, I'm reminded that in VALIS, not only will the Ukraine war "pass unnoticed" but I'm reminded that "The Empire Never Ended," as Horselover obsessively keeps repeating in the novel.
Thuto January 17, 2023 at 8:30 am
Right now the western msm is lying by commission on an unprecedented scale, when the time comes that the evidence of a comprehensive Russian victory in Ukraine becomes unimpeachable and all the spin in the world can't hide this reality, they'll simply switch to lying by omission. Ukraine war coverage will simply disappear, and into that propaganda vacuum will step the next "current thing" (much like nature, which, as postulated by Aristotle, abhors a vacuum, so too do propagandists abhor a propaganda vacuum). That's how you get the public to not notice something, you simply pretend it didn't happen and that's what I expect the press to do, turn a blind eye, hop onto the next hype/propaganda train and bring the ignorant public along with them.
I'm with David below in that I think that whatever happens, it will be spun as a western victory. I think there is quite literally no outcome that cannot and will not be portrayed as some sort of 'win' and loss for Russia (as an Irishman, I'm very familiar with a history wretched military calamaties being spun as moral victories). But as you say, once the victory is declared, there will be no sign at all in the media apart from the inevitable movie where Tom Cruise plays the Ghost of Kviv.
I can only imagine such a declaration of victory won't be accompanied by any victory laps and parades of Zelensky and co in the streets of western capitals because that might encourage people to prod the foundations of such a claim, only to find it doesn't hold up well under scrutiny.
Basil Pesto January 17, 2023 at 9:06 am
Ukraine war coverage will simply disappear, and into that propaganda vacuum will step the next "current thing" (much like nature, which, as postulated by Aristotle, abhors a vacuum, so too do propagandists abhor a propaganda vacuum).
I'm not a fan of the "current thing" meme, which is reductive if applied too willy-nilly, but on the other hand I've been making the point for a while that the dynamic you describe is pretty much what happened with The War On Terror in the mid-10s. I do gather that ISIS was significantly weakened around this time, but also I am struck by how The War On Terror, the overbearing focus of American Foreign Policy for nearly 15 years, just sort of… stopped. It started to slow down when it became apparent that The Donald was gaining significant and unignorable traction in 2015, and reporting and analysis on this phenomenon became extremely lucrative. Then the pivot to full blown anti-Russian hysteria after Nov 2016 seemingly replaced all the War on Terror anxiety. The bargain-bin-destined journalists' tomes about American mis/adventures in the mid-East were replaced by bargain-bin-destined journalists' tomes about dastardly Putin's Russia. I assume the middle east didn't spontaneously cease to be a quagmire around that time?
So perhaps something similar will happen here. It seems likely the pivot will be to some conflagration with China. Yay?
The clickbait farms they run over there at the NYT, FT, WAPO et al will need a new "adversary" narrative to achieve liftoff quickly to keep the clicks coming, and China is the one with the lowest drag coefficient so like you I expect that to be the pivot.
elkern January 17, 2023 at 11:07 am
Basil – "around that time", Russia sent forces to Syria which blocked the Mossad/CIA project to turn Syria into a failed State too weak, poor, & divided to provide support for Lebanon & Palestinians. IMO, that was a key tipping point for US media losing interest in the GWOT and re-focusing on Russia.
Actually, The War On Terror (or, more accurately, the War on Bad Muslims) had been getting hard to cover in Syria, as it became impossible to hide the fact that we (USA) were supporting ["former"] terrorists against the government of Syria. IIRC, at one point, there were something like 170 different jihadi groups fighting the Assad regime and (mostly) each other, and The Story got way too complicated for TV, so it was already on the way to the back burner before Russia stepped in (except for the occasional "Another Assad Atrocity" stories provided by Bellingcat).
digi_owl January 17, 2023 at 12:23 pm
Wonder why they thought Russia would not intervene.
After all, Russia was leasing port facilities for their fleet there. As well as Assad blocking any idea of a pipeline from Iraq to Europe.
Piotr Berman January 18, 2023 at 9:00 pm
Was there a country bordering Iran and Pakistan? I have a dim recollection that something happened there, but I cannot recall what is the name and what happened. And it is awkward to ask around…
Gregorio January 17, 2023 at 9:48 am
Ukraine reminds me of Monty Python's Black Knight.
https://youtu.be/ZmInkxbvlCs
I suspect it is damned easy for USA to pull this trick, as any retaliatory invasion would have to cross one of its oceanic moats.
As for with China and Vietnam, i suspect Vietnam was not interested in invading China proper so once the border was secure they let the issue rest.
tevhatch January 17, 2023 at 11:54 pm
"China engaged in a long struggle parallel to and after the US lost to tame Vietnam and failed at that too, and most Chinese didn't notice." Odd, that, because a long time, very popular ballad is rolled out every year on Red October commemorates the losses in the Sino-Vietnam War. Every year schools march out their students to local "hero" memorials and commemorate men and women who died in that conflict along with the big ones.
The war probably would be called a SMO under the new vocabulary. Before the invasion or operation (pick your label) even started China had set a deadline for withdrawal back over the border, a long with a list of expected changes in Vietnam's behavior that the "punishment" was expected to extract. Some of China's goals were achieved while others, like the ending of Vietnam's support for the overthrow of China and USA's client, Pol Pot, did not. Mixed bag, high costs, but it also set the PLA straight that a army structured to carry out defensive protection of territory by use of countryside dispersal and hit and run is ill suited to excursionary movement (and more importantly, protection of industry and urban areas necessary to a modern economy). The war sped the drive to modernize the PLA by ending the careers of many old generals who techniques harken back to fighting either CKS or MacArthur or both.
agent ranger smith January 18, 2023 at 12:21 am
What if Russia permitted the counterattacks to appear to semi-succeed just enough that the Ukraine-gov and the foreign supporters kept fighting and supporting till there was precisely nothing left to fight with anymore?
In other words, what if the Russia-gov decides to let Ukraine fight all the way down to a Chaco Wars outcome?
JohnnyGL January 17, 2023 at 8:08 am
Yves' points here are all well-taken. However, the only additional point i'd like to make is how the polls of the american public suggest skepticism that ukraine is winning, and have been shifting against support for the war.
This is a US public that understands how well the elites classes can keep a big lie going for an extended period of time, especially after the fraud of the 20yr Afghan war was revealed when the provisional govt fell in about 2 weeks.
LY January 17, 2023 at 9:41 am
Will lack of "support for the war" translate into votes or campaign donations?
Supporting the war gets campaign donations and votes in my neck of the woods (northern NJ), where there is a sizable Ukrainian-American population. While my congress critter is a military Democrat, there aren't much votes to be gleaned for going against the war as the people who write letters and show up to the public events support the war.
I can see that dynamic in the relationship with Cuba. There aren't much votes or campaign donations for improving relations with Cuba.
Citizens united makes shifts in campaign donations basically meaningless.
And FPTP makes any changes in voting futile.
The US system is rigged to be a sham.
hk January 17, 2023 at 1:12 pm
Anyone who blames FPTP for problems in US should look at Germany. The former Greens, now Warmongers, despite quite small electoral support, run Germany with impunity because of PR and the strange coalition politics that it engenders (and yes, that also harkens back to how a strange little man with mustache came to power long ago–as everyone points out, he and his gang were never exactly "voted into" power, but nobody was, for years, because of proportional representation, and that set up the stage for the weird coalition politics that did bring him to power.). If politics and society are messed up, no electoral institution can stop the s**tstorm.
Kouros January 17, 2023 at 8:23 pm
What about the chopped liver chancellor from SPD. he's lacking a backbone is more damaging than green's impunity and aggressivity. And their green credentials are now busted. Clearing a village for surface mining for the dirties coal there will sink them.
However, it becomes clearer by the day that the greens' role and their leaders have been groomed for only one purpose: keep Germany down on the war with Russia.
David January 17, 2023 at 8:09 am
I've said for a long time now that the West will be able to claim "victory", or at least not defeat, by establishing fantastical victory conditions that the Russians never had and never wanted, and then claiming credit for frustrating them. With luck, this will just about enable western elites to hang onto power, at least temporarily.
But in the wider sense, we're seeing the latest and most degenerate stage of the stupidity and ignorance which has afflicted the western media and pundit class over the last year. They didn't know about the war in the Donbas, nobody told them Russia had the strongest army in Europe, nobody knew about the defensive lines in Donbas, nobody understood the seriousness of the Russian threats, nobody realised the Russians hoped for a short, sharp war to bring the Ukrainians to their senses, nobody understood why Russia went over to Plan B while it mobilised, nobody realised the Russians had been stockpiling weapons and ammunition for years; nobody knew what attrition warfare was …. In other words, the most disgraceful example of ignorance and stupidity of any ruling class in modern times. It will go on to the end, and "victory" will be proclaimed.
Just to get a broader perspective, I do follow a few 'conventional' western analysts (military and political) on the war, and its striking that they still haven't even come to grips with any of the points you've summarised. I'm pretty sure some know the truth but think its better for the careers not to admit it – others have been openly bullied into getting with the narrative – but its genuinely disturbing that so many 'experts' were so completely ignorant in their own supposed area of expertise and a year later, have literally not learned a thing. Kind of reminds me of covid.
Louis Fyne January 17, 2023 at 8:52 am
It is highly unlikely that Russia will attempt to seize physical control of Kyiv (given insurgency risk), but of course as long as Kyiv is unoccupied, the plucky Ukrainians defeated the Huns per the Narrative.
And given the American public's ignorance of basic geography, a hypothetical post-war status quo that leaves Kyiv-controlled Ukraine a landlocked country will go completely unnoticed.
Yves Smith Post author January 17, 2023 at 10:10 am
Odds generally against it, but the feral 20 Republicans in the House plan to make a huge stink about Ukraine war funding and want to hang that albatross firmly on Biden's neck.
The more the Biden Administration tries to frustrate their effort to cut funding, the more they will go to war v. the war. They are already trying to reopen the lame duck bill with the what, >$40 billion of Ukraine goodies via debt ceiling brinksmanship.
Right wing media will be all over it. The harder the establishment fights for more $, the more the conservatives will attack the war.
So they might succeed in making it difficult to bury the rancid corpse.
Karl January 17, 2023 at 12:01 pm
I do wonder if our polarized politics, as you point out, invalidates the thesis that the MSM will avoid serious hand-wringing over a Ukrainian defeat. Also, the MSM will need scapegoats. And the vitriol sells clicks.
Also the memoirs will be written. I can imagine, in one such memoir, CIA Director says to Biden, "Mr. President, beating the Russkies is a slam dunk!", channeling his inner Tenet.
This is, ironically, how FTPT is supposed to bring the rot to the open–the "other guys" are bums! (PR never would, and it'll all be buried in coalition bargains.). I wanted to say that in response to those who think FTPT is an unmitigated bad.
redleg January 17, 2023 at 1:49 pm
CNN, MSNBC, PBS et al.: The MAGAs cut the war funding and Ukraine had to surrender! They were fighting with their hands tied and still nearly defeated Russia/ made a run for Vladivostok! Just one more week of funding and the Rooskies would have run out of ammunition!
Does that sound feasible?
ChrisPacific January 17, 2023 at 3:12 pm
It's not like the media isn't equally polarized. Fox will be foaming at the mouth over it while CNN et. al. are either ignoring it or spinning it.
NotTimothyGeithner January 17, 2023 at 4:06 pm
"feral 20 Republicans"
vao January 17, 2023 at 10:26 am
This is highly probable, but that approach might hit a serious snag if, once the defeat becomes unmanageable, various parties (military, SBU, the multitude of para-military fascist movements, oligarchs…), attribute the responsibility for failure to each other and attempt to seize whatever power remains to be taken. Difficult to argue for a victorious issue when team Ukraine sinks in internecine warfare — I mean the real one, with fighting in the barricaded streets of Kiev, death squads raiding adversaries' headquarters, and the much-touted heroes of the Ukrainian war (e.g. Zelensky or Zaluzhny) being hanged in the streets by their own people.
agent ranger smith January 18, 2023 at 2:12 am
Well . . . . that outcome would make Ukraine truly not a NATO-platform threat to Russia.
The main question is not how the likely Russian success in Ukraine will be presented, but how the new arms race and nuclear dangers will be hidden from the western public, especially the fact that Europe (nor the US) has absolutely no protection to speak of against Russian supersonic and hypersonic missiles, or ICBMs (for the US – Sarmat).
I am in fact looking for an arms' race, with Europe paying to the teeth for energy and raw materials, having to re-arm and supporting the social "entitlements", while nobody buying their products for being too expensive and with China building processing capacity in the middle east, so that more oil products are sold from there, rather than crude oil and LNG.
The Guns and Butter approach taken by the US during Vietnam war didn't work. Re-arming from a very low base and competing with Russia and China at the same time, regardless for the Japanese Government (the population doesn't seem that keen) appetite for weapons and powerful military, seems like a loosing game.
Bosko January 17, 2023 at 8:10 am
An interesting and timely analysis. This has come up a couple times on Michael Tracey's Call-In, which I listen to occasionally. He co-hosts with Richard Hanannia (sp?), who will sometimes maintain that Russia's war has been a "disaster," in a way that demonstrates he thinks this point is obvious, as if there were some unassailable objective accounting that substantiates Russian military "failures" (earlier in the year, he said he thought the NYTimes was a good objective source for the state of the military conflict!). Tracey has pushed back at this at times. But I wholeheartedly believe in the question Yves poses here: How do we detect where the lies end and the facts begin? I don't think we can believe any of the facts or framing of the corporate media (following the guidelines well established by Manufacturing Consent) at this point. You have to parse very closely, as you do above ("Soledar Victory could cost Russia
Dear," ??), to see the subtext of some of these stories. On that note, I noticed that the Portland (ME) Press Herald, which is uncritically and passionately pro-Ukraine, and publishes AP garbage on world events, ran this headline today: "Ukraine strike deaths hit 40; Russia seen preparing long war." You can hear in that second clause the faint ringing of an anticipated defeat.
Good question. While reading up on the evolution of the Red Army during latter half of WW2 and the Cold War, I was pretty surprised at how dated Western stereotypes if the Russian Army is (even if it's repeated, literally, today, to "explain" how Soledar and Bakhmut cost the Russians dearly.). Since 1942, Russians have gone away from really manpower intensive tactics, sensibly since it cost them dearly during the first year of the war when they had no other choice, and the Chechen Wars taught/reminded them the value of well trained and skilled professional army in addition to massive firepower. The Western propaganda nowadays sounds like the kind of stories WW2 German generals spun about the Red Army. (I suppose that may be more literally true than not, as many German generals and staff officers were employed by the Pentagon after the war to write about their experiences for US military, especially about the Eastern Front )
I think what is happening with reporting in Ukraine is just a small microcosm of what is happening in general with reporting in the US. At least with Iraq, afterwards there was acknowledgement that there were no WMD's, and that only a small amount of thinking would have revealed it at the time.
Now I am afraid that our society is no longer secular. We now live in a world of dogma, where believeing what you should believe, takes precedence over believing what is.
Kind of astounding that things have evolved this way. My initial theory would have been that the green eye shades of neoliberalism would have seen what a costly boondoggle Ukraine is, but like a certain Fed chief, there was a flaw in my thinking. It may be a money losing proposition to support Ukraine for the society as a whole, but it is very profitable for the few people who want us to support Ukraine…
And among the few who support Ukraine is the MSM.
And this applies to so many other problems in this society.
nippersdad January 17, 2023 at 9:00 am
"It may be a money losing proposition to support Ukraine for the society as a whole, but it is very profitable for the few people who want us to support Ukraine…"
Gilens and Page writ large. I can't remember the last time any of us got a vote on such things, even Sanders has now gone over to the dark side. Just goes to show that our only real export anymore is war, and our elite classes know it.
Samuel Conner January 17, 2023 at 10:13 am
> where believing what you should believe
or perhaps "believing what your influencers (which might be your own desires) want you to believe."
We can see this in the widespread response to the pandemic, that "it's over and life can go back to normal." This is what a seeming majority of the people want, realities "on the ground" be damned.
I expect that it will not go back to "normal" in the years that remain to me, not in terms of the pandemic and not in terms of "international peace."
fresno dan January 17, 2023 at 5:46 pm
I am at the point where I won't be around in a few years…and I am glad I won't be. I posted once that every president is worse than the last one.
John Taylor January 22, 2023 at 3:57 am
That should tell us all the Empires days are numbered and in short supply. Their not even pretending there will be a functioning USA in a decades time. Where is any planning for the future? What's the ideas coming out of Washington to fix a war torn populace, massive inequalities not heard of in all of human history, the constant homeless crisis, COVID breaking our decrepit healthcare system & the disaster we're turning the natural environment into. Just to name a few.
The Rev Kev January 17, 2023 at 8:31 am
The neocons do not want to quit the Ukraine as they have no reverse gear. But as the situation for the Ukrainians deteriorate, they compensate by throwing any military gear that they can find into the fray – while being ignorant of the logistics of each weapon system sent. But as that country collapses and the Russians move in, there will of course be a panic in western media about this. So what will happen then? I will call it here. I think that the US will walk away. And I heard the boys at the Duran talking about this point too. They have done this in other countries and the most recent example was in Afghanistan. Remember how the foreign Embassies in Kabul woke up one morning and discovered that there was nobody left at the US Embassy but they were all at the airport? Same again for the Ukraine. They will walk away and leave the whole mess for the Europeans to deal with – while criticizing from afar any move that is not anti-Russian. But here is the key point. How long were they talking about the evacuation from Afghanistan after it was finished, Two or three weeks? And then it kinda disappeared from the headlines. Probably DC will ramp up tensions with China which will push nearly all news about the remnants of the Ukraine from the media and that will be it.
Jeff V January 17, 2023 at 9:07 am
I hope you are wrong about China.
I'm not sure I can take another case of "We're ending this terrible war so we can start another one somewhere else". Especially since once we (the West) have lost to China there'll be nowhere left to go apart from breaking out the nukes.
britzklieg January 17, 2023 at 10:37 am
there's always Canada: https://www.youtube.com/watch?v=t3874lxv4lI
We got the plans.
https://en.m.wikipedia.org/wiki/War_Plan_Red
DSP January 17, 2023 at 6:34 pm
You're forgetting Mexico. There's some sort of Commie down there who's not exactly following orders.
I was seeing stories yesterday that Blinken and Yellen are to meet with their Chinese counterparts. Given the topics under discussion it was clear that those talks were doomed to fail. The Chinese read-outs are going to be epic.
Yves Smith Post author January 17, 2023 at 9:49 am
Remember the horrible Alaska summit….at our instigation? I don't see how Blinken can ever overcome that first impression even if he were to try to be reasonable.
Louis Fyne January 17, 2023 at 11:06 am
Blinken sounded, for a diplomat, very hawkish and anti-China during his public statements during last week's US-Japan summit
Talk about adding fuel to a fire.
Heckuva a job, Blinkie
From the first day i heard his name i think of him as blinkered Blinken.
agent ranger smith January 19, 2023 at 2:46 pm
Like a toothless wolf-warrior?
nippersdad January 17, 2023 at 11:09 am
And that one in Rome with Sullivan! Shooting themselves in the feet appears to be a competitive sport at the WH. Reading between the lines, it looks like they are going for the gold this time.
https://www.politico.com/news/2023/01/16/blinken-china-diplomatic-trip-00078036
https://www.reuters.com/world/yellen-meet-chinas-vice-premier-liu-he-zurich-wednesday-us-treasury-2023-01-16/
jan January 17, 2023 at 11:12 am
Maybe the new foreign minister means a little bit of a reset? Even though the old FM is his boss as i understand?
Ukraine/Russia is not Afghanistan. An unresolved security architecture for Europe, one that is unsatisfactory for Russia, will keep this pustule festering.
Brooklin Bridge January 17, 2023 at 8:56 am
FWIW, I'm getting advertisements in the comments section (right hand margin) for Ukrainian women, with poses that ensure they will get a sore neck – and no it doesn't make them look cuddly or friendly or romantic for desktop framed photos; more like tragic. Not sure if the idea is for marriage visas or what but at my age it is ludicrous and comforting at the same time in the sense that the "algo" level remains comfortingly stupid (though my heart goes out to the suffering underlying these exploitative, inept ads). It's a little scary in that it suggests they, the shadowy they, have figured out my sex whereas up until now, the subject matter usually got it wrong as often as right.
Also FWIW and because reality always seems to want to prove what an idiot I am, I have a cousin who married a Ukrainian (before this conflict- I think from one of these sorts of ads or from some sort of international dating site) and the marriage has turned out beautifully; a sort of romantic dream marriage with kids and a deep love and caring on both sides. Go figure.
Had an advertisement appear for this 37 year-old woman from Kharkiv, Ukraine myself in one of the article in Links. Of course I regards these adds with suspicion anyway but ask myself if that woman might also have the hots for Stepan Bandera.
FWIW, I don't get those ads. But when I visit YouTube, anyone who follows The Duran boyz, Military Summary, Brian Berletic, with doses of Macgregor, Scott Ritter, and Andrei Martyanov for some variety as to be male and then a certain type of male. So I get survivalists ads (you'd be surprised how many), soy boy man bun meal substitutes, MANY MANY prostate ads, some fix your eyes and hearing ads, exercise equipment, investment schemes/scams…and the very occasional Ukraine, Sudan, and other sad hungry area ad.
zagonostra January 17, 2023 at 10:05 am
They not only know your sex but your approximate age and marital status. I too am bombarded by these ads, and, I resent them.
I am very solicitous on what images I allow myself to be exposed to, light/images/logos are the mind's food.
A brilliant essay by a brilliant scholar, Ivan illich.
http://www.davidtinapple.com/illich/2001_guarding_the_eye.PDF
They have my sex wrong, see my notes. They infer sex from what you visit. YouTube thinks I am a manly man and seems confused as to whether in my 30s or 60s.
nigel rooney January 19, 2023 at 6:57 pm
Thank you for this. Wish I had the intellectual capacity to understand it better. But what I managed to take away was overwhelmingly worth the effort.
Obviously I'm not a worthy critic, but fwiw, absolutely outstanding and with potentially so many ramifications, all of which if deemed profitable will of course be inevitably exploited by those whose predilection it is to do such things.
You can use the NIA Consumer Opt Out to disable targeted ads in bulk if you want. It won't stop them knowing who you are, but it will prevent them from monetizing the information, which gives me a certain vindictive satisfaction. They can still target based on your location but nothing else.
Yves Smith Post author January 17, 2023 at 5:10 pm
Oh, and more important, have contacted ad service re those "dating" ads. They are NOT supposed to be serving them.
eg January 18, 2023 at 5:05 am
It could be worse — the latest run of ads I'm seeing are of the "signs you may have Alzheimer's" variety … :-/
Cetra Ess January 17, 2023 at 9:07 am
I'm reminded of the novel All Quiet On The Western Front where Erich Maria Remarque paints a picture of how civilians are completely detached from the reality of the war, the happenings on the front, encouraging loved ones to join and fight for honor and duty when in reality it's entirely futile, just a complete waste of life, and the cause is absurdly stupid and unjust.
In one early scene a schoolmaster encourages students to sign up, promising glory. When soldiers return home on leave their entire family thinks Germany is winning, things are looking up, the news is reporting everything is hunkydory.
This conflict has the same feel to it. Patriotism and jingoism are stupid that way, just waste of life for complete fabrications and lies. We don't seem to learn.
polar donkey January 17, 2023 at 11:15 am
When the war started I tried to explain to some people I knew this would be a strategic loss for the US. Biden and his administration, along with administrations for the past 30 years, had been making terrible mistakes and the world didn't have to be this way. Now chickens coming home to roost. The Biden administration just seemed the most arrogant and stupid, a reflection of the leader I guess. I tried to explain that while you may feel short term problems, gas/food price spike etc, we will really feel it in 3 years, when the war is over. We lost and most of the world sees we're a corrupt paper tiger. People have gotten used to crappy situation and if media just ignores Ukraine defeat and it's implications, I doubt most Americans will put 2 + 2 together in 2025, when things are across the board worse than February 2022. Reducing censorship on Twitter and social may offer a glimmer of hope though.
Valerie in Australia January 18, 2023 at 10:13 pm
CE, So glad you brought up one of the greatest books ever written on war, All Quiet On The Western Front. I remember the part where the main character and narrator, Paul,comments that in their desperation toward the end of the war, the Germans send younger and younger "men" who are easily killed and wounded due to their inexperience. I think of this book when I read about the conscripted Ukrainian troops. You are right, this conflict has the same feel to it – it is a tragic waste of life.
Ashburn January 17, 2023 at 9:43 am
I agree that most of the MSM will quickly want to move on to other matters after the inevitable narrative collapse due to facts on the ground.
What interests me is what becomes of the current regime in Ukraine. Will we see a military putsch to oust Zelensky who will then be given safe haven somewhere in the West? Will the new regime be as loyal to US/NATO interests or will they simply seek to profit where they can off whatever remains of the Ukrainian state? Such an end might provide the required rationale for the US and NATO to cut their losses and walk away.
ambrit January 17, 2023 at 10:56 am
I foresee many of the hard line neo-adjacent Ukrainians being quietly brought over to America, as was the case with a very similar class of person after WW-2. Back then America's nomenklatura named it 'Operation Paperclip.' In the same vein, I nominate for the title of the post-Ukraine War moving of the neo-adjacent nasties to safety in America: 'Operation Rubber Bandera.'
See, the former 'Hero of Ukraine': https://en.wikipedia.org/wiki/Stepan_Bandera
Saint Dulles would be proud.
Lex January 17, 2023 at 11:18 am
For sure. There's real potential for blowback in this situation too though. I'm not sure the hardcore of the Ukrainian nationalists are going to take kindly to being abandoned by the west. And abandonment will be an easy political point to make in domestic, Ukrainian politics (assuming Russia doesn't occupy the whole country). It's pretty widely understood inside Ukraine that they're just the sharp point of NATO's spear and they're ok with it to some degree. Will they be ok with it if NATO leaves them? The whole Ukrainian program is built on grievances. Not hard to see a situation where the conclusion becomes "We could have defeated Russia but NATO stabbed us in the back".
It could be worse. They could be ruled from Warsaw. Oh, wait!
Von Braun could give us rockets. Von Mellenthin and Galen could give us intel on Russians. What can Zelenski give us? (Maybe Zaluzhniyi could play Galen.)
TMR January 17, 2023 at 1:53 pm
More likely they're brought to Canada. There's already a powerful Ukrainian nationalist diaspora, brought over after WWII from the OUN and other far-right factions, so much so that one of their own is the deputy PM. Wages are lower as well.
Revenant January 17, 2023 at 6:16 pm
Lol! Chapeau, Ambrit!
Cetra Ess January 17, 2023 at 1:50 pm
I don't see Zelensky surviving this. To Azov he was a traitor even well before the SMO, they already had plans for him, even had the tree selected. He was probably only days away from being strung up before Putin saved him. So if the war ends they'll likely revisit their earlier promises, follow through.
Indeed, now that I'm thinking about it his only hope is probably to escape to Russia, Putin has more obvious interest in keeping him alive than anyone else in the world, especially the Americans. I imagine there are so many plans floating right now to stage his demise. Wow, yeah, I feel sorry for him, but I guess he has chosen.
MRLost January 17, 2023 at 10:57 am
Don't forget America's glorious victory in the War on Drugs.
I'm with Lambert. The media environment around Ukraine is ridiculous and far, far worse than Iraq. But if Trump had done this the media coverage would be different. As it is, Ukraine has started to become a partisan issue in the US and that's bad for Zelensky.
Much of the coverage and political / leadership reaction stems from Russia being uncooperative in that it hasn't done things the way the US expected Russia to do things. It affects everything from the huge drawdown of artillery ammunition to the slow and piecemeal escalation through small deliveries of ever-heavier equipment. This wasn't the war the US wanted. The US wanted/expected big arrows to capture Kiev and bring down the Zelensky government, because that's what the US would do. In that scenario, Ukraine was very well positioned for an Iraq insurgency on steroids and the type of material as well as training that the US initially supplied are perfect for that. Honestly, Russia would have lost that war because everyone loses that type of war.
That Russia didn't do what it was supposed to do drives the media narrative to some degree. Political leadership doesn't know how to process the results of bad analysis nor did it ever have a serious Plan B. Politics and media are so tightly intertwined that we're seeing a funhouse mirror reflection of the reactive nature of western involvement. This is happening both in the "Ukraine can't appear to be losing" as well as the breathless coverage of new material supplies as they're being discussed. Those should be lined up and ready to go by the time they hit the news, not as potential supplies or with caveats of X months until they're ready.
While I'm not sure that taking Kiev would have suddenly made insurgency possible, I do think there is something to this idea that for all the talk of Russia stupidly "taking the bait" the US was laying out, that this hasn't become the war the US wanted. Sure they're making money hand over fist but Russia's economy has seemingly not collapsed and likely won't anytime soon, China has not really been put into much of a diplomatic quandary as Russia has not solicited it openly for support, and other countries have not pursued sanctions by and large outside of the west. If Russia achieves its objectives in Ukraine, which is a very real possibility now, the west may be in trouble.
ZenBean January 17, 2023 at 11:03 am
I don't expect the US, UK and its balto-polish satrapies to simply walk away from this war once the Russian's have won it. One purpose of this conflict is clearly to prevent Europe from trading/ integrating with the rest of Eurasia and to stymie European autonomy. Should the Ukrainian issue slowly fade from the limelight, old habits would surely resurface after some time: vices like wanting to develop mutually beneficial relations with Russia. It doesn't matter who wins the war, what's important is that what comes after it is either a poisoned peace or even better: an eternally frozen conflict. This would spell doom for the core EU and I'm not confident that they will able to prevent this scenario.
Susan the other January 17, 2023 at 3:29 pm
I do think this is the crux. But it is such a dynamic situation economically that the international relations will become relentlessly more cooperative. There can't be any other future, really, can there? Amidst the distractions in Ukraine, Yellen is doing a grand tour with Blinkie to meet with everyone except the Russians. I assume the most important thing is trade in high value dollars so Russia with all its natural resources will have to be price capped. My guess.
c_heale January 18, 2023 at 8:19 am
I'm not sure the UK will matter much any more. The UK government about to remove about 3000 laws which come from the EU (it won't remove them all, but I'm sure removal of many of them will have unintended negative consequences). If there wasn't enough chaos and loss of trade and jobs due to Brexit already, this will make things much worse.
Camelotkidd January 17, 2023 at 11:16 am
I want my country back.
I can only see one way that the power of the bi-partisan war party, deep state, MIC, etc. can be broken – a complete and utter defeat that can't be hidden. Defeat that cannot be ignored, cannot be explained away, defeat too big and too obvious for the servile corporate media to bury.
And this is why I want Russia to prevail in the US proxy war in Ukraine. It's because I see this as the opportunity for the humiliating defeat that will shatter the power of this internal enemy.
So what I'm saying is that end of the American empire will require a disaster so profound that there's no escaping accountability for the neocons and their fellow travelers among the elite political and media class.
Unfortunately, the sentiment expressed by Yves and the comments is all too likely–"the disaster may happen without any American noticing or acknowledging. I'm afraid that our society is no longer secular. We now live in a world of dogma, where believing what you should believe, takes precedence over believing what is."
Starry Gordon January 17, 2023 at 11:19 am
Isn't this the first war managed by the present PMC? World War 2 was managed by industrialists, in later wars the technocrats took over. But I recall long ago some journalist who was trying to characterize their successors with a catchy phrase calling them "symbol managers". Hence we observe a war the US starts but won't fight materially, that is, with an actual army. It can always be said such a war is a victory if the symbols can be correctly managed. The lower orders won't care; they know they're being lied to already.
timbers January 17, 2023 at 11:50 am
"propaganda shrouding the Ukraine conflict is far more intense and truth-disengaged than anything has encountered."…..I would add another reason for this – the vastly increased homoginization and control of US media. It's almost impossible to express an opposite view on MSM. Notice too the complete absence of an anti war movement, which did exist during the Iraq War. And we know the FBI and co or who ever whatevet has replaced them are telling social media to delete and ban unauthorized opinions.
David in Santa Cruz January 17, 2023 at 11:56 am
Orwell wasn't a novelist. He was an oracle.
Excellent post and discussion.
John k January 17, 2023 at 1:33 pm
Morgan Stanley and Goldman each have come out with papers studying investment opportunities in a multi-polar world (per zh). Seems likely to me their multi includes Russia, and they wouldn't think that if Russia was losing, and maybe wouldn't have happened now if Russia hadn't invaded, which imo is establishing nato to be a paper tiger. Anyway, if we're run by finance, imo they're acknowledging Ukraine will lose, and maybe this is the signal it's time for the narrative to change.
The Iraq war ended years ago, some msm acknowledged mistakes were made, dunno if there will be any such m4a culpa this time. Or if mistakes are acknowledged they will be z' s mis info etc.
Karl January 17, 2023 at 2:22 pm
The best way to minimize MSM attention to the fallout of this fiasco after Ukraine's defeat is to take steps to quickly minimize such fallout. This means quietly going back to status quo ante in trade with Russia and China so Europe can regain access to cheap energy and food from the East. The U.S. will have little leverage (and maybe little political will left) to frustrate the many repairs in relations that will need to be made.
The EU will need to quietly "modify" economic sanctions to re-open trade blockages. This will also bring down inflation, interest rates, etc. The global economy may start to breathe again.
By 2024 Ukraine will be a distant memory, as Afghanistan is today, if Biden is smart. Oh, wait….
Not sure Russia wants to go back to the status quo ante.
ThirtyOne January 17, 2023 at 2:37 pm
Interesting analysis of why the US does what it does.
"The ultimate goal is far more pragmatic: the survival of the United States of America.
Not just survival as a state entity, but the survival of the structures that enable the realization of super-profits for the elites, on the one hand, and, on the other, the survival of the model and standard of living acquired by the country with the end of the Great Depression, which ended with the beginning of World War II and the revival of the American economy through the military industry.
This survival is simply impossible without military-economic, or more precisely, military-financial world domination."
https://www.thepostil.com/conflict-in-ukraine-genesis/
David in Santa Cruz January 17, 2023 at 4:46 pm
Thanks for the link to Oleg Nesterenko's excellent analysis placing American policy as the expression of Fernand Braudel's view of capitalism being a struggle for state-supported monopoly and the elimination of competition and transparency in markets.
I do think that Nesterenko understates the importance of, "corruption schemes, personal revanchism of Russophobic American elites, those from Eastern European immigration and many others." as mere "additions, derivatives, and consequences" of the American capitalist logic. China, Germany, et al. Ad nauseum are just as capitalistic as America but have not succumbed to the manic Russophobia that poisons American culture. The interplay of the comprehensive corruption practiced by the Bush, Clinton, and Biden clans and the insane Russophobic grudges of the neocons makes all the difference in the imperium's choosing to weaken China and Europe on the Borderlands.
One of the most important pieces of analysis on the current crisis that I have read.
Rent seeking and insane grudges may be like bricks and mortar. The Marxist (?) perspective from Braudel is helpful because it is all too often neglected.
Waking Up January 17, 2023 at 6:00 pm
Excellent link which really makes one stop and consider various factors.
Thank you ThirtyOne.
Don January 17, 2023 at 2:55 pm
I just tried to post a comment, but somehow lost the whole thing.
A shorter version:
NATO is not winning this war, and now is the time for hope, not despair. The narrative in Europe is changing dramatically. There are huge (if mostly unreported) demonstrations. Zelensky and his thugs are attacking anyone who even looks sideways at them — not a confident, totally in-control look. The Baltic states and others in Eastern Europe are ever more shrill and hysterical. The British government is trying to face down a class war.
If anyone told you a year ago that we would be here, would you have been moaning or celebrating? NATO is not just at war with Russia, it is at war with most of humanity — scary, yes — but it is losing. They may be mostly keeping their heads down, but there are way more people on our side than we are being allowed to know.
GramSci January 17, 2023 at 3:10 pm
I wonder how the European Press, and especially the German press will be able to ignore the price of fossil energy going forward. Sure, this was a mild winter, but the summer will be hot as hell, and it's hard to run A/C on green energy.
And then there is the cost to industry, and jobs. Maybe, with all those Ukrainian immigrants, Germany can replace Bangadesh as the world's leading exporter of Christmas tree ornaments?
As Michael Hudson predicted, the real losers in this war will be Germany and the EU…even if NATO 'wins' for real, or in the war headlines.
tindrum January 18, 2023 at 2:51 pm
The German MSM just like the UK has simply stopped talking about the war. They talk about Zeklensky's wife in Davos, about helicopter crashes, about the big "game-changing delivery of tanks" at some time in the future but never about the actual war on the ground that the Ukraine is at present loosing.
The general population is still mostly PRO Ukraine (Putin's war) and are not pushing for a change of policy. Maybe at the end of 2023 when the reality sets in, maybe then there will be a change of opinion, but right now I see no such movement n Germany.
The Rev Kev January 17, 2023 at 8:57 pm
Henry Kissinger pipes up with his latest plan to solve the Ukraine crisis-
'"Before this war, I was opposed to the membership of Ukraine in NATO, because I feared it would start exactly the process that we have seen," Kissinger said. "Now that this process has reached this level, the idea of a neutral Ukraine under these conditions is no longer meaningful."
In Kissinger's view, the way to prevent the conflict from escalating is to do exactly what Kiev, the US and its allies have been doing so far: demand a Russian withdrawal, while giving Ukraine military and financial aid and maintaining "sanctions and other pressures" on Moscow.
Russia should be given an "opening" to rejoin the West, "if it meets the required conditions to participate as a member in these European processes," the elderly diplomat argued. It is important, he said, to avoid the perception that the conflict has become "against Russia itself," which may cause Russians to re-evaluate both their historic "attraction to the culture of Europe and a fear of domination by Europe."
Kissinger also said that the US-led military alliance ought to be the guarantor of the final peace settlement "in whatever forms NATO can develop."'
Henry seriously needs to go away if he thinks that this plan has even a nodding acquaintance with reality.
https://www.rt.com/news/570039-kissinger-ukraine-nato-membership/
Polar Socialist January 17, 2023 at 9:16 pm
This on the day that Putin introduced a bill in the Duma to practically severe all ties Russia has with Council of Europe. What Kissinger thinks Europe can offer to Russia for Russia to be interested in "participating"?
Kissenger – old, out of touch, and not even wrong. He doesn't seem to realise the 1970s were 40+ years ago.
The conflict is against Russia itself. NATO has made that all too clear since 1990.
Tetra January 18, 2023 at 5:45 am
The Blob opinion was something like Ukraine army bleeds Russia, eventually loses, then all the soldiers trained in guerilla war tactics John Rambo the Russians until they leave in shame, Afghanistan 2.0
They will keep cranking the mighty wurlitzer until reality sets in. Then they'll pivot to "support the brave freedom fighters in Stalin Prison Camp Russia Occupied Donbas" as various tattooed fascists blow up police officers, firefighters and apartment buildings. This will have some big media successes, important buildings blown up, Russian administrators killed, but the populace will not join it, they will fully reject it.
Sanctions 3.0 will then be attempted, and will fail. All the while, the massive humanitarian catastrophe will drive people to the Russian side, and the privation of the oligarch run west will be blamed on Putin.
All in all, Russia wins an industrial war because their leadership understands how wars with near peers are won, production and safe supply chains. This is the number lesson that MUST NOT be learned in the west, because there is not space for gold plating when you're trying to get the most weapons per dollar input.
China sits back incredibly reassured that the US cannot win any sort of conflict it stirs up with it, unless it goes nuclear, because the US military industrial complex is a vampire, and as a created being, is not subject to evolution.
hk January 19, 2023 at 12:37 am
US still can't "win" even if it goes nuclear: Russians outnuclear us. I don't think North America reduced to radioactive slag can be spun as a victory, assuming anyone survives.
Deschutes January 18, 2023 at 10:58 am
Having been through all the US instigated imperialist wars going back to Viet Nam, the current coordinated state/corporate media tidal wave of propaganda–utterly divorced from the reality on the ground in Ukraine–is unlike ANYTHING that came before. Not even the media hysteria that followed the 9-11 attacks in NYC to whip up support for the invasion of Afghanistan comes close. It seems with every major war that the US government launches, they intensify and totally control ALL major media outlets so as Yves describes is a total brainwash of the naive general public. And it's truly sinister! In the first several months of the Ukraine war, I lost a few clients when I tried to counter the NPR and CNN narrative they parroted. Yes: I was a "Putin-bot" in their mind for daring to question Washington's narrative of the 'unprovoked invasion of Ukraine'. And so it is not at all surprising that there would be obnoxious idiots in Ritters audience in the Youtube video loudly, angrily attacking him with lies and falsehoods. I wonder if the CIA/State Dept/military propaganda schmucks have found a way to really, really brainwash the public with this massive all-on fiction psy-op that is rammed down the world's throats on a daily basis. We are coming ever closer to an Orwellian dystopia where you will be punished for not parroting what Washington demands you think about its forever wars. I think we all need to fight back against these horrible developments before it's too late.
Someone should do a study to see if the loudest parrots are Clintonites and Obamazoids.
Of course, Sic Semper Tyrannis's successor blog Turcopolier is running its own pro-Ukraine information operation, so there's that.
We won't finally know who was right till we know who finally won at the very end of it all.
podcastkid January 20, 2023 at 7:37 pm
I have no words adequate to thank all the writers here, and a lack below zero when it comes to you, Yves, for establishing this cyber place.
Carycat on "Look for the Helpers": Corsi-Rosenthal Box Round-UpI am surprised nobody has chimed in so...
ambrit on Links 1/29/2023There is the distinct possibility that this Pandemic...
digi_owl on Links 1/29/2023Another alternative used was to drag them on...
digi_owl on Links 1/29/2023Checking certain air traffic maps shows such planes...


text:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@android:id/list"/>

    <LinearLayout
        android:id="@+id/quick_return_footer_ll"
        android:layout_width="match_parent"
        android:layout_height="48dp"
        android:background="@android:color/white"
        android:layout_alignParentBottom="true"
        android:orientation="vertical"
        >
        <View
            android:layout_width="match_parent"
            android:layout_height="1dp"
            android:background="@color/transparent_black_five"/>

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal"
            android:paddingRight="5dp">

            <EditText
                android:layout_height="match_parent"
                android:layout_width="0dp"
                android:layout_weight="6"
                android:textSize="16sp"
                android:layout_margin="5dp"
                android:hint="@string/whats_happening"/>

            <ImageView
                android:layout_height="30dp"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_gravity="center_vertical"
                android:src="@drawable/ic_action_gallery"/>

            <ImageView
                android:layout_height="30dp"
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_gravity="center_vertical"
                android:src="@drawable/ic_action_twitter_camera"/>
        </LinearLayout>

    </LinearLayout>

</RelativeLayout>

redpajama_set_name: RedPajamaGithub


text:
package edu.brown.cs.systems.xtrace.server.impl;

import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.apache.log4j.Logger;

import edu.brown.cs.systems.xtrace.XTraceSettings;
import edu.brown.cs.systems.xtrace.server.api.MetadataStore;
import edu.brown.cs.systems.xtrace.server.api.Report;
import edu.brown.cs.systems.xtrace.server.api.TaskRecord;

public class DerbyMetadataStore implements MetadataStore {
    private static DerbyMetadataStore INSTANCE;

    /**
     * Derby only allows one instance per JVM (apparently). This constructs and
     * gets the instance of DerbyMetadataStore.
     */
    public static DerbyMetadataStore getInstance() throws Exception {
        if (INSTANCE == null)
            INSTANCE = new DerbyMetadataStore(XTraceSettings.DATASTORE_DIRECTORY + "/derby/");
        return INSTANCE;
    }

    private static final Logger LOG = Logger.getLogger(DerbyMetadataStore.class);

    private final DatabaseReader reader;
    private final DatabaseWriter writer;

    private volatile boolean alive = true;

    private DerbyMetadataStore(String dataDirName) throws Exception {
        File dataRootDir = new File(dataDirName);
        if (!dataRootDir.isDirectory() && !dataRootDir.mkdirs())
            throw new IOException("Data Store location isn't a directory " + dataDirName);
        if (!dataRootDir.canWrite())
            throw new IOException("Can't write to data store directory");

        System.setProperty("derby.system.home", dataDirName);
        Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();

        try {
            DriverManager.getConnection("jdbc:derby:tasks").close();
        } catch (SQLException e) {
            LOG.info("Derby database does not exist; creating...");
            createDatabase();
        }

        reader = new DatabaseReader();
        writer = new DatabaseWriter();
        writer.start();

        LOG.info("Successfully connected to the internal Derby database");
        LOG.info("Database directory: " + dataRootDir.getAbsolutePath());
    }

    private void createDatabase() throws SQLException {
        Connection create = DriverManager.getConnection("jdbc:derby:tasks;create=true");
        Statement s = create.createStatement();
        s.executeUpdate("create table tasks(" + "taskId varchar(40) not null primary key, " + "firstSeen timestamp default current_timestamp not null, "
                + "lastUpdated timestamp default current_timestamp not null, " + "numReports integer default 1 not null, " + "tags varchar(32672), "
                + "title varchar(128))");
        s.executeUpdate("create index idx_tasks on tasks(taskid)");
        s.executeUpdate("create index idx_firstseen on tasks(firstSeen)");
        s.executeUpdate("create index idx_lastUpdated on tasks(lastUpdated)");
        s.executeUpdate("create index idx_tags on tasks(tags)");
        s.executeUpdate("create index idx_title on tasks(title)");
        s.close();
        create.commit();
        create.close();
    }

    @Override
    public void shutdown() {
        // Set alive to false to stop doing anything new
        alive = false;

        // Interrupt the database updater and wait for him to finish
        try {
            writer.interrupt();
            writer.join();
        } catch (InterruptedException e) {
        }

        // Shut down the database
        try {
            DriverManager.getConnection("jdbc:derby:tasks;shutdown=true");
            LOG.info("Derby Metadata store successfully shut down");
        } catch (SQLException e) {
            if (!e.getSQLState().equals("08006")) {
                LOG.warn("Unable to shutdown embedded database", e);
            } else {
                LOG.info("Derby Metadata store successfully shut down");
            }
        }
    }

    @Override
    public void reportReceived(Report report) {
        if (alive && report != null) {
            writer.reportReceived(report.getTaskID());
            if (report.hasTitle())
                writer.setTitle(report.getTaskID(), report.getTitle());
            if (report.hasTags())
                writer.addTags(report.getTaskID(), report.getTags());
        }
    }

    @Override
    public List<TaskRecord> getTasksSince(long startTime, int offset, int limit) {
        if (alive)
            return reader.getTasksSince(startTime, offset, limit);
        return Collections.emptyList();
    }

    @Override
    public List<TaskRecord> getLatestTasks(int offset, int limit) {
        if (alive)
            return reader.getLatestTasks(offset, limit);
        return Collections.emptyList();
    }

    @Override
    public List<TaskRecord> getTasksByTag(String tag, int offset, int limit) {
        if (alive)
            return reader.getTasksByTag(tag, offset, limit);
        return Collections.emptyList();
    }

    @Override
    public List<TaskRecord> getTasksByTitle(String title, int offset, int limit) {
        if (alive)
            return reader.getTasksByTitle(title, offset, limit);
        return Collections.emptyList();
    }

    @Override
    public List<TaskRecord> getTasksByTitleSubstring(String title, int offset, int limit) {
        if (alive)
            return reader.getTasksByTitleSubstring(title, offset, limit);
        return Collections.emptyList();
    }

    @Override
    public Collection<String> getConcurrentTasks(String taskId) {
        if (alive)
            return reader.getOverlappingTasks(taskId);
        return Collections.emptyList();
    }

    @Override
    public Collection<String> getTags(String taskId) {
        if (alive)
            return reader.getTagsForTask(taskId);
        return Collections.emptyList();
    }

    @Override
    public int numTasks() {
        if (alive)
            return reader.numTasks();
        return 0;
    }

    @Override
    public int numReports() {
        if (alive)
            return reader.numReports();
        return 0;
    }

    private final class DatabaseReader {

        private Connection read;
        private PreparedStatement getByTag, tasksBetween, updatedSince;
        private PreparedStatement totalNumReports, totalNumTasks, timesByTask;
        private PreparedStatement lastTasks, getTags, getByTitle, getByTitleApprox;

        private DatabaseReader() throws Exception {
            read = DriverManager.getConnection("jdbc:derby:tasks");
            read.setAutoCommit(false);
            createPreparedStatements();
        }

        private void createPreparedStatements() throws SQLException {
            tasksBetween = read.prepareStatement("select taskid from tasks where firstseen <= ? and lastUpdated >= ?");
            totalNumReports = read.prepareStatement("select sum(numReports) as totalreports from tasks");
            totalNumTasks = read.prepareStatement("select count(distinct taskid) as numtasks from tasks");
            timesByTask = read.prepareStatement("select firstseen, lastUpdated from tasks where taskid = ?");
            updatedSince = read.prepareStatement("select * from tasks where firstseen >= ? order by lastUpdated desc");
            lastTasks = read.prepareStatement("select * from tasks order by lastUpdated desc");
            getByTag = read.prepareStatement("select * from tasks where upper(tags) like upper('%'||?||'%') order by lastUpdated desc");
            getTags = read.prepareStatement("select tags from tasks where taskid = ?");
            getByTitle = read.prepareStatement("select * from tasks where upper(title) = upper(?) order by lastUpdated desc");
            getByTitleApprox = read.prepareStatement("select * from tasks where upper(title) like upper('%'||?||'%') order by lastUpdated desc");
        }

        /**
         * Creates a TaskRecord object from a database result set
         */
        private TaskRecord readTaskRecord(ResultSet rs) throws SQLException {
            String taskId = rs.getString("taskId");
            long firstSeen = rs.getTimestamp("firstSeen").getTime();
            long lastUpdated = rs.getTimestamp("lastUpdated").getTime();
            String title = rs.getString("title");
            int numReports = rs.getInt("numReports");
            String tagstring = rs.getString("tags");
            if (tagstring == null)
                tagstring = "";
            List<String> tags = Arrays.asList(tagstring.split(","));
            return new TaskRecord(taskId, firstSeen, lastUpdated, numReports, title, tags);
        }

        /**
         * Creates a list of TaskRecord objects from a databse result set
         */
        private List<TaskRecord> createRecordList(ResultSet rs, int offset, int limit) throws SQLException {
            List<TaskRecord> lst = new ArrayList<TaskRecord>();
            int i = 0;
            while (rs.next()) {
                if (i >= offset && i < offset + limit)
                    lst.add(readTaskRecord(rs));
                i++;
            }
            return lst;
        }

        public synchronized List<TaskRecord> getTasksSince(long milliSecondsSince1970, int offset, int limit) {
            ArrayList<TaskRecord> lst = new ArrayList<TaskRecord>();

            try {
                if (offset + limit + 1 < 0) {
                    updatedSince.setMaxRows(Integer.MAX_VALUE);
                } else {
                    updatedSince.setMaxRows(offset + limit + 1);
                }
                updatedSince.setString(1, (new Timestamp(milliSecondsSince1970)).toString());
                ResultSet rs = updatedSince.executeQuery();
                try {
                    int i = 0;
                    while (rs.next()) {
                        if (i >= offset && i < offset + limit)
                            lst.add(readTaskRecord(rs));
                        i++;
                    }
                } finally {
                    rs.close();
                }
            } catch (SQLException e) {
                LOG.warn("Internal SQL error", e);
            }

            return lst;
        }

        public synchronized Collection<String> getTagsForTask(String taskId) {
            try {
                getTags.setString(1, taskId);
                getTags.execute();
                ResultSet rs = getTags.getResultSet();
                try {
                    if (rs.next())
                        return Arrays.asList(rs.getString("tags").split(","));
                } finally {
                    rs.close();
                }
            } catch (SQLException e) {
                LOG.warn("Unable to get tags for task " + taskId, e);
            }
            return Collections.emptyList();
        }

        public synchronized List<TaskRecord> getLatestTasks(int offset, int limit) {
            int numToFetch = offset + limit;
            List<TaskRecord> lst = new ArrayList<TaskRecord>();
            try {
                if (offset + limit + 1 < 0) {
                    lastTasks.setMaxRows(Integer.MAX_VALUE);
                } else {
                    lastTasks.setMaxRows(offset + limit + 1);
                }
                ResultSet rs = lastTasks.executeQuery();
                try {
                    int i = 0;
                    while (rs.next() && numToFetch > 0) {
                        if (i >= offset && i < offset + limit)
                            lst.add(readTaskRecord(rs));
                        numToFetch -= 1;
                        i++;
                    }
                } finally {
                    rs.close();
                }
            } catch (SQLException e) {
                LOG.warn("Internal SQL error", e);
            }
            return lst;
        }

        public synchronized List<TaskRecord> getTasksByTag(String tag, int offset, int limit) {
            List<TaskRecord> lst = new ArrayList<TaskRecord>();
            try {
                if (offset + limit + 1 < 0) {
                    getByTag.setMaxRows(Integer.MAX_VALUE);
                } else {
                    getByTag.setMaxRows(offset + limit + 1);
                }
                getByTag.setString(1, tag);
                ResultSet rs = getByTag.executeQuery();
                try {
                    int i = 0;
                    while (rs.next()) {
                        TaskRecord rec = readTaskRecord(rs);
                        if (rec.getTags().contains(tag)) { // Make sure the SQL
                                                           // "LIKE"
                            // match is exact
                            if (i >= offset && i < offset + limit)
                                lst.add(rec);
                        }
                        i++;
                    }
                } finally {
                    rs.close();
                }
            } catch (SQLException e) {
                LOG.warn("SQLException in getTasksByTag", e);
            }
            return lst;
        }

        public synchronized Collection<String> getOverlappingTasks(String taskId) {
            HashSet<String> overlaps = new HashSet<String>();
            overlaps.add(taskId);

            try {
                // Fetch the timestamps for this task
                timesByTask.setString(1, taskId.toString());
                timesByTask.execute();
                ResultSet rs1 = timesByTask.getResultSet();
                try {
                    if (rs1.next()) {
                        // Update the search bounds if necessary
                        long firstSeen = rs1.getTimestamp("firstseen").getTime();
                        long lastUpdated = rs1.getTimestamp("lastUpdated").getTime();

                        // Now search for all taskids between these bounds
                        tasksBetween.setString(1, new Timestamp(lastUpdated).toString());
                        tasksBetween.setString(2, new Timestamp(firstSeen).toString());
                        tasksBetween.execute();
                        ResultSet rs2 = tasksBetween.getResultSet();
                        try {
                            while (rs2.next()) {
                                overlaps.add(rs2.getString("taskid"));
                            }
                        } finally {
                            rs2.close();
                        }
                    }
                } finally {
                    rs1.close();
                }
            } catch (SQLException e) {
                LOG.warn("SQLException in getOverlappingTasks " + taskId, e);
            }

            return overlaps;
        }

        public synchronized List<TaskRecord> getTasksByTitle(String title, int offset, int limit) {
            try {
                if (offset + limit + 1 < 0) {
                    getByTitle.setMaxRows(Integer.MAX_VALUE);
                } else {
                    getByTitle.setMaxRows(offset + limit + 1);
                }
                getByTitle.setString(1, title);
                ResultSet rs = getByTitle.executeQuery();
                try {
                    return createRecordList(rs, offset, limit);
                } finally {
                    rs.close();
                }
            } catch (SQLException e) {
                LOG.warn("SQLException in getTasksByTitle", e);
            }
            return Collections.emptyList();
        }

        public synchronized List<TaskRecord> getTasksByTitleSubstring(String title, int offset, int limit) {
            try {
                if (offset + limit + 1 < 0) {
                    getByTitleApprox.setMaxRows(Integer.MAX_VALUE);
                } else {
                    getByTitleApprox.setMaxRows(offset + limit + 1);
                }
                getByTitleApprox.setString(1, title);
                ResultSet rs = getByTitleApprox.executeQuery();
                try {
                    return createRecordList(rs, offset, limit);
                } finally {
                    rs.close();
                }
            } catch (SQLException e) {
                LOG.warn("Internal SQL error", e);
            }
            return Collections.emptyList();
        }

        public synchronized int numReports() {
            try {
                ResultSet rs = totalNumReports.executeQuery();
                try {
                    rs.next();
                    return rs.getInt("totalreports");
                } finally {
                    rs.close();
                }
            } catch (SQLException e) {
                LOG.warn("Internal SQL error", e);
            }
            return 0;
        }

        public synchronized int numTasks() {
            try {
                ResultSet rs = totalNumTasks.executeQuery();
                try {
                    rs.next();
                    return rs.getInt("numtasks");
                } finally {
                    rs.close();
                }
            } catch (SQLException e) {
                LOG.warn("Internal SQL error", e);
            }
            return 0;
        }
    }

    private final class DatabaseWriter extends Thread {

        private final class TaskUpdate {
            public String taskid;
            public String title = null;
            public Set<String> tags = null;
            public int newreportcount = 0;
        }

        private Connection write;
        private PreparedStatement insert, update, updateTitle, updateTags, countTasks, getTags;

        private Map<String, TaskUpdate> pendingUpdates = new HashMap<String, TaskUpdate>();

        public DatabaseWriter() throws Exception {
            write = DriverManager.getConnection("jdbc:derby:tasks");
            write.setAutoCommit(false);
            createPreparedStatements();
        }

        private void createPreparedStatements() throws SQLException {
            insert = write.prepareStatement("insert into tasks (taskid, tags, title, numReports) values (?, ?, ?, ?)");
            update = write.prepareStatement("update tasks set lastUpdated = current_timestamp, " + "numReports = numReports + ? where taskId = ?");
            updateTitle = write.prepareStatement("update tasks set title = ? where taskid = ?");
            updateTags = write.prepareStatement("update tasks set tags = ? where taskid = ?");
            countTasks = write.prepareStatement("select count(taskid) as rowcount from tasks where taskid = ?");
            getTags = write.prepareStatement("select tags from tasks where taskid = ?");
        }

        private TaskUpdate getTaskUpdate(String taskId) {
            TaskUpdate update = pendingUpdates.get(taskId);
            if (update == null) {
                update = new TaskUpdate();
                update.taskid = taskId;
                pendingUpdates.put(taskId, update);
            }
            return update;
        }

        public synchronized void reportReceived(String taskId) {
            TaskUpdate update = getTaskUpdate(taskId);
            update.newreportcount++;
        }

        public synchronized void setTitle(String taskId, String title) {
            TaskUpdate update = getTaskUpdate(taskId);
            update.title = title;
        }

        public synchronized void addTags(String taskId, List<String> tags) {
            TaskUpdate update = getTaskUpdate(taskId);
            if (update.tags == null)
                update.tags = new HashSet<String>();
            update.tags.addAll(tags);
        }

        @Override
        public void run() {
            long last_processing_time = System.currentTimeMillis();
            Set<String> seen = new HashSet<String>();
            Map<String, TaskUpdate> updates = new HashMap<String, TaskUpdate>();
            while (alive && !Thread.currentThread().isInterrupted()) {
                // Wait until the next allowed processing time
                try {
                    long tosleep;
                    while ((tosleep = (last_processing_time + XTraceSettings.DATABASE_UPDATE_INTERVAL - System.currentTimeMillis())) > 0) {
                        Thread.sleep(tosleep);
                    }
                } catch (InterruptedException e) {
                    // This means the thread is shutting down; we still want to
                    // finish
                    // updates
                }

                // Get the pending database updates
                synchronized (this) {
                    Map<String, TaskUpdate> pending = pendingUpdates;
                    pendingUpdates = updates;
                    updates = pending;
                }

                // Save the start time of processing, to later sleep
                last_processing_time = System.currentTimeMillis();

                if (updates.size() > 0) {
                    // Process all of the updates
                    for (TaskUpdate update : updates.values()) {
                        String taskId = update.taskid;
                        try {
                            if (!seen.contains(taskId) && !taskExists(taskId)) {
                                // fast track add all details at once
                                newTask(taskId, update);
                            } else {
                                if (update.title != null)
                                    updateTitle(taskId, update.title);
                                if (update.tags != null)
                                    addTagsToExistingTask(taskId, update.tags);
                                if (update.newreportcount > 0)
                                    updateExistingTaskReportCount(taskId, update.newreportcount);
                            }
                        } catch (Exception e) {
                            LOG.warn("Error processing database update for task " + taskId + ", dropping database update.  Report will still exist on disk", e);
                        }
                    }

                    // Commit the updates
                    try {
                        write.commit();
                    } catch (SQLException e) {
                        LOG.warn("Error committing database updates for database updater thread", e);
                    }

                    // Keep track of the task IDs we've most recently seen
                    if (seen.size() > 1000)
                        seen.clear();
                    seen.addAll(updates.keySet());

                    // Clear the updates
                    updates.clear();
                }
            }

            // Finally, clear up the database connection
            try {
                write.close();
            } catch (SQLException e) {
                LOG.warn("Database Updater thread unable to close connection to database", e);
            }
        }

        private boolean taskExists(String taskId) throws SQLException {
            try {
                countTasks.setString(1, taskId);
                ResultSet rs = countTasks.executeQuery();
                try {
                    rs.next();
                    return rs.getInt("rowcount") != 0;
                } finally {
                    rs.close();
                }
            } catch (Exception e) {
                return false;
            }
        }

        private void newTask(String taskId, TaskUpdate update) throws SQLException {
            String title = update.title == null ? taskId : update.title;
            insert.setString(1, taskId);
            insert.setString(2, joinWithCommas(update.tags));
            insert.setString(3, title);
            insert.setInt(4, update.newreportcount);
            insert.executeUpdate();
        }

        private void updateTitle(String taskId, String title) throws SQLException {
            updateTitle.setString(1, title);
            updateTitle.setString(2, taskId);
            updateTitle.executeUpdate();
        }

        private void updateExistingTaskReportCount(String taskId, Integer reportCount) throws SQLException {
            update.setInt(1, reportCount);
            update.setString(2, taskId);
            update.executeUpdate();
        }

        private void addTagsToExistingTask(String taskId, Set<String> tags) throws SQLException {
            getTags.setString(1, taskId);
            ResultSet tagsRs = getTags.executeQuery();
            String oldTags = "";
            try {
                tagsRs.next();
                oldTags = tagsRs.getString("tags");
            } finally {
                tagsRs.close();
            }
            tags.addAll(Arrays.asList(oldTags.split(",")));
            updateTags.setString(1, joinWithCommas(tags));
            updateTags.setString(2, taskId);
            updateTags.executeUpdate();
        }
    }

    private String joinWithCommas(Collection<String> strings) {
        if (strings == null)
            return "";
        StringBuilder sb = new StringBuilder();
        for (Iterator<String> it = strings.iterator(); it.hasNext();) {
            sb.append(it.next());
            if (it.hasNext())
                sb.append(",");
        }
        return sb.toString();
    }

}


Krager SS wheels and tires for sale. There not lookers but get the job done. $150$ Dollars.
.....are the crager wheels chrome..15" ? ..ide check in with people who lookin for some man.
I was thinkin' that too but, i didn't say it ha.


text:
John Henry Newton, född 24 juli 1725, död 21 december 1807, var en brittisk sjökapten och slavskeppare. När han blev troende kristen ångrade han sitt förflutna som slavskeppare och blev senare präst inom Engelska kyrkan och sångförfattare.

Han finns representerad i flera psalmböcker, bland annat i den ekumeniska delen av den svenska psalmboken (dvs psalm 1-325 i Den svenska psalmboken 1986, Cecilia 1986, Psalmer och Sånger 1987, Segertoner 1988 och Frälsningsarméns sångbok 1990), i Frälsningsarméns egen del av psalmboken (FA) samt Svenska Missionsförbundets sångbok 1920 (SMF 1920).

Som slaverimotståndare fick han uppleva Slave Trade Act 1807, som infördes av Storbritannien strax före hans död.

Psalm-/Sångtexter
Amazing Grace, Svenska översättningar:
Förunderlig nåd
Förundrad jag hör ett glädjens bud
Oändlig nåd mig Herren gav (1986 nr 231)
Herre, se vi väntar alla (1986 nr 52, vers 3)
Hur ljuvligt klingar Jesu namn (SMF 1920 nr 104) i översättning av Erik Nyström
Jesus, se till din plantering (FA nr 426)

Källor

Födda 1725
Avlidna 1807
Brittiska psalmförfattare
Män

redpajama_set_name: RedPajamaWikipedia


text:
Audrey Young Dies; Actress and Widow of Billy Wilder
The L.A. native was a Paramount contract player in the 1940s and was married to the legendary filmmaker for more than half a century.
By Erik Pedersen
More Stories by Erik Pedersen
Grammys 2013: Brian Wilson Talks Beach Boys Reunion Backstage
John Fogerty Collaborates With Foo Fighters, Bob Seger, Miranda Lambert on New Album
Tom Petty and the Heartbreakers at Cal State Northridge: Concert Review
June 7, 2012 1:38pm
Audrey Young Wilder Obit - P 2012
Audrey Young, a singer-turned-Paramount contract player who was married to Billy Wilder for 53 years, has died. She was 89.
Born on Oct. 30, 1922, in Los Angeles, Young had mostly bit roles in several Paramount films during the 1940s. She met Wilder in 1944 on the Paramount Studios set of The Lost Weekend, which would win him the first of two Oscars for best director. They wed in 1949 and remained married until his death in 2002 at 95.
Her role as a hat-check girl in Lost Weekend was cut, but her hand is seen giving a hat to Milland.
PHOTOS: Hollywood's Notable Deaths of 2012
Young appeared in nearly two dozen films from 1944-49, starting with the Ginger Rogers–Ray Milland musical drama Lady in the Dark. Having begun her career as a singer with the Tommy Dorsey Band, she often sang onscreen, including in 1946's Blue Skies, toplined by Bing Crosby and Fred Astaire.
Her other film roles included the Abbott and Costello yarn The Wistful Woman of Wagon Gap, Duffy's Tavern, The Stork Club, Follow That Woman, Danger Street, Love Me or Leave Me and a cameo opposite Gary Cooper in Wilder's Love in the Afternoon.
Young later was a costume consultant on Wilder's best picture Oscar winner The Apartment and Some Like It Hot, for which Orry-Kelly won the costume design Academy Award.
After her husband's death, she donated $5 million to found the Billy Wilder Theater at the Hammer Museum in Westwood.
Oscars 2012: Would Billy Wilder Have Voted for 'The Artist'? (Analysis)

redpajama_set_name: RedPajamaCommonCrawl


text:
power of 2: n & (n-1) == 0

power of 4: n > 0, n & (n - 1) == 0, n & 0x55555555 = n

The basic idea is from power of 2, We can use "n&(n-1) == 0" to determine if n is power of 2. For power of 4, the additional restriction is that in binary form, the only "1" should always located at the odd position. For example, 4^0 = 1, 4^1 = 100, 4^2 = 10000. So we can use "num & 0x55555555==num" to check if "1" is located at the odd position.