<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title type="html">Romain Lenglet's old web page</title>
<link rel="alternate" type="text/html" href="http://www.berabera.info/oldblog/lenglet"/>
<link rel="self" type="application/atom+xml" href="http://www.berabera.info/oldblog/lenglet/atom.xml"/>
<updated>2007-05-09T13:31:57+09:00</updated>
<author>
<name>Romain Lenglet</name>
<uri>http://www.berabera.info/oldblog/lenglet</uri>
</author>
<id>http://www.berabera.info/oldblog/lenglet/</id>
<generator uri="http://nanoblogger.sourceforge.net" version="3.3 RC5">
NanoBlogger
</generator>

<entry>
<title type="html">New blog</title>
<author>
<name>Romain Lenglet</name>
</author>
<link rel="alternate" type="text/html" href="http://www.berabera.info/oldblog/lenglet/archives/2007/05/index.html#e2007-05-09T11_47_54.txt"/>
<id>http://www.berabera.info/oldblog/lenglet/archives/2007/05/index.html#e2007-05-09T11_47_54.txt</id>
<published>2007-05-09T11:47:54+09:00</published>
<updated>2007-05-09T11:47:54+09:00</updated>
<category term="Web" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
                                                <p>
Since I changed my job in December 2006, I have finally moved this blog to my new personal server, but only for archival purposes.
I will no more update this blog.
Please visit my new website and blog at <a href="http://www.berabera.info/">http://www.berabera.info/</a>.
I hope that you will enjoy the new design as much as I do!
</p>
</div>
</content>

</entry>
<entry>
<title type="html">I am taking some vacation</title>
<author>
<name>Romain Lenglet</name>
</author>
<link rel="alternate" type="text/html" href="http://www.berabera.info/oldblog/lenglet/archives/2006/11/index.html#e2006-11-29T19_12_52.txt"/>
<id>http://www.berabera.info/oldblog/lenglet/archives/2006/11/index.html#e2006-11-29T19_12_52.txt</id>
<published>2006-11-29T19:12:52+09:00</published>
<updated>2006-11-29T19:12:52+09:00</updated>
<category term="Lab life" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
                                                <p>
My current position at the Tokyo Institute of Technology funded by the
<acronym title="Japanese Society for the Promotion of
Science">JSPS</acronym> ends today.  Today, I have cleared my office.
And I am now on vacation, for several weeks, before I start my new
job.
</p>
<p>
Because of that, I have not been very active online during the last
weeks.  And as I don't have Internet access at home, I will be mostly
offline during the several weeks to come.  But I will also have more
time to work on my Erlang-related projects (<a
href="http://dryverl.objectweb.org/">Dryverl</a>, Erlang-related
macros in <a href="http://www.gnu.org/software/autoconf/">GNU
Autoconf</a>...), to develop a new backend supporting <a
href="http://www.griffintechnology.com/products/airclickusb/">Griffin
Technology's AirClick USB wireless remote-controller</a> for <a
href="http://www.lirc.org/"><acronym title="Linux Infrared Remote
Control">LIRC</acronym></a> (I already have developped a stand-alone
program supporting it, based on the <a
href="http://libusb.sourceforge.net/">libusb</a>, and which I
developped by reverse-engineering), to restart playing the classical
guitar and learning <a href="http://www.csounds.com/">Csound</a> (I
bought <a href="http://csounds.com/book/index.html">The Csound
Book</a>), etc., etc.
</p>
<p>
This will be a very geeky vacation, indeed. (^_^)
</p>
</div>
</content>

</entry>
<entry>
<title type="html">Back from ICFP 2006</title>
<author>
<name>Romain Lenglet</name>
</author>
<link rel="alternate" type="text/html" href="http://www.berabera.info/oldblog/lenglet/archives/2006/09/index.html#e2006-09-26T11_41_58.txt"/>
<id>http://www.berabera.info/oldblog/lenglet/archives/2006/09/index.html#e2006-09-26T11_41_58.txt</id>
<published>2006-09-26T11:41:58+09:00</published>
<updated>2006-09-26T11:41:58+09:00</updated>
<category term="Erlang/OTP" />
<category term="Research" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
                                                <p>
