The captcha testing post

(October 24, 2006)

Almost no one actually reads my blog, but spammers seem to like it anyway – I get from 10 to 50 spam comments each day. It could be worse, you might say, but nevertheless I grew tired of moderating all these comments and decided to do something about it. So I implemented a captcha – but a special one. The normal »type the text that is contained in this image« class of captchas IMHO is broken by design – either it’s so simple that OCR bots will easily get past it, or it’s hard to implement and even harder to read, so that regular human visitors will have problems recognizing the badly twisted letters. Also, an image-based captcha won’t work for blind people. Audio captchas are even worse, because it requires the user to active Flash or some other dubious plugin or even download a file and listen to it, which may be a problem if there are no speakers connected to the PC or you are in an environment that requires silent operation (e.g. a library). In other words, captchas suck.
This is why I chose another approach: A text captcha. It poses a simple, plain-text English question about basic common knowledge things that should be sufficiently easy to answer. Or, to put it another way: If you are able to read and understand the post and write a comment on it, you are surely able to answer the captcha question, too.
Read more …

Making of »nano«

(October 8, 2006)

In the last two months, there has been a fair (but not overwhelming) amount of media awareness around the Evoke Alternative Platform winner demo, »nano«. I’ve been interviewed for a minor German internet portal and for a major German Mac magazine and received almost exclusively good ratings on pouë Finally, a few weeks ago, Gasman (a well-respected scener) started a thread about it in the iPodLinux forums. There were numerous people wondering about how it’s possible to do real-time 3D graphics on the iPod nano. To answer these questions once and for all, I’ve taken much time to write this very long post that really should contain all relevant information.
Read more …

A MPEG Audio Layer II decoder in 4k

(September 19, 2006)

Last week, I read a paper on how to partially encrypt MPEG Audio data. That is, modify an existing audio file that it is still syntactically correct, but sounds more or less broken. For example, imagine an online music shop that offers free, but partially encrypted music downloads: The files are in bad quality, and you have to pay to restore the full fidelity. But I digress.
The point is: that paper was inspiring. I decided to try the presented method using MPEG-1 Audio Layer II (»MP2«) as a basis. I chose this format because it’s the simplest audio compression scheme that is still in broad use today (for example VCD/SVCD, DAB and most prominently DVB). Layer III (»MP3«), AAC and Vorbis are considerably more complex. And, it just so happened that I got a copy of ISO 11172-3 (MPEG-1 Audio) on my hard disk :)
While working on the project, I thought that it’d be cooler to write a full decoder instead of this mere proof-of-concept »look what I can do to my MP2 files« hack. So I developed a small MPEG-1 Audio Layer II decoding library called kjmp2 which eventually evolved into a less-than-4k MP2 player application …
Read more …

An iPod hacker’s diary

(July 9, 2006)

I didn’t update CENSORED for quite a while, but during the last week, I finally took some time to push the project further. The result is version 0.2.0, available from SourceForge since yesterday night. The new version is all about artwork support: JPEG or PNG files that are placed next to music files will now be shown on playback. This sounds simple, but in fact, this little feature took me about half of the time I spent for the whole 0.1 series. Alas, this has only partly to do with the complex data structures Apple tends to use – a good share of the problems I had was generated by myself …
Read more …

An unforgiving API

(May 16, 2006)

When writing a program for an iPod, the first and foremost thing to implement is, of course, sound. I, for one, did some of the graphical bells and whistles first, because that’s where my real business is, but today, I wanted to add a little bit of music. It was going to be a smooth ride, I thought, as iPodLinux’ native sound API is just plain and simple OSS.
Read more …

iPod nano ownage

(May 15, 2006)

What does a geek do with his newest high-tech gadget? Exactly – he’s hacking and/or putting Linux on it! This weekend was the time for my trusty iPod nano to become modded, with the intention to run some self-written homebrew on it.
Read more …

The inner workings of »Origami«

(April 22, 2006)

As promised in my post about writing 4k intros, I’m now digging a bit deeper how my 4k (actually 3.5k) intro Origami 3.5K was made. I’ll start with a »end-user« FAQ that covers some of the artistic and organizational aspects. The rest of this article will be very technical. Maybe the information isn’t directly useable in other projects, or maybe my solutions aren’t the optimal ones, but I hope that anyone who is going to do a 4k intro soon finds at least part of the information useful. YMMV.
Read more …

How to write a 4k demo/intro

(April 6, 2006)

Now I’m almost done with the functional part of my 4k intro (read: all the tricky stuff is working, and there’s still lots of space to add new stuff). I’ll use this occasion to summarize some of my findings. Maybe someone else will find it useful (but I doubt that :) – I surely do, so this is also some kind of reference for myself. So here is KeyJ’s little TinyDemoWritingGuide. It’s targeted towards experienced C programmers. Not everything here may be completely true as I’m a beginner in the 4k field for myself.
Read more …

Size coding loses its magic if you do it yourself

(April 1, 2006)

From the programmer’s point of view, 4k and 64k size limited demos are particularly interesting, because these types of demos rely much more on code than on data. And of course, there’s the sheer fascination of really cool graphics and excellent music in such a tiny amount of space. Programmers appreciate size limited demos the most, because they know how hard it is to get the code so small.
I’m no exception: When I first saw major 64k masterpieces like Heaven 7 or the product, my jaws dropped considerably further than those of my non-programmer friends, because I knew that 64k is really not much space.
Read more …

Just a small update: MPUI 1.1.6

(March 23, 2006)

I just released MPUI 1.1.6. This is mainly a small bugfix release that only adds very few features. The next big step will be the rewrite of the options/configuration system.

For those who are interested in helping with MPUI (besides what is written on MPUI’s website), I do have two other tasks left to do:

  1. This is for everyone: I need lots of example files to test with. If you have small (~10MB max) media files in exotic formats (mkv? nut?), with exotic configurations (17 audio tracks? embedded subtitles?) or exotic codecs (vp6? snow?), please make them available to me. Do NOT send me e-mails with attached media files unless I ask for it! In particular, I could need auxiliary subtitle files in all those ugly formats that exist (vobsub? ssa? whatever, I don’t even know them all). I do not care about the content of the files (porn? :), as long as it’s no illegal stuff.
  2. I could need help from someone who is good at creating icons, pictograms and all that stuff. I’d like to replace the minimalistic MPUI icons with nice and modern true-color ones. If you have some experience in painting or drawing images at 16×16 pixels and would like to improve MPUI’s looks, please send me an e-mail so we can discuss the details.