Learning go

I have started to learn go, Google’s system language. I really like it. I appreciate these features in particular:

  1. It is truly cross-platform, in par with java
  2. It has a huge standard library, again like java’s but without the GUI stuff
  3. It compiles to standalone executables that include the runtime! Imagine a JAR file that would carry a little JVM with it. No need to “install go” on a deployment machine!

In terms of design, it takes a little bit of time to get used to. But on the whole it is fairly easy and straightforward. I have a good knowledge of C, java, lua and bash and I had no problem to adapt to go.

Highly recommended!

How to build Xerial’s sqlite JDBC driver on Alpine Linux

These are the steps I took to build the sqlite JDBC driver so that it works on a musl-based Linux distro, namely Alpine Linux.

  1. Install a couple of dependencies:
    # apk update && apk upgrade
    # apk add git gcc make openjdk8 maven
    # apk add perl curl unzip bash musl-dev
  2. Set up JAVA_HOME:
    # export JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk
  3. Clone sqlite-jdbc repository:
    # git clone https://github.com/xerial/sqlite-jdbc.git
  4. Build the shared object library and the JNI bindings:
    # cd sqlite-jdbc
    # make jni-header native
  5. Build the JAR (some tests don’t pass, you have to skip them):
    # mvn -Dmaven.test.skip=true package
  6. The jar that is produced is in the target directory:
    # ls target/sqlite-jdbc*
    target/sqlite-jdbc-3.16.2-SNAPSHOT.jar
  7. To use it in a gradle build, mkdir a lib directory in your gradle project, copy into it the jar that was built as above and add the following compile line to build.gradle:
    compile fileTree(dir: 'lib', include: '**/*.jar')

First glitch with musl

I have been using alpine linux images on docker for some time and until today, I have never encountered any problem.

What I am facing today is due to musl, the excellent glibc alternative used by alpine to keep the system very compact.

I have started to use sqlite as backend for simple lua applications and I liked it so much that I am now using it for my java/spring project as well.

To talk to it, I use the following JDBC driver: https://github.com/xerial/sqlite-jdbc 

This driver is very efficient because it embeds a compiled version of the sqlite C library into its jar. So far so good, they provide shared libs for all operating systems and processors: from Windows 32bit to Linux ARMv7, MacOSX etc.

Even though the Linux libs cover all major processor architectures (Inter 32bit or 64bit and different ARM variants), they have something in common: they are compiled against glibc!

So this driver doesn’t work by default on alpine linux.

I have at least two solutions:

  1. Build it by hand (so I cannot draw it automatically from maven central)
  2. Use its pure java implementation (but then I sacrifice the nice performance offered by the compiled lib)

Anyway, this is not a showstopper for me using sqlite in Java, but it makes things a little bit more complicated.

lua: print in colour

This a short memo on how to print in colour in lua.

Codes:

  • Red: 31
  • Green: 32
  • Yellow: 33
  • Blue: 34

Example, print “hello” in red:

lua -e 'print(string.format("27[%dm%s27[0m", 31, "hello"))'

Méfiance

J’éprouve la même méfiance pour ceux qui disent “c’était mieux hier” que pour ceux qui disent “ce sera mieux demain” …

« Ils »

Ils nous ont imposé leur dieu unique, leur pulsion de mort et leur morale faite de péché et de haine de soi.

Ils nous ont dit que nous ne parlions qu’un patois ridicule et ils nous imposé leur langue.

Ils nous ont fait faire des révolutions qui n’ont rien changé, surtout pas la nature humaine.

Ils nous ont fait tuer à Verdun en nous disant que c’était pour la patrie, pas pour les marchands et les banquiers, les égos surdimensionnés de leurs dirigeants corrompus. Ensuite, ils nous ont fait tuer dans les déserts d’Afrique ou les rizières d’Indochine, toujours pour les mêmes raisons.

Ils nous ont fait quitter nos vertes campagnes pour de grandes décharges d’ordures, ce qu’ils appellent « des villes ». Ils nous ont forcé à y vivre dans des petites boites bruyantes et puantes et l’on doit s’y déplacer dans des wagons à bestiaux souterrains.

Ils nous font travailler comme des esclaves, en attendant qu’un miséreux du Tiers-Monde puisse nous remplacer mais dès qu’ils le peuvent, ils remplacent le miséreux par une machine.

Ils nous imposent la marchandisation intégrale et l’abrutissement généralisé, la soumission intégrale au progrès, à la télévision, à l’argent. Ils font passer cette pilule en nous gavant comme des porcs, en nous abreuvant de médiocrité et de pornographie.

