Let's build a new service manager for Alpine!

Mar 25, 2021
Update (April 27): Please visit Laurent’s website on this issue for a more detailed proposal. If you work at a company which has budget for this, please get in touch with him directly. As many of you already know, Alpine presently uses an fairly modified version of OpenRC as its service manager.

Why RMS should not be leading the free software movement

Mar 23, 2021
Earlier today, I was invited to sign the open letter calling for the FSF board to resign, which I did. To me, it was obvious to sign the letter, which on it’s own makes a compelling argument for why RMS should not be an executive director at FSF. But I believe there is an even more compelling reason.

NFTs: A Scam that Artists Should Avoid

Mar 21, 2021
Non-fungible tokens (NFTs) are the latest craze being pitched toward the artistic communities. But, they are ultimately a meaningless token which fails to accomplish any of the things artists are looking for in an NFT-based solution. Let me explain… So, What are NFTs? Non-fungible tokens are a form of smart contracts (program) which runs on a decentralized finance platform.

The End of a Short Era

Mar 21, 2021
Earlier this year, I started a project called Jejune and migrated my blog to it. For various reasons, I have decided to switch to WordPress instead. The main reason why is because WordPress has plugins which do everything I wanted Jejune to do, so using an already established platform provides more time for me to work on my more important projects.

Using OTP ASN.1 support with Elixir

Oct 21, 2019
The OTP ecosystem which grew out of Erlang has all sorts of useful applications included with it, such as support for encoding and decoding ASN.1 messages based on ASN.1 definition files. I recently began work on Cacophony, which is a programmable LDAP server implementation, intended to be embedded in the Pleroma platform as part of the authentication components.

Demystifying Bearer Capability URIs

Oct 11, 2019
Historically, there has been a practice of combining URIs with access tokens containing sufficient entropy to make them difficult to brute force. A few different techniques have been implemented to do this, but those techniques can be considered implementation specific. One of the earliest and most notable uses of this technique can be observed in the Second Life backend APIs.

Leveraging JSON-LD compound typing for behavioural hinting in ActivityPub

Oct 2, 2019
ActivityStreams provides for a multitude of different actor and object types, which ActivityPub capitalizes on effectively. However, neither ActivityPub nor ActivityStreams provide a method for hinting how a given actor or object should be interpreted in the vocabulary. The purpose of this blog post is to document how the litepub community intends to provide behavioural hinting in ActivityPub, as well as demonstrate an edge case where behavioural hinting is useful.

Introducing LVis: a programmable audio visualizer

Sep 19, 2019
One of my areas of interest in multimedia coding has always been writing audio visualizers. Audio visualizers are software which take audio data as input, run various equations on it and use the results of those equations to render visuals. You may remember from your childhood using WinAmp to listen to music.

libreplayer: toward a generic interface for replayer cores and music players

Sep 8, 2019
I’ve been taking a break from focusing on fediverse development for the past couple of weeks — I’ve done some things, but it’s not my focus right now because I’m waiting for Pleroma’s develop tree to stabilize enough to branch it for the 1.1 stable releases. So, I’ve been doing some multimedia coding instead.

Federation – what flows where, and why?

Jul 13, 2019
With all of the recent hullabaloo with Gab, and then, today Kiwi Farms joining the fediverse, there has been a lot of people asking questions about how data flows in the fediverse and what exposure they actually have. I’m not really particularly a fan of either of those websites, but that’s beside the point.