Aug 31, 2025| Milad Alizadeh
Unix-like systems include a Terminfo database that describes the capabilities of various terminals. When a program needs to perform terminal operations, it reads the TERM environment variable to identify your terminal type, then queries the Terminfo database to determine available capabilities and how to use them. This affects output formatting, colour handling, cursor movements, and other terminal behaviour.| Milad Alizadeh
I switched from beamer/LaTeX to Marp a few years ago for creating slide decks. Marp is an incredible open-source ecosystem, and over the years, I’ve invested significant time customising its various aspects to meet my needs. The return on investment has been clear. Most of my efforts have gone into creating custom themes (which I plan to open-source soon) and developing a custom Marp engine with some tweaks and additional markdown-it plugins.| Milad Alizadeh
I’ve started learning Go, and so far, I like it. Goroutines and channels are great, and I appreciate how OOP in Go is mostly limited to types and methods with type receivers.| Milad Alizadeh
Shell scripts are powerful but debugging them can be challenging without proper logging. In this post, I’ll share some techniques for logging shell scripts:| Milad Alizadeh
My website went down recently for some random reason, and it took me some time before I realized it. So I decided to put an outage detection system in place.| Milad Alizadeh
I use LLMs extensively throughout my day, but I find the workflow of opening a website and starting a new conversation before typing my query to be slow and disruptive. Since I normally prefer keyboard-driven interfaces like rofi/dmenu for most tasks, I wanted a simpler solution.| Milad Alizadeh
Copying text to clipboard when working on a remote machine via SSH can be tricky. While you can usually highlight text with your mouse to copy it to the primary selection clipboard (and paste with middle-click), this approach has limitations.| Milad Alizadeh
A lot of my daily work involves plotting with matplotlib. While Jupyter notebooks are the popular choice for this, especially for sharing and presenting results, I’m not a fan of using them as a development environment. They encourage bad practices, and I much prefer a lean terminal/script-based workflow for Python development.| Milad Alizadeh
I don’t like poetry. I find it slow, buggy, and poorly designed. It often gets in my way and I end up spending my time debugging poetry instead of actually working on my projects. Perhaps it makes packaging or upgrading dependencies a bit easier but ultimately I don’t find it adds much value on top of built-in Python tools to justify the complexity and poor user experience.| Milad Alizadeh
I was listening to an episode of the Connected podcast where Federico Viticci talked about his preference for reading some websites directly in the browser instead of using read-it-later services or RSS feeds. He wanted a simple, distraction-free experience rather than a full-featured browser.| Milad Alizadeh