Shared posts

06 Jan 18:24

Best of The News Quiz 2025

Tom Roche

"Best of The News Quiz" promises amusement, and delivers! I was a bit concerned 1st half that this episode lacked enough Ian Smith and Andrew Maxwell (2 standouts of NQ2025), but they get their time in the 2nd half.

A satirical smorgasbord of The News Quiz's best bits of the year, covering local elections, flag fever, Starmer's struggles, Trump's travails, and a very special meeting between King Charles and Pope Leo XIV.

To hear more episodes of The News Quiz, search "Friday Night Comedy" on BBC Sounds.

Written and presented by Andy Zaltzman.

Producer: Rajiv Karia Executive Producer: Pete Strauss Production Coordinator: Giulia Lopes Mazzu

A BBC Studios Audio Production for Radio 4 An Eco-Audio certified Production

06 Jan 15:39

Episode 539 Promo - The "Donroe Doctrine" (w/ Eugene Puryear)

Tom Roche

note: BF's YouTube channel has an excellent 39-min selection (Puryear in top form!) from this paywalled-here episode

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

Breakthrough News journalist Eugene Puryear returns to Bad Faith to discuss Donald Trump's illegal strike on Venezuela and capture of President Nicolas Maduro & his wife. He addresses mainstream media and Democratic Party complicity in supporting Trump's strike, the historical efforts of the US to control Venezuela's oil supply, and the longterm goals of US imperialism. But first, Eugene weighs in on Zohran's inauguration, Zionist police commissioner Jessica Tisch's demotion in Mamdani's administration, and whether/how the left can support electoral progress within the Democraric party without losing revolutionary discipline.

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).

06 Jan 01:14

Shovel of Doody

by The Späti Boys
Tom Roche

amusing

05 Jan 17:27

Irreal: A Paean To Dumb Jump

by Irreal
Tom Roche

