TL;DR: Maintenance is not the same thing as fixing bugs. Only a fifth of it is about defects at all. Software often works because of work you can't see. So you can't wait for incidents to tell you what to fix. Where this comes from # This article is adapted from a slide deck I prepared for a talk back in 2023.
TL;DR: I have been silent for a while due to personal matters but I did a ton of stuff on OpenSMTPD, plakar and a handful of other projects. Why the silence ? # My last post was a bit unusual, far off from the usual light tone, and followed by months of silence despite my habit of writing almost monthly.
TL;DR: A personal retrospective of 2023 2023 was a rough year # I usually enjoy doing these yearly posts, looking back at what I did and planning what I’ll do, but 2023 was a rough year. I’m glad it’s over.
TL;DR: Significant refactoring to improve its performance, implemented read and write semaphores to throttle chunkers and reduce memory usage, introduced a repository index and packfiles to decrease the number of I/O operations, also intrioduced a new HTTP storage backend. A ton of refactors # I’ve done so much work on plakar in the past few weeks that I don’t even know what to begin…
TL;DR: TL;DR: a lot of work in plakar, but also on CDC and index optimization. Optimized go-fastcdc # I ran into a benchmark which included my implementation of the FastCDC algorithm, and it made me realise that it was not on par with alternative implementations :
TL;DR: I reworked the virtual filesystem layer in plakar , making it possible to write custom importers of data: use plakar to backup an s3 bucket, for instance. @gpt-4: I won’t be commenting this article.
TL;DR: Came back from vacation, started working on the neck but realised I really needed more tools. Luckily, I could get some that weren’t too expensive. Working on the head # I had ordered and received this neck, which fits nicely, but I wanted to rework the head a bit so it looked a little less PRSey. Unfortunately, after spending an hour trying to manually reshape and sand, I figured I…
TL;DR: plakar gained two minor features, snapshots fork-ing and snapshots tagging, which makes it possible to unlock several major new features in a relatively short future. Plakar is not only for backups # If you have followed my work on this project, you may have assumed that plakar was intended solely for backups : it’s not entirely the case .
TL;DR: I found a printed copy of an assignment I had to do in 2005 back when I was a student to implement a system call for OpenBSD and Linux. I lost the original LaTeX file so I decided to rewrite it so I have a digital copy. The article originally covered loadable kernel modules (LKM) which is no longer a thing in OpenBSD, I trimmed that part. I also trimmed the Linux part because I didn’t…
TL;DR: ChatGPT, an AI developed by OpenAI, is joining the poolp.org tech blog to serve as a proofreader and content enricher for articles written by human authors. Instead of authoring full articles, ChatGPT will provide footnotes offering additional insights, clarifications, and resources. This addition aims to bring an extra layer of depth and a fresh perspective to the already informative…
TL;DR: music and unity training, a bit of X programming in Go, began a journey in Jujulang a new languae, wrote a PoC set database called setdb, did some minor OpenSMTPD stuff. First of all, a new website # As you can see, the website has changed quite a lot since just a few days ago .
TL;DR: Received the neck… too bad it’s not exactly the one I ordered :-) The neck # For the neck, I wanted a 24 frets neck and found one that I liked online.
TL;DR: I’m building a guitar from scratch, picking up every component but skipping the tricky cut and glue bits :-) About this project # The primary goal of this project is to build a custom guitar, picking each and every component one by one, so that it’s 100% what I want it to be.
TL;DR: I played with MIDI and ChatGPT. Code-unrelated work # I began a few week ago a certified training in music production which I’ll be attending for a couple weeks still, and I’ll be sharing here some of the things I work on.
Almost four years ago, your mom and I left home and rushed to the maternity hospital to give birth to your brother. As I closed the door to our home, I told your mom with a huge smile that the next time we’d open the door we’d no longer be only the two of us. This was the best day of our lives.
TL;DR: I worked on earmuff and go-harmony, I played with ChatGPT. Re-focusing on go-harmony # As you may have read from my previous post, I have spent some time porting go-harmony to the Dart language and playing with Flutter to build apps that used dart-harmony .
TL;DR: busy month, did a lot of non tech stuff, but also worked on a new project called feedchain, fixed issues and added new features to go-harmony, and started two projects called dart-harmony and harmonee, both related to music. Music-related stuff # No music productions this month, I lacked time, but I have recorded the result of some guitare practice sessions which amounts to hours of…
TL;DR: I implemented a file format to support a standalone feed of news similar to what I have on Twitter, as well as a proof of concept code for a reader, a writer, a publishing node, and some more. oh and fuck you, elon, you’re a dick. This is not my activity report # This is not my activity report which I’ll publish later this month or early December. I’ve worked on several…
TL;DR: added comments support to the blog, did some music and hypnosis projects, fixed a few bugs in plakar and began a new toy project. Learnt myself some Swift # Got myself a book on the Swift programming language, spent a couple hours reading it and I really enjoyed it.
TL;DR: tons of plakar work, most notably on indexes, performances, clone & sync and fuse. Code-unrelated work # I’ll start with code unrelated work !
TL;DR: I refactored internal structures to split metadata from the index, implemented an stdio server and finally added SSH support. The plakar.io website # A project needs a website so… I published the plakar.io website.
TL;DR: I did key and UI stuff, mostly search related. There’s going to be plenty of images in this post. Reworked plakar keys # I won’t expand much on that as I’m not done yet, but I spent a couple days reworking the way plakar handles keys for encrypted repositories.
TL;DR: implemented cloning and synchronization between plakar repositories Slacked a bit # Shortly after I published my yearly retrospective , I was hit with two highly annoying personal issues that kept me very busy these last two months. I finally got everything back under control, my mind is mostly free again and I resumed playing with plakar .
TL;DR: I worked on plakar, go-fastcdc a FastCDC implementation for plakar, and some useless stuff. This activity report will be short # This activity report will be short because I spent the last ten days caring for my kid who got sick … before catching his stomach bug myself and spending the last few days in a somewhat familiar and unpleasant hell, unable to do everything I intended for…
TL;DR: I still have a discord, feel free to join. I worked on go-ipcmsg to make it nicer, go-privsep to make it more useable, and A LOT on plakar to make it plakar. Go-ipcmsg # In April , I wrote about go-ipcmsg , a package to bring an imsg(3) -like API to Golang and help me write code involving message and fd-passing between processes .
TL;DR: I have a discord now, feel free to join. I refactored plakar, implemented a local cache, improved parallelism, modified the push strategy, played with fuse and networking. I also did other stuff but let’s keep that out of this article. I have a discord now # I have a rubber duck sitting on my desk…
TL;DR: this is a short article, no TL;DR. Why so calm ? # As some of you know, I was diagnosed a few years ago with generalized anxiety disorder , panic disorder and alexithymia , a trait that makes it particularly difficult for me to cope with the disorders.
TL;DR: I worked on OpenSMTPD-portable, did a lot of plakar, a lot of Go and gave a technical talk on hypnosis. Let’s start with some LoFi # Relax.
TL;DR: I do LoFi now, eric@ revived some libtls conversion work I did a while back, I worked on UNIX-domain sockets support in OpenSMTPD, a few words about nooSMTPD Let’s start with some LoFi # Relax.
TL;DR: In this article, I explain what is an MDA and how to write a custom one from scratch using only shell scripting. What is a Mail Delivery Agent (MDA) ? # When a mail enters an SMTP server it is initially stored in the server queue before being moved to its next destination.
TL;DR: Crafted the OpenSMTPD 6.8.0p1 release Fixed several bugs in the way Proposed a few OpenSMTPD improvements to OpenBSD Working on my OpenSMTPD book Let’s start with some LoFi # Relax.
TL;DR: Haven’t posted since July but I wasn’t slacking, got temporarily context-switched out of opensource stuff. I tanked a year in work psychology # As some of you know, I study work psychology and have been attending evening classes for the last four years, sometimes up to 9 hours / week and more often between 3 and 6 hours / week. I’m pretty invested as you can tell,…
TL;DR: worked on my webmail, on a custom MDA and on a python framework for API development. Worked on my webmail # Again, I’d like to emphasize that this is something that’s going to span over many months so… don’t hold your breath .
TL;DR: Reworked my infrastructure at poolp.org, implemented folder pinning, worked on my webmail. poolp.org infrastructure rework # I decided to move my servers from online.net to vultr.com (affiliation link).
TL;DR: Worked on the OpenSMTPD 6.7 release; Did a lot of work on the new table API ; Wrote several PoCs; WARNING: Examples of code and configuration that appear in this article are here to help illustrate and explain development stages of my work.
TL;DR: Worked on my webmail ; Did a bit of OpenSMTPD work; Webmail vs mutt # I started using console clients to read my mail back when I was a student in early 2000s, and I’ve been using mutt for as long as I can recall now. I installed various mail clients along the years, some with graphical interfaces such as thunderbird or sylpheed , others with a web interface such as nullWebmail ,…
TL;DR: - I took a break to deal with personal stuff - I'm taking a long break from OpenBSD for personal reasons - I may or may not have experienced COVID-19, who knows - resumed work on OpenSMTPD and other projects This is a weird report # This is a weird report.
TL;DR: - Qualys released an advisory for a bad, bad vulnerability - an MTA is a very bad software to have a vulnerability in - hole was plugged but that's not enough, similar bugs should be mitigated in the future - article discusses what could have prevented escalation despite the bug What happened ? # Qualys contacted by e-mail to tell me they found a vulnerability in OpenSMTPD and would send me…
TL;DR: - brought back libasr to OpenSMTPD, it is no longer an external dependency - libtls-enabled OpenSMTPD is now a thing - documented filters and improved reporting No shiny feature this month, ungrateful work # OpenSMTPD has had quite a few features implemented since its latest major release. As we get closer and closer to the next major release, my work on new features will slow down to focus…
TL;DR: - wrote, reworked and translated multiple articles this month - got some goodies ready for my patrons - lots of work in OpenSMTPD's grammar, documentation and filters protocol WARNING:
TL;DR: - SMTP is the way computers exchange e-mails - it is a decentralised protocol meaning that ANYONE can run a node and be independant - it is being centralised at companies that have a history of abuse - it is being centralised in a country that has a history of abuse Where did you read this already ? # In August, I published a small article titled “ You should not run your mail server…
TL;DR: - greylisting is a sound idea - yet it is not really practical today - people tend to disable it or find work-arounds - SPF-aware greylisting makes greylisting usable again SMTP failures in a nutshell # SMTP is a fail-safe protocol which attempts very hard to ensure that messages do not get lost once they are in transit. Among the various mechanisms and requirements in place is the use of…
TL;DR: - our CI was improved - a new OpenSMTPD release, 6.6.1p1 took place to deal with portable issues - multiple portability issues were adressed - new table API in the works - filter-rspamd and filter-senderscore were improved - filter-greylist proof-of-concept published - wrote 2 chapters for my book Got myself a pinebook pro # I got myself an arm64 pinebook pro:
TL;DR: - yay, surprise emergency hand surgery... - OpenSMTPD 6.6.0 was tagged and released, including portable version - Merged contributions to fix filter-rspamd bug with DKIM - Work resumed on 6.7.0 feature - An OpenSMTPD book is in the works How I landed in the emergencies # I accidentally cut my hand real bad early October and rushed to the nearest hospital. They had a look, told me it was…