Archive / Page 2 of 7

Notes &
other things.

2026

(setq load-prefer-newer t)

My GNU Emacs configuration works from two machines I regularly use. Configuration is an Org file living within my Notes corpus. Then on save it's tangled into el file and init.el l…

(setq load-prefer-newer t)

My GNU Emacs configuration works from two machines I regularly use. Configuration is an Org file living within my Notes corpus. Then on save it's tangled into el file and init.el loads it. I keep custom packages in separate repository that configuration adds to load-path.

On <2026-08-22 Sat> I bumped into situation, when on one of machines, after fresh Emacs startup a symbol from lozenge.el package is not defined.

– prompt

defalias doesn't load via require and use-package why doesn't loading lozenge.el at emacs startup define an alias ◊git-status? I did (require 'lozenge), evaluated (use-package) block, added :demand t to it, still (◊git-status "~/.velppa/hotter.myaddr.dev") was failing with

eval: Symbol’s function definition is void: ◊git-status

I had to go to lozenge.el and do (eval-buffer) there.

Root cause was stale lozenge.elc file that didn't have alias defined. Solved by removing all elc files, and for the future setting this in Pavel's Emacs Configuration v3:

(setq load-prefer-newer t)

Datadog renamed Case Management to Work Management

We use Datadog Case Management at $WORK for managing failed batch jobs. When a job fails, it sends event to EventBridge then to Datadog Events, then a Monitor captures and opens a…

Datadog renamed Case Management to Work Management

We use Datadog Case Management at $WORK for managing failed batch jobs. When a job fails, it sends event to EventBridge then to Datadog Events, then a Monitor captures and opens a new case, providing all the details of failure (links, names, timing, basically what comes in the event). Automation workflow archives duplicated active case by title, so sequential daily runs only lead to the first case. Works really well, about 4000 cases have been created in the last 6 month of usage. AI agents are checking open cases on schedule and do root cause analysis and resolve cases (open PRs with fixes) semi-autonomously (Claude became lazy recently).

Today I noticed that Datadog renamed Case Management to Work Management, and it changes premise quite a lot. Do you remember Slack mission "Slack - where work happens" - well, often it's true, but when it is true, it means somebody doesn't do their real work. If we have a product "Work Management", then, well, why don't we use it to manage work, and manage work in Slack/Notion/Shortcut/Github. Fifth place to manage work. Thank you very much, dear Datadog, you went from a strong concept of a funnel – Alert → Case → Incident – into vague "Work Management"

Case Management API has been always not pleasant: heavy relying on UUIDs, lack of public API methods - can't link cases, can't READ COMMENTS - yes, you can POST a comment, but you can't read it back. To overcome these limitations, I had to check what Datadog UI is doing and wrap it into datadog-mcp-server.

What has changed in the API side of things with this renaming? Absolutely nothing, Work Management doesn't exist nor in API reference nor in the API requests, they still go to https://app.datadoghq.com/api/v2/cases.

Improved assets sharing in Textpod

Textpod received better assets sharing.

Improved assets sharing in Textpod

Textpod received better assets sharing.

New logic:

  • all local files (Org link with file: or attachment:) are be copied to assets and served from textpod.
  • assets are served inline without downloading.

Examples:

Image: 20230215T131950--ieronim-bosch__art.jpeg

reddigg extensions: reddigg-rss and reddigg-images-to-html :Elisp:

In Update Reddigg is now a fullblown reddit client : r/emacs the reddigg.el author, u/Goator, asked me to share extensions I've (well, Claude Code) written for reddigg. Sharing.

Elisp

reddigg extensions: reddigg-rss and reddigg-images-to-html

· :Elisp:

In Update Reddigg is now a fullblown reddit client : r/emacs the reddigg.el author, u/Goator, asked me to share extensions I've (well, Claude Code) written for reddigg. Sharing.

reddigg-rss
advice reddigg to use RSS feed instead of json as Reddit blocked the latter
reddigg-images-to-html
create standalone HTML with all the images from current view in masonry grid

Here's my reddigg configuration block:

(use-package reddigg
  :config
  (require 'reddigg-images-to-html)
  (require 'reddigg-rss))

Embedding Imgur posts

Imgur post can carry multiple images. Can be useful for notes.

Embedding Imgur posts

Imgur post can carry multiple images. Can be useful for notes.

Yes, it's sending my images to some company on the internet, so I (eventually) better self-host it, but Imgur has been alive for a long time and I like it.

Let's try to embed Imgur post:

Textlog replies flow

textlog

A quiet, text-only microblogging platform, open-source, no JS.

textlog

monkey-id
textlog.el

A quiet, text-only microblogging platform, open-source, no JS.

HN
Show HN: textlog
github
stagas/textlog
website
https://textlog.cc
(no term)
(◊ff 'velpa "textlog.el")

I created handle @hotter and ./src/textlog.el package to send regions to textlog.

Microblogs, related to Textpod.

Another self-hosted microblogs and related:

Implement textlog.el

~/.velppa/velpa/textlog.el

Use new API methods

textlog-post should be using POST /posts method.

Implement textlog-reply command

It should get recent replies to the current user in completing-read.

Upon selection a message, store its id, then post new message (read interactively).

Textlog replies flow

Assign CapsLock to RightControl

I'm using Handy.app (cjpais/Handy) for text-to-speech and hold-to-speak functionality. Which button to use? Right Option rarely used, but I do use it as Hyper key in Emacs, in part…

Assign CapsLock to RightControl

I'm using Handy.app (cjpais/Handy) for text-to-speech and hold-to-speak functionality. Which button to use? Right Option rarely used, but I do use it as Hyper key in Emacs, in particular {H-RET} calls visit-source (visit-source.el).

Right Control also rarely used and does exists on my Keyboardio Model 100. But, it turned out macOS remaps CapsLock to Right Control from the SystemSettings.app.

260804--keyboard-remapping__macos.png

I need some remapping then, for internal keyboard only:

  • CapsLock to Left Control
  • Left Control to Right Control

To achieve that, store the plist to ~/Library/LaunchAgents/com.local.keyboard-remap.plist file.

To rebind live without reboot, run hidutil commands manually. In SystemSettings.app set default CapsLock binding (CapsLock to CapsLock).

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>Label</key>
  <string>com.local.keyboard-remap</string>
  <key>ProgramArguments</key>
  <array>
    <string>/bin/sh</string>
    <string>-c</string>
    <string>
      /usr/bin/hidutil property --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000039,"HIDKeyboardModifierMappingDst":0x7000000E0}]}';
      /usr/bin/hidutil property --matching '{"VendorID":0x0,"ProductID":0x0}' --set '{"UserKeyMapping":[{"HIDKeyboardModifierMappingSrc":0x700000039,"HIDKeyboardModifierMappingDst":0x7000000E0},{"HIDKeyboardModifierMappingSrc":0x7000000E0,"HIDKeyboardModifierMappingDst":0x7000000E4}]}'
    </string>
  </array>
  <key>RunAtLoad</key>
  <true/>
</dict>
</plist>

It's been a while&#x2026;

I haven't published a public note in July. Not that I haven't written anything, far from that. Just didn't publish.

It's been a while…

I haven't published a public note in July. Not that I haven't written anything, far from that. Just didn't publish.

Okay, some updates:

Add buffer name autocomplete to cape

I use cape.el to manage specific completion-at-point functions. The most used ones for me are {C-c t f} - complete file name and {C-c t s} - complete Elisp symbol.

Add buffer name autocomplete to cape

I use cape.el to manage specific completion-at-point functions. The most used ones for me are {C-c t f} - complete file name and {C-c t s} - complete Elisp symbol.

After starting using ghostel with Claude Code being able to complete the buffer name became more desirable than ever, so I can quickly drop into notes things like this:

  • (vux-ghostel-buffer "cape-buffer")

Asked Claude, it wrote "cape-buffer-name" function, bound to {C-c t b}. Works!

(defun cape-buffer-name ()
  "Completion-at-point function for open buffer names."
  (let ((bounds (or (bounds-of-thing-at-point 'symbol)
                    (cons (point) (point)))))
    (list (car bounds) (cdr bounds)
          (completion-table-dynamic
           (lambda (_) (mapcar #'buffer-name (buffer-list))))
          :exclusive 'no
          :annotation-function (lambda (_) " Buffer"))))

(use-package cape
  :after (tempo)
  :config
  (setq cape-elisp-symbol-wrapper '())
  (setq cape-keymap (make-sparse-keymap))
  (let ((map cape-keymap))
    (keymap-set map "<tab>" #'completion-at-point)
    (keymap-set map "b" (lambda () (interactive)
                          (cape-interactive #'cape-buffer-name)))
    ;; (keymap-set map "t" #'complete-tag)
    (keymap-set map "t" #'tempo-complete-tag)
    (keymap-set map "d" #'cape-dabbrev)
    (keymap-set map "f" #'cape-file) ;; using often
    (keymap-set map "k" #'cape-keyword)
    (keymap-set map "s" #'cape-elisp-symbol) ;; using often
    (keymap-set map "a" #'cape-abbrev)
    (keymap-set map "l" #'cape-line)
    (keymap-set map "w" #'cape-dict)
    (keymap-set map "_" #'cape-tex)
    ;; (keymap-set map "&" #'cape-sgml)
    ;; (keymap-set map "r" #'cape-rfc1345)
    t)
  (keymap-global-set "C-c t" cape-keymap))

Screenshot:

260630--cape-complete-buffer__emacs_screenshot.png

Create Graphviz graph out of a picture

I was cleaning my screenshots directory and spotted one from the "Wisey" service that teaches you mindfullness and habits. I didn't go to subscribe to the service but I did save th…

Create Graphviz graph out of a picture

I was cleaning my screenshots directory and spotted one from the "Wisey" service that teaches you mindfullness and habits. I didn't go to subscribe to the service but I did save the screenshot.

I asked Claude Code: I want Graphviz graph that looks as close as possible to this file:

260629--morning-routine-wisey__screenshot.png

And here's the result I got in a minute:

(vux-ghostel-buffer "graphviz-morning-routine")
260629--morning-routine__graphviz.png

Not bad, huh?