Archive 7.12.2010 - 27.12.2010

J Home. Because you should sometimes just take a look at other languages that are so different that you don't even get the temptation to compare them with the usual (and hey, an APL offshoot with an ASCII character set is at least worth some attention once a year). You can also consider it as a high-end calculator.

'surface' plot 1 2 o. / 0.2 * i.60

Ok, I've decided to use MacVim as my default editor because I don't have to retrain my fingers every time I switch to Linux, but Kod looks really interesting. It's a real OSX editor with good integration into system standards, and as a scripting environment, it's simply Node.js and JavaScript. Surface styling with CSS3. And the entire interface is multithreaded, so more complex actions don't block the editor. It could almost make you weak. Plus, it's Open Source and free to tinker with - unlike TextMate, which had a very nice approach, but then more or less fell asleep because the programmer has been tinkering with version 2 for years and hasn't released it.

The coolest part: if you look in the discussion forum, you read a comment: "Because this app has received such uptake, I would encourage the open-sourcing of it to get a jump start on features. There are a boatload of developers who are really tired of waiting for a specific feature in TextMate (split windows, etc.) and they are smart cookies. If you put the source on GitHub you can pull the stuff you like and leave the rest." - well, the developer just went ahead and implemented it directly.

The Art and Science of Smalltalk is now freely available on the web (PDF link). And where the book is located there are more books about Smalltalk for free download.

IPython as a system shell explains the function of the sh profile for iPython. I need to play around with it, because Python as a system shell can be very helpful.

" ... and the fearsome Teutonic minions of the Chaos Computer Club" via The Blast Shack. Bruce Sterling on Assange and Wikileaks. Somehow, the sub-sentence threw me completely out of the reading rhythm.

Oni Labs: Apollo. Interesting JavaScript runtime for browsers that translates StratifiedJS to JavaScript and thus allows asynchronous code to be written largely as one would write synchronous code. This can be very practical, especially with Ajax, because the actual algorithm is no longer buried in the many callbacks.

Jquery Snowfall Plugin 1.4 | Somethinghitme. I think a snowman is kissing me. And those who don't want to hack themselves can also use the Wordpress Snow Storm plugin.

MacBookAir3-2/Meerkat - Community Ubuntu Documentation. If anyone wants to equip the nice new MacBook Air with Ubuntu. Not really an option for me, especially since I found a really usable infrastructure for installing normal software with Homebrew.

Statement by the UN (ok, by a UN sub-organization that, among other things, deals with topics such as freedom of expression) on Wikileaks. Will this impress any of the unleashed prole-talkers with a biting reflex? Probably not.

Skype kaputt. Just reading the word "Mega-Supernodes" was worth it.

Outage: Skype unavailable for many users - Golem.de - hey, I rely on Skype. Stop the nonsense with the outages! And what do you mean by "appears to be offline" - if I don't get any contacts displayed and can't establish any connections, then it's factually offline, regardless of the technology behind it.

Denisovans Were Neanderthals’ Cousins, DNA Analysis Reveals - NYTimes.com. Wow. And parts of the Denisovan genome are found in today's inhabitants of New Guinea. As if they were all isolated.

Python Package Index : futures 2.0. Just stumbled upon it, one of the features is new in Python 3.2, but the reference implementation also runs with Python 2.6. Basically does something like my lazypy and lindypy (i.e. solves the same problems, but in a slightly different way).

Pharo Open Source Smalltalk. I should take another look at it, as it looks very sleek now and the installation has become really trivial. Clever how a Pharo.App directory is loaded, which is the app for OSX and includes simple startup tools (LNK for Windows and .sh for Linux) for Linux and Windows. Additionally, there is a new VM and the whole thing has become really fast. And it no longer looks so outdated (unfortunately still GUI-in-window and no native windows).

pure sounds very interesting, even if it is of course yet another niche language. But at least it's a rarely trodden (not necessarily new, but not often used in compilers) path. What is particularly interesting is that the interpreter fully relies on the LLVM infrastructure and since 0.45 Pure can directly integrate various languages for the LLVM backends (e.g. C/C++ and with Faust a special language for audio processing). Pure thus goes far beyond simple scripting languages and offers a very interesting alternative to classical FFIs.

Netzsperren: Großbritannien plant globalen Pornofilter and thus proves that mad cow disease can jump from harmless cows to politicians and then to ISP bosses. The obvious thought of an analogous treatment as with the cows, however, does not seem practical. There are indeed differences between company bosses, politicians, and cattle. Amazing. (I decline any betting offers on whether the British model will quickly spread to the EU because it is too obvious)

c't on the iPad. Thanks for that, even if it's just a dressed-up PDF for now. Okay, it's embarrassing that you can't properly link to this article because it's hidden behind a paywall - wouldn't it have made sense to have an online article for this? Never mind. But what's annoying: "free for subscribers until February 2011" is not what someone wants to read who pays you for the dead tree. Because asking for money twice for already sold content is usually only done by the dregs of the media landscape. If you now introduce a digital-only subscription that costs more than the print version, there will be verbal beatings. By the way, even a dressed-up PDF can be given a memory of the last visited page. Honestly. It's not that hard.

