Recent Developments Part III
One of the larger bits of work I’ve been doing crosses many core projects. I’m motivated to switch to GNOME OS across multiple form factors, but to do that, homed and related tooling need quite a few...
View ArticleRecent Developments Part II
Earlier this year as I drift abroad in France, I made a new abstraction over Avahi and systemd-resolved. It is called librebonjour and I wrote about it here. It’s nice in that I no longer need to build...
View ArticleRecent Developments Part I
I’ve been working on a bunch of things across the Linux puzzle for a product I want to build. Here is an overview of a few of those things. LibMKS at 120hz I wanted to get my virtual machines to 120hz...
View Articleffi_call_plan caching for GLib
About a month ago Anthony Green added a novel “call plan” to libffi. This allows one to cache the hard work of determining what to do once and skip all of that work in subsequent calls. You can read...
View ArticleAsynchronous State Machines with Fibers
Writing state machines gets a bit of a bad reputation because they are often implemented in complex manners which are specific to the problem domain. I think that makes people shy away from writing...
View ArticleTesting Keyboard Input Latency
I occasionally see people go through great effort to do end-to-end testing of keyboard input latency. That is fantastic but it requires hardware and patience I don’t, nor will ever, have. Here is a...
View ArticleA Data Layer for GTK applications
Gom is a very old object mapper I wrote to bridge GObject to SQLite. It made a lot of assumptions about the world based on when it was prototyped. The past couple years had me using it again for the...
View ArticleStackless Coroutines in Libdex
Fibers are always a nice way to keep your async C code clean while using Libdex. However, occasionally you may want a lighter option which doesn’t require a stack or saving registers for work doing...
View ArticleLibdex Improvements
libdex 1.2 is still in pre-alpha phase but it is also far enough along that it is worth talking about the direction: libdex is growing from a library of future and fiber helpers into a more complete...
View Article((lib)Re)bonjour
I made another weird side project while unemployed. In fact I’ve wanted it for a while but once I learned that “Rebonjour” is the word for “hello again” I just had to finish the library. librebonjour...
View ArticleAsynchronous Varlink with varlink-glib
I’ve been putting together varlink-glib, which is a library for writing Varlink clients and services in C. The basic idea is to keep the transport policy out of the library. You get a connected...
View ArticleTranslating French
I have been spending more time learning French lately, and as often happens, that turned into a small side project. liblingua is not intended to be a big mainstream translation platform. It is a fun...
View ArticleLimiters in libdex
Libdex now has DexLimiter, a small utility for bounding how much asynchronous work runs at once. This is useful when a workload can produce more parallelism than the underlying machine, subsystem, or...
View ArticleA Small Update from France
For about the past month, I have no longer been with Red Hat. That is a strange sentence to write after so many years, but life has a way of changing the scenery whether or not one has finished...
View ArticleMid-life transitions
The past few months have been heavy for many people in the United States, especially families navigating uncertainty about safety, stability, and belonging. My own mixed family has been working through...
View Articlepgsql-glib
Much like the s3-glib library I put together recently, I had another itch to scratch. What would it look like to have a PostgreSQL driver that used futures and fibers with libdex? This was something I...
View ArticleExperimenting with S3 APIs
My Red Hat colleague Jan Wildeboer made some posts recently playing around with Garage for S3 compatible storage. Intrigued by the prospect, I was curious what a nice libdex-based API would look like....
View ArticleStatus Week 48
This week was Thanksgiving holiday in the US and I spent the entire week quite sick with something that was not Covid nor Flu according to rapid tests. Managed to get a few things done through sheer...
View ArticleLibdex Futures from asyncio
One of my original hopes for Libdex was to help us structure complex asynchronous code in the GNOME platform. If my work creating Foundry and Sysprof are any indicator, it has done leaps and bounds for...
View ArticleStatus Week 47
Ptyxis Issue filed about highlight colors. Seems like a fine addition but again, I can’t write features for everyone so it will need a MR. Walk a user through changing shortcuts to get the behavior...
View Article