Skip to main content Arjen Wiersma

Posts

2025

  1. The joy of NixOS

    In July 2023, I installed NixOS as my daily operating system. NixOS is a Linux distribution that emphasizes a declarative approach to system management. This means you define your desired operating system configuration in a file (e.g., KDE with Emacs 30 and Firefox), and the Nix package manager uses that file to create your OS. Every change generates a new version, allowing you to revert to a previous version if anything goes wrong.

  2. Build an API with reitit in Clojure

    In my previous post I highlighted that I set myself the goal of creating a self hosted comic book collection tool. Before that, in a post about tooling , I reiterated my ❤️ for Clojure as a language. So, this is the start of a series of articles detailing how the development is going, and also as an introduction to the various parts of the tech stack.

    Clojure is special to me in that there are hardly any big frameworks in the ecosystem. Clojure is more like Lego, there are countless building blocks of various shapes and sizes. It is up to you as the developer to stick the blocks together to get something usefull. You might guess that I also ❤️ Lego.

  3. A New Theme

    So, a new year, a new theme! I switched my blog to use the Today I Learned Theme. This theme has a great feature where it also maintains a collection of notes and shows a graph with related notes. This is very similar to how I use org-roam.

    I will not be transferring all my notes over, but I thought it would be a very nice feature to share some of my notes with you. This year I am focussing on Clojure and Rust , and as a result I will be posting my notes on the new things I learn.

  4. Choose your tools

    Note
    Originally posted on 2024-09-30 (Monday). It was updated in January of 2025.

    I ❤️ to build software. I sadly do not have a lot of time next to my daily work to spend on my side projects, so I have to be disciplined in where I invest time. I wish I could spend endless amounts of time on exploring new technologies, but sadly I simply do not have that time. In writing this is sometimes referred to as “to kill your darlings”.

