programmierung - 6.9.2010 - 14.11.2010

atomo - very interesting language, very flexible and compact. I stumbled upon it because someone built a Mongrel2 Adapter for it. What is interesting about atomo for me is that it is yet another new language with prototype-based object orientation. Something that is tried far too rarely (other languages in this area are Slate, Self, Io, Newtonscript and JavaScript).

Also interesting: atomo is embedded in Haskell and thus provides a dynamic scripting language for Haskell environments and of course a good integration into the Haskell world. There was something similar with one of the first Perl6 prototypes, which was also built in Haskell (Pugs).

Kilim - stumbled upon this while browsing the Orc documentation, a microthread library for Java.

Orc Language - haven't read any of this yet, but it looks quite interesting. The core is Cor, a functional language without side effects, and on top of that Orc, which is used to orchestrate services in distributed systems. All of this in a quite appealing, compact syntax on the JVM. Could definitely take a look at it as an alternative to Scala and Clojure, with Java being integrated as an external service, thus allowing quite simple construction of distributed systems where parts are implemented in Java. Reminds me in many points strongly of the ideas of Erlang (generally assume a distributed system, but still keep parts local for performance reasons), but I find the syntax much more pleasant. And with the JVM a much more widespread VM than Erlang's BEAM.

Twisted Orchestration Language in Launchpad - and someone has ported the Orc combinators to Python, using Twisted. However, I personally find Twisted rather disgusting to program, but to each their own ...

Tornado Web Server Documentation - I should really take a closer look at Tornado. I just built a web service for a side project using web.py, which was surprisingly simple (and dirty). Tornado is based on a very similar concept, throws in Django-like templates, and also offers a good asynchronous server and support for asynchronous sockets and HTTP requests. Could be a good alternative for web services that require few resources.

Oracle cooks up free and premium JVMs - and Oracle begins to try to cash in on Java. If it works, Java could soon be in a similar situation to .NET: the free implementations lag behind the scope of the commercial ones. What this means for alternative languages on the JVM remains to be seen - but it will certainly cause some problems. However, the JVM world is large enough and equipped with sufficient alternatives, and Oracle is not Microsoft. Therefore, this could all just be a storm in a teacup and at most affect the typical Oracle victims.

Eventlet Networking Library - I need to take a closer look at this, the monkey-patching of standard libraries to trivially use them in an asynchronous environment looks very interesting.

Links

rfc1437 | Content-type: matter-transport/sentient-life-form - Strong trends towards "throw away with archive and start from scratch" with slight options for "throw away, static archive and maybe shovel a part into the new platform if I find the time". The link shows where I'm currently playing around. Wordpress with a few small plugins and an nginx caching front.

Bitrot

I've been hit by this as well. My old blog software probably won't be able to survive unchanged. Old Python version (2.3), old (very old) Django (0.91), old PsycoPG driver (1.0), old PostgreSQL (7.4) and all of this on an old Debian (a wild mix of various versions with backports and custom programs and several failed upgrade attempts). Argh.

Well, I'm still torn between "rewrite" and "throw away". The latter has the charm that I won't have to carry all that junk around anymore. And honestly, nothing particularly interesting ever happened on my blog anyway. Maybe I can set up a wget mirror beforehand and dump the whole thing somewhere statically, as an archive.

Rewriting naturally has a lot of charm as well, but converting thousands of old entries (over 4000 articles and over 4000 links, plus almost 200 images) from 8 years (first entry on 3.11.2002) of blogging doesn't sound like fun. And presumably, thousands of the links are outdated and obsolete anyway.

No idea what I'll do, maybe I'll try to bring the Metaeule to the new box first, where I only have the problem that PHP4 is no longer in the Ubuntu repository for 10.04 and I therefore have to force the owl onto PHP5 (and that with code based on Wordpress 1.5 - I must really be crazy).

Or I try to install an ancient Debian with the packages used at the time - the box doesn't run in the front anyway, but behind other machines, so the hacking risk is rather low at this point. The Metaeule naturally also has a few thousand posts in the archive (only 8291, which is almost nothing), but if I can keep the old software running (some security patches have been applied over time, so it can actually continue to tinker along), I don't necessarily have to tackle it.

Somehow, the internet was also such a really bad idea ...

Twisted Orchestration Language in Launchpad - and someone has ported the Orc combinators to Python, using Twisted. However, I personally find Twisted rather disgusting to program, but if you like ...

Kilim - stumbled upon this while browsing the Orc documentation, a microthread library for Java.

Orc Language - haven't read anything about it yet, but it looks quite interesting. The core is Cor, a functional language without side effects, and Orc, which is built on top of it, is used for orchestrating services in distributed systems. The whole thing in a quite appealing, compact syntax on the JVM. One could certainly take a look at it as an alternative to Scala and Clojure, Java is integrated as an external service, which makes it quite easy to build distributed systems in which parts are implemented in Java. It reminds me in many points strongly of the ideas of Erlang (generally assume a distributed system, but still keep parts local for performance reasons), but I find the syntax much more pleasant. And with the JVM a much more widespread VM than Erlang's BEAM.