Alex Gaynor -- Getting the most out of tox. I should take a look at this - currently I'm quite lazy when it comes to creating unit tests for my projects, usually I only test against the one Python version that I primarily work with and for dependencies I only take the ones that are currently installed on my machine (or in the virtualenv). It would make sense to set up a more comprehensive system for this, just to have more meaningful test results.

Sparrow - The New Mail for Mac. Looks really good and is the first mail client that makes me consider switching from MailPlane. Because MailPlane does support - necessarily - all GMail features, but also looks exactly like what it is: a website. If Sparrow also implemented a "universal inbox" like iPhone/iPad, it would be pretty perfect.

coleifer/peewee at master - GitHub. I must have already had it, a small ORM for Python that is based on Django and works with sqlite. Particularly interesting for small web services if you don't want to pull in a large framework, but just want to make the code a bit more readable. Caution: it does not directly support programmer-controlled transactions, but is essentially always in autocommit mode. However, you can change this with relatively little effort if you want - just derive UpdateQuery, InsertQuery, and DeleteQuery and set requires_commit to False on the classes, and define an extended execute method that takes an explicit commit parameter.

Middleware_and_Utilities - WSGI Wiki. If you are working with wsgi as a basis, it is a good idea to check out what WSGI applications and middleware are already available.

Python Package Index : urlrelay 0.7.1. Web services based on gevent require URL dispatching. urlrelay seems to be an interesting small WSGI library that, unlike other systems, does exactly that and nothing else.

Bug 1044 – CVE-2010-4345 exim privilege escalation. The second part of the Exim march. This is the privilege escalation via Exim and an alternative config file. Because Exim is a monolithic server running under suid rights (i.e., starts with root rights even if executed as another user), there is a small time window in which the service always runs as root - and this is exploited through the alternative config file. The patch restricts the locations where these config files may reside and, combined with the configuration of write permissions on this location, can prevent non-root users from injecting their own configs.

Bug 787 – memory corruption in string_format code. Important if you're running a Debian version older than Lenny, as there are no more security updates available and you have to patch it yourself. This one closes the door. By the way, it's quite interesting to look at the date - it has been fixed since 2008, but due to the early discontinuation of security updates for outdated Debian releases, it is still present in many Debian systems based on Etch (and older). Debian is only recommended for use if you can actually keep up with every release change in a timely manner. Otherwise, solutions like Ubuntu LTS are by far the better choice. Apart from that, it's quite embarrassing that Lenny still had such an outdated Exim ...

rhodecode is something like bitbucket or github. Like bitbucket, it uses mercurial and offers various tools in the interface. The special thing? The code is free and thus something like Bitbucket for self-hosting. Maybe an alternative to Trac.

HP Storage Hardware Harbors Secret Back Door | threatpost - hopefully puts an end to the regular "we need to switch to HP because it's much better than NetApp" discussions. And yes, that was sarcasm.

The Self Publishing Revolution: Amazon in the Book Banning Business. This time it's against erotic (ok, let's be honest: pornographic) books by Selena Kitt. But who says Amazon will stop there? And even if Amazon naturally has the right to no longer offer a book in the future (there are enough alternatives for eBook stores), what gives them the right to delete sold books besides their ToS? After the 1984 embarrassment, one thought they had understood. But there the cause was a rights violation by the publisher that Amazon reacted to - this time it's pure arbitrariness. The whole thing confirms my approach of never buying eBooks that I can't free from their DRM. Necessary as an investment protection. (and of course preferably buy books without DRM if possible)

Bottle: Python Web Framework I should also take a look at as an alternative to web.py - because in Bottle the app is simply a collection of functions with routes and mappings and not always a class. In addition, the functions can have different parameters for different verbs and JSON is directly supported as an output format. For web services, this sounds even more streamlined than web.py - and it also looks cleaner in structure to me.

In Albania and Bosnia, visa requirements are waived. And why not for Russia? Would be much more important for me ...

Majority in NRW against new state treaty for youth protection on the internet - Computer. The attempt by the Union to portray this as an embarrassment for Red/Green is quite amusing. I mean, how stupid do these prolethicians in Düsseldorf actually think the voter is? The waffling of Red/Green is indeed embarrassing - especially with the Greens, after their bold statements, one could only have accepted a rejection - but the ridiculousness of the Greens is something the Union can hardly claim as a success, the Greens manage that quite well on their own. Good that this dreadful contract has been postponed for now (whoever believes the topic is now settled for good is also putting on their pants with pliers), but it is hardly a merit of any of the parties. Everyone has made a fool of themselves, even the Left (with their approval in Berlin).

