The Unintended Consequences of Misguided Incentives | January 04 2026, 13:30

About KPIs. In English, there’s a concept called perverse incentive, “a harmful stimulus.” It occurs when you try to quash evil, but the methods become the perfect fertilizer for it. There’s a saying, “When a measure becomes a target, it ceases to be a good measure” (Marilyn Strathern based on Goodhart’s Law).

A classic example is the “Cobra Effect.” In colonial India, the British decided to reduce the snake population and offered a reward for every head. The plan seemed as reliable as a Swiss watch until Indians began breeding cobras on farms for the “harvest.” When the authorities realized they were being duped and cancelled the payments, the farmers simply released the now-useless snakes into the wild. As a result, there were many more cobras than before the program started 🙂

In a similar way, the French in Hanoi battled rats by paying money for severed tails. The city became overrun with lively yet tailless rats: the Vietnamese cut off the “currency” and released the creatures to breed further, to not lose a stable income.

In the 19th century, archaeologists searching for dinosaur bones and ancient fossils paid locals for every piece found. As a result, resourceful diggers intentionally shattered whole, priceless skeletons into small pieces to earn more by submitting them separately. Science wept, but the KPI for “number of finds” soared. A similar tragedy occurred with the Dead Sea Scrolls: Bedouins cut the found scrolls into small pieces to sell each fragment separately.

In the USA, this malady struck infrastructure. When building the Transcontinental Railroad, the government paid Union Pacific subsidies for every mile laid. In Nebraska, engineers, in a single corrupt impulse, drew a huge loop—the Oxbow Route. The extra 9 miles of detour made no sense for logistics but brought the builders hundreds of thousands of dollars “out of thin air.”

But if the “loop” in Nebraska was just theft, then the mistakes of U.S. Secretary of Defense Robert McNamara were a tragedy. An aficionado of numbers and mathematical models, he tried to manage the Vietnam War like a Ford assembly line.

When General Edward Lansdale timidly noted that McNamara’s formulas lacked the variable “the spirit and will of the Vietnamese people,” the secretary noted it in pencil in his notebook. And then erased it. He said that if something cannot be measured, it’s unimportant. The main metric became the body count. Officers onsite, eager to curry favor, began labeling everyone indiscriminately as “enemies,” painting an illusion of imminent victory in Washington, while the actual situation spiraled into the abyss.

In science, there’s a radical principle similar to Occam’s Razor— “Newton’s Flaming Laser Sword” (also known as “Alder’s Razor”). Its essence: if something cannot be tested by experiment (or measurement), it’s not even worthy of discussion.

It sounds reasonable for physics, but in life, it’s a direct path to what sociologist Daniel Yankelovich called the degradation of perception. He described this as a descent through four steps:

1. First, we measure only what is easy to measure.

2. Then we ignore what is difficult to measure or requires qualitative assessment.

3. The third step—we decide that what cannot be measured is not so important.

4. And the final step—we declare that what cannot be measured actually does not exist.

And at that moment, we become blind. We view the world through the keyhole of metrics, while in the room behind the door, cobras are bred, dinosaur bones are broken, and wars are lost.

Crafting a Custom Volleyball Play Editor | December 23 2025, 21:39

Tomorrow is the flight to Costa Rica, and here I am creating (or created) a volleyball playbook editor for Nadya. As a coach, she prepares for her sessions and leaves behind hundreds of pages of text with diagrams on each page. The text is handwritten, and theoretically, it’s simple to convert to a digital format, but converting the diagrams into high-quality vector format is exhaustive—there are so many. So, I decided to make the software yesterday. And today, the first version is ready to use. This is a diagram editor, somewhat remotely similar to a diagram editor. Also got to dig into the fabric framework.

The process looks like this. Gemini/ChatGPT through an API can convert hand-drawn diagrams into a structure that my program understands. Then we open this file in the program, and tweak a bit if necessary. Or maybe even redraw from scratch – for simple diagrams, it’s even easier. There are four types of objects – player, cone, target, text. Any can be connected with arrows, solid or dashed, labeled with text or numbers or not, in any chosen color, straight or curved. If you touch an object with the mouse, all connected arrows will follow.

The result can be saved in a file. You can open a template and based on it create something new. You can generate a Python script – yesterday it was still relevant, today generally not needed anymore – high-resolution SVG/PNGs are made directly from this app (yesterday they were made separately in Python).

