logo

Write-Only Memory:
The Blog of Kevin Thomasson

DIY, electronics, programming / whatever.

About this blog

About me

I am Kevin Thomasson. I live in Stockholm, Sweden together with my wife, cat and two kids. I earn my living as a software developer and spend much of my spare time tinkering with technical things in general. Technology has been a interest of mine ever since my grandfather introduced me to it by letting me dissassemble discarded electronic and mechanical devices, such as typewriters and car stereos, when I was about six or seven years old. My interest in computers came a few years later when I finally, after my lifes biggest campaign of nagging, got my first computer. It was a IBM PC AT compatible computer ticking away at 8Mhz with a CGA video card and a broken CRT monitor unable to show the red color component most of the time. By the time I got my AT it was outdated. My computer equipped friends had more modern 80386 based PC systems or Amiga computers capable of displaying hundreds of colors and playing stereo sound. As I remember it, I wanted to know how to program it pretty early on after figuring out how to operate the thing using MS-DOS 3.3. The fact that it pretty much sucked at running new games probably contributed to my interest in programming it.

My very first ignorant attempt to figure out how to write my own programs involved loading a executable file into Microsoft Word for DOS and changing some readable string between junk characters and saving the file. Upon executing my modified executable file, the computer restarted and didn't load DOS again. Somehow the BIOS settings must have been erased and I don't know to this day how I could have caused that. But, in my own special way I got the computer to do something it didn't do before (or rather don't do what it used to do).

Hacking in Microsoft Word?Hacking in Microsoft Word?

My early teens were spent in the dark ages before the Internet was even remotely mainstream, so learning how to program did not involve Googling programming tutorials. Luckily my father had a bunch of computing books in his shelf, although somewhat dated they were like a gold mine to me. There were titles such as Programming the 8086/8088, ABC About BASIC and The Waite Group's Turbo C Bible. The first book is a assembler programming book for the 8086, the second one a BASIC programming book for a Swedish 8-bit computer from the late 70's called ABC 80 and the last one a book on the C programming language. Assembly language was incomprehensible and I didn't have access to a C compiler at the time—but my computer did have a basic interpreter called GW-BASIC installed.

Equipped with a BASIC programming book written for another dialect and platform, I entered example programs into GW-BASIC. Some of them worked as expected, but as I made progress in the book fewer and fewer examples were compatible. A friend of mine came to the rescue by helping me to install MS-DOS 5. Version 5 included a more evolved BASIC interpreter called QBasic which came with a built in help system and example programs. This environment had all components I needed to experience what I call The Matrix Moment. A moment in which you feel like you've cracked the inner workings of the universe and can achieve anything. Like Neo did in the movie The Matrix. I had my moment when I figured out how to save the content currently displaying on the screen to a file using nested loops to cover all pixels. It may seem simple in retrospect, but at that very moment I learned to solve problems like a programmer. To this day it's one of the best feelings I have ever experienced. This experience alone is certainly a big factor in me doing what I do today—both privately and professionally.

Hacking in QBasic.Hacking in QBasic.

After this defining moment I later went on to program in Pascal, C/C++ and Visual Basic. I did so only as a hobby for several years before I went to Uppsala University to study computer science. At the university I learned to program in Java, Prolog and C# as well. Today I work as a professional C# developer. I still have use for my limited C/C++ knowledge when I'm working on DIY electronics projects involving microcontrollers like the Arduino.

About the name

The name, Write-Only Memory, reflects both my interest in technical things and todays abundance of information. Lots of people perform write operations. Like trumpeting out what they had for breakfast, or what they are planning to do this evening. Few people have the time or energy to perform the necessary read operations to complete the transfer of information.

Yes, we live in an era of information transmission, and this is my broadcast straight to /dev/null, nul or whatever the Write-Only Memory is called in your belief operating system.

Contact me

webmaster@kevinthomasson.se