home   sections   references   cd:s   about   links   heptagon 
 no margins   view as black text on white background 


Programming

I'm a closet computer nerd!!

Hi. I'm Jens Johansson, and I'm a closet computer nerd. (Acceptance is the first step to recovery, or so they say.) I was always interested in mathematics and electronics as a kid, and I managed to get my hands on computing hardware pretty early, thanks to the fact that I was lucky enough to have an uncle that worked at a hospital. He was very encouraging and let me experiment for hours by myself with the then-expensive and then-sophisticated equipment. They had all sorts of interesting machines. I learned the ropes with a large programmable HP calculator that had a plotting device attached. It was basically a programmable desktop version of their pocket calculator, with builtin printer and "mass storage" — RPN arithmetic, all math/trig functions builtin, something like 500 programmable steps. This was in 1978 or so. A little later they invested in new equipment, I think it was called the HP 9845B. This was a large desktop computer that ran HP's extended version of BASIC. (It was an advanced BASIC for its time, it had things like long variable names and multiline subroutines and functions) It had two tape drives, a built in thermal printer, and a CRT with character and graphic modes. So that's how I learned BASIC.

Later on in school I chose a 'technology' study program. This required you to work 6 weeks during the summer holidays to gain work experience. I worked the summer of 1982 at that same hospital. By then microcomputers had started taking off, and they had purchased a few 'ABC-80' computers. This was essentially a localized version of the TRS80. The BASIC interpreter/OS was written by Microsoft, I think. I think the file system was based on CP/M. I worked with all sorts of stuff, things like writing or adapting hardware drivers and statistical analysis programs, but also tasks like carrying printers to branch locations and installing them.

During this summer job (1982), I found out that the hospital was going to retire some old desktop minicomputers. I bought one, I think it was for 500 swedish crowns. The 'DP1100' were 8-bit machines manufactured by Datapoint, and relabeled with the Nokia logo. (I have not seen a Nokia computer before, or since!) In my spare time I managed to turn this old wreck of a machine into a digital sequencer. I basically built a (discrete) DA converter and some interface logic into a box with a gate and a CV output to feed into an analog synthesizer. Coding the sequencing application for this beast is what really taught me how to program, I think — the processor was extremely crude by today's standards (eight 8 bit registers, two of which doubled as a pointer), which forced me to really think in new ways. I had to write just about everything from scratch. The machine had one great hardware feature: a very accurate 1 msec hardware interrupt, quite useful for a sequencing program. There was only 4 kbytes of memory available for program and data, but I still managed to implement a home-brewn symbolic music description language, with lots of memory to spare for sequences. The 'language' had support for labels, jumps and subroutines, arbitrary tempos and tempo changes, arbitrary tuplets (how else could I enter and listen to Zappa compositions?), loops, variables, etc. It was quite a sight.

Anyway, when I returned to school we had to take some assembly classes. The processor of choice back then was the Intel 8080. This was pretty easy for me, as I already knew Z80 assembly, and the very neanderthal Datapoint assembly*, like my own pocket. Am I showing my age?

After I left school I got offered a job at the data processing department of the hospital, which I took. I worked there for about half a year. Then I got a call from a friend of mine called Yngwie Malmsteen, offering to go to California and join a rock band. Eventually I quit my job at the hospital, put by plans to attend Lund university on hold (they've been on hold 29 years now!), and went, and really stayed out of touch with the world of computing for quite a while. Lots of playing, drinking, recording, and having fun in the sun, and no coding whatsoever. And these were years when lots of things were happening in the world of computing.

I got a little more involved with computing again in 1989, when (by musical necessity) I bought an Atari ST (to run the then-new MIDI sequencing program Cubase). Due to this machine, I did manage to learn 68000 assembly, which I rather enjoy compared to the Intel architecture, and later C. In addition to running Cubase, the ST was quite a bit of a hacker's machine, with things like gcc, and a freeware command line shell called "gulam" which I used a lot — it essentially was a cheap emulation of tcsh, and the experience would come in handy later. There was also an Atari version of MicroEMACS — a program I still use, on both the PC and on panix' Suns.

I also got a modem, and started exploring the online world. I got my first "real" unix shell/internet account in 1994, here at panix. I never upgraded the account so as to get slip/ppp access. After the Atari machines (both me and my brother got one so we could both run Cubase), we went the PC route to be able to edit audio files, do word processing, send faxes, etc — apps that were never to be written for the Atari because nobody was developing for it anymore. This was right when we started Heptagon Records. So we got a cheap 486DX2-66 and had the expected horror experience — software/hardware conflicts, bugs, whatnot. But eventually we got it working quite OK.

I still have my Atari machine. I have a sneaking suspicion that the overall stability and timing in Cubase is superior to the timing of Cubase under Windows. But I don't use the Atari anymore, because it takes too much space — I run Cubase on a PC laptop nowadays. The timing is pretty OK.

So I've definitely fallen out of touch a bit. I keep half an eye open to new developments, I do have a Linux partition set up for the occasional foray into the world of academic electronic music — a lot of wonderful software just won't compile under Win32. I have grown to like perl quite a lot, and this of course comes in handy when it comes to CGI programming. Although I see a lot of OOP crap seeping in. I think I liked perl4 best, when "strict" was not part of the vocabulary (was it?) But maybe that's because I'm a sloppy bastard. I'm not sure I'll adapt to OOP and perl. I've dipped my toes (I have ActiveState perl5 installed) and I sort of like what I saw, but for the most part I just use perl to crunch the old text file, and of course for the server-side-parsing shit that's hidden behind this site. Perl4 was pretty cool, and it's like the anoraks have grabbed hold of things now and are ruining everything. I mean, do I need to be told that $* is deprecated!? What happened to "more than one way to do something"?

I have Microsoft VC++ 4.0 installed.. I don't think I ever wrote anything in C++, or anything that uses the GUI for that matter. Only console-mode programs in C. I have a slight dislike for C++ that I can't quite pinpoint.. showing my age again perhaps.

As far as operating systems, hey, I don't like Windows that much but I'm forced to deal with it because of the word processing apps, sequencing apps, etc. I like Macs even less, I mean it's a nice OS but I always hated the price, and the "we know better than you what you want to do" attitude. And of course now people stop developing for the Mac, just like with the Atari. If forced to pick an OS I'd say I like unix the best. But there are not so many applications available even now.. especially, there's no Cubase, which I've been using for many years now. So for now I'm stuck.. 95% of the time I run Windows 98 at home... sigh. I guess you could compare the OS:es to political systems: Windows is fascist, MacOS is stalinist, and unix is somewhere between zen, anarchism and nihilism. Linux flavor unix maybe maps to the wild-eyed libertarian crowd. So why use the fascistoid Windows OS at all? "Hey, at least there's law and order, nice motorways, and the trains run on time..."


Page updated Nov 23, 2002 at 01:33 Email: jens@panix.com

All content copyright © Jens Johansson 2014. No unathorized duplication, copying, mirroring, archival, or redistribution/retransmission allowed! Basically, no damned unauthorized anything allowed! But then OTOH how the hell could I stop you.. Any offensively categorical statements passed off as facts herein should only be construed as my very opinionated opinions.