Archive 22.8.2011 - 2.10.2011

Today’s belief in ineluctable certainty is the true innovation-killer of our age. In this environment, the best an audacious manager can do is to develop small improvements to existing systems—climbing the hill, as it were, toward a local maximum, trimming fat, eking out the occasional tiny innovation—like city planners painting bicycle lanes on the streets as a gesture toward solving our energy problems. Any strategy that involves crossing a valley—accepting short-term losses to reach a higher hill in the distance—will soon be brought to a halt by the demands of a system that celebrates short-term gains and tolerates stagnation, but condemns anything else as failure. In short, a world where big stuff can never get done. via Innovation Starvation - Neal Stephenson at World Policy Institute.

My profile on my own Diaspora pod - if anyone is also there, just add gb@pod.rfc1437.de as an aspect. It's running quite smoothly now and therefore it's now so to speak semi-official. Not that there's much going on there yet, but maybe one or the other reader here also hangs out on a Diaspora pod. It's the little details that interest me about Diaspora - of course also the big things like cost efficiency and distributed architecture, but when you see for example that the profile naturally has an RSS feed as standard, that's already nice. Or that Markdown is simply offered as formatting. And since the last iterations, the mobile interface is also quite nice. No app, but at least an iOS adapted surface. And well, the distributed installation - Diaspora is a bit like OpenSim in that way. And that's at least quite interesting as a toy. BTW: personally known readers can write to me for an invite if they want to play around with it. Sorry, no open pod, but I currently have no desire for the automatic hassle that results from public systems.

Clearly identifiable: NATO wants individual signature for every internet user. The next pig that will be driven through the village. Military facilities are not exactly known as birthplaces of democracy, so I'm not surprised to hear such nonsense from that direction. But it will certainly be interesting to observe which politicians and which lobby groups will pick this up. Wouldn't be surprised to see some of the hardliners from Berlin or e.g. the rights extortionists of the music industry. Oh, and it will certainly be funny to see what the "data protectors" will not say about it.

Data Protection Officers: Social Plugins Not Permissible in Germany - Golem.de. Great, with this, almost all external linking will go down the drain. Loading JavaScript libraries via a delivery network? Forbidden. Displaying YouTube videos? Forbidden. Displaying Flickr slideshows? Forbidden. The fact that such an absurd perspective leads the entire internet ad absurdum will surely please rather than concern the political level. At least the part that already stands out due to regular misunderstanding. Sometimes I have the feeling that the current group of "data protection officers" are only moles for hardliners in the parties who would like to regulate everything to death. Because only a dumb and quiet citizen is a good citizen. This has nothing to do with real protection of our data - because these "data protection officers" do not take action against the transmission of flight data or intra-European account movements to foreign intelligence services. Nor do they take action against nationwide central databases that are being built through the introduction of the central tax number or the electronic patient card (or in the future through a toll for private cars that will surely come at some point) - there is only half-hearted, weak-kneed "protest". There is nothing to be heard about the threat of fines. Who believes that the "data protection officers" would bravely throw themselves in front of the lions in the internet to protect our data, also believes that lemon folders would fold lemons.

dust is a JavaScript template library used in Kanso. Functionally very similar to Django Templates, though with slightly modified syntax.

Kanso Framework. That sounds very interesting - a framework for programming JavaScript CouchApps. So applications that are written in JavaScript and run entirely from a CouchDB installation. The server only needs to provide a CouchDB instance and that's it in terms of requirements - and since CouchDB comes with replication by default, you can easily scale up or implement fault tolerance - simply form a cluster of several CouchDB instances. Equally interesting are replications of the production database to another pot, such as a private developer machine or various other scenarios that are possible with CouchDB. Since the whole thing is based on CommonJS as the language base, JavaScript is not quite as bad as if it were used raw.

StatsModels: Statistics in Python — statsmodels v0.3.0 documentation. Not my focus at the moment, but with this module you can examine numbers for their statistical model.

pandas: powerful Python data analysis toolkit — pandas v0.4.1 documentation. I think I haven't had this before, but it's quite interesting for number crunchers and list comparers: a quite powerful toolkit for analyzing large datasets, especially with handling missing data and aligning data on a common basis. Overall, not entirely uninteresting for a project at work where I frequently deal with larger datasets from external sources.

