This is Words and Buttons Online — a collection of interactive #tutorials, #demos, and #quizzes about #mathematics, #algorithms and #programming.

Why did I write Geometry for Programmers

I wasn't going to write this book. I was happy with Words and Buttons alone. With this online thingie, I have enough feedback to learn how to do interactive explanations, and I have enough freedom to conduct bold experiments. I don't have to ask my supervisor how many "fucks" I am allowed per page.

With a book, a real production with a well-established publisher, it's completely different. First of all, feedback comes in bulk, and it mostly concerns writing and still images. There is no interactivity in a printed book, and I believe in interactive learning. That's what I am striving to get better at, not just writing.

Second, the author's freedom is, of course, limited. I tried several bold moves with the book. Initially, there were supposed to be no formulas in the book, all the math should have been done with SymPy and written in SymPy. Also, there should not have been coding examples with curves and surfaces, only the examples that generate code with curves and surfaces for you. The first half of the book was supposed to be theoretical, so explaining stuff with little to no hands-on experience.

None of that happened to be. As it turns out, people don't like programmer's books that start with no programming. The concept of autogenerated code was obscure for some, and having all the formulas in SymPy didn't make anyone happy either. Except for the typesetting guys, they love code much more than formulas for obvious reasons.

So as an experiment, the book is a failure. But as a book, it is, apparently, a success. The reviews are good, the sales are good too. Maybe compromising on experimental stuff more in favor of what works was a good decision after all.

There is still SymPy. It still does most of the math, so don't worry about being rusty at calculus or algebra, SymPy has this covered. But there are now formulas as well. There are still exercises with code generation, but there are also snippets where you can play with curves and surfaces also. And, of course, programming starts much earlier now. There is still a theoretical chapter at the beginning but only one, and it has been recently cut down from 56 to 30+ pages.

Speaking of sales, there is another moral aspect. Words and Buttons have been made free as in "anything you like". The code is unlicensed and publicly available. The book, published by Manning Publishing is, of course, not free at all. I usually try to keep my professional activity as far from hobbies as possible so initially, I wasn't going to use Words and Buttons as a platform to promote the book. But fuck* it. My country needs money.

About an hour ago, a Russian missile hit something in my neighborhood. Again. As a civilian, an engineer, and a mathematician, I can't do much about this. But I can earn a few bucks and donate to people who can. That's what I have been doing since February, and that's what I'm planning to do until the victory.

And that's where all my book money goes too. I can't save up and buy myself a Patriot to protect the sky above me, but our army still needs tourniquets, winter gear, sleeping bags, and a whole lot of other small things to win.

It's not the time to put morality before earnings. If I stay alive, I'll write tons of free content after the war.

So yes. I started to write the book as another experiment, but now it turns out to be a successful commercial project, and the money I earn helps Ukraine win the war. That's the whole story. Thanks for listening.

Sincerely yours,
Oleksandr Kaleniuk 
A Ukrainian software engineer.



* — Two. The amount of "fucks" per page is two.