RSSAmplifier

Blog

Rakhim's blog

Hi, my name is Rakhim. I'm a staff engineer at IQM Quantum Computers. I'm building Exotext.com and Minifeed.net . Reach me on Bluesky or Twitter .

rakhim.exotext.comRSS feed ↗35 posts

Latest posts

Making human languages irrelevant

If global large-scale human communication continues to be concentrated within large social media platforms and content providers like YouTube, human languages may become sort of irrelevant in that space. Sometimes I Google for something and see a Reddit result in Finnish. I live in Finland, so it makes sense when the search engine prioritizes such results, but most of the time the actual Reddit…

Related UI elements should not appear unrelated

I know, I know, this sounds controversial. But hear me out. A few years ago a new trend in UI design emerged where related elements would appear more and more detached and unrelated to the things they are meant to point to. Here's a screenshot of Google Chrome circa 2010: Remember those tabs? (I love them.) They convey the separation and connection extremely clearly. The first tab is open, and it…

Windows 11 after two decades of macOS: okay, but also awful

Recently my partner's trusty old 5K iMac died after 8.5 years of service (Radeon gpu is fried). At first I thought it was finally time to get one of those cool little M4 Mac Minis, but then decided to conduct an experiment. I gave up my Mac Studio M2 Max (64 Gb unified memory and 1 Tb storage) and tried to use my Windows PC as the main machine. I originally purchased it to learn Unreal Engine and…

Modern UI is clean and invisible? Ha, I wish!

This is an excellent video about modern UI/UX: "The Hidden Cost of 'Clean' Design." I highly recommend watching it and checking out Ilia's other work. I agree with nearly everything in the video, including this standout quote: If you want to understand a generation, don't listen to what its witnesses say. Look at what it creates. Ilia compares Apple Music and Winamp. One is modern and "clean", the…

Alarm is sacred, must not fail, but iOS 26 is wicked

There are two smartphone features that I consider sacred and believe they must never fail: phone calling and the alarm. There is an unspoken contract between users and vendors. Sure, innovate away, change the UX at will, whatever. But you can't fail at making phone calls and sounding the alarm. I missed the alarm for the first time in many years last weekend. I have an iPhone 13 Pro, with the…

Examples are the best documentation

When I'm searching for docs, 95% of the time a single example would suffice. Yet, 95% of the time I can't find one in any official source. It seems that by default formal technical documentation is targeted towards someone who's deeply immersed in the ecosystem. But many developers have to juggle a lot of "worlds" in their heads daily. When jumping between projects, languages and frameworks, it…

Benjamin Button Reviews macOS

Apple's first desktop operating system was Tahoe. Like any first version, it had a lot of issues. Users and critics flooded the web with negative reviews. While mostly stable under the hood, the outer shell — the visual user interface — was jarringly bad. Without much experience in desktop UX, Apple's first OS looked like a Fisher-Price toy: heavily rounded corners, mismatched colors, inconsistent…

AI is not another abstraction because god plays dice

Some folks have gone all-in on AI-assisted coding. I've seen some tweets (not sure if sarcastic or real, to be honest) expressing disgust about the prospects of ever writing code by hand anymore. The common argument I hear is that this is just another step in the long history of programming breakthroughs. We moved from machine code to assembly, from assembly to C, and from C to high-level…

Finland is a high-context society that loves defaults

In anthropology there is a notion of high-context and low-context cultures. A high-context culture is a culture or society that communicates dominantly through the use of contextual elements, such as specific forms of body language, the status of an individual, and the tone of voice employed during speech. Rules are not directly or explicitly written or stated. By contrast, a low-context culture…

AI is impressive because we’ve failed at semantic web and personal computing

Unless someone wrote an article about that exact thing, a plain full-text search engine cannot answer a question like this: What animal is featured on a flag of a country where the first small British colony was established in the same year that Sweden's King Gustav IV Adolf declared war on France? But ChatGPT got the correct answer in a few seconds. Flag of Dominica features the Sisserou parrot,…

Thank you Google for breaking my YouTube addiction

Over the past few years, Google has done a surprisingly great job of making YouTube less interesting and engaging — and in turn, less addictive. Maybe they've got some ethical guidelines in the top management now? If so, well done, Google. Back in the day, when YouTube was mostly about your subscriptions, it was mildly addictive. You’d watch a C++ talk, and the sidebar would actually show you…

