Archive 14.7.2011 - 31.7.2011

Art Meets Cabbage

This is the strange name of a beautiful art event in Münster, which is taking place for the eleventh time this year. Artists exhibit their works in allotment gardens, public places, and other locations right in the city. In Münster, this usually takes place in Kinderhaus. Juliana and I visited two of the allotment gardens in Kinderhaus (Heidegrund and Bergbusch) today and looked at the artworks and gardens there. I particularly liked Heidegrund, very many flowers and overall wonderfully colorful.

WSGI and the Pluggable Pipe Dream | Armin Ronacher's Thoughts and Writings. Just read it to get a good overview of what WSGI actually is, what is possible with it, and where it might also get stuck.

Gambas - Gambas Almost Means Basic. Ok, and now it gets really wild, but I thought after RealBasic I can't help but also link to Gambas, a kind of VisualBasic clone for various systems. Can work with different databases and different GUI libraries. And a port to OSX is now available (June 2011, so still quite fresh), which also sounds promising for the future, as Linux and Windows are already supported. And yes, I know, "real" programmers turn up their noses at things like VisualBasic, but it is very useful for quickly putting together graphical tools and is particularly interesting for occasional programmers.

TL Omnis. And another RAD old-timer - Omnis was one of the first RAD environments I played with and it was quite unusual for its time. No "real" programming back then, just GUI tools for wiring and connecting in combination with calculated fields, but these were very powerful. Very strong focus on graphical tools for various purposes (DB design, relationship management, reports, forms, etc.). It's quite amazing what you can find when you dig a bit. By the way, there is a free standard version of the environment, so you can just take a look at what it can do today.

Lazarus. I mean, how can I skip something like a free Delphi clone when I write about IDEs and RAD tools? So here's the link, there are also OSX versions of it. And it's definitely an active development project. And hey, Pascal was my first high-level language after Basic when I started programming. Oh, and there's a pretty solid bridge to the Cocoa frameworks with Objective Pascal. Update: wow, that brings back nostalgia! Building command-line tools in Pascal! And the IDE isn't bad at all, it can do a lot!

I didn't know HyperNext Studio at all. A HyperCard clone for Mac, with which you can also create Windows applications. However, the last version is a bit older, I don't know if it still runs with Lion. Meanwhile, it is freeware (though closed source, I guess because their last version is already a bit older). And also interesting: it offers two languages, one that is modeled after HyperTalk and RBScript, an object-oriented Basic from Realbasic (another IDE for OSX and Windows). I guess HyperNext itself might be programmed with Realbasic. Oh, and with the HyperNext Android Creator you can also build Android applications with HyperNext. The Android Creator is however paid (but not really expensive with 60 dollars). And unfortunately, it is only available for Windows, not for the Mac. Update: those who have Lion can forget about playing with HyperNext Studio, because it is PowerPC code, and there is no Rosetta in Lion. So the maximum OSX version is Snow Leopard.

Whalesong: a Racket to JavaScript compiler. Haven't had a link to the best Scheme implementation on the net for a long time. Okay, Racket is no longer called Scheme, but there is still a lot of Scheme in it. And now there is Whalesong, a backend that produces JavaScript from Racket code - and can even generate standalone HTML files that run directly in the browser.

WebKit in PyQt - rendering web pages. Since I'm once again pondering GUI libraries and tools and playing around with Python and Qt, I should of course not forget the WebKit integration of Qt, which is really beautifully simple to implement, as these rather simple examples show. And the Qt interfaces under OSX are not 100% like native applications, but already much better than those of GTK. And you can then also run your code on other systems without much effort. The blog has even more very interesting small articles about Python and Qt.

Anonymous and LulzSec: "Lock your PayPal accounts" - Netzpolitik - derStandard.at › Web. You can clearly see what kind of attitude and arrogance is behind PayPal. Fits well with their approach of imposing American export restrictions on European companies and arbitrarily blocking accounts.

CodeMirror. If you want editors on websites that color the syntax of programs. Looks quite nice and could perhaps be interesting for a few things, e.g. where I allow restructured text to be entered, or where Python code is stored in the database. It is a JavaScript library that is simply plugged into the browser in the textareas.

Harbour Project. Someone mentioned dBase. Then I ended up at dbase.com - and then the question about Clipper arose. And then I searched for it. Why do I do such things? Why can't I control myself? And where is dBase for the cloud?

