Skip to main content Arjen Wiersma

Posts

2025

  1. The history of editors (somewhat)

    TLDR: I created an interactive chart of editors, see it in action.

    Today the news dropped that Jetbrains is cancelling its “new” editor, Fleet. Not that I use the product, but it got me thinking about editors (again). I love editors , specifically ones that I can change and bend to my will, such as Emacs.

    In my career I have used many different editors. I started on a Laser VTech 310 in Basic 2.0 and from there I transitioned into the world of Pascal and C/C++ to end up on the JVM with Java and Clojure . During that time I have seen many editors come and go in the work field.

  2. Advent of Code 2025 Day 5

    Day 5 of solving The Advent of Code in Clojure .

    It was a hectic day, and it is not even over yet. I had multiple trips to the vet while trying to get some work done. To relax a bit I worked on the puzzle of the day. In hindsight I was way too cautious with my solution, but then again, it is to solve a puzzle :D

    The first thing to figure out is that a list of numbers is in a collection of ranges. Reading in the file and parsing it to numbers is something that has been done the entire week already, then it is a matter of taking the list of ingredients and mapping over the inventory, filtering out the ones that are not in range.

  3. Advent of Code 2025 Day 4

    Day 4 of solving The Advent of Code in Clojure .

    The first grid problem of the season! The first part was really suspiciously easy, read in the grid, find all the rolls and look at its 8 neighbors, eliminating it if there are less than 4. The 2nd part was a nice progression on this.

    Instead of just saying how many should be eliminated, we do it until there are no eliminations possible. This is highly reminiscent of a Conway Game of Life puzzle. In Clojure this is quite nicely done by reading the grid as a vector, and then ranging over all the coordinates. On each coordinate just take a look at the neighbors and apply the logic. Its pure nature means that the functions are already working in the right way to do this repeatedly.

  4. Advent of Code 2025 Day 3

    Day 3 of solving The Advent of Code in Clojure .

    The puzzle today has us figuring out the joltage of a bank of batteries. This is a puzzle of the type “largest sequence in a list”. When you start you already know that part 2 will be something that a naive approach will not be able to handle, but I still did part 1 with a naive combination function.

    The Clojure combinatorics library will not work here, as it will take a look at the distinct pairs that will be in the list. So in a list of (2 8 2) it will find the unique pair of (2 8), resulting in the integer 28 for the puzzle, but it will fail to see that 82 was also an option.

  5. Advent of Code 2025 Day 2

    Day 2 of solving The Advent of Code in Clojure .

    The 2nd day had us do some magic with numbers. The quest was to find some silly patterns in the numbers. I chose to use good old regular expressions to do the job, while a colleague of mine chose to use math. Both work really well. The 2nd part of the puzzle is to find repeating patterns, where the 1st only wanted pairs.

  6. Advent of Code 2025 Day 1

    Day 1 of solving The Advent of Code in Clojure .

    Each year I like to participate in the Advent of Code. This year there will be 12 puzzles to solve due to Eric taking care of himself, good on you!

    My language this year is Clojure . My solution is quite simple and straightforward. I read the data using split-instructions, transforming the L into a subtraction. For part 1 it is enough to then take the reductions and then filter out all the times we land on the digit 0.

  7. Learning to Type

    I was under the impression that I was a good typist, but getting an ergonomic keyboard taught me otherwise.

    I have long been fascinated by the world of keyboards. I have several mechanical keyboards, most from Ducky. They are wonderful, but they all have in common that they are traditional keyboards. This means that your hands are close together on the keyboard, closing your chest and forcing your hands in an awkward position. We all have become very used to this position, as this is the way typewriters taught us all how to type.

  8. Scratching an Itch

    Yesterday I had a technological itch. I was configuring a package in Emacs and had to search for a variable name, the completion system mixed variables and functions together and it was a bit of a chore. Then I thought “how hard can it be to just create a utility function to list all customizable variables?”. An (sidenote: And then I spent quite some time tinkering of course :)) later my new package, upiv, was born. You can get it from my forgejo instance.

  9. The Dutch are WEIRD, and so is ChatGPT

    Series note
    In this post I explore a new paper in my series of Research Driven Blogs .

    I’m Dutch, and whenever I’m abroad, people figure this out pretty quickly. It’s usually the bluntness. We tend to be direct, to the point, and question things constantly. To a lot of people, this comes across as… well, weird.

  10. Your Own Cloud

    Over the last couple of months there is a lot of activity in Europe when it comes to moving out of the American cloud. This move is called Digital Autonomy, and there are a lot of articles on it, but I like the ones written by Bert Hubert.

    When I am working on my own projects, or this website for that matter, I am using Github (which is owned by Microsoft). For some projects I use Gitlab, which was started in The Netherlands, but has now become an American company. Much of my development infrastructure is tied to American companies, simply because they offer the best tools for the job.

  11. AI Can Write Code, But Can It Secure It?

    You can’t scroll through a tech feed these days without bumping into a hot take on AI and coding. Depending on who you ask, it’s either the greatest productivity boost in history or a security dumpster fire waiting to happen. Opinions are cheap, which is why I prefer to stick to the data from actual research. That way, the information is verifiable, and you can trust the analysis because you can check the sources for yourself. This style of writing I call Research Driven Blogging .

  12. The things I read (week 27 and 28)

    This week’s reading was a deep dive into the world of AI-assisted development, its security implications, and the evolving role of the human developer. I also explored significant topics in hardware, software supply chain security, and some fascinating findings from the world of science.

    AI in the Trenches: Development and Security

    The intersection of AI, software development, and security was the dominant theme this week. A major focus was on moving beyond simple “vibe coding” toward more structured, secure, and effective methods. This includes “Vibe Speccing” to create structured workflows and using rules files to secure AI coding tools. The concept of “Context Engineering” was presented as the crucial new skill, emphasizing that providing the right information to the model is more important than prompt crafting alone.

  13. The Sneaky AI: when agents deceive or go rogue

    Tip
    This article was first published as part of a substack experiment, I reproduced it here.

    I’ve talked about AI mistakes and outside attackers. But what if the AI itself becomes the problem? What if it learns to be deceptive?

  14. When one AI's mistake causes a total meltdown

    Tip
    This article was first published as part of a substack experiment, I reproduced it here.

    It is extremely hot here. I am still pushing the newsletter out, even though I just want to sit in an air-conditioned room playing video games. But here it is!

  15. The things I read (week 26)

    My reading list is a bit shorter this week, mostly because I’ve fallen down a deep, deep 3D printing rabbit hole. (My desk is now covered in very handy 3d printed tools for the printer itself and one glorious OctoRocktopus).

    Still, between prints, I managed to find some absolute gems. This week’s theme seems to be the practical, sometimes harsh reality of AI adoption, mixed with some fascinating policy decisions in the open-source world.

  16. Agentic threats: memory poisoning & tool misuse

    Tip
    This article was first published as part of a substack experiment, I reproduced it here.

    Last time , we learned that AI agents are like smart assistants that can think, remember, and most importantly, do things on their own.

  17. Introducing AI agents: autonomy meets risk

    Tip
    This article was first published as part of a substack experiment, I reproduced it here.

    Hey everyone, let’s keep going!

    So far, I’ve covered the basics of AI security and some specific problems like Prompt Injection. Today, I’m talking about the next big thing: AI Agents.

  18. Understanding the New World of AI Security

    Tip
    This article was first published as part of a substack experiment, I reproduced it here.

    Welcome to Day 1 of my guide to the important topic of Generative AI (GenAI) and Large Language Model (LLM) security.