It’s clear why you wouldn’t just ask Gemini/ChatGPT to do something for ready-made vector editors: firstly, they are too flexible and limiting LLM’s imagination is quite difficult. As a result, you get stylized, unusable images. Here, instead, there is a framework consisting of four objects and that’s all, LLM knows about it and only generates what can be represented with them. Secondly, this framework operates with objects, not elementary vector primitives.

Overall, this is the first step towards my idea of an automatic diagramming system based on descriptions. Where you give an LLM a diagram description, and it consistently generates what is written in the description, and if you make any corrections, they will be taken into account during regeneration.

Rediscovering Gorodki: A Glimpse into a Traditional Russian Sport | December 20 2025, 05:29

Suddenly today, the word “gorodki” popped into my head. When I was a little boy, in Baku, Azerbaijan, we used to play two games in the courtyard – gorodki and knives.

I Google it. The internet tells me that in Russia there is a Russian Federation of Gorodki Sport. It has a president, a first vice-president, and a vice-president. All in blazers. There is a presidium, and it has a chairman of the commission on international relations. There is a whole apparatus for the president of gorodki sport with three advisers and a responsible secretary. They hold conferences, at least in 2018 and 2020. There is a march of gorodki players, music by A. Roshchin, lyrics by V. Avdeev, I. Vinogradsky.

The website has a section “Anti-Doping”. Can you imagine doping in gorodki sport? It has a subsection “methodological recommendations”.

In 2024, there was a World Championship of Gorodki Sport. And it had a Grand Closing. Besides Belarus, athletes from Germany and Kazakhstan participated in the world championship. From Germany, besides Sergey, Vitaly, and Konstantin, there was Schlein Eugen, or rather, Zhenya.

Masters of sport. To be admitted to international competitions, one must come with a certificate, oh, a certificate of having undergone anti-doping education from an institution, whatever that means.

In general, it’s all very serious.

But I did not find a federation for the game of knives.

Exploring the “Christmas Tree” in Oil & Gas | December 18 2025, 18:34

Oh, how many wonderful discoveries the spirit of enlightenment brings…

it turns out, Christmas tree in the oil & gas industry is a wellhead equipment. I am testing this search for work

From Idea to Chess AI: Building a Neural Network to Predict Moves | December 15 2025, 04:33

While figuring out neural networks, I decided to come up with a game-related task for myself. What if I find some ready-made games, and train a neural net to predict moves based on the board situation. Said and done. Of course, generating code is faster with LLM, but I wrote the detailed assignment myself and designed the architecture on my own. In 40 minutes (!) from the idea to the result, I already had a working solution that, at least in the first half of the game, does not mess up too much.

In the screenshot is CuteChess – it works with any chess engine, and in my case, it’s a simple Python script. The script takes the board situation and feeds it to the model. It selects the top 5 moves, and only these top 5 are analyzed deeply for several moves ahead and assesses the position. That is, the neural network suggests possible moves based on the analysis of 20,000 games (534,453 positions). From the results, the best is chosen. It uses the minimax algorithm for this, if that means anything to anyone (it didn’t to me, so Gemini here helped me)

How the model is trained. On the lichess website, you can download games, there are hundreds of gigabytes. I took a file with 800,000 played games from the year 2014. From these 800,000, I select 20,000, specifically looking with a script for games where the result is not a draw (1-0 or 0-1). Next, I calculate the difference (Winner_Rating minus Loser_Rating). It’s not the best metric, but it’s better than nothing. The bigger this difference, the more “confident” the win should be (the strong punish the weak). Thus, I get 20,000 such games.

“Ignoring the moves of the weak” (to avoid teaching the model bad play) is implemented during the training stage of the model. Essentially, the logic is: “If it’s White’s turn now, and White won this game — we learn. If it’s Black’s turn now, and Black lost — we skip and don’t teach the net this move.”.

The neural network is trained in batches of 128 positions at a time. The network receives a board position as input and outputs 4096 — the probability assessment for each possible move.

Selecting games takes about 5 minutes. Training the model on my computer takes about 10 minutes for 20,000 games. You could leave it to train on 100K or a million, and it would definitely be better. No need anymore – I figured it out 🙂

You can view the game here:

https://lichess.org/JWeaIrVW

Modern Reading: More Words, Digital Shifts, and Surprising Data Insights from 2008 | December 14 2025, 22:33