websites - How do I suppress the address bar in mobile Safari? - Apple - Stack Exchange. Bookmarked because I just want to remember this - it's quite practical for web applications if the silly address bar is not there (at least if you work with Single-Page-Applications that do most of the work on the client)

"Algorithm" is Not a Four-Letter Word. Algorithms and their diversity and why programmers should deal with them (keyword: mental bench press) using the example of algorithms for generating labyrinths.

trunkdesk - Mac desktop companion for Trunk Notes - Google Project Hosting. Since I keep playing around with desktop wikis and generally have the problem that I also want to access data on the go - and not just for viewing, but also for making changes, and with comparable features and not just limited (which unfortunately rules out VoodooPad because the iOS version only supports plain text versions and these are not rendered properly on the desktop, but are also only displayed in plain text there), this could be interesting - it's a simple desktop client for TrunkNotes. Basically, I'm doing this right now with VimWiki, but I wouldn't mind having somewhat more complete support for TrunkNotes features on the desktop.

Firewire Attacks Against Mac OS Lion FileVault 2 Encryption » frameloss. Apple must have made a huge mistake here. Because via Firewire DMA, one can access the password for full-disk encryption stored in main memory. Even if you have disabled auto-login and there is actually no reason to have the password in memory. Ouch.

Face off: Facebook claims personal data is "intellectual property" | G! - gutjahr's blog. And the fun continues - now Facebook claims they can't meet the legally required deadline of 40 days and anyway, the data is Facebook's intellectual property. Quite amusing - but interesting is the hint that the data protection authority in Ireland is actively working on it, so it could indeed give Facebook a slap in the face. I think the whole thing about the alleged workload for Facebook is just an excuse - if you do it right, it's just a tool that collects and prepares a user's data from all the pots.

psycopg2-ctypes - GitHub. If you're playing around with PyPy and need a database driver, this could help - it's the classic psycopg2, but in a version that is based on ctypes and can therefore be efficiently integrated into PyPy.

django-tastypie - GitHub. This sounds very interesting as an alternative to django-piston - for example, it automatically provides all CRUD features via different APIs without any programming. This is particularly interesting for projects that are more focused on web apps (and where larger parts of the code run locally in the client in JavaScript).

coleifer/flask-peewee - GitHub. Interesting small project that works with Flask and Peewee and makes a somewhat more complete stack for Python web programming out of it. Also provides an admin interface, like Django - for this wtforms is used. Flask itself uses Jinja2 and Werkzeug underneath - this brings in good debugging tools and powerful templating, for example. By the way, PyCharm in the upcoming version 2 will also support Jinja2 at the same level as Django Templates (template debugging with breakpoints and stepping in the template!).

Diebold voting machines can be hacked by remote control - 2012 Elections - Salon.com. Hmm - where would these devices be used? Are there already any deployments of these machines in Europe?

Poor Mans IDE Plugin PMIP - Google Project Hosting. If you've been inspired by a post about PyCharm as a Python IDE and now want to expand the IDE as well - with this plugin you can build relatively simple scripts with Ruby and don't always have to pull out the full IntelliJ SDK.

Python for Facebook - Welcome. Since Facebook discontinued support for the Python SDK last summer and also emptied the entire bug tracker, Python developers for Facebook apps have gathered elsewhere - this is one of those places. However, there are probably still one or two other places on the net where people collect patches and fixes.

StartSSL and Nginx. StartSSL is a very good way to obtain SSL certificates for a web server that are actually accepted by browsers. However, these are issued by intermediate certificates that are often missing in browsers - for this, you have to deliver these with the server. With Nginx, this is a bit more complicated because there is no separate setting for it - you have to copy the certificates together for it to work. This is all explained in the linked blog post.

Launchpad-Control | chaosspace.de. Poorly blogged, because the Launchpad's auto-layout sometimes annoys me and a bit more control would be good. With this, you can at least influence the Launchpad a bit, filter out icons, etc.