I am back from Portland, OR, USA.  I have attended
the <a
href="http://www.erlang.se/workshop/2006/"><acronym title="Association
for Computing Machinery">ACM</acronym> <acronym title="Special
Interest Group on Programming Languages">SIGPLAN</acronym> Erlang
workshop</a>,
the <a
href="http://icfp06.cs.uchicago.edu/"><acronym title="Association for
Computing Machinery">ACM</acronym> <acronym title="Special Interest
Group on Programming
Languages">SIGPLAN</acronym> <acronym title="International Conference
on Functional Programming">ICFP</acronym> conference</a>, and
the <a href="http://www.galois.com/cufp/"> <acronym title="Commercial
Users of Functional Programming">CUFP</acronym> workshop</a>.  I have
taken a
few <a
href="http://www.csg.is.titech.ac.jp/picture/2006/icfp06/">photographs
of all events</a>.
</p>
<p>
The <a
href="http://www.csg.is.titech.ac.jp/paper/lenglet2006dryverl.pdf">article
about Dryverl</a> that I have presented in the Erlang workshop, and
the <a
href="http://www.csg.is.titech.ac.jp/paper/lenglet2006dryverl_slides.pdf">presentation's
slides</a>, are freely available.
</p>
</div>
</content>

</entry>
<entry>
<title type="html">Decoding Palm Datebook databases: Erlang used for binary data manipulation</title>
<author>
<name>Romain Lenglet</name>
</author>
<link rel="alternate" type="text/html" href="http://www.berabera.info/oldblog/lenglet/archives/2006/09/index.html#e2006-09-06T17_43_57.txt"/>
<id>http://www.berabera.info/oldblog/lenglet/archives/2006/09/index.html#e2006-09-06T17_43_57.txt</id>
<published>2006-09-06T17:43:57+09:00</published>
<updated>2006-09-06T17:43:57+09:00</updated>
<category term="Erlang/OTP" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
                                                <p>
I have written a small module for the decoding of Palm® Datebook
database
files: <a
href="http://www.berabera.info/oldblog/lenglet/erlang/palm_db.erl"><code>palm_db.erl</code></a>
and <a
href="http://www.berabera.info/oldblog/lenglet/erlang/palm_db.hrl"><code>palm_db.hrl</code></a>.
Datebook database files contain all the appointments of a Palm® PDA.
</p>
<p>
Note that it can only decode database files that have been archived by
a synchronization software.  It does not implement
a <a href="http://en.wikipedia.org/wiki/Palm_OS">synchronization
conduit</a>, i.e. it cannot do synchronization on the fly.
Implementing a conduit would have been much more difficult, because it
would have required to integrate into an existing PDA synchronization
framework such
as <a href="http://www.opensync.org/wiki/kitchensync">KDE's
Kitchensync framework</a>, etc.
</p>
<p>
To implement this module, I have
read <a
href="http://www.palmos.com/dev/support/docs/protein_books/File%20Formats.pdf">the official Palm® file format documentation</a>, and I
have looked at the implementation
of <a href="http://www.coldsync.org/">p5-Palm</a>, a collection of
Perl5 modules for reading and writing Palm® database files.  It must
be noted that my rewriting into Erlang is much concise and readable
than that Perl implementation.  Erlang's binary pattern matching
feature really makes a difference.  Although Perl is unsurpassed when
manipulating text, I believe that Erlang is the best programming
language to manipulate binary data, even in small script-like modules
like this module.
</p>
<p>
I have developped a small module that uses the <code>palm_db</code>
module for generating files for
the <a
href="http://www.gnu.org/software/emacs/manual/emacs.html#Diary">GNU
Emacs Diary</a>
application: <a
href="http://www.berabera.info/oldblog/lenglet/erlang/palm_datebook_to_diary.erl"><code>palm_datebook_to_diary.erl</code></a>.
This module is not complete: it does not support repeated entries, nor
alarms, etc.  Yet, it is still useful in practice.
</p>
<p>
To use it, you must first save your Datebook database using your
synchronization software.  For instance, when I
use <a href="http://cvs.codeyard.net/kpilot/">KDE's Kpilot</a> under
GNU/Linux, that database is saved in
file: <code>~/.kde/share/apps/kpilot/DBBackup/<em>pda_profile_name</em>/DatebookDB.pdb</code>.
To decode this file and generate an Emacs Diary file, execute:
</p>
<pre>
&gt; erl -noshell -run palm_datebook_to_diary start ~/.kde/share/apps/kpilot/DBBackup/<em>pda_profile_name</em>/DatebookDB.pdb -run init stop &gt; ~/diary
</pre>
<p>
Then, in Emacs, you can display the diary for the current date by
executing the <code>M-x diary</code> command.
</p>
<p>
The code of those modules is distributed under
the <a href="http://www.gnu.org/copyleft/gpl.html"><acronym title="GNU
General Public License">GPL</acronym></a>.
</p>
</div>
</content>

