Linkblog - 8.2.2012 - 27.3.2012

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.

41MP Nokia 808 smartphone hints at pixel-binning future for small sensor cameras. I also raised an eyebrow at first reading - 41 megapixels in a phone sounds ridiculous, and Symbian doesn't really sound future-oriented. DPreview takes a closer look at what these 41 megapixels actually mean - the chip is significantly larger, so the pixels aren't really smaller than those in normal 8-megapixel phone cameras. Multiple pixels are combined to create a typical target image in the 5-8 megapixel range (the full resolution is also available as an option) to improve noise and other artifacts. Therefore, it is most comparable to the Foveon concept, where the pixels are simply placed in front of each other instead of next to each other. However, Symbian is not future-proof regardless of the photo part.

Temporal Keys, Part 2 | Experimental Thoughts. One always learns new things about PostgreSQL - this time PERIOD, a data type that encompasses time spans, and EXCLUDES, another form of constraint on tables, with which overlaps of time periods can be avoided in the data design together with PERIOD. In Dynamics AX, there is something similar in the form of Date Effectivity, which goes a bit further because it also includes automatic creation of new areas, gap-free timelines, etc., while this is only the basics for non-overlapping data records. On the other hand, this can be used much more broadly, as you can formulate any EXCLUDES constraints.

ResponsiveSlides.js · Responsive jQuery slideshow. I am a fan of Bin and Lightbox, but I also like this small library at first glance - it is simple and easy to use and does not do a thousand things at once, but simply shows images in a slideshow. Specifically for animating header graphics, for example, this could be quite interesting.

6: Sony infrared conversion service. Interesting - if I ever have a Sony (and have 250 euros to spare - so probably never), I could take advantage of this. Infrared photography without filters is quite interesting.

The Julia Manual. Hmm, not yet sure what to think of this language, but it does sound interesting - a kind of Matlab, but based on LLVM and linguistically significantly renovated, with some interesting ideas (e.g., Julia expressions are stored internally in a Julia-specific data structure, so that real macros can be implemented).

German Keyboard Layout under Parallels, VMWare, BootCamp and VirtualBox - Info - Schirmacher. Because I needed it just now - this moves the special characters that you do need occasionally when programming to keys that are more Mac-like. Not perfect, but much better than the standard PC layout, as the MacBook usually doesn't have any markings for these special characters, so you would otherwise search for them in vain.

Mac Developer Tips » How to Uninstall Xcode. There is also an official way to get rid of XCode. Just linking to it, because unfortunately XCode can dynamically load what you need from the internet, but not get rid of it - for this you are allowed to delete the XCode stuff and then reinstall it (smaller). Just the iOS stuff alone takes up 6G, so you can save a lot if you don't plan to program the iPhone.

