I just posted a video explaining how I automatically scale up the default font (for demo purposes) on a Raspberry PI Trixie Emacs.

I just posted a video explaining how I automatically scale up the default font (for demo purposes) on a Raspberry PI Trixie Emacs.

I was reading #prot emacs element #ebook on #elisp. I like this quote.
```
The fun part is how you go about writing the code. There are no duties you have to conform with. None! You program for the sake of programming. It is a recreational activity that expands your horizons.
```
protesilaos.com/emacs/emacs-lisp-elements#h:getting-started-with-emacs-lisp
Is there a better way to do this? blogs-metadata is like ((tag1 . (blogpost1 ...)) ...)
(alist with key as tags and list of blog entries as body).
(let* ((tags (delete-dups
(flatten-list
(seq-keep (lambda (post)
(let-alist post .tags))
blogs-metadata))))
(blogs-per-tags
(mapcar (lambda (tag)
(cons tag (seq-keep (lambda (blog)
(let-alist blog
(when (member tag .tags)
blog)))
blogs-metadata)))
tags)))
(sxml (mapcar (lambda (tag)
`(div (@ (class "tag-container"))
(h2 (@ (id ,(car tag))) ,(car tag))
(ul ,(mapcar (lambda (blog)
(let-alist blog
`(li (a (@ (href ,.link)) ,.title))))
(cdr tag)))))
blogs-per-tags)))
I've released a small update to make-phony.el: https://blog.davep.org/2026/05/09/make-phony-el-v1-4-0.html
I've updated blogmore.el to add a command for quickly setting an image as the cover for a post: https://blog.davep.org/2026/05/08/blogmore-el-v4-5-0.html
I've released blogmore.el v4.4.0, which lets me be even more lazy: https://blog.davep.org/2026/05/07/blogmore-el-v4-4-0.html
...and updated all my packages to use Compat 31. Unfortunately I found a bug in the new with-work-buffer macro, such that the packages cannot yet take advantage of it:
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=80947
But this is what the stabilization phase before the actual Emacs release is for!
I have just released Compat 31.0.0.0. The emacs-31 branch cut is imminent and the stabilization for the release will start now. If you start to rely on Compat 31 in your packages, please be aware that functions can still change until the actual release of Emacs 31.1. Please report any problems you encounter.
https://github.com/emacs-compat/compat/commit/2ef017671bdc643dbdbe3bfb746b80d090db792a
;; Best of both worlds: Only delete old duplicates, such that rare candidates
;; are not lost. At the same time ensure that ranking by frecency works. (bug#80070)
(defun +history-delete-old-duplicates (var elt &rest _)
(when-let* ((hist (symbol-value var))
((and (listp hist) (integerp history-length)))
(old (nthcdr 100 hist)))
(setcdr old (delete elt (cdr old)))))
(advice-add #'add-to-history :before #'+history-delete-old-duplicates)