RSSAmplifier

Blog

poolp.org

Recent content on poolp.org

poolp.orgRSS feed ↗102 posts

Latest posts

Preventive software maintenance

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.

Out of my cave, lots of updates

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.

2023, a retrospective.

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.

Plakar: an avalanche of changes

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…

Plakar: a TON of changes

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 :

Plakar: vfs importer interface

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.

Building my own guitar, part 4

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…

Plakar: snapshot forking and tagging

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 .

Implementing a system call for OpenBSD

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…

Meet ChatGPT, the New AI Sidekick Helping Gilles!

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…

Building my own guitar, part 3

TL;DR: Received the new neck and… it fits perfectly ! The neck # UPS just delivered the new neck, which is a 24 frets PRS clone:

2023-Q2: music, unity, xgb, jujulang, setdb and opensmtpd

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 .

Building my own guitar, part 2

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.

Building my own guitar, part 1

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.

A new section appeared !

TL;DR: I will be discussing music on this blog from now on. This blog is a musical blog too # As some of you know, I have a deep interest for music.

March 2023: Melodya, MHL, MIDI-csv and more...

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.

I love you

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.

December 2022: some more earmuff and go-harmony

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 .

November 2022: feedchain, go-harmony, dart-harmony and harmonee

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…

Feedchain is a standalone news feed project

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…

October 2022: blog comments, a bit of plakar and the streamchain project

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.

June 2022: go-harmony and earmuff

TL;DR: did a lot of music, even while writing code. Code-unrelated work # As last month, I’ll start with code-unrelated work !

May 2022: yet again, tons of plakar stuff

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 !

April 2022: plakar.io, plakar refactor and ssh support

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.

April 2022: plakar keys and UI stuff

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.

March 2022: plakar clone and plakar sync

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 .

Farewell 2021, Welcome 2022: a personal post

TL;DR: A retrospective of 2021 2021 was a good year overall # Pandemic and lock-downs set aside, 2021 was a good year overall.

December 2021: a bit of plakar, a bit of go-fastcdc and some useless stuff

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…

November 2021: a bit of go-ipcmsg, a bit of go-privsep and a ton of plakar

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 .

October 2021: mostly Plakar

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…

August 2021: taking a break

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.

April 2021: OpenSMTPD, plakar, ipcmsg, privsep and a small hypnosis talk

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.

March 2021: backups with Plakar

TL;DR: I wrote a backup utility called plakar. Let’s start with some LoFi # Relax.

February 2021: nooSMTPD libtls-conversion, ciphers, curves and protocols

TL;DR: I converted nooSMTPD to libtls and implemented SMTP ciphers, curves and protocols selection. Let’s start with some LoFi # Relax.

January 2021: OpenSMTPD libtls conversion and UNIX-domain sockets support, nooSMTPD

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.

Writing a custom Mail Delivery Agent

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.

December 2020: OpenSMTPD 6.8.0p1 released, fixed several bugs, proposed several diffs, book is on Github

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.

November 2020: I wasn't slacking but no opensource work

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,…

July 2020: webmail, custom MDA and python framework work

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 .

June 2020: poolp.org, folder pinning and webmail work

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).

May 2020: OpenSMTPD 6.7.1p1 release, table-procexec and many PoCs

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.

April 2020: worked on a webmail and a bit of OpenSMTPD too

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 ,…

Anxiety, OpenBSD break, COVID-19 and resuming work

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.

OpenSMTPD advisory dissected

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…

January 2020: OpenSMTPD work - libasr and libtls

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…

December 2019: OpenSMTPD and filters work, articles and goodies

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:

Decentralised SMTP is for the greater good

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…

SPF-aware greylisting and filter-greylist

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…

November 2019 report: OpenSMTPD 6.6.1p1, filter-greylist and tons of portable cleanup

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:

October 2019 report: OpenSMTPD 6.6.0 release mostly

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…