Tom Roche
Shared posts
MM43 - Punks & Bad Boys
Tom Rocheexcellent, amusing, esp outro (theme from original/1958 /The Blob/)
Jack Baty: Org-social
Tom Roche> [Org-social](https://github.com/tanrax/org-social) is a decentralized social network that runs on an Org Mode file over HTTP
Org Social is a decentralized social network that runs on an Org Mode file over HTTP.
You can create posts, interact with groups, make replies, mention other users, create polls, or personalize your profile. All this without registration, without databases… Just you and your Org Mode file.
It’s a ton of fun for us emacs nerds. Follow mine here:
Jack Baty: A couple of weeks full-time in Linux. How's it going?
Tom Roche... but on Apple hardware ...
TL;DR It’s a love/hate thing, with love in the lead.
Here are a few thoughts on how things are going so far.
I’m still using Omarchy. I really like the tiling window setup with Hyprland. I sometimes paint myself into a corner, but mostly it makes window management fast and efficient. Workspaces on Linux are so nice.
Everything on Omarchy can be done via keyboard. Once I got used to the bindings, this has made getting around, launching apps, moving windows, etc. convenient. I’m not against using a mouse, but It’s nice not to have to.
So far almost everything has worked without fuss. My Apple Studio Display works, as does its speaker volume, webcam, and microphone. I was able to print to my laser printer straight away, and never needed to install anything for it.
Speaking of installing things, using the little TUI wrapper over Pacman and the AUR is a dream. Launch the TUI, type part of the name of the app to install, and hit Return. Done. No app store, no DMGs to extract. Homebrew on macOS is pretty good, but it’s not as all-inclusive and consistent.
Mostly what I like so far about Linux is how I feel about using it. I like the feeling of “Hmm, what can I do with my computer, today” rather than, “I wonder what Apple is going to allow me to do with my computer, today.” Running Linux on this completely repairable and upgrade-able Framework laptop, I feel a sense of agency. It’s a good feeling.
That agency, however, comes with responsibility. I’m completely in charge, here. That means when things don’t work right (and sometimes things don’t work right), it’s on me to figure out some obscure way to fix it. I don’t know where anything is, yet. Thankfully, things have been working fine, but inevitably there’ll be some weird issue with the boot loader or Bluetooth will just quit working for no reason. That’s when the parts of Linux I don’t like will start.
I miss some things from the Mac. I miss BBEdit, Tinderbox, PopClip, DEVONthink, and others. I miss my photography workflow. Photo management and editing software on Linux is powerful, but it’s not fun to use. At all. When doing any significant photo management, I switch to the Mac for now. I don’t know if that will ever change. Capture One, Lightroom, and Photoshop are just too good.
Mostly, I miss having the standard Emacs bindings everywhere. It’s driving me nuts to type this post in a web browser, for example. How do people deal with text like this. Arrow keys? Gross. I just want C-f, C-b, C-a, C-e, C-n, and C-p, is all.
All I know is that I’m having a lot of fun right now.
Civ 1919: Treaty of Versailles 14 – Final Roundup of Critics of the Treaty – Dulles, Churchill, Hitler
Tom RocheJustin and (mostly) Dave excellent as usual
Lambda Land: How I Organize the Papers I Read
Tom RocheEXCELLENT. note that, in this post, writer=[Ashton Wiersdorf](https://lambdaland.org/docs/about/) says 'paper' when I will say 'item', since IMHO latter is more inclusive of academic-research inputs including (monographic) books, chapters in edited volumes, articles in serial publications, webpages, etc. pullquote:
> My setup [for {recording, organizing, authoring} x {items, notes on items, citations of items}]: hybrid of Emacs and Zotero
outline:
* Use Zotero for collecting items and their metadata
* When using Zotero && LaTeX, use the [Better BibTex](https://github.com/retorquere/zotero-better-bibtex) extension for Zotero
* Almost-pullquote: 'I prefer reading and most note-taking outside of Emacs,' but writing plaintext (Org implied) in Emacs.
* When writing items, use Emacs package=[Citar](https://github.com/emacs-citar/citar) esp for
***** finding references
***** inserting citations.
***** function=`citar-open-entry-in-zotero` for jumping from Emacs text to Zotero entry
* To create plaintext notes (with tags, links, and automatic backlinks!), use the Zettelkasten-via-Org Emacs package=[Denote](https://protesilaos.com/emacs/denote)
* Integrate Citar+Denote with Emacs package=[citar-denote](https://github.com/pprevos/citar-denote) ... which is part of [Emacs Writing Studio](https://github.com/pprevos/emacs-writing-studio/) ... which is /yet another/ 'integrated research, writing, and publication tool' (but significantly more integrated/hefty than Wiersdorf's)
I got asked how I manage papers, notes, and citations for doing research. I started writing out a very long Slack message, but it quickly passed the threshold where I ought to just turn it into a blog post.
The short of it: I’m an incorrigible Emacs user, so I do a lot through my editor of choice on my laptop. That said, Zotero is a fabulous piece of technology, and I rely on it heavily to get my work done.
General recommendations #
Use Zotero in some capacity. Zotero is great. You should use it at a minimum for collecting papers and keeping paper metadata. It’s completely free and open source. It has excellent apps for iOS and Android so you can read and markup papers on a tablet and access everything on your desktop, but that’s optional. It’s so smart about finding citation information: drag a PDF into it and it will look for the DOI or something and auto-populate the relevant bibliographic information. It’s not perfect, but it’s still pretty darn helpful.
When you’re starting out, I recommend using Zotero’s hosted syncing purely because it’s so easy to use. If you start being a paper packrat and need more than the 300 MB limit, you can self-host or pay a little for more storage. (I’m using 797 MB after several years of heavy Zotero use—I even have a few books in my library!) The lovely thing is you don’t have to commit to syncing up-front. You can start with purely local storage too if you want.
If you’re a LaTeX user like me, you should use the Better Bibtex package. You can configure it to make a .bib file for your entire library or just certain collections. I keep a big .bib file for my entire library and then separate .bib files for each paper I write.
As long as I am the sole author, that is. My advisor prefers manually managing bibliographies, so what I tend to do is manually copy the reference information from my main .bib file into the .bib file for our shared paper.
My setup: hybrid of Emacs and Zotero #
I’m as close to an Emacs maximalist as you will find. Nevertheless, I prefer reading and most note-taking outside of Emacs. I read and annotate papers on my iPad, and Zotero syncs the annotations to my desktop.
When I’m writing papers, I use the Citar package in Emacs. This makes it easy to find references and insert citations. Works for Markdown, Org-mode, and LaTeX files. If you’re wondering whether or not it can do a particular thing, the answer is going to be “yes” or “there’s a package to do that” or “it’s easy to add that functionality” or “I don’t know but Claude could probably get you pretty close in modifying it to do that.”
I’ll still take some notes on a paper inside of Emacs, but Zotero is how I primarily manage annotations. When I do a literature review I’ll make a big note in Emacs and just link to the papers that I’m referencing.
Plain-text maximalist #
If you are a plain-text maximalist and like to sync everything via Git or something, then you should be using Emacs. If you are strong enough to resit the pull of closed-format tools for this long, Emacs is for you. It is not a text editor; it is a toolkit to build your ideal text editor. If getting started is intimidating, try out my starter kit, which is basically a set of sane defaults with helpful commentary on how to customize it further. Using Emacs will enable you to build a workflow that is exactly tailored to your idiosyncrasies. It’s an investment, but a worthy one.
So, if you are committed to the Emacs + plain text way, here is what I would recommend:
-
Still use Zotero to store papers & associated metadata. Don’t use it for annotations though.
-
Use Emacs and install the Citar package. It ships with a function called
citar-open-entry-in-zoterowhich can help you jump from Emacs → Zotero entry. I use this a lot. -
Use the Denote Zettelkasten-style personal knowledge management (PKM) system. This provides utilities to create notes with tags, links (and automatic backlinks!), etc. all in plain-text. Sync this with Git or whatever.
-
Tie Denote and Citar together with the denote-citar package. Now, when you search for a paper with Citar, you can open a notes file for that paper. When you do, you’ll get a split screen: paper on the right, notes file on the left. If you use the pdf-tools package (and you should) then you can even add annotations to the PDF inside of Emacs!
Build your own system #
The most important thing is that you build your own system. You have to own it. You might find it easier to adopt someone else’s system, but you should be intentional about every habit you acquire. Be prepared to iterate.
I used to be rather rigid with how I organized papers. I found that extreme structure was more constricting than helpful, so there’s a little messiness with how I’m organized, and I’m OK with that.
If you want to know exactly how I configure any of the above packages in Emacs, feel free to contact me.
Radio War Nerd EP 552 — Operation Barbarossa, Pt. 1: German Dreams, feat. Annibale
Tom RocheAnnibale EXCELLENT as usual
The News Quiz: Ep 4. A Lib Dem Conference and a Seagull Summit
Tom Rocheexcellent
In the week where Trump addressed the UN, Lib Dems conferred on the beaches of Bournemouth, and a Seagull Summit came to Inverness, Andy Zaltzman is joined by Simon Evans, Neil Delamere, Tiff Stevenson and Cindy Yu to break it all down. Expect talk of the Burnham from behind, the Boriswave, and the wettest generation since the floods.
Written by Andy Zaltzman.
With additional material by: Jade Gebbie, Miranda Holms, Ruth Husko and Peter Tellouche. Producer: Rajiv Karia Executive Producer: James Robinson Production Coordinator: Jodie Charman Sound Editor: Marc Willcox
A BBC Studios Production for Radio 4.
The Players Club Episode 1: Metal Gear Solid (1998) - Am I My Brother’s Streaker?
Tom Rocheexcellent
Episode 513 Promo - When Monopolies Yield Censorship (w/ Alvaro Bedoya & Matt Stoller)
Tom Rochenote: ~30 min excerpt free on YouTube
Subscribe to Bad Faith on Patreon to instantly unlock this episode and our entire premium episode library: http://patreon.com/badfaithpodcast
Matt Stoller, Director of the American Economic Liberties Project and king of anti-monopoly discourse, returns to Bad Faith podcast along with former Federal Trade Commissioner Alvaro Bedoya, who was recently fired by President Trump, to explain how Trump is weaponizing ostensibly independent federal agencies to advance his censorship agenda. As Matt argues, oligarchic control over the media is impossible without media consolidation, and the Jimmy Kimmel cancelation fiasco is in some ways secondary to the bigger problem of an undiversified media ecosystem. Bedoya, who is also the founding director of the Center on Privacy and Technology at Georgetown University Law Center, broadens the conversation into one about the founding fathers' original conception of the corporation, and the need to impose limits due to its fundamentally anti-democratic potential. Will Democrats finally trust the anti-trust pros to break up the powers that are buying America?
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).
Irreal: Org-transclusion
Tom RocheVERY INTERESTING! pullquote (moderately edited):
> [org-transclusion](https://github.com/nobiot/org-transclusion) [is an Emacs package that allows an Org file to] include content from another [Org] file[.] It’s sort of like a # INCLUDE: but a bit more flexible. You can, for example, make changes in the destination file and have them reflected back to the source file. You can also specify which lines you want from the source file and have only those imported. There’s also a nice integration with code blocks that the author, nobiot, talks about in [this video](https://www.youtube.com/watch?v=ueaPiA622wA) (9 minutes, 45 seconds).
> This looks like a mature package that’s been around for at least 4 years and is [currently] maintained with the last update 9 months ago. There’s a [comprehensive manual](https://nobiot.github.io/org-transclusion/) available online as well as an `info` file.
Over at the OrgRoam subreddit, thephatmaster asks for some help in using org-roam to organize and write his research. As of this writing, he hasn’t gotten much response but there is a comment that recommends he take a look at org-transclusion. I hadn’t heard of it so I took a look.
The idea is that you can include content from another file in an org document by means of a link. It’s sort of like a # INCLUDE: but a bit more flexible. You can, for example, make changes in the destination file and have them reflected back to the source file.
You can also specify which lines you want from the source file and have only those imported. There’s also a nice integration with code blocks that the author, nobiot, talks about in this video (9 minutes, 45 seconds).
This looks like a mature package that’s been around for at least 4 years and is still be maintained with the last update 9 months ago. There’s a comprehensive manual available online as well as an info file. The software is available from GNU ELPA and so is easy to install.
This seems like a really good package that can help organize research and serve as a way of reusing research notes. Take a look at the GitHub repository for a list of ways you can use it.
973 - Cross on the Moon feat. Brendan James (9/29/25)
Tom Rochejust bant but amusing
145: Israel is MAH WIFE, with Briahna Joy Gray
Tom RocheEXCELLENT
Matt and Daniel are joined by the host of the Bad Faith podcast, Briahna Joy Gray to speak on the UN committee report recognizing a genocide by Israel in Gaza, as well as Charlie Kirk’s dispatch from the AI beyond, and Ambassador Mike Huckabee doing Netanyahu’s act like the Gallagher II of international relations.
Please donate to Pal Humanity: http://palhumanity.com/
Send us an email or leave us a voice message for our next mailbag. badhasbara@gmail.com / (747) 348-5259. 100 words, 20 seconds, make it count.
Get the Bad Faith podcast at https://podcasts.apple.com/us/podcast/bad-faith/id1531192509
Join the patreon at https://www.patreon.com/badhasbara
Bad Hasbara Merch Store:
https://estoymerchandise.com/collections/bad-hasbara-podcast
Get tickets for Francesca Fiorentini and Matt Lieb at the Ice House in Pasadena October 1: https://www.showclix.com/event/new-world-disorder-10-01-25-7-45-pm
Get tickets for Francesca Fiorentini, Matt Lieb and friends with Daniel Maté October 13 in Brooklyn: https://bit.ly/mattfranbellhouse
Subscribe to the Patreon https://www.patreon.com/badhasbara
What’s The Spin playlist: https://open.spotify.com/playlist/50JoIqCvlxL3QSNj2BsdUR
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
The News Quiz: Ep 3. Crossing the Pond, Crossing the Floor
Tom Rochesub-median NQ == just amusing
Andy Zaltzman is joined by Hugo Rifkind, Pierre Novellie, Sara Barron and Lucy Porter to break down the week in news. The panel unpack Trump's second state visit, the reserve banquet of seat fillers, foreign investment from the US, Ed Davey's Ancient Greek punishment, chimps drunk on fruit, and why Penny Mordaunt thinks it's no fun to be a Conservative anymore.
Written by Andy Zaltzman.
With additional material by: Cody Dahler, Ruth Husko, Sam Lake and Laura Major. Producer: Rajiv Karia Executive Producer: Richard Morris Production Coordinator: Jodie Charman Sound Editor: Marc Willcox
A BBC Studios Production for Radio 4.
S6 Episode 1 - "The Dead Myth"
Tom RocheBlowback returns! excellent as usual
An introduction to and overview of our sixth season: the story of Angola, Cuba, and apartheid South Africa's Cold War showdown.
Advertising Inquiries: https://redcircle.com/brands
Privacy & Opt-Out: https://redcircle.com/privacy
Learn more about your ad choices. Visit megaphone.fm/adchoices
971 - The Years of Whatever feat. Will Sommer (9/22/25)
Tom Rocheamusing and insightful
Used EVs have never been cheaper. But are they a good deal?
Tom Roche[original article](https://grist.org/culture/used-evs-have-never-been-cheaper-but-are-they-a-good-deal/) (archived [here](http://web.archive.org/web/20250923191221/http://web.archive.org/screenshot/https://grist.org/culture/used-evs-have-never-been-cheaper-but-are-they-a-good-deal/)). pullquote (heavily edited, near end of article):
> it’s not uncommon for dealers to either not have, or not know, how to access battery health information, though that process may become more standardized in coming years. [Meanwhile,] the used car auction that [[Cox Automotive](https://www.coxautoinc.com/)] operates—Manheim—rates batteries on a scale of 1 to 100. It’s the largest auction network in North America and is used by many dealers, which may be able to pass along any information they receive about the battery. “Definitely you want something that’s going to be above 80 percent,” [Stephanie Valdez Streaty at Cox Automotive] said.
> The other option is to ignore range or depreciation and buy the cheapest car possible and drive it into the ground. This works well for people who only need a car for around town—most people don’t drive more than 40 miles a day—and don’t care about features. This is what [John Helveston at George Washington University] did when he bought a ten-year-old Leaf off Facebook Marketplace for $5,000. It had a remaining range of just 60 miles, but he drives no more than 30 per day.
The deals on used electric vehicles right now are shocking.
In 2017, a brand-new Nissan Leaf carried a price tag of about $35,000; today, that same car is yours for less than $6,500. This story repeats across the market. A Hyundai Kona that rolled off the showroom floor in 2021 for more than $43,000 has fallen below $16,000. Even newer models aren’t spared from this kind of depreciation. Take the 2024 Hyundai Ioniq 5: it debuted with a sticker close to $62,000, but after 8,000 miles and less than 12 months on the road, at least one is selling for around $37,000. The drops are even starker in the luxury segment. An Audi e-Tron GT supercar that cost about $124,000 just three years ago is now offered at $52,000. All of this is before government incentives that could bring costs even lower.
In August, plummeting prices sparked a 59 percent year-over-year surge in used EV sales, according to the research firm Cox Automotive. But the trend also begs the question whether even well-priced used EVs are a bad investment in an asset that will continue to depreciate at an alarming rate. Experts say that depends on the car, and on how the buyer would use it.
“I would buy one now,” said Stephanie Valdez Streaty, director of industry insights at Cox Automotive. In August, used electric cars typically cost about $900 more than similar gas-powered ones, she added, which is the lowest gap on record. It’s a premium that is likely easily made up in gas savings and far lower maintenance costs because an EV won’t need, say, oil changes. “There’s a really strong value proposition to buying a used EV,” Valdez Streaty said.
But even a deep discount may not be enough for some people to shake off their earlier experiences, or perceptions, about electric cars, said John Helveston, an engineer and professor at George Washington University who studies technology adoption. As he put it, “If you bought a used Leaf even a few years ago, your experience was likely not great.”
That’s because until recently, batteries often deteriorated rapidly, which led to untenable driving ranges and often regrettable purchases. But Helveston said the landscape has changed dramatically, with a trend toward more efficient technologies and bigger packs that don’t degrade as fast. Still, most warranties only kick in once the capacity has fallen below 70 percent. So, Helveston said, the car’s original range remains critical and is one of the best indications of how quickly it might depreciate.
“If you’re sub-200 miles as your new starting range, they don’t hold their value very well,” he said. Conversely, that’s why Teslas — with ranges in the 300- or 400-mile realm — have historically depreciated considerably more slowly.
Although research by Helveston and others has shown that EVs depreciate much more quickly than gas-powered vehicles in the first two to three years, the good news is that after that the rates of decline converge and all cars lose value at a similar pace.
Incentives are another factor to consider. Right now an income-qualified buyer can get up to $4,000 federal tax credit on a used EV costing under $25,000 or as much as $7,500 for a new one. Many states, municipalities, and utilities offer rebates as well. But the federal credits go away at the end of month, which could cause electric car prices to inch upward. On the other hand, a loophole in those incentives led to a glut of leased electric vehicles — more than a million of which are set to hit the used market within the next few years, which could exert downward pressure on prices. It’s unclear how all those elements will interact.
“There’s no crystal ball on this,” said Kevin Roberts, director of economic and market intelligence at the website CarGurus, via e-mail. “But given recent trends, we don’t expect to see the price volatility in used EVs that we’ve seen in the past.”
The bad news is that shopping for used EVs can be a bit of black box.
“With a gas car, between age and mileage you know a lot about that car. In the EV, people have no clue,” said Helveston. Battery health, he explained, is more linked to how the car was used than its age or mileage. If, for example, an owner only used super-fast Level 3 chargers, the battery would take much more of a beating than someone who primarily charged in their garage. Plus, even with recent improvements in battery tech, it’s still hard to predict exactly how a battery will perform five or 10 years out.
“There is this huge gap of information and because of that there’s a hesitance to buy it,” said Helveston. There are, however, some things people can do to mitigate those concerns. The first is to ask the dealer or seller to charge a car to 100 percent capacity before the test drive. Then compare the range on the dashboard to the manufacturer’s stated figure when the car was new. That should provide a rough approximation of remaining battery capacity. After a few years, the pack should retain 90 to 95 percent of its rating.
Valdez Streaty said that it’s not uncommon for dealers to either not have or not know how to access battery health information, though that process may become more standardized in coming years. In the meantime, she said, the used car auction that Cox operates — Manheim — rates batteries on a scale of 1 to 100. It’s the largest auction network in North America and is used by many dealers, which may be able to pass along any information they receive about the battery.
“Definitely you want something that’s going to be above 80 percent,” she said.
The other option is to ignore range or depreciation and buy the cheapest car possible and drive it into the ground. This works well for people who only need a car for around town — most people don’t drive more than 40 miles a day — and don’t care about features. This is what Helveston did when he bought a 10-year-old Leaf off Facebook Marketplace for $5,000. It had a remaining range of just 60 miles, but he drives no more than 30 per day.
“The miles are double what I need,” he said, and he doesn’t have to pay for gas or oil changes, either. “If it dies on me, I only invested five grand in it and I’ll buy another one.”
This story was originally published by Grist with the headline Used EVs have never been cheaper. But are they a good deal? on Sep 23, 2025.
Civ 1919: Treaty of Versailles 13 – The Economic Consequences of the Peace
Tom RocheDave and Justin EXCELLENT as usual
Treaty of Versailles 12: German, English, American critics
Tom RocheDave and Justin EXCELLENT as usual (saving Keynes for next-ep special focus)
The Scams Minister
Tom Rocheanother excellent, wideranging Ciarán+Nick+Uma Späti, but note that (at least on my download) the 1st 65 sec of audio is "dead air"--just fast-forward past.
Uma, Nick and Ciarán discuss the AI minister, the Vuelta and Eurovision updates.
MERCH:
https://corner-spaeti.printify.me/
HOW TO SUPPORT US:
https://www.patreon.com/cornerspaeti
HOW TO REACH US:
Bluesky https://bsky.app/profile/cornerspaeti.operationglad.io
Twitter https://twitter.com/cornerspaeti
Instagram https://www.instagram.com/cornerspaeti/
Julia https://twitter.com/KMarxiana
Rob https://twitter.com/leninkraft
Nick https://bsky.app/profile/lilouzovert.bsky.social
Uma https://bsky.app/profile/umawrnkl.bsky.social
Ciarán https://bsky.app/profile/ciaran.operationglad.io
TDS Time Machine | The Trump-Epstein Saga
Tom Rocheconsistently EXCELLENT--over 72:15 of audio, minus quite short {intro, outro, 2 inset ads} of monologs from Ronny Chieng, Michael Kosta, Jon Stewart, Jordan Klepper, and Josh Johnson
From the moment Trump brought up the idea of declassifying the Epstein files, the president has been under pressure to explain his relationship with the pedophile financier. Here's a deep dive into Donald Trump's history with Jeffrey Epstein.
Get caught up on Elon's Epstein bomb, FBI chief Kash Patel stating this case was "not his lane," and MAGA demanding answers from the president.
As more information comes to light about Trump's history with Jeffrey Epstein, the president breaks up with his MAGA supporters, gets called out for "bawdy" doodles to the financier in a birthday card, and finds a new distraction in former President Barack Obama. Plus, the DOJ reaches out to convicted sex trafficker Ghislaine Maxwell and informs Donald Trump he's in the Epstein files.
America learns that Pam Bondi's DOJ informed Donald Trump he was in the Epstein files back in May 2025, MAGA Karens and the QAnon Shaman demand answers, and folksy GOP loyalists use their twang to defend the president’s questionable past.
Learn more about your ad choices. Visit podcastchoices.com/adchoices
Reminder - SEA Seminar on Code Review and Testing with Codee
Tom Rochepullquote:
> [Codee](https://www.codee.com/) is intended to simplify and accelerate code review and testing for Fortran/C/C++ code
The developers intend to demonstrate Codee using a relevant Weather and Climate code. Use this event link to add the seminar to your Google Calendar.
‘Greater Israel’ Exposed: The Existential Threat to Lebanon & the Levant
Tom RocheVERY EXCELLENT
Israel and its U.S. backers are advancing a clear project: Greater Israel. That means weakening every state in the Levant, fueling sectarianism, and pressuring Lebanon to disarm — leaving the south of the country defenseless.
But disarming resistance in the middle of Israel’s expansion isn’t peace. It’s surrender. So how should the Levant respond?
Rania Khalek speaks with Antoun Issa, co-founder of DeepCut News, about the rise of “Greater Israel,” why disarmament would be catastrophic for Lebanon, the targeting of journalists, Syria’s instability, his resignation from The Guardian, and what a real sovereign vision for the region could look like.
👉 Full episode available for Breakthrough News members at Patreon.com/BreakthroughNews
Manuel Uberti: Insert date at point
Tom RocheTODO: pullquote:
> formatting the current date in four different ways with format-time-string and then offering them as options to completing-read.
I don’t know why I haven’t shared this little helper before, but here it is.
(defun mu-date-at-point (date)
"Insert current DATE at point via `completing-read'."
(interactive
(let* ((formats '("%Y%m%d" "%F" "%Y%m%d%H%M" "%Y-%m-%dT%T"))
(vals (mapcar #'format-time-string formats))
(opts
(lambda (string pred action)
(if (eq action 'metadata)
'(metadata (display-sort-function . identity))
(complete-with-action action vals string pred)))))
(list (completing-read "Insert date: " opts nil t))))
(insert date))
What mu-date-at-point does is formatting the current date in four different ways with format-time-string and then offering them as options to completing-read.
The interesting part is how opts is built. It’s a nice trick to ensure its content is always sorted according to the order in formats. Without leveraging completion-metadata the completion system would take care of sorting the items for me.
For the record, I learned how to tweak completion-metadata on Emacs StackExchange. I suggest reading C-h f completing-read and C-h f completion-metadata to know more.
The News Quiz: Ep 2. Cards revealed and Reshufffle
Tom RocheNQ excellent as usual
Andy Zaltzman is joined by Daliso Chaponda, Susie McCabe, Geoff Norcott and Ash Sarkar to break down the week in news. Expect discussion on the Labour Deputy Leader Election, the return of the Mandelson, strikes on Qatar, Russian drones in Poland and telepathic Google searches. Written by Andy Zaltzman. With additional material by: Simon Alcock, Carwyn Blayney, Ruth Husko and Alex Kealy. Producer: Rajiv Karia Executive Producer: James Robinson Production Coordinator: Caroline Barlow Sound Editor: Marc Willcox A BBC Studios Production for Radio 4.
969 - Pablo Torre Fucks Around and Finds Out feat. Pablo Torre (9/15/25)
Tom Rocheexcellent
Right-wing political violence is more frequent, deadly than left-wing violence
Tom Rocheoriginal post archived [here](http://web.archive.org/web/20250918165205/https://arstechnica.com/science/2025/09/right-wing-political-violence-is-more-frequent-deadly-than-left-wing-violence/)
After the Sept. 10, 2025, assassination of conservative political activist Charlie Kirk, President Donald Trump claimed that radical leftist groups foment political violence in the US, and “they should be put in jail.”
“The radical left causes tremendous violence,” he said, asserting that “they seem to do it in a bigger way” than groups on the right.
Top presidential adviser Stephen Miller also weighed in after Kirk’s killing, saying that left-wing political organizations constitute “a vast domestic terror movement.”
Introducing Fiasco: Benghazi — The Dictator
Tom Rochenotes on this ep:
* covers ~1969 (Gaddafi overthrows Idris) to just before 2011 "Arab Spring"
* is a bit globalist: notably, when discusses Islamists vs Gaddafi (notably LIFG), fails to discuss the fact that such groups were being actively supported by the empire (esp UK). Which leads to following note:
* interestingly, Wikipedia's LIFG page /also/ fails to discuss their UK shelter, and even to discuss their role in the 2017 Manchester Arena bombing (though their page on that bombing admits the LIFG link)
Here’s a preview from a podcast you might enjoy, Fiasco:
Slow Burn co-creator Leon Neyfakh transports listeners into the reality of America’s most pivotal historical events, bringing life to the forgotten twists and turns of the past while shedding light on the present. In his new season, Leon looks at the 2012 Benghazi attack that left four Americans dead—and the ensuing political storm, which raised questions about America’s role in the world, established a playbook to weaponize attention in the social media age, and ultimately changed the course of U.S. history. Find Fiasco: Benghazi wherever you get podcasts and binge the entire season with a Pushkin plus subscription – sign up on the Fiasco Apple Podcasts show page or at pushkin.fm/plus.
Learn more about your ad choices. Visit megaphone.fm/adchoices
Sacha Chua: Getting a Google Docs draft ready for Mailchimp via Emacs and Org Mode
Tom Rocheanother Sacha post combining practical and awesome. pullquote (barely edited):
> I think this is a good combination of Google Docs for getting other people's feedback and letting them edit, and Org Mode for keeping myself sane as I turn it into whatever Mailchimp wants. [Potential] next step for improving this workflow[:] check out other e-mail providers in case I can get Emacs to make the whole template.
: Got it to include the dates in the TOC as well
I've been volunteering to help with the Bike Brigade newsletter. I like that there are people who are out there helping improve food security by delivering food bank hampers to recipients. Collecting information for the newsletter also helps me feel more appreciation for the lively Toronto biking scene, even though I still can't make it out to most events. The general workflow is:
- collect info
- draft the newsletter somewhere other volunteers can give feedback on
- convert the newsletter to Mailchimp
- send a test message
- make any edits requested
- schedule the email campaign
We have the Mailchimp Essentials plan, so I can't just export HTML for the whole newsletter. Someday I should experiment with services that might let me generate the whole newsletter from Emacs. That would be neat. Anyway, with Mailchimp's block-based editor, at least I can paste in HTML code for the text/buttons. That way, I don't have to change colours or define links by hand.
The logistics volunteers coordinate via Slack, so a Slack Canvas seemed like a good way to draft the newsletter. I've previously written about my workflow for copying blocks from a Slack Canvas and then using Emacs to transform the rich text, including recolouring the links in the section with light text on a dark background. However, copying rich text from a Slack Canvas turned out to be unreliable. Sometimes it would copy what I wanted, and sometimes nothing would get copied. There was no way to export HTML from the Slack Canvas, either.
I switched to using Google Docs for the drafts. It was a little less convenient to add items from Slack messages and I couldn't easily right-click to download the images that I pasted in. It was more reliable in terms of copying, but only if I used xclip to save the clipboard into a file instead of trying to do the whole thing in memory.
I finally got to spend a little time automating a new workflow. This time I exported the Google Doc as a zip that had the HTML file and all the images in a subdirectory. The HTML source is not very pleasant to work with. It has lots of extra markup I don't need. Here's what an entry looks like:
Things I wanted to do with the HTML:
- Remove the google.com/url redirection for the links. Mailchimp will add its own redirection for click-tracking, but at least the links can look simpler when I paste them in.
- Remove all the extra classes and styles.
- Turn [ call to action ] into fancier Mailchimp buttons.
Also, instead of transforming one block at a time, I decided to make an Org Mode document with all the different blocks I needed. That way, I could copy and paste things in quick succession.
Here's what the result looks like. It makes a table of contents, adds the sign-up block, and adds the different links and blocks I need to paste into Mailchimp.
I need to copy and paste the image filenames into the upload dialog on Mailchimp, so I use my custom Org Mode link type for copying to the clipboard. For the HTML code, I use #+begin_src html ... #+end_src instead of #+begin_export html ... #+end_export so that I can use Embark and embark-org to quickly copy the contents of the source block. (That doesn't work for export blocks yet.) I have C-. bound to embark-act, the source block is detected by the functions that embark-org.el added to embark-target-finders, and the c binding in embark-org-src-block-map calls embark-org-copy-block-contents. So all I need to do is C-. c in a block to copy its contents.
(defun my-brigade-process-latest-newsletter-draft (date)
"Create an Org file with the HTML for different blocks."
(interactive (list (if current-prefix-arg (org-read-date nil t nil "Date: ")
(org-read-date nil t "+Sun"))))
(when (stringp date) (setq date (date-to-time date)))
(let ((default-directory "~/Downloads/newsletter")
file
dom
sections)
(call-process "unzip" nil nil nil "-o" (my-latest-file "~/Downloads" "\\.zip$"))
(setq file (my-latest-file default-directory))
(with-temp-buffer
(insert-file-contents-literally file)
(goto-char (point-min))
(setq dom (my-brigade-simplify-html (libxml-parse-html-region (point-min) (point-max))))
(my-brigade-save-newsletter-images dom)
(setq sections
(my-html-group-by-tag
'h1
(dom-children
(dom-by-tag
dom 'body)))))
(with-current-buffer (get-buffer-create "*newsletter*")
(erase-buffer)
(org-mode)
(insert
(format-time-string "%B %-e, %Y" date) "\n"
"* In this e-mail\n#+begin_src html\n"
"<p>Hi Bike Brigaders! Here’s what's happening this week, with quick signup links. In this e-mail:</p>"
(replace-regexp-in-string
"<li>" "\n<li>"
(with-temp-buffer
(svg-print
(apply 'dom-node
'ul nil
(append
(my-brigade-toc-items (assoc-default "Bike Brigade" sections 'string=))
(my-brigade-toc-items (assoc-default "In our community" sections 'string=)))))
(buffer-string)))
"\n<br />\n"
(my-brigade-copy-signup-block date)
"\n#+end_src\n\n")
(dolist (sec '("Bike Brigade" "In our community"))
(insert "* " sec "\n"
(mapconcat
(lambda (group)
(let* ((item (apply 'dom-node 'div nil
(append
(list (dom-node 'h2 nil (car group)))
(cdr group))))
(image (my-brigade-image (car group))))
(format "** %s\n\n%s\n%s\n\n#+begin_src html\n%s\n#+end_src\n\n"
(car group)
(if image (org-link-make-string (concat "copy:" image)) "")
(or (my-html-last-link-href item) "")
(my-transform-html
(delq nil
(list
'my-transform-html-remove-images
'my-transform-html-remove-italics
'my-brigade-simplify-html
'my-brigade-format-buttons
(when (string= sec "In our community")
'my-brigade-recolor-recursively)))
item))))
(my-html-group-by-tag 'h2 (cdr (assoc sec sections 'string=)))
"")))
(insert "* Other updates\n"
(format "#+begin_src html\n<h2>Other updates</h2>%s\n#+end_src\n\n"
(my-transform-html
'(my-transform-html-remove-images
my-transform-html-remove-italics
my-brigade-simplify-html)
(car (cdr (assoc "Other updates" sections 'string=))))))
(goto-char (point-min))
(display-buffer (current-buffer)))))
(defun my-brigade-toc-items (section-children)
"Return a list of <li /> nodes."
(mapcar
(lambda (group)
(let* ((text (dom-texts (cadr group)))
(regexp (format "^%s \\([A-Za-z]+ [0-9]+\\)"
(regexp-opt '("Mon" "Tue" "Wed" "Thu" "Fri" "Sat" "Sun"))))
(match (when (string-match regexp text) (match-string 1 text))))
(dom-node 'li nil
(if match
(format "%s: %s" match (car group))
(car group)))))
(my-html-group-by-tag 'h2 section-children)))
(defun my-html-group-by-tag (tag dom-list)
"Use TAG to divide DOM-LIST into sections. Return an alist of (section . children)."
(let (section-name current-section results)
(dolist (node dom-list)
(if (and (eq (dom-tag node) tag)
(not (string= (string-trim (dom-texts node)) "")))
(progn
(when current-section
(push (cons section-name (nreverse current-section)) results)
(setq current-section nil))
(setq section-name (string-trim (dom-texts node))))
(when section-name
(push node current-section))))
(when current-section
(push (cons section-name (reverse current-section)) results)
(setq current-section nil))
(nreverse results)))
(defun my-html-last-link-href (node)
"Return the last link HREF in NODE."
(dom-attr (car (last (dom-by-tag node 'a))) 'href))
(defun my-brigade-image (heading)
"Find the latest image related to HEADING."
(car
(nreverse
(directory-files my-brigade-newsletter-images-directory
t (regexp-quote (my-brigade-newsletter-heading-to-image-file-name heading))))))
Some of the functions it uses are in my config, particularly the section on Transforming HTML clipboard contents with Emacs to smooth out Mailchimp annoyances: dates, images, comments, colours.
Along the way, I learned that svg-print is a good way to turn document object models back into HTML.
When I saw two more events and one additional link that I wanted to include, I was glad I already had this code sorted out. It made it easy to paste the images and details into the Google Doc, reformat it slightly, and get the info through the process so that it ended up in the newsletter with a usefully-named image and correctly-coloured links.
I think this is a good combination of Google Docs for getting other people's feedback and letting them edit, and Org Mode for keeping myself sane as I turn it into whatever Mailchimp wants.
My next step for improving this workflow might be to check out other e-mail providers in case I can get Emacs to make the whole template. That way, I don't have to keep switching between applications and using the mouse to duplicate blocks and edit the code.
You can comment on Mastodon or e-mail me at sacha@sachachua.com.
Episode 509 Promo - The Canonization of Charlie Kirk
Tom Rochenote BF has a 25-min Kirk-focused excerpt their YouTube channel, but ... kinda shouty
Subscribe to Bad Faith on Patreon to instantly unlock this episode and our entire premium episode library: http://patreon.com/badfaithpodcast
Last week's assassination of right wing personality Charlie Kirk last week was a shock -- and so was the choice of many left and liberal media outlets to publish pieces that lauded the openly supremacist activist for his contribution to American political life. Ezra Klein wrote in The New York Times that Kirk was "practicing politics the right way." Rachel Cohen wrote in Vox that she was "sitting shiva" for a man she described as saying "blatantly antisemitic things," and Ben Burgis offered that at least Kirk "didn't descend into personal attacks." Briahna, who also debated Kirk, felt differently. She discusses the hagiography of Charlie Kirk with journalist Zaid Jilani and whether the left is troublingly indifferent to anti-Black racism if delivered "politely." Note that this episode was supposed to include a lengthy conversation about Matt Taibbi's refusal to cover censorship by right-leaning institutions, but, alas, the conversation didn't get that far. Fortunately, Brie has recorded a separate follow-up interview on that topic to be relased shortly -- stay tuned.
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).
John Finnemore's Souvenir Programme: 2025 Special
Tom RocheVERY EXCELLENT: consistently-very-funny sketch comedy (with some songs!) The Monty Python Tradition lives ...
2025's instalment of John Finnemore's Souvenir Programme is forty-five minutes of the funniest things John thought of in the last year, performed by John and his regular cast of Margaret Cabourn-Smith, Simon Kane, Lawry Lewin and Carrie Quinlan, with composer Susannah Pearse at the piano and Sally Stares on the cello.
Please note that listening to these sketches about seahorses, time travel and sirens may cause side effects, unless you're listening to the placebo version of the show.
Written and performed by … John Finnemore Ensemble … Margaret Cabourn-Smith Ensemble … Simon Kane Ensemble … Lawry Lewin Ensemble … Carrie Quinlan
Original music … Susannah Pearse Piano … Susannah Pearse Cello … Sally Stares
Recording … Jerry Peal & Jon Calver Editing … Rich Evans
Production Manager … Katie Baum Executive Producer … Richard Morris
Producer … Ed Morrish
John Finnemore’s Souvenir Programme is a BBC Studios Production for Radio 4.
