Shared posts

19 Sep 18:43

Democracy Now! 2023-09-19 Tuesday

Tom Roche

part#s 3-4 of this DN! ep (~29:28-50:10 in the audio) are an excellent 2-part interview with Ryan Grim on (in order of presentation)

* how the Pakistan military-coup regime supplies weapons to Ukraine in return for a US-ordered IMF loan to prop it up as Imran Khan supporters protest and Pakistan's economy craters (transcript @ https://www.democracynow.org/2023/9/19/pakistan_ukraine_imf#transcript , archived @ http://web.archive.org/web/20230919182704/https://www.democracynow.org/2023/9/19/pakistan_ukraine_imf )

* how the US House battle between the Repubs' Freedom Caucus and Kevin McCarthy threatens yet another US Federal-government shutdown, plus a note on the Hunter Biden saga (transcript @ https://www.democracynow.org/2023/9/19/ryan_grim_shutdown#transcript , archived @ http://web.archive.org/web/20230919182814/https://www.democracynow.org/2023/9/19/ryan_grim_shutdown )

Democracy Now! 2023-09-19 Tuesday

  • Headlines for September 19, 2023
  • U.S. & Iran Complete Prisoner Swap; Iranian Protesters Mark One Year Since Death of Mahsa Amini
  • Bombs for Bailouts: Pakistan Supplied Weapons to Ukraine in Return for U.S.-Brokered IMF Loan
  • Shutdown Showdown: Far-Right Lawmakers Battle with House Speaker McCarthy, Risking Gov't Shutdown
  • "Stop Financing Fossil Fuels": 149 Climate Activists Arrested Blocking NY Federal Reserve, Hit Banks

Download this show

18 Sep 23:59

Radio War Nerd EP 396 — World Of Wars: Dentistry Is Hell + Ethiopia, Armenia, Ukraine Wars

by mail@yashalevine.com (Gary Brecher)
Tom Roche

another excellent mostly-world-of-wars RWN. Topics include (in ~order of appearance in audio):

1. more Dolan and Ames-family health woes (skippable but not unentertaining)

2. (starts 11:33) Paul Landis vs JFK magic-bullet theory (for my assassination heads out there :-)

3. Ethiopia civil war, currently Ahmed/ENDF (+Eritrea) vs Fano (Amharic militia) (possibly allied with former-enemies TPLF). Dolan as usual is unduly anti-Ahmed and ENDF-skeptic, unfortunately.

4. Anglophone corporate-funded media try {soft-coverup, restricting hangout} of NATO role in collapse of Libya economy, polities, society

5. Syria: Kurds maneuver for and against Assad/SAA

6. fascinating/doom-laden Armenia-Azerbaijan war continues, now featuring involvement of
* Russia: longtime Armenia quasi-ally, who tried to get Armenia to negotiate peace with the Azeris back when the Artsakhis were winning (spoiler--Armenia refused)
* Israel: "friend of Azeris" as long as they're anti-Iran
* US-NATO: their {default Zionism, elite desire for more of that sweeet Azeri fossil-fueled cash} is now undercut by desire for Russophobic chaos
* France: home to large Armenian diaspora
* Iran: pushing back against Israel and Azerbaijan by threatening to aid Armenia
* Turkiye: longtime Armeniaphobes now caught between NATO, Russia, Iran, and fellow Turks in Azerbaijan)

7. NATO proxy war on Russia in Ukraine (aka RUW):
* Russia to acquire massive DPRK arms stocks in reprisal for earlier/smaller shipments (via US) of RoK arms to Ukraine. Ames+Dolan rightly denounce yet another case of US-NATO shortterm thinking
* doomed AFU southern/Zaporozhia offensive (aka USOF) predictably fading away
* Ukraine terrorism, esp recent threats from (the extremely shady/skanky) Sarah Ashton-Cirillo and (not /quite/ as shady/skanky) Volodymr Zelensky

Co-hosts Gary Brecher & Mark Ames
18 Sep 21:14

9/18/23: Military Loses Airborne F-35, Ford CEO Freaks Over UAW, 100 Billion Student Loan Bomb, Trump on Abortion, Texas AG Survives Impeachment, Lauren Boebert BeetleJuice Debacle, Hasan Minhaj Admits Fake Stories, Drew Barrymore Weeps Over Scab Show

Tom Roche

the most consistently-excellent BP in weeks! mostly economics, almost no horserace

Krystal and Saagar discuss the UAW officially going on strike and causing the Ford CEO to lose it in an interview, Krystal and Saagar debate if Trump is wrong on Electric Vehicles, will the 100 billion student loan bomb crash the economy?, Trump hits DeSantis on Abortion legislation as a "terrible thing", Texas AG Ken Paxton survives impeachment in major MAGA victory, Lauren Boebert responds after her public debacle at the Beetlejuice musical, Saagar looks into Hasan Minhaj admitting he made up fake stories about being attacked with anthrax, and Krystal looks into Drew Barrymore ending her show's return admists major backlash from striking writers.

To become a Breaking Points Premium Member and watch/listen to the show uncut and 1 hour early visit: https://breakingpoints.supercast.com/


Merch Store: https://shop.breakingpoints.com/

Learn more about your ad choices. Visit megaphone.fm/adchoices

18 Sep 20:37

#460 - The Stranger Song

Tom Roche

VERY EXCELLENT--at least, after the 1st skippable-but-not-actually-bad 8:30 of just bant. Then, 2 good mostly-Luke shorts:

1. US politics, esp Biden unpopularity. After giving CorpDems and US mass-oriented corporate-funded media (aka USCFM) a good raking for their shameless Biden-shill-ing, Luke and Will claim (IMHO, correctly) that Biden's real problem is his unwillingness (perceived correctly by most Americans) to deal with the root causes of US economic decline and its greatest effect--mass precarity.

2. Ontario greenbelt scandal: how the Doug Ford regime corruptly transferred land-development rights to cronies while claiming it's all about "building housing." Not much detail--I hope they'll do more on this in future. (Esp since most of the M&U audience is US, and gets lotsa US--but not Canadian--political-economy news.)

before the main event (starting 28:08 to end-of-audio 62:25):

3. /excellent/ 34-min review of /McCabe and Mrs Miller/, Robert Altman's 1971 masterpiece on capitalism and violence in the Old West. For a {longer, finer-grained, more shot-by-shot} review, check the 1st half of 'Movie Mindset' (Chapo's Will Menaker with cohost Hesse Deni) S01E05 (guest-starring, for that episode only, Andrew Hudson from 'Episode One'), released 24 May 2023 on the CTH feed. But for a half-hour summary of Why You Must See This Movie Before You Die, the 2nd half of this M&U ep does the job.

In Robert Altman's MCCABE & MRS MILLER (1971), a couple of entrepreneurs find themselves crushed by monopoly capitalism. Of course, this could only happen in a small Old West mining town. We discuss the power and beauty of one of the greatest films of all time. PLUS: A primer on the Ontario greenbelt scandal, and why are Joe Biden's poll numbers so bad? Preorder Luke's new book "Seeking Social Democracy: Seven Decades in the Fight for Equality," coauthored with Ed Broadbent - https://ecwpress.com/products/seeking-social-democracy-ed-broadbent See Luke and Ed Broadbent in conversation at the Toronto Reference Library on October 22 - https://www.eventbrite.ca/e/seeking-social-democracy-a-conversation-with-ed-broadbent-tickets-713793665067 Join us on Patreon for an extra episode every week - https://www.patreon.com/michaelandus
18 Sep 17:19

Please Use Other Door

Tom Roche

