I like learning programming languages for fun. So far I've written or modified anything practical in (random order) C, Ada, Python, Perl, Java, OCaml, JavaScript, and Bourne shell. I've also written toy programs of varying complexity in Scheme, Standard ML, Haskell, Fortran 90, and Ruby. I'm also interested in programming language theory. My current favorites are OCaml, Python, and Ada.

If you think you've seen everything in programming languages, unless you speak at POPL, you are probably mistaken. There's a lot to discover outside of what is most popular in the industry at the moment, don't fall victim of the Blub phenomenon.

Ah, yes, back then I also programmed in Pascal, and it was the first programming language I learnt. Despite its reputation, Free Pascal and Delphi are by no means toy languages, they have a sane object system, pointers, and everything a real language should have (Free Pascal is self-hosted—this fact alone says it all). I wouldn't want to go back to it though, there are better languages now.

There are a number of things I want to learn about but they are hard to learn on my own. Among these are measure theory, FPGA programming, and hard realtime. If you know good resources for learning these, please tell.

Right now I'm using Fedora on my desktop. Before that I used to use, for periods of varying length (in reverse chronological order) Debian, CentOS, OpenSolaris, OpenSuSE, ASP Linux, and Microsoft Windows. I don't feel overly attached to any distro and don't engage in distro advocacy, every time I switched it was for a technical reason.

I haven't used Windows on my desktop since some 2007 when my Windows installation died and I realized that I don't really need or want to restore it (before that I had a dual boot setup). There is no windows-only software I need on daily basis and I don't like the system regardless of its proprietary license. I have a Windows VM in VirtualBox for interoperability testing though. I normally don't engage in anti-windows advocacy as I have better things to do.

I used to run an overly complex network at home that was both my home network and my network lab, with two managed switches; separate VLANs for workstations, servers, and wireless clients; two redundant ISP connections; a dedicated hypervisor host, and other stuff typically not seen in home networks. It peaked in some 2011 when it was also connected via VPN tunnels to at least two home networks of my friends that were equally complex, and we used both OSPF and BGP for routing between them.

By 2016 it shrank to a single switch, single router connected to a single ISP, single wireless bridge, and a NAS box. Maybe I'm getting old after all. My friends' networks also shrank, some to an even smaller size. Regardless, I have fond memories of that time, and we all definitely learnt a lot from that experience.

My first computer that I put together in 2003 was an i486 with 8M RAM and a 40M HDD (you read it right, 40 megabytes). It had a 13" grayscale CRT display. It was all I could afford. Later I've got an ISA sound card (SoundBlaster 32 I believe) and a 33600 bit/s modem. It ran DOS, as you can guess. Well, I was happy to have at least something to learn programming on.

By 2005 I scraped up enough money to put together a Socket7 machine that initially had a Pentium 166 CPU but eventually ended up with a 450Mhz AMD K6-2 and 128M RAM (I believe). That was good enough for Windows and Linux in a dual boot setup, even if still very outdated even for that time. What I miss about the machines of that time is how much hardware you could keep when you upgrade. Oh yes, it also had a color display, even if it was 15" and only supported 800x600 resolution. Whatever you think of the knowledge argument, I'm pretty sure Mary was happy to leave her room with a black and white display.

In 2006 I've finally got an Athlon 64 machine. You can imagine how fast it felt. I've also got DSL Internet access later, and it made me even happier. The last bit of legacy technology I got rid of was the 17" CRT monitor, that I replaced with a 19" LCD one in 2008, just before the Great Recession.

A funny bit of my subsequent hardware history is that a lot of time it's been Apple hardware running Linux.

Funnily enough, my experience with old hardware came in handy quite a few times, when I was asked to repair computers that could not be upgraded because they were used with unusual peripherals such as medical equipment and measurement instruments. It may also be one of the reasons people on the Internet often think I'm older than I actually am (curiously, people who meet me in the real world often think I'm younger than I am).

People often think I'm a VoIP specialist. It's been something of a self-fulfilling prohecy, it started with getting job at a company where it suddenly turned out that the internal PBXes and PSTN gateways are also my responsibility and culminated with helping to build a class4 VoIP provider from scratch. All while I never thought of myself as a VoIP guy.

This page was last modified: 2017 August 02