Orange - Data Mining Fruitful & Fun. Wow, just stumbled upon this, I didn't know it, I think. A GUI interface with a node interface for defining data analyses and visualizations, where these nodes are programmed in Python. The entire interface is built with QT, so there is also an OSX version of it. If you need to sift through larger amounts of data, this is definitely worth a look, especially since it is open source and you don't lose anything there.

Sage: Open Source Mathematics Software. Simply because I've been thinking about worksheet interfaces lately and considering what options there are - Sage is not just a math package, but primarily a huge collection of Python modules and a worksheet interface for Python as well. Okay, you use a web browser against a locally running web server, but still, it's actually a nice thing. And meanwhile, version 4.7 with many changes is out. And you can repeat good things. It's definitely cheaper than mathematics and I also like Python much better as a programming language. Since I will probably eventually install my own server to access notebooks from anywhere, here's a blogmark on a guide on how to build your own Sage server with Ubuntu.

The Xavisys WordPress Plugin Framework - Xavisys. Interesting if you want to build your own plugins for WordPress, as it takes care of some of the standard tasks and makes the code simpler.

BuddyPress.org. Just stumbled upon it again when it came to self-hosted social networks. BuddyPress somehow always flies under the radar, but it's quite an interesting development with all the features of WordPress - including, for example, all login integrations and similar. And there are also separate plugins for BuddyPress, such as the BuddyPress Media Plugin, with which you can create your own Flickr from a BuddyPress installation. And there are countless more things, up to commercial plugins for various purposes. And additionally, you can use all WordPress themes and build on them.

On Safari. Interesting article by someone who once did a safari differently than usual - instead of the bulky 35mm DSLR, he took a Panasonic GH2 (for the large zoom range) and a Leica S2. Very interesting observations in the article and also a few nice photos.

EL34 - The home of Eddie - About. Hmm, I should check that out too - the MPW-inherited Worksheets sound interesting, the ones from BBEdit are unfortunately always more clunky than really smooth. Maybe Eddie is better equipped there. But "SVN Integration" as the only version control? Ouch. Come into the current millennium, people! (found on the shockwave, the link)

Ultimatum: Paypal will enforce the Cuba embargo in Germany. Nice, how the nonsense from the USA is to be pushed through in Europe, right? It's about time for viable alternatives to PayPal. And it's about time that they finally fall under banking regulation - because their blocking actions often block money that is already there - as was the case recently with WikiLeaks.

Creating Apps Using AppleScript Objective-C. Maybe I should just get the book here to satisfy my (rather perverse) curiosity about the AppleScript/Objective-C Bridge.

SuperCard on Lion. And since I just wrote about HyperCard, its spiritual successor - SuperCard - still exists and has been made fit for Lion again. But it's still a Carbon application, so its days are probably counted (or it will become increasingly difficult to integrate SuperCard into current developments if a switch to Cocoa does not take place). And I'm still tempted to buy it, even if it's just for nostalgia. The hacking feeling of HyperCard I only experienced again later in Smalltalk environments (and they are unfortunately also rather dead under OSX).

Mac OS X 10.7 Lion Automation Release Notes. The worst language invention since HyperTalk has received a bunch of extensions in the Lion version, especially the integration of the Objective-C Bridge into the Apple Script Editor is funny - you can directly access Cocoa frameworks in scripts with it. Even though I believe that AppleScript has probably driven more programmers crazy than it has made life easier for users, it is always interesting from a linguistic historical point of view to see what is happening there. Since Snow Leopard with the Objective-C Bridge, it has been on the rise again and even in the current XCode 4.1 you can put applications together completely with the Interface Designer and AppleScript. Unfortunately, the application structure under Cocoa is definitely not suitable for non-programmers, so XCode with AppleScript applications is not really a revival of HyperCard (the only reason why I forgive HyperTalk - it was the language in this pretty brilliant little tool with great reach).

Meedia: Meck-Pomms CDU wirbt mit “C wie Zukunft”. Dumb, dumber, CDU. Or "C as in Can't Spell". Or maybe "C as in Quite Stupid"? And this is in government ...

Trunk Notes | Apps On The Move. I've had this on my computer for a while, but only now have I taken a closer look at how to integrate it with other tools. And it's actually quite simple: Use VimWiki. I already use VimWiki for my desktop wiki, so it makes sense to integrate everything so that I can also use it with the TrunkNotes wiki. Of course, this means that various advanced features of TrunkNotes are not supported, but that's not primarily important to me; what's more important is being able to edit the normal content directly. And for that, this little hack is sufficient. At some point, I'll create a special TrunkNotes mode that also supports metadata. Just found: a clone of VimWiki that works with Markdown (which TrunkNotes uses internally) (the corresponding code is already in the developer version of VimWiki).