Amusing sketch-comedy bits, or (as they self-label) "short scenes from modern life." Mostly one-offs (a few recur/sequence), very UK-centric (it's the BBC, whaddya want), not laugh-out-loud but well worth your 30 min.

Can you change your sexual orientation at will? Is it ever fair to blame the children for a divorce? What happens if a therapist brings their own emotional baggage to the treatment room? The series of four is written by; Ed Amsden and Tom Coles, Simon Alcock, Sarah Campbell, Julian Dutton, Robert Darke, Julian Dutton, Sophie Dickson, Paul F Tayler, Jim Campbell, Alex Nash & Sam South, Matt Harrison, Katy Swainston, Rhyan Orrick, Charlotte Patterson, Peter Tellouche, Cody Dahler, Davina Bentley, Jon Long and Bill Dare. Production Co-ordinator Caroline Barlow Sound Design Rich Evans Original music by Bill Dare, produced by Iona Vallance Produced and created by Bill Dare BBC Studios Production for Radio 4
16 Sep 18:31

War in Ukraine: Making Sense of A Senseless Conflict w/ Medea Benjamin – Ep 142

Tom Roche

Worthwhile interview with the always-intelligent Medea Benjamin, hosted by Henri and (mostly) Jovanni @ FoaH. This ep is particularly good regarding the politics (and other travails, both internal and external to the antiwar movement) of the US-NATO proxy war on Russia in Ukraine and the antiwar movement against it. Unfortunately, MB can't quite get over senseless-conflict rhetoric, although she seems (at least, by the end of the interview) to recognize most of the following:

1. US deepstate grand-strategy is now (and has been since 1945, and definitely since 1990) to 'prevent the emergence of a peer competitor'.

2. The US deepstate currently regards that 'peer competitor' as the PRC. (Their racist Russophobia makes them contemptuously underestimate Russia (aka /RF/), which in any case is currently empirically a 2nd-rank geostrategic power compared to the PRC and US.)

3. The US deepstate strategy for 'containing China' was (pre-mid-2000s) to rely on naval power--essentially blockade (or the credible threat of blockade) of PRC ocean shipping.

4. The PRC's strategic response was Eurasian economic integration, and particularly infrastructure networks like (e.g.) the BRI and (partnering with Russia on) the INSTC.

5. The US deepstate recognizes (and has since at least the 2008 Georgian proxy war on Russia) that Eurasian integration has the following implications for its anti-PRC strategy:

5.1. Eurasian economic integration breaks the US naval-blockade strategy: that strateby is increasing 'incredible' in the literal sense of 'not credible'.

5.2. Land-based PRC 'containment' will therefore require putting US-controlled troops (inc land and air forces) on PRC /land/ borders in credibly-threatening masses, with local logistics/bases. This /could/ usefully be done by installing such troops/bases in one or more of Mongolia, Kazakhstan, Kyrgyzstan, or Tajikistan (esp the 1st 2), but those countries will not assent over the credibly-forceful opposition of the RF. Hence, breaking Eurasian integration will require either

- 'flipping Russia': i.e., installing a Yeltsin-style puppet ruling over something like the current RF, or

- 'decolonizing Russia': i.e., breaking the RF into multiple ethnostates, each with a compliant puppet ruler

... which in either case (flipping or breaking) will have the deepstate-pleasing side-effect of greatly increasing the size of the borderlands on which the PRC can be threatened, by adding the very-long northeastern border between the PRC and either the RF or some successor ethnostate(s).

6. The US deepstate believes that NATO is 'the tool for the job' of either breaking or flipping Russia, and that provoking the "Russia-Ukraine war" was and remains the appropriate next step toward the deepstate's grand-strategy of suppressing the PRC (and, indirectly, the RF).

Henri and Jovanni discuss the conflict in Ukraine with Medea Benjamin, co-founder of Code Pink and co-author of War in Ukraine: Making Sense of A Senseless Conflict w/ Medea Benjamin. […]
16 Sep 16:38

Charles Choi: Using Bookmarks in Emacs like you do in Web Browsers

by Charles Choi
Tom Roche

+10 on using emacs bookmarks, +1 (and TODO) on defining shorter key sequences than (e.g.) [C-x r b], [C-x r m] (though I use those all the time)

Bookmarks are a useful, daresay essential feature for apps that work with an unbounded number of documents. Web browsers are ubiquitous, and as such have set the common expectation for using and managing bookmarks. Emacs predates web browsers and has long had bookmarks yet I’ve always found them cumbersome to use out of the box. The reasons I think are two-fold: 1) having a default user experience reliant on relatively long and arcane keyboard bindings (C-x r b|m|M) and 2) discovery via mouse being encumbered by being located under the Edit menu on the top-level menu bar. I’d further add that the default bookmark menu items are a bit too extra for my taste. I much prefer a minimal menu which is described further below.

What I want is to have a user experience akin to what a web browser provides, but for Emacs. Described below is what I think this looks like, at least on first pass:

  • Primarily mouse-driven workflows

    Conventional web browsers (Chrome, Firefox, Safari) all have a Bookmarks menu in the top level menu bar. Customize Emacs to do the same.

  • Simplified bookmark menu

    The above mentioned top level Bookmarks menu is simplified so that only the following operations are supported.

    • Edit Bookmarks

      Display the current list of bookmarks which can be subsequently edited.

    • Add Bookmark

      Create a bookmark where the current point is at.

    • Jump to Bookmark

      Go to a specific bookmark.

In addition, to ease the keyboard ergonomics of using bookmarks, I’ve assigned a dedicated function key each for jumping to or adding a bookmark.

As always, the customizations provided below are bespoke to me. Feel free to take and extend or disregard what is offered here.

All code tested on Emacs 28.2.

Define the Bookmark Menu in the Menu Bar

Here I use easy-menu-define to define the menu cc/bookmarks-menu as specified above. To avoid stomping over an existing bookmark, I use bookmark-set-no-overwrite instead of bookmark-set.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
(easy-menu-define cc/bookmarks-menu nil
  "Keymap for CC Bookmarks Menu"
  '("Bookmarks"
    ["Edit Bookmarks" list-bookmarks
     :help "Display a list of existing bookmarks."]
    ["--" nil]
    ["Add Bookmark…" bookmark-set-no-overwrite
     :help "Set a bookmark named NAME at the current location."]
    ["---" nil]
    ["Jump to Bookmark…" bookmark-jump
     :help "Jump to bookmark"]))

Adding the menu cc/bookmarks-menu to the top-level menu-bar can be achieved using the function easy-menu-add-item. Here I move the menu to appear before the Tools menu.

1
2
3
(easy-menu-add-item global-map '(menu-bar)
                    cc/bookmarks-menu
                    "Tools")

I’ve never really liked the default bookmarks sub-menu being located under the Edit menu so let’s hide it.

1
(define-key global-map [menu-bar edit bookmark] nil)

With the above, the payoff is a custom Bookmarks menu shown prominently in the menu bar.

Define One-Key Bindings for Jumping to and Adding a Bookmark

I jump to and add bookmarks frequently enough that dedicating a function key to each operation makes sense to me. YMMV.

