Linkblog - 29.2.2012 - 25.4.2012

the { buckblogs :here }: Maze Generation: Ellers Algorithm. Maze algorithms have fascinated me since my youth, but this one was new to me. It generates perfect mazes line by line, without trackback or recursion, with a runtime linearly dependent on the size of the maze. Pretty brilliant stuff.

jQuery Masonry. Alternative to BlocksIt. Worth checking out. Even pushes blocks more aggressively, rearranges the order if necessary.

BlocksIt.js - Dynamic Grid Layout jQuery Plugin. That's what it says. Sounds quite interesting, I have to check it out.

Kronuz/SublimeCodeIntel. CodeIntel is a port of the Komodo Code Intelligence to SublimeText2. With this, you can almost refer to ST2 as an IDE.

Cubism.js. So many projects, so little time. But just a quick blog note, if I ever have to deal with time series visualization in the near future, this looks really good for that.

jlongster/dcpu-lisp. Why this is cool? Well, Notch is working on a new game - something like Elite with integrated hacking. And the hacking happens on a 16-bit CPU that is based on a 6502. And now all kinds of people are building code for this CPU. Among other things, here is a Lisp compiler.

Subrepository - Mercurial. Quite embarrassing, what one keeps discovering and realizing that one should have been using it for a long time, but doesn't. Especially the tip with the "shallow main repository" sounds good, that could simplify some of the organizations of my projects. So far, I have rejected subrepositories precisely because of the fixed connection of the large main project with the library projects, since I use completely different external branches (i.e., repositories) for different environments and, for example, do not want to push my dependencies from the maintenance environment into production. With a shallow main repository per environment, on the other hand, I could cleanly separate the relationships and still document at a central point how the dependencies of the various repositories are represented. And yes, all of this here is just a note for myself, if you don't understand it, just ignore it, colorful pictures will definitely come again soon.

645 PRO app for iPhone offers access to lossless camera output but not Raw. Sounds quite interesting, but not so much because of the pseudo-RAW - there won't really be such huge differences - but because of the user interface, which is much closer to a normal camera and also provides a few more pieces of information. According to comments, however, it does drain the battery quite quickly.

