Evolutie test. Evolutionary algorithm in JavaScript with visualization in processing.js - started with a random string, the evolution function is the edit distance to the target string and the evolution is what happens - the visualization shows the spread and the convergence to the entered target string.
Archive 27.3.2011 - 18.4.2011
Re: Factor: Mail with GUI. Nice to see how a more general approach to GUIs makes the code nice and compact - this whole thing reminds me very much of CLIM in terms of structure.
Quiche Ratatouille
Well, I had a decent amount of ratatouille left over from yesterday - and I didn't want to eat pasta again (and there's no rice left). So I looked up what you need for a quiche and realized that I pretty much have everything. So I just brought the few missing things from the train station and got started. This went into the quiche:
- 250g flour
- 110g margarine
- 1 tsp salt
- 50ml water
- 1+3 eggs (one for the dough and 3 for the topping)
- 125ml milk
- 200g sour cream
- spices
- ratatouille (I still had some from yesterday, but honestly - it works with any vegetable stir-fry)
The preparation is also quite simple:
- Mix 1 egg, flour, water, salt, margarine together and knead into a dough (a three-mix is really practical)
- Wrap the dough as a lump in foil and refrigerate for 30 minutes
- Preheat oven to 200 degrees
- Mix 3 eggs, milk, sour cream and season (taste what and how much spices should go in)
- When the dough comes out of the fridge, put it in a springform pan and distribute it (press with your hand) so that it covers the bottom and the edge - about halfway up the edge
- Poke holes in the dough at the bottom with a fork and pre-bake for about 15 minutes
- Take the cake out and add ratatouille and distribute
- Pour the egg mixture over it so that the vegetables are well covered and the cake is filled to the edge. Do not pour over it, otherwise there might be some mess in the oven (not every springform is tight).
- Bake for 30 - 40 minutes (it was 35 minutes for me)
The result was surprisingly good. A mistake I made: the dough was a bit thick in the corners and that doesn't taste so great, simply because the dough itself is quite bland. But you can get that right with a bit of practice and finesse. And I can season the egg mixture a bit more, that was also a bit little (ok, I'm rather a light seasoner, so it was ok for me, but Juliana would certainly complain). In any case, a brilliant second use for a vegetable stir-fry.
However, I still have a problem: from yesterday I only had one portion of ratatouille left. Now I have 3/4 quiche left ... (I think I know what I'll be eating this week in between)
And because I'm writing about locks right now...
... it is currently being renovated (widened). And I fear that the very modern result will not excite me as much as the old lock. The old one at least had charm. The construction site itself is of course interesting just because of its size, despite everything.
Munster. In Black and White.
Oh well, silly title, but I just can't think of anything else. These are just a few corners that I really liked as black and white images. Someday I need to come up with a way to present photos in my blog without titles and text. Photos with the M8 and the C-Biogon 2.8/35. This is slowly becoming my favorite lens on the M8.
Toshiba releases self-erasing drives. What could possibly go wrong.
Is Chernobyl a Wild Kingdom or a Radioactive Den of Decay?. About the legend that Chernobyl is today a paradise for animals - the studies rather indicate that it is a death trap and the animals are there only because they migrate from surrounding areas - after all, they can't see radioactivity and the consequences of the radiation there are rather insidious because they massively hinder reproduction. Oh, and the whole region is supposed to be opened for tourism according to this year's decision ...
VirtuaWin - Virtual Desktops for Windows. Because someone just asked if there is such a thing. I don't need it. I use an operating system.
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.
Why do I do what I do
If only I knew ... (Existentialism in the evening is best cured with Guinness. Dosage as needed.)
USB Port
Uli Stemmler Band at the harbor. Do you see what I did? Haha. Ok, I'm already quiet. But the band makes nice Sunday afternoon jazz. Photo with the Sony NEX-3 and the Zeiss C-Biogon 2.8/35.
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.
Crumb Cake
Today, I didn't cook again because I was in Hamburg yesterday, but I did bake a cake. I like crumble cake, among other things because it is so easy to make. Here's what goes in (for a 26cm springform):
- 300g flour
- 200g sugar
- 150g butter
- 1 egg
- 1 pack vanilla sugar
- 1/2 pack baking powder
- some cinnamon
- 250g apricots (so small can)
- some cranberry jam (optional)
The preparation is then quite simple:
- Mix flour, sugar, vanilla sugar, baking powder, cinnamon - all together.
- Drain the fruit (the juice with tonic water and ice cubes makes a delicious non-alcoholic cocktail)
- Preheat oven to 180C
- heat the butter
- beat the egg
- mix butter and egg into the flour+sugar mixture
- knead with a mixer and dough hook until crumbly dough is formed (can also be done with a fork and by hand, but with a mixer it is more comfortable)
- distribute 2/3 of the dough in the greased springform and press it onto the bottom, possibly also make a small edge
- poke a few times with a fork into the bottom
- spread cranberry jam on the bottom of the dough
- distribute apricots on top
- distribute the remaining crumble dough evenly on top
- bake the whole thing in the oven at 180C for 45 minutes
- take out and let cool (don't be so greedy, even if it smells good)
You can put cream on it, or just eat it as is or sprinkle powdered sugar on top (though it already makes a pretty sweet cake, so don't overdo it). Tip: don't leave the edge area too thick, otherwise it will be a rather hard part that is difficult to cut later. And of course, you can almost freely vary the fruit, apple puree instead of fruit works great, as do cherries or plum puree (but it will probably be quite firm). The nice thing about it is that you can have almost everything on hand in stock and the eggs you can maybe get from the neighbor (I just didn't expect to want to bake when I went shopping quickly on Saturday).
Miscellany from Hamburg
Was in Hamburg on Saturday again - why not enjoy the beautiful weather in one of the most beautiful cities in Germany. The pictures are all taken with the Leica M8 and the Elmar-M 2.8/50, except the last one, which is taken with the Ricoh GRD II. Nothing special, just a collection of what I looked at. And in color, because I want to show it to Juliana.
Pängelanton
The Karnevalsverein Pängelanton operates a small railway museum in Münster Gremmendorf and in front of it stands this black-and-red beauty built in 1902. I am a railway enthusiast and this little locomotive is indeed a rarity that also motivates visitors from farther regions to visit. Photo taken with the Ricoh GRD II.
markrendle/Simple.Data - GitHub. I should check this out, it looks quite interesting - an ORM for .NET.
Send in MĂĽnster again
In MĂĽnster, it's Send again. This time for a whole week because of the large rides - the Ferris wheel and the roller coaster are already quite impressive. One doesn't quite realize how big the Send actually is, only when you see the large rides during setup and then later at the finished Send, the whole surrounding area makes it clear. The Hindenburgplatz is also considered one of the largest inner-city open spaces in Germany. Photos, by the way, again with the M8.
Tuckesburg and the old zoo
The Tuckesburg is the old residence of the executioner in MĂĽnster - and later the retirement home of Prof. Landois, the founder of the MĂĽnster Zoo and the developer of the Aa Lake. I've already had this some time ago, but it's always a nice subject. Photos with the M8 and the Elmarit-M 2.8/50.
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.