Piroshki like Grandma's

The first time I made them with my mother-in-law - I made the dough, she seasoned the ground meat and shaped the piroshki. This time I had to do everything myself. The structure is actually quite simple.

You start with a classic yeast dough. For this, I put the following together in a mixing bowl and knead it thoroughly:

  • 500g flour
  • 200ml milk (room temperature)
  • 2 packets of dry yeast
  • 125g margarine (warm)
  • 80g sugar
  • 1 egg
  • 1/2 teaspoon salt

Knead everything thoroughly and let it rise in a warm place for 30 minutes - it should clearly increase in volume. I usually use the oven preheated to 50 degrees with a damp towel over the dough bowl, which provides exactly the right humid-warm climate. Tip: first mix the dry yeast into the flour, then add the other ingredients. This prevents yeast lumps and results in a more even dough. Instead of two packets of dry yeast, you can also use a cube of fresh yeast.

The filling is also not complicated, simply mix 500g minced meat with two bricks (chopped finely) and pepper, salt and other spices to taste. That's it for the filling.

Then knead the risen dough again by hand and form small balls - about the size of table tennis balls. Roll them out with a rolling pin to slightly larger than coaster size. Then place the minced meat on the dough rounds and form crescents (fold together). Seal the edges well. That was the complicated part, finding the right size for the dough balls, the right thickness when rolling out, and the right amount of minced meat as filling. This was still a bit rough this time, we just need to practice more. Since we had some dough left at the end of the minced meat, we filled the rest with jam. Tip: choose a jam with a strong flavor. Oh, and really press the edges together well - even with the sweet piroshki, a few opened up during baking.

Place all piroshki on a baking tray with parchment paper, brush with a beaten egg and bake in the oven at 180 degrees. With the quantity above, it will be two trays: bake the two trays for 20 minutes, then swap the positions of the two trays and bake for another 15 minutes. With only one baking tray, 30 minutes should be enough - just check, when the dough is nicely brown, it's done. This makes a large bowl full.

facebook/python-sdk - GitHub. Also important, the official Python SDK for Facebook Open Graph applications. With this, you can access all the things directly from Python - so also completely without Django (if you want that).

Django Facebook 2.0 – Integrating Facebook. Since it's interesting at the moment (yes, yes, I know, everything is G+, but one should act counter-cyclically), here's a link to a Django library with which you can build Open Graph apps for Facebook. Could be interesting again, especially with the new Facebook Timeline. And G+? Well, as long as they only provide meager cut-rate APIs, it's simply uninteresting for tinkerers.

Photosmith - the iPad mobile companion for Adobe Lightroom | Latest news, challenges, and progress from the developers.. I should check this out, as it allows you to sync images from the iPad to Lightroom and with the upcoming new plugin, even set up a bidirectional sync via a Publish Service in Lightroom, so that you can keep your image collections up to date on both devices. Very interesting for on the go (Camera Connection Kit) and for presentations to the family, where you can e.g. immediately indicate with tags or color markings what prints the family wants. Although it remains to be seen what will become of Adobe Carousel - it is said to offer similar features.

Adobe Lightroom - Customising Camera Defaults. Because I always forget how to do this - you don't often get a new camera and therefore this is done only rarely and then it disappears from memory again. So blogged, so I can find it again later.

Dalienkorso in Legden

Over the weekend, we were in Legten at the Dalienkorso - I had coincidentally noticed that it fell exactly at the end of my mother-in-law's visit, so we naturally took the opportunity. After all, it only happens every 3 years. The decorated floats were truly impressive again. Everyone had fun, even though the weather wasn't entirely cooperative and it rained intermittently (and it poured heavily towards the end).

storm auf GitHub. Twitter has published its distributed event system as open source. Sounds very interesting - basically a load-distributed and fault-tolerant RPC dispatcher with a guarantee of execution for each event. Generally interesting where you need to process high events/sec - Storm offers easy scaling as needed by simply adding new nodes. And it's also quite independent of the programming languages used (Ruby and Python are already on board as additional languages besides JVM languages).

