Shared posts

04 Aug 16:18

News - Gaza Aid Disaster, Russia Offers New Peace Talks, Trump Freezes Student Visas

Tom Roche

Bessner and (mostly) Davison deliver another EXCELLENT week-in-review (minus the pre- and inter-audio ads)

Subscribe now for an ad-free experience!

In this week’s news roundup: US-Iran negotiations might be making progress (1:02); in Israel-Palestine, a new aid program implemented gets people killed (6:30), the US proposes framework for a new peace deal* (11:01), and Israel creates 22 new West Bank settlements (15:54); cases of cholera are spiking in Sudan (17:35); Libya’s eastern-based government may cut off its oil supply (19:23); Salva Kiir appoints a potential successor in South Sudan (21:51); jihadist activity appears to be on the rise in Mozambique (23:46); Mauritius and the UK sign a Chagos Islands deal (25:52); Russia offers to begin new peace talks (29:48) as Trump lashes out at Putin (35:06); the far right emerges as the main opposition in Portugal (38:29); President Petro in Colombia calls for a general strike (40:23); in the US, the Trump administration freezes student visas and revokes those for Chinese students (42:11), a court rules that the “Liberation Day” tariffs are unconstitutional*, and Elon Musk’s term as “co-president” has come to an end (48:26).

*Hamas has reportedly rejected this deal as it stands since the time of recording.

**An appeals court has since agreed to a temporary pause in the decision. 

   


04 Aug 16:15

News - Ukraine Talks Collapse, India Threatens Pakistan’s Water Supply, IDF Operation Gideon’s Chariots

Tom Roche

Bessner and (mostly) Davison deliver another EXCELLENT week-in-review (minus the pre- and inter-audio ads)

Subscribe now for an ad-free experience and much more content!

This week in the news roundup: the Ukraine peace talks collapse (3:30) as Trump stuns European allies with his sudden pivot back to positions beneficial to Russia (7:21); in EU elections, a Romanian centrist wins the presidency (11:06), a Polish centrist wins the first round of the presidential election (13:27), and the Portuguese center-right wins that country’s parliamentary election (14:46); India continues to threaten Pakistani water levels (17:05); South African president Ramaphosa’s visit to the White House goes awry (20:04); in Israel-Palestine, the IDF begins Operation Gideon’s Chariots (23:58), the Israelis allow “minimal” aid into Gaza without distribution (27:13), and a European backlash follows the IDF’s operation and a West Bank shooting incident involving diplomats (31:18); Israel again appears to be preparing to strike Iran (35:17); Evo Morales is excluded from the presidential ballot in Bolivia (38:16); a New Cold War update featuring China pledging additional money to the WHO after a pandemic agreement (40:51); and Trump announces the Golden Dome project (43:44).

03 Jun 16:39

My Fundraiser to Stop Frowns

by The Späti Boys
Tom Roche

takes a while to really get going, then delivers excellent analysis of the possibly-fraudulent, definitely-waaay-too-late pivots by EU political elites (esp Ireland and Germany, esp Greens) toward doing the absolute-minimum discipline of Israel for its crimes.

03 Jun 16:27

The Ubu Ultimatum

Tom Roche

