The really interesting thing about Git::Wrapper

3 jun 2020

Since I maintain the Git::Wrapper module, I was super happy to see the recent ETOOBUSY post about it — but I thought that the post, which starts with the TL;DR of “Git::Wrapper is an interesting Perl module.” didn’t mention the thing I think is the most interesting feature of Git::Wrapper.

In my opinion, the most interesting part of the module is the core of the implementation (which was originally written by HDP). Because of the way Git::Wrapper is written, it will continue to support any new sub-commands or sub-command options as they’re added to the Git binary, without requiring a single update to the Git::Wrapper code itself!

…how even does that work?

introducing eleventy-plugin-json-feed

23 may 2020

JSON Feed icon
JSON Feed icon

JSON Feed is a relatively new syndication format, similar to RSS or Atom — but where those two formats are based on XML, JSON Feed is based on …JSON.

Most major feed readers have added support for JSON Feed, and as you can see on the “code” page on the JSON Feed site, there are tons of plugins available for various languages and blogging systems. However, there wasn’t one for Eleventy …until now.

Over the last day or so, I wrote and released eleventy-plugin-json-feed, making it super easy to add a JSON Feed to your Eleventy-generated blog. I tried to make sure it would only generate connect feeds, by validating all the inputs to make sure they confirm to the JSON Feed spec. I’d appreciate hearing any feedback any of y’all have, if you should try to use it.

(You may notice this site is sporting a new icon in the header as well. If you happen to subscribe via JSON feed, holler if you notice any issues…)

open source annoyances and affordances

16 may 2020

As is my wont, I upgraded my installed Emacs packages this Saturday morning. When I restarted Emacs afterwards, everything broke. I’ve gotten the problem fixed, but I ran into some frustrations along the way.

…read on for the gory details

even more emacs advice

6 may 2020

In my last emacs advice post, I explained what Emacs advice is for, and showed a simple example of advising a package installation function so that fresh package metadata would always be downloaded before it ran. (If you haven’t read that post, you’ll get a lot more out of this one if you read that one first. It’s ok. Go ahead, we’ll wait for you.)

…read more

a bit of emacs advice

28 apr 2020

A couple months back, a friend posted about some difficulty installing an Emacs package, which turned out to be due to out of date package metadata. He solved his problem with a comment in his config (read his post!), but I still tooted at him about how I’d solved the same problem in my config by advising a function — “advice” being a way that Emacs allows you to automatically run some code of your own before or after you run a given function (or even around a given function, if you want to get extra fancy).

I linked to the section in my config where I’d done this, and made a mental note to write a blog post explaining the advice system a bit, intending to use a different place I’d added some advice more recently as the basis of my post. When I finally sat down and started drafting this post, I ended up looking at the Emacs advice documentation for the first time in …maybe ever? and I discovered that I’d been writing advice the old way, not the current way, which led to a bunch of cleanup in my config. (Yaks shaved while you wait!)

…read on for the details of how that went