N.

A new post up on my blog: https://somethingwonderful.eu/i-m-finally-set-up.html

A little excerpt:

I'm finally set up. It's been an incredible ride. I'll have to update my page on getting off of the American Tech Stack. I know that many others have been documenting their progress on their own blogs. I have set up full services for myself, my family, and my friends. Some are slowly adopting it while others have adopted certain features very quickly.

andros

My Hacker News Modern Emacs Client package is now available on MELPA.

https://git.andros.dev/andros/hackernews-modern-el/

https://melpa.org/#/hackernews-modern

#hackernews #melpa #emacs
andros

You can make a poster with your favorite city or town: https://terraink.app/ 😍

andros

redbeard83Welcome back! And congratulations on joining the geekiest social network.

What is your feedback? How is your return? How do you feel?

redbeard83

I think I heard about org-social last year, but never looked into it since I wasn't using Emacs anymore. Since I'm back now I thought why not? And here I am.

Baldo

-¿Qué viene quién y cuándo?-

#cats #org-social-cats
SolarPrincess

What‘s a good email provider, that gives access to SMTP on a free plan, and is not Google/Microsoft/Apple?

Terrón

#cats #org-social-cats
Baldo

#cats #org-social-cats
gnomon

org-alert firing too early?

I've been using the org-alert packageto pop up reminders for DEADLINE: and SCHEDULED: tasks on my phone from emacs under Termux. This functionality leans on John Wiegley's alert packageto pop up notifications suitable for the platform where emacs is running - in my case under Android. It's terrific: everything just works, and I can add a :REMINDERN: 45 header property to fire alerts (e.g.) 45 minutes before the deadline rather than the default 10 minutes (org-alert-notify-cutoff.

But sometimes the alerts fire too early - sometimes far too early. What gives?

"I know, I'll use regular expressions!"

Ah, it seems that this is a common stumbling block for folks, cf.:

  1. spegoraro/org-alert#29("Too greedy regex in org-alert-time-match-string", [2022-12-08 Thu])

  2. spegoraro/org-alert#42("Alert time is taken from clock line in logbook drawer", [2024-09-19 Thu])

  3. spegoraro/org-alert#43("org-alert-time-match-string is too permissive", [2024-10-09 Wed])

And jwiegley's proposed solution works, except that it triggers on the last timestamp when a deadline has a time range rather than the first timestamp in that range. But that's a quick fix! I just need to update the customized variable in my use-package initialization..:

(use-package org-alert
  :demand t
  :custom
  (org-alert-time-match-string "\\(?:SCHEDULED\\|DEADLINE\\):\\s-+<[^>]+\\([0-9]\\{2\\}:[0-9]\\{2\\}\\).*>")
  ;; per https://github.com/spegoraro/org-alert/issues/43
  )

...to change the first timestamp quantifier from <[^>]+ to the non-greedyvariant <[^>]+?, like so..:

(use-package org-alert
  :demand t
  :custom
  (org-alert-time-match-string "\\(?:SCHEDULED\\|DEADLINE\\):\\s-+<[^>]+?\\([0-9]\\{2\\}:[0-9]\\{2\\}\\).*>")
  ;; per https://github.com/spegoraro/org-alert/issues/43
  )

...and my alerts now fire exactly when I want them to, every time!

A little double-checking

I checked my work before updating my init.el. First I tried:

(save-match-data
  (string-match
   "\\(?:SCHEDULED\\|DEADLINE\\):\\s-+<[^>]+\\([0-9]\\{2\\}:[0-9]\\{2\\}\\).*>"
   "foo DEADLINE: <0123-45-67 01:23-45:67> bar")
  (match-data))

...which gave me (4 38 32 37), where bytes 32-37 match 45:67 in the example string above. Then I tried:

(save-match-data
  (string-match
   "\\(?:SCHEDULED\\|DEADLINE\\):\\s-+<[^>]+?\\([0-9]\\{2\\}:[0-9]\\{2\\}\\).*>"
   "foo DEADLINE: <0123-45-67 01:23-45:67> bar")
  (match-data))

...and that gave me (4 38 26 31), where 26-31 matches 01:23. (I'm sure there is a more elegant way of doing that, but I was just copying examples out of the elisp manual I am very familiar with regexes but only just getting my toes wet with Emacs's implementation of them.)

#blog
andros

I am happy to announce that conflict-buttons.elis on MELPA

#emacs #melpa
andros

Yesterday I got to connect to LoRa mesh. I talked to with a guy who lives 30 km away! Amazing.

I am expecting the solar panel, the battery, and better antenna.

#lora #radio
andros

gnomonI'll develop an Emacs extension for sending and receiving messages via API. Make no mistake about it 😋

I didn't know about Lilygo T-Echo. It's an easy way to start, I love it!

My goal is to develop a common system:

Emacs -> Computer -> API -> Wifi -> 868 MHz Heltec LoRa32 V3 -> Filter -> Antenna

It will be very interesting to see two people talking via Emacs over radio frequencies.

andros

OmarSmart guy! The second repository was my first focus. I didn't like it, so I refactored the code.

"-el" is the best.

O

What's the difference between hackernews-modern-eland hackernews-modern.el

O

These look pretty cool! By the way, the link for conflict-buttons.el goes to hackernews-modern.el too. The correct link is conflict-buttons.el

gnomon