Xcode, GCC, and Homebrew. Looks good - Apple provides a bare-bones GCC package with all frameworks, so you no longer need to load the monster installer from the AppStore, but can make do with a 170 MB package and still use Homebrew to compile open source OSX programs (at least as long as they don't use explicit XCode features). Especially if your own programming takes place in other IDEs and with other languages, it's quite nice to be able to do without the 8 GB that an installed XCode occupies. I'm seriously considering whether I should also give my Air this slimming cure.

stochastic-technologies/goatfish - GitHub. Looks interesting, a small Python module that uses SQLite as a persistence layer for arbitrary objects. Not at the level of an ORM, but rather at the level of a more complex key-value store. Quite interesting for the usual small hacks where you need object persistence quickly, but due to the simple structures, you don't see much sense in a developed data modeling - or if you don't know yet how the structures will look like during prototyping.

Hidden in this Concatenative IRC Log from 6.1.2012 you can find something from Slava, the Factor developer, about its (so Factor, not Slava) future - a few bug fixes for 0.95 he still plans, but then for him the project is basically finished. Too bad, because Factor was always interesting to play around with and one of the more exciting language projects, but in recent times it has become somewhat quiet around it. Now I know why. Whether the community has enough power to continue where he stops is rather questionable given the size of the community - yes, a few people are active and also quite more active than him, but Slava was often the driving force (haha) in the development and integration of new concepts and ideas.

generateDS 2.7b : Python Package Index. A colleague just found this, looks quite interesting - it generates Python class structures from XSD files. Not that something like this is absolutely necessary in Python, but we were just discussing how to generate a Django model from an XSD, this tool could be a starting point.

zenphoto-publisher - Lightroom 3 Publisher plugin for Zenphoto. Maybe I should take a look at this - with this I can export directly from Lightroom to ZenPhoto. I usually have my pictures in my blog, but for larger quantities it's a bit cumbersome, so an alternative site for galleries would be quite practical, especially since I can then integrate ZenPhoto into WordPress again.

"Collection Publisher" Lightroom Plugin. Hmm, that looks good - I could easily manage my Photos folder in Dropbox from Lightroom if you let it create virtual copies automatically (which you can specify in the Collections), you don't even step on each other's toes when it comes to changes (and it doesn't take up extra space in Lightroom, only in the Dropbox folder).

CoRD: Remote Desktop for Mac OS X. Hmm, let's take a look, it should be good - better than Microsoft's client.

I still like to read him and think he was one of the better Extra 3 people. Here he explains why copyright might not be so great from the perspective of a copyright holder. Draw your own conclusions about what this says about the EU Commission, which still wants to ram through ACTA at all costs and is now pouting because of the protests.

Because it's not a copyright but a rights management agreement. Example: The Süddeutsche Zeitung printed interviews and texts about productions from my company. We put it - proudly, of course - on our homepage. A law firm sent us a cease and desist letter, and we pay the Süddeutsche 500 Euros each time for content that is based on our copyright. Another example: Westdeutscher Rundfunk, in a big publisher appeasement of the WAZ group, opened its archives. Result: If I show an old contribution of mine, both the Westdeutsche Allgemeine Zeitung and WDR can sue me; the only one who definitely does not have rights to his work is me - the copyright holder. ACTA significantly strengthens the power of marketers against consumers and copyright holders; it is a suicide attempt for idea-driven economies. The fury of many pirates to abolish copyright at the same time makes it difficult to demonstrate.

via Die Woche: Wie geht es uns, Herr Küppersbusch? - taz.de.

IdleX - IDLE Extensions for Python. There is actually a project that aims to enhance IDLE and teaches the rather neglected standard IDE of Python a whole lot of new tricks.

Practical Common Lisp - Crawling InterfaceLift with Common Lisp - second try. Interesting run through a simple project in Common Lisp using Quicklisp. It really makes a lot of things easier than if you program raw in CL and manage all the packages and systems by hand. However, you should not necessarily run the example script, as it violates the terms of use of InterfaceLift (and is not really nice to their servers).

arskom/rpclib - GitHub. Since I recently had soaplib, this is the successor to it. The colleagues have probably already gained some experience with it (positive experience).

Howto to rebuild Debian packages. Since I had to do it again - especially important is the hint about dch --local blah, so that you get version numbers that differ from the official ones and are not automatically overwritten with the current version from the Debian repository.

Laurence Tratt: Fast Enough VMs in Fast Enough Time. Interesting article by the developer of Converge (a language that picks up and combines ideas from Lisp - macros - and Python - indentation for scope and parts of the syntax) about RPython, the base language behind PyPy. This way you also understand a bit more what role RPython plays exactly (namely the implementation language for interpreters that automatically get a JIT).

Google Wallet PIN cracked on rooted Android devices | The Verge. Well, that was quick. I can't help but smirk. Google should really have better people implementing such things.

ladon 0.7.0 : Python Package Index. And this one sounds a bit like my old Toolserver - so a simple way to provide Python code as a service. SOAP is also supported.

suds. Just a SOAP client for Python, but explicitly mentions the important binding styles (RPC/Literal, RPC/Encoded, and Document/Literal).

About — soaplib v2.0.0beta documentation. And another newer SOAP library for Python, also with significantly more activity than SOAPpy.

PySimpleSOAP - Python Simple SOAP Library. Sounds like I want to check this out, as it includes some features missing in SOAPpy (and since SOAPpy is no longer being developed, this is interesting).