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"))
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"))
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:
- posts about adapting technology to personal interests, more than posts about the industry or generalizations
- detailed posts about things I'm currently interested in (Emacs, personal knowledge management, some Javascript), more than detailed tech posts about things I've decided not to get into at the moment
- "I" posts more than "You" posts: personal reflections rather than didactic advice
- curiosity, fun, experimentation
Looking forward to discovering more!