• I’m Back – And It Hurts

    Working with strings is painful in C. I knew that. But I have completely forgotten, how brain-shattering painful it is. I guess it’s common knowledge, but let’s recap some of the issues: And yes, I know that those pitfalls (and many more) are well-documented in the man pages. I know that C strings are of…

  • Join The Tiling Side

    I’m doing something radically new today – I’m showing off my desktop. Yeah, it’s a common theme – but at least I don’t have the standard “cool special effects” and “super-cool wallpaper” desktop. My “wallpaper” is solid black. And the only special effect is a frame that is drawn around the focused window. My desktop…

  • Yet Another Esoteric Programming Language

    There’s not much I can report here yet, but my programming language is under way. I finally decided on a syntax and some general attributes. It will be stack based and generally untyped, i.e. much like Forth. Everything will be a subroutine – all the way down to some (few) built-in routines. If you are…

  • The Internet – The Best Internet On Earth

    While wasting some time on the web doing some research for my yet-to-be-written minimalist programming language, I found this: Define “simple”. Define “usable”. Define Universe, and give three examples. Complexity has to go somewhere. You can push it around a lot, but it has to be somewhere. It could be in the number of language…

  • Artificial Stupidity

    I always wanted to create some artificial intelligence – well, every programmer does, right? So, I thought, I’d dive into some genetic programming (not to be confused with generic programming, the time-wasting technique from OOP-land). Genetic programming basically means that you create some random programs and see how well they perform a certain task. Then…

  • The Turing Machine vs. The Coffee Machine

    From a great article about making coffee with a Linux box: Because of the way a Turing Machine works […], it is a very complicated device to program, and debug at the end of the day. The reason is, that its behavior is a sequential process that is completely determined by the following parameters: (1)…

  • 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…