Florent Clairambault

Archives Posts

Cassandra on droid.io

droid.io is an other travis clone. I gave it a try to execute some automated tests on top of cassandra. Unfortunately it doesn’t support cassandra out of the box. But adding support for it is in fact quite easy.

Let’s GO

Why should you spend time learning go ?

To all my dear pure C developers

I’ve spent quite some time integrating a lot of C code from different people to turn it into production-ready software. It is surprisingly interesting, but the first few days are usually quite painful for these reasons:

Accelerating software/product development through continuous integration

The developer are the ones who build thing that run by themselves (which they should be proud of, they are makers). But they often forget about automatizing the build process. Some people like to do the same task over and over, if these people happen to be developers, they should be fired. Frequently following the same tasks to reach a goal is something that a computer can do, that’s what they were invented for.

OpenSSL CA certificates indexation

OpenSSL can use a CAPath to search for certificates to index, but you could overlook how it actually searches for them. You can specify a CAPath in openSSL by using the function SSL_CTX_load_verify_locations, but it won’t work as is. As described in this page, it will need the certificates to be rehashed with the “c_rehash .” command. Except on some environment like many embedded devices (the one you put busybox on), you can’t use it because it’s way too heavy (or not worth installing) for that kind of environment.

Cassandra CQL3 internal data structure

I’m a huge fan of cassandra, I’ve been playing with it since 0.7 and I’ve never stopped using it. It would say it’s most amazing features are: Always working and simple replication + predictable performances. I was very happy when it went from a key-value store to a well structured database with CQL. With CQL you can focus on your data, and less on how you should organize your own structure to handle it properly.

Pieter Hintjens is a smart guy

I’m very interested by everything around internet of things technologies (M2M). And the components I like to follow closely are the distributed databases which allow to make timeseries without single point of failures like cassandra and hbase and the message broker like RabbitMQ and ZeroMQ. This little video isn’t really about ZeroMQ, it’s more about how build a community around a project. Personal creativity is great thing, we can all experience it some way or an other.

You can do any kind of project with any language

Our language helps us express our ideas and emotions. Computer science languages help us build things following our ideas. There are hundreds of computer science languages currently available to help do pretty much any kind of work. They were all built because (at least) one person once thought “this language isn’t good enough”. I often like to compare the capabilities of languages like C/C++, C#(.Net)/java, scala/python/ruby, javascript/coffeescript, etc. And I’m always amazed how the smallest changes that were brought to existing languages allowed to gain in efficiency and clarity.

Deploying your maven web apps on glassfish with jenkins

Simple deployment If your jenkins server is installed on the same host as the glassfish server it’s quite simple. You just have to let maven do its thing and then add this shell command: /usr/local/glassfish/bin/asadmin --echo=true --host=localhost --port=4848 --user=admin --passwordfile=/secure/place/for/passwords/domain1_password --secure=false deploy --force=true --name=myproject --contextroot=/myproject target/*.war The /secure/place/for/passwords/domain1_password file should contain this: AS_ADMIN_PASSWORD=the_password Deploying different versions With parametrized build you can go a little further and decide, for instance, if you want to deploy the current version as the production one or not.

Debconf issue

If you have this: debconf: DbDriver "config": mkdir :No such file or directory You might just have deleted /var/cache/debconf. Solving this is easy: mkdir -f /var/cache/debconf apt-get -f install