• No Silver cat -v: Reflections on Trusting the Bazaar, or, Lambda and Painters Considered Harmful

    There are a number of things that programmers are supposed to do, before they can consider themselves real programmers: learning C, learning touch typing, or writing an OS for a Cray 1 using only the front panel. My advice is somewhat simpler: Read. Specifically, read the right stuff. For example one all of the following…

  • Nice Hacks 2

    A Turing Machine implemented in Conway’s Game of Life. Yes, Conway’s Game of Life is programmable. And given unlimited memory, it is turing complete. So, let’s build a PC emulator in it! 🙂

  • Nice Hacks 1

    Somewhat older, but still fun: a PC emulator in JavaScript, running Linux.

  • Blending In

    There are a multitude of different coding styles – and they usually differ widely between languages and environments. But it all comes down to two extremes: short and long. In a Unix (read: ANSI or pre-ANSI C) environment the dominating style is the short one. It usually reads like a strange version of English written…

  • You Asked For It – You Got It

    I’m alone. Alone with one of the most legendary operating system of all times: ITS. You really should try it. It will be easy to setup on one of your spare PDP-10s. Just in case you don’t have a spare PDP-10 lying around: there’s an excellent historic machine simulator called simh (Free Software and runs…

  • Nice Hacks 0

    A spelt number to decimal converter in 256 243 bytes of ANSI C.

  • Google Chrome: Wasting Screen Estate

    It’s crazy, but it’s true: The browser most recognised for its screen estate saving, sleek and minimal design is wasting the most of it. When I line up all the browsers on my main machine, it looks like this: That is, from left to right: Chromium 12, Firefox 5, SeaMonkey (aka Mozilla) 2 and links2…

  • Pipes for Lisp

    I have already blogged about the reading order of programming languages. Thinking about that, a stupid idea formed in my head: What if Lisp had pipes? You know, pipes, as in “|”. These fabulous little things known from such nice expressions like “grep whatever * | more” or “cat stuff | sort | uniq”. Now,…

  • Arbitrary Limits, or “64 Bits ought to be enough for anybody”

    Let’s talk about integers. Yes, I heard you – yes, there are more interesting things in the world, but let’s just stick to the good ‘ol integer for now. What is an integer? Easy, right? It’s a 16 32 64 Bit signed unsigned number with a maximum range of -2^32 -2^64 0 (or -2^30 or…

  • Forwards, Backwards, or nil

    Programming languages can be categorised into many, many – uh, categories. That’s no news. But, no matter if you write object-oriented, structured, functional, or brainfuck – someday someone will read your program. (Well, maybe not if you’re writing in Brainfuck… let’s better just keep that aside for now) Now, the first thing that I notice…