September 2007

I’m probably missing something in Erlang/OTP installation from sources … my goal is to install multiple version of OTP in user space.

Here is one way to do it:

  1. remove any symlink if needed
    rm /home/khigia/local/lib/erlang
  2. apply the “normal” quick install steps for the new OTP version, let say otp-R11B5
    cd /home/khigia/apps/otp-src-R11B5; ./configure --prefix=/home/khigia/local ; make; make install
  3. modify the install to be version specific
    mv /home/khigia/local/lib/erlang /home/khigia/local/lib/otp-R11B5
    ln -s /home/khigia/local/lib/otp-R11B5 /home/khigia/local/lib/erlang

Changing the symlink enable to switch Erlang/OTP version. There must be an easiest way … how?


It’s common knowledge that DBMS is a very important part of a fast scalable distributed systems as far as performance is concerned. But I often tend to forget it and blindly rely on well known relational DBMS. Recently I stumble upon the following other DBMS/discussions and the last one really opened my eyes:

  • The Erlang/OTP come with mnesia allowing transaction on distributed DB. However it has been argue (note: this need some reference…) that distributed mnesia cannot scale (it needs some agreement between all nodes for transaction). For huge distributed system (or nodes on low network) the application has to maintain data consistency without relying on transaction. Berkeley DB seems to be the preferred way to go for this, but as I understand it, it is not a DBMS which manage distribution but a tool to help you to do so.
  • CouchDB is one DBMS trying to handle the distribution of DB.
  • Also I just discover the terminology column-oriented DBMS through this (too?) simple wikipedia article. Being used to R statistics system helped me to (try to) understand what it really is. At least I better understand why Google developed BigTable and I have to read or listen more about it …

The prediction module using Slope-One algorithm can compute popular items.

In this implementation, popular items are not only the most frequent items. Each user’s ratings defines some kind of relative order of a subset of items. The prediction module compute some kind of global order for all items by merging all “user subset’s orders”. This is actually using Slope-One algorithm for a user which would rate all items with same score.

Popular items recommendation is useful for new user!