An interesting study caught my eye, dating back to 2009. According to it, the modern human indeed reads significantly more than in the past, although the format of this reading has changed. The study suggests that in 2008, an average American consumed about 100,000 words a day (approximately a quarter of “War and Peace”) – this is an approximate number of words that passed through consciousness per day (via ears or eyes), calculated based on activity chronometry. This is 140% more than in 1980.

Therefore, contrary to the myth about the degradation of reading, at least in 2008, we processed 2.4 times more textual information than our parents’ generation. Moreover, the study only considered information consumed outside of work (at home, in transit, during leisure).

The structure of reading – if in 1960, 26% of words came from paper, by 2008 this share had fallen to 9%. However, digital media (internet, email, social networks) not only compensated for this decline but also tripled the total reading time. The reason — the internet, as it is predominantly a textual environment (web surfing, email).

But it’s interesting that although the Internet accounts for 25% of consumed words, it only makes up for 2% of bytes (since video on the internet in 2008 was of low quality). Thus, they estimated the information flow from different channels and converted it into bytes 🙂 Radio accounted for 19% of the time but only generated 0.3% of bytes (as audio requires less data). Voice communication (telephone) — accounted for only 5% of words and a negligible share of bytes, but it was the only fully interactive channel before the internet era. TV remained the main source of information by time in 2008 (41% of all hours) and quantity of words (45%), however, in terms of data volume (bytes), television was only second (35%), behind computer games.

Now about games, quite interesting. The main finding from the report: Games generated (or did in 2008) 55% of all “bytes” consumed by households. Meanwhile, they only accounted for 8% of user time. This is quite a controversial topic in their report.

Those 100,500 words — that’s an assessment of actual words that a person either read or heard. This is not a metaphorical “equivalent,” but an attempt to calculate the verbal information precisely. They took the consumption time of each media and multiplied it by the average word inflow rate for that channel. Reading (books, newspapers, internet texts): 240 words per minute. Email and web surfing – 240 words per minute. Television (dialogues in shows/movies): 153 words per minute. Radio: 80 words per minute (less because of many pauses and music). Music: 41 words per minute (song lyrics).

Link in the comments

Stages of Understanding Scientific Papers | December 10 2025, 19:38

As I periodically read scientific papers on my topic, I will try to articulate the levels of understanding the truth.

Level 0: “Read Later Folder” Downloaded the PDF, the title sounds genius, the abstract seems like the solution to all my problems. The file is forever buried in the ~/Downloads/Papers/ToRead folder.

Level 1: “Sumerian Cuneiform” Don’t understand anything at all. Random symbols, the Greek alphabet is over. “Orthogonal extrapolation of cognitive entropy within a quasi-stationary discourse inevitably induces a bifurcation of transcendental synergism.” Such materials really lower self-esteem. Most often from this level, you either fall back to zero, or gradually move to the second level.

Level 2: “Illusion of Competence” The Abstract is clear, the Introduction reads like a good detective story. But as soon as the main section starts, the text turns into a pumpkin. I can’t paraphrase it in my own words, only in general phrases: “Well, they trained a neural net… kind of.”

Level 3: “Formulas where needed and where not” The Abstract is clear, the first half of the article is also okay (architecture, pictures). But then comes formula (4), where “magic” happens. I take the authors’ word for it that equation (3) leads to (4) because, of course, I won’t check it. Beyond that — sheer horror and belief in a miracle.

Level 4: “Goldfish Effect” While reading — everything is crystal clear. The logic is solid, conclusions are obvious, the authors are smart. I close the tab, someone asks me, “What was the article about?” — and I freeze. My mind goes blank. If you take away the paper, I can’t reproduce even the idea because there essentially isn’t an idea, there is a process.

Level 5: “Armchair Expert” Everything’s clear, I can retell the essence over a beer. I know that Input transforms into Output, but the “black box” inside is still black. Give me a computer, I wouldn’t be able to reproduce even the skeleton because, it turns out, the article lacks half of the important stuff.

Level 6: “Critic-Practitioner” Everything is clear, I can recount, understand how to reproduce (even without their code). I see where they cut corners. I definitely know that the “state-of-the-art” result is achieved only thanks to a lucky seed or dataset and this strange trick in preprocessing, mentioned in the footnote on page 12.

