Spring is here, and I’m already miserable in the heat. Crazy weather here in Philadelphia - I was woken up at 3 AM by my phone buzzing, telling me to take immediate shelter from a tornado. But with my A/C cranked up and the tornado safely passed, I’ve been able to get a lot of work done.
The project with the most impressive progress is aerc2. It can now read emails, including filtering them through arbitrary commands for highlighting diffs or coloring quotes, or even rendering HTML email with a TUI browser like w3m.
Here’s another demo focusing on the embedded terminal emulator which makes this possible:
Keybindings are also working, which are configured simiarly to vim - each keybinding simulates a series of keystrokes, which all eventually boil down to an ex-style command. I’ve bought a domain for aerc, and I’ll be populating it with some marketing content and a nice tour of the features soon. I hope to have time to work on sending emails this month as well. In the immediate future, I need to fix some crashiness that occurs in some situations.
In other email-related news, git-send-email.io is now live, an interactive tutorial on using email with git. This workflow is the one sourcehut focuses on, and is also used by a large number of important free software projects, like Linux, gcc, clang, glibc, musl, ffmpeg, vim, emacs, coreutils… and many, many more. Check it out!
I also spent a fair bit of time working on lists.sr.ht this month. Alpine Linux has provisioned some infrastructure for a likely migration from their current mailing list solution (mlmmj+hypermail) to one based on lists.sr.ht, which I deployed a lists.sr.ht instance to for them, and trained them on some administrative aspects of lists.sr.ht. User-facing improvments that came from this work include tools for importing and exporting mail spools from lists, better access controls, moderation tools, and per-list mime whitelisting and blacklisting. Admin-facing tools include support for a wider variety of MTA configurations and redirects to continue supporting old incoming mail addresses when migrating from another mailing list system.
Stepping outside the realm of email, let’s talk about Wayland. Since Sway 1.0, development has continued at a modest pace, fixing a variety of small bugs and further improving i3 compatibility. We’re getting ready to split swaybg into a standalone project which can be used on other Wayland compositors soon, too. I also have been working more on Godot, and have switched gears towards adding a Wayland backend to Godot upstream - so you can play Godot-based video games on Wayland. I’m still working with upstream and some other interested contributors on the best way to integrate these changes upstream, but I more or less completed a working port with support for nearly all of Godot’s platform abstractions.
In smaller project news, I spent an afternoon putting together a home-grown video livestreaming platform a few weeks ago. The result: live.drewdevault.com. Once upon a time I was livestreaming programming sessions on Twitch.tv, and in the future I’d like to do this more often on my new platform. This one is open source and built on the shoulders of free software tools. I announce new streams on Mastodon, join us for the next one!
I’m also starting on another project called cozy, which is yak-shaving for several other projects I have in mind. It’s kind of ambitious… it’s a full end-to-end C compiler toolchain. One of my goals (which, when completed, can unblock other tasks before cozy as a whole is done) is to make the parser work as a standalone library for reading, writing, and maniuplating the C AST. I’ve completed the lexer and basic yacc grammar, and I’m working on extracting an AST from the parser. I only started this weekend, so it’s pretty early on.
I’ll leave you with a fun weekend project I did shortly after the last update: otaqlock. The server this runs on isn’t awash with bandwidth and the site doesn’t work great on mobile - so your milage may vary - but it is a cool artsy restoration project nonetheless. Until next time, and thank you for your support!
Articles from blogs I follow around the net
Go’s treatment of errors as values has served us well over the last decade. Although the standard library’s support for errors has been minimal—just the errors.New and fmt.Errorf functions, which produce errors that contain only a message—the built-in error …via The Go Programming Language Blog October 17, 2019
I’ll soon be working full-time on open-source software! I’m pleased to announce that I’m joining Sourcehut. Huge thanks to Drew DeVault for making this possible. I also want to thank everyone supporting Sourcehut and allowing it to grow. Being able to do …via emersion October 15, 2019
This post gives an overview of the recent updates to the Writing an OS in Rust blog and the used libraries and tools. I finished my master thesis and got my degree this month, so I only had limited time for my open source work. I still managed to perform a…via Writing an OS in Rust October 6, 2019
Generated by openring