The strange facts of Mr. Uhl « mrtopf.de. I'll just say: read. Because why should I repeat everything that someone has already written elsewhere. And since it also concerns data protection with the VDS, also categorized for the Metaeule.

XMPPFLASK — XmppFlask v0.1 documentation. Definitely an interesting project - an XMPP bot in Python that has a similar structure to Flask, so simple definition for XMPP handlers with routing of events. Since I always wanted to take a look at XMPP as a backbone for distributed (so widely distributed) applications with online/offline capability, I've blogged about it.

Social Networks and my use of them

At some point, you realize that you simply have too many places on the web where things happen and where you are somehow represented. For this reason, here is a list of the current networks in which I appear and how I actually use them (or plan to use them - not everything I want to do always works out).

  • my digital home is here in the Blog. Everything possible lands here, links, images, articles, etc. If something is important enough for me to want to say something about it, I put it here - because only here do I actually have full control over my content. Some of my content is also posted to Metaowl - our small privacy aggregator.
  • I also have a small Tumblelog on Tumblr. I actually only use this to post photos or occasionally comments, etc., when I'm on the go. So it is primarily fed by my iPhone.
  • On Twitter is what Dave Winer calls the "Firehose". So if you want to know what I'm doing in general, wherever, you can follow my stream there. Be careful, it's really a lot - because every new service that gives me access to my activities there in any way is hooked up.
  • On Flickr I have a number of photos, and I will certainly also post pictures there from time to time. Simply because sometimes I also want networking for the pictures - usually the same pictures then also end up here in the blog.
  • As a social network, I primarily use Google+ at the moment. Of course, it still has some problems, but the architecture appeals to me much better than in the other networks. And the integration with Picasa of course also leads to the fact that I post pictures there.
  • As social code networks, I currently use Bitbucket and Github. My open source projects land there (although I of course also have copies locally in case these hosts disappear one day). However, I currently mainly use Github to follow projects there, my own projects use Mercurial and therefore end up at Bitbucket.
  • Facebook I actually don't use at all. I send some content (blog posts and, for example, Google+ updates) there, but otherwise I'm just there as a hook and for people who don't want to use my RSS feed but want to follow my content there because they are already there.

So, everyone should know where I hang out and where I appear. And now please no complaining "your Twitter stream is too full" - that's intentional. And also no "check your Facebook" - that only happens sporadically.

flot - Attractive Javascript plotting for jQuery. Again something for the number crunchers, or rather their visualizing colleagues - presenting number deserts in attractive graphs, and all as a jQuery plugin. I definitely need to take a closer look at this, could be interesting for a specific project.

EVIL is King

evil-sony No, this is not the worship of evil, but simply my thoughts on camera technology, which has undergone the greatest changes in recent times and from which the most new systems have emerged - EVIL cameras, i.e. cameras with Electronic Viewfinder and Interchangeable Lenses. Whether it's the Micro-4/3 system from Panasonic or Olympus, or the NEX system from Sony, or one of the other new systems in the category. I am always amazed how much this has changed photography for me - simply through the availability of really compact cameras that I actually have with me.

Until a few years ago, I still had a Canon EOS 10D - a really great device with good image quality and the performance of the usual digital SLRs. Ok, towards the end it was no longer up to date, there were already several new generations (when I sold it, the 50D had just come out), but that didn't matter to me - the image quality left nothing to be desired.

But the size! The camera itself was not exactly small (though not as big a monster as the usual professional devices), but the lenses were really heavy. I only had a few lenses - mainly the 35/1.4L and the 100/2.8 Macro (my autocorrect just wanted to correct that to Macho - considering the weight, perhaps not entirely wrong). Take the camera with both lenses? Uh, no thanks, rather not. And when I had them with me, it was just a camera with quite classic functions. Video, just because you see something funny that you want to capture as a little film? No.

Ok, today many DSLRs also have live view and filming, but they have not become smaller - they are still quite large devices due to the principle. The small EVIL systems, on the other hand, save a lot of space just by the missing mirror box. And this applies not only to the housing - optics can often be built more compact with the same image circle if the distance to the chip plane is smaller. And then the possibility of adaptation! I can adapt almost everything on my NEX-3 that I still have lying around at home in terms of old optics. Very pleasant, because even the optics of my old Contax RTS III were significantly more compact than current DSLR lenses, and if I want to be really compact, I can put the Leica lenses on it.