</entry>
<entry>
<title type="html">Improved Autoconf Erlang macros to check library versions</title>
<author>
<name>Romain Lenglet</name>
</author>
<link rel="alternate" type="text/html" href="http://www.berabera.info/oldblog/lenglet/archives/2006/09/index.html#e2006-09-05T20_16_04.txt"/>
<id>http://www.berabera.info/oldblog/lenglet/archives/2006/09/index.html#e2006-09-05T20_16_04.txt</id>
<published>2006-09-05T20:16:04+09:00</published>
<updated>2006-09-05T20:16:04+09:00</updated>
<category term="Debian GNU/Linux" />
<category term="Erlang/OTP" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
                                                <p>
I have
contributed <a
href="http://lists.gnu.org/archive/html/autoconf-patches/2006-09/msg00016.html">a
patch to Autoconf's Erlang-related macros</a>, adapted from a patch
sent to me by
<a href="http://www.babayev.com/?page_id=21">Ruslan Babayev</a>.
The <code>AC_ERLANG_CHECK_LIB</code> macro has been modified to set
the <code>ERLANG_LIB_VER_<em>library</em></code> variable when
checking for the presence of a library <em>library</em>.  The macro
sets it to the version number of the library, in addition to setting
the <code>ERLANG_LIB_DIR_<em>library</em></code> variable to the path
of the library directory.  For instance, to check the presence of
the <code>erl_interface</code> library, and to get its version, you
can include those lines in your <code>configure.ac</code> file:
</p>
<pre>
AC_ERLANG_CHECK_LIB(erl_interface)
AC_MSG_NOTICE([erl_interface version: \"$ERLANG_LIB_VER_erl_interface\"])
AC_MSG_NOTICE([erl_interface directory: \"$ERLANG_LIB_DIR_erl_interface\"])
</pre>
<p>
Those new <code>ERLANG_LIB_VER_<em>library</em></code> variables can
be used for two purposes:
</p>
<ul>
<li>To check that the installed version of a library matches a
specific version or range of versions.</li>
<li>To automatically rewrite <code>.rel</code> files to contain the
versions of libraries that are actually installed.  I will write about
this in a future article, since Ruslan also sent me a nice application
skeleton that makes use of those features.  This deserves a separate
article.</li>
</ul>
<p>
To compare version numbers, I recommend to use
the <code>AX_COMPARE_VERSION</code> macro that is part of
the <a href="http://autoconf-archive.cryp.to/">Autoconf Macro
Archive</a>, a collection of freely reusable GNU Autoconf macros.  In
Debian GNU/Linux, it is distributed in
the <code>autoconf-archive</code> package.  For instance, the
following <code>configure.ac</code> file snippet checks that the
Erlang/OTP <code>stdlib</code> library is installed, and that its
version is greater or equal to <code>1.14</code>:
</p>
<pre>
AC_ERLANG_CHECK_LIB(stdlib, [],
    [AC_MSG_ERROR([Erlang/OTP stdlib library not found but required])])
AX_COMPARE_VERSION([$ERLANG_LIB_VER_stdlib], [ge], [1.14], [],
    [AC_MSG_ERROR([Erlang/OTP stdlib library version >=1.14 required])])
</pre>
<p>
Or better, to be more pedantic and to fit better with the standard
behavior of Autoconf's macros, notably to support Autoconf's caching
capability:
</p>
<pre>
AC_ERLANG_CHECK_LIB(stdlib, [],
    [AC_MSG_ERROR([Erlang/OTP stdlib library not found but required])])
AC_CACHE_CHECK([whether the version of the Erlang/OTP stdlib library matches],
    [erlang_cv_lib_vercheck_stdlib],
    [AX_COMPARE_VERSION([$ERLANG_LIB_VER_stdlib], [ge], [1.14],
     [erlang_cv_lib_vercheck_stdlib="yes"],
     [erlang_cv_lib_vercheck_stdlib="no"])])
AS_IF([test "$erlang_cv_lib_vercheck_stdlib" = "yes"], [],
    [AC_MSG_ERROR([Erlang/OTP stdlib library version >=1.14 required])])
</pre>
<p>
The configuration test above could be refactored into a reusable
macro.  However, since it uses the <code>AX_COMPARE_VERSION</code>
macro which is not included in GNU Autoconf, there is no chance that
it could be included into the official GNU Autoconf project.  And
because the needs for checking Erlang/OTP library versions probably
vary too much between projects, it seems better that anyone takes this
configuration code snippet and adapts it to his needs in his
own <code>configure.ac</code> file.
</p>
<p>
To use this new version of this Autoconf Erlang macro, you either have
to wait for the next release of Autoconf (version 2.60b?), or to use
Autoconf's current version 2.60 and to follow the following steps.
Create a directory in your project root directory,
e.g. named <code>acmacros</code>.  In that directory, create a file,
e.g. named <code>erlang-new.m4</code>, which contains <em>only</em>
the new defiinition of the <code>AC_ERLANG_CHECK_LIB</code> macro.
You can
download <a
href="http://www.berabera.info/oldblog/lenglet/erlang/erlang-new.m4">my
own <code>erlang-new.m4</code> file</a>.  Project-specific macros have
precedence over the macros installed with Autoconf.  Therefore, this
new definition of <code>AC_ERLANG_CHECK_LIB</code> will be used
instead of the one in Autoconf.
</p>
<p>
In addition, to use the Autoconf Macro
Archive's <code>AX_COMPARE_VERSION</code>, you must copy
its <code>ax_compare_version.m4</code> file into
the <code>acmacros</code> directory.  In the Debian GNU/Linux package,
this file is installed in <code>/usr/share/autoconf-archive</code>.
</p>
<p>
Then, to use those project-specific macros, one only has to give the
path to the macro directory to <code>aclocal</code>, which will scan
the files in that directory automatically:
</p>
<pre>
&gt; aclocal -I acmacros
&gt; autoconf
</pre>
<p>
Here you are!  In a future article, I will write about Ruslan's ideas
to automate the configuration of Erlang/OTP <code>.rel</code>
and <code>.app</code> files.
</p>
</div>
</content>

</entry>
<entry>
<title type="html">gtknode 0.15 is now hosted on Google Code</title>
<author>
<name>Romain Lenglet</name>
</author>
<link rel="alternate" type="text/html" href="http://www.berabera.info/oldblog/lenglet/archives/2006/09/index.html#e2006-09-04T16_54_30.txt"/>
<id>http://www.berabera.info/oldblog/lenglet/archives/2006/09/index.html#e2006-09-04T16_54_30.txt</id>
<published>2006-09-04T16:54:30+09:00</published>
<updated>2006-09-04T16:54:30+09:00</updated>
<category term="Erlang/OTP" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
                                                <p>
The development of gtknode, the Erlang binding for
the <acronym title="the GIMP Toolkit">GTK+</acronym> library, is now
hosted as a <a href="http://code.google.com/p/gtknode/">Google Code
project</a>. gtknode was previously included
in <a href="http://jungerl.sourceforge.net/">the Jungerl
collection of Erlang code</a> on Sourceforge.
</p>
<p>
The version on Google Code (version 0.15) is the latest version from
Mats Cronqvist, the author of gtknode.  This version
includes <a
href="http://www.berabera.info/oldblog/lenglet/archives/2006/02/index.html#e2006-02-14T20_52_23.txt">my
improvements of the build system</a> using GNU Autoconf
(and <a
href="http://www.berabera.info/oldblog/lenglet/archives/2006/01/index.html#e2006-01-27T22_53_14.txt">my
GNU Autoconf macros</a>) and GNU Automake.
</p>
<p>
Mats Cronqvist also added a new example application, <em>sherk</em>,
which is a preliminary version of a graphical front-end to Mats'
(unpublished?) <em>sherk</em> profiler.
</p>
<p>
There has been no officially released tarball archive for this
version, but you can create a tarball archive from the source code by
taking the following steps:
</p>
<ol>
<li>Download the source code, using Subversion:
<pre>
&gt; svn checkout http://gtknode.googlecode.com/svn/trunk/ gtknode
&gt; cd gtknode
</pre></li>
<li>Generate the <code>configure</code> script, using GNU Autoconf <em>(version 2.59c, or 2.60, or later is mandatory!)</em>:
<pre>
&gt; aclocal
&gt; autoconf
</pre></li>
<li>Generate the <code>Makefile.in</code> files, using GNU
Automake <em>(version 1.9.5 or later is mandatory!)</em>:
<pre>
&gt; automake
</pre></li>
<li>Now, create a temporary tree for building, and generate
the <code>Makefile</code> files ready for using:
<pre>
&gt; mkdir /tmp/build
&gt; cd /tmp/build
&gt; ...../configure
</pre></li>
<li>Now, you should be able to create a distributable tarball archive
of the source code:
<pre>
&gt; make dist
</pre></li>
</ol>
<p>
These steps create a <code>gtknode-0.15.tar.gz</code> in the current
directory.  After uncompressing this file, you get the same content as
after step 3 above.
</p>
<p>
To build gtknode, execute the classical command triplet:
</p>
<pre>
&gt; ..../configure
&gt; make
&gt; make install
</pre>
<p>
After installing, you can execute the examples. For instance, go into
the installed <code>examples/points</code> directory, and execute:
</p>
<pre>
&gt; erl -sname test -s points start
</pre>
<p>
I have a GTK+-related bug when starting the <em>top</em> example,
which replaces the old <em>simple</em> example.  I have to investigate
into this.  I was not able to test the <em>sherk</em> profiler
front-end example, since I have not yet found where I can download
Mats' <em>sherk</em> profiler from.
</p>
<p>
<strong>Update (2006-09-05T00:17):</strong> the <em>top</em> bug has
been corrected by Mats in the Subversion repository revision 5.  Here
is a screenshot that proves that it works now:
</p>
<p>
<img alt="gtknode top example" width="334" height="310" src="http://www.berabera.info/oldblog/lenglet/images/gtkNode/gtknode-top.png" />
</p>
</div>
</content>

</entry>
<entry>
<title type="html">Dryverl version 0.1</title>
<author>
<name>Romain Lenglet</name>
</author>
<link rel="alternate" type="text/html" href="http://www.berabera.info/oldblog/lenglet/archives/2006/05/index.html#e2006-05-29T23_59_51.txt"/>
<id>http://www.berabera.info/oldblog/lenglet/archives/2006/05/index.html#e2006-05-29T23_59_51.txt</id>
<published>2006-05-29T23:59:51+09:00</published>
<updated>2006-05-29T23:59:51+09:00</updated>
<category term="Erlang/OTP" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
                                                <p>
I have made the first official release of Dryverl: <a href="http://forge.objectweb.org/forum/forum.php?forum_id=1018">Dryverl version 0.1</a>.
An example “Hello World” Erlang-to-C binding's specification and test program are included in that release.
</p>
<p>
I have spent my afternoon finishing the configuration and build process based on GNU Autoconf, Automake and Libtools: the dryverl-0.1.tar.gz archive file is built automatically from the SVN repository and when installing, it build another dryverl_hello-0.1.tar.gz archive file for the example, which is then installed in the documentation directory.
The dryverl_hello-0.1.tar.gz is itself an Autotools-based archive file, providing an automatic configuration and build process.
This archive file is like a “template”, which can be reused and tweaked by users to easily create archive files for building and distributing their own Erlang-to-C bindings.
</p>
<p>
I have tested that all combinations of C port driver configurations that can be generated by Dryverl are working (with or without input binaries passed by reference, driver set to asynchronous mode or not, etc. etc.), although only a few combinations are covered by the included “Hello World” example.
I did not want to make that example too complex at first.
</p>
<p>
I still have to write a tutorial for Dryverl.
</p>
</div>
</content>

</entry>
<entry>
<title type="html">Official announcement of the Dryverl project</title>
<author>
<name>Romain Lenglet</name>
</author>
<link rel="alternate" type="text/html" href="http://www.berabera.info/oldblog/lenglet/archives/2006/05/index.html#e2006-05-26T16_59_40.txt"/>
<id>http://www.berabera.info/oldblog/lenglet/archives/2006/05/index.html#e2006-05-26T16_59_40.txt</id>
<published>2006-05-26T16:59:40+09:00</published>
<updated>2006-05-26T16:59:40+09:00</updated>
<category term="Erlang/OTP" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
                                                <p>
I officially announce the creation of <a href="http://dryverl.objectweb.org/">the Dryverl project</a>.
</p>
<p>
<a href="http://dryverl.objectweb.org/"><img src="http://www.berabera.info/oldblog/lenglet/images/dryverl-logo-medium.png" alt="Dryverl logo" height="66" width="200"/></a>
</p>
<p>
Dryverl is an Erlang-to-C binding “assembly language”. Dryverl lets you specify and control in details all the steps of a Erlang-to-C function call, while hiding implementation details and making it much easier to implement a binding than writing it by hand. The Dryverl “compiler” is implemented as a set of XSLT stylesheets that generate the Erlang and C source code that implements a binding, given a specification of the binding in the Dryverl XML language.
</p>
<p>
Dryverl is a rewrite of Scott Lystig Fritchie's <acronym title="Erlang Driver Toolkit">EDTK</acronym>, for which I had published <a href="http://www.berabera.info/oldblog/lenglet/archives/2006/04/index.html#e2006-04-05T19_36_07.txt">two patches</a>.
Actually, since I published those patches, I preferred rewriting EDTK almost from scratch.
I have written a <a href="http://dryverl.objectweb.org/doc/dryverlvsedtk.html">detailed comparison between Dryverl and EDTK 1.1</a>.
</p>
<p>
The current discussion on the <a href="http://www.erlang.org/ml-archive/erlang-questions/">Erlang-questions mailing-list</a> about Erlang-to-C bindings was a very good occasion to make this project well-known.
I have not yet finished the documentation (tutorial, etc.), but... this project had to be announced one day, anyway! ^_^
And Dryverl is already sufficiently mature to be used, in part thanks to Serge Aleynikov who helped me testing it and reported bugs and patches.
Thanks also to the <a href="http://www.objectweb.org/">ObjectWeb Consortium</a> for hosting this project.
</p>
<p>
Any contributions to Dryverl are welcome.
</p>
<p>
Oh, and if you wondered why I drew a “panda-D” in the logo: it is here only because it is cute. ^_^<br />
<strong>Update:</strong> Some people find that it looks more like a frog or a fish (or even like a tired hunchback). Hmmm...
</p>
</div>
</content>

</entry>
<entry>
<title type="html">Autoconf 2.59c has entered Debian GNU/Linux's Sid distribution</title>
<author>
<name>Romain Lenglet</name>
</author>
<link rel="alternate" type="text/html" href="http://www.berabera.info/oldblog/lenglet/archives/2006/05/index.html#e2006-05-15T15_00_27.txt"/>
<id>http://www.berabera.info/oldblog/lenglet/archives/2006/05/index.html#e2006-05-15T15_00_27.txt</id>
<published>2006-05-15T15:00:27+09:00</published>
<updated>2006-05-15T15:00:27+09:00</updated>
<category term="Debian GNU/Linux" />
<category term="Erlang/OTP" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
                                                <p>
GNU Autoconf version 2.59c <a href="http://packages.debian.org/unstable/devel/autoconf">has been packaged for the Debian GNU/Linux Sid distribution</a>.
This version contains macros for configuring Erlang projects.
There is no need to install <a href="http://www.berabera.info/oldblog/lenglet/archives/2006/02/index.html#e2006-02-21T14_47_13.txt">my <code>autoconf-erlang</code> package</a> anymore, except in other releases of Debian GNU/Linux with older versions of GNU Autoconf.
</p>
</div>
</content>

</entry>
<entry>
<title type="html">Evaluation of non-technical aspects of the development of Erlang/OTP</title>
<author>
<name>Romain Lenglet</name>
</author>
<link rel="alternate" type="text/html" href="http://www.berabera.info/oldblog/lenglet/archives/2006/05/index.html#e2006-05-15T12_56_43.txt"/>
<id>http://www.berabera.info/oldblog/lenglet/archives/2006/05/index.html#e2006-05-15T12_56_43.txt</id>
<published>2006-05-15T12:56:43+09:00</published>
<updated>2006-05-15T12:56:43+09:00</updated>
<category term="Erlang/OTP" />
<content type="xhtml">
<div xmlns="http://www.w3.org/1999/xhtml">
                                                <p>
Some time ago, <a href="http://www.libroscope.org/">Libroscope</a> (a news site in French about Free Software) published <a href="http://www.libroscope.org/Benchmark-23-logiciels-libres">a benchmark (in French) of the openness of 23 software projects</a>.
They defined and used the following 10 non-technical criteria:
</p>
<ol>
<li>Does the project use aggressive marketing methods?
(e.g.: make a Google search and compare the number of advertising pages with the number of technical / functional information pages)</li>
<li>What is the software license?</li>
<li>Are sources available?</li>
<li>Is the version control (CVS, etc.) repository readable by anyone?</li>
<li>Are there public archives of mailing lists?</li>
<li>Is the bug tracker publicly accessible?</li>
<li>Are external contributions welcome?</li>
<li>Is the project based on open standards and technologies, or on proprietary ones?</li>
<li>Is there a “developer-oriented” documentation (e.g. APIs) publicly available for anyone?</li>
<li>Misc. (e.g. decision making is not public, or essential features are implemented in proprietary plugins...).</li>
</ol>
<p>
How well does the Erlang/OTP project do according to these criteria?
Here is my <em>(highly subjective)</em> opinion:
</p>
<ol>
<li>OK:
The Erlang/OTP community is essentially a technical community.
Ericsson does not do aggressive marketing.</li>
<li>OK:
The license (<a href="http://www.erlang.org/EPLICENSE"><acronym title="Erlang Public License">EPL</acronym></a>) is a <a href="http://www.gnu.org/licenses/licenses.html#WhatIsCopyleft">copyleft</a> Free Software license.</li>
<li>OK:
Yes, <a href="http://www.erlang.org/download.html">all sources are available</a>.</li>
<li><em>NOT OK:</em>
There is no way to access the current development code, although <a href="http://www.erlang.org/download/snapshots/">snapshots</a> are published more or less regularly between releases.</li>
<li>OK:
Yes, <a href="http://www.erlang.org/ml-archive/erlang-questions/">mailing lists archives are public</a>.</li>
<li><em>NOT OK:</em>
There is no public bug tracker.
For bugs reported by external contributors, though, the <a href="http://www.erlang.org/ml-archive/erlang-bugs/">erlang-bugs mailing list archives</a> may be considered as sort of a bug tracker.</li>
<li>OK:
Yes, contributions are welcome.</li>
<li>OK:
Yes, Erlang/OTP uses a lot of open standards: ASN.1, SNMP, etc.</li>
<li><em>NOT OK:</em>
Yes and no. All public libraries and APIs meant to be used by developers are very well documented.
But the interpreter internals lack documentation.
For instance, where to find information about the implementation of the garbage collector?</li>
<li>OK</li>
</ol>
<p>
Result: Erlang/OTP's development process is only <em>“70% open”</em>.
I <em>really</em> miss access to the repository and to the bug tracker, and I also miss documentation about the interpreter internals.
</p>
</div>
</content>

</entry>

</feed>
