Linkblog - 31.7.2011 - 4.9.2011

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).

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.

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.

Sony NEX-7 full specs and images | Photo Rumors. Looks very interesting, even though I wouldn't really need the 24 megapixels. But the built-in electronic viewfinder would be nice. Besides, it looks quite nice and doesn't seem to be quite as absurdly small, so you can throw it in your backpack, but also hold it well. Of course, you have to see it in real life first - Sony is very big on leaking and then announcing but then never delivering (see the various optics that were on the roadmap and still don't exist). And the price of $1000 mentioned in rumors is not exactly thrilling. Let's see.

PyPy Status Blog: PyPy 1.6 - kickass panda. Getting better and better - ctypes are now properly fixed (this is one of the FFI options in Python) and there is beta support for C extensions from the cpython environment (which is only a stopgap, direct PyPy extensions will actually always be more efficient, but at least some of the extensions are available as long as they do not offer their own PyPy version). Oh, and there is a first approach for a numpy module that is directly integrated with the JIT of PyPy - not yet complete, but a start has been made.

Breaking: HP Makes Big Shift on WebOS, Exiting Hardware Business - Ina Fried - Mobile - AllThingsD. That's it for WebOS - the future sounds different.

The Python Standard Library By Example - Doug Hellmann. For all those who prefer a printed version of the internet: this is a book with all the PyMOTW (Python Module of the Week) articles in it, polished and beautified and nicely compiled. Certainly very practical, because sometimes you have a book quicker at hand than a computer - and computers are forbidden in bed anyway. (Warning: regarding bed, this is a 1344-page whopper!).

Python and fileinput - All this. I know the module, honestly. But somehow it has slipped my mind again. It's really a handy thing when you write command-line tools, simply because it takes care of the Unix-typical handling of input for you.

GNAT GPL for LEGO MINDSTORMS NXT – Ravenscar Edition. And for friends of robots made from Lego and bondage-and-discipline programming languages, there is now Ada for Lego Mindstorms NXT. After all, there are not many Ada links to report.

Cross-domain communications with JSONP, Part 1: Combine JSONP and jQuery to quickly build powerful mashups. Since I needed it for a colleague and therefore searched for it, I'll just bookmark it. JSONP is basically just a convention for JSON services that respond to a callback parameter by passing the generated JSON as a parameter to a function call and using the content of the callback parameter as the function name. This makes the data accessible from domains other than the one from which the actual script comes - normal AJAX does not allow this.

ipdb makes the Python debugger a bit prettier and more user-friendly by integrating the tools from ipython. If you're already using ipython, it might be a good idea to install ipdb as well. Alternatively, you can use pdbpp, which provides similar features without ipython (e.g., you could combine this with bpython).

Official Google Blog: Supercharging Android: Google to Acquire Motorola Mobility. Well, yes. Google is buying Motorola (ok, the part of them that is interesting for phones). Wow. Just spent 12.5 billion. Seen via Twitter by Don Dahlmann. I believe the next Nexus will then probably come from Motorola ...

Schneier on Security: New, Undeletable, Web Cookie. On to the next round: ETags are evil! Since they can be arbitrarily assigned by the server, you can simply insert a visitor's UUID there, and on the next visit, the browser sends the content for checking for file changes (provided it supports conditional-GET, but that's true for all browsers today). The user has no control over the use of ETags - and it actually doesn't make sense to give the user this control - so it's very difficult to defend against this method.

rad2py - Rapid Aplication Development platform for python. Wow, why didn't I know about this before? It looks interesting, although the description is a bit heavy. And it's still in a very early stage (first full prototype planned for November 2011).

RMoD: Fuel. And another Smalltalk link - here a persistence library completely in Smalltalk without special support of the VM, but still good performance and good mapping capability for all kinds of objects.

SandstoneDb, Simple ActiveRecord Style Persistence in Squeak. A very simple single-file database for Pharo, which is interesting, for example, if you want to build small desktop applications in Pharo. So the classic GUI tools that you make for personal use, for example. And yes, today is Smalltalk Day at rfc1437.

Coral — Pharo Smalltalk for scripting. Oh, that's nice, that's one of the problems I always have with Smalltalk: I can work in the IDE and in the image and then export a headless application for the server, but as soon as I need a quick script outside the image, I have to switch languages. Coral provides the answer to this problem: a small wrapper, a minimal syntax extension and a minimal image to be able to write normal scripts with Pharo Smalltalk.