Nicholas Piël » Benchmark of Python Web Servers. Very interesting benchmarking, I definitely have to take a look at gevent, the performance in the tests is already impressive. Update: after I looked at gevent - I am impressed. For web services you have to be careful: gevent.wsgi only supports GET and POST, only gevent.pywsgi also supports PUT and DELETE.

RecordExtension - Mercurial. Great, I hadn't noticed this before. With this, you can select individual patches to commit when you've done several things at once but don't want to commit them together.

Security: Alleged Backdoor in OpenBSD's IPSEC Stack. Ouch. If there's anything to it, we might need a WikiLeaks for Open Source. And of all places, in OpenBSD, which has put security at the top of its TODO list.

Home | The FinePix X100 Professional Photographer's compact digital camera from Fujifilm. It all looks quite interesting. But as long as you can't hold it in your hands, it's all still speculation.

Mrdoob/three.js - GitHub. 3D Engine in JavaScript. Actually, I don't have a real application for this at the moment, but it could be quite practical for visualizations. And well, it's just cool, that alone justifies a blog post.

Namespacing in JavaScript. Everything you always wanted to know about it but were afraid to ask. Or also: why syntactic support for namespaces is overrated and plain old objects are sufficient.

The Ball Revealed – Sphero « The Orbotix Blog. Will. Haben.

For those who need to fiddle with bytes in Clojure: gloss. At the moment, I don't have an application for it, but I'm bookmarking it for later when I have to deal with binary data again.

Mac OS X Automation: Services. An example of how to build an integrated HUD browser for Twitter with Automator and OSX Services. Not bad at all.

Clojure Libs and Namespaces: require, use, import, and ns - 8th Light Blog. Just a brief overview of the different namespace functions in Clojure.

ninjudd/cake - GitHub. After taking another closer look, it's now a really practical way to get Clojure up and running. Unlike other build tools in the Java ecosystem, it doesn't download half the internet. It can also be integrated into MacVim using slimv with a small helper script and is at least usable for my Clojure tinkering.

slimv.vim - SLIME-like Lisp and Clojure REPL inside Vim with Profiling, Hyperspec, Paredit. Quite interesting, as it is much lighter and simpler to install than Slime or VimClojure or one of the other heavy solutions. And you can simply program Common Lisp or Clojure from within Vim. It is currently only in the "playing around and looking" mode, but it sounds quite interesting.

Mainz/Landau: Geothermal power plant likely responsible for earthquakes. Well, but in Emsdetten and Nordwalde, Exxon wants to pump water into natural gas bubbles to extract it there. At an unprecedented depth and with methods that have not really been tested in continuous operation. But even a geothermal power plant can cause earthquakes that cause damage through a similar approach. I think homeowners in Emsdetten and Nordwalde should keep a very close eye on this ...

Gundo - Visualize your Vim Undo Tree. Vim does have a bit more to offer when it comes to undo than usual editors - the entire tree of undo/do/redo actions is stored and you can move freely within it. However, no one really understands this with the normal Vim means. With the Gundo plugin, you can directly visualize this tree and perhaps make sense of it. Sure, you can achieve something similar through regular commits and version control. And of course, we all commit early and often and never have any long editing sessions, right?

Chromium Blog: A New Crankshaft for V8. And this makes JavaScript even faster. V8 is also the basis for Node.js, so this performance improvement will likely soon be available for the server as well.

Now also available on instagr.am - of course as rfc1437. I've been doing something similar on tumblr for quite some time now, and Instagram is an amazingly practical uploader for tumblr.

The Risks of Cloud: Lessons from Wikileaks - Simon Says.... Summary of the actions against Wikileaks and what this means for business on the web. Because what happened to the Wau Holland Foundation with PayPal (their PayPal account was frozen, not Wikileaks') can happen to anyone if someone doesn't like your nose. Without even a rudimentary legal process. They simply claim that the Terms of Service were not followed. And even self-hosting doesn't really help because you are still dependent on many others (the place where the server runs, the domains ...). Strangely, this arbitrariness on the net is never mentioned when politicians talk about the terrible "lawless space Internet".

pyquery: a jquery-like library for python — pyquery v0.6.1 documentation. That's what it says. Essentially a subset of what jQuery can do, as jQuery has its own selector extensions and this one simply builds on lxml (but therefore has full CSS3 selector support).

stream – Lazily-evaluated, parallelizable pipeline — stream v0.8 documentation. Interesting small module for easier programming of calculation chains with iterators. Makes source code much more compact for suitable use cases (e.g. transformations and selections of bulk data). Blogged because I have implemented something like this several times myself ad-hoc within projects.

Wau-Holland-Stiftung: Donors of Wikileaks threatened with sanctions. But it's actually less about Wikileaks than about the foundation's negligence. Financial statements are standard business for foundations, if you simply leave them out, you can expect - predictable - trouble with the authorities.