Linkblog - 13.3.2011 - 14.4.2011

Re: Factor: XKCD. If you want to get an impression of one of the crazier languages - John Benediktssons Blog has a lot of example snippets in Factor, which are usually directly usable in the Factor REPL (or create manageable vocabulary extensions). I am always impressed by the compactness of Factor code. John's code also has the advantage that I can usually understand what is happening - Slavas code, for example, is often much more idiomatic and therefore cryptic for me. But this is certainly also due to the fact that Slava usually writes about the internals of the language, while John simply describes small tricks.

Significantly increased radiation in the Asse. Why do atomic energy representatives still believe they have to advocate for atomic energy when we are not even capable of operating a storage facility for low and medium radioactive materials like the Asse safely and without problems? After all, this is a storage facility in a highly industrialized country that, according to the claims of atomic energy advocates, has the highest competence in atomic energy. Why does a reactor have to blow up in Japan for people to realize that our perfect atomic world is not as perfect as it seems? When we have all the problems right in front of our own door (and behind it)!

Akka Project. And I definitely had that on the old blog before, but never mind, everything is repeated on TV all the time. And a lot has happened with Akka lately, and it is increasingly establishing itself as the future platform for fault-tolerant systems on the JVM. Many parallels with Erlang's ideas, but with the broader JVM-typical platform (there is hardly anything for which there is not some Java class library and thus also for Scala). Very interesting: Akka brings an implementation of Software Transactional Memory for the Java platform.

Programming Scala. I think I already had this one, but never mind: the second online freely available book about Scala that I stumbled upon today. You can also read it alongside the other one, but it's at a similar language level (i.e., before 2.8).

ScalaQuery. Yes, Scala-Day today. One of the things I was missing so far was a good integration of databases that also makes use of the DSL features and type safety of Scala. So not just sending SQL around via JDBC, but something like LINQ, only for Scala. This looks quite nice.

Programming in Scala, First Edition. And since I have Scala on my mind: the first edition of Programming in Scala is now freely available on the web. Of course, it lacks some things that came with the current Scala version (especially the container libraries are indeed different in 2.8), but it is still certainly a good starting point to read into the language.

Scala IDE for Eclipse. Hmm, it seems that the tools are starting to develop there. I don't have anything against command lines in general and feel more at home on them than in IDEs, but for the general acceptance of languages, IDEs are quite practical. And Scala is still one of the more interesting languages in the JVM environment, even if it has become quite quiet about it in recent times.

agronholm / jython-swingutils. No idea what I could do with it yet, but if the Java world ever becomes interesting, this could become an interesting GUI library (Swing for Jython).

Code rant: Message Queue Shootout!. Not a real shootout and only an incomplete selection of message queues. But still something interesting as a result: if you have nodes that already have their own persistence and transaction solutions, between which you just want to send messages as quickly as possible - there is nothing better than ZeroMQ. It is - due to its architecture - simply the fastest solution. And we are talking about really drastic differences.

NOSQL Databases. Excellent overview of all available NoSQL databases. Good starting point if you want to inform yourself about the available systems and their orientation and implementation.