Interactive Fabrication » Beautiful Modeler - wow, that's incredibly cool.

Tornado Web Server Documentation - I really need to take a closer look at Tornado. For a side project, I've built a web service with web.py, which was shockingly simple (and dirty). Tornado is based on a very similar concept, throws Django-like templates into the mix and offers a good asynchronous server and support for asynchronous sockets and http requests right away. Could be a good alternative for web services that need few resources.

Fat Cat Software - iPhoto Library Manager - since I was stupid enough to make a photobook on a different Mac than usual (well, the usual one was always occupied), I'll probably have to take a look at this to see if I can merge my books onto a single machine. It's quite annoying that Apple doesn't offer any merge function in iPhoto. With a notebook and a desktop, you quickly end up with separate libraries. If Lightroom supported book printing, I would have been gone from iPhoto a long time ago. Everything is somehow not quite satisfying.

The V4Z80P – A Z80 Based Laptop @ Retroleum - here someone not only builds his own computer with his own system, it's also a laptop. Or something similar anyway.

Oracle cooks up free and premium JVMs - and Oracle begins to try to cash in on Java. If it works, Java could soon be in a similar situation as .NET: the free implementations lag behind the scope of the commercial ones. What this means for alternative languages on the JVM remains to be seen - but it will certainly cause some problems. However, the JVM world is large enough and equipped with enough alternatives, and Oracle is not Microsoft. Therefore, this could all just be a storm in a teacup and only affect the typical Oracle victims.

Kunsthalle Bielefeld: Der Westfälische Expressionismus - I think I actually have a reason to drive to Bielefeld.

Mediathek für Mac OS X - I need to check this out. After all, archiving is now the viewers' job thanks to stupid private broadcasters (and politicians who have made themselves their errand boys).

Panasonic DMC-GF2 Preview: 1. Introduction: Digital Photography Review - I hate you, Panasonic. Now I want the cute little GF2+14mm kit. Menno. First Apple with the MacBook Air and now Panasonic, everyone just wants my money.

Eventlet Networking Library - I need to take a closer look at this, the monkey-patching of standard libraries to make them trivial to use in an asynchronous environment looks very interesting.

don’t look » columnManager - interesting jQuery plugin that enables efficient column show/hide for tables. If this could be combined with the DataTable plugin, it would be a very practical thing.

John Resig - Simple JavaScript Inheritance - a very nice pattern to simulate class-based inheritance with JavaScript (for the situations where this structure makes more sense than the normal prototype system of JavaScript).

jQuery column cell selector - bramstein.com - another jQuery plugin, this one provides a practical pseudo-selector for columns in a table to then make changes with JavaScript.

Inform 7 - meanwhile, Inform has become a language similar to English for creating interactive fiction. And it has received a GUI for the Mac with which you can analyze and test the various story paths. Somehow impressive what has all emerged, just for text adventures.

Coffee on the Keyboard » Bleach, HTML sanitizer and auto-linker - Library from Mozilla that offers white-list based HTML cleaning. The Mozilla people usually know what they are doing, so this library might actually be useful.

robhudson's django-debug-toolbar at master - GitHub - ok, this tool is officially hugo-approved. Simply brilliant, it provides exactly the right amount of information for Django development and doesn't interfere with existing layouts (at least it worked well for me in experiments).

postgres 9 streaming replication and django balancer - Santana may not yet run with Django 1.2, but the balancer for database access combined with PostgreSQL replication sounds like a nice method to scale up Django systems when normal means with one database are no longer sufficient. Maybe I should set up a test installation.

Fuzzy Mathematics with FuzzPy (Part 1) | Mad Python - if it's not just about fuzzy numbers or error propagation, but also fuzzy sets or graphs are of interest, this module might help.

