background preloader

Wjw

Facebook Twitter

Hardware

Gamedev. Wordperfect. Widefinder 2 with Clojure. Alex's log 2009-12-13 Like many Clojurists, I’ve been pretty avidly following Tim Bray’s experiences.

Widefinder 2 with Clojure

Recently Tim has been been trying to implement the Widefinder 2 benchmark and had apparently been struggling to get it to perform well. This was of course an irresistible challenge and I had to have a go at it myself. I cooked up my own version which seemed to run pretty well on the only box I had handy to try it on (a quad-core Xeon) and then Tim kindly gave me access to the WF2 test machine a Sun T2000 with 32 hardware threads. Unsurprisingly it performed abysmally and was barely loading the server. Let’s build an MP3-decoder! Even though MP3 is probably the single most well known file format and codec on Earth, it’s not very well understood by most programmers – for many encoders/decoders is in the class of software “other people” write, like standard libraries or operating system kernels.

Let’s build an MP3-decoder!

This article will attempt to demystify the decoder, with short top-down primers on signal processing and information theory when necessary. Additionally, a small but not full-featured decoder will be written (in Haskell), suited to play around with. The focus on this article is on concepts and the design choices the MPEG team made when they designed the codec – not on uninteresting implementation details or heavy theory. Online speed reading application.