Based on https://deadprogrammersociety.com/2025/03/calling-mcp-servers-the-hard-way.html . In one terminal: ➜ curl http://127.0.0.1:64342/sse data: /message?sessionId=41d13160-1698-420c-b5d3-3f925ac5c019 event: endpoint In another terminal (copying session id from above): ➜ MCP_ENDPOINT=http://127.0.0.1:64342/message?sessionId=41d13160-1698-420c-b5d3-3f925ac5c019 ➜ curl -X POST "${MCP_ENDPOINT}"…
This blog post is a catalog of Kotlin tidyings based on my experience of writing server-side Kotlin. The term “tidying” is inspired by the “Tidy First?” book and essentially means a small refactoring. Some of them are specific to Kotlin, while others are applicable to any programming language. I plan to keep this catalog updated so it might naturally evolve over time. Be aware these are not rules…
Pretty much all modern web browsers have developer tools console which lets you type some JavaScript code and run it in the browser. In theory, this allows you to do any kind of automation and extend browser functionality at runtime. In practice, it’s not suitable for the purpose, and, to be fair, most users are probably not even aware of the developer console, so for a browser development team…
Limited work-in-progress doesn’t seem to be a very well-known idea in the software development world but there are few practices which we use without realising that they’re limited work-in-progress (WIP) techniques. One example is pomodoro which suggests to focus on a task for 25 minutes and then take a break (without checking email or social networks), i.e. pomodoro limits the amount of tasks…
(Updated 17th October 2024) As software developers, we seem to be mostly interested in technology and tools rather than the human side of the process such as software development workflows. For example, consider TDD — one of the few workflows that made it into the mainstream. These days pretty much every project has some kind of unit testing library imported and everyone has TDD on their CV.…
There is a lot of focus on the technical side of software development: programming languages, libraries/frameworks, architecture, etc. But not that much focus on what humans are supposed to do while using the tools. There seems to be an implicit assumption that developers will do things in the most optimal way. Unfortunately, this assumption is often false. In the same way that people don’t always…
This is a quick intro into http4k — a Kotlin library for writing HTTP servers and clients. Unlike many other libraries and frameworks with (over)complicated core abstractions and workflows, http4k uses a few simple concepts which encourage good design and testability. The examples below are based on the “ Live coding: Server as a function with http4k ” talk I’ve been doing earlier this year. Hello…
Recently Peter Kofler wrote a blog post in which he looks at the Design of a Separable Transition-Diagram Compiler paper by Melvin E. Conway (which was published in 1963 and considered to be the first paper mentioning coroutines) and reimplements a basic coroutine in the modern assembly for Windows. Since I don’t have access to any Windows machines, Peter kindly agreed to pair up with me on…
For the benefit of anyone interested and as a reference for myself, here are some of the IntelliJ and related macOS settings I normally use. This page will be occasionally updated as IntelliJ and my preferences evolve. Last updated on 20th May 2025 for IntelliJ IDEA 2025.2 EAP . Settings In Main Menu > View > Appearance Enable Navigation Bar > Don't Show Enable Compact Mode Disable Toolbar In…
Theory These days audio loudness is measured in LUFS (Loudness Units relative to Full Scale). This is a relative measurement, where, as I understand, 0 LUFS is the loudest audio you’re allowed to broadcast according to the standard by European Broadcasting Union . And -10 LUFS is 10 decibel quieter than 0 LUFS . Although LUFS is a bit more involved than decibel and measures “weighted perceived…