Topic - Blogroll

Based on Reading more blogs; Emacs Lisp: Listing blogs based on an OPML file:

Here is my people.opml at the moment (slightly redacted, as I read my husband's blog as well). This list has some non-old-school bloggers as well and some sketchnoters, but that's fine. It's a very tiny slice of the awesomeness of the Internet out there, definitely not exhaustive, just a start. I've been adding more by trawling through indieblog.page and the occasional interesting post on news.ycombinator.com.

It makes sense to make an HTML version to make it easier for people to explore, like those old-fashioned blog rolls. Ooh, maybe some kind of table like indieblog.page, listing a recent item from each blog. (I am totally not surprised about my tendency to self-nerd-snipe with some kind of Emacs thing.) This uses my-opml-table and my-rss-get-entries, which I have just added to my Emacs configuration. It is pretty static, though, since it only updates whenever I remember to evaluate the block. But maybe it can give you a sense of what kinds of things people write about.

my-opml-table
(defun my-opml-table (xml)
  (sort
   (mapcar
    (lambda (o)
      (let ((latest (car (condition-case nil (my-rss-get-entries (dom-attr o 'xmlUrl))
                           (error nil)))))
        (list
         (if latest
             (format-time-string "%Y-%m-%d" (plist-get latest :date))
           "")
         (org-link-make-string
          (or (dom-attr o 'htmlUrl)
              (dom-attr o 'xmlUrl))
          (replace-regexp-in-string " *|" "" (dom-attr o 'text)))
         (if latest
             (org-link-make-string
              (plist-get latest :url)
              (or (plist-get latest :title) "(untitled)"))
           ""))))
    (dom-search
     xml
     (lambda (o)
       (and
        (eq (dom-tag o) 'outline)
        (dom-attr o 'xmlUrl)
        (dom-attr o 'text)))))
   :key #'car
   :reverse t))

my-rss-get-entries: Return a list of the form ((:title … :url … :date …) …).
(defun my-rss-get-entries (url)
  "Return a list of the form ((:title ... :url ... :date ...) ...)."
  (with-current-buffer (url-retrieve-synchronously url)
    (set-buffer-multibyte t)
    (goto-char (point-min))
    (when (re-search-forward "<\\?xml\\|<rss" nil t)
      (goto-char (match-beginning 0))
      (sort
       (let* ((feed (xml-parse-region (point) (point-max)))
              (is-rss (> (length (xml-get-children (car feed) 'entry)) 0)))
         (if is-rss
             (mapcar
              (lambda (entry)
                (list
                 :url
                 (or
                  (xml-get-attribute
                   (car
                    (or
                     (seq-filter (lambda (x) (string= (xml-get-attribute x 'rel) "alternate"))
                                 (xml-get-children entry 'link))
                     (xml-get-children entry 'link)))
                   'href)
                  (dom-text (dom-by-tag entry 'guid)))
                 :title
                 (elt (car (xml-get-children entry 'title)) 2)
                 :date
                 (date-to-time (elt (car (xml-get-children entry 'updated)) 2))))
              (xml-get-children (car feed) 'entry))
           (mapcar (lambda (entry)
                     (list
                      :url
                      (or (caddr (car (xml-get-children entry 'link)))
                          (dom-text (dom-by-tag entry 'guid)))
                      :title
                      (caddr (car (xml-get-children entry 'title)))
                      :date
                      (date-to-time (elt (car (xml-get-children entry 'pubDate)) 2))))
                   (xml-get-children (car (xml-get-children (car feed) 'channel)) 'item))))
       :key (lambda (o) (plist-get o :date))
       :lessp #'time-less-p
       :reverse t))))

(my-opml-table (xml-parse-file "~/Downloads/people.opml"))
2025-10-22 Annie Mueller Make rules, break rules
2025-10-22 Ava con impressions and more [photo dump]​
2025-10-22 Baty.blog – A blog about everything by Jack Baty マリウス . A Word on Omarchy
2025-10-22 John Johnston The #DS106 Dance goes on #4Life
2025-10-22 Kris Howard Energy efficiency
2025-10-22 Laura Vanderkam How to love your inbox
2025-10-22 Mandy Brown An imaginative activity
2025-10-22 Manuel Moreale Look, another AI browser
2025-10-22 Matt's Blog Blog Stats
2025-10-22 Matt Maldre Phones made vertical easy. Here’s why I’m sticking with horizontal.
2025-10-22 Mike Caulfield AI Mode Is Not Good At Math
2025-10-22 Robert Birming (untitled)
2025-10-22 Ruben Schade 96% keyboard layouts
2025-10-22 Sacha Chua - On This Day On this day at sachachua.com: October 22 (17 entries)
2025-10-22 Abhijit's Sketchnotes When “Fake” Becomes More Real Than Reality
2025-10-21 Amit Gawande 10 pointless facts about me
2025-10-21 Anil Dash ChatGPT's Atlas: The Browser That's Anti-Web
2025-10-21 Doc Searls This is a Test. Or a Taste. Or both.
2025-10-21 Jeremy Keith Jake Archibald is speaking at Web Day Out
2025-10-21 ldstephens Why I Finally Shopped My Auto Insurance (And You Should Too)
2025-10-21 Lou Plummer Organizational Therapy
2025-10-21 Maria Popova A Chosen Path of Light: Alain de Botton on Successful Friendships
2025-10-21 oylenshpeegul Hester
2025-10-21 David’s Substack Old Comics: "Sidewalks"
2025-10-20 Baldur Bjarnason The inevitability of anger
2025-10-20 Celine Nguyen how to speak to a computer
2025-10-20 Chris The Greatness of Text Adventures
2025-10-20 fLaMEd Cyberpunk: Edgerunners (2022)
2025-10-20 Jeff Kaufman Attending Your First Contra Dance in a Fragrance-Compliant Manner
2025-10-20 Matthew Haughey BMO stadium in LA added AI to everything and what they got was a worse experience for everyone
2025-10-20 Om Malik Fall Classic, 5 GoodReads & Happy Diwali
2025-10-20 Pete Prodoehl GPX Files from an iPhone/Apple Watch
2025-10-20 Wouter Groeneveld The Crazy Shotguns In Boomer Shooters
2025-10-20 Zach Leatherman Wrapper Elements around Code Blocks in Markdown
2025-10-19 Andrea Badgley Artists are heroes
2025-10-19 Ellane W PTPL 178 · I Hope You Disagree With Your Mentors, At Least a Little
2025-10-19 Jack Baty Canon Sure Shot AF-7
2025-10-19 Jeffrey Zeldman My Glamorous Life: Entertaining Uncle George
2025-10-19 Jim Nielsen Write Code That Runs in the Browser, or Write Code the Browser Runs
2025-10-19 Illustrated Life Breath of the Wild
2025-10-19 LetSketchin’s Newsletter Success and Failure
2025-10-19 The Sketchy Anthropologist Sketchnoting Zora Neale Hurston: The Early Creative Ethnographer
2025-10-18 genehack.blog Weeknote #56 (20251012-20251018)
2025-10-18 Kev Quirk Career Snakes & Ladders
2025-10-18 Protesilaos Stavrou The two sides of commitment
2025-10-18 My best thing today in sketchnotes 2025-10
2025-10-17 Wil Wheaton please, practice kindness.
2025-10-17 Zsofi Lang Visual storytelling with main character energy
2025-10-16 Mike Monteiro How to make coffee
2025-10-16 Tim Bray Recent Music
2025-10-16 Ton Zijlstra NerdVote! Stem op meer kennis van digitale zaken in de Tweede Kamer
2025-10-16 Vale.Rocks Posts Nootropical Notes
2025-10-15 Matt Webb I love the smell of autopoiesis in the morning
2025-10-14 Anne-Laure Le Cunff Building a studio for your mind: an interview with the founders of Capacities
2025-10-14 Gavin Leech AI editing: a test
2025-10-14 Michael Lopp So You Want to Be Promoted, Pt. 1
2025-10-14 Sketchnote Lab October 2025 Sketchnote Lab Dispatch
2025-10-12 Spin Weave and Cut Talks Fall 2025!
2025-10-11 Aaron Parecki Adding Support for BlueSky to IndieLogin.com
2025-10-11 Manuel Uberti Beating the blank page
2025-10-10 Stefano Marinelli When Bigger Stops Being Better
2025-10-08 Henrik Karlsson Agentic fragments
2025-10-08 Kevin Kelly Weekly Links, 10/03/2025
2025-10-08 thinking out loud Retrospective conversion and a story of celebration
2025-10-07 Rich Tabor WordPress Almost Didn’t Happen
2025-10-06 Keep the Creative Juices Flowing I have a problem but, what really is a problem?
2025-10-05 but she's a girl… ZSA Navigator
2025-10-03 Cassidy Williams A moose playing Go in a park while drinking boba
2025-10-01 Bob Monsour Sounds of the Pacific
2025-09-29 anhvn Blog post
2025-09-27 Jeremy Friesen On “Black and Female: Essays” by Tsitsi Dangarembga
2025-09-25 Tanmay Vora Sketchnotes, Skill Stacking, and Playing to Potential: A Conversation
2025-09-25 Clarity Canvas Weekly by Tanmay Vora On Skill Stacking and Playing to Our Potential
2025-09-22 Rafał Pastuszak DISOBEY
2025-09-21 Chris Hannah My Favourite Use Case for AI
2025-09-18 Everything Is An Emergency Oh fuck, you're still sad?
2025-09-18 lmno.lol - @puddingtime OotB
2025-09-17 Ana “Why would anybody start a website?”
2025-09-16 The Jotter Nook A weight upon my heart
2025-09-09 Andy Draws Apple iPhone 17 Event Sketchnote
2025-09-01 Pencil Driven Development ✏️ Carlo Gilmar Substack Visual Thinking Strategies I: Boosting Drawing Skills
2025-08-31 Daryl Sun Special Edition — Colors
2025-08-31 Nicholas Carr Is Google Making Us Stupid?
2025-08-27 Stories by Jilly Scope on Medium 2025 Social Enterprise Leaders Forum
2025-08-26 A Room of My Own The Irony of Personal Blog Longevity
2025-08-21 Sketchy Ideas 7 mental models Jeff Bezos uses to run Amazon
2025-08-10 The Visual Drawer Why You Secretly HATE Creativity
2025-08-03 Nicholas Carlini Gate-level emulation of an Intel 4004 in 4004 bytes of C
2025-08-01 Marie K. Ekeberg Going back to school to study math
2025-07-21 Dan's Daily The End
2025-07-20 Arne Bahlo Brené Brown on productivity and self-worth
2025-07-19 Explain Ideas Visually better way to use watermarks: story and impact of ozo.art
2025-07-18 Paolo Valdemarin Magic Moments ✨
2025-07-16 Gosha Tcherednitchenko Effect: using effect-language-service in Emacs
2025-07-15 Stories by Stephen P. Anderson on Medium “Three Forms of Feedback” and My Thoughts on Design Critique
2025-07-09 Merlin Mann On Chasing the Right “Zero.”
2025-06-27 Piper Haywood The self on standby
2025-05-26 Rhys Lindmark What I've been consuming
2025-05-15 Avdi Grimm Developer Tooling is a Lousy Business
2025-03-16 QAspire Consulting - Tanmay Vora Thriving in the Age of AI: Head, Hands, and Heart
2025-03-09 Penelope Trunk I hate having to earn money, but I like knowing what makes me valuable
2025-02-24 Derek Sivers Why did I move to New Zealand?
2025-02-23 Scott McCloud New for Spring: The Cartoonists Club!
2025-02-07 James Endres Howell What can one person do?
2024-11-08 Joi Ito Morning Thick Tea and Yuen
2024-09-19 Shoshannah Introduction to Super Powers
2021-11-01 Zsolt's blog Deep Dive Into Roam's Data Structure - Why Roam is Much More Than a Note Taking App
  Blaine Mooers  
  Howard Rheingold  
  Jessica Smith  
  Karl Voit  
  Sumana Harihareswara  
  Winnie Lim  

I'm rebuilding my feed list from scratch. I want to read more. I read the aggregated feeds at planet.emacslife.com every week as part of preparing Emacs News. Maybe I'll go over the list of blogs I aggregate there, widen it to include all posts instead of just Emacs-specific ones, and see what resonates. Emacs people tend to be interesting. Here is an incomplete list based on people who've posted in the past two years or so, based on this work-in-progress planetemacslife-expanded.opml. (I haven't tweaked all the URLs yet. I stopped at around 2023 and made the rest of the elements xoutline instead of outline so that my code would skip them.)

(my-opml-table (xml-parse-file "~/Downloads/planetemacslife-expanded.opml"))
2025-03-19 Irreal The Power Of Isearch
2025-03-19 James Dyer Ollama-Buddy 0.9.8: Transient Menu, Model Managing, GGUF Import, fabric Prompts and History Editing
2025-03-19 Emacs Redux Relative Line Numbers
2025-03-19 Jeremy Friesen Crocus
2025-03-19 Michal Sapka I stopped writing alt-text to most images here
2025-03-18 Lars Ingebrigtsen WoRdPrEsS ReWrItEs My PoStS
2025-03-18 William Denton Art is the imposition of form on experience
2025-03-18 Will Schenk Knowledge Navigator
2025-03-17 Listful Andrew Hash tables look better in Emacs 30
2025-03-17 Sacha Chua Org Mode: Merge top-level items in an item list
2025-03-17 Protesilaos Stavrou On the Stoic harmony with nature
2025-03-17 Marcin Borkowski Bash script and passwords
2025-03-17 Christian Tietze NSPopover in NSTextView With Links Is Broken: Accessibility Hierarchy Slowdown
2025-03-17 TAONAW Mode (untitled)
2025-03-17 John D. Cook Lessons Learned With the Z3 SAT/SMT Solver
2025-03-16 Grant Rettke Interesting new gptel v0.9.8 features and commits since v0.9.7
2025-03-16 Magnus Using lens-aeson to implement FromJSON
2025-03-16 200ok Atomize: A Simple CLI Tool for Managing Atom Feeds
2025-03-16 Aimé Bertrand Raycast - Activate Entra Role via PIM with Graph
2025-03-15 Tim Heaney Ruth
2025-03-15 Susam Pal MathB 1.3.0
2025-03-14 Bozhidar Batsov Updating my toolbox: Ghostty and Fish
2025-03-14 Matt Maguire Japanese Electronic Dictionary (Casio XD-G9850)
2025-03-13 Alvaro Ramirez Journelly open for beta
2025-03-13 Charles Choi Announcing Casual Make
2025-03-13 Marie K. Ekeberg Pi Day 2025 - Let’s have fun with numbers!
2025-03-11 Eric MacAdie 2025-03 Austin Emacs Meetup
2025-03-11 Manuel Uberti A sense of belonging
2025-03-10 Norm XML Resolver updates
2025-03-09 Andrey Listopadov Dynamic font-lock for Fennel
2025-03-08 Arthur A. Gleckler Backup Sampling
2025-03-08 Alex Popescu TIL Succinct Data Structures
2025-03-07 Kisaragi Hiu Plasma: Avoiding having to type the login password again when first using Git / GPG
2025-03-07 The Emacs Cat Using Emacs Org Mode for Reproducibility Testing
2025-03-06 Mickey Petersen Replacing tmux and GNU screen with Emacs
2025-03-05 Amit Patel Emacs Tree-sitter custom highlighting, part 3
2025-03-05 Kris Carta My Delivery Sheet
2025-03-05 Ben Simon G's Baltimore Adventure - The USS Torsk
2025-03-02 Thanos Apollo Emacs Note Taking & Journaling using org-gnosis [Video]​
2025-03-02 But She's a Girl ZSA Voyager
2025-02-28 Mario Jason Braganza 2025
2025-02-28 Gijs Hillenius The bathwater of our 21st century
2025-02-25 James Cherti Toggling symbol highlighting in Emacs with unique colors for each symbol using built-in functions
2025-02-24 Peter J. Jones Automatic Theme Switching in Emacs
2025-02-24 Benjamin Slade C-c-c-conjecturing, and dealing with recursion in Emacs (more excursus)
2025-02-23 Ruslan Bekenev Emacs: glasses-mode
2025-02-23 J.e.r.e.m.y B.r.y.a.n.t Emacs 30.1 released including which-key
2025-02-23 Vineet Naik Premature automation
2025-02-22 Rahul Juliato Compiling Emacs 30.1 from the source on Debian
2025-02-22 Mark Tomczak Running Sandstorm From a Raid 1 Drive Array
2025-02-22 whatacold Rewrite of a Flask Web App in Clojure
2025-02-22 localauthor Ežerų Dugne
2025-02-18 Peter Povinec Speed Dialing Your Favorite Files
2025-02-18 Rodrigo Morales Compile zathura 0.5.11 in Ubuntu 24.04 LTS
2025-02-17 William Gallard Hatch Don't Ossify Defaults
2025-02-13 Anand Tamariya Emacs Font is wider
2025-02-13 yuri tricys Etymology: From Cupidity to Romance And Roses
2025-02-12 Erik L. Arneson maybe: A command-line tool that succeeds sometimes
2025-02-12 Luke Plant Christ the True and Better Frodo
2025-02-12 Unwound Stack Peppering Passwords in Rust
2025-02-08 Tory Anderson snippets that defy orgmode tangling
2025-02-08 Chris Maiorana From Emacs To Microsoft Word (And Beyond, Really)
2025-02-08 Anything goes PiZero OTG: Host or Peripheral
2025-02-03 Meta Redux Projectile Introduces Significant Caching Improvements
2025-02-02 Gene Goykhman Quickly summing up the whole stack in Emacs Calc
2025-02-02 Bz01 Using spritely hoot on nixos
2025-02-01 Jack Baty FYI: I have a new blog and RSS feed
2025-01-29 Tony Zorman Speeding up LaTeX compilation
2025-01-26 Arialdo Martini Emacs: a peek under Imenu’s hood
2025-01-25 Yi Tang Setup ssh-agent Systemd Service for Emacs
2025-01-23 punchagan Some useful Git configuration for Windows
2025-01-14 Srijan Choudhary 2025-01-15-001
2025-01-10 Isa Mert Gurbuz .emacs.d/.init.el
2025-01-07 Stefan van der Walt Pomodoros with org-timer
2025-01-03 Wai Hon Distinguish Repeated Tasks in Org Agenda
2025-01-01 Karthik Chikmagalur Tool use with gptel: looking for testers!
2024-12-21 Arne Bahlo My favorite things of 2024
2024-12-18 Maryanne Wachter Why is multithreading Selenium lousy on MacOS?
2024-12-13 Lambda Land What's New in Emacs: Last Decade Edition
2024-12-06 Jean-Christophe Helary Building "vanilla" emacs on macOS, with MacPorts, and more…
2024-11-21 JD Gonzales Kamal Tip - Private Network only Database Server
2024-11-15 Jonathan Lamothe Organizing My Life with org-mode
2024-11-14 Hristos N. Triantafillou Void Linux On A Framework Laptop: Two Years Later
2024-11-14 Hanno git-annex: Managing my most ancient data
2024-11-07 Ryan Rix Two Updates: Org+Nix dev streams, and my new DNS resolver
2024-11-03 Emacs Notes Enable completions for `Font Family’ field in `M-x customize-face RET’
2024-11-02 Ben Whitley Denote Project Tasks
2024-10-27 Andrea A useful function to contribute to Scala Metals lsp server with Emacs
2024-10-24 Summer Emacs ERC Flipping Buffers
2024-10-03 Jiewawa Useful Emacs commands for reading
2024-09-11 Sanel Zukan evil-mode in terminal without Alt/Meta
2024-09-08 Troy Hinckley What is the best pointer tagging method?
2024-08-16 Wiktor Gołgowski Org-roam: custom linking during capture
2024-08-14 Jonas Bernoulli Forge 0.4.0 and 0.4.1 released
2024-08-11 Nicolas Martyanoff Controlling link opening in Emacs
2024-07-31 T. V. Raman Emacspeak — A Speech Odyssey
2024-07-30 jao eww to org
2024-07-27 Peter Tillemans Refactoring Emacs Config using Org
2024-07-07 Timo Geusch If you get this error from Time Machine on Samba, check available disk space
2024-06-23 Peter Vágner Emacs A11y Tip #3: Emacs with speechd-el running on Termux for Android
2024-06-05 Zachary Kanfer Less: a Survival Guide
2024-05-23 Jürgen Hötzel Gnome Search Provider: Emacs Integration
2024-05-22 Gretzuni B/logroll
2024-05-14 Bryan Murdock How To Retroactively Annex Files Already in a Git Repo
2024-05-02 Evan Moses Home Assistant: using target in blueprints
2024-04-11 Emacs TIL The Night Before A Coding Interview
2024-03-26 M. Rincón Eat Evil
2024-02-12 Cameron Desautels Chinese Zodiac Time for Emacs
2024-01-19 Corwin Brust Emacs 29.2 Windows Binaries
2023-12-10 Alex Bennée A Systems Programmer's Perspectives on Generative AI
2023-12-09 Peter Prevos Writing Prose with Emacs
2023-12-05 Thomas Fitzsimmons Product Idea: CRT-alike OLED driver
2023-10-21 What the .emacs.d!? buffers.el-01
2023-08-16 Murilo Pereira I just made my first $1 on the internet!
2023-08-07 Phil Newton Updated Pocket highlights bookmarklet
2023-08-06 Shae Erisson How to use Private Storage on Android
2023-07-18 Phil Jackson Using Djblue's portal for tap in Babashka
2023-06-29 Jiacai Liu Embed git commit in Zig programs
2023-05-21 Fritz Grabo Introducing elfeed-webkit
2023-05-01 Tyler Smith Posts

Making this table was fun. It's nice to see a lot of people also writing and learning out loud. This reminded me a little of EmacsConf - 2020 - talks - Sharing blogs (and more) with org-webring. TODO: Could be fun to have a blogroll page again.

I notice I tend to like:

Looking forward to discovering more!

View org source for this post
You can e-mail me at sacha@sachachua.com.