Articles Labelled with “English”

Installing OPAM 1.1.1 on a CentOS 6.5

I'm in this situation: I need to compile an OCaml program on a CentOS 6.5 server. This is actually quite problematic, because CentOS 6.5 provide out of the box a very old OCaml 3.11.2, released by INRIA in January 2010, more than four years ago.

No problem, OPAM come to the rescue! No. The OPAM team doesn't provide a binary executable compatible with the (actually very old) system libraries present in CentOS.

Ok, step back: OPAM can be compiled from sources (instructions here) so it's just a matter of minutes. Again: nope. To compile OPAM you need at least OCaml 3.12.1, while in CentOS we have only 3.11.2.

Step back: first compile and install OCaml from sources. This time I say no, because the whole point of OPAM is to get an up and running OCaml environment in a few minutes, which is actually true in most cases.

I decide to install OCaml using GODI, the “old” OCaml source distribution, the one everybody used before OPAM was born. So the fastest steps to have an OPAM and OCaml environment on a CentOS server are:

  • download and install GODI;
  • clone the OPAM repository, compile and install it; it will find a “system” compiler provided by GODI;
  • $ opam switch 4.01.0 will recompile a new environment;
  • $ opam switch remove system to delete the “system” environment;
  • $ rm -Rf ~/godi.

No root access is required in this process, I usually install OPAM in ~/opam, and GODI in ~/godi.

There is an irony in all this story: GODI has been the OCaml source distribution for years, and the coming of OPAM, which is actually newer and has some important features missing in GODI, has produced many frictions in the OCaml community, that in the end caused the shut down of GODI.

The moral part here is: embrace the new things, but don't be too impatient in throwing out the window the precious work that, in the end, still works.

In any case, I want to thank both Gerd Stolpmann (author of GODI) and the OPAM team: they gave to the OCaml community a mature, industrial grade, set of tools to use OCaml.

First release of OCaml binding of Lua library

I'm happy to announce the first release of ocaml-lua, the OCaml binding of the Lua library. With ocaml-lua you can embed a Lua interpreter in an OCaml program in a few lines of code, and use Lua for configuration or customization purposes.

Here are some references:

  • The homepage of the project is hosted on OCaml Forge;
  • The complete library reference (ocamldoc generated) is here;
  • Source tarballs are on the download page on OCaml Forge;
  • The official GIT repository is here;
  • Bug reports and feature requests are on my page on GitHub.

I hope it could be useful.

Online backup with Crashplan: my experience

Crashplan ETA for the first backup

Following this article of Lifehacker I decided to give a try to Crashplan, an online "cloud" backup service that seemed very promising to me because it supports many platforms (Linux and Android included) and offers an unlimited space plan for one computer for only $36 a year.

Installing the client for Linux is very easy, and presents all the typical backup options (timing, include/exclude paths, and so on).

I decided to include all the directory I already backup with a script of mine on a USB external hard drive.

The problem here is visible in the screenshot I saved: the estimated time for completing the first backup was 52 days!

It's not Crashplan fault, of course, but the fact is that here in Italy we are still very far from using a remote service like that.

Maybe I'll retry again in a a few… years.

Debugging memory in OCaml: any advice?

Memory consumption chart

A server I just deployed (written in OCaml, of course) seems to eat RAM at breakfast. This is the chart of the RSS field of "ps" in the past 24h (click to enlarge). The program starts with almost 6 Mb and is now reaching 40 Mb, in a linear trend that has nothing good to say.

Any advice on how to debug the memory consumption?

Sōchin (壯鎭)

I'm learning Sōchin (壯鎭). What the heck is Sōchin? It's a kata. It's a Karate-do thing. Never mind what a kata is or what Karate-do is, watch this video. :-)

And not, I don't even remotely resemble Valdesi.

Thanks Mr. Ritchie

Today Unix, or some other operating system deeply inspired by Unix, is pervasive: servers, embedded devices (notably Android, but it's only one) and the “revolutionary” Mac OSX is itself an incarnation of the ideas and works of Dennis Ritchie.

Dennis Ritchie worked on Unix more than 40 years ago, and my questions is: what will we use in forty years? Probably something Dennis Ritchie was working some months ago.

Thanks Mr. Ritchie.

Words of wisdom…

…from Edsger Dijkstra: “Program testing can be used to show the presence of bugs, but never to show their absence!”

Copyright © 2004–2017 by .
Creative Commons License Content on this site is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 2.5 Italy License.

RSS Feed. Valid XHTML 1.1. This blog is written in Objective Caml. Design based on the work of Rodrigo Galindez.