2024

  1. Advent of Code 2024

    It is December again and that means it is time for the Advent of Code. Due to my workload and family obligations I will probably not be able to get very far this year, but still I wanted to write a post about it.

    This year I am using Java, together with my students. My goal is to write as modern as possible Java, which means using streams and new language constructs where possible.

  2. The right to repair

    My old laptop, now almost 6 years old, has seen it all. From conferences, to lectures, traveling to distant places and to the library. I did a lot of work on it during the writing of my thesis, and it is a victim to countless hours of compiler time.

    Sadly the battery started to die. It got to the point that you can only use it shortly for heavier loads. Luckily, unlike certain hardware (looking at you Apple), it is easy to fix. All it needs is a new battery. So I found that ifixit had the right parts and a very useful kit with all the right tools to do the job.

  3. Remembering Bastiaan

    Today the academic world is remembering Bastiaan Heeren, who passed away last week.

    I spent the better time of a year working on my thesis, and before that I enjoyed lectures given by Bastiaan. He was a person with a great love for teaching, especially when you can get into the nitty gritty details of software quality and the benefits of functional programming.

    I look back fondly on my time with Bastiaan. He was an open, warm, critical and encouraging human being. He had a great love for his family and work.

  4. Using Traefik

    I recently came across Traefik. It is a reverse proxy built specifically for services in the cloud. I was searching for a convenient (up-to-date) way to expose my project using a reverse proxy within docker-compose. I used to use nginx for this, but it then requires a generator and an lets encrypt listener (so 3 containers). Traefik only requires a single container and allows you to label your docker containers to apply rules to them.

  5. Enhance testability with selmer

    This is my first article in a series called Rock Solid Software. In it I explore different dimensions of software that does not simply break. You can write good software in any programming language, although some are more suited to a disciplined practice then others, Clojure is definitely in the relaxed space of discipline here.

    Today I am exploring the use of Selmer templates in Clojure. If you have explored Biff at all you will know that all the UI logic works by sending Hiccup through a handler, which will turn into HTML through rum (specifically the wrap-render-rum middleware). If you provide a vector as a result for an endpoint, it will be converted to HTML.

  6. Bronnen beheren met Zotero [NL]

    Je hebt tijd gereserveerd om te gaan studeren en je volgt een ritueel om goed in jouw “Deep Work” modus te komen, dat studeren gaat echt goed lukken! Tijdens de colleges en in de lesmaterialen vind je allerlei links naar papers, websites, YouTube videos en haal je veel informatie uit boeken. Al deze bronnen zijn zeer waardevol en bij de eindopdracht zul je veel van deze bronnen weer moeten gebruiken om argumenten te onderbouwen of juist iets te ontkrachten. Hoe ga je dan om met die bronnen zonder dat je gek wordt van allerlei documentjes?

  7. "Deep Work" voor het studeren [NL]

    In mijn vorige artikel heb ik uitgelegd hoe je tijd kunt vinden om te studeren, de vraag is echter, is alle tijd hetzelfde? Het simpele antwoord is “nee”. Maar waarom niet, zul je vragen, en daarmee komen we op het onderwerp van dit artikel.

    Cal Newport heeft een fantastisch boek geschreven, “Deep Work: Rules for Focused Success in a Distracted World”. In dit boek onderzoekt hij hoe je gefocust werkt en wat er voor nodig is om gefocust te blijven [1]. In het boek identificeert hij 2 soorten werk; “Deep Work” en “Shallow Work”. Deze concepten hebben voor mij de aanpak van mijn dagelijkse werk zelfs veranderd, maar dat is een verhaal voor een andere keer.

  8. Tijd vinden om te studeren [Dutch article]

    This is a Dutch artcile, there is also an English version.

    Dus, jij hebt besloten om te gaan studeren? Misschien wil je jouw HBO- of Masterdiploma halen, of juist dat ene supertechnische certificaat bemachtigen. Het is geweldig dat je deze stap gaat zetten, maar zodra je begint, zul je vrij snel de vraag moeten beantwoorden waar je de tijd vandaan haalt.

    Tijd is onze meest waardevolle, niet-hernieuwbare bron. Studeren vergt tijd – en niet zo’n klein beetje ook – dus wil je het natuurlijk goed doen. De meeste studies verwachten dat je wekelijks ergens tussen de 12 en 24 uur investeert om bij te blijven, en dat is flink wat! Als je nog niet studeert, probeer dan eens na te denken over welke dagen en momenten je die tijd kunt vrijmaken. Ga je minder uit eten of juist minder sporten? Vroeg opstaan in het weekend, of juist extra laat naar bed?

  9. Finding time to study

    This is an English article, there is also a Dutch version.

    So, you’ve decided to start studying? Maybe you want to earn your Bachelor or Master’s degree, or perhaps you’re aiming for that highly technical certificate. It’s great that you’re taking this step, but once you begin, you’ll quickly need to answer the question of where you’ll find the time.

    Time is our most valuable, non-renewable resource. Studying requires time – and not just a little – so you naturally want to use it well. Most programs expect you to invest between 12 and 24 hours per week to keep up, and that’s quite a bit! If you’re not currently studying, try thinking about which days and times you could free up that time. Will you eat out less or exercise less? Get up early on weekends or stay up late?

  10. Master of Puppets^HScience!

    So, on Thursday I defended my thesis in front of the graduation committee, and passed! This means that the work I have been doing for the last year comes to an end. From now on there are not long nights and weekends working on my thesis anymore.

    Back in 2021 I started my journey of achieving a Master’s degree, first with a connecting program and then with the 2 year Master program. Even though I have been in computer science in some form for the last 30 years I still found it to be quite a learning experience.

  11. Resigning as Hack The Box Ambassador

    So, today I have some news. I will be resigning as Ambassador for Hack The Box after our in-person meetup in June (2024). This means that I will be stepping down from organizing the monthly virtual and quarterly in-person Hack The Box meetups. Let me explain how I got to this decision.

    The beginning

    So, in 2019, I started out building a cyber security curriculum for NOVI Hogeschool. I had the ability to greenfield the courses and create something that is of value to students. In this curriculum I started using Hack The Box for exercises and training next to the regular classwork.

  12. The cyber cafe podcast

    Last week I was a guest on the Cyber Cafe podcast by rootsec. It was a fun discussion on education and the current xz backdoor story. It is in the Dutch language. It is available on youtube and included below:

  13. Microsoft Teams (v2) on Linux

    This post is just a small note for those of you who also run Microsoft Teams on Linux through their browser and now receive a note “your browser does not meet the requirements for the new Teams”. It turns out that the client is looking at the user-agent string to determine which browsers it accepts, and which not.

    So, if you have the message, install an user-agent switcher and select a common browser on a common OS (from the MS perspective) and you will suddenly meet the requirements.

  14. My computing environment

    This is a longer form article. I is relevant as of February 18th 2023. If the circumstances of my environment changes I will try to update this article to reflect the situation. You can find the full source code of my dotfiles on Github.

    I like consistency and simplicity. I do not like to use many different tools to do different things, I rather spend my time learning to use a few tools very well then to follow the hype on the latest trend of tools for something we have been doing forever.

  15. Heading to the finish line

    It has been a little while. I have been swamped with work and the work on my thesis, leaving no room to finish the Advent of Code or much of anything else.

    Yesterday I gave my practice presentation for my thesis. This means I am one more step closer to the finish line. During the day there were many interactions with fellow students. One of the topics has been the templates to use at Open Universiteit. So, I thought I would just create a repository of the templates that I use, so that anyone can learn from them.

2023

  1. Advent of Code 2023 day 9

    The weekend generally is a place to find hard puzzles again, this time not so much. A simple quest to find the next number in a sequence with a fully written out algorithm to follow. They key here is to use recursion.

    go code snippet start