I do not have any LoRa hardware yet, but a small number of my friends have been experimenting with little LilyGo radios running Meshtastic/MeshCore firmware for long-range text chatting. (I think they're using the Lilygo T-Echo (915MHz/BME280) hardwarespecifically.)

Most of my messaging happens from inside emacs anyhow, so when I get around to picking up one of these widgets I expect I'll be looking for ways to use them from within emacs.

What hardware are you using? How are you finding it so far?

andros

I am building my own LoRa hardware: installing the antenna, adding batteries, setting up the configurations, and so on. My goal is to talk to my friends using radio signals.

Is anybody else using this technology? Can you imagine two Emacs clients communicating via radio signals?

#lora #radio
andros

Over the last few days, I have published some Emacs extensions

Hacker News Modern

Conflict buttons

Async http queue fetch urls

The last one was created for the org-social.el client.

I hope you like them!

#emacs
Baldo

#cats #org-social-cats
andros

Omarthank you very much for finding new bugs! Your description was very useful.

Regarding te "correct method" for warming issues, I have added a new button to explain it 🙂.

org-social

Version 2.11 of org-social.el is released!

  • Bug Fixes: Fixed thread (t) and profile (P) keyboard shortcuts in timeline, buttons now correctly match the emoji-only labels. (Thanks Omar

  • UI Improvements: Added "🤝 Issue/PR" contribution button in timeline header with guidelines link

#org-social-el
andros

Thanks for sharing! I have taken note of the pdf-tool.

O

Why do I keep seeing people that use Org Mode with an external static website generator, usually Hugo, to make a website? Is there something wrong with the org-publish subsystem that comes with org-mode? It seems to work well to me.

Or maybe there's nothing wrong per se with org-publish, but Hugo is somehow better? I can't really imagine Hugo is more extensible than org-publish, but maybe it's better in some other way?

O

I'm sorry I took so long to reply. I only figured out where the notifications are today! 🤦You asked what I do in Emacs, and the answer is almost everything I do on a computer except browse the web!

I use GNUS for email, I use Org Mode to keep to do lists and schedule appointments, to keep notes on various topics, projects, and meetings, to write my website, notes for courses, homework assignments, etc. I write some solo papers in Org Mode too, but mostly have coauthors who don't know Org, but I use AUCTeX in Emacs for those papers.

I don't write much code, but when I do it's almost always in Emacs (the exception is SageMath which I more commonly write in a Jupyter notebook). My favorite languages at the moment are modern array languages, descendants of APL, such as BQN, ngn/k and anaseto's Goal. (I wrote Org Babel support for those three, they're super handy to analyze org tables.)

I read PDFs in Emacs using pdf-tools, and I used to also use pdf-tools to annotate students papers or theses, but now I do those annotations in hand-writing on an eInk tablet.

O

Oh, I cheated there! I don't even try to dictate stuff like URLs which I know whisper is going to get wrong. What I do in those cases is use a "code name" for each such term, and later do a query-replace. For code names I typically use simple person or place names. I think I said "France" where the URL goes, and then I replaced it.

O

I was annoyed again that attempting to open a thread by pressing t in the Org Social timeline only printed the message "No profile button found near point" no matter where I positioned point, so I took a peek at the source code and found that it searches for the the string ~"🧵 Thread"~ in order to find the button, and then clicks it —using (widget-button-press (point)). The only problem with this strategy is that the button actually only says 🧵! I deleted the word "Thread" and the command started working. I believe only the commands org-social-ui--view-thread and org-social-ui--view-profile have this bug.

Is this an acceptable way to report a bug, Andros

Terrón

#cats #org-social-cats
Terrón

#cats #org-social-cats
andros

N.You remind me of my cats.

andros

N.Amazing! Good work 🤩

Link

N.

Signs of aging: Being awake at 4am with your coffee because you just...woke up. No explanation, none even offered. You're just awake. So you start going about your day anyway, even though you're dead tired.

gnomon

temperature reporting from my Gl-Inet MT-6000 "Flint 2" router

About a month agoI replaced our very old household router with a GL.iNet MT-6000 "Flint 2" (product page OpenWRT wiki entry. The previous router is so old and so far past the end of its vendor support commitment that I don't want to even admit to which one it was; but the fact that I even had to care about the vendor support duration informed my choice of device and manufacturer. I wanted a machine that would run mainline OpenWRT so that I could depend on the vendor to support the hardware and the OpenWRT community to support the software stack.

GL.iNet fit my vendor requirements: out of the box the MT-6000 runs OpenWRT 21.x (due to limitations on the proprietary MediaTek board support package), and GL.iNet specifically offers (non-default) firmware packages that they support built atop mainline OpenWRT 24.x Furthermore GL.iNet supplies unlocked bootloaders for their devices.

The MT-6000 fit my hardware requirements: affordable, quiet (fanless), featureful enough, reliable, good reputation among users.

Long story short, I was dreading the router replacement process but looking forward to having it done. It actually went far more smoothly than I expected, and I've been enjoying the device ever since, and enjoying my absence of worries about an antique router on its last legs even more.

HOWEVER

In my quest to better manage the household device fleet I am slowly working towards gathering simple metrics - power draw and temperature for starters. I discovered that the =lm-sensors= OpenWRT packageand the sensors utility don't find any usable temperature sensors on this new router!

where is the router temperature sensor output?

Does lm-sensors find nothing to report on because the mtk_thermal driver module isn't loaded..?

root@router:/# lsmod | grep mtk mt_wifi 8081408 5 mtk_warp_proxy mtk_warp 368640 1 mtk_warp_proxy mtk_warp_proxy 16384 0 mtkhnat 102400 2 mt_wifi,mtk_warp root@router:/#

root@router:/# lsmod | grep -E 'mtk.*therm'

Hang on: is it because that module doesn't exist in the version of the kernel currently running on the router?

root@router:/# uname -a Linux router 5.4.238 #0 SMP Thu Oct 16 04:05:39 2025 aarch64 GNU/Linux root@router:/#

root@router:/# cat /etc/openwrt_release DISTRIB_ID='OpenWrt' DISTRIB_RELEASE='21.02-SNAPSHOT' DISTRIB_REVISION='' DISTRIB_TARGET='mediatek/mt7986' DISTRIB_ARCH='aarch64_cortex-a53' DISTRIB_DESCRIPTION='OpenWrt 21.02-SNAPSHOT ' DISTRIB_TAINTS='busybox override' root@router:/#

OK, so the out-of-the-box OpenWRT version underpinning firmware version 4.8.3 for this deviceis 21.x, which means kernel 5.4.238.

I happen to know that the MT7986AV (Filogic 830 gained thermal reporting support in 2023: cf. the patch seriesand the commit in kernel 6.3.. then the followup commit next monththat moved the driver from drivers/thermal/mtk_thermal.c to drivers/thermal/mediatek/auxadc_thermal.c, in case you feel like spelunking in the linux commit logs But what's this? That commit actually renames the driver module for the auxiliary ADC thermal probe from mtk_thermal to auxadc_thermal? Do I have that module loaded??

root@router:/# lsmod | grep auxadc root@router:/#

Alas, no, I do not.

a light in the darkness, a thermometer in the attic

But I do have some hardware monitoring happening on this device since it's clearly visible in the UI. And I can confirm that with just a bit more config spelunking by looking at the build options of this particular kernel as exposed in /proc/config.gz:

root@router:/# gzip -d < /proc/config.gz | awk '/CONFIG_(|THERMAL_)HWMON(=| is not set)/' CONFIG_HWMON=y # CONFIG_THERMAL_HWMON is not set root@router:/#

So even though CONFIG_THERMAL_HWMON is not set, CONFIG_HWMON at least exposes some basic default hardware monitoring.

But that reminded me that back deep in the commit logs of =mtk_thermal.c= from 2015I noticed a commit message, "This adds support for the Mediatek thermal controller found on MT8173 and likely other SoCs.", implying that many Mediatek thermal controllers share a common architecture, and an implementation behind the CONFIG_MTK_THERMAL compilation option...

root@router:/# gzip -d < /proc/config.gz | awk '/CONFIG_MTK_THERMAL/' CONFIG_MTK_THERMAL=y root@router:/#

...which is set in my kernel build!

So maybe..?

root@router:/# find /sys/class/ | grep therm /sys/class/thermal /sys/class/thermal/thermal_zone0 root@router:/#

Yes!

root@router:/# awk -v now="$EPOCHREALTIME" '1{printf("%s\t%.2f°C\n", now, ($0/1000))}' /sys/class/thermal/thermal_zone0/temp 1771464271.310830 51.13°C root@router:/#

Bingo! It's not ideal, but it's something, and it's enough! I lack fine-grained thermal reporting from the WiFi and network peripherals but at least I can sample the SoC package temperature with some reasonable fidelity. That will give me a proxy metric for dust accumulation over time that I can use to remind myself to unscrew the case and clean out every couple of years. That'll do for now!

#blog
N.

Thanks! It's made 100% with org-mode and elisp. I've been meaning to publish the code someday but I've been exceedingly busy. It's nice because there is no Hugo or other code to udpate which will break my template.

And yes, org-social is definitely not for the average user. 🤣

N.

I used to. That is how I discovered Emacs around 2018. I actually keep in touch with Mike Zamansky every now and then. He's a really good guy.

andros

I'm quite surprised by the number of Emacs channels on YouTube. Does anyone usually watch videos about it?

andros

N.I completely agree! It's not a social network for the masses 😀

andros

N.I like your site!

N.

I've been on an absolute rampage permanently deleting things from big social media and Google after doing it with Apple. I'm tearing up my shit all over their servers and it is thoroughly enjoyable. If I could, I would extend this courtesy to the owners as well for having put us in this place. I'm fed up, and I'm making it known.

Everyone else should as well.

You should too. (I know, preaching to the choir here)

N.

Let's see if this works with the commands. N.B. Org-Social, as awesome as it is, is very... "Emacs" in implementation. Non-coders beware. 🤣 I do like it however - especially after recently setting up my Bluesky and Mastodon at a new place to support the EU independence from US Tech projects.

N.

First post on somethingwonderful.eu! Moving from neurolog.dev to consolidate everything under one domain.

gnomon

Canadian holidays for the emacs calendar, packaging

A little while ago I noticed that my emacs org-mode agenda was not displaying Victoria Day, a holiday in Canada. A few quick minutes of digging revealed to me that although the built-in holiday calendar is under active maintenance and covers a nice range of regional and religious holidays it does not include the Canadian ones: most of those are instead offered as external packages. I found a half-finished package on GitHub tracking several Canadian holidaysand filed a small pull requestto add some missing provincial holidays.

During this process I discovered that Canadian holidays are weird! They all have interesting histories, including changing the dates on which they were celebrated, changing the names by which they were known ("Dominion Day"??), and changing the definitions of when the dates are supposed to actually fall. I started compiling these oddities into a more complete implementation of the Canadian holiday calendar that would yield correct values for present and future holidays, and also show correct historical entries if one were tempted to look back into the past.

A wild hirsute yak appears!

While implementing these richer holiday definitions I noticed that computing and displaying them was oddly slower than I expected. I thought this kind of math should be very fast indeed, but emacs was actually taking a perceptible number of milliseconds (so more than the commonly accepted 0.1s threshold for feeling instant... what gives?

A little bit of elisp profilingand a bit more digging into holidays.elshowed me what's up: the calendar-holiday-list function which runs down the list of all holidays known to emacs one by one and picks out the ones visible within the time window being rendered, does so by calling the eval functionon each member of the holiday list. This is known to not be particularly performant and it also defeats emacs's native code compiler that might otherwise compensate for some of that slowdown. (I had a citation for this statement from one of the earlier EmacsConf presentations, I think maybe from 2021, but I'll have to post that as a followup when I dig it up again.)

I think I might be able to wring a bit more performance out of my more complicated lookup implementations by defining them as function calls instead of list elements so that eval can dispatch to them more quickly...

...but that hypothesis has been sitting on my back burner for a few months now, and in the interim I still have not published an updated version of the Canadian holidays package!!

Get it off the back burner before it boils dry

I am calling myself out: I need to get that package into some state of being done, and I can polish it up later. First step is getting it committed, second step is getting it on sourcehut, third step is getting it into MELPA. Before the end of February, then!

#blog
Terrón

Su viaje a casa, hace 2 años

#cats #org-social-cats
untitled

This is my first post, for testing purpose only.

#orgsocial
andros

I've been using Emacs for a while now and if there's one thing it has taught me, it's to never settle. Every time I open my configuration I discover something I can do better, a shortcut I didn't know, a package that changes the way I work. It has taught me patience because nothing works the first time: I read, I try, I break, I fix. And in that process, without realizing it, I keep building something that is uniquely mine. I no longer see it as an editor or an Elisp interpreter, but as a communication protocol with my tools and a gym for my curiosity.

#emacs
andros

eludomIt's a great adventure! Sometimes I wonder if the new generations will have the same curiosity to traverse that enriching, Linux-based path.

The other day I was talking with a group of friends about how community maintainers and organizers were getting older.

andros

eludomtotally agree!

andros

SolarPrincessCan you show me your configuration? I don't see anything unusual on your social.org; it must be a client bug!

SolarPrincess

Now I don‘t see any posts other than my own! WTF! I miss org-social😭

eludom

I've made the journy form slackware (and maybe something before that, do BSD, System V and SunOS/Solaris and Mach count?) to RedHat to Ubunut to Arch.

There are as many versions of {unix,emacs} as there are copies of the source code.

4.2 > V

eludom

Your emacs config is finished when you die or stop using emacs.

org-social

Discord wants your face; Org Social just wants you to be free. In plain text, identity verification doesn't exist and never will.

Freedom on the internet!

andros

I am at the point where my Emacs configuration is finished and I can finally enjoy it. However, yesterday I discovered Neomacs..

What do you think?

andros

eludomSorry, I am a Debian fan. I help them, and not just with code ☺️ . But... I must admit that NixOS is an impressive paradigm. Perhaps the future of Linux.

eludom

I'm migrating to #NixOS. Looks like it's going to a win on several levels.

https://curious.port111.com/2026/02/06/migrating-to-nixos.html

What Linuxen are people using?

andros

SolarPrincesseludomI've been reviewing your feed and I don't see any problems. I think the issue is the 14-day filter. Not all posts are being displayed due to performance reasons.

My advice:

  1. Increase the age limit in your settings: (setq org-social-max-post-age-days 60). Or even 90.

  2. Disable the filter completely: (setq org-social-max-post-age-days nil).

  3. Check the version: Make sure you have the latest version with the most recent fixes.

eludom

How did you dictate the URL for your config?

SolarPrincess

I don‘t have language filtering enabled (you can check my social.org file to see if maybe I missed it). Now I see more posts, not sure if the problem is resolved by itself automatically, or I‘m still missing some...

Terrón

#cats #org-social-cats
gnomon

harshads interesting that you're using Orgzly, Termux, and org-mode! I use termux, emacs, org-mode, and magit on my phone constantly - multiple times a day - but I kind of bounced off Orgzly & Orgzly Revived. I'm curious to learn over time how our workflows are common and how they diverge from each other!

eludom

Thanks for the Carnival entry.

I'm going to have to ready/explore the idea of the garden. I've know about it for a while.

I'm migrating my workflows into denote and as part of the process, if something does not have to be private or secret, i tag it _public and it winds up in my public notes:

https://codeberg.org/eludom/home.public.notes/src/branch/master/home/public/notes/20260126T133603--new-workflow-denote-tags-2026-take-one__planning_public.org#headline-7

(this one is my thoughts on the denote migration process).

Thoughts?

eludom

androssuggest you promote the "discover" funcion (maybe post about it since I'm assuming most people follow you). People will not engage if they don't follow the (few-ish) people who are posting.

At this point, I follow most everyone I see

FWIW, ---George

andros

What are your opinions about MongoDB?

#mongodb
andros

QrvhhSolarPrincessI think it's the language filtering. If you have it configured, you'll ignore posts that DON'T have :LANG: (there are many posts like that). Could you please disable this setting and confirm?

SolarPrincess

I saw your post! And no other posts. org-social is the lastest version, my social.org validates correctly...

Qrvhh

Yep, same here... well, except I saw your post, and one other, newer post. Nothing else

neil

My post for the January Emacs Carnival: Emacs Carnival: This year I'll...

O

My configuration is at https://github.com/oantolin/emacs-config (well, the public parts). One thing I added very recently is the whisper.el package for dictation. I dictated this post for example.

SolarPrincess

I see no posts in the timeline except my own, even though the client DOES download the feeds I follow... IDK what‘s going on

eludom

Mostly using gptel interactivly

I just switched over to anthropic/Claude as the backend:

https://codeberg.org/eludom/home.public.notes/src/branch/master/home/public/notes/ai/20260127T113510--using-claude-with-gptel-in-emacs__public_tech_writing.org

Other cool thing is if you set

(setq gptel-org-branching-context t)

You can have one org file with multiple conversations/threads. What's sent is based on where you are in the org heirachy

eludom

Where does your config live and what's been changing lately?

Mine is here

https://codeberg.org/eludom/home.public.emacs-dot-d/src/branch/master/.emacs.d/ge.org

and the commit log https://codeberg.org/eludom/home.public.emacs-dot-d/commits/branch/master says some of the stuff I've done recently include

  • Enable gptel transient menu

  • Point denote at root directory, ~/notes/ only

  • Change elfeed default filter

  • Add "worked-on" agendas for mOnthly and Yearly

  • Don't create junk files in directory with files being edited

  • Use visual line mode

  • Treat elfeed, notmuch and org-social buffers as user buffers

  • Use visual-fill-column mode

  • Debugging gptel

  • use latest org-social

eludom

You can hit "Discover" at the top and it will show you a list of who's out there with the option to follow.

ATM I'm just following most people. Once volume gets higher I might get selective.

Welcome.

Other than experimenting with org-social, what sorts of things do you do in emacs?

eludom

Yes. And a benefit of eww is a lot of the junk (javascript) just goes away or does not render.

eludom

Welcome.

What are your favorite emacs packages?

I'm diving into denote and gptel these days.

andros

What tricks are you using with the AIs or agents?

andros

harshadsWelcome!

What do you do? What are your hobbies?

andros

I usually follow the exact same workflow 😂. I love reading mode!

tux0r

Good news, everyone: this year's Excel World Championshipseason has begun last week. :-)

#sports #excel
gnomon

Omarooh, good call about follow-mode I use that a bunch when reading epubs on my phone (in landscape mode) with nov.elbut it never occurred to me to use it with eww. Thank you for the idea!

gnomon

andros I use eww constantly, mostly because I skim so many headlines in elfeed from sources that only offer partial or empty feed bodies.

=eww='s readability mode (R / eww-readable) usually lets me quickly zoom in on the article contents; sometimes I also skim the article and conceal injected ad paragraphs with fold-thisbefore settling in for a careful read. eww is limited but still very useful, and of course browse-url-at-pointoffers an easy fallback to punt particularly recalcitrant pages over to a heavier-weight external browser.

tux0r

I used eww for some time, until I built my Emacs with xwidget support. eww is still a good fallback though.

O

I use it a fair amount. Some sites of course are really applications (like, say, gmail or facebook) and thus require JavaScript to function, but for sites that where you go to just read an article it is shocking how many of them actually improve without JavaScript. One trick I enjoy is open 2 or 3 windows, with vertical splits, onto the same eww buffer and enabling follow-mode, in order to read a web page in several columns.

O

First experiment: keep my org-social posts directly on the server by using a TRAMP path for org-social-file. Seems to work so far. I like that publishing is just C-x C-s.

O

Hello, org-social! I'm testing the waters here. Do I need to figure out some set of people to follow here? The timeline does show some posts anyway. Maybe the entire social network is still small enough to just look at everything instead of following specific people.

Terrón

#cats #org-social-cats
andros

This articleis very good, I confirm many of its points.

andros

Do you usually use the built-in browser? eww. I find it very convenient to use, and even useful for development.

#emacs #eww
eludom

Python is fine in-the-small, but last time (2 years ago while still working) I was involved in using it for serious development the ecosystem seemed overly complex. Having to pin various dependencies. Pip and friends. System installed versions vs virtual environments. I used Perl for 20 years before finally giving in to Python. The idea that space/indentation was syntactically significant struck (strikes) me as antique. RPG anyone? We've had tokenizers (lex) an grammar generators (yacc) since, what, the 60s? Abstract syntax trees are a thing. That said, it's what I program in (when Bash won't do the trick).

andros

You can make a user reference with M-x org-social-mention-user.

andros

eludomVery difficult to answer. I have a lot of favorites. Python, because it is the first language I think of when creating my own software.

Why? The syntax is beautiful, the community is awesome, Django, the ecosystem (uv, ruff, pip...), and I know some developers.

eludom

What is your least favorite programming language? (and why?)

  • Python

  • Java

  • Go

  • JavaScript

  • C++

  • Shell

  • Rust

  • Perl

  • Bash

  • Emacs Lisp

  • Other

eludom

> Hi! Perhaps there is a simpler solution: to make a boost and make a reply about it. Would it solve the problem?

I don't think so ... I have to type in this

Andros

to make a mention. I was just wondering if there was some way I could type, e.g, "@andros" and get the full reference inserted.

eludom

> What programming languages do you use at work? I'm curious. In my case Python, Bash > and SQL.

"At work" is a trick question for me. I'm retired.

That said mostly bash, elisp and python. At my last job I did large piles of BigQuery/SQL but I'm not sure I'd call SQL a programming language?

--George

eludom

Scoring is mind-bogglingly useful if you've never used it. I lived in GNUS some in the 80s through the early 2000s, both for Usenet news and mail (because if you turn your head sideways email is just a funny form of new post/reply).

With scoring (elfeed-score) you basically say "things from this feed get a base score of 50, things with that person's name in in the subject get scored down 30". The things you want to see float to the top, the things you don't get buried.

I havn't been using it for a while, but now that I'm back into it, I'm starting ask myself what can't I turn into an RSS feed? Score all the things :-)

---George

andros

«Sending patches via email with Git»

https://en.andros.dev/blog/75beece9/sending-patches-via-email-with-git/

When thinking about working with a friend on a small project, we instinctively create a repository on GitHub or GitLab. This practice, or reflex, is relatively modern. But although it may seem strange, you can collaborate on projects without using Git hosting services. Though it may seem unthinkable, these services didn't exist before, and software was developed with equal or better quality.

#git
andros

What programming languages do you use at work? I'm curious. In my case Python, Bash and SQL.

andros

Very interesting. I didn’t know it! I must acknowledge that elfeed is an indispensable package in Emacs.

andros

Hi! Perhaps there is a simpler solution: to make a boost and make a reply about it. Would it solve the problem?

eludom

Hey Andros looks like you've been busy.

A couple questions. First, is there any easy way to insert mentions (like I just did) without hand-editing the link? I feel like I'm missing something easy.

Also, it looks like you added timestamps after the "** " and are using them as a sort of unique identifier for messages in a feed? Prior to that I had been adding subjects "** This is about foo" to some of my posts because I really like folding/unfolding buffers and being able to see what bits are about. A couple questions here. Are my old entries "** subject foo" going to cause problems?

Thanks

eludom

I'm not sure there's a rating service for org packages, but I've recently started discovering the utility of elfeed-score. It brings gnus style scoring to rss feeds. i

andros

Awesome!

tux0r

The only MELPA package I wrote, of course. https://melpa.org/#/logpad

tux0r

I suggest to improve font locking on org-social.el. Or is that an upstream org-mode problem?

andros

tux0rPerhaps I'm misunderstanding. Are you proposing to break the syntax of Org?

tux0r

I.M.O. it is not quite good to have awk code strike-through'ed just because it contains two + characters, for example.

andros

Which do you think is the most underrated MELPA package?

For me: request and visual-fill-column

#emacs #melpa
andros

My adventure learning Common Lisp is proving to be very interesting. I'm not only learning the language itself, but also many programming tricks. Yesterday I was struggling with a function that tells me if a list is a palindrome (reads the same backward as forward). In the end, I found four different ways to do it, with some good and some bad, but the important thing is everything I learned along the way.

#common-lisp
andros

tux0rPlease elaborate!

tux0r

This post is an excellent example of why I think that post formatting could be improved.

... or is there a decently easy way to have Org-Social files just skip + and =/=?

#org-social
tux0r

I will investigate. It sounds surprisingly annoying to do though. 😅

eludom

This is my emacs carnival blog post for January 2026 responding to Christian Tietze's prompt "This year I'll...#34;

What will you do differently in emacs?

More sharing and big backlog of projects

What will you do differently in Emacs this year? Or will you just get started? Why?

So many things TODO. Org mode is soooo good at making huge TODO lists. This year I'm hoping to share more of my tinkering in public in git, blogs, my config maybe an emacs-conf talk.

A number of the projects are not strictly emacs, but enablers for further sharing: I plan on resurrecting my own git server using one of my own domains. It's likely going to turn back into a Forgejo git server For a while now I've needed to get more comfortable with my blogging platform, micro.blog (my current blog is at https://micro.blog/eludom. Micro.blog replaced the hugo blog I was producing (with ox-hugo which is still up at http://curious.galthub.com/ Micro.blog is hugo on the back end.

I missed a shout-out to JTRin last month's "The People Of Emacs#34; carnival. He turned me on to hugo, then micro.blog and always seems to be just ahead of me on interesting emacs/org projects.

What's old is new

I have digital flotsam and jetsam that goes back decades, including my old hand-edited HTML index page (http://port111.com/george/) (yes, I use HTML mode). A lot of this stuff needs to be collected. Emacs will be central to that task.

The oldest file for which I have an mtime is .emacs.uumy emacs config file from July 12, 2001 when I was working at UUNET. There's a TOPS 20 dumper tape in garage that may have emacs (TECO) stuff from the 80s if anybody's got a TU-77 handy.

Change (and config-twiddling) seem to be the only constants.

plus ça change, plus c'est la même chose.

What are you excited about with emacs?

What are you excited about to explore and tinker with? What do you want to perfect?

Visual Line mode

Let's start small. This week I switched to using the visual-fill-column mode. Turns out we're not in the era of VT100s anymore. "Terminals" have more than 80 columns and a lot of people, for some strange reason, don't break their lines at 80 characters. Up to now, I had stubbornly been setting a fill-column and using fill-paragraph a lot. That's over:

(remove-hook 'text-mode-hook #'turn-on-auto-fill)

(require 'visual-fill-column)

;; Add visual-line-mode and visual-fill-column-mode to text-mode-hook
(add-hook 'text-mode-hook (lambda ()
                            (visual-line-mode 1)
                            (visual-fill-column-mode 1)
                            (visual-fill-column-toggle-center-text)))

;; Set the desired wrap width
(setq-default visual-fill-column-width 120) ;; because 80 character terminals were a thing?

Denote - a new workflow

I'm moving into Denote I'm not sure what the ?final? workflow will be but I know it's going to be better.

Up until now I've been doing the traditional directory structure thing. Blogs here, finance stuff there, travel planning someplace else, etc. And then I have to remember where it all is.

The denote workflow will be some form of files mostly in one directory:

20260113T084007--experiments-using-vpns-for-daily-web-access__tech_writing.org
20260113T115229--debug-and-fix-garage-door__house.org
20251217T081925--jones-family-christmas-letter-2025__public_writing.org

The exact set of tags is a work in progress. The current list includes: emacs,tech,writing,public,money,planning,blogging,travel,retirement,info,house,fitness,family

The key will be to find a minimal, effective, memorable set of tags. I'm trying to follow Karl Voit#39;s guidance on How to Use Tags Karl is another person who should have gotten a shout out in my People of Emacsemacs carnival entry last month.

I also have an increasing number of files that are "conversations" with AI (ChatGPT to date), more on AI below. Files that start life as conversations with AI are generally landing in ~/notes/ai/.

I'm currently pushing anything I tag _public to https://codeberg.org/eludom/home.public.notes/src/branch/master/home/public/notes They are likely to move to git.galthub.com once I stand that back up.

GPTel - AI all the things

I've been using ChatGPT in emacs buffers with gptelto ask questions and keep a log of answers. I just type the question in the buffer/file and send it off.

I have a capture template that captures queries in hierarchically structured date tree.

The capture template looks like:

(setq org-capture-templates
      '(
	;; gptel query
	;;  [Hit ^X-G (gptel-send) to run the query then ^C-^C (org-capture-finalize) to save]
	("g" "GPTel Query" entry (file+datetree "~/tmp/gpt-captures.org")
"* GPTel Query\n  %U\n:Query: %^{Enter your query}\n\n%?" :jump-to-capture t)

	)
      )

Configure ~/tmp/gpt-captures.org to where you want the captures/queries to land. Running the buffer and providing the query results in a buffer that looks like

,**** GPTel Query
  [2026-01-17 Sat 17:07]
:Query: what does :jump-to-capture do in an org capture template

And after running query (^X-G with my bindings, gptel-send) and saving it (^c^c, org-capture-finalize)

,* 2026
,** 2026-01 January
,*** 2026-01-17 Saturday
,**** GPTel Query
  [2026-01-17 Sat 17:07]
:Query: what does :jump-to-capture do in an org capture template

In Org mode, the =:jump-to-capture= option in a capture template is used to jump to the newly created capture...

but I'm moving to mostly capturing things as denote notes in notes/ai/ instead. No need for AI/GPT specific org-capture template (above). I'm finding this segregates conversations better, maintains context, allows selective sharing (via _public tags and pushing to git).

The workflow there is to just do a normal denote capture, type the query in the buffer and do ^x-G to run the query. I often iterate/refine the query/have "conversations" in the same buffer.

Claude Code - AI agent all the things

I'm just starting to explore Claude Code/agentic AI. Yet another paradigm shift. The AIs (or some portion of them) run on your system and do stuff with your things.

I got started with Claude by feeding a twitter thread to ChatGPT and asking how I could replicate some results: https://codeberg.org/eludom/home.public.notes/src/branch/master/home/public/notes/ai/20260114T052256--claud-workflow__public_tech.org

I've run the shell (installed claude, type "claude" to start it) and fed it some of my old bash scripts for cleanup and restructuring, no problem. Proofreading text files, no problem. I installed this claude skill fed it .csv files of credit card transactions (no credentials) and let it find things that could be canceled to save money. You need a $20/month account. I canceled my OpenAI/ChatGPT paid account ($20) because I'm mostly using that via the API (gptel) anyhow.

I've been using the clipeacli tool for a bit to just generate "Do What I mean" command lines:

gmj@forum ~ $ ?? what package owns /usr/bin/brave I am on arch linux
📎🟢$ pacman -Qo /usr/bin/brave
Execute? [y/N] y
/usr/bin/brave is owned by brave-bin 1:1.84.132-1

Claude is going to take that about 4 orders of magnitude further, allowing access to as much (or as little) of your local system (files, commands) as you feel comfortable with. Once I learn more, I will probably integrate locally with my mail (offlineimap) and rss feeds to do filtering, scoring, summary reports, etc.

For now, I'm just using the default command line/terminal-based Claude AI, but as I type a new version of agent-shelldropped on MELPA. Emacs integration is probably in the near future.

There's learning to do.

org-social - one org mode to communicate with them all

And then there's org-social The social network where all your stuff stays on your computer (your posts, your "likes", your follow list), everything is formatted in org-mode, there is an emacs client, or if you don't like that you can just curl all your friends' feeds, 'cause theirs are all just a single publicly accessible text files too.

If you've not tried it, do so. Emacs people need niche places to congregate. This is a ground-up emacs/org-native social network. Check it out. Join. Use it.

large projects with emacs?

Are there any large projects in front of you that you’ll emacs with confidence?

I'm pretty sure everything listed above will count as several large projects. Stay tuned.

And much as I dislike project managment and Kanban boards, I may ask one of the AIs to help me with my ever-growing and ever-too-big-to-accomplish TODO lists. Maybe I'll figure out which ones are more important and get a few of them done. These are exciting times.

Emacs, the verb

And Christian, I'm with you on using emacs as a verb:

To emacs, or not to emacs, that is the question.

,*Emacso, -are, -avi, -atus* (verb, 1st conjugation)

emacso, emacsas, emacsat, emacsamus, emacsatis, emacsant 

- Cotidie, cum discipulis meis, emacso ad software melius discendum.  
   /(Every day, with my students, I emacs to learn better software.)/

"All your emacsifications are belong to us"

Terrón

-¡No me quiero duchar! Me portaré bien.-

#cats #org-social-cats
gnomon

I don't think that mpdel itself offers any special support for filtering by original directory through a symlink, but the mpd protocol itself doesvia the (base "path") filter type.

e.g. I week or two ago I bought a three-album series by The Protomenfrom Bandcamp and stored them under =/shared-media/music/the-protomen/= on the household fileserver. I have my central mpd server configured to use =/shared-media/= as the music directory. (=music/= is a subdirectory because I also have other audio files like podcasts in directories parallel to =music/=). Using the mpc(1) command line tool for easy illustration I can quickly search for all files indexed by mpd within the last four weeks with:

mpc search "(modified-since \"$(date -d '4 weeks ago' +'%s')\")"

I can then further refine it to search only under one particular subdirectory by adding a (base "...") parameter to the mpd query:

mpc search "((base \"music/the-protomen\") AND (modified-since \"$(date -d '4 weeks ago' +'%s')\"))"

...and just for fun, I can also add a regular expression query that finds track 01 for all files under that subdirectory, leaning on (1) my convention of always numbering album tracks with leading two-digit track numbers and (2) the fact that =/= is =mpd='s path separator:

mpc search "((base \"music/the-protomen\") AND (modified-since \"$(date -d '2 week ago' +'%s')\") AND (file =~ \"/01\"))"

And that query returns a short list:

music/the-protomen/2005-the-protomen-act-1/01 I- Hope Rides Alone.flac music/the-protomen/2009-act-2-the-father-of-death/01 Intermission.flac music/the-protomen/2026-act-3-this-city-made-us/01 The Calm.flac music/the-protomen/2026-act-3-this-city-made-us/44-16/01 The Calm.flac

(NB. the 44-16... subdirectory there on the last line: because our household also has a Sonos mesh, and because Sonos devices only play back up to 48KHz/16b audio but this album has a 48KHz/24b sampling rate, there is a sox-downsampled copy of the album for playback convenience there.)

Since a symlink in the root of your music directory to =Music_TODO/= should be represented in =mpd='s music index as a path component, it should be possible to then search only for music files under that directory prefix, or to browse to that section interactively with mpdel.

andros

A very useful code! Thanks for sharing 🙂

tux0r

The symlink option won't let me filter by which original directory it is, it seems?

gnomon

I believe that there are a couple of ways to configure mpd to index multiple music directories, yes!

The simplest way I think would be dropping a symlink in your =~/Music/= to point to =~/Music_TODO/=: per paragraph twoof "Configuring the music directory#34; in the user manual (GitHub issue MusicPlayerDaemon/MPD#1252(2021-08-30) also includes a very long discussion thread about how mpd could potentially support more than one music library root.)

However there is another trick: if you're controlling your mpd process by communicating through a local socket rather than via a network port, mpd will allow the =add= command to queue any file from anywhere on the machine which the =mpd= process has permission to read This socket configuration option is mentionedin the "Listeners#34; section of the user manual.

That is, if if your /etc/mpd.conf you take this line..:

bind_to_address "any" # or whatever it is in your config file

...and change it to..:

bind_to_address "any" # or whatever it is in your config file
bind_to_address "/home/mpd/mpd.socket" # or whatever you want it to be

...then make sure your personal user account (e.g. tux0r?) has read/write permissions to that socket, and then add something like this to your list of mpdel profiles in your ~/.emacs.d/init.el..:

(use-package mpdel
    :custom
    ;; other custom settings in here, of course...
    (libmpdel-profiles
     '(("tux0r's workstation (local socket control)" "/home/mpd/mpd.socket" 6600 ipv4)
       ;; ^^ even though you're using a socket, libmpdel expects port/protocol values
       ;; your other mpdel control profiles here, if have any
       )))

...then you should gain the ability to add files from any directory you wish, including =~/Music_TODO/=.

(The symlink solution is probably simpler though!)

gnomon

Following all 50 people on org-social!

The org-social network has reached 50 users That's fun!

I took a quick peek through my #+FOLLOW: list to see which accounts I was not yet following:

json=${json-$(curl -sL 'https://relay.org-social.org/feeds')};
awk 'NR==FNR{subscribed[$0]++;next}; (NR!=FNR)&&(!($0 in subscribed))' \
    <(git -C ~/org-social/ cat-file -p 'HEAD':'social.org' | \
      awk 'match($0,/^#\+FOLLOW: /){print substr($0,RSTART+RLENGTH)}'
     ) \
    <(<<< $json jq -r '.data[]')

...which showed me that there were more than twice as many people on the network as I was following!

Hmm, but what about users who might no longer be in the public feed list, for whatever reason? One quick modification gave me a three-category list, separated by tabs:

json=${json-$(curl -sL 'https://relay.org-social.org/feeds')};
comm \
  <(git -C ~/org-social/ cat-file -p 'HEAD':'social.org' | \
    awk 'match($0,/^#\+FOLLOW: /){print substr($0,RSTART+RLENGTH)}' | \
    sort) \
  <(<<< $json jq -r '.data[]' | \
    sort)
  1. column 1 is entries in my local follow list who aren't in the feed list;

  2. column 2 is entries present in the feed list and absent from my following list;

  3. column 3 is entries in the feed list which I was already following

In the future there may be so many org-social users that I will want to follow some list shorter than "everyone", but at this point I am turning the taps wide open. :)

#blog
andros

If you are the typical person who does UI in Emacs, like me, you need to read this articleand check widget-extra

#emacs
org-social

We've reached 50 feeds on the main relay!

Thank you all for this small achievement, which marks a significant milestone for Org Social.

#org-social
andros

I am also making a list of exercises, but in Common Lisp. I am gland to see I am not alone in this madness 😂

alephoto85

The journey continues, slowly but surely. I should start doing some exercises on Project Euler again. Really fun.

My haskellings journey

Project Euler home page

#functional_programming #haskell #haskellings
andros

I have uploaded a new demo of Django LiveView: https://django-liveview-demo-snake.andros.dev/

Each person who connects is an individual snake and you can play in real time.

#python #django
tux0r

The longer I work with GNU Emacs as my primary e-mail client, the less I regret having let my MailMate license expire. msmtp, mbsync and mu4e are a superb combination.

FWIW, here#39;s my mu4e configuration. Maybe it can inspire you. :-)

#emacs #mu4e #email
tux0r

Changing my following list. Thank you for noticing us.

S

Looks like I won‘t be extending my thesolarprincess.site domain, my site‘s going to go back to thesolarprincess.github.io, including the social.org file. I have created the migration post, so I guess it‘s time to check if it works correctly!

SolarPrincess

Looks like I won‘t be extending my thesolarprincess.site domain, my site‘s going to go back to thesolarprincess.github.io, including the social.org file. I have created the migration post, so I guess it‘s time to check if it works correctly!

johnhamelink

I've made some more improvements to my renode package for Emacs. I now have a monitor integration that works with Renode's log server to produce a separate log stream to the REPL output.

I also improved the customization options, and documentation, although I still need to do more on that front.

I've also added logging functionality, complete with log levels, so that parsing information from the log server can be viewed to aid in debugging.

Next I want to work out tab-completion and history for the REPL, and then command insertion. This will allow me to automate the launching of renode-monitor when a logServer is sent to the REPL prompt. and to start GDB when the GDB server is launched.

Then after that, I'd like to build a major mode for the monitor and log buffers, to add some syntax highlighting and key bindings.

Exciting times, I'm really enjoying this project!

#emacs #embedded #renode #simulator #gdb
johnhamelink

I just made a new Emacs package! inf-renode provides a REPL for the Renode simulator in Emacs.

Renode lets you run, debug and test unmodified embedded software on your computer - from bare System-on-Chips, through complete devices to multi-node systems.

Renode provides a GDB server, so with this package you can run both simulator and debugger from the comfort of Emacs!

Check it out here: https://git.sr.ht/~johnhamelink/renode

#emacs #embedded #renode #simulator #gdb
johnhamelink

I spent some time today figuring out how to get João Távora's fork of RMSBolt - aptly called Beardbolt- working with a basic rust cargo project. I managed to get it working, but unfortunately it's still quite a manual process for now.

After I've caught up with this (last) year's Advent of Code, I think I'll try to figure out how to automate the process and try to contribute a method for using Beardbolt working nicely for existing cargo projects.

In the meantime, I've submitted an issuewith what I have so far.

#rust #emacs #rmsbolt #beardbolt #compiler-explorer
tux0r

Thank you! I feel appreciated already. :)

tux0r

The one thing that mpd can't (seem to) do is keep two separate music folders. My actual real-life (file-based, by vinyl player is a different subject) music usage is that I have a version of cmus with my Music folder as my main library and my Music_TODO folder as the library of things I want to listen to, so I basically cmus into Music_TODO and choose an album without adding it to my Music folder / library just yet.

If I found a way to do that in mpd, I'd probably switch... is there one?

tux0r

I wish I could wrap my head around Haskell. I speak quite a wide array of programming languages, but I am officially too dumb to understand functional programming languages. Even Forth is too hard for my brain. I don't even know why.

johnhamelink

I've used them before when doing analysis on data - I wanted to be able to quickly render out geo-coordinates using osm.el

johnhamelink

Hi! My name is John, I'm a self-taught programmer and Emacs nerd. I mainly write about nerdy things and politics. Views are my own.

andros

I have to tell you that I'm falling in love with Common Lisp and SBCL. Awesome!

#common-lisp
alephoto85

I think it's too early to say, but I'm having a lot of fun. I'm playing around with Haskellings (inspired by Rustlings) and reading things here and there without any particular obligation. I'm not a professional programmer, I just study for my own pleasure in my spare time. I've only been interested in functional programming for a relatively short time and I'm trying to understand it, but I can say that if I had discovered it as a teenager (25 years ago), I would probably be a more experienced programmer now, because it still seems (for now) to be the most suitable paradigm for me. However, at the time, there wasn't much material available in Italy, and my English was certainly not at the level it is today, so I had to settle for what I could find and understand. I studied Java in more depth, but I never liked it, for example 😆.

I neglected Haskell for years, but now perhaps the time is right to play around with it and have some fun. Just to give a silly example, one thing I really like is the syntax of guards (very similar syntactically to the pipe operator in Elixir, although the usage is different; in Elixir, guards are done in a different way).

Anyway, I'll be able to tell you more in a while, but in my opinion, it's a language that's at least worth checking out (like the LISP/SCHEME family and also the ML family).

P.S. I know you're already an expert on the subject, of course, this is just a general comment.

Some useful links:

Haskellings Rustlings Haskell Control Structures Elixir Doc - Patterns and Guards Elixir pipe operator (|> It can also be used on multiple lines, greatly increasing the readability of the code. I am including it here because the examples in the link are all on one line.)

"Elixir rocks"
   |> String.upcase() 
   |> String.split()

Learn You a Haskell for Great Good!I'll also leave this link, just in case. 😈😈😈

#haskell #functional_programming
gnomon

geo:... links in org-mode documents for storing locations

Does anyone else ever use geo: URIs (cf. RFC5870 circa 2010-06)? I use them in my org-mode docs to link directly to locations that I can open with M-x browse-url-at-point RET on my phone, either in OSMor in Google Maps. They appeal to me because the link is a direct representation of location, I don't need to round-trip through an online address geocoding system.

(In principle it should not be strictly necessary to depend on a network service for geocoding address lookups to map locations, cf. Nominatim lite for forwardand reverse geocodingbased on Open Streetmap data shoved into a sqlite3 backing store; but that still requires a couple of hours of processing and ~30GB of storage to support lookups just for Germany, and the requirements for purely local Canadian address lookups are similar. It's not really a reasonable solution yet.)

#blog
org-social

VERY IMPORTANT UPDATE

Version 2.10 of org-social.el is released!

  • Org Social v1.6 Specification Support:

    • Post IDs can now be specified in the header: ** 2025-01-05T10:00:00+0100

    • New global metadata fields:

      • #+LOCATION: - User location (city, country)

      • #+BIRTHDAY: - User birthday in YYYY-MM-DD format

      • #+LANGUAGE: - Space-separated language codes (ISO 639-1) the user speaks

      • #+PINNED: - Post ID to pin to the top of the profile

    • Profile UI now displays location (📍), birthday (🎂), and languages (🗣️)

    • Pinned posts are highlighted with 📌 in profile view

  • ID Migration Tool: New org-social-migrate-ids-to-header command (M-x)

Enjoy it!

#org-social-el
gnomon

First day after the holiday break when most folks should be back at it. Good morning!

gnomon

emacs packages that I use daily

Some emacs packages that I use daily:

  • straight

    • this package manager has a reputation for being over-engineered and it is well earned. I adopted straight when I was seeking an easier way to keep my local emacs packages nicely stashed in git repos including, since this made it much easier for me to explore and to poke around in their internals. At the time package.el lacked the vc: integration it now has (or at least I failed to discover it at the time) so I worked through straight's learning curve, and ended up configuring package.el to use straight. I continue to use straight because now that I understand it, I really appreciate what it does and how it works.

  • mu4e

    • instant searching of twenty-five years of email history with no reliance on the reachability of a remote IMAP server feels like a superpower. I spent a lot of time in mutt and briefly tried notmuch, but mu4e really fits my brain well. I also appreciate how easily I can link from org-mode to a specific email message or to the result of an mu4e search.

  • magit

    • magit is an invaluable tool for working with git from within emacs. I use it pretty much constantly, every day, not just at my desktop but also on my phone within termux

  • mastodon

    • not the only Mastodon/fediverse client for emacs, but my favourite!

  • mytoots

    • a simple little package for quickly searching a locally stored JSON export of your mastodon post history. Similar to mu4e, this lets me lean on an outboard brain.

  • elfeed

    • a superb RSS reader and my primary source for news, which lets me enforce a pretty strict personal discipline about never sourcing information about current affairs from social media.

  • elfeed-tube

    • an extension for elfeed which lets me subscribe to YouTube RSS URLs and then read their video descriptions and their transcripts, with chapter stops! It even goes so far as to pull in data from SponsorBlock to mark out the sections of the transcripts which have been identified as being ad reads so I can quickly judge whether to pay attention or read ahead. Treating YouTube as a video dissemination service and avoiding its recommendation funnels altogether makes it much more tolerable.

  • org

    • I would be lot without it.

  • orgtbl-aggregate

    • extends the org-mode spreadsheet by adding pivot tables! !!!

  • org-alert

    • along with emacs and org-mode running within termux on my phone, org-alert lets my tasks with assigned SCHEDULED: and DEADLINE: timings raise notifications on my phone and my smartwatch. I am judicious about using these to avoid alert overload, but the feature is phenomenal. (I have a long-term todo to complement time-based alerts with location-based ones based on geoand termux's location query back end, but I haven't written that yet. Hopefully this year!)

I would be remiss if I didn't mention cks#39;s 2023 blog post on the same topic(and his emacs writings in general, but alas he is not yet on org-social. Maybe someday!

johnhamelink

Here's a subset of my daily-use packages that are perhaps less common:

  • persistent-scratch - Store & backup the scratch buffer

  • cognitive-complexity - Using treesitter, show cognitive complexity of code

  • evil-iedit-state - Adds a special evil state to modify all matches (kinda like multiple cursors)

  • comment-dwim-2 - A better comment-dwim that alternates between commenting code and appending a comment to the end of line

  • fontaine - simple font presets (useful for showing Emacs on different form-factors)

  • macrostep - expanding Emacs lisp macros

  • dash-docs & consult-dash - integrate dash.app/Zeal documentation into Emacs - I use this constantly

  • code-review (specifically this fork - Github Code Review integration

org-social

Version 1.6 is released!

  • Added #+LOCATION: global metadata field for user location (city, country).

  • Added #+BIRTHDAY: global metadata field for user birthday in YYYY-MM-DD format.

  • Added #+LANGUAGE: global metadata field for space-separated language codes (ISO 639-1) that the user speaks.

  • Added #+PINNED: global metadata field to pin a post to the top of the profile using its ID (timestamp).

  • Post ID can now be specified in the header (after **) in addition to the :ID: property in the properties drawer. Both formats are valid. If both are present, the header value takes priority.

There are no plans to release further versions; this can be considered the final or stable version. A process to adapt the existing software will now begin. Thank you to everyone who contributed!

andros

I'm going to share some Emacs packages that I use daily, in case anyone else wants to follow suit and we can discover new tools together. The rule is that they should be for almost daily use.

  • org-social (Of course)

  • org-mode

  • vterm

  • denote

  • TRAMP

  • eglot

  • dired

  • mu4e

  • elfeed

  • mastodon

  • telega

  • lobsters

  • hackernews (with my custom UI)

#emacs
andros

That's incredible! Great job. What's it like programming with Haskell?

#haskell
alephoto85

I never noticed it before, but does anyone really think this interactive tutorial on the home page works?

Well, it worked for me 🤣🤣🤣

...and so begins the first day of the year:

curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh

https://www.haskell.org/

Haskell Website Screenshot

#haskell #functional_programming #functionalprogramming #happy2026

johnhamelink

Ooh, looks cool!

gnomon

johnhamelinkI'm delighted that was useful to you!! It's such an odd way to manage music playback that almost nobody even knows what I'm talking about before I even get to the specifics about what I'm trying to improve! 😅

johnhamelink

I love this! I'm using rmpccurrently, which is a fantastic MPD client, but searching for tracks can be tricky, and searching by lyric is something I've wanted for some time. Thank you for sharing :)

gnomon

music playback, organization, and annotation: mpd, mpdel, versuri (with a tangent by way of elfeed & elfeed-curate)

When I am listening to music at my desktop machine, as I often do when working, I almost always use mpdfor playback. I appreciate its low resource consumption, how quickly it can update (fully or partially) the music library I keep on the household fileserver, and the convenience of being able to control it easily from several clients, including one on my phone.

Quite often when working I will use mpdelfor playback control. It is delightful to be able to quickly jump to an album more fitting to my mood without interrupting my task at hand. Sometimes I have to search a little bit to find the album or track that crossed my mind, and mpd via mpdel usually makes this swift and easy. Other times though the thing that will pop into mind is a little snatch of lyrics or a rhyme, and mpd is less useful then for sifting through my music collection to match up to my muddy memory.

But that's where versuricomes in handy! This handy little emacs package stores a sqlite3 database of song titles, artists, and lyrics at ~/.cache/versuri.db (or wherever you put it) and lets you narrow down song titles by which ones include the lyrics you type into it. As long as I take the time to populate that lyrics database with entries when I buy a new album, it works perfectly.

I also have a couple of little conveniences which let me hop from a versuri buffer to an mpdel search for the given song, or to jump to a versuri buffer with the lyrics of the song currently playing back in mpdel:

; mpdel-mode customizations

(defun mpdel-versuri-display-current-song ()
  "Use versuri to unconditionally look up the song currently playing
via mpdel-mode, assuming there is one, and assuming it has the
song name and album artist metadata fields populated with correct
values.

Do not check these assumptions, do not check whether mpdel-mode is
playing anything, do not even check whether libmpdel-mode has been
loaded and has its functions available for our use.  Yolo!"
  (interactive)
  (let ((song   (libmpdel-entity-name libmpdel--current-song))
        (artist (libmpdel-artist-name libmpdel--current-song)))
    (versuri-display artist song)))

(let ((map mpdel-core-map))
  (define-key map (kbd "y") #'mpdel-versuri-display-current-song))
;; n.b. per mpdel-prefix-key, default configured to be C-x Z,
;; the actual key binding in mpdel-core-map will therefore be
;; C-x Z y - there is some magic hidden in mpdel.el and mpdel-core.el
;;
;; n.b. also that per versuri's architecture, versuri-display
;; starts by querying the local database, and if that returns
;; no results it launches straight into firing async queries
;; at a selection of lyrics websites that it knows about.
;; Since the queries are async there is often a delay after a
;; search is initiated, and there is no easy way to tell if
;; that's because emacs is running slow or if it's because an
;; external site is taking its time to reply.
;;
;; FIXME: maybe add some messaging via a hook to make network
;; queries less invisibly magical?
;; FIXME: add some checks that mpdel/libmpdel are available
;; before we start calling their private internal functions
;; FIXME: use libmpdel's external API instead of its private
;; internal pieces for querying the song and artist of the
;; currently playing song
;; FIXME: add some logic detect when the current buffer is an
;; mpdel playlist to make it easier to query lyrics for songs
;; other than whatever is currently playing
;; FIXME: add a bit of handling for the case when there is no
;; currently playing song
;; FIXME: decide between hoisting this into an emacs module
;; or offering it as a pull request to the mpdel project

(defun mpdel-versuri-search-for-displayed-lyrics ()
  "Use mpdel to search for the artist and song currently displayed
via versuri-mode."
  (interactive)
  (mpdel-core-search-by-filter
   (format
    "((artist == %S) AND (title contains %S))"
    versuri--artist
    versuri--song)))

(let ((map versuri-mode-map))
  (define-key map (kbd "s") #'mpdel-versuri-search-for-displayed-lyrics))

So far so good. I have been using this setup for a couple of years now and I love it a lot.

But what I find myself wanting and missing now is the ability to quickly add an personal annotation to a song or an album, as easily as I can add a personal annotation to a story in my RSS feedwith elfeed-curate and to have org-mode links that jump to an mpdel search, album, track, or a specific timecode within a long track. Surely that can't be too hard, can it?

(I have it mostly working now! Thank goodness for that quiet time between the holidays and the return to work.)

#blog
andros

My goal this year is twofold. On the one hand, to learn Common Lisp properly, and on the other, to solve the famous "L-99: Ninety-Nine Lisp Problems#34;.

And you?

#common-lisp
andros

neilI'm so glad to see you here. I hope you get to know many people in the community and share your achievements with us.

Baldo

Solo tú y yo, por siempre

#cats #org-social-cats
Terrón

#cats #org-social-cats
neil

In my post for the December Emacs Carnival I decided I wanted to be more active in the Emacs community. Joining Org Social is one part of that.

gnomon

Wherein the first post on a new network is always about that network

OK, I think I'm getting the hang of this project. I have my feed subscriptions in place in my local file, I have a pull requestopen to androsto add my feed to the registration list, I have a GPG key set up specifically for my org-social commits, I've twiddled a bare basic sourcehut build recipe to publish to the public-facing site, and I've enabled sourcehut billing so that my user account can trigger publication builds as soon as I git push.

At first my plan was to make my public facing org-social URL the raw git blob in the sourcehut repo, but when I checked the HTTP headers I discovered that files accessed in that way have a cache-control header that explicitly defeats all caching. That's unfriendly to sourcehut and likely unfriendly to everyone fetching feed updates. Publishing my social.org file to Sourcehut Pages at least lets ETag: and Last-Modified: headers be added, and adds the possibility of Sourcehut using a content distribution network to lessen their own load for serving up my file.

I do wish that there was some way of adding GPG signatures to the posts themselves, à la ActivityPub, but I'll settle for linking back to the public git repo containing the full commit history of this file with the commits themselves are signed.

Next up, I think I'll have to do some hook twiddling to add invocations of flyspell-mode and visual-line-mode to the org-social compose and feed views, and then I think I'll self-impose a moratorium on config twiddling in favour of just using the service for a little while to get a feel for it.

This feels small and odd and fun!

gnomon

Hello, Org Social!

neil

My first post on Org Social!

andros

Happy New Year Orgsociverse! 🤩 🥳

andros

In my case, I am working on the classic 99 Lisp Problemaswith Common Lisp.

#common-lisp #lisp
johnhamelink

Thanks for the mention! Very kind of you :)

johnhamelink

Yesterday I went live on Twitch while I worked through advent of code puzzles in Rust, I had a great time. I'm planning on streaming again today for a few hours. If you enjoy hanging out and solving puzzles then come say hi :) https://www.twitch.tv/johnhamelink

#rust #live-stream #advent-of-code
org-social

We are excited to announce a new "Ecosystem Developers#34; section in the official Org Social documentation! 🎉

This section recognizes the incredible work of developers who have contributed clients, tools, libraries, and integrations to the Org Social ecosystem.

Thank you adsan cherry johnhamelink tux0r TheSolarPrincess

andros

org-social.el is now updated to the latest modification of the Org Social specification! 🥳

When you create a new post, it will ask if you want to add a mention. It will also filter posts with mentions where you are not included.

#org-social-el
alephoto85

eh eh eh, I knew you'd like it and I couldn't "return empty-handed" after all you do to maintain and improve this social network ❤️ I'm really happy and I hope it will be useful. Prof. Brandon Wu seems really good to me and I like his approach. After failing the next two exams 😂, I'm going to buckle down and study hard on ML family.

Happy New Year you too 🤗

#functional_programming #ocaml #standardml
org-social

Org Social 1.5 is here!

New feature: mention-only posts with :VISIBILITY: mention. Now you can create posts visible only to mentioned users. Perfect for focused discussions without cluttering everyone's timeline.

Remember!: this is a UI preference, not encryption. Files remain public by design.

Check the docs: https://github.com/tanrax/org-social

andros

I'm sharing my last two articles with you:

#django #python
andros

alephoto85This is pure gold! Thanks so much for sharing these resources, they look really interesting.

I'm a huge fan of functional programming languages, so I'll definitely check them out when I have some free time. Professor Brandon Wu's material looks really good, and that "type-oriented, safety-first" approach is exactly what makes functional programming so valuable.

I'll also keep that OCaml book in mind, it's always good to have quality references.

And don't worry, we're all a bit "testina di cazzo" when more interesting things come up than what we should be studying hahaha.

Happy holidays to you too! 🎄😋

alephoto85

...and finally I managed to update! This period has been really intense, so I've been away from social media in general. But yesterday I had some free time and, in addition to updating org-social.el, I started looking for information on StandardML (I have a chat friend who often works with OCaml and we were talking about it recently). So I came across this resource by young professor Brandon Wu on functional programming, and I'm sharing it with you. I haven't had a chance to look at it all yet, just the first two units, but it looks really interesting. I hope it can be useful to someone.

"I had the pleasure of serving as the summer instructor for 15-150, the introduction functional programming class for computer science students at Carnegie Mellon, in the Summer 2023 semester.

This course typically serves as the second or third course in the traditional computer science undergraduate sequence, a privilege which not many other universities get to enjoy, as functional programming is often considered a niche topic.

Despite this, I (and CMU) believe this to be of the utmost importance. A disciplined, type-oriented, safety-first view of programming can be of utmost benefit to burgeoning computer science scholars, and I have often heard feedback from students that it is has a transformative view on their perspective of computer science in general.

To that end, I have made my lecture materials from my iteration of the course available for free on the Internet. Please feel free to use this knowledge in any way that you see fit, and I hope that it aids you in your future endeavors."

https://brandonspark.github.io/150/

and also this free book for OCaml seems interesting...

https://cs3110.github.io/textbook/cover.html

I should be studying more for university, but I'm extremely distracted, or rather, as we say in Italy, “una testina di cazzo” (a dickhead).

😂😂😂

Ah, happy holidays to everyone!!!

#standardML #dev #functional_programming #ocaml
andros

SolarPrincessThank you so much for sharing! I've been checking out the source code and the website, it looks fantastic! 😋

S

Merry Christmas, those who celebrate! Did you know that even in though it‘s summer in Argentina now, Santa Claus still wears a coat?

I‘ve still got the New Year to celebrate with my secular Russian relatives, and Orthodox Christmas (Jan 7) to celebrate with my Christian Russian relatives. Merry days ahead.

SolarPrincess

Merry Christmas, those who celebrate! Did you know that even in though it‘s summer in Argentina now, Santa Claus still wears a coat?

I‘ve still got the New Year to celebrate with my secular Russian relatives, and Orthodox Christmas (Jan 7) to celebrate with my Christian Russian relatives. Merry days ahead.

S

I have put the source codefor my website on Github.

andros you wanted to see it, so I‘m pinging you

#blogging
SolarPrincess

I have put the source codefor my website on Github.

andros you wanted to see it, so I‘m pinging you

#blogging
andros

Merry christmas!

andros

Publico un nuevo curso: Scrum.

Un framework utilizado para gestionar proyectos complejos. Repaso los conceptos claves, roles, eventos, artefactos y métricas. Con ejemplos prácticos, gráficos y actividades.

¿Trabajáis con Scrum pero nunca habéis visto la teoría? Más fácil no lo podéis tener.

100% gratis 👉 https://andros.dev/cursos/scrum/

#scrum #agile #jira #clickup
D

Created an issue on org-social.el:

https://github.com/tanrax/org-social.el/issues/32

Demonstrates errors I'm seeing when running org-social-timeline on Windows.

D

Created an issue on org-social.el:

https://github.com/tanrax/org-social.el/issues/32

Demonstrates errors I'm seeing when running org-social-timeline on Windows.

D

reply test 3

D

testing 2

D

testing

andros

QrvhhWelcome back to Emacs! I just can't imagine life without this Elisp interpreter 😂

andros

tux0rTake your time 😀

andros

I've uploaded a demo of the new version of Django LiveView:

https://django-liveview-demo.andros.dev/

I've also updated the Quick Start:

https://django-liveview.andros.dev/quick-start/

It's now super easy!

I even use it on my own personal website for any dynamic elements.

I hope it helps you with your future projects!

#python #django #liveview
andros

In the first quarter, Org Social already surpassed twtxt in activity.

  • Org Social: 609 posts (50.2%)

  • twtxt: 603 posts (49.8%)

The difference is only 6 posts; it's practically a technical tie. But even so, it's a good sign.

I'll try to find time to write a post so others can reproduce the data. The methodology wasn't complicated: reading the feeds registered at relay.org-social.org/feeds/ and reading the HTML feed from twtxt.net. There may be more active feeds, but I'm not aware of them.

#org-social #twtxt
Qrvhh

After a few months off-emacs, I've finally returned, and had to fire up org-social, see how things are going here - and I'm glad to see it's still at least as, if not more, active as it used to be.

I've just started setting up things in emacs as I like, although I'm still far from completion, but I find it relaxing in a way to replicate an old setup from scratch, instead of copying my ready config.

I'm currently on Fedora 43 on my ThinkPad X220, because Ubuntu gave me some trouble running WeChat - oh right, I just realized WeChat is now natively available on Linux, which is great! On Fedora and openSuse it works out of the box, and while I generally favor SUSE over Red Hat, this laptop's implementation of UEFI makes openSuse and SLED boot into grub rescue instead of the OS. Interesting that it only happens there, and not on other distros.

Anyways, let's see how long I manage to stick with Fedora, and I'm looking forward to use emacs and org-social again!

#return #emacs #fedora #suse
tux0r

I am sorry that I haven't found the time to work on "org social web" yet. Too many things going on right now. :-/

andros

tux0rYes, it is awesome! The most activity is where you can't see it. According to the relay, many people have a reading attitude. Furthermore, tools continue to be developed.

#org-social
andros

eludomIt's a recurring, logical, and very obvious suggestion. You've raised this same point with me countless times. Why leave an empty "**" at the beginning that can be collapsed and gives no clue as to its content? It's the natural place for a title.

My reasons are as follows:

  • The context of Org Social posts is similar to Mastodon or X/Twitter. It wouldn't fit in for posts to have titles.

  • It improves readability. There's no need to distinguish between titles and content. Within a post, you can have any hierarchy of titles you want.

  • From a technical standpoint, it's simpler to implement and maintain. Fewer special cases.

  • Who should occupy that space, the ID or the title? No sibling rivalry. The technical part is a property, the ID, and the content is part of the post.

However, I understand that it's not a perfect solution due to a limitation/shortcoming/bug in Org Mode that I mentioned not long ago.

#org-social
tux0r

So I've been off org-social for three weeks and there are still new users coming in, I see. Awesome!

eludom

Titles on org-social posts

I'd still like to see "titles" on org social posts and it seems to me that after the "^** " would be the place for it. I'm taking to adding third level "titles" like on this post so that when I collapse and expand the whole tree structure I can quickly see where the various posts/topics are.

Just my $0.02

Thanks for your work on Org Social.

andros

Notxory lo que no es estético 😋 , ahora es un producto más grande y maduro. Me alegro verte por aquí!

Notxor

Se estas en ĉi tiu reto iu ajn esperantiston, ĉi tiu mesaĝo estas por ludi esperante. La ludo okazos la venontan dimanĉon 21 je la kvara vespere (UTC). La ludo estos «kaptu la flagon», oni povas trovi kiel konekti en mia blogo:

https://notxor.nueva-actitud.org/2025/11/27/ludu-cxe-la-esperanta-servilo-de-luanti.html

Por babili inter la ludantoj, ni uzos «mumblean» servilon. Oni povas trovi kiel konekti ankaŭ en mia blogo:

https://notxor.nueva-actitud.org/2025/11/30/interparoli-vocxe-en-nia-servilo-de-luanti.html

Se vi trovos ian ajn problemon, bonvolu, kontaktu min skribante al retmesaĝa loko: «esperanto ĉe nueva-actitud.org»

#esperanto #ludo
Notxor

Llevaba tiempo sin tiempo (valga la rebuznancia) para redes sociales. He visto que ha avanzado mucho esto, al menos estéticamente, desde la última vez que interactué con ello. A ver si poco a poco le voy dando uso.

#social
andros

How Hard It Must Be to Maintain Org Mode. I submitted a very trivial suggestion: giving the option to have an empty heading without requiring a space. Currently, if you want a heading without content, it must be ** , and with my patch it could simply be **.

Why would anyone want an empty heading? Because in some cases, headings are used only to group elements and don't need a name. A clear example is Org Social.

Furthermore, the Org Mode documentation mentions that headings can be empty, but in practice this isn't true since you need at least a space. This is problematic because many users, myself included, have Emacs configurations that remove trailing whitespace when saving a file.

However, after exchanging a few emails with the maintainer, I discovered that the project is very complex to modify. Not because of the code itself, but because of the enormous number of users and tools that depend on it.

Org Mode is a very old project with many active or completed developments, with many branches and edge cases. Some of them use certain ambiguities in the syntax to build their own logic. Every change, no matter how minimal, can trigger a cascade of incompatibilities with tools that users already consider standard within the Org ecosystem.

Whether my patch ends up being accepted or not, it has become clear to me that maintaining Org Mode is a titanic task. For this reason, we must respect and thank the work of its maintainers, who must balance innovation with stability for a vast community of users. Their vision, even when it may seem too rigid to us, is grounded in a depth of knowledge that we will never fully understand.

#org-mode
andros

johnhamelinkVery, very interesting...

johnhamelink

process-composeis a really cool tool, but combined with #Nix and flake-parts it's even more useful! I'm replacing a legacy API using the Strangler-Figpattern, which means that the new API will effectively depend on the old one. By using process-compose-flake and services-flake I can provide a batteries-included development environment, and then export it as a dependency for another service to incorporate. The result is a simple, clean & configurable development environment where dependencies are fully abstracted! Love it 🎉

johnhamelink

Favourite talk? It has to be on schemacs

eludom

My Emacs Config Acknowlegements

Across the last 40+ years I've run into a lot of interesting people and code. I've "stolen" (the sincerest form of flattery) liberally. Here are acknowledgments of some of those people. It takes a village.

Recent/Current Config Borrowings

  • Sacha Chua :: There are heavy borrowings from Sacha Chua#39;s config. Thanks, Sacha.

  • Xah Lee :: I use Xah Lee's Xah Fly Keys That and the [[https://kinesis-ergo.com/shop/advantage2/][Knesis Advantage 2 Keyboard]] saved me from nascent carpal tunnel syndrome. Thanks, Xah.

    • To say that I'm using "Emacs" anymore is a bit of a stretch if by "Emacs" you mean any of the historic set of key-bindings by rms,Guy Steele, etc. Xah Fly Keys is a completely new set of bindings developed ground up. It's design involved statistical analysis of editor functions, placing the most common actions on the strongest digits on the hand. It is probably more accurate to say I am using AN editor implemented in the emacs lisp development environment.

  • Protesilaos Stavrou :: Recent borrowings from Protesilaos Stavrou https://protesilaos.com/codelog/2024-11-28-basic-emacs-configuration/#h:1e4fde73-a2a2-4dc5-82ad-02cf3884ece6. I think denote and gtpel are going to completely change my workflow.

  • gptel :: https://github.com/karthinkand 100+ friends have created gptel. That and the Ads that it front ends (and denote) are creating completely new workflows for me (after 45 years in emacs...)

Historic Config Borrowings

  • Karl Kleinpaste :: In the mid to late 80s as GNU emacs was coming out I borrowed a lot form Karl's configs. He drew me into the GNUs world for a while (back when "News readers were real news readers" and email just looked like a funny version of news.

  • Michael Lamoreaux :: Michael was at UUNET (and later MITRE) with me providing enough local lisp expertise that I crawled back inside GNUs again for a while.

  • Steve Wilhite:: Wilhite (he of GIF fame)hired me out of college. He developed compilers and programming tools. He had a thing for editors including Emacs (and Brief). Thanks to him (and my brother who had co-oped for him) FINE (Fine Is Not Emacs)was waiting for me when I started. We later collaborated to create what became MicroEmacs/mg. I posted it to the USENET group net.sources. Carsten Dominik (below) used it for a while and rumor has it Linus Torvalds does to this day.

  • David Conroy :: David Conroy was the original author of MicroEmacs. I found it on the floppy disks that came with the Marc Williams C compiler for the early IBM PC.

Sine Non Qua - Those "without whom there is nothing"

  • rms :: "Let there be Emacs and free software"

  • Guy Steele :: "Let there be Emacs, and CommonLisp, Java and C standards"

  • Carsten Dominik :: Org Mode Org gave new life to emacs after a long period of dormancy. To say that org is "[My] life in plain text" today would be an understatement.

  • Eric Shulte:: Org babel. Brought literate program to emacs/org.

  • Donald Knuth :: Literate Programming (tangle/web/weave). TeX. The Art of Computer Programming.

#emacs #org-social #history
eludom

People of Emacs

Who's lurking in my emacs config? This is my second entry for [[https://curious.port111.com/2025/11/01/emacs-carnival-december-the-people.html][Emacs Carnival December 2025]]. This time I'm just going to call out people who are responsible for some of detritus and grand ideas in my confg. This Time, I'm also going use #orgsocial as the blogging platform.

andros

I remind you all that you can get an HTML preview of our posts using the client, Press [ 🔗 ], or manually by following the instructions at https://preview.org-social.org/ .

Enjoy it! eludom

#org-social-el