The art of shuffling music

(May 11, 2007)

Everyone knows and loves it: The »shuffle« function that is included in every disc- or memory-based music player. If you don’t feel like chosing your »playlist of the day« when you want to listen to your music, you just turn on the shuffle mode and off you go with the finest collection of all tracks on your CD or MiniDisc or hard disk or flash chip. This feature is so popular that a certain computer manufacturer once successfully introduced a MP3 player that was actually based on the shuffle option.

However, there’s something wrong with virtually every shuffle implementation: It’s random.
I can already hear you saying »He gotta be kidding! Randomness is what shuffling is all about!« Well, you’re right. Mostly. The problem with conventional shuffle algorithms is that they are too random. They lack fairness and uniform distribution.
Read more …

Ubuntu 7.04 »Feisty Fawn«

(April 20, 2007)

The long-awaited release of the new Ubuntu version, 7.04 alias »Feisty Fawn«, was done today as scheduled. Just after work, I downloaded my copy (rather slowly, just 100 KB/sec, even though I used BitTorrent) and installed it into my Linux playground partition. Here’s what I noticed.
Read more …

Breakpoint 2007

(April 6, 2007)

It’s easter again, so it’s again time for world’s biggest demoscene-only party: Breakpoint. No need to mention that Kakiarts was again present at this awesome event.
As with the Evoke 2006 report, this one will be a »live« report. So I’m appending content to this entry during the party.
Read more …

Antenna improvisation

(March 31, 2007)

When I wanted to watch an episode of The A-Team in TV today, I was surprised by a black screen instead of Hannibal Smith and B.A. Baracus. What happened? At first, I thought the TV software couldn’t cope with the graphics driver I updated today to get a specific game working (we’re talking about Windows here, as you might have guessed :). I became skeptical when the same problem happened to another TV viewing program and even the Linux-based external DVB-T tuner box I have. Something has been wrong with my antenna feed.

Long story short, it turned out to be (most likely) a power outage in the attic where the antenna amplifier is located. For reason’s I’m not going to discuss here, there was no way to fix the problem in time, so I had to live without TV for a day – which would not have been a problem, if it hadn’t been for the boxing match between Henry Maske and Virgil Hill tonight. I really wanted to see this, but since there was no way to make the antenna system working again, I resigned. I phoned my father at home to have him record the fight, and while we were at it, he gave some tips on how to temporarily solve the problem. You know, stuff like »use some uninsulated wire«. Since I don’t have any uninsulated wire in my apartment, I tried the other suggestion: Use the antenna cable and put a screwdriver into it (this works because the center of the plug has a little hole in it). To my great surprise, this actually worked! After some experimentation, I found that the optimal position of this »poor man’s antenna« is close to the window. So I fiddled around a bit and hung the weird construction somehow into the window blinds. The whole thing works like a charm and now I can watch Maske’s (supposed) comeback fight in perfect quality even though the antenna feed is broken.

This post’s text is a screenshot

(February 17, 2007)

… from an experimental / example program. Click to read the full text:

(With this much text, it runs with approximately 15 fps on my Athlon64/3000+, GeForce 6800 machine.)

Doesn’t µTorrent check hashes?

(February 15, 2007)

These days, I’m preparing my »Linux distributions for beginners« talk I’m going to give at CLT 2007. This means that I download a bunch of distro DVDs, burn them and install Linux from them to see how they behave. Having made some bad experiences with broken HTTP downloads last year, I’m now using BitTorrent exclusively, because it’s extensively checksummed and every broken fragment is downloaded again until it is OK.

It just so happened that I switched to µTorrent a few weeks ago. Before that, I used Azureus, which is written in Java, takes ages to load, eats up quite some resources and crashes at least twice a week. (Yes, you read this correctly: Although it’s written in Java, it crashes. Hard. With a General Protection Fault, in a different module each time. Don’t ask me.) µTorrent solved these problems all at once. Granted, the UI is even more cryptic than Azureus’, but that’s a fair price for stability.
Read more …

Going retro

(February 1, 2007)

Yesterday and today, I finally did something I was planning to do for a long time: Writing some code for the Sinclair ZX Spectrum, the computer I »used« in my childhood. I was too young to write assembly code back then (but I did write a good share of BASIC), but since I’m becoming more and more interested in old-school computing due to my demoscene experiences, turning back to the beloved machine was the logical thing to do. The 256-byte effect I wrote is nothing special – it’s just four scrolling coloured stripes: The Spectrum logo. But although the effect is simple, I’m quite proud of it. After all, it’s the very first Z80 assembly code I ever wrote!

  • Download the tape file and the source code: stripes.zip (2.9k)
  • If you don’t have a 48K ZX Spectrum, get an emulator! I recommend ZXSpin or EmuZWin for Windows, RealSpectrum for DOS and FUSE for Unix.

Honey, I shrunk the MP3 decoder

(January 28, 2007)

A few months ago, I implemented a minuscule MPEG Audio Layer II decoder. While I still consider this as a cool hack, it’s not of too much use nowadays. Everyone uses MP3 or Vorbis; MPEG Audio Layer II is only used together with MPEG Video (think VCD, SVCD and DVB), but you usually don’t have MP2 audio files on your disk. So the aim was clear: I wanted to have an as-small-as-possible MP3 decoder, too.
Read more …

TD saved the day

(January 17, 2007)

»Now what’s that TD supposed to be«, you may ask. It’s the common abbreviation and executable name for Borland’s Turbo Debugger, an easy-to-use DOS-based debugger that was popular in the early 90’s. Your next question might be, »and why should anyone use that in 2007«? Well, to debug DOS programs, of course. »And who writes DOS programs in 2007«? I do – in this special case, it was a 256-byte intro.
Read more …

An excellent DVD: Mindcandy Vol. 2

(January 3, 2007)

At tUM, I received a Freax Art Album book and a Mindcandy Volume 2 DVD as prizes for the vector graphics compo. The book isn’t as interesting as the first volume (which I loved) – it’s a picture book after all, not a text book. The DVD, on the other hand, immediately got my interest. It is a selection of 30 representative Amiga demos: Technological breakthroughs and trend-setters from 1989 to 2004. While the Amiga was still alive, it somehow went past me and never caught my attention. But one year ago, I started to read a lot about old computer platforms – mainly out of technical interest, and to be able to judge demos better. During this process, I realized how great the Amiga was and started to feel sad that I wasn’t part of this hype back then. So the DVD fills exactly this emotional gap: Without buying an expensive A1200 from eBay and/or fiddling around with the intricacies of WinUAE, I could watch at least some of the masterpieces I missed.
Read more …