ThinkUp: Social Media Insights Platform. I definitely want to check this out - a tool that collects your own social activities (well, they're not always that social) via various APIs and combines them. And in a self-hosted database. Supports Twitter, Facebook, and Google+ and evaluates the data collection according to various criteria. And with Social Timeline there is then a tool for displaying as a timeline, which could be integrated into your own blog. This could even be a much more pleasant variant than importing all posts from social networks into your own blog.

Google+ Importer for WordPress » Sutherland Boswell. I'm currently considering whether I might want to integrate this - it automatically imports public Google+ posts. I would probably need to adjust something to turn the posts into asides, but that shouldn't be too complicated. Maybe the tool can already do that directly. The question is whether it makes sense to bring the posts from Google+ over - especially with the image posts, I already get them later and mirror them in my media data. But the text-only posts would also end up here, which might be quite useful. I'll have to think about it a few more times.

Mozilla Archive Format, with MHT and Faithful Save :: Add-ons für Firefox. Asked about something like this today, my knowledge was a bit outdated, so I googled again and this seems to be the most interesting extension to save complete pages (including images, styles, and JS). Practical, for example, if you want to put together a dummy for presentations.

pycounters. I need to check this out, it allows you to easily integrate counters into a project that provide data on things like function calls or similar - basically something like the Windows Performance Counters, but for Python projects.

Parliament: Fractions want to curtail speaking rights in the Bundestag. When will the pack finally be monitored by the Federal Office for the Protection of the Constitution? Because this is a first-class attack on the Basic Law. There are no fractions, no party discipline, and no restrictions on speaking rights for members of parliament with their own opinions in the Basic Law - there are only free members of parliament. And then the prolethicians in Berlin are still surprised about political disillusionment. Hurray for Lammert, who at least tries to resist this circus of dumbfounding in this regard.

Virtualenv-clone 0.2.2 : Python Package Index. Not yet tried, but according to the description it copies virtualenv environments and fixes import paths, egg files, .pth contents and scripts. And it should work more completely than relocatable virtualenvs.

Introducing Pivot.js. Hmm, definitely worth a look, Pivot looks quite nice, simple API and interesting possibilities. I have a project at work that could really use some reporting features. And offloading to the client is sometimes a quite good idea.

abique/tmfs. Poorly blogged, could be helpful someday - a user-space filesystem for Time Machine backups on Linux.

Open Letter to the Content Industry. The Schockwellenreiter recommends it and I can only agree: it's worth reading. This is a truly well-rounded rant against these pathetic "content producers" who let themselves be used in open letters to make degrading tirades against and spread lies about the online community.

The unbearable finality of pixel space. I tried the linked archiving tool for Flickr once and it works really well. I can even forgive the PHP for that. I have also occasionally pushed Flickr images into this blog (the "Neulich auf Flickr" posts), but the advantage of this backup script is that the structure and even the Flickr access rights are preserved. Unfortunately, albums and sets are not yet backed up, only the photostream. And the layout is very spartan. But maybe this would be a candidate to play with Bootstrap 2.0 and spice up the whole thing a bit.

flatiron/plates. An interesting JavaScript templating engine that takes a slightly different approach than many others - there is no separate template language, only HTML and JavaScript. Any logic is in the JavaScript and any structure is in the HTML and both are quite strongly separated. Instead of a template language, there are functions for precisely specifying which elements in the HTML should be changed how.

RQ: Documentation. Hmm, python-job-queue based on Redis with a rather simple interface. Could be an interesting alternative to Celery.

Kenko extensions tube with full electronic control!. Woopdidoo. Ok, extension tubes are not the optimum in terms of performance, but still quite interesting, as they offer a relatively simple and usually cost-effective way to improve macro capabilities.

iphone - What happens to JavaScript code after app is compiled using Titanium Mobile - Stack Overflow. I was also interested in the question, so I blogmarked it here. Quite interesting what happens there, it goes much further than what PhoneGap does, for example.

Titanium Desktop – Node.js Prototype « Appcelerator Developer Center. Titanium is already on the list of things to test because, alongside PhoneGap, it is one of the ways to turn JS+HTML code into apps and desktop applications. And here, one of the developers shows how to integrate a node server into the desktop. This would also be quite interesting, although it probably won't work with iOS and Android (since there you are forced to use the JS engine provided by the system in the browser widget if you want to load dynamic code from outside).

Embedding and running Node.js within a Firefox XUL extension. Impressive what you can do with Firefox and its infrastructure. Theoretically, you could also modify this extension so that it runs in a single-site browser, which then directly opens the homepage of the embedded server, allowing you to build completely autonomous desktop applications in JavaScript (and for those wondering why I'm collecting all these JS-on-desktop things: with the help of Phonegap and some glue, you could not only build apps for iOS and Android, but also desktop applications with the same code).

NodObjC. I'm not sure if I really want this, but with this library you can bridge ObjC frameworks with JavaScript. This could be interesting, for example, in the context of PhoneGap, if you need to access iOS native APIs that are not yet provided by PhoneGap (though you need Node.js as a basis, I don't know if that already works on iOS).

topcube. I should take a closer look at this - a desktop app that includes an embedded web server (node.js) and browser (GTKWebKit). With this, you can build desktop applications based on JavaScript and Node.js - for example, also rebuild Amber Smalltalk into a compact desktop application. Unfortunately, the OSX support is still somewhat limited.

haypo/pysandbox. Something to look at again: a sandbox for Python scripts. According to the project description, it's not necessarily a security solution but rather just a simple protection for the Python process. Thus, it would at least be usable as a simple safeguard for a main process against errors in extension scripts.

SynthCam for iPhone. Uses the camera's video feature to achieve a shallow depth of field effect. What it does is a stitch from many individual images, where defined areas (via tracking) become sharp and other areas become blurred through camera movement. Pretty cool stuff.

Depth of field. Good explanation of what depth of field really means mathematically. Quite interesting to read if you don't yet fully understand the relationships (Hint: the primary factor is the imaging ratio, everything else is just a function of it).

No Quick-Freeze: Chancellor urges Rösler to implement data retention. Isn't that funny? An EU commission wants something that has been rejected as unconstitutional in several member states, partly stopped by courts. There is a chancellor who has already been reprimanded by the Federal Constitutional Court because she pushed through an unconstitutional law. There is an EU commissioner who announces a new version due to constitutional problems. And what does the EU do? It threatens with penalties if the current, non-constitutional version is not implemented. And what does the chancellor, who is sworn to uphold the constitution, do? She wants to enforce a regulation against the objections of her own justice minister and against the decision of the Federal Constitutional Court over the Rösler boy (of course she takes him, after all, he has been on the chopping block since the NRW debacle and is dispensable). And amidst all this nonsense, the prolethicians in Berlin wonder why everyone is so upset about their surveillance fetish. A comedian who comes up with such an absurd story would be booed.

BOO - Getting Started. After a long time, I took another look at Boo and I like what's happening there. Still very strongly based on Python in terms of syntax, but semantically quite different - for example, real macros in various variations, so that there is really an extended syntax. Or also the optionally available Duck Typing - a variant that I particularly like, because Boo combines static typing, type inference and Duck Typing in a way that really keeps all options open for the programmer. Then there's the good integration with .Net and C# assemblies. I think I need to play around with it a bit more, because as a prototyping language it could be quite practical - and at the moment I tend to use Mono more as a runtime, primarily because of the JIT implementations available there (and with Mono also AOT compilation, where it is needed).

pyp - Python Power at the Prompt - Google Project Hosting. Since I prefer to play around with Python rather than awk or perl, this is quite an interesting tool. You can use it to edit text files with similar features as awk and perl. And all of it as a one-liner - pyp simply defines a few variables and operators that you can use. Looks quite good.

Gprowl is a nice little script that monitors a GMail account and sends messages when a new message appears in the inbox. With this, you can create push notifications if you use Sparrow (which does not yet support push notifications). Of course, it also works with forwarding and BoxCar, but I don't really want to forward my spam to other servers ... (and hey, the script is in Python!)

Clojure-Py. I can't quite say what I think about it yet, but someone is building Clojure (the language) with Python and PyPy as the target platform. Basically, this is certainly an interesting idea, as the LLVM-based JIT implementation of PyPy can also compile other things. And since I am a fan of both Python and Lisa, something like this has to pique my curiosity. The language scope of Clojure is not yet fully represented, but that can still come.

LensRentals.com - Undressing an NEX. Very interesting, a completely different look at a camera - at the innards. Even if it was somehow more interesting with the mechanical cameras earlier, I also find the "inner values" of the NEX quite impressive. Oh, and as a system, they have Linux (unfortunately still not hacked and opened).

Create a package for IOS — Kivy 1.1.2-dev documentation. Kivy - a GUI framework for Python - now also offers a way to package the application for iOS and, for example, run it on an iPad. No idea if it will actually be accepted in the AppStore, but the developers have already managed to get a program based on it in there, so the chances are good.

wbond/sublime_package_control. This is quite interesting - it seems like an ecosystem around Sublime Text 2 is slowly being built, similar to vim or TextMate. This will make the integration of extensions easier in the long run.

JulianEberius/SublimeRope. Very interesting - an integration of Python Rope (a refactoring library for Python code, written in Python) into Sublime Text 2. This will then provide refactorings directly in ST2 - one of the features I have learned to love in PyCharm (especially syntactically correct rename and extract method) and which were previously missing in ST2. I should probably take a look at it, although for projects where I need refactoring, I tend to go straight to PyCharm, simply because many other things come with it (e.g., the integrated debugger). Lately, I tend to switch between editors for simple things and IDEs for large projects, even if you then have to learn different operations - the use cases are just too different to handle with just one tool.

HyperCard, Visual Basic and the Importance of the Novice Developer. Interesting article that puts HyperCard in relation to Handheld Developer. And after playing around with Handheld Developer, I would say they are not completely wrong - it is a nice visual environment for creating iOS web applications with integrated hosting with which you can quickly put together a prototype and even get server-side scripting in JavaScript. Ok, it is not quite cheap, but there is a test version to see if you could have fun with it. The applications are actually not so fixed on iOS, because in principle it is just HTML5 and JavaScript - and should therefore also work with Androids (I have not tried that yet).

mtravers/heroku-buildpack-cl. And yet another Lisp link - here someone has relied on Heroku's buildpack-capable stack and built a buildpack for Clozure CL, so that you can also put Common Lisp in the cloud through it. Although this then has less similarity with Google App Engine, but rather with something similar to Amazon EC2.

Heroku | Clojure on Heroku. And even more Lisp. With Clojure, you can now also work on Heroku, the cloud platform. This might be an alternative to, for example, Google App Engine (on whose Java incarnation Clojure also runs).

Deep down inside, I'm still a Lisp fan. That's why the ecl-iphone-builder by Terje Norderhaug is very interesting to me - with it, you can compile a version of Embeddable Common Lisp for the iPhone or iPad and then deploy it to an iOS device via Xcode, start a Swank server there, and then connect remotely - and then play around or program with Lisp on the iPhone. Ok, the binding to the OSX APIs is still a bit brittle.

Room 101: The Miracle of become:. One of the corners where Smalltalk clearly differs from all other languages I have had to do with so far (except Common Lisp, but that's different, because everything is possible there), is the become: method, with which two objects in the running system exchange their identity - so that after the call all references to a after a become: b then refer to b and vice versa. This explains what this means in practice.

Chrome can be cracked in five minutes | Products | futurezone.at: Technology-News. Oy Gevalt! I think some people need to rethink things now. No, sandboxing is not a guaranteed solution for security, it is at best a single component of a complete solution. And yes, making programs more complex also increases the complexity of the security situation. And eventually, there will be a breakthrough like this. (and no, the other browsers are no better, Chrome was just considered "secure" for longer and after the last Pwn2Own it was considered "uncrackable" by some)

[[[New App]] Impressive: AIDE Is An IDE That Lets You Write And Compile Android Apps On Your Android Device, Begs For The Yo Dawg Treatment](http://www.androidpolice.com/2012/03/06/android-gets-a-native-ide-lets-you-write-android-apps-on-your-android-tablet-is-begging-for-the-yo-dawg-treatment/). Android development on Android devices (preferably tablets). That is so meta.

Vagrant - Virtualized development for the masses.. Looks good, you can quickly set up a development environment based on BSD or Linux via the command line - and then work with it without having to manually install a bunch of things. Basically appliance templates that can be installed via command line tool. And a whole range of systems are offered as hosts (including OSX, for example). So, for example, also a very easy way to set up a LAMP stack or something similar under OSX.

PySide for Android thp.io. That sounds very interesting - this way I would have a much more favorable programming language at my disposal to build Android programs. However, the start time of Activities written in Python might be quite significant due to the loading times of the Python stack and the Qt libraries. But for building a few small tools for personal use, that shouldn't matter.

Robin Wong has tested the Olympus E-M5 and posted a mountain of sample photos. Looks very promising already, and the dynamic range tests also show good results. It will be exciting to see when the first pixel-peeper sites jump in and publish measurements, but based on the samples I would say that the E-M5 comes - at least at the lower ISO values - quite close to the Sony NEX series in terms of dynamic range.

Former Federal President Wulff receives the honorary salary. We (the taxpayers) are now seriously paying the bargain hunter 200,000 euros every year, until the end of his life. Expensive fun. And of course, a resignation because of the revelation of his creative financial management and his many friends is very political. And then the backbencher in the Bundestag is still surprised about the political disillusionment.