Ils nous entretiennent dans une peur artificielle et permanente. On a peur des gens dans la rue, on a peur de ce qu’on mange, de ce qu’on lit. On a peur pour nos enfants, pour nos économies. On ne peut pas faire un achat sans se demander : « comment est-ce qu’ils sont en train d’essayer de me baiser ? »

Bref, si quelqu’un sait à la fin qui est ce « ils », dites-le moi. Je lui défonce la gueule !

crosh customisation

On a chromebook, one can customise the terminal as follows. This is very handy used in conjunction with CLI crouton, to have a nice command line.

  • Open the command line: CtrlAltT
  • Open the Javascript console: CtrlShiftJ
  • Enter a setting by typing: term_.prefs_.set(‘key’, ‘value’);

    Possible keys with examples:

  • Disable audible bell:
    > term_.prefs_.set(‘audible-bell-sound’, ”);
  • Hide scrollbar:
    term_.prefs_.set(‘scrollbar-visible’, false);
  • Set background to solarized dark:
    > term_.prefs_.set(‘background-color’, “white”);
  • Set foreground to solarized dark:
    > term_.prefs_.set(‘foreground-color’, “black”);
  • Change font size permanently for all terminals:
    > term_.prefs_.set(‘font-size’, 20);
  • Change font size as one-off for current terminal:
    Ctrl+ or Ctrl
  • If you screw up and you want to start again:
    > term_.prefs_.resetAll();

Useful snippets ready to copy/paste:

Solarized Light colors:

console.log("Solarized Light");
term_.prefs_.set('background-color', "#fdf6e3");
term_.prefs_.set('foreground-color', '#586e75');

Solarized Dark colors:

console.log("Solarized Dark");
term_.prefs_.set('background-color', "#002b36");
term_.prefs_.set('foreground-color', '#93a1a1');

No scrollbar, no bell, decent font size:

console.log("Lyderic's defaults");
term_.prefs_.set('audible-bell-sound', '');
term_.prefs_.set('scrollbar-visible', false);
term_.prefs_.set('font-size', 20);

You can find additional information on the crosh FAQ page.

Il n’y a plus de société

Il n’est pas possible d’avoir un projet de société tout simplement parce qu’il n’y a plus de société !

Il n’y a plus de classes sociales, que des classes marchandes. Seul l’épaisseur du compte en banque différencie maintenant le riche du pauvre. Leurs inspirations sont les mêmes : consommation de gadgets, nourriture et sexe. Il faut de moins en moins d’argent pour se former l’esprit, les livres ne coûtent presque plus rien, les bibliothèques publiques sont gratuites, internet fourmille de vidéos et de podcasts sur mille sujets. Les pauvres peuvent maintenant avoir accès au même niveau intellectuel que les riches.

Et pourtant, on voit l’inverse se produire : le riche bourgeois qui hier posait dans sa bibliothèque et envoyait son fils « faire ses humanités » se ne se distingue maintenant du pauvre que par la nouveauté de son iPhone ou la destination de son lieu de vacances. Quant à son fils, il fera la fierté paternelle non pas en sachant réciter la bible en latin tel un Julien Sorel, mais en sachant « gérer une entreprise », une tâche qui nécessite d’être plus proche intellectuellement du père Sorel que de son fils.

La seule aspiration qu’ont les pauvres, semble-t-il, c’est de s’enrichir matériellement. Comment ? Eh bien comme le font les riches depuis toujours, à savoir : « tous les coups sont permis, ne vous faites pas gauler, surtout. »

Le mot « élites » est devenu synonyme de « riches ». Plus d’élites intellectuelles, scientifiques, artistiques. Écrivains, chercheurs, peintres, cinéastes, compositeurs… toute personne dont l’ambition n’est pas l’enrichissement matériel rapide est suspect. Écris-tu un livre ? On ne te souhaitera pas d’être beaucoup lu, mais d’en vendre beaucoup d’exemplaires, ce n’est pas la même chose.

Ce constat est fait cent fois par jour depuis des années par des intellectuels aussi divers que Jean-Claude Michéa, Alain de Benoist, Marcel Gauchet, Jacques Julliard, Alain Finkielkraut, Natacha Polony, Michel Onfray etc.

Peut-être internet permettra-t-il au prochain grand dictateur totalitaire d’arriver à accomplir ce que ni les papes, ni Hitler, ni Staline ne sont parvenus à faire. Mais en attendant, on sait qu’on ne peut pas changer l’homme. Et comme il n’y a plus de société, que des individus, on ne peut pas changer la société. Alors, que faire ?

C’est ce à quoi je réfléchis en ce moment…