But what if I really want a faster horse?

People in tech business circles love this quote by Henry Ford: If I had asked people what they wanted, they would have said faster horses. The idea is to think outside the box and create entirely new markets instead of just new products in existing ones. Like Apple creating the iPhone (sure, smartphones existed before—but cars also existed before the Ford Model T). But sometimes, I really want a…

How to play Half Life 1 and 2 on M-chip Macs

Half Life and Half Life 2 are my favorite games. I've played them through multiple times. I played Half Life 1 for the first time in 1999 or 2000, can't remember. My computer at the time could barely run it. Nowadays, it's a struggle to play older PC games on a Mac. There are two fundamental issues: A while ago macOS had dropped support for 32-bit applications. Recently, Apple hardware migrated…

Knight Ride: a game about rogue (chess) knight

I made a little puzzle game called Knight Ride. You can play it here: knightride.rakhim.org . A few months ago, I started learning game development with Godot and began building a chess-inspired game. Game development is new and unintuitive to me, so for some quick 'build-n-ship' dopamine, I took one mechanic from that project and turned it into a simple browser game. The idea is simple: you have…

Don't make it "like Google"

Google is usually criticized for its relentless collection of personal data. It's an important and widely discussed topic, but I’m surprised there isn’t another common criticism: its responsibility for UI & UX design and its consequences. Any large company that creates products, whether software or physical, is responsible for how its design choices shape the broader perception of design itself.…

Why I prefer to git stage outside of the editor or the terminal

Sublime Merge is a fantastic Git client. I’ve been using it for years, even after switching from Sublime Text to VS Code. VS Code has excellent built-in Git support, but I still prefer a dedicated app for staging files. Even when I used Neovim or Emacs (which has Magit , arguably the best Git client), I stuck with a separate tool for this step. Why? Staging files is the last significant step in…

They made computers behave like annoying salesmen

Computers are precise machines. You can give a computer a precise command using an inhumane language, and it should perfome the command. It's not a human, and there is no point of treating it as one. The goal of humanizing user experience isn't to create an illusion of human interaction - it's to make these mechanical commands more accessible while preserving their precise, deterministic nature.…

YouTube picks, December 2024

I've added a new feature to Exotext which converts YouTube links into embeds (when a link is on its own line and surrounded by newlines). To test things out, here are some cool YouTube videos I've watched this month.

How to make forbidden changes to SQLite tables

Sometimes you need to make a change to an SQLite table which is not possible with a simple ALTER command. For example, today I realized that email_verifications table in my DB references users with a foreign key, but does not have ON DELETE CASCADE (I simply forgot to put it in). This makes it impossible to delete a record from users table if there are corresponding records in email_verifications…

I wish your bespoke React-Tailwind-etc static site generator had RSS

I discover and curate dozens of blogs every day while working on Minifeed . The blogging is far from dead, there are SO many blogs out there! Sadly, lots of blogs don't have RSS. What's surprising is that the "techiest" of blogs usually don't have RSS. Quite often, I come across a beautiful blog, handcrafter with love by a passionate programmer, usually built with some modern frontend stack like…

How to build and publish multi-platform Rust binaries via Github actions

While developing Textpod (a simple note-taking app written in Rust), I needed to automate building and publishing on Github. This article (or the corresponding set of YAML-files ) describes the setup which performs the following: Build binaries for Windows and Linux Build binaries for x86 Macs (Intel) and ARM Macs (arm64, M-chip) Add the files to the latest Github release, along with checksums…

How do you do, fellow web developers? A growing disconnect.

I had a "woah" moment once when one programmer got genuinely baffled about the fact that a website somehow "erases" the history of requests from the Network tab of Chrome DevTools. He was wondering what magic method was used to hide the communication. He hadn't realized the app was not a single-page JS application (SPA), and he actually wasn't aware there is another way to make web apps. The idea…

Jupyter notebooks as e2e tests

Lots of scientific Python libraries are often used within Jupyter notebooks. At work, we develop and maintain plenty of such libraries for quantum computing, and some more higher-level ones include extensive user guides in form of Jupyter notebooks. Recently, I've been involved in building a new library, and it ended up containing a half dozen notebooks, covering everything from a quick start…

