Это Сан Франциско, город в стиле диско

Pretty awesome day in the Bay Area today. The Russians summarised it so a couple of decades ago:

We went to the computer history museum, I discovered that I have a bit of talent for Dance Dance Revolution and loved it (how did I manage to let that game intimidate me all this time and didn’t even try playing it?), rollerskated like I hadn’t in years, and finished the day really awesomely meeting up with very cool people that I only knew from the internet.

There’s a chance to do more things tomorrow, all equally fantastic as today. This has been quite a productive trip! It remains to be seen if its ultimate goal was achieved. They said I would get an initial response very soon.

Andrew S. Tanenbaum, where have you been all my life?

I’m currently reading Modern Operating Systems by Mr Tanenbaum in preparation for an important interview, and I have to stop to interject, what a fantastic book. I wish I had come across it earlier. It has very lucid and detailed explanations of many workings of computers that I have long wondered about but never had been able to study.

Bit of background here. As I like to say, I went to maths school, not to computer school. At the time, the choice was quite a conscious one. I knew that computers would always be in my life, and that contrary to making them a more central part of my life, I could always do that on my own, but I needed the formal training to make sure mathematics always kept that central position too. And I do indeed almost instinctively keep on working with computers, as I am doing now with this book. At the same time, not having gone to computer school often makes me feel that I’m at a slight disadvantage with those who have. How to parse a programming language and build a compiler, how to do proper software architecture design, various ways of programming, how an operating system is built, the various concurrent programming algorithms; these are all things you learn in computer school, but not in maths school.

I am not complaining. I learned many other things in maths school, and when I see CS students or programmers balking at mathematics, I chuckle inwardly (and sometimes, I’m embarrassed to say, outwardly). I also learned how to program in maths school, but in a different way, with an emphasis on good numerical algorithms, not the other things they teach there.

In this regard, this book is a treat, because I feel like it’s filling the gap that my formal education didn’t, and it’s also vindicating my decision that I should have studied maths, because the computer part would always draw me throughout life. By comparison, I require much more self-discipline to absorb completely new mathematical material, but a programming language, technique, idea seems to be much easier to be passively assimilated.

By the way, in case the name sounds familiar to you, Mr Tanenbaum is the creator of MINIX, an academic operating system that was the original inspiration for Linus to work on the penguin-clad operating system kernel that bears his name. If I had known earlier that such a book existed, I would have done my best earlier to get it.

I’m reading the third edition, which right now is still refreshingly recent. Computer books age extremely quickly, so it’s nice to read one that’s not outdated for once. I’m also reading it in Mexican Spanish, because it’s what I could find, but I’m not complaining about this either. The translation is wonderfully done, and I really like almost all of the translation choices made. I’ve noticed that Mexicans tend to be much more industrious and precise about technical English translation, whereas most other hispanophones resort to unimaginative calques or leave the English outright untranslated. Rummaging in Spanish for just the right word is work, too much work for some, but in the end it produces much more beautiful text. For example, “deadlock”, a very Anglo-Saxon word with a meaning difficult to convey, becomes “interbloqueo”. Such precision of language! Brief word, same meaning, Latin roots, and even English speakers can guess its meaning. I wish Spanish could develop its own technical language tradition, but that’s a blogpost for another time.

Octave documentation

Yay, another patch of mine accepted into the Octave repository. Quite a trivial patch, but at least it was applied without hassle or modification. Maybe because it was only a documentation patch? I’ve got one other documentation patch in the works about coding standards for m-scripts distributed with Octave, which isn’t explicitly described anywhere. I think I will keep trying to submit more documentation patches. They’re quite easy and are obviously necessary.

I wonder how many patches until they give me push access to the repository. I think I still need quite a few before I earn my wings. There’s a big one for printing bitmaps on the fltk backend without going through gs that I would like to do. Maybe this weekend?