BBC News - Net giants challenge French data law. Great idea from France, mandatory storage of plaintext passwords, so they can be handed over to any random authority. The Federal Interior Friedrich will probably like that, as he is so keen on all data ... (Discussions on reddit claim that bbc misrepresented the situation, it's only about storing account data even after closing the account for one year - if a service does not do this, it will be held liable for activities of non-identifiable users afterwards - so not quite what you could read in the BBC article)

Why the VISA warning file is a mess at Metronaut.de – Big Berlin Bullshit Blog. The VISA warning file affects me directly and personally. My fiancée is Russian, her family still lives in Russia, and we will continue to make and want to make visits. I can already say goodbye to any illusion of data protection for myself and Juliana. Of course, a state has the right to protect itself from abuse, but general suspicion solely based on the use of legal possibilities is always wrong. And the VISA warning file is nothing more than the general suspicion of citizens simply because they appear once in the context of a visa application. This has nothing to do with the rule of law anymore.

visionmedia/asset. After having pip (for Python modules) and jip (for Java libraries), here is an analogous tool for JavaScript libraries. So for the automatic installation of JavaScript libraries in node.js project directories from the command line.

jRumble | A jQuery Plugin That Rumbles Elements. The new blink tag! (okay, there are indeed sensible applications, e.g., if you want to briefly display an element on the webpage to indicate that something has happened there - similar to bouncing icons in the OSX Dock).

Python Package Index : pip 1.0. For the sake of completeness, I'm blogging this even though pip is already a fixed part of the Python infrastructure for me. But maybe one or the other has not yet played around with pip, then now is probably the right time to do so. In my opinion, you should always use it together with virtualenv, because then you can easily install exactly the right dependencies for each project and keep them separate from other projects.

sunng87/jip. I'm not currently doing much with Jython, but jip sounds very practical: it's an analog to pip, but for Java libraries. So a simple command-line tool that downloads the necessary jar files and puts them in the right place. Integrated with virtualenv. Much more pleasant for me than, for example, dealing with Maven or similar Java-usual infrastructure tools.

Exploring Beautiful Languages: A quick look at APL. Simply because APL has always fascinated me. Even if I never want to be in the position, based on my own experiences with it, to have to maintain an APL program - for me, APL is the quintessential example of write-only languages.

How I learned to stop worrying and write my own ORM. A bit of background information on why Dapper was developed and which use cases it solves - it is essentially used where direct SQL access was previously "tunneled" over Linq for performance reasons, because Linq2Sql is inefficient there.

Dapper-dot-net - Simple SQL object mapper for SQL Server. Could potentially be quite interesting at work. C# also offers Linq, but according to their measurements, Dapper seems to be significantly optimized for performance.

philikon / python-weave client is even more interesting than the other tool: a Python library for accessing Mozilla Sync. With this, I could build various small tools that automatically mix links into bookmarks or extract them from the sync and move them into other bookmark files. Or how about a cron job that takes links from bookmarks in a special group and automatically posts them to the weblog? All sorts of fun things are possible ...

philikon / weaveclient-chromium. Not yet tried, it is a Chrome extension that integrates Mozilla Sync into Chrome and Chromium. With this, you could finally exchange bookmarks between Chrome and Firefox without having to go through XMarks. If someone now also builds this extension for Safari, I would be happy - the fact that I cannot properly sync between browsers, but each one cooks its own soup, is highly annoying. Mozilla Sync is free to use and behind it is a company that I trust much more in this area than all the others.

Bill Gates: “In toilets, we’re the kings”. As the head of Microsoft, I found him annoying. As the organizer of his Foundation, I find him amazing. I'm not fooling myself - he is an exception, other billionaires are probably far less motivated, but never mind. One is a start. And maybe it's just the nerd in him who wants to do something with all that money, simply because he wasn't just there for the money and the power. And that might also explain some of his time at Microsoft - he really believed in his work there. Well, if his foundation continues to save lives, then I'll forgive him Windows. I don't have to use it.

Video LightBox - embed videos with Lightbox effect on your website!. I don't do anything with video, but it looks quite interesting - it's a standalone tool that generates the files for video embedding and can send them somewhere via FTP, for example. Mac and Windows versions.

Pipe is a module with infix syntax for chained function calls over potentially lazy streams (internally these are generators). Unlike stream (which I mentioned here before), it does not support parallelism, so it's just syntactic sugar. However, I prefer the sugar from stream (i.e., the syntax) and the parallelism of stream is also more interesting than just providing a slightly different syntax.

markrendle/Simple.Data - GitHub. I should check this out, it looks quite interesting - an ORM for .NET.

Basho: An Introduction to Riak. I should take a closer look at this, it has a quite clean and simple architecture and all nodes in the system are equal (this is similar to Cassandra). The whole thing is written in Erlang here, but interesting is the MapReduce interface: functions can be delivered as JavaScript code and the communication goes over a simple JSON interface.

HBase vs Cassandra: why we moved « Dominic Williams. Not entirely uninteresting blog post that dares to compare Hadoop/HBase with Cassandra and tries to highlight the different focuses. His conclusion: HBase is more for warehousing, Cassandra more for transaction processing. Alone, this would make something like Brix even more interesting if it could really combine these two aspects.

Brisk – Apache Hadoop™ powered by Cassandra | DataStax. I should also keep an eye on this, as someone is marrying Hadoop with Cassandra as a backend. This makes higher-level layers from the Hadoop project also usable with the high performance of Cassandra and, above all, with the freer update of data in Cassandra and its eventually-consistent model.

HIVE: Data Warehousing & Analytics on Hadoop. A point that particularly interests me at the moment: evaluations, especially BI, of large amounts of data. Hadoop provides Hive as a solution for this. Access to HIVE can not only be made via Thrift, but also via JDBC and ODBC.

Apache Thrift. Also worth taking a closer look, in principle something similar to Google Protocol Buffers, but more prevalent in the Apache environment. Therefore, in areas like Hadoop, it is often chosen as the path of choice for accessing services from various languages. A small comparison of the two protocols. I like that Thrift not only allows binary representation but also a JSON-based representation - this makes the integration of Thrift APIs into web solutions easier, as JSON is native to JavaScript.

The Secrets of Building Realtime Big Data Systems. This is how I came across Cascalog and ElephantDB: a talk by the programmer of both projects about Big Data. He is also currently writing a book "Big Data". Could be very interesting.

nathanmarz/elephantdb. Same author as for Cascalog, here he built a distributed Key/Value-Store on Hadoop with Clojure. Also not uncool.

nathanmarz/cascalog - take a closer look, a marriage of Clojure and Hadoop for easier evaluation of large data sets. The interesting thing about Cascalog: it draws ideas from Datalog and forms a query language for Hadoop data sets in Clojure.

JavaScript Quotations - interesting link about a metaprogramming feature for JavaScript. In this case for a very interesting JavaScript implementation: written in F# and for the CLR world, runnable under .NET and Mono.

Microsoft Shuts off HTTPS in Hotmail for Over a Dozen Countries | Electronic Frontier Foundation - a villain who thinks evil about it. Surely pure coincidence that the list of affected countries reads like the "elite" of democratic states. The hypocrisy of large corporations is actually only surpassed by FDP economic ministers.

Enterprise Java Development Tools | SpringSource. I should take a closer look, as it was recently about J2EE and EJB alternatives, and this is one of the more well-known alternatives.

Trinity - Microsoft Research. I should take a closer look at this, it sounds somewhat like distributed Redis (in-memory structures that are persisted) combined with a query semantics that is more based on graph relationships (comparable to RDF Triple Stores).

Programming, Motherfucker. Do you. speak it?

Why Cloud9 Deserves your Attention - browser-based IDE in Javascript on server and client. And source of the current version available on github.

Django-nonrel - NoSQL support for Django. Provides a first approach to integrating various NoSQL databases into Django at the level of the Django ORM. Backends for MongoDB (no thanks), AppEngine and Cassandra are in the works. Cassandra is particularly interesting to me at the moment.

WordPress › Really Static « WordPress Plugins. Well blogged, because it allows you to generate static pages directly from WordPress (this could also be done with WP Super Cache and its directly cached pages, but these are not automatically updated) and perhaps this could be an interesting way in the long run. Okay, I would probably have to forego some elements to make the whole thing work without "artefacts" - but many of them are actually dispensable. For example, a tag cloud would be frozen at the state of the last rendering if it is part of the page. Similarly, information such as "latest comments" or "latest posts". The same goes for calendars, which have more marked days on newer pages than on older ones. This is also the main reason why I have repeatedly abandoned baked sites - on the other hand, are these problem cases really important for a blog?

Vundle 0.7 is out. I usually use Pathogen, but Vundle has some features that make it quite interesting - maybe I should play around with it. On the other hand, I haven't made any updates and changes to my Vim installation for a long time. But since all vim.org scripts are now on GitHub, Vundle's GitHub integration is certainly very interesting.

Adobe Photoshop Lightroom 3 * Exporting using Publish Services. Well, Adobe has Photoshop.com - and just expanded it. And promotes it as a better alternative to Flickr. How serious Adobe is about this can be seen in the Publish Services in Lightroom 3. Facebook, Flickr, and SmugMug are offered out of the box. Even on the Lightroom Exchange, I found nothing about connecting to Photoshop.com. Well done, Adobe. Very convincing.

Privacy advocates: Piwik instead of Google Analytics - that's a good start, concrete suggestions for what site operators should do if they want statistics. We should probably take a closer look at work to recommend it to customers who ask for statistics.

By adding extra code to a digital music file, they were able to turn a song burned to CD into a Trojan horse. When played on the car's stereo, this song could alter the firmware of the car's stereo system, giving attackers an entry point to change other components on the car.

via With hacking, music can take control of your car | ITworld.

Satellite Photos - Japan Before and After Tsunami - Interactive Feature - NYTimes.com. Slide the slider left and right.

Programming Languages - Progopedia - Encyclopedia of Programming Languages. That was the programming language wiki I was looking for recently when the deletion frenzy struck Wikipedia again. I think I already mentioned it in the old blog.

Instagram now has official APIs. It completely passed me by. Maybe I can eventually get around Tumblr to get my Instagram pictures into the sidebar. On the other hand, Tumblr has been doing quite well lately, and why change something that works (the curse of any further development - good enough).

pdict.py at master from segfaulthunter/sandbox - GitHub. A PersistentHashMap for Python - so a functional data structure that does not allow changes, but provides a new structure with minimal change compared to an existing structure with substructure sharing to the original structure. A rather interesting implementation. There are also further explanations of the ideas behind it. And an alternative implementation of the same idea.

ShutterSnitch. Interesting little app with which you can receive images via WiFi on the iPad and automatically tag them with metadata and geocoding - could be a rather interesting combination with an EyeFi card in my Sony or my Panasonics (the M8 unfortunately cannot be used with EyeFi - the SD slot on the M8 is too narrow for the EyeFi and the metal body blocks too much of the weak signal). Simply connect the camera, put the iPad in the backpack and walk around and take snapshots and occasionally use the iPad as an extra-large lightbox.