Agentic Coding - AI, as a software developer

AI (more precisely LLMs) have been developing very rapidly lately, and it is hard to avoid them in everyday life - they have been integrated into Google search, our email, browser, mobile phone, social media, and they come across whether we like it or not. For some time now, it has also been said that they will replace programmers, and the term vibe coding has also appeared, which refers to developers only providing the vibe, and the AI writing the code.

I have been using it since the beginning (when I got the beta Copilot, quite early on), mainly as a smarter code completion tool, and recently I have occasionally asked it about topics that I rarely need to deal with and do not remember the details exactly, but I have never generated complete programs or larger code snippets with it. Until around the beginning of this year, I considered vibe coding mainly as a game, and most of the stories I came across on social media were more funny or interesting than serious - for example, someone created a complete service with AI assistance without any programming knowledge, just by “vibing”, and is already making money with it, then a few days later reported that their service was hacked and they had no idea what to do since they had clients, where could they get help, …

Then around the beginning of this year, some professionals whose opinions I value (e.g. Armin Ronacher) also spoke positively about the topic, and credible stories also appeared on Reddit, so at the end of spring I decided to embark on an experiment and vibe code a simpler web application. I leave everything possible to AI agents, and only touch the code if absolutely necessary.

TL;DR: I was skeptical at first, but now I have a new friend, Claude, who develops my live-tracker project in the evenings while we tinker in the garden or during long boring meetings.

Short introduction to filesystems

In an operating system, the filesystems are responsible for organizing and storing files and directories. They provide a way to access and manage the data stored on the storage devices. Such storage devices can be hard drives, SSDs, USB drives, magnetic tapes, optical discs, RAM disks, etc. They can be shared over the network and they can be even virtual (like procfs or sysfs).

Jujutsu VCS - short introduction

Jujutsu (jj) is a VCS unlike most other, its user interface is separated from it storage system(s). This allows it to serve as a VCS with many possible physical backends, that may have different data/networking models.

Currently it uses git by default as storage layer, making it compatible with all the existing git ecosystem.

Martin started it as a hobby project in 2019, and now it’s his full-time project at Google.

About running

About running

I hated running all my life. Then fate intervened, and since I didn’t have much opportunity for other forms of exercise, I started running in the forest during chemo - got that biweekly - first week was about survival, on the resting weeks I ran two-three times, 3-4kms. Then the habbit stayed - I loved the forest before, and I thought that if I could go out during chemo, then rain/mud/cold wouldn’t be able to hold me back. And indeed it can’t. The next year I kept the same pace - two small circles a week -, but then covid hit, we went home office, and I started increasing the distances and pace.

It’s interesting to look back and see that in the beginning I ran my 3-4 km tracks at the same pace as the 50+ km Vérmókus I ran recently.

Garmin RepaField

A few weeks ago there was a rainy weekend and I was not able to do the planned work in the garden, also the Vadlan Ultra Terep trail running competition was near, so I decided to create my own Garmin watch datafield.

My main plan was to display both the stamina and the remaining distance from the track in a comparible way (among other metrics I’m interested in, like heart rate, pace and such), but that failed since many metrics are not available through the SDK - stamina among them. But anyway, I’ve created my datafield, I really like it, and at the moment of writing 178 other runners have installed it, too.

You can download it from the Garmin Connect IQ store.

DIY energy gel

Energy gels are expensive as hell, so I decided to cook my own.

Here’s the recipe I used:

HTMX

HTMX is a small (~14k), dependency-free, extendable frontend framework, with a very straightforward approach. It extends the Hypertext capabilities of HTML, without the need of using JavaScript.

Basic concepts:

  • Any DOM element can trigger HTTP requests
  • Any HTTP methods can be used (not just GET and POST)
  • The response from the server is HTML or HTML fragment
  • State management is is server-side, frontend is simple and dummy

Web Security Basics

The security of websites was always an important topic, and in my opinion it’s still a bit neglected by some developers. We have plenty of new tools, browsers try to protect their users more and more, but still, it’s important for a developer to be clear with some basic concepts.

Basics

Hash

Hashing algorithms are basically one way functions, where (typically) the hash(x) call is quick and easy, but its inverse is very slow and expensive - even impossible. In most cases they map arbitrary strings to fixed length, ones with very low probability of collision.

REST

REpresentational State Transfer is a software architectural style for creating stateless web APIs. These APIs are typically based on HTTP methods to access resources specified by URIs that are transmitted in JSON or XML encoded form. They are called RESTful APIs.

Linux Basics

a.k.a don’t fear the terminal

As a (mainly) web developer, I develop software that is mostly running on Linux - whether it’s a virtual machine in the cloud, a docker container, or my NAS under the staircase. So - for me - using any other operating system for development would be an extra hindrance.

To be honest, I like the customisability and freedom that only a Linux distribution can provide, I’m on Linux for more than 20 years, and happy with it. But if you are new, I try to give you a quick overview, why the terminal could be a useful tool.