What has changed for me as a result: I have the reflex "throw the camera in the backpack" much more often than before - the NEX-3 was not expensive, so you don't think much about the transport, in the backpack and good. It doesn't produce much weight with the standard zoom and you have almost everything you need. The image quality itself always surprises me - and in a positive way. I hardly believe that my 10D was really better (on the contrary, the sufficient quality up to 3200 ISO on the NEX makes shots possible that I would not have even thought about before). And the focus-peek on the NEX is better with manual lenses than the focusing aids of old manual SLRs (at least with my eye values).

All in all, the investment in an EVIL system (ok, in my case actually in two systems, since I also have the Panasonic equipment) was a real gain. Even if most of my photo friends would probably wrinkle their noses at the family photos and pure snapshots that I take - hey, I'm getting married soon, I have to get used to family pictures, the time of wild art experiments (which were not really better) is over.

In the end, only one thing is important to me: that photography is fun for me. And that is the case again with the new compact cameras. And what more do you want.

clojurescript demo convex hull. A demo for programming client-side code in Clojure using Clojurescript. Clojurescript compiles Clojure to JavaScript using the Google Closure Compiler and the Closure Library. Looks like a very interesting way to program clients, especially since Clojurescript is supported by Rich Hickey, the inventor and main developer of Clojure, so we can assume that the integration into the Clojure world will be good.

Plots 2011 - Généric Vapeur

The whole show was really a blast of colors and sounds. Quite crazy and loud. The whole show started at Servatii Square and then went through the city center to the cathedral - at the beginning the cars were still white, then they were pulled through the city with a tractor and painted while doing so, then hung on the clothesline to dry. At the end there was still a blessing from one of the artists in a bishop's costume (fits with the cathedral in the background, and in Germany the car is sacred). In any case, it was something quite unusual for Münster - and had an impressive turnout, the whole action was accompanied by large numbers of visitors. If you want a little acoustic impression, I have put together a small film from a few clips I made.

First Demonstration of Time Cloaking. Time holes. Fascinating - I already have problems imagining what a time hole should be, I mean, undetectable for light, ok, but undetectable for time?

Elements+. Fun - apparently, Photoshop Elements is not really a cut-down version of Photoshop, but in reality only a cut-down GUI for the Photoshop kernel - many functions are still available internally. And with the patch, you should be able to make these functions accessible again.

Elemental - Integrating Photoshop Elements with Lightroom. I should check this out, as the integration of PSE as a simple external editor is quite limited and cumbersome.

ShareMeNot. Firefox extension that filters out the various social buttons, so that the corresponding services cannot see the visited pages (because this data is also transmitted when the buttons are not clicked - for example, the icon is usually hosted by the service provider and they can see the visited pages in the logs via the referrer, provided you are logged in to one of the services, they can also see the user who visited the page via the login cookie).

Pattern Matching In Python. Interesting article for people like me, i.e. for people who like Snobol4 or its "successor" (in quotation marks, because it is then a completely different language) Icon and would like an alternative to regular expressions. Implements a pattern-matching system very similar to the Icon model, complete with backtracking and generators. However, it is from 2004 and is rather a proof-of-concept story, not necessarily a directly usable and installable Python module. Unlike SnoPy, it is pure Python and not a Swig-based wrapper for an Ada Library.

Bash on Balls. For the moments in life where even Visual Basic would be too much - a web framework for Bash scripts. Naturally uses a few Unix tools in addition, especially Netcat for network I/O. And yes, it comes with a complete server and everything, just as one would imagine. Even has Dev-Code-Reload and such things, as well as a template language. And with BoB a nice acronym. (and unlike Cobol on Cogs this is a project that one can actually run and not just a joke)

FAQ - Kotlin - Confluence. The fifty-third Java-killer language for the JVM, which also attacks Scala here (the usual argument "Scala is too complicated", which on first glance is indeed true - Scala has few central basic features, which are then provided with many features for the programmer by the standard library and the good DSL possibility at the surface of the actual language). The question remains what will come of it, but since JetBrains is behind it, it will at least have a good IDE (JetBrains builds IntelliJ and other JVM IDEs, including PyCharm and with AppCode the only current OSX Objective-C alternative to XCode). And hey, anyone who names their language after an island near St. Petersburg already has a head start with me.