Lesser-known science fiction movies

I love science fiction in all forms, and I can't resist watching almost any sci-fi movie. So, I watch a lot of them. It's a bit annoying how "sci-fi and fantasy" became the standard pairing. In my eyes, these genres are exactly opposite. It's like grouping movies about horses with movies about cars. Anyway, here are some lesser-known science fiction movies that I recommend. The Man From Earth Can…

Your minimalistic app is great! Can you add these 38 features, though?

A few weeks ago I've released an extremely simple note-taking app called Textpod . I just wanted a "one big-ass text file" kind of thing, but with file attachments and link archiving. The whole idea is that it's basically a text file with minor magic sprikled on top. The reception has been great! Seems like many people were looking for something similar. I also received lots of feedback and…

Should I use web fonts?

I'm not sure how I feel about webfonts. For now, I'm using IBM Plex serif, which looks pretty, sure. It loads pretty fast thanks to Cloudflare Fonts, which rewrites Google Fonts to be delivered from my own origin. But is it really necessary? Also, reading longer texts with a serif font is not everyone's cup of tea. A standard sans-serif font stack looks kinda ugly on Windows. Verdana still feels…

In search for a good Markdown editor for my blogging platform

I don't envy beginners trying to get into web development today. I haven't been doing any frontend web development for more than a decade. Today I was trying to do a simple thing: get a JS markdown editor to work in the browser. Found this beautiful looking library called Tiptap . This example seems great! Let's try to integrate it. What I naively expected: < script src = "some_cdn_url.js" > < div…

Here we go

I just wanted to write again. My old blog at rakhim.org is built with Hugo, and after installing a new version of Hugo things broke. After 25 minutes of attempts to fix it I though "yeah, that's it", and decided (as you do) to just build a simple blogging platform. Static site generators are great. Hugo though has too many features I never use. But my overall issue with static site generators is…

The mandatory smartphone

I hate to use a smartphone. Being able to view maps, look up info on the go and listen to music is great, but I always felt that smartphones are like plastic utensils. Very useful on the go, but temporary in nature. A compromise. Using a smartphone for more than a few minutes in a row feels wrong. Wrong because either I'm trying to do something I should've done before or should do later, at my…

It's okay to walk uphill

At first I cycled up the hill with all my force trying to impress the world. My athletic sweat was the only thing that showed the effort. My face was trying to do the opposite, to convince the unseen viewer that the ascent is effortless, easy even. Then I started noticing it. Who is the viewer? Am I in a movie? Sometimes, there aren’t even people around. This is madness. I can convince myself that…

Programming vs. Coding vs. Software Engineering

Programming, coding, and software engineering are often used interchangeably. Here is how I usually think of them. Programming Programming is solving explicit problems in a verifiable manner. It is similar to mathematical proofs. "Find an element in a sorted sequence" is a problem. A binary search algorithm is a solution. You can prove it works, and even analyze whether it's optimal in terms of…

Products aren't for people yet

Remember how your parents would try to use Windows 95 or something like Norton Commander. They’d copy an app shortcut to a floppy disk and be amazed how much stuff they were able to put inside. All the games, and lots of space left! And you’d think they don’t understand anything at all, they are just clicking pretty much randomly, hoping this magic machine would at some point understand them and…

Producing a video lesson

A few years ago, I've made a bunch of videos on YouTube about foundational topics in programming. There are lots of hand-drawn cartoons and some rudimentary animation. People keep asking how I made those, so here we go. Inspiration Structure and Interpretation of Computer Programs (SICP). If you’re only going to read one book on programming, it should be this one. Interactive articles and talks by…

Please, recommend me a book about X

In the past I had spent hours asking people to recommend me some books, in both real life and on the internet. I was starting to learn programming, so obviously I wanted to find The Bible, the best book for each of the aspects of coding. What is the best book about algorithms? Can you please recommend a book about Java? I’m looking for a good book that’ll teach me Django. Any suggestions? When…

Dreaming of obsession

When I was a kid, everyone around me was obsessed with something. For some it was football, for others cars, video games or some martial art like karate. And I was jealous. I couldn’t get obsessed, I was trying to, but couldn’t. I didn’t have doubts that I’ll become obsessed with video games as soon as I get a gaming console. My parents got me a NES (actually, a Chinese NES clone called “Dendy”…