Nikon Announces J1 and V1 Mirrorless Cameras and New Lens System. Nikon is steadily building the second smallest interchangeable lens camera system. I mean, is it really something to strive for to be the eternal second? Nikon claims to be the smallest, but the Pentax Q is actually a bit smaller. Oh, and Nikon only achieves this small size by using chips below m4/3 - with a 2.7x crop factor, Nikon no longer has to worry about the usually terrible bokeh of Nikon - you can't see much of it anyway there (okay, it's a bit better than the 5.7x "crop factor" of the Pentax Q system - but it's only the second smallest). If this is Nikon's big move, the big answer to the EVIL market, well.

PLEAC-Objective CAML. If you know the Perl Cookbook, you might be interested in this - it's simply the problem statements from the Perl Cookbook in Objective Caml. Generally, the PLEAC project provides the same for various programming languages, but OCaml is the only language besides Perl and Groovy with 100% coverage.

Sony NEX-7 First Impressions. Very interesting article. The NEX-7 really sounds like the camera I've been waiting for - the NEX-3 has meanwhile become something like my favorite, simply because it is so wonderfully uncomplicated and usually works very reliably. The few quirks it has (for example, the anti-reflective coating on the display, which is slowly rubbed off by the fingers) I can easily ignore. And also interesting are the image examples of the Zeiss 24/1.8 - this lens atomizes the Leica 24/1.4. And it is significantly better in price than the Leica - and fully integrated into the AF of the NEX. Now I just have to convince the finance ministry at home ...

Offline Web Applications - Dive Into HTML5. It was somehow better described in the first glance than in other sources I have read so far. Therefore, I have blogged it.

Ricoh GR Digital IV Preview: 1. Introduction: Digital Photography Review. Suddenly, my nice little old GRD II looks outdated. Wow. The image stabilization is particularly interesting - sure, at 28mm you don't need it, but in low-light situations it would sometimes be really nice. And the even higher resolution screen is not to be sneezed at. Built-in HDR and the fact that the tilt sensor not only detects horizontal rotation but also front/back tilt (tilt) comes into play as well. What the hybrid AF actually brings remains to be seen - I never really had problems with it. The GRD III was, in my opinion, only a marginal update, but the GRD IV sounds really good.

albertz/Pyjector - GitHub. Interesting for Python hackers who don't mind destabilizing their system a bit, but in return get a Python shell in every Cocoa program. Can be well used to hack around in the browser, for example. The author shows one use case with his Chrome extension that allows creating web apps under OSX. This feature is not currently available in the released OSX version of Chrome.

Criticism of Emergency Service Organization: Emergency Service Sent Eye Patient 37 Kilometers to the Countryside - great logic, when the Association of Statutory Health Insurance Physicians messes up and ruins the emergency service and absurd situations arise, then the blame lies with the patient. And to really show how little the rights of the patients matter, there are also agreements to secure the extremely poor status quo. If there is no legal obligation for the ophthalmological emergency service - why can there then be agreements between the clinic and the doctors, in which exactly this poorly organized emergency service is imposed on the patients?

Euro-Crisis: China Offers Help and Wants Concessions. Of course. Money is scarce, so let's ignore human rights and political systems or exploitation of the population and quickly recognize the whole thing as a market economy, after all it's about our prosperity! For that, one must make sacrifices in China!

Trip to Bremen

A small collection of photos from our trip to Bremen. Nothing special - mainly because I had the camera set to 3200 ISO, and only noticed this at home. As a result, the images are more noisy than I would like, and the dynamic range was also a bit limited. But it's impressive how the NEX-3 saved me even with such a mistake.

Recently on Flickr

I have uploaded new pictures to Flickr. Here they are - unsorted and uncommented.

Adobe announces Carousel - cloud-based image service: Digital Photography Review. Doesn't sound uninteresting at all. The engine used should be the one from Lightroom, with everything fully automatically synchronized between devices and editing possible on all devices. It will be interesting to see if it offers integration with Lightroom - that's my main image editor - and whether it also supports automatic offloading or external drives (for all the many gigabytes of images I have).

2 Click Social Media Buttons « WordPress Plugins. Similar to the previous plugin, but this one is now based on the code from Heise. And it has a nice explanatory component with a link to the Heise article. I've integrated it, so you can like me, +1 me, and tweet!