Little mourning for electronic wage reporting procedure ELENA. While we're at it with embarrassing - the government's number with Elena is also one of those stupid non-issues that cost a lot of money but ultimately brought nothing and didn't work. And incidentally also violated data protection laws. And was simply idiotic anyway - the data that was supposed to be collected there was really nonsensical for the announced purpose in many areas. But why our government always starts such idiotic projects in the first place, even though the problems are known in advance, someone must explain that to me in a understandable way.

Copiepresse: Google's search engine shows Belgian newspapers again. The internet experts from the large Belgian press outpourings have finally learned to understand the internet (at least the part of "you're out, you're out" that they've gotten themselves into). It's quite embarrassing what they've been up to.

WSGID When your WSGI app becomes a nix daemon. Mongrel2 by Zed Shaw has interested me for quite some time, but the biggest drawback was that there are not many Python frameworks that work directly with Mongrel2. wsgid solves the problem, it is a WSGI server for Mongrel2 and can thus then connect frameworks that can run under WSGI - for example, Mongrel2 can be used as an HTTP server for a distributed Django installation. By using ZeroMQ in Mongrel2, the whole thing is then significantly more flexibly structured than with the classic (FCGI-based) server integrations.

Typekit. I'm still researching web fonts and their simple use in various situations, especially the search for useful fonts. Typekit looks quite interesting in this regard, although their free offer is somewhat limited, the prices for the larger packages are not entirely utopian - at least if their claim of efficient delivery of the fonts via HTTP really stands up to reality. In principle, you rent the fonts for use instead of buying and hosting them yourself. There are a number of plugins for Wordpress, this one from OM4 also seems to be currently maintained.

Elnode - an Emacs version of node.js. Another project from the "because it can be done" category - I don't believe anyone would spontaneously answer "Emacs" to the question "how do I want to run my web services". But well, the operating system with built-in basic text processing functions can also represent an asynchronous web server.

Replication, atomicity and order in distributed systems. A very interesting article about distribution and ordering in distributed systems with parallel execution - because it's not really trivial. Worth reading just for the links to various projects in that area. At the end a bit of a cliffhanger, because it refers to an upcoming article - hopefully it will come, because its topic sounds interesting too.

Kivy: a crossplatform framework for creating NUI applications. Interesting new GUI library for Python, runs on various platforms (and in addition to the three major desktop environments, Android is already included as a mobile one) and can use OpenGL to accelerate output (internally they have a JIT that compiles the basic functions and thus enables fast execution).

Simple, Secure, Scalable Web Development with Opa. The Opa book is, at first glance, a very comprehensive introduction to the Opa language and its motivation. What also excites: the installation under Linux is based only on basic packages, you don't first download half of the internet and install just because you want to use a language. (What is rather not so positive with Opa experiments: very long compile times - even the examples provided in the book, which are not exactly overwhelmingly large, quickly reach quite significant 15-20 seconds ...)

Bulbflow: a New Python Framework for Graph Databases. Even though I keep thinking that graph databases are so 70s, not everything old is automatically bad - IMS is still around and very interesting for some purposes. And this sounds interesting, something like DBAPI for graph databases, so that you can change the database in your projects without having to rewrite everything completely.

The Pragmatic Bookshelf | Core Data. The book sounds quite interesting, Core Data is also fully supported in MacRuby, so it might be interesting to get and read it.

Scripts Tagged fluid - Userscripts.org. Badly linked, as Fluid is a really cool site-specific browser for OSX and, for example, the Google+ Dock Badget is really practical. And with the separate cookie storage of Fluid, you can also keep multiple Google+ profiles open (or other sites that use cookies).

Responsive Applications - Mono. An article about the different ways to build applications with GTK# so that they respond quickly and do not block the user interface, even though GTK# is single-threaded (i.e., the UI can only be accessed by the GTK# thread).

MonoMac and XCode 4

Ouch, that really got me - I wanted to play with the GUI tools, but MonoMac doesn't fully support XCode 4 yet and only has this to say:

Developers that use Interface Builder are recommended to install Xcode 3.2.6 for the time being. MonoTouch News.

The bad part: that's from March. That's way too long without support, so MonoMac is just half a tool (if at all). Running XCode 3 and XCode 4 in parallel is also not an option (both want to be in the same folder). De facto, you're either stuck with XCode 3, or MonoMac is out. Or you build your GUI with GTK# - then XCode doesn't matter (the compiler part of XCode 4 is supported), but then you can forget about the AppStore (and GTK# doesn't really look great). Damn.