Archive 24.11.2009 - 17.12.2009

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).

Either Mark Zuckerberg got a whole lot less private or Facebook’s CEO doesn’t understand the company’s new privacy settings. - well, that's a surprise. (in my case, things are open because my Facebook profile serves only as a super aggregator, collecting almost exclusively public content, so stricter security settings don't make much sense there)

JavaScript web workers: use visitors to your website to do background data processing for you. : programming - crazy idea: set up JavaScript workers for distributed computing on websites. Every visitor participates in the calculation of some data. Of course, unless they use something like NoScript or PithHelmet and filter out the stuff.

The Tumblr Backup app is ready for its first beta... - for those who use Tumblr and have a Mac, there's now a backup tool. I might check it out for my small image Tumblr.

Fingerprint Readers on Linux Laptops and Notebooks - because my company notebook has one. And surprisingly: it works! The new Fujitsu S-Series boxes are very Linux-friendly.

Climate Conference: No Extra 0.5 Degrees for Tuvalu - the arrogance of the economic states towards the downfall (literally - they are drowning) of Tuvalu is revolting.

Government smartphones run on Windows Mobile - because, as is well known, it is so super secure and there are no backdoors in the system. After all, the entire system can be easily subjected to an audit. Ooops. Oh, and particularly cute is the decision for HTC Windows Mobile smartphones, after HTC itself announced that in the future, the new devices will primarily be released with Droid (which could realistically be subjected to an audit). Then HTC can sell its remaining inventory to the government at a high price.

Zarengold Bahnreisen - since I was looking for it again, I'll just blog about it now. Someday, when I have the money for it, and I'm not doing other crazy things like spontaneous trips to Russia or taking Russian language courses, I'll do the tour. On that train.

taskpaper-web - and another web version of TaskPaper, this one quite old and according to the project dormant, but might serve me as a starting point (or TaskPaper+).

taskpaperplus - I am a TaskPaper fan, but I don't have it on Linux or on the iPhone. So I searched and found this: a project that makes TaskPaper files editable via PHP over the web. It looks quite good, I need to play with it a bit.

TodoPaper - and for those who need TaskPaper on Windows, help is provided here. Another option would be to simply use Dropbox to transfer the files to my Windows machine at work (or run it under Wine on Linux).

We call it OPA - sounds very interesting based on the description, a development environment for web services and web applications based on OCaml with a focus on all the necessary basics such as XSS protection, SQL injection protection and similar.

Cadmium - Introduction - matching Cafesterol here is the OCAML Runtime in pure Java. With this, you can execute OCAML bytecode or use it as a runtime for programs compiled with Cafesterol.

Cafesterol - cool, an extension of the OCAML compiler that generates Java bytecode. With this, you can use OCaml not only to serve your own virtual machine and of course generate native code, but also go directly into the Java world.

PLT Scheme Blog: Futures: Fine Grained Parallelism in PLT - the best Scheme on the market now also gets microthreads. Still quite fresh at the moment, but this will certainly make it into the standard range in the long run.

Short Chat Server in Clojure - interesting small example of Clojure code. Shows well the use of asynchronous processes and network access. And with 75 lines nicely clear.

clutchski's fileutils - makes Python even better for shell scripts by providing various basic commands as Python functions. Nice.

Escher in Hagen - ok, besides the Monet exhibition in Wuppertal and Toulouse-Lautrec in Langenfeld, the third art exhibition I should add to my list.

Played Tabblo once

Tabblo: Clemens Church

See my Tabblo

I took these pictures in the Clemens Church in MĂĽnster to show the Church of Juliana. And during my search on the internet, I realized that there are hardly any really nice programs for freely arranging pictures on a page - Tabblo was the most convenient. Somehow strange, it seems that almost everything is focused on presenting pictures in some form of slideshow - in this case, however, I want to create a "loose panorama", i.e. arrange the pictures approximately as they correspond to the actual room. If anyone knows a good software for the Mac that can create such type of websites locally, I would be grateful for tips (possibly it works somehow with iPhoto or iWeb, but maybe there is also something more streamlined).

Basically, I like the idea of Tabblo to make pictures freely arrangeable and to shape them with text (optional) into small picture stories. Something like this as a locally hosted project might also be quite interesting, because somehow the pure slideshow is often quite boring.

Why Object-Oriented Languages Need Tail Calls – projectfortress Community - good post about tail-call-optimization. By Guy L. Steele - he should know what he's talking about, he was heavily involved in Scheme (the first language to explicitly mention tail recursion in its language description). Other languages he was directly involved with were Common Lisp, Java, and now Fortress. I hope this post will be read and understood by Guido van Rossum so that Python finally learns tail call optimization (yes, I know all the counterarguments and sorry, I don't find them particularly convincing).

Google Maps Distance Calculator - no idea why Google Maps can't do this out of the box, but hey, the service is really practical if you want to know how far Ekaterinburg is from MĂĽnster, for example (it's just under 3400 kilometers, that's almost nothing!)

La Bamba

We had a great time in St. Petersburg listening to the two of them, so here's one of their songs. And at the same time, this was my premiere using the GF1 to record a video - and don't complain about the shakiness, I didn't have a tripod with me and I was more focused on the sound anyway. But making HD videos with a camera, that's something else ...

MCLIDE - Lisp IDE for Macintosh - an interesting project that reimplements the tools from Macintosh Common Lisp as standalone tools and then connects them to various Lisp implementations via Slime/Swank. Definitely more pleasant for Mac users than using Emacs, for example.

Sonar - maybe I should check this out for the company to see if it can analyze our Python codebase. (It doesn't work out of the box, so you would need to find or write a plugin for it)

Building Clojure Projects with Leiningen - simply explains Leiningen. I like it very much, especially because it uses the entire Java world, but feels significantly simpler. No XML orgies and clean standalone-JAR generation.

Amp | Version Control Revolution - Mercurial in Ruby, with a strong focus on extensibility via a Ruby DSL. If I think about how often I use a VCS as a basis for all sorts of things (e.g. automatic deployment of blog postings in one of my blogs), this could actually be pretty cool.

formsets and inline forms in Django - a similar problem came up at the company recently, so here's a blog post that might be the solution.