Social Opt In « WordPress Plugins. Maybe interesting - Heise prepares its own code, but this seems like an alternative. Or you take this as a basis and then mix in the Heise code when it's ready (it looks really useful in use and certainly has the advantage that Facebook is much more likely to accept something from Heise).

We got married

Instead of including the pictures here, there is only a reference to an album of pictures taken by my mother-in-law - the official photos are still pending (and I didn't take any myself).

FLASH PLAYER NOT SUPPORTED

SCO ultimately loses against Novell. Should this nonsense finally be over soon? It's not as if there aren't more absurd proceedings on the horizon (I just recall Lodsys), so it won't be boring. And the entertainment value of the longest-dying IT company has left much to be desired for quite some time ...

Panasonic launches Lumix G X Vario PZ 14-42mm F3.5-5.6 OIS pancake: Digital Photography Review. Due to the development of Sony, I am tempted to sell my Panasonic device and focus entirely on the larger chip (and possibly add a NEX 7), but this pancake zoom from Panasonic is really appealing for a compact setup. Even on the GH1, it would then be an impressively compact but flexible package.

Red Berry Pudding

Red Berry Pudding Recently, Juliana and I ate Rote Grütze - and I had an urgent desire to make Rote Grütze myself afterwards. On Wednesday's market, we bought a lot of berries and this morning I stood at the stove.

The whole thing is quite simple actually. And it just tastes delicious. What goes in:

  • a jar of cherries (I had a 500ml jar, 375g fruit)
  • top up to 750g - 800g with fresh fruits (we had blackberries, blueberries, and red currants)
  • 50g sugar (those who prefer it sweeter can go up to 100g sugar)
  • we also had half a packet of vanilla sugar
  • the juice of half a lemon
  • about 50-60g sago (you can also use neutral starch)

The preparation itself is also quite simple:

  1. boil the juice from the cherries together with the lemon juice in a pot
  2. add about 1/3 of the fruits to the boiling juice and bring to a boil
  3. stir in the sugar and sago
  4. turn down the heat and let it simmer for about 30 minutes with frequent stirring (the sago grains should ideally all be clear and no longer stand out light - I stopped a bit too early, it might be easier with regular starch)
  5. when the pudding is nice and thick and the sago is clear, add the remaining fruits and simmer for 5 minutes
  6. then fill the pudding into bowls, let it cool, and put it in the fridge
  7. serve with vanilla ice cream (that's what we had today) or vanilla sauce, or cream, or even just some milk

The pudding becomes so firm and thick, just as I remember it, not as thin as you often get it - it's really more of a pudding and not a soup. And if you have a bottle of red wine open, you can also cook the red wine well with the pudding (but a glass of red wine is really enough).

Sony-August-2011-New-Products. Oy, take a look at the part about the NEX7. Two configurable dials, 2.3MP ELV and 24 MP APS chip. And only slightly larger than the NEX5. That thing really excites me.

PyPy Status Blog: We need Software Transactional Memory. Interesting article on why we want STM, even if it may not be obvious - namely to make the more complex primitives of higher-level languages like Python transactional. And if we have STM as an implementation detail, we can also easily make it available to the programmer.

Setup services on your Pod - GitHub. Saved for later, I've already set up the link to Twitter on my own pod. I'll probably set up Tumblr soon too, since I still use it quite often. Diaspora is still quite buggy (it's really Alpha), but already quite complete in terms of features. And it's fun to play around with. However, people on Diaspora pods should also post more there, otherwise the social aspect has its problems - I only knew after self-experiments on two pods and several days of waiting that posts actually arrive at me - not because of technical problems, but simply because no one wrote anything ...

Why I'm not on Google Plus - Charlies Diary. Charles Stross on things programmers often get wrong when thinking about names. Specifically about Google+

Luban: a generic “language” for creating user interface — luban v0.2 documentation. Check it out - it could help with my eternal search for a compact user interface to use. Specifically, web as UI is becoming increasingly interesting with all the things that have emerged in this area in recent years.