Level 7: “Deconstructor” Hooray, I’ve understood everything and implemented it myself. It works worse than in the article, but I know why. However, I understand this work better than the second author (who just made charts). I see that all this complex mathematics over 5 pages boils down to two paragraphs in the middle.

Level 8: “Nirvana” The article is trivial. The idea is secondary, it was all in the ’90s with Schmidhuber, just named differently. Formulas are overcomplicated for importance. I can write the same in 10 lines of code and it will work faster. Reject.

If anything — I’m stuck somewhere between 2 and 4.

Comparing US and Russian Higher Education Systems through Credit Hours | December 10 2025, 17:35

Regarding education in the USA and the USSR/Russia. My degree in the USA is evaluated as a Master of Science degree in Computer Science. My younger colleagues say that a Russian university degree is rarely recognized as a Master’s these days, and often hardly qualifies even for a Bachelor’s. I decided to look at the numbers and was very surprised.

To earn a bachelor’s degree in the USA, you need to spend about 2000 hours in classrooms/laboratories. In terms of credits, this equals 120 credit hours. One credit usually equals 1 hour (50 minutes) of lectures per week for a semester (15 weeks). Laboratory work has a different coefficient (often 2–3 hours in the lab count as 1 credit), so the actual number of classroom hours is slightly higher (closer to 2000+).

So, my diploma states that I spent 7908 hours in classes over five years. That’s four times more than the typical student in the USA. Based on the numbers, it turns out that I spent about 2000 hours on math, physics, and English alone over five years, with a total of 42 subjects.

A colleague shared that in his Russian bachelor’s diploma there are 3140 academic hours, which is twice as less. And can you share how many hours are in your diploma?

Year of graduation, university, specialty, and the number of hours? I’m curious about the range of variation.

The Maddening Ambiguity of Mathematical Notation | December 02 2025, 15:30

If someone tells you that mathematics is an exact science, don’t believe them. Since I’m currently into data science as a hobby, I’m studying all sorts of things from different books and my brain is exploding at how this can happen in a science where every little detail should fit into a system, otherwise it goes by the wayside. Until it gets to notations. It’s a complete mess there. A set of dialects.

Take, for example, common logarithms. The “standard” for how to denote a logarithm depends on which room of the university you are in. In calculus and number theory, log(x) almost always means the natural logarithm ln(x) with base e. The derivative of e^x equals e^x. It’s “natural”. They’re too lazy to write ln. Yet, where decimal logarithms might appear (like in computer science), log(x) suddenly becomes decimal, and ln(x) is based on e.

The expected value E has an argument in square brackets. Meanwhile, the same square brackets in computer science are used for the step function 0/1.

Or if you see a vector – is it a column or a row? In classical mathematics, a vector is always a column. To multiply it by weights, we write T after the vector and then w for the weights. But in many papers, vectors are thought of as rows. And if you see y = xW+b, then x is not a column, because otherwise the dimensions wouldn’t match up. x here is a row. But in the next paper they write Wx+b. And there x is a column 🙂

Angle brackets . For the dot product, the symbol “â‹…” is used, but it is hard to see, especially on a whiteboard, and I very often see that mathematicians use angle brackets for dot product. In general, angle brackets are used for the generalized concept of inner product, where the scalar product is a special case. signifies a certain abstract way to multiply a and b and get a number. Meanwhile, in quantum mechanics this would be written as . And for the scalar product, some use a circle with a dot or x in a circle.

And just for the sake of it, in Russia tangent is tg, while in the USA it’s tan. There’s also tan^-1 and arctan, which are the same, though x^-1 generally means 1/x

In-Flight French: Building a Language App on the Fly | December 01 2025, 15:45

By the way, yesterday morning, while waiting at the gate for my flight to Miami, I quickly wrote a French language learning app using Gemini based on an idea I sketched out to a friend while driving to the airport, and then used this app during the flight.

The idea is that in an unfamiliar foreign language text, the user first marks unknown words and then sees their translations — but without the original text, and then returns to the text itself — but no longer seeing the translations. It’s as if the “dictionary was in the next room.” The hypothesis is that this method helps better memorize than when the translation is shown immediately upon clicking on a word, and when no effort is needed.

I am pleased that creating the app from scratch to the finished version took only about 35-40 minutes, and then I used it for some time during the flight, without the internet. Since all translations of all words/phrases were already made in advance.

I just deployed it on Render. It’s also nice that demonstrating the code in action was free and took another 10 minutes.

https://readandlearn.onrender.com/