Let’s say you want to train a neural network to advise on a healthy lifestyle. You make a randomized questionnaire and hire a bunch of people to answer the questions like “how does drinking [1 ∨ 2 ∨ 3] cups of water every [morning ∨ afternoon ∨ evening] makes you feel?”

Now let’s imagine, for the sake of this mental experiment, all your respondents have started to take cocaine. They now feel great all the time no matter how bad their health is getting.

“No sleep for two days?” “Great!” “Jogging for seven hours?” “Super!” “Bourbon for breakfast?” …


I’m Ukrainian and I can’t save my money.

I can’t save in cash. I learned this early in life when I got a summer job to buy a new second-hand monitor. Mine was in a pretty bad shape, it kind of worked but needed manual adjustments all the time. I really wanted to replace it just so I could work and play in peace. So I held my job for a couple of months, but by the end of the summer, I still lacked some cash so I decided to wait until next year.

Unfortunately, the year was 1998. Ukraine’s…


This became a Words and Buttons buffet-story: https://wordsandbuttons.online/redundant_stories_about_redundancy.html

Yovko Lambrev, CC BY 3.0, via Wikimedia Commons

Let’s say you want to keep your core temperature under control. You put a thermal sensor there, wire it out to some kind of SCADA, and here you go. Except, since it’s very important, you can’t rely on just one wire. What if for whatever reason it snaps?

So you add another scanner and another wire. It’s now more reliable. But what if one of the scanners shows 300 degrees Celsius, and the other 1234? Should you shut down the reactor or replace the broken scanner?

Well, you add another scanner and…


Until just yesterday, I thought AI will never replace me as a programmer.

Well, programming as a profession was waltzing with its own death from the very beginning. I imagine, when someone came up with the Assembler for the first time, a lot of people thought that this is the end.

What? A program that turns human-readable scribbles into real machine code? So every manager can write code now? Are we obsolete? Have we had been automated? Is it time to pack out things and go?

Then soon enough high-level languages came in. Languages such as FORTRAN and COBOL. Now…


When I was little, there was programming, and there was everything else. Geometry had rulers and compasses, programming had pixels. Physics had formulas that magically held all the time, programming had GOSUB and GOTO. Chemistry. Oddly, chemistry, where everything takes time, was rather close to programming in this particular regard, but otherwise it had absolutely nothing in common.

In college I suddenly saw how programming is essentially math. I mean, every computation is a map — a function from input space to output space. Even statefull computation is just a function of state plus input. There are maps that translate…


Words and Buttons Online is a growing collection of interactive tutorials, demos, and quizzes about maths, algorithms, and programming. I’ve been making it with a little help from my friends for 3 years now, and I’m not going to stop anytime soon.

It is not hugely popular. The daily audience is only about 300 visitors. But it does hit the Hacker News front page every once in a while, so it’s not completely marginalized either. Of course, I would like it to be more popular, but I’m also too shy to promote it fiercely. …


By any measurable criteria, Rust is better than C++. Julia is better than C++ even by some non-measurable ones. D was designed to be better than C++ to begin with, and its very existence, all the 18 years of it, shows that it is.

However, we don’t see flocks of C++ programmers migrating to the next new thing whatever this thing is. It’s simpler! Ok. It’s safer! Whatever. It’s more expressive! If you say so.

Are all these people unreasonable? Are they just stubborn? Do they hate progress?

I don’t think so. I think, staying with the slightly inferior thing…


I’ve been running away from C++ for most of my professional career. And I have to admit, in 15 years, I didn’t run away very far.

My first full-time job was about maintaining a project written by five different teams over eight years. Every team brought the fad of their own into the project so it had everything from 3-star programming to the Alexandrescu-style template magic. It wasn’t something designed from the top. Or from the bottom. It was more like a scrapheap challenge project.

By that time, I already had some experience with Delphi, C, Python, and Assembly from…


Words and Buttons Online is a growing collection of interactive pages about maths, algorithms, performance, and programming languages. Apparently, it’s also my blog.

This year I started to support RSS, published 11 new pages, renovated a few old ones, experimented with publishing in Ukrainian, and opened up one of my tools for general public. This was a fun year.

The site got first million hits this August. This doesn’t mean anything for the users but it means something to me. Mostly, that the very basic plain stand-alone site can be successful. …


In 2013 I was working in nuclear power plant automation. Can’t talk much since I still haven’t figured out which part of it was classified. But I probably wouldn’t get arrested for mentioning that the job required reading a lot of assembly code.

Reading assembly is not as hard as it might occur to an untrained person. In fact, everyone can read a bit of assembly. But in large quantities, it’s not too easy either. The mnemonics like RCR, WBINVD, and CMPXCHG8B are fun to write, but hell to read.

What’s worse, the standard approach to syntax highlighting doesn’t help…

Oleksandr Kaleniuk

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store