Archive 13.12.2009 - 25.12.2009

Mail::RFC822::Address - "The grammar described in RFC 822 is suprisingly complex. Implementing validation with regular expressions somewhat pushes the limits of what it is sensible to do with regular expressions, although Perl copes well"

The 25th Anniversary Edition of Little, Big, by John Crowley - only 4 months left until release! One of the most beautiful books in fantasy literature in a special edition for book lovers. With reproductions of graphics by Peter Milton as illustrations.

Real World Haskell - I hadn't linked that yet? But this is the complete content of "Real World Haskell" on the web, the O'Reilly book on Haskell. I should read through it in a few quiet hours (days?).

Government keeps raising unemployment insurance contributions open - not that I expected anything different, but the new government is damn quick with their election lies. Last time, it took them a few months longer before their election promises were reduced to absurdity.

Socket Benchmark of Asynchronous Servers in Python - interesting article about the performance and scalability to high hit rates of various asynchronous servers in Python.

A Case of the MUMPS - The Daily WTF - for the occasion, the link is quickly blogmarked, as I might need it in the near future ... (don't ask!)

HDR photo software & plugin for Lightroom, Aperture & Photoshop - Tone Mapping, Exposure Fusion & HDR Imaging for photography - might be interesting at some point and the software is available for Mac and Windows. And there is also a plugin for Lightroom for integration.

Intersystems Caché -- Gateway to hell - TDWTF Forums - also this link blogged for the same reason.

Invent with Python - interesting free book about Python programming. Among other things, PyGame is used in Chapter 16.

Panasonic Lumix GF1 Field Test — 16 Days in the Himalayas - very nice review with a lot of practical reference and good example photos. Better than the usual pixel peepers and newspaper photographers.

WinMerge - if you ever need a graphical diff/merge tool for Windows. Open Source.

Crowdsourced document analysis and MP expenses - digging through British MPs' expense lists in Django. Interesting article about the pitfalls and problems of such a project at the Guardian.

fabricate - interesting build tool that automatically determines which dependencies exist from the commands for the compiler and then derives only the necessary actions from this in case of updates. Makefiles are quite normal Python scripts, which enables a whole lot of interesting hacks.

Schnööööööö!

Schnööööööö!

Schnööööööö!

Building a Clojure Web application with Incanter, Compojure, and Leiningen « Data Analysis and Visualization with Clojure - very nice, especially because this example not only beautifully shows how simple it is to build a web application with Clojure using Leiningen and Compojure, but also because it's not the usual boring suspects as examples, but something completely different. (doesn't work on OS X at the moment due to a change by Apple to Java for 10.6, but the Leiningen people are probably already on it)

git.postgresql.org Git - postgresql.git/commit - the first replication features are coming to the PostgreSQL tree and will therefore be available in 8.5. Great!

About Hypertable - something like Google's Bigtable, but as open source. Highly scalable database. Uses Thrift as the client protocol and is thus accessible from many languages.

etherpad - the promised code for EtherPad is now on Google Code.

Haystack - Search for Django - and this is the integration of Whoosh in Django. There are others, but this one seems the most developed.

InfoQ: Clojure 1.1 Adds Transients, Chunked Sequences for Efficiency - at the moment, Clojure is seeing the more interesting optimizations and considerations for functional programming. Because they focus on the essential part: data structures. An often neglected area in other languages - what good is a functional language if the included data structures are simply too low-level? Clojure provides access to low-level elements from Java if necessary for performance reasons, but also high-level data structures that behave much more naturally in functional code. And with chunked sequences and transients, now two quite elegant optimizations for these, which help avoid descending into the Java depths.

Leica X1 Review: 27. Conclusion: Digital Photography Review - one does wonder, when reading the "Cons", what Leica was thinking with this camera. Sure, the criticism isn't devastating, but we're talking about a €2000 camera here. Things like "Accurate manual focus impossible" and "Live histogram unreliable" or "Camera locks up completely when buffer is full" are simply unacceptable.

I was then

Mir war danach

Mir war danach

Ten years of .NET - Did Microsoft deliver? • The Register - "COM has never gone away, and .NET developers who want to use new Windows 7 APIs, for example, have to use an interop library to do so."

Whoosh - Full-text indexing in pure Python. Could be interesting for some projects.

Algorithmic Botany - in Common Lisp. There you will also find a link to the book with the algorithms. Rendering is done with classic renderers, the Common Lisp code only generates the model description as input.

Apparent Software blog » Blog Archive » “Is PayPal good for your microISV business?” A short PayPal horror story - Story why you can use PayPal as a customer (buyer protection is quite useful), but actually not as a merchant. It's just eBay and not a real payment provider ...

BERT and BERT-RPC 1.0 Specification - BERT are Binary Erlang Terms - that is the format that Erlang uses when messages are sent (and internally converted with term to binary).

