Archive 3.5.2011 - 15.5.2011

match Technical Services. Or also "Pimp your Leica" - because he delivers some interesting accessories (ocular loupes, thumb holders, silly-looking soft releases) and the practical M-Coder Kit, with which you can apply the coding to the Leica lenses (or also third-party lenses) for automatic recognition on the M8/M8.2/M9 yourself (temporarily, as the color wears off when changing). I'm still considering whether it's worth it - the M-lenses (and the Zeiss lens) that I have are characterized by very slight deviations from the optimum. Both in terms of distortion and vignetting (it has advantages when you waive ultra-brightness), so I haven't felt the need for the corrections from the lens profile yet.

Variochromat Homepage. Because I had forgotten about the place again and was looking for where the heck I had the digital exposure on baryta paper done back then. The result was actually quite good, especially considering that I sent a JPG from a compact camera (from the Ricoh GRD II, even an unprocessed one - I'm not afraid of anything!).

The Best Street Photographer You've Never Heard Of - everyone interested in street photography should check this out. Also feel free to browse through the links in the article.

City Walk Again

Same day as the city harbor, just a bit earlier and in black and white. Also made with the M8 and the C-Biogon 2.8/35.

Around the City Harbor

Just went for a walk with the M8 in the evening and took some pictures at the harbor in the late twilight.

Writing Plugins for gedit 3 with Python. It looks like Gnome 3 actually gets a quite generic interface for Python scripting. PyGTK was already there, but that's just a GUI library. Now, work is being done on GObject and Friends, making many more elements accessible. By the way, gedit is a quite nice graphical editor that can certainly be considered an alternative to BBEdit or TextWrangler, which are popular under OSX.

Python Interpreter by Noam Gat -- Unity Asset Store. And this is more for my private tinkering: a plugin that integrates an interactive Python shell into Unity3D. Somehow, Unity3D always fascinates me when I see it. Especially since the entry is now free (unfortunately, the jump to Pro - which offers some essential tools like a profiler or support for external versioning - is quite steep).

micromongo — micromongo v0.1 documentation. Also check out micromongo, it provides a minimal ORM for MongoDB servers. However, I would have to check if django-nosql already supports MongoDB by now, then I wouldn't have to use a different ORM syntax - although micromongo is really quite lean and is based only on pymongo, so for example nice for small web services, because you don't have to install a bunch of modules.

execnet v1.0.9 documentation. I should also check this out, it's basically a library for distributing functions across a network of instances - not a full map/reduce or similar, more like a better RPC. Specifically interesting to use, for example, a normal cpython front with a compute backend based on PyPy (or vice versa, to give a PyPy server a numpy+scipy backend in CPython for data analysis).

Read the Docs. I didn't know this one yet - a web service where you can read various documentations through a uniform interface. And host your documentations for projects. And also directly different versions of documentations for projects.

"When you choose an eventually consistent data store you're prioritizing availability and partition tolerance over consistency, but this doesn't mean your application has to be inconsistent. What it does mean is that you have to move your conflict resolution from writes to reads." via Mochi Labs - statebox, an eventually consistent data model for Erlang (and Riak). Also interesting outside of Erlang, as the problem is of a more general nature - data models for transactional databases cannot simply be transferred to an eventually consistent database like Riak (or Cassandra). The reason lies in the fact that conflicts only become apparent later when reading, as they are still "on the way" beforehand.

pmundkur/odisco. An implementation of Map/Reduce according to the Disco Worker model in Objective Caml. There's already something like this for Python. If I ever want to play around with OCaml again.

Thoughts on Data Privacy, Loss of Control, and Other Things

From the Spackeria, from tin foil hats and from loss of control - The wonderful world of Isotopp. Worthwhile consideration of data protection, data traces, the inevitable accumulation of data volumes and the inevitability of the accessibility and evaluation of this data.

I myself am always sitting between the chairs of the tin foil hats and Spackeria - on the one hand, I want data avoidance and have my problems with the data collection mania in some places, on the other hand, I am close to technology and enthusiastic about it and am therefore automatically collected in many data pots. And I am absolutely aware of how much can be found out about me online if someone puts it all together.

I see, just like Isotopp presents it in the article, a massive (probably inevitable) failure of legal data protection - but I myself see a certain differentiation between data that arises in the voluntary context of the use of technical services (even if the user may not directly notice these data) and data that are collected in the state context.

The state sets up data silos only under the negative aspect - a state-created database is always designed under the aspect of general suspicion. The state does not collect the data of persons involved in visa procedures in order to provide them with targeted information and services related to visa procedures - the sole purpose is law enforcement. However, this automatically suspects all persons involved in visa procedures of terrorism and other crimes - because otherwise one would not need to record their data. The executive of the state hates the disorderly citizens and deeply distrusts them, therefore they must be controlled.

A private economic pile of data has a much more banal goal - market economic exploitation. This is, as crazy as it may sound to some, much more preferable to me. Google will not use the data to negatively interpret my political beliefs and put me on a no-fly list because I criticize the state - they just want to show me better-placed advertising. In a certain way, one can rely on the reduced field of vision of capitalists, it is much more positively influenced than that of politicians. Data sets are potential businesses - not potential attackers.

For this reason, I find the current activity of various state data protection officers in the private economic or even directly private sector (warning blogs for the use of Google Analytics) laughable to embarrassing, if the same data protection officers do not stand up to projects like those that are coming up in the Interior Ministry or other state authorities.

How can a data protection officer expect to be taken seriously if he loudly complains about the location data falling off the iPhone and rails against Apple, but at the same time does not make any attempts to stop this crazy EU commissioner who has plans for EU-wide, suspicionless data retention that would violate our Basic Law (just as the data retention already failed in Karlsruhe that was spied out in Berlin)?

Reinteract might be interesting for all number crunchers and graphics players, provided they don't get pimples from Python: an implementation of worksheets as you know them from Mathematica and Sage, but as a direct Python application based on PyGTK. You can hack in and execute Python source code, edit older source code afterward, and your output in the worksheet will be automatically updated. Downloads are also available for OSX. Unfortunately, PyGTK is not a 1st-class citizen of the Mac environment - it just looks awful with the half-defective controls, and the usability is unfortunately not really OSX-like. Someone could port this to Cocoa.

A successful Git branching model » nvie.com. Not entirely uninteresting article about distributed version control and branching/merging. Ok, it specifically addresses git and its commands, but the overviews and considerations apply to many points equally to Mercurial and in the deviations the problems are similar enough that the article remains worth reading.

counterclockwise - Counterclockwise is an Eclipse plugin helping developers write Clojure code. And if you already have Eclipse installed, a Clojure plugin might not be uninteresting either, so you can get your daily dose of parentheses.

Typesafe Stack is a distribution of Scala (2.9.0) and Akka (1.1, an actor framework for Scala with various tools for programming distributed solutions in Scala) for easy installation. Additionally, it points to sbt and Scala IDE for Eclipse (use the beta version 2, as this is completely new and the 1.x versions do not work with Scala 2.9.0 and are not particularly good) as supplements. Installers are available for Windows, OSX, and Linux (you can of course install them yourself on all platforms, but some people prefer normal installation paths). And if you want, you can buy support there - and the company belongs to Odersky, the Scala inventor and JVM languages guru. Actually, Odersky could also include his book on Scala programming as PDF (in the first edition, this is also free).

LLVM Project Blog: What Every C Programmer Should Know About Undefined Behavior #1/3. Not only what undefined behavior is in language standards, but also the motivation behind it and what it means for compiler manufacturers.

Controls again at the German-Danish border - great achievement for a founding member of the EU just to satisfy right-wing populist idiots to destroy the Schengen area..

"In the current terms of service, Twitpic reserves the right to reuse the images that users publish via the service." - and even commercially, and TwitPic has already secured the partner with WENN. via Twitter-Bilder: Verwirrung um Twitpic - Golem.de. This is therefore another service that is better not to use, as of course the creator of the images does not receive any money for the use.

RaptorDB sounds quite interesting, a classic Key/Value-Store for .NET that is based on MurMurHash and is especially designed for performance and storage stability. Could be quite useful for one purpose or another, especially since it also works cleanly with threading.

App Engine Go Overview. Honestly, I would find it more exciting if Google would move away from outdated Python 2.5. But well, instead of Python 2.7 or a JVM language, you can now program the AppEngine with Go. At the same time, however, prices and conditions have changed, so it would probably be better to first check whether it is worth it at all. Because you can also use Go just as well on your own root server ...

Metaowl is life!. Wow, just realized that on June 16th, it's the 6th birthday of the Meta Owl! By now, almost 8700 posts have been collected. And in the meantime, the automatic caching of the posts has paid off, because one or the other blog (for example, my old muensterland.org address has been gone for a while) has disappeared, but the content (at least the texts) is still accessible. The whole thing has even survived several server moves unscathed.

Microsoft Near Deal to Buy Skype for Nearly $8 Billion - WSJ.com. Ugh. Skype is already quite a mess (unfortunately a necessary mess for me), but if Microsoft now "improves" it, it's going to be quite funny ...

The Ark In Space: Manul – the Cat that Time Forgot. An early type of cat, essentially unchanged for millions of years. So something like a living fossil in plush.

bconstantin / django_polymorphic. Why am I only finding this now? This is a very nice thing for Django projects with inherited models - as soon as you make accesses to a common model class, you only get instances of the common model class with Django - but with Django-Polymorphic you get instances of the concrete subclasses. In principle, this makes the ORM more of an object database. However, this might come at the expense of performance, as more SQL queries are generated.

obensonne / hg-autosync. An extension for Mercurial that implements automatic syncs between working directories via a central repository. Can be executed manually as a command or in daemon mode (then it simply runs cyclically at intervals). This way you can do something like a controlled Dropbox - only the included files are synchronized. I would prefer a combination of inotify and xmpp Notify instead of the interval solution - this way the daemon would not constantly start up. But something like this could perhaps even be built from it. Update there is already such a thing.

Kirk Tuck: Approval. Tacit Approval. Implied Approval and "Street Photography.". There's also something that always makes me think: how to deal with street photography? It doesn't happen to me very often - I usually don't photograph people (or only as a side note), but part of it is also simply because it makes me uncomfortable to just photograph someone. It's just not really my thing.

Mixing it up: when F# meets C#. As you never program in a closed room, the connections between languages are quite important - and especially on platforms like .NET and JVM. The mappings of F# data types to C# data types and the use of these look quite interesting. Using C# data from F# is trivial, but the other way around there are some peculiarities. A similar situation exists with Scala and Java.

philikon / weaveclient-chromium. Hmm, a Mozilla Sync client as an extension for Chrome. Unfortunately, there is nowhere properly indicated how to install it and some comments on the net suggest that it probably does not run stably with newer versions. But maybe still take a look if I find some spare time. With this I could then, for example, connect Chrome on Mac or Linux with Firefox Mobile on Android. Since on Android the normal browser can't even sync with Google's own desktop browser (which is really embarrassing), this might be something.

birkenfeld / karnickel. Quite a weird thing: Macros at AST level for Python. However, in a form that rather reminds of C macros - so simple expression macros (and quite limited block macros). Above all, you get all the nasty problems of such an unhygienic macro system - like name conflicts between macro-local variables and outer variables. It's also rather just proof that it works and what you can do with the AST module delivered with Python.

dyoo/moby-scheme. Another interesting thing for Android: a PLT Scheme (i.e., Racket) dialect and a suitable toolchain to run applications created from Racket Advanced Student Language + World Primitives (ASL is already quite an extensive Scheme dialect in Racket and the World Primitives are for reactive programming in Scheme) in JavaScript and then bundle them into Android applications. So programming Android phones in a reactive Scheme dialect. Or even shorter: parentheses for Android.

Baarle-Hertog. I think I just have to go there because it's so weird. A place that is partly in Belgium and the Netherlands. Sounds a bit like "The City and the City" by China Mieville.

Blurb Plug-In For Adobe Photoshop Lightroom 3 | Blurb. Wow, that sounds really good - the books are priced as a real alternative to those from iPhoto and the available options sound good too - and even the shipping costs are not really problematic with normal Priority-Mail. I really need to check it out, because at the moment I always have to push my photos through iPhoto. Additionally, Blurb also allows you to sell photo books online (if it should not only be private books).

Computer Science and Biology Come Together to Make Tree Identification a Snap. For those who don't know what kind of tree is in their garden, or who, when they finally see the tree for the forest, want to know what they ran into.

Weekly Market. Even More Colorful.

The riot of colors at the weekly market in the sun is simply great. And the Sony NEX-3 with the 2.8/16mm is at least not so bad in sunshine. However, I still hope that the Zeiss 1.7/24mm will come soon, about which there are rumors - because the sensor can do much more than the lens delivers. And somehow I have the impression that manual focusing with the M8 not only gives me more fun, but also hits better.

Munster. Colorful.

Just a series of pictures from walks in Münster, unsorted and without much commentary.

Acta: Lobbyists want to prevent the ECJ from examining Acta. Where would we end up if we dared to check the rights extortionists and their machinations, or have courts examine the cleverly crafted contracts. Especially when experts are already saying that it does not comply with EU law in essential points.

Uni Bayreuth: Guttenberg deliberately deceived. Now it's official. It's all just plagiarized. However, it is strange that in such a debacle, the two people who reviewed this so-called "dissertation" are not scrutinized more closely. After all, how can a doctoral advisor and a second reviewer review a dissertation without reading it? Or should they have actually read the thing but not noticed that nothing particularly impressive was in it or that it was all just copied?

Ralf Jäger: SPD Interior Minister wants "carefree" data retention. Why do we even need the Union if a red-green government can be so crazy as to want data retention?

icylisper.in - jark. Hmm, yet another of many solutions for Clojure that enables simplified deployment of Clojure scripts, complete with persistent VM and #! support. Somehow, there seem to be quite a few of these lately.

Pygame Subset for Android. Wow - there is a PyGame subset for Android. Usage is a bit clunky because there is no IDE - you have to place the files on the SD card (hmm - a Nexus S doesn't have an SD card, where does that go there?) and edit them otherwise.

android-scripting - Scripting Layer for Android brings scripting languages to Android.. Interesting project with which you can run various scripting languages on Android phones. Support for Shell, Python, Perl, Ruby, Lua, TCL and JavaScript is already included. For me, Python is of course particularly interesting. Especially because the Android API is made available - you can thus directly interactively or scripted play around with the things.

PayPal Money Module « Snoopy Pfeffer’s Blog. The original article in which Snoopy describes a bit more about the extensions to Adam Frisby's DTL PayPal Money Module. Not up to date regarding installation, but the features still fit.

SnoopyPfeffer/Mod-PayPal - GitHub. I should take a closer look at this, as it allows you to use PayPal as a money module in OpenSim. It might be interesting if I ever want to revive and share my OpenSim projects again. It is based on OpenSim 0.7.1, so I can only try it out when the new Diva D2 is released (which is already in the works).

Tagbar, the Vim class browser. Seems to be a bit of a souped-up Taglist for VIM. Provides hierarchical views of defined classes, methods, and functions in a project.

ifttt / About ifttt. Sounds interesting: a simple event-action mechanism on the web that can connect various channels (Facebook, Twitter, Email, and so on) with actions - for example, create a tweet when someone tags you in a picture on Facebook or something like that. Although you probably have to provide your login details for some services, which you shouldn't necessarily do for every service ... (still in beta, access only by invitation) - a few more details about the motivation and the ideas behind it on the IfThisThenThat blog.

Scala 2.9.0 RC3 | The Scala Programming Language. Hmm, especially the parallel collections sound interesting - so to speak map/reduce for multicore on local data structures.

jQuery: » jQuery 1.6 Released. Regarding jQuery - a new version has been released. I personally find this .attr vs. .prop change somewhat unpleasant - it could bite me in a few places where I work directly with input fields (various widget code in a rather heavy Django application). Of course, it's great that it gets faster - faster is almost always good.

jgrowl. Definitely check it out, because our hand-knitted notifications are just not as nice and stable. jGrowl makes a much better impression, and as a jQuery plugin, it should also not collide with our jQuery codebase.