1
2
(global-set-key (kbd "<f4>") 'bookmark-jump)
(global-set-key (kbd "<f11>") 'bookmark-set-no-overwrite)

Bookmark Save Flag

By default, any editing operation to your bookmarks are not saved by default as I've described before on this blog. Set bookmark-save-flag to 1 to ensure that your bookmark changes are always implicitly saved.

Closing Thoughts

With the above configuration, I've found bookmarks to be far more pleasant to use in Emacs. Motivated readers are encouraged to give it a try!

Some readers might mention Bookmark+ which could be used in place of the built-in bookmark commands in the menu structure described above. If that works for you, great!

16 Sep 03:08

Hyping Ukraine Counteroffensive, US Press Chose Propaganda Over Journalism

by Bryce Greene
Tom Roche

SINGULAR: in case anyone had any doubts that the US deepstate, its bipartisan Corporate Party, and its mass-oriented corporate-funded media, were 1000% in favor of their proxy war with Russia in Ukraine--Bryce Greene brings the receipts.

 

CNN: Unfazed by strikes, Ukrainians gear up for a counteroffensive

A Ukrainian presidential advisor asserted to CNN (5/30/23): “If there are timely deliveries of large quantities of the necessary consumable components…then of course the war can mathematically be over this year…. It will end undoubtedly on the borders of Ukraine as they were in 1991.”

It has been clear for some time that US corporate news media have explicitly taken a side on the Ukraine War. This role includes suppressing relevant history of the lead-up to the war (FAIR.org, 3/4/22), attacking people who bring up that history as “conspiracy theorists” (FAIR.org, 5/18/22), accepting official government pronouncements at face value (FAIR.org, 12/2/22) and promoting an overly rosy picture of the conflict in order to boost morale.

For most of the war, most of the US coverage has been as pro-Ukrainian as Ukraine’s own media, now consolidated under the Zelenskyy government (FAIR.org, 5/9/23). Dire predictions sporadically appeared, but were drowned out by drumbeat coverage portraying a Ukrainian army on the cusp of victory, and the Russian army as incompetent and on the verge of collapse.

Triumphalist rhetoric soared in early 2023, as optimistic talk of a game-changing “spring offensive” dominated Ukraine coverage. Apparently delayed, the Ukrainian counteroffensive launched in June. While even US officials did not believe that it would amount to much, US media papered over these doubts in the runup to the campaign.

Over the last three months, it has become clear that the Ukrainian military operation will not be the game-changer it was sold as; namely, it will not significantly roll back the Russian occupation and obviate the need for a negotiated settlement. Only after this became undeniable did media report on the true costs of war to the Ukrainian people.

Overwhelming optimism

NPR: A former U.S. Army general predicts 'successful' Ukrainian offensive

A former top US general assured NPR (5/12/23) that “Ukraine’s long-anticipated counteroffensive against Russia will ultimately succeed.”

In the runup to the counteroffensive, US media were full of excited conversation about how it would reshape the nature of the conflict. NATO Secretary General Jens Stoltenberg told Radio Free Europe (4/21/23) he was “confident Ukraine will be successful.” Sen. Lindsey Graham assured Politico (5/30/23), “In the coming days, you’re going to see a pretty impressive display of power by the Ukrainians.” Asked for his predictions about Ukraine’s plans, retired Lt. Gen. Ben Hodges told NPR (5/12/23), “I actually expect…they will be quite successful.”

Former CIA Director David Patraeus, author of the overhyped “surge” strategy in Iraq, told CNN (5/23/23):

I personally think that this is going to be really quite successful…. And [the Russians] are going to have to withdraw under pressure of this Ukrainian offensive, the most difficult possible tactical maneuver, and I don’t think they’re going to do well at that.

The Washington Post’s David Ignatius (4/15/23) acknowledged that “hope is not a strategy,” but still insisted that “Ukraine’s will to win—its determination to expel Russian invaders from its territory at whatever cost—might be the X-factor in the decisive season of conflict ahead.”

The New York Times (6/2/23) ran a story praising recruits who signed up for the Ukrainian pushback, even though it “promises to be deadly.” Times columnist Paul Krugman (6/5/23) declared we were witnessing “the moral equivalent of D-Day.” CNN (5/30/23) reported that Ukrainians were “unfazed” as they “gear up for a counteroffensive.”

Cable news was replete with buzz about how the counteroffensive, couched with modifiers like “long-awaited” or “highly anticipated,” could turn the tide in the war. Nightly news shows (e.g., NBC, 6/15/23, 6/16/23) presented audiences with optimistic statements from Ukrainian President Volodymyr Zelenskyy and other figures talking about the imminent success.

Downplaying reality

WaPo: U.S. doubts Ukraine counteroffensive will yield big gains, leaked document says

The Washington Post (4/10/23) noted that pessimistic leaked assessments were “a marked departure from the Biden administration’s public statements about the vitality of Ukraine’s military.”

Despite the soaring rhetoric presented to audiences, Western officials understood that the counteroffensive was all but doomed to fail. This had been known long before the above comments were reported, but media failed to include that fact as prominently as the predictions for success.

On April 10, as part of the Discord leaks story, the Washington Post (4/10/23) reported that top secret documents showed that Ukraine’s drive would fall “well short” of its objectives, due to equipment, ammunition and conscription problems. The document predicted “sustainment shortfalls” and only “modest territorial gains.”

The Post additionally cited anonymous officials who claimed that the documents’ conclusions were corroborated by a classified National Intelligence Council assessment, shown only to a select few in Congress. The Post spoke to a Ukrainian official who “did not dispute the revelations,” and acknowledged that it was “partially true.”

While the Post has yet to publish the documents in full, the leaks and the other sources clearly painted a picture of a potentially disastrous counteroffensive. Fear was so palpable that the Biden administration privately worried about how he could keep up support for the war when the widely hyped offensive sputtered. In the midst of this, Blinken continued to dismiss the idea of a ceasefire, opting instead to pursue further escalating the conflict.

Despite the importance of these facts, they were hardly reported on by the rest of corporate media, and dropped from subsequent war coverage. When the Post (6/14/23) published a long article citing Defense Secretary Lloyd Austin’s cautious optimism about the campaign, it neglected to mention its earlier reporting about the government’s privately gloomier assessments. The documents only started appearing again in the press after thousands were dead, and the campaign’s failure undeniable.

In an honest press, excited comments from politicians and commentators would be published alongside reports about how even our highest-level officials did not believe that the counteroffensive would amount to much. Instead, anticipation was allowed to build while doubts were set to the side.

Too ‘casualty-averse’?

NYT: Troop Deaths and Injuries in Ukraine War Near 500,000, U.S. Officials Say

After noting estimates that 70,000 Ukrainian soldiers had died and as many as 120,000 wounded, the New York Times (8/18/23) reported that “American officials say they fear that Ukraine has become casualty averse.”

By July, Ukrainian casualties were mounting, and it became clearer and clearer that the counteroffensive would fail to recapture significant amounts of Ukrainian territory. Reporting grew more realistic, and we were given insights into conditions on the ground in Ukraine, as well as what was in the minds of US officials.

According to the Washington Post (8/17/23), US and Ukrainian militaries had conducted war games and had anticipated that an advance would be accompanied by heavy losses. But when the real-world fatalities mounted, the Post reported, “Ukraine chose to stem the losses on the battlefield.”

This caused a rift between the Ukrainians and their Western backers, who were frustrated at Ukrainians’ desire to keep their people alive. A mid-July New York Times article (7/14/23) reported that US officials were privately frustrated that Ukraine had become too afraid of dying to fight effectively. The officials worried that Ukrainian commanders “fear[ed] casualties among their ranks,” and had “reverted to old habits” rather than “pressing harder.” A later Times article (8/18/23) repeated Washington’s worries that Ukrainians were too “casualty-averse.”

Acknowledging failure

WSJ: Ukraine’s Lack of Weaponry and Training Risks Stalemate in Fight With Russia

Wall Street Journal (7/23/23): “US Defense Department analysts knew early this year that Ukraine’s front-line troops would struggle against Russian air attacks.”

After it became undeniable that Ukraine’s military action was going nowhere, a Wall Street Journal report (7/23/23) raised some of the doubts that had been invisible in the press on the offensive’s eve. The report’s opening lines say it all:

When Ukraine launched its big counteroffensive this spring, Western military officials knew Kyiv didn’t have all the training or weapons—from shells to warplanes—that it needed to dislodge Russian forces.

The Journal acknowledged that Western officials simply “hoped Ukrainian courage and resourcefulness would carry the day.”

One Post column (7/26/23) asked, “Was Gen. Mark Milley Right Last Year About the War in Ukraine?” Columnist Jason Willick acknowledged that “Milley’s skepticism about Ukraine’s ability to achieve total victory appears to have been widespread within the Biden administration before the counteroffensive began.”

And when one official told Politico (8/18/23), “Milley had a point,” acknowledging the former military head’s November suggestion for negotiations.  The quote was so telling that Politico made it the headline of the article.

Even Rep. Andy Harris (D-Md.), co-chair of the congressional Ukraine Caucus, publicly questioned whether or not the war was “winnable” (Politico, 8/17/23). Speaking on the counteroffensive’s status, he said, “I’ll be blunt, it’s failed.”

WaPo: U.S. intelligence says Ukraine will fail to meet offensive’s key goal

The Washington Post (8/17/23) blamed the failure of “a counteroffensive that saw tens of billions of dollars of Western weapons and military equipment” on Ukraine’s failure to accept “major casualties” as “the cost of piercing through Russia’s main defensive line.”

Newsweek (8/16/23) reported on a Ukrainian leadership divided over how to handle the “underwhelming” counteroffensive. The Washington Post (8/17/23) reported that the US intelligence community assessed that the offensive would fail to fulfill its key objective of severing the land bridge between Russian-occupied eastern Ukraine and Crimea.

As the triumphalism ebbed, outlets began reporting on scenes that were almost certainly common before the spring push but had gone unpublished. One piece from the Post (8/10/23) outlined a “darken[ed] mood in Ukraine,” in which the nation was “worn out.” The piece acknowledged that “Ukrainian officials and their Western partners hyped up a coming counteroffensive,” but there was “little visible progress.”

The Wall Street Journal (8/1/23) published a devastating piece about the massive number of amputees returning home from the mine-laden battlefield. They reported that between 20,000 and 50,000 Ukrainians had lost one or more limbs as a result of the war—numbers that are comparable to those seen during World War I.

Rather than dwelling on the stalled campaign, the New York Times and other outlets focused on the drone war against Russia, even while acknowledging that the remote strikes were largely an exercise in public relations. The Times (8/25/23) declared that the strikes had “little significant damage to Russia’s overall military might” and were primarily “a message for [Ukraine’s] own people,” citing US officials who noted that they “intended to demonstrate to the Ukrainian public that Kyiv can still strike back.” Looking at the quantity of Times coverage (8/30/23, 8/30/238/23/23, 8/22/23, 8/22/23, 8/21/23, 8/18/23), the drone strikes were apparently aimed at an increasingly war-weary US public as well.

War as desirable outcome

WSJ: The Strategic Case for Risking War in Ukraine

The Army War College’s John Deni (Wall Street Journal, 12/22/21) urged the US to take “a hard-line stance in diplomatic discussions,” because “if Mr. Putin’s forces invade, Russia is likely to suffer long-term, serious and even debilitating strategic costs.”

The fact that US officials pushed for a Ukrainian counteroffensive that all but expected would fail raises an important question: Why would they do this? Sending thousands of young people to be maimed and killed does nothing to advance Ukrainian territorial integrity, and actively hinders the war effort.

The answer has been clear since before the war. Despite the high-minded rhetoric about support for democracy, this has never been the goal of pushing for war in Ukraine. Though it often goes unacknowledged in the US press, policymakers saw a war in Ukraine as a desirable outcome. One 2019 study from the RAND Corporation—a think tank with close ties to the Pentagon—suggested that an effective way to overextend and unbalance Russia would be to increase military support for Ukraine, arguing that this could lead to a Russian invasion.

In December 2021, as Russian President Vladimir Putin began to mass troops at Ukraine’s border while demanding negotiations, John Deni of the Atlantic Council published an op-ed in the Wall Street Journal (12/22/21) headlined “The Strategic Case for Risking War in Ukraine,” which laid out the US logic explicitly: Provoking a war would allow the US to impose sanctions and fight a proxy war that would grind Russia down. Additionally, the anti-Russian sentiment that resulted from a war would strengthen NATO’s resolve.

All of this came to pass as Washington’s stance of non-negotiation successfully provoked a Russian invasion. Even as Ukraine and Russia sat at the negotiation table early in the war, the US made it clear that it wanted the war to continue and escalate. The US’s objective was, in the words of Raytheon boardmember–turned–Defense Secretary Lloyd Austin, “to see Russia weakened.” Despite stated commitments to Ukrainian democracy, US policies have instead severely damaged it.

NATO’s ‘strategic windfall’ 

WaPo: The West feels gloomy about Ukraine. Here’s why it shouldn’t.

David Ignatius (Washington Post, 7/18/23) called the Ukraine War “a strategic windfall, at relatively low cost (other than for the Ukrainians)…. This has been a triumphal summer for the alliance.”

In the wake of the stalled counteroffensive, the US interest in sacrificing Ukraine to bleed Russia was put on display again. In July, the Post‘s Ignatius declared that the West shouldn’t be so “gloomy” about Ukraine, since the war had been a “strategic windfall” for NATO and its allies. Echoing two of Deni’s objectives, Ignatius asserted that “the West’s most reckless antagonist has been rocked,” and “NATO has grown much stronger with the additions of Sweden and Finland.”

In the starkest demonstration of the lack of concern for Ukraine or its people, he also wrote that these strategic successes came “at relatively low cost,” adding, in a parenthetical aside, “(other than for the Ukrainians).”

Ignatius is far from alone. Hawkish Sen. Mitt Romney (R–Utah) explained why US funding for the proxy war was “about the best national defense spending I think we’ve ever done”: “We’re losing no lives in Ukraine, and the Ukrainians, they’re fighting heroically against Russia.”

The consensus among policymakers in Washington is to push for endless conflict, no matter how many Ukrainians die in the process. As long as Russia loses men and material, the effect on Ukraine is irrelevant. Ukrainian victory was never the goal.

‘Fears of peace talks’

The Hill: Fears of peace talks with Putin rise amid US squabbling

The Hill (9/5/23) publishes warnings that “creeping negativity among the US public” will “increase pressure for Ukrainians to negotiate with Russia.”

Polls show that support for increased US involvement in Ukraine is rapidly declining. The recent Republican presidential debate demonstrated clear fractures within the right wing of the US power structure. Politico (8/18/23) reported that some US officials are regretting potential lost opportunities for negotiations. Unfortunately, this minority dissent has yet to affect the dominant consensus.

The failure of the counteroffensive has not caused Washington to rethink its strategy of attempting to bleed Russia. The flow of US military hardware to Ukraine is likely to continue so long as this remains the goal. The Hill (9/5/23) gave the game away about NATO’s commitment to escalation with a piece titled “Fears of Peace Talks With Putin Rise Amid US Squabbling.”

But even within the Biden administration, the Pentagon appears to be at odds with the State Department and National Security Council over the Ukraine conflict.  Contrary to what may be expected, the civilian officials like Jake Sullivan, Victoria Nuland and Antony Blinken are taking a harder line on perpetuating this conflict than the professional soldiers in the Pentagon. The media’s sharp change of tone may both signify and fuel the doubts gaining traction within the US political class.

The post Hyping Ukraine Counteroffensive, US Press Chose Propaganda Over Journalism appeared first on FAIR.

15 Sep 20:26

China deepens ties with Venezuela, challenging US 'hegemonic mindset'

Tom Roche

Ben Norton EXCELLENT as usual, and on a topic ignored by the mass-oriented US corporate-funded media

Condemning Washington's "hegemonic mindset" and sanctions, China strengthened its strategic partnership with Venezuela. The oil-rich South American nation's President Nicolás Maduro took a historic trip to Beijing, and applied to join BRICS. Ben Norton analyzes the important geopolitical and economic consequences. VIDEO: https://youtube.com/watch?v=n-jYaEb5SE0 How Trump and John Bolton attempted a coup in Venezuela: https://geopoliticaleconomy.com/2022/07/12/trump-john-bolton-coups-venezuela
15 Sep 19:26

The United Nations of News

Tom Roche

surprisingly amusing: not quite up to News Quiz standards but waayyy better than last week

The fourth of our satirical specials this summer. Ria Lina heads up a crack team of international comics including: Daliso Chaponda, Heidi Regan, Urooj Ashfaq and Ignacio Lopez to discuss the big stories making the news at home and around the world. You'll get an outsider's view on the news affecting you and also a peek behind the headlines from our comedians' homelands. We show them ours and then they show us theirs. The United Nations of News: proof that comedy really is universal.

15 Sep 18:25

Grayzone Radio - Tuesday, September 12, 2023

Tom Roche

EXCELLENT, informative /and/ funny. Grayzone A-Team (just Max Blumenthal and Aaron Maté--so should I say, the 'J-team'? or the 'Grayzone Tribe' ?-) for the hour (more like 53 min) on US empire-deepstate (esp Corporate Party and corporate-funded media) Russophobia from Syria civil war to the proxy war on Russia in Ukraine.

Grayzone Radio with Max Blumenthal excerpts investigative reports from The Grayzone podcast.
15 Sep 18:15

Biden's Trumpian War on Korea

by Katie Halper
Tom Roche

excellent, inc foodgroup#s 1, 2, and 4

Subscribe for the full episode at the bottom of the page. Watch a free preview here:

Journalist Amanda Yee of Liberation News joins the show to break up some hardened American propaganda about the “forgotten” war in Korea and what’s actually going on behind the travel ban in North Korea, which Trump started and Biden has renewed each year since. This proves, once again, that despite running as the opposite of Trump, the one campaign promise that Biden has actually kept is the one he made behind closed doors to donors: "Nothing would fundamentally change."

Even some of the most jaded skeptics of US propaganda still believe the misrepresentations about North Korea, and the travel ban makes it that much harder to see reality for ourselves. Luckily, Amanda Yee is sharing some first-hand accounts to shed light.

She explains the painful family separations caused by Biden’s draconian ban and the untold horrors of the war the US wants us to forget. A war which never ended.

Amanda also discusses the national security state’s selective, unprincipled and hypocritical war on independent organizations who dare to criticize U.S. foreign policy.

Subscribe now (while the price is still low!) for the full interview with Amanda where we discuss the New York Times disinformation campaign to fuel fear of our “enemies” and the New Cold War with China.

Plus, watch this week’s Thursday Throwdown: NATO Chief Spreads “Pro-Putin Talking Points.” Find out why Rachel Maddow is so mad at Elon Musk, and hear Victoria Nuland say the quiet part out loud.

And join the Absurd Arena live discussion board with Katie and Wilson every Tuesday at 12pm est in the Substack app.

Watch the full interview here:

Read more

15 Sep 17:18

767 - The Bad Lieutenant's Benevolence Association feat. Sam Lipman-Stern and Adam Bhala Lough (9/14/23)

Tom Roche

deepdive (sadly no Felix) into one of the danker scams in the dark heart of America

The directors of HBO’s Telemarketers stop by to discuss their doc series. We look into how the Fraternal Order of Policeman’s association is obviously and willingly complicit in a multi-billion dollar telemarketing fraud, the character of New Jersey, the folk hero Patrick J. Pespas, Sam’s legendary media management, and much more! Get bonus content on Patreon

Hosted on Acast. See acast.com/privacy for more information.

15 Sep 04:25

Episode 305 - Left-Overs (w/ Rania Khalek)

Tom Roche

VERY EXCELLENT: goddesses BJG and Rania Khalek convo, almost entirely on US politics, mostly (maybe 3/4?) domestic but Rania's phoning in (on 11 Sep) from Beirut, so she's gotta stick some into The Empire. Wideranging over lots topics, of which a few are

* US political personalities, esp Alexandria Ocasio-Cortez (AOC, for you foreigners), Biden, Trump, Obama (plus some Obamabots, below)
* US 3rd parties, esp Greens and PSL (Party for Socialism and Liberation)
* BJG vs KKF (aka Krystal Ball and Kyle Kulinski, who like AOC have endorsed Biden for ~nothing) on 3rd parties, Democratic Party entryism, Biden as 'nothing will fundamentally change', etc
* Jimmy Dore's verryyy disappointing freakout on Cornel West (which Briahna appropriately dismantles)
* Corporate Democrats (aka CorpDems), esp the 'Pod Save America' Obamabots, freakout about how Biden is tanking with nonwhite, younger, and poorer voters (including those who voted Biden 2020), but being entirely unable to propose (much less deliver) policy change to appeal to said voters
* US empire deepstate as bipartisan: US Corporate Party vs the world, and the world knows it

Subscribe to Bad Faith on Patreon to instantly unlock our full premium episode library: http://patreon.com/badfaithpodcast

Breakthrough News' Rania Khalek joins Bad Faith to talk two new interviews with AOC, the public reaction to my debate with Krystal & Kyle, Pod Save America’s take on Biden’s age and bad poll numbers, and the future of third party politics. This sit-down with Rania is long overdue, and this episode is action-packed.

Subscribe to Bad Faith on YouTube for video of this episode. Find Bad Faith on Twitter (@badfaithpod) and Instagram (@badfaithpod).

Produced by Armand Aviram.

Theme by Nick Thorburn (@nickfromislands).

14 Sep 17:35

The first 9/11: How the CIA overthrew Chile's democracy (and pillaged its copper)

Tom Roche

EXCELLENT, does not focus merely on the /direct/ US war on Allende, but also the roles of its vassals UK, Australia, and Brazil

On September 11, 1973, the CIA sponsored a coup that overthrew copper-rich Chile's democratically elected socialist President Salvador Allende and imposed a fascist military dictatorship led by General Augusto Pinochet. Journalist Ben Norton reviews the historical evidence. VIDEO: https://youtube.com/watch?v=mkB08AKNjQ0 Peru resource battle - CIA-linked US ambassador talks 'investments' with mining/energy ministers: https://geopoliticaleconomy.com/2023/01/19/peru-resources-mining-gas-investment
14 Sep 02:11

Grayzone Radio - Tuesday, September 5, 2023

Tom Roche

EXCELLENT Grayzone livestream (with Kenya-based guest Ahmed Kaballo (@ African Stream) and Grayzoners Max Blumenthal, Anya Parampil, and Wyatt Reed) focuses on the 22-24 Aug 2023 BRICS summit and its geoeconomic and geopolitical causes and effects, with excursions into

* imperialism in modern Africa esp France-Niger
* etiologies of Prigozhin death
* US-dollar-based global economic empire from Bretton Woods to NATO proxy war on Russia

Grayzone Radio with Max Blumenthal excerpts investigative reports from The Grayzone podcast.
14 Sep 02:01

German Deindustrialization Accelerates

Tom Roche

EXCELLENT

German Deindustrialization Accelerates
13 Sep 22:45

766 - Mt. EverQuest (9/11/23)

Tom Roche

all3, mostly median banter but heats up in last ~half (starting 38:24 in audio) as the ongoing, wonderful Chapo 'reading series' assaults a [New Yorker piece](https://www.newyorker.com/news/annals-of-education/virtual-reality-school-as-the-ultimate-school-choice) on rightwing Florida grifters monetizing VR by assaulting nearly-defenseless schoolchildren (but those Little Rascals be gettin' up to some shenanigans :-) Sure, a mind is a terrible thing to waste, but, hey: "school choice" :-(

Forgetful 9/11 to all our listeners. We start today’s show with an examination of the various kinks of American states. Then: Elon aka Mr. Too-Damn-Cap claims to have disabled starlink to scuttle a drone attack in Ukraine; and a chronical of the various humiliations Rudy aka Mr. Too-Damn-9/11 has suffered lately. Finally, a harrowing piece on the private companies attempting to foist metaverse VR into children's education.


Link to Karl Stevens’ and Jaime Lee Curtis’ new graphic novel Will plugs at the end of the show: https://bookshop.org/p/books/mother-nature-jamie-lee-curtis/18322363?ean=9781787739130


Get bonus content on Patreon

Hosted on Acast. See acast.com/privacy for more information.

13 Sep 18:59

The Boss can't have an Editor

by The Späti Boys
Tom Roche

VERY EXCELLENT update (by Ciarán, Julia, and Nick) on current German politics, economics, and society. 2nd ~half devoted (like a Chapo 'reading series' item) to destroying a recent "op-ed" (in his self-owned propaganda mill, politico.eu) by evil personified, Mathias Döpfner.

Julia, Ciarán and Nick do a Germany Update, the new polls, Dark Scholz and a wonderful opinion piece by some little guy with absolutely no say in German politics.

HOW TO SUPPORT US:
https://www.patreon.com/cornerspaeti

HOW TO REACH US:
Corner Späti https://twitter.com/cornerspaeti
Julia https://twitter.com/KMarxiana
Rob https://twitter.com/leninkraft
Nick https://twitter.com/sternburgpapi
Uma https://twitter.com/umawrnkl
Ciarán https://twitter.com/CiaranDold

Support Corner Späti

13 Sep 18:22

Irreal: Emacs Bedrock

by jcs
Tom Roche

TODO! pullquote:
> Ashton Wiersdorf has a solution: [Emacs Bedrock](https://sr.ht/~ashton314/emacs-bedrock/). The idea is to offer an absolutely minimal configuration that relies almost entirely on built-in packages. The only third-party package that the default configuration includes is which-key, a wonderful package that offers you help on completing a key sequence if you stop part of the way through. I use it all the time and wouldn’t want to live without it.

I’ve never been a fan of Emacs starter packages. That’s probably because when I started, there weren’t any: you simply rolled your own configuration using whatever resources you could find. Still, there’s something to be said for a minimal configuration that can get you up and running until you learn more about what’s possible and what Emacs offers.

Ashton Wiersdorf has a solution: Emacs Bedrock. The idea is to offer an absolutely minimal configuration that relies almost entirely on built-in packages. The only third-party package that the default configuration includes is which-key, a wonderful package that offers you help on completing a key sequence if you stop part of the way through. I use it all the time and wouldn’t want to live without it. It’s perfect for the n00b trying to learn the Emacs key sequences.

It’s easy for those of us with highly tuned configurations that include multiple third-party packages to forget that vanilla Emacs offers a powerful and very useful editor. I spent some time with an unadorned Emacs when I started and added packages only when my workflow demanded it.

Wiersdorf has that covered as well. There’s a second configuration file that offers some Emacs “enhancements”. These include such things as the irreplaceable Avy, and the world’s best Git porcelain, Magit. The Minions will, of course, be exercised that his default theme is dark mode but, again, these things are easily configured and explained. For example, the configuration points to modus-operandi for a corresponding light theme.

You can checkout the actual configuration here if you’re experienced but if you’re a n00b, simply follow his directions to install a trial installation and see what you think. If you like it, you can copy the trial configuration into ~/.emacs.d to make it permanent.

This is, I think, a good way to get started with Emacs.

10 Sep 16:27

Matt Taibbi on GOP Debates, Censorship, and Trump on Shrooms

by Matt Taibbi
Tom Roche

this free segment is /solely/ the foodgroups

Subscribe for the full episode at the bottom of the page. Watch a free preview here:

Did you ever wonder what Democracy Now’s Amy Goodman would sound like if she was played by director and actor Werner Herzog? Or what Chris Christie would do if Trump ordered food for him that he was allergic to? Have you wondered what the German word is for a Brazilian spider bite that causes painful, hours-long erections? Do you know the world-record time for drinking 2-liters of soda? Can you guess how many buffalo wings Matt Taibbi has eaten in one hour? Or how many hugs two erotically-charged men can do in one minute? Did you ever wonder if hugs could be counted? Or if an act of love such as a hug can’t be quantified as there is so much more to a hug than a physical entanglement of arms, and that in the same way a competition for who can fall in love more times is a fleeting grasp at ordering the confusing nature of life, it is ultimately an impossible feat, and maybe the point of life isn’t to count but to live, so when you finally allow yourself the freedom of falling out of control instead of waiting indefinitely behind the curtains of a stage that only exists in your own mind, preparing to say the lines you wrote for yourself but know deep down you’ll never perform, when you finally let all that go and “embrace” the lack of control you realize you aren’t falling but flying?

Did you ever wonder those things?

If so, you’re in luck! Matt Taibbi and Katie Halper have all the answers while they celebrate three and a half years of Useful Idiots with a reunion episode, throwing it back to the four food groups, terrible media clips, a scary new censor, and as always, a whole lotta nonsense.

Subscribe to watch the full episode where Matt and Katie do shrooms with Trump in a bowling alley and discuss the dystopian future of government censorship where the word transparency no longer means we get to see what they’re doing, but where they get to always keep an eye on us.

Plus, watch the latest Thursday Throwdown: NATO Pinky Swears that it's a "Defensive Alliance."

And join the Absurd Arena live discussion board with Katie and Wilson every Tuesday at 12pm est in the Substack app.

Watch the full interview here:

Read more

09 Sep 15:33

9/6/23: Mark Meadows May Flip On Trump, Biden's 2024 Economic Pitch, Elon Fights The ADL, China's Chip Breakthrough, McConnell Responds After Freeze, Tucker Pushes Obama Gay Conspiracy, Key Rhode Island Election, Media's Double Standards, And More!

Tom Roche

consistently good though below-average for CounterPoints

Ryan and Emily discuss Mark Meadows potentially flipping on Trump, Biden buys NFL ad slot for economic pitch, Elon Musk goes to war with the ADL over lost revenue, China makes major semiconductor breakthrough, McConnell responds after multiple public freezes, Tucker guest pushes gay Obama conspiracy, leftist infighting tanks Bernie backed candidate in Rhode Island, media hypocrisy destroys US credibility, and Sohrab Ahmari discusses the UAW strike and East Palestine.



To become a Breaking Points Premium Member and watch/listen to the show uncut and 1 hour early visit: https://breakingpoints.supercast.com/




Merch Store: https://shop.breakingpoints.com/

Learn more about your ad choices. Visit megaphone.fm/adchoices

08 Sep 22:55

765 - Searching For Sugar, Man feat. Ettingermentum (9/7/23)

Tom Roche

excellent, funny, focused: all3 plus Josh Ettinger on (mostly) DeSantis, Trump, Biden, and the continuing hell of US politics

We’re joined by elections analyst Ettingermentum for a critical look at the career of Ronald Dion DeSantis: from his rise as an marine lawyer turned Obama-era tea party author, to his now-flailing Presidential campaign, DeSantis has managed to fail upwards to the peak of Republican politics, then fumble the bag as soon as the spotlight hit him. We also touch on the seemingly inevitable Biden v. Trump rematch in 2024, and what the Dems and GOP might look like once these two mummies finally relinquish their mutual grips on their parties.


Find the Art of Losing: DeSantis series, Trump VP and Candidate tier lists, and all of Josh’s writing here: https://ettingermentum.substack.com/



Get bonus content on Patreon

Hosted on Acast. See acast.com/privacy for more information.

08 Sep 19:45

Radio War Nerd EP 395 — Afghanistan Blowback, feat. Brendan James & Noah Kulwin

by mail@yashalevine.com (Gary Brecher)
Tom Roche

SINGULAR remembrance/rumination on (what I call) the long (and not-yet-finished!) Afghan half-century. Brendan James and Noah Kulwin of the [uniquely-excellent /Blowback/](https://blowback.show/) series of audio histories ("podcast" does not do them justice) are currently (season 4) doing the history of Afghanistan, focusing on 1973-2023 but setting context from the sordid 19c British East India Company/empire. (If you haven't listened to every single ep from series#s=1-3 in [Blowback's public feed](https://feeds.redcircle.com/e30b9f10-8c86-432e-9fa0-ba287fb94e7f), do so ASAP--entertaining and informative.)

/Many/ topics of interest arise during this totally-worth-your-time, very-entertaining 113 min episode, including (in ~order of presentation, but this is 4 Great Minds In Conversation, so things go in and out, and the following is /not/ even close to representational)

* how UK-US empire weaponized Islamic radicals against secular (and esp left) movements
* the evil-and-probable-CIA-asset Hafizullah Amin (1929-1979)
* the even-more-evil-and-totally-Russophobic Zbigniew Brzezinski (1928-2017), esp as a 'bleeder' (as opposed to a 'dealer') in the Carter regime's phase of the US war on the USSR (esp the "Afghan theatre")
* the {Safari Club, BCCI, CIA} complex of evils c1974-c1994
* Ali Mohamed as [Triple Cross](https://peterlance.com/wordpress/?p=38), from post-Nasser Egyptian deepstate to post-Soviet US deepstate to al-Qaeda
* {similarity between, straight-line from} US empire {using, being used by} radical Islamists in Afghanistan and Syria to (though, shamefully, they only hint, but ~directly) US empire {using, being used by} Nazis in Ukraine

... and so much more. (If you're a good person :-) you will enjoy this, and (unless you specialize in this set of topics) you will learn something.

Co-hosts Gary Brecher & Mark Ames
08 Sep 15:48

Western sanctions failing: EU imports more Russian gas, China beats US tech war

Tom Roche

excellent geoeconomic analysis

Western sanctions are backfiring: The EU is now importing Russian liquified natural gas at record levels, and China has made high-tech breakthroughs despite US export restrictions. Ben Norton discusses how this is strengthening their economic sovereignty while blowing back on Europe. VIDEO: https://youtube.com/watch?v=U5fycw5vkjo US now world's top LNG exporter, as Europe boycotts cheaper Russian gas: https://geopoliticaleconomy.com/2023/01/04/us-lng-exporter-europe-russia-gas Europe pays more for banned Russian oil, resold by India - as EU wages fall: https://geopoliticaleconomy.com/2023/04/30/europe-russia-oil-india-wages Journalist Seymour Hersh says US blew up Nord Stream pipelines connecting Russia to Germany: https://geopoliticaleconomy.com/2023/02/08/us-nord-stream-pipelines-seymour-hersh Topics 0:00 Introduction: US economic warfare 3:49 Western sanctions on Russia backfire 20:47 China resists US tech sanctions 30:48 Outro: Sanctions are failing
07 Sep 19:04

SPECIAL EPISODE: How the ADL Abandoned its Stated Mission in Order to Weaponize Anti-Semitism Accusations for the Online Censorship Regime and the Neoliberal Establishment | SYSTEM UPDATE #142

Tom Roche

Greenwald EXCELLENT as usual

06 Sep 23:19

764 - The Schlapp’s Exorcist (9/5/23)

Tom Roche

Mostly-amusing Chris+Matt+Will ep (no Felix, not much Chris) on a variety of mostly-non-political topics. Unfortunately, there is a waaay-below-average segment reading a WaPo op-ed claiming men are anti-plants--the op-ed is as stupid as it sounds, and unfortunately Da Boyz don't bring much to their ridicule of it. So ya might wanna skip 33:44-51:42.

We hope everyone had a nice labor day.. Today, we’ve got and episode of rivalries: Musk vs. the ADL, the Schlapps vs. Demonic possession, Men (all) vs. Houseplants, Diarrhea vs. Air Travel, and Techno-Libertarians vs. Mud. Get bonus content on Patreon

Hosted on Acast. See acast.com/privacy for more information.

05 Sep 16:02

100 years since Japan's Kanto earthquake - and the massacre that followed

Tom Roche

excellent

September 1st marked 100 years since Japan's devastating Great Kantō Earthquake, a 7.9 magnitude quake which claimed over 105,000 lives. In the wake of the disaster, rumours spread about Koreans looting properties and poisoning wells, resulting in an upswell of vigilante violence that saw thousands more killed. A century on, Japan is still grappling with the commemoration of these atrocities.  Guest: Roger Pulvers, author and playwright, journalist and translator 
05 Sep 00:46

#448 - The Sound of Freedom Episode

Tom Roche

excellent, amusing even when depressing

Unfortunately, there was no avoiding it. We finally went to see the right-wing human-trafficking blockbuster SOUND OF FREEDOM (2023) and had one of our more unpleasant viewing experiences. We discuss the film's astroturfed box office, as well as the reasons for its very real cultural resonance. "Tim Ballard Has ‘Stepped Away’ From Operation Underground Railroad, Org Says" by Anna Merlan - https://www.vice.com/en/article/k7z74x/tim-ballard-sound-of-freedom-operation-underground-railroad-stepped-away Join us on Patreon for an extra episode every week - https://www.patreon.com/michaelandus
05 Sep 00:45

Stack Abuse: Guide to Profiling Python Scripts

Tom Roche

excellent concise introduction to performance measurement and optimization

Introduction

Even with a "simple" language like Python, it's not immune to performance issues. As your codebase grows, you may start to notice that certain parts of your code are running slower than expected. This is where profiling comes into play. Profiling is an important tool in every developer's toolbox, allowing you to identify bottlenecks in your code and optimize it accordingly.

Profiling and Why You Should Do It

Profiling, in the context of programming, is the process of analyzing your code to understand where computational resources are being used. By using a profiler, you can gain insights into which parts of your code are running slower than expected and why. This can be due to a variety of reasons like inefficient algorithms, unnecessary computations, bugs, or memory-intensive operations.

Note: Profiling and debugging are very different operations. However, profiling can be used in the process of debugging as it can both help you optimize your code and find issues via performance metrics.

Let's consider an example. Suppose you've written a Python script to analyze a large dataset. The script works fine with a small subset of data, but as you increase the size of the dataset, the script takes an increasingly long time to run. This is a classic sign that your script may need optimization.

Here's a simple Python script that calculates the factorial of a number using recursion:

def factorial(n):
    if n == 0:
        return 1
    else:
        return n * factorial(n-1)

print(factorial(5))

When you run this script, it outputs 120 which is the factorial of 5. However, if you try to calculate the factorial of a very large number, say 10000, you'll notice that the script takes a considerable amount of time to run. This is a perfect candidate for profiling and optimization.

Overview of Python Profiling Tools

Profiling is a crucial aspect of software development, particularly in Python where the dynamic nature of the language can sometimes lead to unexpected performance bottlenecks. Fortunately, Python provides a rich ecosystem of profiling tools that can help you identify these bottlenecks and optimize your code accordingly.

The built-in Python profiler is cProfile. It's a module that provides deterministic profiling of Python programs. A profile is a set of statistics that describes how often and for how long various parts of the program executed.

Note: Deterministic profiling means that every function call, function return, exception, and other CPU-intensive tasks are monitored. This can provide a very detailed view of your application's performance, but it can also slow down your application.

Another popular Python profiling tool is line_profiler. It is a module for doing line-by-line profiling of functions. Line profiler gives you a line-by-line report of time execution, which can be more helpful than the function-by-function report that cProfile provides.

There are other profiling tools available for Python, such as memory_profiler for profiling memory usage, py-spy for sampling profiler, and Py-Spy for visualizing profiler output. The choice of which tool to use depends on your specific needs and the nature of the performance issues you're facing.

How to Profile a Python Script

Now that we've covered the available tools, let's move on to how to actually profile a Python script. We'll take a look at both cProfile and line_profiler.

Using cProfile

We'll start with the built-in cProfile module. This module can either be used as a command line utility or within your code directly. We'll first look at how to use it in your code.

First, import the cProfile module and run your script within its run function. Here's an example:

import cProfile
import re

def test_func():
    re.compile("test|sample")

cProfile.run('test_func()')

When you run this script, cProfile will output a table with the number of calls to each function, the time spent in each function, and other useful information.

The ouptut might look something like this:

         234 function calls (229 primitive calls) in 0.001 seconds

   Ordered by: standard name

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.000    0.000    0.001    0.001 <stdin>:1(test_func)
        1    0.000    0.000    0.001    0.001 <string>:1(<module>)
        1    0.000    0.000    0.001    0.001 re.py:192(compile)
        1    0.000    0.000    0.001    0.001 re.py:230(_compile)
        1    0.000    0.000    0.000    0.000 sre_compile.py:228(_compile_charset)
        1    0.000    0.000    0.000    0.000 sre_compile.py:256(_optimize_charset)
        1    0.000    0.000    0.000    0.000 sre_compile.py:433(_compile_info)
        2    0.000    0.000    0.000    0.000 sre_compile.py:546(isstring)
        1    0.000    0.000    0.000    0.000 sre_compile.py:552(_code)
        1    0.000    0.000    0.001    0.001 sre_compile.py:567(compile)
      3/1    0.000    0.000    0.000    0.000 sre_compile.py:64(_compile)
        5    0.000    0.000    0.000    0.000 sre_parse.py:138(__len__)
       16    0.000    0.000    0.000    0.000 sre_parse.py:142(__getitem__)
       11    0.000    0.000    0.000    0.000 sre_parse.py:150(append)
# ...

Now let's see how we can use it as a command line utility. Assume we have the following script:

def calculate_factorial(n):
    if n == 1:
        return 1
    else:
        return n * calculate_factorial(n-1)

def main():
    print(calculate_factorial(10))

if __name__ == "__main__":
    main()

To profile this script, you can use the cProfile module from the command line as follows:

$ python -m cProfile script.py

The output will show how many times each function was called, how much time was spent in each function, and other useful information.

Using Line Profiler

While cProfile provides useful information, it might not be enough if you need to profile your code line by line. This is where the line_profiler tool comes in handy. It's an external tool that provides line-by-line profiling statistics for your Python programs.

First, you need to install it using pip:

$ pip install line_profiler

Let's use line_profiler to profile the same script we used earlier. To do this, you need to add a decorator to the function you want to profile:

from line_profiler import LineProfiler

def profile(func):
    profiler = LineProfiler()
    profiler.add_function(func)
    return profiler(func)

@profile
def calculate_factorial(n):
    if n == 1:
        return 1
    else:
        return n * calculate_factorial(n-1)

def main():
    print(calculate_factorial(10))

if __name__ == "__main__":
    main()

Now, if you run your script, line_profiler will output statistics for each line in the calculate_factorial function.

Remember to use the @profile decorator sparingly, as it can significantly slow down your code.

Profiling is an important part of optimizing your Python scripts. It helps you to identify bottlenecks and inefficient parts of your code. With tools like cProfile and line_profiler, you can get detailed statistics about the execution of your code and use this information to optimize it.

Interpreting Profiling Results

After running a profiling tool on your Python script, you'll be presented with a table of results. But what do these numbers mean? How can you make sense of them? Let's break it down.

The results table typically contains columns like ncalls for the number of calls, tottime for the total time spent in the given function excluding calls to sub-functions, percall referring to the quotient of tottime divided by ncalls, cumtime for the cumulative time spent in this and all subfunctions, and filename:lineno(function) providing the respective data of each function.

Here's a sample output from cProfile:

         5 function calls in 0.000 seconds

   Ordered by: standard name

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.000    0.000    0.000    0.000 <ipython-input-1-9e8e3c5c3b72>:1(<module>)
        1    0.000    0.000    0.000    0.000 {built-in method builtins.exec}
        1    0.000    0.000    0.000    0.000 {built-in method builtins.len}
        1    0.000    0.000    0.000    0.000 {method 'disable' of '_lsprof.Profiler' objects}

The tottime and cumtime columns are particularly important as they help identify which parts of your code are consuming the most time.

Note: The output is sorted by the function name, but you can sort it by any other column by passing the sort parameter to the print_stats method. For example, p.print_stats(sort='cumtime') would sort the output by cumulative time.

Optimization Techniques Based on Profiling Results

Once you've identified the bottlenecks in your code, the next step is to optimize them. Here are some general techniques you can use:

  • Avoid unnecessary computations: If your profiling results show that a function is called multiple times with the same arguments, consider using memoization techniques to store and reuse the results of expensive function calls.

  • Use built-in functions and libraries: Built-in Python functions and libraries are usually optimized for performance. If you find that your custom code is slow, see if there's a built-in function or library that can do the job faster.

  • Optimize data structures: The choice of data structure can greatly affect performance. For example, if your code spends a lot of time searching for items in a list, consider using a set or a dictionary instead, which can do this much faster.

Let's see an example of how we can optimize a function that calculates the Fibonacci sequence. Here's the original code:

def fib(n):
    if n <= 1:
       return n
    else:
       return(fib(n-1) + fib(n-2))

Running a profiler on this code will show that the fib function is called multiple times with the same arguments. We can optimize this using a technique called memoization, which stores the results of expensive function calls and reuses them when needed:

def fib(n, memo={}):
    if n <= 1:
       return n
    else:
       if n not in memo:
           memo[n] = fib(n-1) + fib(n-2)
       return memo[n]

With these optimizations, the fib function is now significantly faster, and the profiling results will reflect this improvement.

Remember, the key to efficient code is not to optimize everything, but rather focus on the parts where it really counts - the bottlenecks. Profiling helps you identify these bottlenecks, so you can spend your optimization efforts where they'll make the most difference.

Conclusion

After reading this article, you should have a good understanding of how to profile a Python script. We've discussed what profiling is and why it's crucial for optimizing your code. We've also introduced you to a couple of Python profiling tools, namely cProfile, a built-in Python profiler, and Line Profiler, an advanced profiling tool.

We've walked through how to use these tools to profile a Python script and how to interpret the results. Based on these results, you've learned some optimization techniques that can help you improve the performance of your code.

Just remember that profiling is a powerful tool, but it's not a silver bullet. It can help you identify bottlenecks and inefficient code, but it's up to you to come up with the solutions.

In my experience, the time invested in learning and applying profiling techniques has always paid off in the long run. Not only does it lead to more efficient code, but it also helps you become a more proficient and knowledgeable Python programmer.