briancarper.net :: Clojure Reader Macros - very dirty. Wild patching of the Clojure runtime at runtime. But a nice example of how you can easily reach into active Java objects from Clojure. However, you should not use this in production code (so this specific application of building your own reader macros for it).

IronPython - Release: 2.6 - this brings IronPython up to date with the Python 2 series. And allegedly, with a few changes, Django should also run directly on IronPython, although I haven't found any recent posts about this, only ones from 2008. .NET is not my favorite environment, but at work we will probably take a look at it in the long run, simply because integration with the rest of the Windows world should be easier with it than with the standard CPython.

John Graham-Cumming: Data Visualization Disease - "Averages are fun because any fool can calculate them, but pity the fool who averages without thinking.".

mojombo's bert - and here is a library that implements BERT in Ruby.

ProjectPlan - unladen-swallow - Plans for optimizing Python - interesting status about Unladen Swallow, the Python version that builds on LLVM as JIT.

Python Package Index : python-daemon 1.5.2 - because I always need it from time to time and then always have to do it manually: this module helps to turn a Python script into a proper Unix daemon, with correct forking and PID file handling.

samuel's python-bert - and since I'm at it, also BERT in Python.

The Render Engine - Javascript Game Engine - since JavaScript now delivers serious performance with modern browsers like Safari 4 and Chrome (and betas of Firefox), you can do crazy things like writing rendering engines for games in JavaScript.

trotter's bert-clj - and now another BERT implementation in Clojure

Making light - Wouter Brandsma received a Ricoh GXR with the 50mm macro module as a test unit and is currently trying it out.

Microsoft Acknowledges Theft of Code from Plurk - first Microsoft is caught stealing GPL code (and now releases the questionable tool itself under GPL, which will surely please them) and then Microsoft is caught stealing code from Plurk (and first has to shut down the service). Quite funny, wasn't Microsoft the company that always got so worked up about others using their code illegally? Hmm ...

Widefinder 2 with Clojure - Tim Bray's Widefinder2 project is slowly delivering very interesting results, here an article about how to optimize Clojure so that the performance beats the best Scala and Java solutions so far (where the Java version can of course catch up trivially, as most performance-relevant things in this version rely on Java libraries). A nice example of how you can bring low-level optimization into Clojure for the things that are really important for performance, but still keep the good high-level mechanisms of Clojure for the rest of the code.

Bug #387308 in Ubuntu One Client: “[Wishlist] Proxy Support” - Ubuntu One has been included by default with Ubuntu since the karmic koala. And does not use the proxy settings. Tinkering!

Code tutorial: make your application sync with Ubuntu One - Ubuntu One (the file and synchronization service from Canonical for Ubuntu) uses CouchDB internally (and the synchronization is based on CouchDB replication!) and this tutorial shows how to modify applications so that they work with CouchDB. Examples are in Python and also use some aspects of DBUS (Gnome), so it is generally a quite interesting tutorial for desktop programming under Linux. I think it is a good idea for Ubuntu One to rely on CouchDB replication - the mess of MobileMe in synchronization should be much better to handle.

Damn Cool Algorithms: Log structured storage - compact article about storing data on disk. In this case, oriented towards the techniques of log-based file systems, which are also used in databases.

Hunger!

Hunger!

Hunger!

Intland now on Mercurial - Part 3: Giving new momentum to the Eclipse Mercurial Plugin | Intland Blog - I might take a look at that, the official Mercurial plugin for Eclipse is not very pleasant. On the other hand, some of the language plugins for NetBeans (especially the Python plugin I like) are much better than for Eclipse.

Maven - Guide to using proxies - because I needed it just now, as Leiningen (a build tool for Clojure) relies on Maven. Unfortunately, this has to be changed in an XML file, which makes it not so easy to automate. I need to come up with something useful for Linux that automatically switches various configs when settings change.

Clojars Tutorial - GitHub - Clojars will be something like CPAN for Clojure (and it will become more and more) and is very simple and elegant to use with Clojure and the support of Leiningen.

EMBODY by Herman Miller - Chairholder News - the Aeron chairs are already super expensive, but super good. The Embody is even better. Does anyone have 1600 Euro to spare for me?

Radio UserLand: Auf Wiedersehen, und danke fĂĽr den Fisch - or something like that. Radio Userland is being shut down. It's a bit sad - my blog originally started with Radio Userland, then I hosted it myself with the Python Community Server (and also gave other Radio Userland users a virtual home there), then I wrote my own Radio clone, the Python Desktop Server. But now all of that is gradually disappearing from the net. Even Phillip Pearson has taken his PyCS stuff offline bit by bit.

Yeti programming language - I should take a look at that, an ML for the JVM. Scala offers many of these features as well and certainly has much more momentum at the moment. But I've always found ML quite interesting because the language is quite compact - and with JVM integration, you get all the Java libraries to play with so to speak for free. Although Yeti is really only an ML-style language, not really ML (significant differences in syntax).