VERY EXCELLENT (minus the inter-audio and end-of-audio ads) tribute to (the still-living?) Tom Herman, guitarist in Rocket from the Tombs /and/ Pere Ubu /and/ Tripod Jimmie (aka /TJ/). This SO bonus episode presents an all-too-short excerpt from the TJ single 'Famous Dogs'. Unfortunately not much text on TJ (though fortunately a fair amount of their released music) online excepting [this brief LA Times review](https://www.latimes.com/archives/la-xpm-1985-09-01-ca-25640-story.html) (archived [here](https://www.latimes.com/archives/la-xpm-1985-09-01-ca-25640-story.html))

Following our tributes to David Thomas and Peter Laughner of Pere Ubu, Jims rounds out the trilogy with a song by another of the band's members.

Become a member on Patreon: https://bit.ly/3slWZvc

oin our Facebook Group: https://bit.ly/3sivr9T

Sign up for our newsletter: https://bit.ly/3eEvRnG

Make a donation via PayPal: https://bit.ly/3dmt9lU

Send us a Voice Memo: Desktop: bit.ly/2RyD5Ah  Mobile: sayhi.chat/soundops


See Privacy Policy at https://art19.com/privacy and California Privacy Notice at https://art19.com/privacy#do-not-sell-my-info.

02 Jun 16:21

Episode 476 - The Forgotten History of Jewish Anti-Zionism (w/ Zachary Foster)

Tom Roche

EXCELLENT

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

Historian and founder of Palestine Nexus, an educational resource on Palestine, Zachary Foster joins Bad Faith to break down his viral article on the forgotten history of Jewish anti-zionism. By forensically examining the long history of Jewish opposition to Zionism, he disrupts mythology used to justify Israeli oppression of Palestinians in the present. Also, he weighs in on the recent shift in mainstream media coverage of Palestine, a new willingness to acknowledge the ongoing siege and starvation campaign, and what, if anything, it means for the fate of Palestinians.

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 Jun 23:42

The News Quiz: Ep 6. Big Deals

Tom Roche

another prediction validated: a News Quiz with Andrew Maxwell /and/ Ian Smith cannot fail to bring the yucks

Andy Zaltzman is joined by Andrew Maxwell, Ian Smith, Alex Kealy and Times columnist, Cindy Yu. They cover a triumph or a surrender (depending on who you ask) as well as reflecting on where you're most likely to spot a billionaire in the wild and the death of the semi-colon.

Written by Andy Zaltzman.

With additional material by: Christina Riggs, Laura Major and Christian Manley. Producer: Gwyn Rhys Davies Executive Producer: Richard Morris Production Coordinator: Jodie Charman Sound Editor: Marc Willcox

A BBC Studios Audio Production for Radio 4.

01 Jun 19:53

Irreal: Web Browsing In Emacs

by Irreal
Tom Roche

[original article](https://joarvarndt.se/eww.html) (archived [here](http://web.archive.org/web/20250524013454/https://joarvarndt.se/eww.html)) surveys current issues surrounding (i.e., et al) web browsing from ~within (for the approximation, see [Xwidgets](https://emacsdocs.org/docs/elisp/Xwidgets) and [Emacs Application Framework](https://github.com/emacs-eaf/emacs-application-framework))

Joar Von Arndt has an interesting post on a subject that many Emacs users obsess about: how to bring Web browser functionality into Emacs. As, I’ve said many times, virtually all my tube time is either in Emacs or Safari. I would, of course, like to get that down to just Emacs. To be sure, I do use some other apps but my time with them is basically in the noise. Almost everything I do on the computer involves Emacs or the browser.

Von Arndt looks at eww, w3m, Xwidgets, and EAF. He discusses the pros and cons of each. He appears to think that eww—with some customization—is the best solution.

My solution is to use Xwidgets for rendering Email posts that need it and for my RSS feed via Elfeed. My email client, mu4e, makes it easy to switch between text and HTML rendered displays. It is, in a way, the best of both worlds. I can read most of my emails in plain text, as the elders decreed, but can switch to an HTML rendered display when I need to.

I use elfeed-webkit to display my RSS feed with Elfeed. It brings up each entry in a browser like display and, of course, can be easily be toggled on and off. It’s a bit fragile, as Von Arndt says, but it easier than invoking the brower for each entry.

The sad news is that there still isn’t a good solution but what solutions there are are getting better. Perhaps we will soon have a way of bringing the final major holdout into the Emacs fold.

01 Jun 01:29

Irreal: Adding Timestamped Notes To The LOGBOOK Drawer

by Irreal
Tom Roche

Note original article is 7th in a continuing series on (slightly edited by me) "Building a Time-Management Workflow with Org-mode"; 1st article is [here](https://jeffbradberry.com/posts/2022/06/orgmode-basic-todos/) (and currently archived [here](http://web.archive.org/web/20250526205128/https://jeffbradberry.com/posts/2022/06/orgmode-basic-todos/). Author Bradberry doesn't currently have a separate page indexing the series, but

* all his articles with tag=/orgmode/ are listed (most recent 1st) [here](https://jeffbradberry.com/tag/time-management/)
* all his articles with tag=/time-management/ are listed (most recent 1st) [here](https://jeffbradberry.com/tag/time-management/)

Jeff Bradberry has an excellent post on adding timestamped notes to the LOGBOOK drawer in Org files. Most of us are used to using this drawer to record state changes in TODO notes. You can arrange to have the times of the state changes added to the LOGBOOK. You can also arrange to pop up a buffer so that you can add a note to the entry. I do this when the state changes to CANCELLED or WAITING. Sometimes you may want to add a note to a state change that doesn’t normally have one.

That turns out to be easy. You simple add the universal argument to the state change call. If you use the normal Ctrl+c Ctrl+t binding, you would simply use Ctrl+u Ctrl+c Ctrl+t instead when you want to add a note.

Many of you probably already know all this but Bradberry thought it would nice to add arbitrary notes to the drawer as well. That turns out to be easy too. As usual, Emacs has us covered. You simply call org-add-note bound to Ctrl+c Ctrl+z by default.

This post is the seventh in a series on building an Org-mode Workflow. The whole series is worthwhile and you should definitely take a look if you’re an Org user. There are links to the entire series in Bradberry’s post.

01 Jun 01:20

Matt Maguire: Plain Text Accounting with Emacs – Part 3

by Matt Maguire
Tom Roche

pretty hardcore: [original article](https://www.teachmaths.org/20250530-pta-emacs3/)

* archived [here](http://web.archive.org/web/20250530113410/https://www.teachmaths.org/20250530-pta-emacs3/)
* 3rd in a series:
***** [1st](https://www.teachmaths.org/20250423-pta-emacs/)
***** [2nd](https://www.teachmaths.org/20250424-pta-emacs2/)

is doing stock trades, settlements, and taxes using Emacs via [hledger](https://hledger.org/). For more on the general topic, see [Plain Text Accounting](https://plaintextaccounting.org/) (which is maintained by the [hledger developer](https://github.com/simonmichael))

My journey into using Hledger with Emacs to track my share investments continues. Last Time I looked at a way to track shares using a plain text file. Since then I have made some tweaks to my workflow as I gain more experience:

  • naming conventions that support multiple stock brokers
  • booking brokerage fees in a better way to support the Australian tax system.

Naming convention

Over the past month I was not overly impressed with my existing stock broker, which led me to explore other stock brokers that may offer a more reliable service at a cheaper rate. It is expensive to transfer stocks over to a new broker, so I decided to cap further investment at my current broker and instead make any new purchases at a different broker. This meant that I would need an account structure that lets me easily identify which share lots were purchased through which broker.

31 May 19:40

Briahna Joy Gray on Dems in Disarray, the "Big Beautiful Bill," Biden Cover-Up Receipts, and More; Plus: Interview with Journalist Katie Halper

Tom Roche

Gray + Halper + nasty nasty CorpDems = fire

Bad Faith podcast host Briahna Joy Gray chronicles the Democrats' latest acts of self-destruction: from the 2024 primary, to the Biden mental decline cover-up, to the party's quixotic quest to find the next "Joe Rogan of the left." Political commentator and podcast host Katie Halper joins Briahna to unpack the future of the Democrats as they fail to mobilize against Trump's policies.

-------------------------------------------

Watch full episodes on Rumble, streamed LIVE 7pm ET.

Become part of our Locals community

Follow System Update:

Twitter

Instagram

TikTok

Facebook

LinkedIn

29 May 17:29

Tim Heaney: R programming in Emacs

by Tim Heaney
If you want to do statistical calculations with your computer, you probably want to use some sort of package to help you. When I was in school, we used Minitab (a "mini" version of OMNITAB— now there's a great name!), but I guess most statisticians used either S or SAS at the time. Later, R came along as an alternative to S. I may want to use extendr to access a Rust library from R, so I thought I would start by installing R on my Debian desktop.
28 May 21:26

E212 - South Sudan’s Failed Peace Deal w/ Joshua Craze

Tom Roche

VERY EXCELLENT, very informative

Subscribe now for an ad-free experience and much more content!

Writer and researcher Joshua Craze returns to the program to talk about the situation in South Sudan. They cover the collapsed 2018 “peace deal,” the elite forces vying for power, the Nuer White Army, figures like Salva Kiir Mayardit and Riek Machar, how South Sudan’s troubles have been impacted by the war in Sudan, external actors like the United Arab Emirates and Uganda, and the humanitarian crisis in the fragmented country.     

28 May 19:56

Irreal: GitHub As A Notebook

by Irreal
Tom Roche

"latest GitHub exploit" archived [here](https://archive.today/uAgje)

I like GitHub well enough; I link to it often and even have an account but I would never consider using it for anything but public files that I had replicated on my own machine. I’ve been over the reasons for that many times. The most important reason is that you should never commit your only copy of any data you care about to a third party computer. Once you do, a clock starts ticking down to the time that you will lose your data. You never know how much time is left on the clock but you can be sure that it will eventually reach 0.
The second reason is that any site that hosts a lot of data is an attractive target for criminals and your data could be compromised. Here’s the latest GitHub exploit. That’s why I say I would only use GitHub for public data.

All of this is by way of introduction to this post from Simon Willison. In it Willison posits that GitHub is (almost) the perfect notebook. What follows is a list of features that could easily be a description of Org mode. Read it and see if you don’t agree.

The only reason for Willison’s “almost” is the lack of synchronized offline support. I submit that Journelly goes a long ways towards meeting that concern for Org mode. I’ve previously described it as a front end for Org and although it doesn’t expose all your Org files to your remote device it gets you a long way.

Given all that, it’s clear to me that Emacs and Org mode is a much better notebook than GitHub could hope to be. Your data is safer both from criminals and from being disappeared for some reason by a third party provider. My only question is why do I have to keep repeating this.

28 May 19:49

Unlocked - What Could Go Right? w/ Zachary Karabell

Tom Roche

mostly just riffing, but a very-listenable ~50 min (minus pre-audio ads)

Enjoy the full version of this special we published last week!

Subscribe now for an ad-free experience and much more content!

Danny and Derek invite ⁠Zachary Karabell⁠, historian and founder of ⁠the Progress Network⁠, as well as host of the podcast What Could Go Right?, to talk about the big things: liberalism, American political capitalism, Trump, "abundance," and more.

28 May 19:46

Israeli forces open fire at new Gaza “aid” site, as Netanyahu rejects ceasefire deal

by Drop Site News
Tom Roche

VERY EXCELLENT roundup of the latest in Zionazi Final Solution news, esp

* Gaza, including:
***** Witkoff breaks own deal w Hamas, Trump does nothing
***** Trump promises Gaza ceasefire to GCC (in person, F2F) then does nothing except ...
***** "Gaza Humanitarian Foundation" does fraudul-aid with Israel
* Israel-bound Zionazis (esp Netanyahu) worry that, although Trump foreign/military policy is for sale to highest bidder, global Zionism may /not/ be able to outbid global borderline-sanity
* Zionist (and Israeli) deepstaters purged from NSC, esp Waltz (and deputy Wong), Merav Ceren (and her boss Eric Trager)
* MAGA turns on Hegseth, as "Pentagon leaks" case enters comic death spirals

The “humanitarian aid” scheme, which Israeli Prime Minister Benjamin Netanyahu has characterized as necessary to maintain U.S. support for his war of annihilation against the Palestinians of Gaza, began on Tuesday. Within hours, Israeli forces opened fire on a crowd of Palestinians at a site near Rafah, while the family of a man who went to get a small box of food aid says he was kidnapped by Israeli forces. The program is managed by a shadowy “non-governmental organization” and is being staffed, in part, by U.S. mercenaries. Some eyewitness reports indicate U.S. contractors also fired at the crowd. No deaths or injuries have been reported as of publication. Photos released earlier in the day showed Palestinians packed into metal enclosures at the site, where, according to local sources, they were held for hours in intense heat with no clear system for distributing food. The aid center is one of two launched Tuesday under a controversial U.S.-Israeli mechanism that bypasses UN agencies and has drawn criticism from Palestinians and humanitarian groups.

Meanwhile, on Monday, Hamas announced it had reached an “understanding” with U.S. officials for a new ceasefire agreement, but almost immediately after the news broke, Israel denounced the plan and insisted it would not enter into any agreement with a clear path to halting the genocide or the withdrawal of Israeli forces from Gaza. On this week’s Drop Site News live stream, Jeremy Scahill and Ryan Grim analyze the Trump administration’s approach to the war against Gaza, the specific terms of the agreement Hamas endorsed and the prospects that Trump might force Netanyahu to halt Israel’s genocidal onslaught.

While all international and regional players recognize that Trump is the only person with the power to stop Netanyahu, there are strong voices within his administration that want to see Israel continue on with its occupation and ultimate goal of erasing Palestinians from Gaza and seizing the territory. Pressure is mounting from European nations on Israel to end its war, but the hard reality is that it will all come down to whether Trump—for his own political and personal business interests—decides it must stop.

Drop Site is fueled by our readers. Become a paid or free subscriber today.



Get full access to Drop Site News at www.dropsitenews.com/subscribe
28 May 16:23

How the Pro-Israel Lobby Hijacked Judaism and Laid the Ground for Trump’s Crackdown

Tom Roche

VERY EXCELLENT (though truncated)

Israel and its apologists claim they’re committing slaughter in Gaza to protect Jews and prevent another Holocaust. But that’s a scam.


Historian of Palestine Zachary Foster joins @RaniaKhalek on Dispatches to discuss. He exposes how the pro-Israel establishment in the Jewish American community is helping the Trump administration weaponize antisemitism to justify genocide in Palestine and fascist policies at home, and how empire is using Judaism as a human shield for imperial conquest.


The full episode is available only to Breakthrough News members. To support our work and get access to more exclusive interviews, become a member at:

https://Patreon.com/BreakthroughNews 


28 May 16:23

Europe Is Totally Subservient to US & NATO: Inside the EU Parliament w/ MEP Marc Botenga

Tom Roche

EXCELLENT

The European Union isn’t just complicit in the U.S. empire — it’s helping drive it. In this episode of Dispatches, Rania Khalek speaks with Marc Botenga, a Belgian Member of the European Parliament with the Workers’ Party of Belgium, about how Europe became a willing footsoldier for NATO’s wars, U.S. economic domination, and Israel’s genocide in Gaza.

Botenga doesn’t mince words. He calls Europe’s role in Gaza a European genocide. He explains why supporting peace in Ukraine is taboo, how censorship is expanding under the pretext of fighting antisemitism, and why some of the European left is drifting into militarism.

As one of the only anti-imperialist voices in Brussels, Botenga breaks down what it means to resist from within the halls of EU power, how “green colonialism” is dressed up as climate policy, and why hope, and international solidarity, still matter.

Watch the full interview and support independent journalism: https://www.patreon.com/BreakthroughNews 


28 May 16:13

Something Has Maybe Changed

by The Späti Boys
Tom Roche

VERY EXCELLENT Ciarán+Nick on topics (/lots/ more than indicated by the episode text) including (not necessarily in following order):

* history of furniture
* Eurovision 2025 aftermath
***** broadcasters and artists demand investigation into obvious Israeli rigging of televoting
***** calls to exclude Israel from EV/ESC (Eurovision Song Contest)
***** televote reform proposals
* NATOstan (EU+Anglosphere) CFM politics esp corruption, marriage/nepotism, Zionism
* NATOstan masses turning against Israel while institutions remain more Zionist
***** ... but institutions (excepting, e.g., US, Greece, Cyprus, Hungary) beginning to make oppositional/critical noise against Zionazi genocide (e.g., joke sanctions)
***** Ciarán's hypotheses about why EU+UK politicians are turning against Israel now:
********* "consolidation": non-US NATO needs to conserve resources to fight Russia
********* legal consequences from (possibly impending) ICC genocide ruling (also explains why Orban just pulled Hungary out of ICC) make Eurocrats want "to get out now"
***** EU left underestimates attitude change while overestimating ability of majorities to effect policy change
* German authoritarianism (discourse, police)
* EU-UK-US-PRC trade, esp
***** Trump tariff hijinks and stupidity
***** US cucks UK: trade deal forces UK to submit all PRC trade relations for US approval
* Tulsi Gabbard hijinks:
***** WSJ reports Tulsi ordering US spies into Greenland to investigate anti-US sentiment
***** Tulsi vs Elon Musk
* April 2025: 1st month that BYD sells more electric cars than Tesla in EU (much riffing on "French decade of the Chinese century")
* US military/deepstate nonsense, inc
***** Trump "Golden Dome"
***** 2012 "Red Dawn" remake (plot was reworked from PRC invasion of US to North Korea because studios did not want to offend Chinese-language market)

28 May 16:12

UNLOCKED 936 - Permanent Midnight feat. Ryan Grim & Jeremy Scahill (5/22/25)

Tom Roche

VERY EXCELLENT

Drop Site’s Ryan & Jeremy join us for an update on Israel’s war on Gaza. We discuss yesterday’s attack on Israeli Embassy staffers in Washington D.C. and its potential ramifications, Trump’s recent trip to the Gulf and potential shifts in U.S. relations in the region, and the brutal escalations of violence in Gaza over the recent weeks. Ryan and Jeremy also relate some of the stories of the many talented and courageous Palestinian journalists they’ve worked with through the conflict, and how the war has laid bare many of the failings of domestic media. Subscribe to Drop Site here: https://www.dropsitenews.com/
27 May 18:19

Alvaro Ramirez: Awesome Emacs on macOS

by Alvaro Ramirez
Tom Roche

very long but very interesting collection of Mac hacks

27 May 2025 Awesome Emacs on macOS

Update: Added macOS Trash integration.

While GNU/Linux had been my operating system of choice for many years, these days I'm primarily on macOS. Lucky for me, I spend most of my time in Emacs itself (or a web browser), making the switch between operating systems a relatively painless task.

I build iOS and macOS apps for a living, so naturally I've accumulated a handful of macOS-Emacs integrations and tweaks over time. Below are some of my favorites.

Emacs Plus

For starters, I should mention I run Emacs on macOS via the excellent Emacs Plus homebrew recipe. These are the options I use:

brew install emacs-plus@30 --with-no-frame-refocus --with-native-comp --with-savchenkovaleriy-big-sur-curvy-3d-icon

Valeriy Savchenko's icons

Valeriy Savchenko has created some wonderful macOS Emacs icons. These days, I use his curvy 3D rendered icon, which I get via Emacs Plus's --with-savchenkovaleriy-big-sur-curvy-3d-icon option.

icon.png

Modifiers

It's been a long while since I've settled on using macOS's Command (⌘) as my Emacs Meta key. For that, you need:

(setq mac-command-modifier 'meta)

At the same time, I've disabled the ⌥ key to avoid inadvertent surprises.

(setq mac-option-modifier 'none)

Enabling Control-Meta(⌘)-D

After setting ⌘ as Meta key, I discovered C-M-d is not available to Emacs for binding keys. There's a little workaround:

defaults write com.apple.symbolichotkeys AppleSymbolicHotKeys -dict-add 70  'enabled'

Frames

You may have noticed the --with-no-frame-refocus Emacs Plus option. I didn't like Emacs refocusing other frames when closing one, so I sent a tiny patch over to Emacs Plus, which gave us that option.

I also prefer reusing existing frames whenever possible.

(setq ns-pop-up-frames nil)

Visual tweaks

Most of my visual tweaks have been documented in my Emacs eye candy post. For macOS-specific things, read on…

It's been a while since I've added this, though vaguely remember needing it to fix mode line rendering artifacts.

(setq ns-use-srgb-colorspace nil)

I like using a transparent title bar and these two settings gave me just that:

(add-to-list 'default-frame-alist '(ns-transparent-titlebar . t))
(add-to-list 'default-frame-alist '(ns-appearance . dark))

I want a menu bar like other macOS apps, so I enable with:

(use-package menu-bar
   :config
  (menu-bar-mode +1))

menu-bar.webp

Emoji picker (a freebie!)

If you got a more recent Apple keyboard, you can press the 🌐 key to insert emojis from anywhere, including Emacs. If you haven't got this key, you can always M-x ns-do-show-character-palette, which launches the very same dialog.

Also check out Charles Choi's macOS Native Emoji Picking in Emacs from the Edit Menu.

Longing long press for accents?

If you prefer Apple's long-press approach to inserting accents or other special characters, I got an Emacs version of that.

accentuated.webp

Rotate macOS display

I wanted to rotate my monitor from the comfort of M-x, so I made Emacs do it.

Open with

While there are different flavors of "open with default macOS app" commands out there (ie. crux-open-with as part of Bozhidar Batsov's crux), I wanted one that let me choose a specific macOS app.

open-with_x2.webp

Open in Xcode (at line number)

Shifting from Emacs to Xcode via "Open with" is simple enough, but don't you want to also visit the very same line?

SF Symbols (for work)

Apple offers SF Symbols on all their platforms, so why not enable Emacs to insert and render them?

This is particulary handy if you do any sort of iOS/macOS development, enabling you to insert SF Symbols using your favorite completion framework. I happen to remain a faithful ivy user.

sf-insert-trimmed_x1.8.webp

SF Symbols (for fun)

Speaking of enabling SF Symbol rendering, you can also use them to spiff your Emacs up. Check out Charles Choi's Calle 24 for a great-looking Emacs toolbar. Also, Christian Tietze shows how to use SF Symbols as Emacs tab numbers.

Quick kill

While macOS's Activity Monitor does a fine job killing processes, I wanted something a little speedier, so I went with a killing solution leveraging Emacs completions.

kill_x1.8.webp

SwiftUI a la org babel

Having learned how simple it was to enable Objective-C babel support, I figured I could do something a little more creative with SwiftUI, so I published ob-swiftui on MELPA.

file-render.gif

Changing macOS default apps

I found the nifty duti command-line tool to change default macOS applications super handy, but could never remember its name when I needed it. And so I decided to bring it into dwim-shell-command as part of my toolbox.

set-default_x1.3.webp

I got a bunch of handy helpers in dwim-shell-commands.el (specially all the image/video helpers via ffmpeg and imagemagick). Go check dwim-shell-commands.el. There's loads in there, but here are my macOS-specific commands:

  • dwim-shell-commands-macos-add-to-photos
  • dwim-shell-commands-macos-bin-plist-to-xml
  • dwim-shell-commands-macos-caffeinate
  • dwim-shell-commands-macos-convert-to-mp4
  • dwim-shell-commands-macos-empty-trash
  • dwim-shell-commands-macos-install-iphone-device-ipa
  • dwim-shell-commands-macos-make-finder-alias
  • dwim-shell-commands-macos-ocr-text-from-desktop-region
  • dwim-shell-commands-macos-ocr-text-from-image
  • dwim-shell-commands-macos-open-with
  • dwim-shell-commands-macos-open-with-firefox
  • dwim-shell-commands-macos-open-with-safari
  • dwim-shell-commands-macos-reveal-in-finder
  • dwim-shell-commands-macos-screenshot-window
  • dwim-shell-commands-macos-set-default-app
  • dwim-shell-commands-macos-share
  • dwim-shell-commands-macos-start-recording-window
  • dwim-shell-commands-macos-abort-recording-window
  • dwim-shell-commands-macos-end-recording-window
  • dwim-shell-commands-macos-toggle-bluetooth-device-connection
  • dwim-shell-commands-macos-toggle-dark-mode
  • dwim-shell-commands-macos-toggle-display-rotation
  • dwim-shell-commands-macos-toggle-menu-bar-autohide
  • dwim-shell-commands-macos-version-and-hardware-overview-info

Toggle dark mode

Continuing on the dwim-shell-commands family, I should also mention dwim-shell-commands-macos-toggle-dark-mode.

While I hardly ever change my Emacs theme, I do toggle macOS dark mode from time to time to test macOS or web development.

dark-toggle.gif

Menu bar auto hide

One last dwim-shell-command… One that showcases toggling the macOS menu bar (autohide).

autohide.webp

Connect to your Bluetooth speaker

While this didn't quite stick for me, it was a fun experiment to add Emacs into the mix.

connect-disconnect.gif

Eshell

This is just a little fun banner I see whenever I launch eshell.

eshell.png

This is all you need:

(use-package em-banner
   :custom
  (eshell-banner-message  "
 \x1b[32m                             'c.                    \x1b[0m
 \x1b[32m                          ,xNMM.                    \x1b[0m
 \x1b[32m                        .OMMMMo                     \x1b[0m
 \x1b[32m                        OMMM0,                      \x1b[0m
 \x1b[32m              .;loddo:' loolloddol;.                \x1b[0m
 \x1b[32m            cKMMMMMMMMMMNWMMMMMMMMMM0:              \x1b[0m
 \x1b[33m          .KMMMMMMMMMMMMMMMMMMMMMMMWd.              \x1b[0m
 \x1b[33m          XMMMMMMMMMMMMMMMMMMMMMMMX.                \x1b[0m
 \x1b[31m        ;MMMMMMMMMMMMMMMMMMMMMMMM:                  \x1b[0m
 \x1b[31m        :MMMMMMMMMMMMMMMMMMMMMMMM:                  \x1b[0m
 \x1b[31m        .MMMMMMMMMMMMMMMMMMMMMMMMX.                 \x1b[0m
 \x1b[31m         kMMMMMMMMMMMMMMMMMMMMMMMMWd.               \x1b[0m
 \x1b[35m          .XMMMMMMMMMMMMMMMMMMMMMMMMMMk             \x1b[0m
 \x1b[35m           .XMMMMMMMMMMMMMMMMMMMMMMMMK.             \x1b[0m
 \x1b[34m             kMMMMMMMMMMMMMMMMMMMMMMd               \x1b[0m
 \x1b[34m              ;KMMMMMMMWXXWMMMMMMMk.                \x1b[0m
 \x1b[34m                .cooc,.    .,coo:.                  \x1b[0m

 \x1b[34m                        _/                  _/  _/  \x1b[0m
 \x1b[34m     _/_/      _/_/_/  _/_/_/      _/_/    _/  _/   \x1b[0m
 \x1b[34m  _/_/_/_/  _/_/      _/    _/  _/_/_/_/  _/  _/    \x1b[0m
 \x1b[34m _/            _/_/  _/    _/  _/        _/  _/     \x1b[0m
 \x1b[34m  _/_/_/  _/_/_/    _/    _/    _/_/_/  _/  _/      \x1b[0m


 "))

Screencasts

I wanted a quick way to record or take screenshots of macOS windows, so I now have my lazy way, leveraging macosrec, a recording command line utility I built. Invoked via M-x of course.

Eglot (LSP) for iOS/macOS dev

If you want any sort of code completion for your macOS projects, you'd be happy to know that eglot works out of the box.

(use-package eglot
   :ensure t
   :hook (swift-mode . eglot-ensure)
   :config
  (message  "warning: ` jsonrpc--log-event ' is ignored.")
  (fset #'jsonrpc--log-event #'ignore)
  (add-to-list 'eglot-server-programs '(swift-mode . ("/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/sourcekit-lsp"))))

Search and play (Music app)

This is another experiment that didn't quite stick, but I played with controlling the Music app's playback.

music_search.gif

While I still purchase music via Apple's Music app, I now play directly from Emacs via Ready Player Mode. I'm fairly happy with this setup, having scratched that itch with my own package.

open-file.gif

By the way, those buttons also leverage SF Symbols on macOS.

Reveal -> all <- in Finder

While there are plenty of solutions out there leveraging the open command line tool to reveal files in macOS's Finder, I wanted one that revealed multiple files in one go. For that, I leveraged the awesome emacs-swift-module, also by Valeriy Savchenko.

reveal.webp

Use the macOS Trash

The macOS trash has saved my bacon in more than one occasion. Make Emacs aware of it. Also check out M-x dwim-shell-commands-macos-empty-trash.

recovered_x1.6.webp

Build your own macOS utils

While elisp wasn't in my top languages to learn back in the day, I sure am glad I finally bit the bullet and learned a thing or two. This opened many possibilities. I now see Emacs as a platform to build utilities and tools off of. A canvas of sorts, to be leveraged in and out of the editor.

For example, you could build your own bookmark launcher and invoke from anywhere on macOS.

launcher.gif

Emacs as default email composer

Turns out you can also make Emacs your default email composer.

Emacs key bindings everywhere

While not exactly an Emacs tweak itself, I wanted to extend Emacs bindings into other macOS apps. In particular, I wanted more reliable Ctrl-n/p usage everywhere, which I achieved via Karabiner-Elements. I also mapped C-g to Esc, which really feels just great! I can now cancel things, dismiss menus, dialogs, etc. everywhere.

Org as lingua franca

With my Emacs usage growing over time, it was a matter of time until I discovered org mode. This blog is well over 11 years old now, yet still powered by the very same org file (beware, this file is big).

With my org usage growing, I felt like I was missing org support outside of Emacs. And so I started building iOS apps revolving around my Emacs usage.

Journelly (iOS)

Journelly is my latest iOS app, centered around note-taking and journaling. The app feels like tweeting, but for your eyes only of course. It's powered by org markup, which can be synced with Emacs via iCloud.

sideways.jpg

emacs.gif

Flat Habits (iOS)

Org habits are handy for tracking daily habits. However, it wasn't super practical for me as I often wanted to check things off while on the go (away from Emacs). That led me to build Flat Habits.

flat_habits.gif

flat_agenda.gif

Scratch (iOS)

While these days I'm using Journelly to jot down just about anything, before that, I built and used Scratch as scratch pad of sorts. No iCloud syncing, but needless to say, it's also powered by org markup.

scratch-download_no_audio_x2.6.webp

Plain Org (iOS)

For more involved writing, nothing beats Emacs org mode. But what if I want quick access to my org files while on the go? Plain Org is my iOS solution for that.

plain-org.png

Found this post useful?

I'll keep looking for other macOS-related tips and update this post in the future.

In the meantime, consider ✨ sponsoring✨ this content, my Emacs packages, buying my apps, or just taking care of your eyes ;)

27 May 18:03

Jon Stewart Slams CNN’s “Bombshell” Biden Book Promo Amidst Cancer Diagnosis | Patrick McGee

Tom Roche

as is too-often usual with DSEE: excellent set (Stewart in top form) followed by very-skippable interview

Jon Stewart critiques the media spin on Joe Biden’s cancer diagnosis, from CNN's shameless promotion of Jake Tapper’s book to Fox News’s "but"-tainted sympathies.

Award-winning journalist Patrick McGee joins Jon to discuss how Apple built China in his new book "Apple in China: The Capture of the World's Greatest Company." They talk about Apple “sleepwalking” into this crisis, building a competitive market in Xi Jinping's authoritarian state, the vocational training that boosted rivals, how Trump’s attempted Apple boycott backfired, and whether investments may be facilitating the annexation of Taiwan.

See omnystudio.com/listener for privacy information.

Learn more about your ad choices. Visit podcastchoices.com/adchoices

26 May 18:56

Marcin Borkowski: Adding directories to EMMS playlist from Dired

by Marcin Borkowski
Like many of us Emacsers, I do much (if not most) my computering in Emacs. This includes using EMMS as my main media player and Dired as my file manager. One thing I find myself doing pretty often is adding a bunch of subdirectories in my ~/music directory to my EMMS playlist. I usually used emms-add-directory-tree, but it is not really smooth if I want to apply it to many subdirectories. I thought, “there must be a function which adds the current item – or the marked items – to the playlist”.
26 May 18:53

Real Python: Marimo: A Reactive, Reproducible Notebook

Marimo notebooks redefine the notebook experience by offering a reactive environment that addresses the limitations of traditional linear notebooks. With marimo, you can seamlessly reproduce and share content while benefiting from automatic cell updates and a correct execution order. Discover how marimo’s features make it an ideal tool for documenting research and learning activities.

By the end of this tutorial, you’ll understand that:

  • Marimo notebooks automatically update dependent cells, ensuring consistent results across your work.
  • Reactivity allows marimo to determine the correct running order of cells using a directed acyclic graph (DAG).
  • Sandboxing in marimo creates isolated environments for notebooks, preventing package conflicts and ensuring reproducibility.
  • You can add interactivity to marimo notebooks using UI elements like sliders and radio buttons.
  • Traditional linear notebooks have inherent flaws, such as hidden state issues, that marimo addresses with its reactive design.

Before you can get started with marimo, you’ll need to install it. Fortunately, this is quick and easy to do:

Shell
$ python -m pip install marimo
Copied!

You use pip to install the marimo library on your system. With this done, it’s time to get started, be amazed, and learn all about a different type of notebook.

The best way to approach this tutorial is to use the instructions to complete the various examples and try the exercises yourself. If you want copies of the various notebook files created during the tutorial, you’ll find them in your download bundle. The README.md file provides further details of what’s in your downloads.

Take the Quiz: Test your knowledge with our interactive “Marimo: A Reactive, Reproducible Notebook” quiz. You’ll receive a score upon completion to help you track your learning progress:


Interactive Quiz

Marimo: A Reactive, Reproducible Notebook

This quiz is a great way to reinforce and build on what you've learned about marimo notebooks. You'll find most of the answers in the tutorial, but you'll need to do some additional research to find some of the answers.

How to Get Started in a Marimo Notebook

A notebook is a file where you can write your programming code, run it, and view the output. You can add formatted text to explain how your code works, display charts to clarify results, and even allow your notebook’s users to try out different scenarios using a customized user interface. Once your notebook is complete, you can save everything in a single file and share your creation with others.

In this section, you’ll learn to use marimo to create a simple notebook to perform a calculation and clearly display its results.

Like many notebooks, marimo notebooks consist of cells. The primary cell types are code cells, where you enter and run your Python code, and Markdown cells, where you enter formatted text to augment the code and its output.

In this first example, you’ll use a marimo notebook and NumPy to solve a pair of simultaneous equations. To do this, you’ll first need to install the NumPy library:

Shell
$ python -m pip install numpy
Copied!

With NumPy installed, you can now create your notebook by typing the following command into your console:

Shell
$ marimo edit simultaneous_equations.py
Copied!

When you run this command, you’ll most likely create a new notebook named simultaneous_equations.py for editing. If you already have a marimo notebook with that name, you’ll open it instead. Either way, your notebook will be ready for you to use within your browser.

Switch to your web browser, and you’ll see your new notebook. It’ll contain a single cell. Hover your mouse over the cell to reveal a range of icons, each with a tooltip that explains its purpose and shows the associated keyboard shortcuts:

graphic showing a marimo notebook cell and its controls.

Each of the main icons are described in the screenshot above. While most of these are self-explanatory, there are some points you should be aware of:

  • The red trash can icon shown here won’t appear immediately in your notebook. This is used to delete a cell and will only appear when you add other cells. You can’t see it yet because all notebooks must have at least one cell. Deleting the last cell is impossible.
  • The color of the Run current cell icon is also significant. If this cell is white, as it is in the screenshot, it’s up to date and doesn’t need to be run. Once you start changing cells, you’ll see their Run icons develop a yellow tinge. This warns you that the cell has become stale, meaning you must run it to update it.
  • Finally, notice that the numbers to the left of each cell indicate the line numbers of the code within the cell. Unlike most other notebooks, there are no numbers to indicate the running order of the cells. This is because marimo allows you to add code cells in any order. Marimo can work out the correct cell running order for itself. Even so, placing cells in an illogical order should be avoided.

When you hover your mouse over some of marimo’s icons, you’ll see their associated keyboard shortcuts. Unfortunately, they don’t work correctly in all browsers. If they don’t work for you, stick to using your mouse. Feel free to try them to find out if they work for you.

Adding Code and Markdown Content

It’s time for you to gain experience creating some content in marimo. By following the walk-through, you’ll get hands-on practice with the basics.

Although confusing the first time you see it, the single cell that contains import marimo as mo is actually a blank cell. This code allows you to work with the marimo API. However, it’s not in the cell unless you type it in manually.

Read the full article at https://realpython.com/marimo-notebook/ »


[ Improve Your Python With 🐍 Python Tricks 💌 – Get a short & sweet Python Trick delivered to your inbox every couple of days. >> Click here to learn more and see examples ]

25 May 04:03

A Whole New World: China-CELAC Summit Builds New Bridges with Latin America and the Caribbean

by Soberanía Podcast
Tom Roche

another EXCELLENT ep from Hackbarth and Granados Ceja

It’s bizarro world! In today’s episode, we kick off by discussing the recent summit between China and the Community of Latin American and Caribbean States (CELAC), attended by President Xi Jinping and several Latin American heads of state of varying degrees of progressivism. With the threat of Trumpism and tariffs hanging in the air, the summit acquired both greater impetus and urgency. In section two: when does a big-tent political party become too big? Kurt and José Luis discuss this question in the context of the recent incorporation into MORENA of two former PRI members with checkered pasts: Adrián Ruvalcaba as head of Mexico City’s metro and Enrique Benítez in Durango ahead of elections there. Then…it’s back! The State Department liberates budgeted funding for the CIA cutout NED, known in Mexico for funding “civil-society” oppo organizations such as Mexicans Against Corruption and Impunity (MCCI). Finally, in a bizarro losers and haters, a rare thoughtful, analytical piece in the English-language press from Kate Aronoff at New Republic explores Mexico’s industrial policy.

25 May 04:00

Pere Ubu, Rocket from the Tombs & the Music of David Thomas

Tom Roche

VERY EXCELLENT, must listen

Hosts Jim DeRogatis and Greg Kot pay tribute to the late singer, songwriter and musician David Thomas. They do a deep dive on his career and life, discussing his music with Pere Ubu and Rocket from the Tombs.

Join our Facebook Group: https://bit.ly/3sivr9T

Become a member on Patreon: https://bit.ly/3slWZvc

Sign up for our newsletter: https://bit.ly/3eEvRnG

Make a donation via PayPal: https://bit.ly/3dmt9lU

Send us a Voice Memo: Desktop: bit.ly/2RyD5Ah  Mobile: sayhi.chat/soundops

 

Featured Songs:

Pere Ubu, "Non-Alignment Pact," The Modern Dance, Plan 9, 1978

The Beatles, "With A Little Help From My Friends," Sgt. Pepper's Lonely Hearts Club Band, Parlophone, 1967

Pere Ubu, "Babylonian Warehouses (Live on Sound Opinions)," Why I Hate Women, Smog Veil, 2006

Dead Boys, "Ain't It Fun," We Have Come for Your Children, Sire, 1978

Pere Ubu, "30 Seconds Over Tokyo," 30 Seconds Over Tokyo (Single), Hearthan, 1975

Dead Boys, "Sonic Reducer," Young, Loud and Snotty, Sire, 1977

Rocket from the Tombs, "Amphetamine (Live)," The Day the Earth Met Rocket from the Tombs (Live From Punk Ground Zero, Cleveland 1975), Smog Veil, 2002

Pere Ubu, "Laughing," The Modern Dance, Blank, 1978

Pere Ubu, "Humor Me," The Modern Dance, Blank, 1978

Pere Ubu, "Dub Housing," Dub Housing, Chysalis, 1978

Pere Ubu, "Caligari's Mirror," Dub Housing, Chysalis, 1978

Pere Ubu, "(Pa) Ubu Dance Party," Dub Housing, Chysalis, 1978

Pere Ubu, "Navvy," Dub Housing, Chysalis, 1978

Pere Ubu, "Waiting For Mary," Cloudland, Fontana, 1989

Pere Ubu, "George Had a Hat," The Tenement Year, Enigma, 1988

Rocket from the Tombs, "Sonic Reducer," The Day the Earth Met Rocket from the Tombs (Live From Punk Ground Zero, Cleveland 1975), Smog Veil, 2002

Pere Ubu, "Caroleen (Live on Sound Opinions)," Why I Hate Women, Smog Veil, 2006

Arvella Gray, "John Henry," I Blueskvarter Chicago 1964, Volume Two, Jefferson, 2000

See Privacy Policy at https://art19.com/privacy and California Privacy Notice at https://art19.com/privacy#do-not-sell-my-info.

25 May 03:59

A Companion Tribute to Our David Thomas Farewell

Tom Roche

EXCELLENT obit for Cleveland's Peter Laughner (1952-1977), with all-too-brief sample from one of his solo songs

Following our tribute to David Thomas, Jim reflects on another Pere Ubu and Rocket from the Tombs member lost too early, and pays tribute with a Desert Island Jukebox selection.

Become a member on Patreon: https://bit.ly/3slWZvc

Join our Facebook Group: https://bit.ly/3sivr9T

Sign up for our newsletter: https://bit.ly/3eEvRnG

Make a donation via PayPal: https://bit.ly/3dmt9lU

Send us a Voice Memo: Desktop: bit.ly/2RyD5Ah  Mobile: sayhi.chat/soundops

See Privacy Policy at https://art19.com/privacy and California Privacy Notice at https://art19.com/privacy#do-not-sell-my-info.

25 May 03:58

Radio War Nerd EP 524 — The American Pope, feat. Annibale

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

Annibale EXCELLENT as usual. Note however the mistitling of this episode--only a very small part of it is about Leo XIV. A much better title would be something like "Catholic Church geopolitics from Leo XIII to Leo XIV, featuring IOR (aka Vatican Bank) global crimes/hijinks"

Co-hosts John Dolan & Mark Ames
25 May 00:17

Energy sanctions on Russia and seizing ships on the high seas

by The Duran
Tom Roche

another excellent Duran Live with Stanislav Krapivnik

Energy sanctions on Russia and seizing ships on the high seas

23 May 23:59

The News Quiz: Ep 5. An Island of Strangers

Tom Roche

amusing as usual

Andy Zaltzman is joined by Alasdair Beckett-King, Sara Barron, Daliso Chaponda and ITV Deputy Political Editor Anushka Asthana. Discussion points include this week's immigration White Paper, tighter controls on international students looking for gainful employment, the elusive definition of a 'skilled job', chimpanzees utility in medical emergencies, and the returns policy on a returns hub.

Written by Andy Zaltzman.

With additional material by: Samira Banks, Catherine Brinkworth, and Cody Dahler. Producer: Rajiv Karia Executive Producer: Pete Strauss Production Coordinator: Jodie Charman Sound Editor: Marc Willcox

A BBC Studios Audio Production for Radio 4.

22 May 16:37

933 - We Can Grok It For You Wholesale feat. Mike Isaac (5/12/25)

Tom Roche

EXCELLENT (and funny) survey of AI- and Big-Tech-related issues and crimes

Tech reporter Mike Isaac returns to the show for a round-up of the latest AI news. From collegiate cheating to funeral planning, Mike helps us make some sense of how this wonderful emerging technology is reshaping human society in so many delightful ways, and certainly is not a madness rune chipping away at what little sanity remains in our population’s fraying psyche. We’re doing another call-in show with Matt for the midweek, so if you have any questions or comments, send an UNDER 30 SECOND voice recording to calls@chapotraphouse.com We also have some new merch going up at chapotraphouse.store this Weds, May 14. So keep your eyes out for that!