TODO: look @ [Dumb Jump](https://github.com/jacktasia/dumb-jump). pullquote (heavily edited)

> [Ruslan Bekenev says Dumb Jump](https://codelearn.me/2026/01/03/dumb-jump-is-so-good.html) has completely eliminated his need for TAGS or LSP. For all the things that I use it for it’s instantaneous. [Dumb Jump] uses `grep` to search for the desired target. I use [ripgrep](https://github.com/BurntSushi/ripgrep) with it so it’s fast with even big repositories. Bekenev has an animated GIF showing how it works for him.

> If you haven’t tried Dumb Jump, I join with Bekenev in urging you to try it out. It’s small, doesn’t require a complicated installation and is easy to configure.

I’m a long term user of Dumb Jump. According to this Irreal post, I’ve been a devoted fan since 2017. As I’ve said many times in my several posts about Dumb Jump—search for “dumb jump” on Irreal if you’re interested—I’ve never been able to warm up to TAGS systems because they require so much maintenance and LSP systems have always seemed like too much work for what I want them for.

It turns out that I’m not the only fan. Ruslan Bekenev has a lovely paean to Dumb Jump. He, like me, says it has completely eliminated his need for TAGS or LSP. For all the things that I use it for it’s instantaneous. That can be difficult to believe when you learn how it works but it’s true. You can get the details from Bekenev’s post or the Dumb Jump site but the TL;DR is that it uses grep to search for the desired target. I use ripgrep with it so it’s fast with even big repositories. Bekenev has an animated GIF showing how it works for him.

If you haven’t tried Dumb Jump, I join with Bekenev in urging you to try it out. It’s small, doesn’t require a complicated installation and is easy to configure. If you don’t like it, you can simply delete the package and remove it from your init.el.

05 Jan 15:30

Bonus - Fort Bragg and U.S. Special Operations Post-9/11 w/ Seth Harp

Tom Roche

VERY EXCELLENT

Subscribe now to skip the ads and get access to all of our bonus episodes.

Danny and Derek are joined by journalist Seth Harp to discuss his book The Fort Bragg Cartel, which covers murder and drug trafficking around the North Carolina military installation. They talk about the rise and institutionalization of U.S. special operations after 9/11, how JSOC and related units expanded their role, permanent war reshaping military culture, special forces’ role in assassination campaigns, the end of the draft, reporting on drug trafficking networks, and the social effects of special operations culture on the families and communities connected to Fort Bragg.

Read Seth’s piece in Harper’s, “Mission Impossible.”

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

03 Jan 16:52

The Matt Forde Focus Group: Boxing Day Special

Tom Roche

Surprisingly amusing outing with Michael Gove (! guess they couldn't get Boris for some /real/ comedy), Miranda Green @ Newsweek Europe (another far-fallen blast-from-the-past), and the always-delightful Pierre Novellie (with host Matt Forde supplying jokes, japes, and jibes). Well worth 30 min of your time

Top political comedian Matt Forde reconvenes his Focus Group for a Boxing Day special with a Dickensian twist.

Recorded in front of a live audience, Matt is joined by journalists, comedians and politicians – including former Cabinet Minister Michael Gove – to review the political state we're in through the lens of Charles Dickens' A Christmas Carol. Expect sharp analysis, unexpected confessions, and the year's biggest stories getting visited by the Ghosts of Politics Past, Present and Yet to Come.

Appearing as a festive treat in BBC Radio 4's Friday Night Comedy feed, it's a topical comedy that's both genuinely funny and surprisingly insightful – perfect for digesting with the leftover turkey.

Written and performed by Matt Forde Additional writing from Karl Minns, Laura Claxton and Richard Garvin Producer: Richard Garvin Executive Producers Jon Thoday and Richard Allen Turner Co-Producers: Daisy Knight and Jules Lom Broadcast Assistant: Sahar Rajabali Sound Design and Editing: David Thomas An Avalon production for BBC Radio 4

02 Jan 18:52

Episode 538 - The Final Somalilution (w/ Kit Klarenberg)

Tom Roche

best /Bad Faith/ in quite awhile excepting only that
- Klarenberg waffles on AOC-AIPAC financial ties
- like every /BF/, this ep all-too-soon reverts to US politics

Investigative journalist Kit Klarenberg returns to Bad Faith to discuss what Israel's recognition of Somaliland and US strikes on Somalia have to do with the ongoing Gaza genocide and domestic attacks on Somalian Americans. Also, how does Israeli software offer backdoor access to your phone, and did AOC admit force the vote was a good idea?

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).

01 Jan 20:13

[UNLOCKED] 164: Word Is Bond, with Troy Bond

Tom Roche

EXCELLENT: consistently funny, Bond does great impressions

UNLOCKED PATREON EPISODE!


Matt and Daniel are joined by comedian Troy Bond to review a cavalcade of self-important psychopaths, including Palantir CEO Alex Karp looking a little over-stimulated, Kalshi oddsmaker Tarek Mansour teasing a future where you can bet the under on the end of capitalism, and a low-poly model of Benjamin Netanyahu calling into the DealBook conference from a Call Of Duty: Black Ops cutscene.


Please donate to Gaza Great Minds: http://gazagreatminds.org/donate/


Subscribe to the Patreon https://www.patreon.com/badhasbara


Troy's website: https://troybond.komi.io/


Troy on IG: https://www.instagram.com/troybond69/


Troy on X: https://x.com/TroyHasEbola



Support this podcast at — https://redcircle.com/bad-hasbara/donations

Privacy & Opt-Out: https://redcircle.com/privacy
01 Jan 17:01

S6 Episode 3 - "The Stand"

Tom Roche

VERY EXCELLENT, informative and entertaining

Angolan anti-colonial rebels challenge Portugal. Cuba brings its revolution to Africa.

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

01 Jan 16:48

Defining AGI: Oops! All Eugenics, 2025.12.08

Tom Roche

excellent

There's a new definition of artificial general intelligence in town, and unsurprisingly... it's bad! Alex and Emily rip up the tissue-paper-thin premises behind this latest attempt to define "intelligence." Plus, we discover that AI hypers love using logos that look like buttholes.

References:

Fresh AI Hell:

Check out future streams on Twitch. Meanwhile, send us any AI Hell you see.

Find our book The AI Con here, and MAIHT3k merch here.

Subscribe to our newsletter via Buttondown.

Follow us!

Emily

Alex

Music by Toby Menon.
Artwork by Naomi Pleasure-Park
Production by Ozzy Llinas Goodman.

01 Jan 16:41

Interwar 4: The Anglo-Afghan War of 1919: Amanullah wins Independence

Tom Roche

Dave and (mostly) Justin excellent as usual

Our last episode of 2025. Did you know that Amanullah’s decision to wage war for Afghanistan’s independence from the British Empire had everything to do with Amritsar and the struggle underway in India in 1919? Some details on this war that you may not have heard, including the British besieging Peshawar, displacing whole towns full … Continue reading "Interwar 4: The Anglo-Afghan War of 1919: Amanullah wins Independence"
01 Jan 16:40

Interwar 1919-1931 episode 1:The Looting System

Tom Roche

Dave and (mostly) Justin excellent as usual

Reading the first two chapters of Michael Hudson’s Superimperialism, we study the transformation of the world financial system after World War I. That transformation is driven by a surprising decision by the US to insist on repayment of its loans to its allies, which in turn leads the allies (UK and France) to insist on … Continue reading "Interwar 1919-1931 episode 1:The Looting System"
01 Jan 16:40

Interwar 2: The 1919 Strikes!

Tom Roche

Justin and (mostly) Dave excellent as usual

1919 was the year of strikes in North America. How general strikes in Winnipeg and Seattle shook the North American rulers, even though both were contained. 
31 Dec 18:51

TAONAW - Emacs and Org Mode: I like the DU command in Dired

by TAONAW - Emacs and Org Mode
Tom Roche

TODO: gotta start using `M-x dired-do-[async-]shell-command` more. Pullquote/examples (mildly edited):

> Find a folder in Dired, mark it (Dired-scope key=`m`), run dired-do-shell-command (`!`) and then `du -hs`

> But since we’re in Emacs, and we might want to work with the results as text, we could use dired-do-async-shell-command (`&`) instead of dired-do-shell-command==`!`. `async-shell-command` will place the output in a separate temporary buffer we can work with (e.g., save it to a text file with `C-x C-w`).

> And you can run these Dired commands on multiple directories: mark multiple directories in Dired, run your Dired-scope commands (examples above), and the resulting buffer will give output for all the directories you’ve marked.

I had fun using the du command in Emacs this morning (that’s what I do when I don’t sleep well; judge away).

In Linux (and macOS), the DU command (I believe it stands for Disk Usage) is usually used to figure out what folders take up space on your hard drive.

While different GUI tools exist, they are not useful on encrypted drives on Linux, as they show the encrypted blocks instead of the directories, which don’t really tell you much (you could probably run those with escalated permissions, but I didn’t try).

For a gamer like me, it’s useful to see which games take up the most space. Here’s an example with a few useful flags, in the command line:

du -hs ~/.steam/steam/steamapps/common/* | sort -h

Shows me the following:

    4.0K    /home/jtr/.steam/steam/steamapps/common/Steam.dll
    76K     /home/jtr/.steam/steam/steamapps/common/Steam Controller Configs
    100K    /home/jtr/.steam/steam/steamapps/common/SteamLinuxRuntime
    248M    /home/jtr/.steam/steam/steamapps/common/Steamworks Shared
    657M    /home/jtr/.steam/steam/steamapps/common/SteamLinuxRuntime_soldier
    776M    /home/jtr/.steam/steam/steamapps/common/SteamLinuxRuntime_sniper
    1.4G    /home/jtr/.steam/steam/steamapps/common/Proton - Experimental
    3.4G    /home/jtr/.steam/steam/steamapps/common/Deep Rock Survivor
    3.5G    /home/jtr/.steam/steam/steamapps/common/Deep Rock Galactic
    11G     /home/jtr/.steam/steam/steamapps/common/Hades II
    21G     /home/jtr/.steam/steam/steamapps/common/Yakuza Kiwami
    82G     /home/jtr/.steam/steam/steamapps/common/Space Marine 2
    132G    /home/jtr/.steam/steam/steamapps/common/Helldivers 2

Some of the Steam-related components are not games, but… Helldivers 2 takes how much space?? Anyway.

A quick review of the options I used:

-hs for human readable (shows space in G for gigabyte and M for megabyte instead of writing in kilobytes) and summary (shows the top directory only)

~/.steam/steam/steamapps/common/* for the target path (this is where Steam stores the games in Linux, at least in Debian distros)

| to pipe the du command it into another command to read it better, in this case:

sort -h the sort command, which will sort it nicely again by order in human format. We need this last part if we want to see the directory in order, with the biggest one at the bottom.

Some places recommend using sort -hr, the additional r for reverse, which means in this case we will see the biggest directory at the top of the list. I don’t need it, because I want to see the biggest folder at the bottom, near the command line, which is where I’m going to focus next.

In Emacs, this command is easier use and works better thanks to Dired. Find a folder, mark it (m) in dired, and run dired-do-shell-command (!) and follow up with du -hs.

But since we’re in Emacs, and we might want to work with the results as text, we could use dired-do-async-shell-command (&). This will place the output in a temporary buffer we can work with (so we can save it to a text file, for example, with C-x C-w).

And here’s another thing I didn’t know: you can run these commands in Dired on multiple directories. Just mark several directories in Dired, and the resulting buffer will give you a list of all the directories you’ve marked. If you have this saved as a text buffer, it’s pretty easy to work withthe results (for example, save it as an org file and add headers telling you what you want to do with each directory).

By the way, even though it’s somewhat redundant with Dired’s default listing of files, you can also add the a option for du in this case ( for all) to display the files in the directories you’re viewing. This is useful in cases like the above, where you’re already working with the du command in Emacs and interested in looking at individual files as well, not just directories. Of course, you can just go in and list the files in Dired and open another Dired buffer with another directory listing files by size… this is Emacs, you have many ways to do whatever you want.

31 Dec 17:19

Democracy Now! 2025-12-31 Wednesday

Tom Roche

consistently VERY EXCELLENT 2nd day in a row!

Democracy Now! 2025-12-31 Wednesday

  • Headlines for December 31, 2025
  • U.S. Strikes Against Venezuela: Trump "Wants the Oil" as Grassroots Resist "Economic Asphyxiation"
  • "One More Step to Push Out Principled Humanitarian Actors": NRC on Israel Ban on Aid Groups in Gaza
  • "Mayor for the Masses": Can the Democratic Socialist Movement That Elected Mamdani Keep Its Momentum?
  • "The Blue Road to Trump Hell": Norm Solomon on "How Corporate Democrats Paved the Way for Autocracy"

Download this show

31 Dec 17:18

Jasper Nathaniel on "Israel's Archaeological Apartheid," the Jailing of Mohammed Ibrahim & More

Part 2 of our conversation with Jasper Nathaniel, the New York–based writer and reporter who covers Israel’s occupation of the West Bank on his Substack, Infinite Jaz. Nathaniel helped bring national attention to the case of Mohammed Ibrahim, the Palestinian American teenager who was released in late November after more than nine months in an Israeli military prison.
30 Dec 17:17

Democracy Now! 2025-12-30 Tuesday

Tom Roche

consistently VERY EXCELLENT

Democracy Now! 2025-12-30 Tuesday

  • Headlines for December 30, 2025
  • "Whatever Israel Wants": Trump Backs Netanyahu's "Colonial" Wars in Gaza, Iran & Beyond
  • "Israel Crushed Mohammad Bakri": Gideon Levy & Rami Khouri on Death of Iconic Palestinian Filmmaker
  • Trump Set to Garnish Wages for Student Loan Defaults; The Debt Collective Lays Out Other Options
  • Over 20M Americans Set to Lose Healthcare Coverage Jan. 1 After Congress Goes on Recess

Download this show

30 Dec 16:53

Top 10 Stories from Mexico in 2025: #10-6

by Soberanía Podcast
Tom Roche

EXCELLENT: informative and entertaining

Welcome to Part 1 of our special year-end episode on Soberanía! In this segment, we delve into the top 10 stories about Mexico from 2025, covering stories 10 through 6.

Join us as we discuss the opposition's missteps, the ambitious Plan Mexico, the influence of US actors in Mexico, mass Morena demonstrations, and Claudia Sheinbaum's impactful first year in office. Don't miss this engaging recap with our hosts and special guest, Samuel, as we prepare to reveal the top 5 stories in the next episode.

Stay tuned for part 2 next week!

29 Dec 20:17

Time of the Week

Tom Roche

EXCELLENT. This amusing parody of female-audience-targeting talk shows is consistently funny, with best bits including a South Carolina US Senator, a (too-brief) Charlie XCX performance, and several segments of girlboss-feud-ing

Chloe Slack presents an Anniversary Special celebrating 81 years of Time Of The Week alongside former host Ruth Paul (special guest Ellie White). Plus: items on Tall Sons, viral dances and we answer the question ‘Do women feel storms more than men?’

Sian Clifford stars as self-important journalist Chloe Slack in this comedy series parodying women’s current affairs and talk shows, surrounded by an ensemble cast of character comedians.

Chloe Slack - Sian Clifford Ruth Paul - Ellie White

Ensemble cast: Ada Player Alice Cockayne Aruhan Galieva Ayoade Bamgboye Caroline Elms Em Prendergast Jodie Mitchell Jonathan Oldfield Lorna Rose Treen Mofé Akàndé

Created by Lorna Rose Treen and Jonathan Oldfield

Writing team: Alice Cockayne Jodie Mitchell Jonathan Oldfield Lorna Rose Treen Priya Hall Will Hughes

Script Editors - Lorna Rose Treen and Jonathan Oldfield Photographer - Will Hearle Producer - Ben Walker

A DLT Entertainment Production for BBC Radio 4

29 Dec 17:33

All the Post's Bullsh*t (AE224)

Tom Roche

11-min teaser only

American Exception members on Patreon get first access to new episodes, and paid subscribers enjoy the entire library of the best historical analysis of deep events on the American Exception podcast.

Join our Patreon at https://patreon.com/americanexception

We are also on youtube at https://www.youtube.com/@americanexception9407

Aaron and Max Arvo discuss All the President’s Men—the 1976 film directed by Alan J. Pakula, starring Robert Redford and Dustin Hoffman, and based on a 1974 novel (lol) by Washington Post reporters Robert Woodward and Carl Bernstein. We recommend that people watch the film before listening since we don’t attempt to give any organized synopsis, nor do we avoid spoilers. Listen at your own risk!

Follow and support Max Arvo on Substack!

Music: "Old Movies" by Mock Orange

Special thanks to Dana Chavarria for producing the episode!!

27 Dec 20:17

[UNLOCKED] 166: Bad Kolnoa "The West Wing" with Zachary Foster & Vince Mancini

Tom Roche

EXCELLENT: amusing and informative (though not in the Sorkin way)

UNLOCKED PATREON EPISODE! HAPPY HOLIDAYS!


With Daniel in the wind, Matt welcomes returning champions Zachary Foster of Palestine Nexus, and Frotcast/Pod Yourself co-host Vince Mancini to get sorking wet on a deep dive into The West Wing’s Gaza episodes (S5E21, S6E2, available on HBO Max).


Please donate to Pal-Humanity: http://palhumanity.com/


Palestine Nexus: https://palestinenexus.com/


The #Content Report: https://vincemancini.substack.com/


New Bad Hasbara Merch: https://estoymerchandise.com/collections/bad-hasbara-podcast


Subscribe to the Patreon https://www.patreon.com/badhasbara


What’s The Spin playlist: https://open.spotify.com/playlist/50JoIqCvlxL3QSNj2BsdUR


Skad Skasbarska playlist: http://bit.ly/skadskasbarska


Subscribe/listen to Bad Hasbara wherever you get your podcasts.


Spotify https://spoti.fi/3HgpxDm


Apple Podcasts https://apple.co/4kizajt



Support this podcast at — https://redcircle.com/bad-hasbara/donations

Privacy & Opt-Out: https://redcircle.com/privacy
26 Dec 20:01

Dead Ringers Christmas: Ep 2. A Very Kemi Christmas and a Lammy New Year

Tom Roche

EXCELLENT (except for the pre-, post-, and inter-audio ads 'for listeners outside the UK'): consistently funny, esp the Trump gags (which get better as the episode continues)

The Dead Ringers team are back to train their festive firepower on the week’s news with an armoury of impressive impressions.

This week: Scrooge is visited by the ghost of a Money Saving Expert, and The Grinch more than meets his match.

This week's impressionists are Jon Culshaw, Jan Ravens, Duncan Wisbey and Jess Robinson

The episode was written by: Nev Fountain and Tom Jamieson, Laurence Howarth, Tom Coles, Sarah Campbell, Sophie Dickson, Peter Tellouche, Jon Holmes, Rachel E Thorn, JoJo Maberly and Cooper, Mawhinny & Sweryt

Created by Bill Dare Producer: Jon Holmes Executive Producer: James Robinson Production Co-ordinator: Caroline Barlow

A BBC Studios Production for Radio 4

26 Dec 16:30

The Fourth Transformation Punches Back: 600,000 Mexicans Rally in Support of Sheinbaum

by Soberanía Podcast
Tom Roche

EXCELLENT

This week on Soberanía: we report on the demonstration in Zócalo on the seventh anniversary of the Fourth Transformation, the significance of hundreds of thousands taking to the streets, and Claudia Sheinbaum’s push to expand Mexico’s public health system. We break down the proposed shift to a 40-hour workweek, what it really means for workers, and how minimum-wage gains fit into the bigger picture. We then examine the scandal ex-DEA personnel, crypto money-laundering, and weapons for the Jalisco Nueva Generación Cartel. We close with our Losers & Haters segment calling out the LA Times.

25 Dec 19:52

997 - Moment For 25 To Life (12/23/25)

Tom Roche

amusing, jjust bant

To round out a very dark year, Will and Felix take a look at some grim stories: the Brown shooter’s identity, another Epstein drop, Bari Weiss’s promotion to Regime Censor, and Jelly Roll being pardoned. We then turn to the TPUSA conference where the fight for Charlie Kirk’s legacy continues, with Nicki Minaj joining the fray and JD Vance working overtime to hold together a splintering coalition. Finally, we dive into a City Journal panel on the state of the modern right, where we learn what Gen Z conservatives think about Jews, Hitler, and marriage. By popular demand, ¡No Pasarán! Matt Christman's Spanish Civil War is back both for a second round of orders and an ebook. PLUS: everything is still 20% off for the holidays! Order now at https://chapotraphouse.store/ Year Zero: A Chapo Trap House Comics Anthology is also 15% off at badegg.co. Through end of year purchases of the book also include a free digital version of the comic. The digital version also available through GlobalComix. Follow the new Chapo Instagram: https://www.instagram.com/chapotraphousereal/ And Bluesky: https://bsky.app/profile/chapotraphousereal.bsky.social
25 Dec 16:26

Radio War Nerd EP 568 — Venezuela Under Siege, feat. Miguel Tinker Salas

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

EXCELLENT

Co-hosts John Dolan & Mark Ames
24 Dec 19:19

S6 Episode 2 - "Economy of Terror"

Tom Roche

Blowback EXCELLENT as usual (minus the pre-,, inter-, and post-audio ads)

A look into the Portuguese empire in southern Africa and the stirrings of nationalism in Angola.

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

24 Dec 18:12

169: A Jesse Brown Christmas, with Rachel Gilmore

Tom Roche

EXCELLENT, not just funny (as always) but informative (at least for this non-Canuckistani)

Good grief! After 2 years of being begged by our Canadian listeners to talk about the tragic downfall of their favorite (favourite?) podcast Canadaland, we decided to gift you all an extra long episode all about Jesse Brown. Our guest is Canadian journalist Rachel Gilmore, one of the many journalists who Jesse has attacked for reporting on the pro-Israel blinders of the Canadian political and media class.

Follow Rachel Gilmore on Instagram

Subscribe to Rachel's Substack

Finally, listen to her podcast Bubble Pop with Rachel Gilmore


Some Canadaland links:


"Thunder Bay" series (debuted in 2018): https://www.canadaland.com/thunder-bay-archive/


Jesse Brown's interview with Israeli Ambassador to 🇨🇦 (2024): https://www.canadaland.com/podcast/1035-israel-the-canadaland-interview/


Canadaland staff response to that interview: https://www.canadaland.com/a-response-to-canadalands-interview-with-israels-ambassador-to-canada/


"What Is Happening Here" series (2025): https://www.canadaland.com/podcast/introducing-what-is-happening-here-official-trailer/


Exchange about BDS between Jesse and Robert Jago: https://www.canadaland.com/podcast/993-pretendian-publisher-cartoon-cancellation/


New Bad Hasbara Merch: https://estoymerchandise.com/collections/bad-hasbara-podcast

Subscribe to the Patreon https://www.patreon.com/badhasbara

What’s The Spin playlist: https://open.spotify.com/playlist/50JoIqCvlxL3QSNj2BsdUR

Skad Skasbarska playlist: http://bit.ly/skadskasbarska

Subscribe/listen to Bad Hasbara wherever you get your podcasts.

Spotify https://spoti.fi/3HgpxDm

Apple Podcasts https://apple.co/4kizajt



Support this podcast at — https://redcircle.com/bad-hasbara/donations

Privacy & Opt-Out: https://redcircle.com/privacy
24 Dec 18:11

I Don’t Do… with Julian Clary

Tom Roche

as of 1800 UTC W 24 Dec 2025, this gets a BBC geolocation error (in US)

I Don’t Do…Christmas! is a brand new, gloriously mischievous panel show for people who’d, well, rather not.

Julian Clary hosts a yuletide celebration like no other, joined by comedians Jo Brand, Glenn Moore and Fatiha El-Ghorri, with special guest Gareth Malone.

Hosted and Created by Julian Clary

Featuring: Jo Brand, Fatiha El-Ghorri, Glenn Moore Special Guest: Gareth Malone

Additional Material: Andrew White

Sound: David Thomas Production Manager: Laura Shaw Producer: Charlie Dinkin Executive Producer: Benjamin Sutton

A Daddy’s Superyacht production for BBC Radio 4

23 Dec 18:02

Marcin Borkowski: Improving Emacs screenshots

by Marcin Borkowski
Tom Roche

elisp for creating a frameshot of an Emacs frame (~= GUI window) directly from within Emacs (via the [ImageMagick tool Mogrify](https://imagemagick.org/script/mogrify.php))

Three years ago I wrote a short post about making screenshots directly in Emacs. I’m still using that feature from time to time (last time when I was writing the post about changing window layouts), and I noticed that it could use some improvement.
23 Dec 17:56

Rahul Juliato: Composing Text in Emacs: Unicode, Emojis, and the Power of C-x 8

by Rahul Juliato
Tom Roche

excellent information-rich post](https://rahuljuliato.com/posts/unicode-emojis) ! I'm still learning after |years using Emacs| > 30: e.g., this (somewhat-edited) pullquote (which is a /very/ small part of Juliato's post):

> [Emacs] allows you to build [Unicode glyphs with [diacritics](https://en.wikipedia.org/wiki/Diacritics)] from base characters + combining marks [using `M-x compose-region`. E.g., type]

> c¸'

> [then mark those 3 characters--i.e., select that region--and then do `M-x compose-region` to produce the single glyph]

> ḉ

> [You can also deeply-inspect metadata about a glyph with `M-x C-u C-x =` :]

> For [glyphs like] composed characters and emojis, Emacs will show [how text stops being "letters" and starts being metadata stacks, displaying the glyph's]:

> → The full Unicode sequence
> → Each individual code point
> → Combining characters
> → Zero Width Joiners
> → Text properties and composition details

> This is essential when dealing with:

> → Accents built from combining marks
> → ZWJ emoji sequences
> → “Why does this look right but behave wrong?”
> → Copy/paste weirdness across platforms

> [2 examples:]

> 1. `C-u C-x =` on a [region containing a single] simple accented character (á)

> position: 7495 of 9102 (82%), column: 43
> character: á (displayed as á) (codepoint 225, #o341, #xe1)
> charset: unicode (Unicode (ISO10646))
> cooint in charset: 0xE1
> script: latin
> syntax: w which means: word
> category: .:Base, L:Strong L2R, c:Chinese, j:Japanese, l:Latin, v:Viet
> to input: type "C-x 8 RET e1" or "C-x 8 RET LATIN SMALL LETTER A WITH ACUTE"
> buffer code: #xC3 #xA1
> file code: #xC3 #xA1 (encoded by coding system utf-8-unix)
> display: by this font (glyph code):
> ftcrhb:-[your currently-in-use font name here]-*-14-*-*-*-m-0-iso10646-1 (#xA4)

> Character code properties: customize what to show
> name: LATIN SMALL LETTER A WITH ACUTE
> old-name: LATIN SMALL LETTER A ACUTE
> general-category: Ll (Letter, Lowercase)
> decomposition: (97 769) ('a' '́')
> ...

> 2. `C-u C-x =` on a region containing the "flaming heart emoji" ❤️‍🔥:

> position: 8529 of 10012 (85%), column: 61
> character: ❤ (displayed as ❤) (codepoint 10084, #o23544, #x2764)
> charset: unicode (Unicode (ISO10646))
> code point in charset: 0x2764
> script: symbol
> syntax: w which means: word
> category: .:Base, 5:symbol
> to input: type "C-x 8 RET 2764" or "C-x 8 RET HEAVY BLACK HEART"
> buffer code: #xE2 #x9D #xA4
> file code: #xE2 #x9D #xA4 (encoded by coding system utf-8-unix)
> display: composed to form "❤️‍🔥" (see below)

> Composed with the following character(s) "️‍🔥" using this font:
> ftcrhb:-[your currently-in-use font name here]-*-14-*-*-*-m-0-iso10646-1
> by these glyphs:
> [0 3 10084 1537 17 0 18 13 4 nil]
> with these character(s):
> ️ (#xfe0f) VARIATION SELECTOR-16
> ‍ (#x200d) ZERO WIDTH JOINER
> 🔥 (#x1f525) FIRE

> Character code properties: customize what to show
> name: HEAVY BLACK HEART
> general-category: So (Symbol, Other)
> decomposition: (10084) ('❤')
> ...

One of the things that never stops fascinating me about Emacs is how deep the rabbit hole goes when your start exploring... well... anything!

You come for a text editor.

You stay because it quietly turns into a laboratory and eventually the custom interface for your entire computer experience.

Most people associate emojis with mobile keyboards, chat apps, or graphical pickers. Emacs takes a completely different approach: Unicode as a first-class citizen. And at the center of this philosophy lives a deceptively simple prefix C-x 8.

Altough not obligatory, In order to explore this feature, try enabling which-key with M-x which-key-mode RET, then issue C-x 8 and wait for the options.

If you've ever wondered how to compose, combine, and bend Unicode inside Emacs, this post is for you.


C-x 8

In Emacs, C-x 8 is the entry point to character composition.

It allows you to:

→ Insert Unicode characters by name

→ Compose accented characters manually

→ Combine multiple code points into a single visible glyph

→ Create emoji sequences using Zero Width Joiners

→ Abuse combining characters in ways that would scare typography purists

This is not about convenience, this is about control.


Inserting Unicode by Name

The most straightforward usage is:

C-x 8 RET

This prompts you for a Unicode character name.

Try typing:

LATIN SMALL LETTER A WITH ACUTE

á

Or:

GREEK SMALL LETTER LAMBDA

λ

Tip: If you have something like vertico-mode or icomplete-vertical-mode turned ON, you get a preview of your search.

You can also type the code directly, even if Emacs doesn't show it as a preview, like:

274C

Returns:


Composing Accents Manually (Base + Combining Marks)

Unicode doesn’t require precomposed characters like á or ç. Instead, it allows you to build them from base characters + combining marks.

This is where Emacs shines again:

Using M-x compose-region.

Start by tiping a and ' for example, you'll get:

Mark the region (select) with both chars then and use M-x compose-region RET do get:

á

And even more layered:

c¸´

Becomes:

ḉ

These are not “single characters” in the traditional sense.

They are Unicode sequences rendered as one glyph.

If you try to delete from right to left, you'll get it decomposing, like:

ḉ
ç
c

Note: After I first published this post, Eli Zaretskii (Emacs maintainer) was kind enough to share his critique of this approach. Here are his remarks (original here):

The section about composing accents is, in my opinion,
misguided.  Emacs already handles this automatically by
default, without any need to invoke `compose-region`.

The reason the command appeared necessary in the earlier
example is that it used the wrong characters. It should have
used **COMBINING CEDILLA** and **COMBINING ACUTE ACCENT**
instead — which is exactly what the following section does.

I recommend staying away from `compose-region` in Emacs. It
does not fully support all display features and options
(such as bidirectional display), and it may cause problems
in certain corner cases.

Combining Characters

Let’s take a simple letter:

Z

Now, using C-x 8 RET, start adding combining marks:

COMBINING OGONEK
COMBINING TILDE
COMBINING DOT BELOW
COMBINING CEDILLA

→ …repeat as many times as your conscience allows

Result:

Ẓ̨̧̧̧̧̧̧̧̧̧̧̧̃

This is valid Unicode.

It may render differently depending on font and platform, but Emacs treats it as a perfectly legitimate text sequence. If you're not inside Emacs, try copying it into some buffer and/or change fonts.

At this point, hopefully you can see how text stops being "letters" and starts being stacked metadata.


Variation Selector-16 (U+FE0F): Forcing Emoji Presentation

Not every emoji-looking thing starts as an emoji.

Many Unicode characters exist in a neutral or text presentation form.

Whether they render as plain text or as colorful emoji depends on an invisible hint called a Variation Selector.

The most important one is:

VARIATION SELECTOR-16 (U+FE0F)

In Emacs:

C-x 8 RET VARIATION SELECTOR-16

VS16 explicitly tells the renderer:

"Treat the previous character as an emoji, not as text."

Let's start with this example:

❤   (HEAVY BLACK HEART)

Adding VARIATION SELECTOR-16, we get:

❤️ (HEAVY BLACK HEART + VARIATION SELECTOR-16)

Same base character. Different semantic intent.

VS16 doesn’t draw anything. It changes meaning.

Another example, insert the digit:

1

That’s just ASCII text.

Now add:

COMBINING ENCLOSING KEYCAP

Result:

1⃣

This might look like a keycap, or it might look broken. It depends on your font. That’s because we didn’t force emoji presentation.

Now do it properly:

Sequence:

1
VARIATION SELECTOR-16
COMBINING ENCLOSING KEYCAP

Result:

1️⃣

Important note: that is not one character.

It’s a sequence of three code points:

1 (DIGIT ONE)

U+FE0F (VARIATION SELECTOR-16)

U+20E3 (COMBINING ENCLOSING KEYCAP)

Without VS16, renderers are free to choose a text glyph. With VS16, you get the emoji version, consistently.


Zero Width Joiner (U+200D): Emoji Glue

If combining marks alter a single character by adding overlays, the Zero Width Joiner (ZWJ) works at the sequence level, telling the renderer to treat multiple characters as one visual unit — most notably in emoji composition.

Unicode code point:

U+200D

In Emacs:

C-x 8 RET ZERO WIDTH JOINER

ZWJ tells the renderer:

"These characters should be treated as a single semantic unit."

Here's an example:

❤  HEAVY BLACK HEART
❤️  HEAVY BLACK HEART + VARIATION SELECTOR 16
❤️‍🔥  HEAVY BLACK HEART + VARIATION SELECTOR 16 + ZERO WIDTH JOINER + FIRE

The "flaming heart" is not a single character. It’s a sequence:

  • ❤️
  • ZWJ
  • 🔥

Another example is creating "Families" from "Individuals":

This emoji:

👨‍👩‍👦

Actually is the combination of:

  • 👨
  • ZWJ
  • 👩
  • ZWJ
  • 👦

You can add more members to your "family" and change their appearance, this is only limited by your "font set", meaning some fonts might not render well an specific combination, but many will.

Note: After I first published this post, shipmints suggested that you can also create these sequences via Emacs Lisp (original here), like:

(concat "\N{WOMAN}"
		"\N{ZERO WIDTH JOINER}"
		"\N{HEAVY BLACK HEART}"
		"\N{VARIATION SELECTOR-16}"
		"\N{ZERO WIDTH JOINER}"
		"\N{MAN}"
		" ")

Result:

👩‍❤️‍👨


Inspecting Unicode with C-x = (what-cursor-position)

Typing Unicode is only half the story.

Understanding what you actually typed is the another half.

Lucky us, Emacs users. Just place point over any character and press:

C-x =

You will have a description of the char in your minibuffer, with information like:

→ Character name

→ Unicode code point

→ Script

→ Charset

→ How Emacs internally represents it

This alone is already incredibly useful, but wait! There's more!


Deep Inspection: C-u C-x =

Now add the (universal-argument) prefix:

C-u C-x =

This is where things get serious.

For composed characters and emojis, Emacs will show:

→ The full Unicode sequence

→ Each individual code point

→ Combining characters

→ Zero Width Joiners

→ Text properties and composition details

This is essential when dealing with:

→ Accents built from combining marks

→ ZWJ emoji sequences

→ “Why does this look right but behave wrong?”

→ Copy/paste weirdness across platforms

Some examples:

C-x = on a simple accented character (á)

Char: á (225, #o341, #xe1, file ...) point=7495 of 8976 (83%) column=43

C-u C-x = on a simple accented character (á)

			 position: 7495 of 9102 (82%), column: 43
			character: á (displayed as á) (codepoint 225, #o341, #xe1)
			  charset: unicode (Unicode (ISO10646))
code point in charset: 0xE1
			   script: latin
			   syntax: w	which means: word
			 category: .:Base, L:Strong L2R, c:Chinese, j:Japanese, l:Latin, v:Viet
			 to input: type "C-x 8 RET e1" or "C-x 8 RET LATIN SMALL LETTER A WITH ACUTE"
		  buffer code: #xC3 #xA1
			file code: #xC3 #xA1 (encoded by coding system utf-8-unix)
			  display: by this font (glyph code):
	ftcrhb:-JB-JetBrainsMono Nerd Font-regular-italic-normal-*-14-*-*-*-m-0-iso10646-1 (#xA4)

Character code properties: customize what to show
  name: LATIN SMALL LETTER A WITH ACUTE
  old-name: LATIN SMALL LETTER A ACUTE
  general-category: Ll (Letter, Lowercase)
  decomposition: (97 769) ('a' '́')
...

This can be specially usefull in our emojis, let's try it on ❤️‍🔥:

			 position: 8529 of 10012 (85%), column: 61
			character: ❤ (displayed as ❤) (codepoint 10084, #o23544, #x2764)
			  charset: unicode (Unicode (ISO10646))
code point in charset: 0x2764
			   script: symbol
			   syntax: w	which means: word
			 category: .:Base, 5:symbol
			 to input: type "C-x 8 RET 2764" or "C-x 8 RET HEAVY BLACK HEART"
		  buffer code: #xE2 #x9D #xA4
			file code: #xE2 #x9D #xA4 (encoded by coding system utf-8-unix)
			  display: composed to form "❤️‍🔥" (see below)

Composed with the following character(s) "️‍🔥" using this font:
  ftcrhb:-GOOG-Noto Color Emoji-regular-normal-normal-*-14-*-*-*-m-0-iso10646-1
by these glyphs:
  [0 3 10084 1537 17 0 18 13 4 nil]
with these character(s):
  ️ (#xfe0f) VARIATION SELECTOR-16
  ‍ (#x200d) ZERO WIDTH JOINER
  🔥 (#x1f525) FIRE

Character code properties: customize what to show
  name: HEAVY BLACK HEART
  general-category: So (Symbol, Other)
  decomposition: (10084) ('❤')
 ...

Fonts Matter (A Lot)

One important caveat: fonts decide how far you can go.

Some fonts handle combining characters and emoji sequences beautifully. Others collapse under pressure.

If you see:

→ Misaligned accents

→ Overlapping glyphs

→ Missing emoji components

It’s almost always a font issue, probably not Emacs, not Unicode.

I'd recommend JetBrainsMono Nerd Font or Maple Mono NF. You can find a lot more fonts on nerd fonts site, or use my custom installer script (post, github).


Final Thoughts

Once you internalize C-x 8, unicode and emojis stop being “special”. If you explored it with which-keys as I recommended at the beginning of this post, you probably saw a lot more than C-x 8 RET, emojis even get the special C-x 8 e e sub-menu for convenience.

And I hope once you use C-u C-x =, special characters, block non visible (non printable with your font choice) chars stops being mysterious.

Unicode is a vast and deeply technical subject, but the goal here wasn't theory, it was to show how Emacs turns it into something you can actually use, inspect, and enjoy.


Thanks!

This is likely my final post for 2025, so it feels like a good moment to say thank you.

Thank you to everyone who read these posts, sent feedback, pointed out mistakes, shared them around, or just quietly followed along. This year was especially fun to write: lots of small discoveries, deep dives into Emacs internals, and many "oh wow, it already does that?" moments.

Happy hacking!


Edit

2025-12-28: Added Eli Zaretskii remarks. Added Shipmints code suggestion, typo fix and font recommendations.