buckingham - Project Hosting on Google Code - an interesting project that not only tracks error propagation in calculations (which we've already discussed recently), but also takes units into account and can convert between units.

Building iPhone Apps with HTML, CSS, and JavaScript - had I already had that? Doesn't matter. jqTouch for creating iPhone web applications. Since I'm playing around with that at work right now, I'll just blog about it.

PhoneGap - if the site is up, there should be an application to convert a web application into a native application (with extended access to native features of the iPhone or other devices). Note for later.

jacksonh's manos at master - GitHub - Web framework for C# that also runs with Mono. Yes, I know, C# - but I need it for the company anyway and then I could just as well take a look at something like this.

kramdown - a nice Markdown implementation for Ruby that can produce both HTML and PDF (via LaTeX) and is therefore interesting for sites that want to make content available for download.

Andrew de Quincey's livejournal - not only are iPads interesting to jailbreak, but also book readers like the Kindle (which has quite interesting hardware)

Camelot - See it - quite obvious: take Python and an ORM (here SQLAlchemy) and make a 4G language for database programming with QT as a graphical interface. The whole thing here as a GPL project for which you can also get commercial licenses if you want to create commercial programs with it.

uncertainties Python package v1.7.0 documentation - a very interesting Python module that allows you to use floats with uncertainties in functions. Particularly interesting for situations where you need to track error propagation in calculations (e.g. planning figures or measurement data).

santhoshtr's pypdflib at master - GitHub - I might need this, especially since there is a sample that renders restricted HTML to PDF.

Filtering Dropdown Lists in the Django Admin — Stereoplex - because it is often needed and because some good ways are described here.

arskom's soaplib at 1_0 - GitHub - and another SOAP library. This one can provide the services as WSGI applications, so I can actually throw away the whole server handling from the Toolserver and replace it with normal WSGI servers like Apache mod_wsgi or FLUP.

pysimplesoap - Project Hosting on Google Code - as I still have a work project open to modernize my toolserver, this could be a candidate to replace the rather outdated (and buggy for years) SOAPpy.

Using the ElementTree Module to Generate SOAP Messages - and another SOAP library, this one is based on the nice ElementTree parser. And it's built by effbot, which also gives a lot of hope (he can XML).

dcramer's django-sentry at master - GitHub - unfortunately only Django 1.2 (my own internal framework that is based on Django is unfortunately not compatible with 1.2 at the moment), but very interesting for collecting error messages from Django in the database for later evaluation. Of course, you can also have the errors sent to you by mail, which is already possible with built-in tools, but especially when several people are maintaining a system, storing them in the database can be much more convenient.

Where I've already been - simply because I wanted to play around with the Google Maps API. I've already been to the green areas, I've also been to the red areas and I found that great, yellow is planned.

gcv's appengine-magic at master - GitHub - is intended to enable interactive development of Google AppEngine tools.

jduey's arrows at master - GitHub - I should take a closer look, Lisp (and thus Clojure) is usually much closer to me as a programming language than Haskell and maybe I will finally understand what these Arrows are all about.

ninjudd's cake at master - GitHub - should I take a look at this? Especially the persistent JVM when using scripts could be interesting.

Kojo Home - an environment similar to Processing with Scala as the scripting language. Very interesting because it runs on multiple platforms like Processing, delivers quick visual results but is not based on Java, but on a modern multi-paradigm language. In addition, it offers a small turtle right from the start, just like in Logo. Turtles are cool.

README - copperhead - Project Hosting on Google Code - interesting idea, using decorators and introspection in Python to build an embedded language for programming on the GPU. Or to put it more understandably: translate Python code (limited language scope) into GPU machine language.

codepad - practical when discussing code in chat, as the code is not only displayed but also executed. Therefore, especially interesting for algorithms where you can include the data in the code.

Free Pascal - Advanced open source Pascal compiler for Pascal and Object Pascal - Home Page - Blast from the Past. The new 2.4 of Free Pascal supports OSX/Arm as a target. Yes, this is supposed to allow programming iPhone applications - and with the lifting of Apple's tool restrictions, this could almost be realistic (though I don't know how good the integration with Cocoa is). However, I'm not really sure if I would want to deal with Pascal again after all these years.

home | Disco Project - yesterday I already had mincemeat, disco is similar but more advanced if the simple model of mincemeat is not enough.

Lazarus Snapshots - just for completeness: there is also a GUI-IDE like Delphi for Free Pascal, and according to the list of snapshots it also works on OSX (i.e. the Mac, not the iPhone). Those who want to play around with Pascal might be able to get started with the linked snapshots.

octopy - Project Hosting on Google Code - and a small and simple implementation of mapreduce in Python.

mincemeat.py: MapReduce on Python - stupidly simple map-reduce framework. Just a Python file and minimal code and you have a map-reduce cluster.

Sass - Syntactically Awesome Stylesheets - I'm not sure if I'm so enthusiastic about it yet, but it's basically a preprocessor for CSS that offers various extensions that make it easier to write complex CSS.

NodeBox for OpenGL | City in a Bottle - builds on Pyglet and provides a 2D animation library for Python.

objgraph - Drawing Python object reference graphs - I'll definitely check this out, even though I fear my memory structures are too wild to be represented graphically (many such tools assume that everything more complex is encapsulated in objects, but with a more functional programming approach, standard data structures are used much more heavily). It would be worth a try, though.

pyglet - interesting small graphics library for Python. Looks nice and is multi-platform and should be easy to install (no dependencies).

Introduction - those who prefer to automate with Ruby instead of AppleScript will find a good documentation for a Ruby AppleScript Bridge here.

Lingua::Romana::Perligata -- Perl for the XXIst Century - Perl. In Latin.

Squeryl - this looks very interesting, reminds strongly of LINQ (which is not necessarily bad, even if it comes from Microsoft). It definitely makes sense to use Scala's features to build an ORM that goes far beyond normal Java ORMs.

COBOL ON COGS - I am at a loss for words ...