ToDE - tODE - the Object centric Development Environment. A bit stagnant in development, but still interesting: an IDE that builds on Pharo Smalltalk. The special feature: it runs in the browser, but offers all the usual Smalltalk development tools there. In principle, you could therefore install a hosted Smalltalk image as a development environment for the iPad and play with it on the go (Pharo and Squeak fit well into the browser interface because they usually don't come as native Windows, but as Windows-in-Windows - and here simply Windows-in-browser).

CouchDB: The Definitive Guide. Oh, the CouchDB book by O'Reilly is also available as an online book and even in German. Certainly interesting for one or the other who doesn't feel like wading through English books. The translation is not (yet?) complete, so you will still come across English chapters. But it's a start.

Installable Web Apps - Google Code. There you can find some background information on how to convert web applications into installable web applications or hosted apps. This allows you to use Chrome as a runtime for applications that behave very similarly to regular applications - Amazon's online Kindle is a great example. Programming is done in JavaScript, which is much less intimidating than it was a few years ago. As Packaged Apps, you can also do everything that Chrome Extensions can do (and can go beyond the scope of regular web applications).

Privacy Fail: How Facebook Steals Your Friends Phone Numbers | Kurt von Moos.com. Ouch. Facebook sends the iPhone address book to their servers and stores all contacts there when you activate the function "sync profile pictures with address book" - according to the description of the function, the user believes that only the pictures from Facebook are added to the contacts they have locally, but in reality the entire address book is facebookized. Without the user being aware at that moment what is happening.

Kindle Cloud Reader. Nice story - under Chrome it is installed as a Chrome application with offline storage of the books. This is very practical on Linux, because there is no native reader there. And on the iPad it should also work similarly - I have to check that out too (although there is also the normal Kindle Reader there).

mutle/vim.safariextension - GitHub. Another VI keyboard control for Safari, which I actually quite like - but unfortunately it doesn't have link navigation, so you apparently still have to use the mouse. Too bad, because that's actually something like the killer feature - on the other hand, both this one and vimlike are open source, maybe I should just sit down and combine the two (or build a patch for one of the two that adds the missing features).

vimlike-onsafari - Safari keybind changes like VIM. - Google Project Hosting. Hmm, thinly documented, but the essentials seem to work. So the navigation keys and following links. And unlike previous tests, it no longer gets confused when styling the link hints.

Update on UIKit lighthouse platform. Hmm, I didn't notice that - QT also has support for UIKit, the iOS framework, in 4.8. So you can build iOS apps based on QT. This raises the question of how this works with PyQt or PySide - Apple doesn't like interpreted code only when it is loaded afterwards. The app itself can be written with it, though.

Time Machine - Frequently Asked Questions 30. What are Local Snapshots?. Not a bad idea what Apple came up with. The first rumors about local snapshots sounded rather strange, but what has become of it - automatic snapshots for on the go, when you don't have your backup drive plugged in, are quite practical. Not for real recovery in the sense of a disk crash, but for the usual "oops, I'm stupid, I didn't want to delete that yet" situations. However, I would like it if there were a GUI in Time Machine for this, where you can turn local snapshots on and off - yes, I know, you can do it from the command line, but I'm not an Apple user for nothing, I want pretty graphical buttons to press!

Map Tunneling Tool. Cool - you can enter your location on a map and it will show you the antipodal point on the other side of the Earth. We are pretty much in the South Pacific, southeast of New Zealand. Spain has it good, they come out directly in New Zealand.

Sankra Software: Disable OS X Lion Resume per application. Since Apple implemented this feature a bit "aggressively" (it is also activated for apps that do not explicitly say "turn this on, I can handle it"), it can sometimes be quite annoying - some apps then perform both their own "new program start" action and then the system's action afterwards - for example, some editors open two windows on the same file if both the editor and the OSX say "Restore Window". Therefore, it is not impractical to be able to disable this feature per application. Although, of course, this will be forgotten at the latest when the application is updated, and you wonder why the windows no longer open automatically because the application has switched from its own control to system control. But hey, software is the last remaining adventure ...

Modula-3 Resource Page. Continuing with niche languages - Modula-3 has always fascinated me because it was a pragmatic and practical extension of the Wirthian language world and at the same time integrated a lot of interesting language constructs into a familiar imperative language system. And development continues to this day, the download even has binary packages for Darwin (the Unix foundation of OSX), although currently only 32bit (and I guess no bridge to Objective-C and thus to the Cocoa APIs).

Magpie Guide: Welcome. Since we're on the topic of niche languages: Magpie is yet another language for the JVM. This one looks a bit like a mix of Scala and Ruby, but the concepts are quite different. Particularly nice is multidispatch - generic functions that choose the appropriate version based on all their parameters and their types. Reminds me a bit of CLOS in that aspect. Additionally, there are full closures and functions, and blocks are first-class objects in the system. Additionally, there is an approach to metaprogramming with quotations, although I still consider the Lisp approach unbeaten (simply because in Lisp the structures of the parse tree correspond 1:1 to the actual syntax and the lists as internal representation, while in languages with Algol-like syntax the whole thing is much more indirect). What I personally also find pleasant: Magpie is very text-oriented, not so heavily reliant on special characters. It reads more pleasantly to me.

"As far as legal knowledge is concerned, Interior Minister Friedrich – after all a lawyer – still has a lot of catching up to do." via Internet-Law » Friedrich uns graut vor Dir.

the "useless" language. Quite a crazy language - something like Forth, but all commands and syntax consist of single characters. There are also quite strange restrictions for function definitions (maximum 64 characters per line and only one if or while or similar in a function). Particularly fascinating is the U->C compiler written in U. The developer of the language has written an entire book about programming in U. But beware: the author's color choice is an acquired taste ...

Groklaw - A Brief Explanation of Microsofts Anti-Google Patent FUD ~ by pj. Since the whole patent mess around Android is already somewhat opaque, I think it's good when sites like Groklaw comment on it: "Again, Google is pointing to the main issue, not that Microsoft and its satellite helpers are meanies, but that what they are doing is illegal. They are attacking the open source community, with patents as the weapon and not just as individual companies but as an artificial group designed to 'strangle' Android. And if you look at the mobile litigation going on as we speak, ask yourself: who is suing and who is being sued? Does it look coordinated to you?"

Ricoh GXR Mount A12 Preview: 1. Introduction: Digital Photography Review. Looks very interesting - especially the operation of the GRX is similar to my GRD, and that is really great. The GRX just looks like a camera and not like a deformed child's toy. In any case, Ricoh has done it right, at least on paper: no anti-aliasing filter and focus peaking. The missing anti-aliasing filter always excites me in the pictures from the M8 and the focus peaking is the feature from the new Sony firmware that has excited me the most. I'm curious to see what it will cost, the module (announcement is 650 dollars, but street prices always deviate) - the body is now under 300 euros really cheap to get. And around 200 euros for the additional viewfinder. If the module is cheaper than the two currently available A12 modules, then the GXR could be a pretty brilliant alternative for Leica-M lenses.

Xcode4 / Objective Pascal - Available Files. If you want to play around with Pascal in the Xcode4 environment, this is certainly a good starting point. It describes how to integrate FPC into the environment, there are ready-made templates for projects and even more fun: it describes how to program iOS devices in Pascal. Back to the Future! Or Back from the Future?

extpascal - Ext JS wrapper for Object Pascal. Well, I always wanted to program my web applications with Pascal and give them an Ajax-GUI. Because it's possible. And every RIA hipster gets a heart attack when they see the sources.

sausage.js - examples - The Core API. Interesting small JavaScript library that makes navigation in large documents much easier, without overwhelming you with navigation buttons - just hover with the mouse on the right, there are visual markers for the size of the document sections and where you hover, a button appears that you can use for a direct jump. In my opinion, much less aggressive in its presentation than Flexible Nav. However, Flexible Nav of course has the advantage that you don't have to hover to see the navigation.

Okito.net — On SproutCore 2.0. About the current version of the framework that powers icloud.com (it seems some developers violated their NDA when they took a closer look at icloud.com). SproutCore has been around for a while, but version 2.0 has brought many changes and is a rewrite in essential parts. The goal is still to build native-looking applications using only JavaScript and the browser.

Pascal Script | RemObjects Software. More like a curiosity you find on the net - a scripting engine that has a syntax very similar to Object Pascal and can be integrated into Delphi and Lazarus (FreePascal RAD IDE).

Killer rat daubs fur with poison-arrow plant toxins. Title says it all. Gives the term "rat poison" a whole new meaning ...

Get Started Guide « PhoneGap. Just blogged for future reference, because I will definitely need this again when I play around with Phonegap and Android. Quite bumpy, it would be nice if Phonegap simply included a ready-made project template. But well, it works anyway - my Hello World appears. On the simulator. And I don't have to touch nasty Java for it, just nasty JavaScript.

Python, SymPy and Quantum Physics. So far, NumPy/Matplotlib and SymPy have been two separate worlds for me - this blog post shows how to connect these two, meaning to work out your function definitions symbolically with SymPy and then transfer them to NumPy to perform numerical investigations. This is particularly interesting in connection with the qtconsole of ipython, because it only displays matplotlib plots inline, while SymPy plots open in a separate window (as they run via pyglet), which is rather inconvenient for saving the results of your work.

wsgi_lite. Since I sometimes program "raw" against WSGI, this is not entirely uninteresting for me - a slimmed-down WSGI that defines simpler calling conventions for middleware and applications and thus further reduces the code somewhat. For entire apps, it usually doesn't bring much, as you typically write apps with a web framework, which already eases this part for you.

Allergology :: Allergens Allergies Allergologically Allergic. A doctor and a book he wrote and a database that is essentially the content of the book, with a search function. Often, you don't need much more than that when you want to check if, for example, the relevant fruit is known to trigger allergies or is rather unlikely.

Issue 438 - pyglet - pyglet 1.1.3 fails on Snow Leopard. Oh man, this is really annoying. Pyglet is used by Sympy to output mathematical expressions. Unfortunately, Pyglet uses Carbon on OSX - and that is only 32-bit. And all my attempts to force something to 32-bit were in vain - actually, this can be done via environment variable or alternatively with the arch tool, but for some reason (probably due to internal indirect program calls) this is not done in Python as documented. Annoying, because Sympy has been on the list of things to try out for a while (not just since the QT console).