Erlang's typing system: less is more?

Posted on 16 October 2007 - 11:55

Erlang has a very rudimentary typing system, there are some primitive types (atoms, binaries, integers and floats), functions (it's a functional language), aggregate types (lists and tuples) and a bunch of Erlangisms (pid, port, and reference – a kind of UUID). The record type is really a tuple in disguise, since a record is a tuple whose first term is the record name, followed by the record fields in their declaration order.

And that's all. There are no means to define complex types as we are used to in traditional OO languages, nor is it possible to to associate behavior to a data structure by means of a class (or a prototype in JavaScript). This is surprising for a long-time OO developer that spends a lot of time to carefully craft class diagrams. But I think this is actually part of Erlang's strength.


Continue reading »

Dynamo: Amazon's key/value store

Posted on 04 October 2007 - 17:48

Amazon has published yesterday what is going to be a seminal article, just like Google's papers on MapReduce and BigTable.

The article presents Dynamo, their scalable key/value store. The very interesting thing is that it assembles a lot of concerns that are usually addressed individually in the litterature with the production constraints in mind. Data partitioning and replication, disconnected writes with resynchronisation, load balancing, etc.

An additional example that many applications can be implemented with simple key/value pair stores and that relational databases are more an out-of-the-box comfort we've been used to over the years, but that don't work at a huge scale.


Continue reading »

Micro concurrency for Big throughput

Posted on 30 September 2007 - 22:32

I started learning Erlang on my spare time (which essentially means a few hours during week-ends lately). Surprisingly, it has brought back to my memory many things I did years ago. The Prolog-ish syntax with pattern matching (a simple form of unification) and the message passing between process which isn't that far from Ada's rendez-vous (except that Ada is synchronous).

One of the great things in Erlang, that justifies the current hype around it, is that concurrency is cheap both in terms of code an in terms of memory/cpu footprint, and that message-passing makes it way easier to develop concurrent programs than threads with shared data.


Continue reading »

A pig in the incubator

Posted on 23 September 2007 - 18:06

The people at Yahoo have proposed their Pig project to enter the Apache Incubator. Pig is a high-level data processing language built on top of the low-level mapreduce primitives provided by Hadoop.

We've seen at Joost that mapreduce allows sophisticated data analysis to be performed, but having to write a Java program for every single analysis not only increases the development time compared to a traditional database but is also not compatible with the regular need for ad-hoc queries. SQL is still king for that, but the amount of data we have to process prevents its use.


Continue reading »

My first horse-riding lesson

Posted on 21 September 2007 - 10:09

My wife has been riding horses since she was a child, and has been looking for a while at tours in some countries where horses are part of people's culture and life such as Mongolia, Patagonia and western US. That looks like a very nice way to discover a country in a manner that a road trip in a car can't allow, but of course we can't go there if I don't have minimal horse-riding skills! That how she convinced me to learn :-)

So yesterday evening was my first lesson. I already have seen quite often my wife and kid perparing their horses, so I wasn't completely dumb in front of this big animal. And I generally have a very natural contact with animals, so had no fear. Now sitting on a horse's back is different from standing besides him! But it went quite well, and I'm eagerly waiting for next week's lesson!

Content-aware image reduction

Posted on 30 August 2007 - 10:57

An impressive new image reduction technique that adds or removes data in way that keeps the picture's visual consistency.

Via Fred, via Benjamin

Looking for Eclipse/RCP training?

Posted on 27 August 2007 - 11:52

My good friends of the Eclipse team at Anyware Technologies have joined other expert companies to create the Eclipse Training Alliance.

If you need Eclipse/RCP training from real practitioners involved in the community, check out the course schedule!

Scaling MySQL

Posted on 24 August 2007 - 18:19

Useful tips and tricks to scale MySQL on large web applications. A must read!

Holidays!

Posted on 05 August 2007 - 13:08

I've been on vacation for one week already, in the family house in the Alps. Nice weather, and it really feels good doing almost nothing but hiking in the mountains!

We're now starting the second phase of our vacation, a road trip through Alsace (Strasbourg) and south Germany (Rothenburg, München and Bavaria) ending in Switzerland at Bertrand's before coming back.

Joost company meeting

Posted on 23 July 2007 - 13:15

Last week was quite intense with the Joost 2nd company meeting, gathering something like 150 people! Lots of new faces, and also lots of face to face discussions with people working in other countries that I've had not met for a long time. Even with all modern communication tools, physical presence from time to time is invaluable. Formal meetings during the day, and social events and bars in the evening!

Continue reading »

Latest tweets

Recent comments