fOSSa 2010, j’y étais

fOSSa 2010

La deuxième édition de fOSSa – Free Open Source Software for Academia – s’est tenue à Grenoble ces 8, 9 et 10 novembre 2010. Co-organisée par l’INRIA Grenoble – Rhône-Alpes et l’EMSI Grenoble (Grenoble Ecole de Management), cette manifestation a accueillie des acteurs majeurs du logiciel libre et de l’open-source.

Pour ma part, je n’ai pu participer qu’aux conférences de ce mercredi 10 novembre:

  • Community over code, par Ross Gardler, VP de Apache Software Fondation.
  • Community anti-Patterns, par Dave Neary, Consultant freelance et contributeur Gnome.
  • Successful community-development practices, par Ralph Mueller, porte-parole de la fondation Eclipse.
  • Arduino – mouth to mouth open hardware, par David Cuartielles, membre de l’équipe leader du projet Arduino.

J’ai fait un petit extra avec une présentation de Haiku par François Revol, developpeur Haiku.

Pour résumer, ces conférences sont de bonnes occasions d’avoir en face de soi des personnes influentes dans le domaine de l’open-source et du logiciel libre. Cela permet de se plonger dans le « bouillon » de ces communautés, et c’est lors de conférences comme celles-ci que ces communautés ont à mon avis tout leur sens : l’occasion de discuter, d’échanger et partager entre elles, dans un environnement qui leur est complètement dédié, et ouvert à quiconque s’intéresse de prés ou de loin au mouvement « open-source ».

Ces conférences prouvent aussi que l’open-source n’est plus seulement une alternative, c’est avant tout un modèle de collaboration et d’innovation, dont les communautés sont la pierre angulaire. Sans elles, l’open-source et le logiciel libre ne seraient pas viables, avec elles, les autres modèles de développement ne peuvent rivaliser.

Pour terminer, une exemple chiffré pris lors de la conférence:
Eclipse Helios, aujourd’hui c’est : 39 projets, 490 Committers, 33 millions de lignes de code…

Bref, le fOSSa, c’est un des « events » sur l’open-souce et le logiciel libre, très bien organisé avec des intervenants qui valent le déplacement !

Le journal France 3 Grenoble du 08/11/2010 en parle ici, merci à François pour la mise en ligne.

Détacher une commande à l’aide de ‘nohup’

gnome-terminal-icon

Ceux qui ont l’habitude d’utiliser la ligne de commande sous GNU/Linux savent que l’on peut lancer ses applications (navigateur, traitement de texte, petit script perso) tout en les détachants du terminal qui les à lancé, afin de pouvoir garder la main afin de saisir d’autres commandes.
Ceci se fait à l’aide du caractère ‘&‘, par exemple:

  $ mon_application &

Cependant, il arrive que l’on ferme le terminal par inadvertance, ou lorsque le timeout de connexion tombe alors que l’on était connecté à distance sur le terminal, pour avoir comme effet d’arrêter toutes les applications lancées à partir de ce terminal, suite à la déconnexion de notre utilisateur.

Pour remédier à ce problème, il existe la commande ‘nohup‘ qui permet au processus de rester actif même après la déconnexion de l’utilisateur.

 $ nohup mon_application &

Par défaut, cette commande à pour effet de créer un fichier de sortie appelé ‘nohup.out‘ contenant la sortie standard de la commande passée en paramètre. Ceci peut être problématique dans certains cas où le programme est lancé via un script, ce qui peut dans certains cas générer des fichiers de sortie très conséquents en taille mémoire.

On peut supprimer ce comportement en redirigeant tous les flux vers /dev/null, c’est à dire vers le ‘trou noir’ d’où rien ne ressort jamais :

$ nohup mon_application &>/dev/null &

Pour en savoir plus:
https://fr.wikipedia.org/wiki/Nohup

ant – Could not create task or type of type: for.

bug

Si vous avez l’erreur Could not create task or type of type: for. lors de l’utilisation de Ant sous eclipse, voici un moyen de resoudre ce problème.

Ant could not find the task or a class this task relies upon.

This is common and has a number of causes; the usual solutions are to read the manual pages then download and install needed JAR files, or fix the build file: – You have misspelt ‘for’. Fix: check your spelling. – The task needs an external JAR file to execute and this is not found at the right place in the classpath. Fix: check the documentation for dependencies. Fix: declare the task. – The task is an Ant optional task and the JAR file and/or libraries implementing the functionality were not found at the time you yourself built your installation of Ant from the Ant sources. Fix: Look in the ANT_HOME/lib for the ‘ant-‘ JAR corresponding to the task and make sure it contains more than merely a META-INF/MANIFEST.MF. If all it contains is the manifest, then rebuild Ant with the needed libraries present in ${ant.home}/lib/optional/ , or alternatively, download a pre-built release version from apache.org – The build file was written for a later version of Ant Fix: upgrade to at least the latest release version of Ant – The task is not an Ant core or optional task and needs to be declared using <taskdef>. – You are attempting to use a task defined using <presetdef> or <macrodef> but have spelt wrong or not defined it at the point of use

Remember that for JAR files to be visible to Ant tasks implemented in ANT_HOME/lib, the files must be in the same directory or on the classpath

Please neither file bug reports on this problem, nor email the Ant mailing lists, until all of these causes have been explored, as this is not an Ant bug.

Déjà, vérifiez que Ant est bien installé et dans quelle version :
dans une console, entrez :

 $ ant -version

ceci devrait vous renvoyer un résultat du type:

 Apache Ant version 1.6.5 compiled on June 2 2005

de même, allez consulter vos variables d’environnement pour le Home directory de Ant avec la commande :

 $ set

vous devriez trouver une ligne du type:

ANT_HOME=/usr/share/ant

Ensuite, il faut savoir que le support de la « boucle for » n’est pas incluse par défaut dans ant, mais que cette dernière est accessible par l’ajout d’une librairie complémentaire nommée ant-contrib.

Pour l’installer, aller sous votre gestionnaire de paquets et recherchez le mot ‘ant-contrib’, soit utilisez votre terminal en mode root et tapez (pour fedora) :

 # yum install ant-contrib

Une fois les nouveaux paquets telechargés, allez les associer aux ‘entries Ant’ d’eclipse. Donc sous eclipse, allez dans le menu Window->Preferences.
Ouvrez la catégorie ‘Ant’ et selectionnez le sous menu ‘Runtime’. Là, dans l’onglet ‘Classpath’, selectionner votre ‘Ant Home entries’ qui indique le chemin de Ant (peut être /usr/share/ant suivant où il est installé sous votre système).

Si vous developpez le menu, vous verrez toutes les librairies utilisées par Ant. A partir de là, appuyer sur le bouton ‘Add external jar’ et ajoutez le fichier ‘ant-contrib.jar’ à cette liste. validez.

Preferences Ant

A présent, dans le fichier build.xml du projet. Ajoutez juste ces quelques lignes au début de votre fichier :

 <taskdef resource="net/sf/antcontrib/antlib.xml">
<classpath>
<pathelement location="${ANT_HOME}/lib/ant-contrib.jar"/>
</classpath>
</taskdef>

Relancez le ‘Ant Build’ de votre projet et ça devrait marcher.

Richard Stallman et la révolution du logiciel libre

book

Voilà un « livre » qui m’a bien plu : Richard Stallman et la révolution du logiciel libre – Une biographie autorisée.

L’auteur du livre, Sam Williams, nous donne une vue de la personnalité de RMS, au travers de sa vie et son œuvre qui n’est autre que le « logiciel libre » et dont il est depuis toujours l’incarnation.

Je ne vais pas faire un résumé du livre, il y en a déjà tellement. Je donnerai juste mon bref avis:

C’est avant tout pour moi un bon retour aux sources avec le rappel des ces 4 libertés fondamentales du logiciel libre et de revenir sur ce qui a poussé à les établir : à savoir qu’au travers du mouvement du « logiciel libre », on défend plus que du logiciel, on défend une idéologie, celle de la liberté. La force de Stallman étant d’avoir réussi dés le début à voir le lien fondamental entre le logiciel et son but altruiste qui est de nous fournir notre propre liberté.

Ensuite, l’importance de parler de GNU/Linux et pas seulement de Linux (je n’ai d’ailleurs plus qu’à modifier ma bannière…), ainsi que d’éviter la confusion entre les termes open-source et logiciel libre, et le fait que libre n’est pas forcement gratuit.
Enfin, cela m’a poussé à me poser de nombreuses questions sur ma propre volonté à défendre la cause du « libre », et pour le coup à la renforcer.

C’est quelque part rassurant de savoir qu’à la tête de notre mouvement se trouve une personne aussi charismatique et exceptionnelle que Richard Stallman.

Vous pouvez donc librement télécharger ce livre au format numérique ici.

De plus, ce livre est publié sous la licence libre GNU Free Documentation License, c’est à dire qu’il peut être lu, modifié et distribué en accord avec la-dite licence.

Et comme dirait Richard, « Hackez bien » 😉

Pétition contre le rachat de MySQL par Oracle

Si comme moi, vous êtes inquiet du devenir de MySQL suite à son acquisition par Oracle, vous pouvez signer cette pétition.

Cette initiative lancée fin décembre 2009 par Michael Monty Widenius (créateur de MySQL) vise à demander à Oracle de céder MySQL afin d’accélérer la fusion avec Sun et d’éviter des conflits d’intérêts, et ainsi permettre à la base de données « libre » (licence GNU GPL) de continuer son développement.

Cette pétition rassemble déjà plus de 20 000 signatures et sera présentée à la commission européenne ainsi qu’à d’autres organes de régulation.
La Commission européenne devra rendre un avis sur cette acquisition le 27 janvier 2010.

Vous pouvez toujours prendre connaissance des 10 engagements d’Oracle (disponible seulement en anglais) concernant leur vision du futur pour MySQL.

lien:
https://www.helpmysql.org/fr/petition

Error 15 : passage difficile à Grub2 sur ubuntu 9.10

Je ne suis apparemment pas le seul à qui cela est arrivé lors du changement de version d’ubuntu : il s’agit de la version de grub utilisée lors du boot système. En effet, entre la version 9.04 et 9.10 d’ubuntu, grub est passé en grub-pc, ou plus communément appelé GRUB2.

Donc si au boot, ou plutôt au lancement de grub, vous vous retrouvez avec ce message :

GRUB Error 15.

Vous empêchant tout démarrage du système, ne paniquez pas ! une manip très simple permet de remettre GRUB en ordre, que je décris ci-dessous.

– redémarrer avec un live cd ubuntu (ou autre distribution) : histoire de pouvoir booter et monter un système Linux
– lancez un terminal (ou console) et entrez les commandes suivantes:

NB : remplacez sdaX par le numéro de partition ou de disque disponible sur votre système. La commande ‘sudo fdisk -l’ est là pour vous aider à trouver la partition Linux sur laquelle est installée votre ubuntu. Cherchez une ligne appelée ‘Linux’ et remplacez sdaX par celle qui vous est remontée avec la commande.

 sudo fdisk -l
sudo mount /dev/sdaX /mnt
sudo mount --bind /dev /mnt/dev
sudo chroot /mnt
apt-get install grub-pc
update-grub
grub-install /dev/sda

à parir de là, vous pouvez sortir en effectuant ctrl+D.

 sudo unmount /mnt/dev
sudo unmount /mnt

Redémarrez et vous devriez à présent être capable de booter correctement sur votre système Linux.

Faire cohabiter Ant 32bits avec Eclipse 64bits

Un petit billet en passant pour décrire un petit problème récent qui m’est arrivé avec ant sous mon eclipse et ou j’ai passé un petit moment à comprendre ce qu’il se passait.

En gros, si vous réussissez à compiler votre programme java avec ant en ligne de commande dans un terminal, et que vous effectuez cette même compilation avec ant intégré sous eclipse, et que vous ne voyez rien apparaître dans la console d’eclipse, pensez à vérifier les versions de JRE et JDK utilisé par eclipse, ainsi que celle de votre ant.

Dans mon cas, le problème provenait du fait qu’eclipse utilisait un JDK 1.6 par défaut en 64bits, alors que ma version de ant était en 32bits et que mon programme tournait d’ailleur avec une JVM 32bits.

Pour verifier chez vous, entrez la commande suivante:

 $ ant -diagnostics

et pour java, la commande:

 $ java -version

Vous devriez avoir pleins d’informations intéressantes sous cette forme:%%

– Ant diagnostics report –
Apache Ant version 1.6.5 compiled on June 2 2005


Implementation Version (JDK1.2+ only)

core tasks : 1.6.5
optional tasks : not available


System properties

java.runtime.name : Java(TM) 2 Runtime Environment, Standard Edition
sun.boot.library.path : /usr/java/jdk1.5.0_18/jre/lib/amd64
java.vm.version : 1.5.0_18-b02
ant.library.dir : /usr/share/ant/lib
java.vm.vendor : Sun Microsystems Inc.
java.vendor.url : https://java.sun.com/
path.separator : :
java.vm.name : Java HotSpot(TM) 64-Bit Server VM
file.encoding.pkg : sun.io
user.country : FR
sun.java.launcher : SUN_STANDARD
sun.os.patch.level : unknown
java.vm.specification.name : Java Virtual Machine Specification
user.dir : /home/ljames
java.runtime.version : 1.5.0_18-b02
java.awt.graphicsenv : sun.awt.X11GraphicsEnvironment
java.endorsed.dirs : /usr/java/jdk1.5.0_18/jre/lib/endorsed
os.arch : amd64
java.io.tmpdir : /tmp

java.vm.specification.vendor : Sun Microsystems Inc.
os.name : Linux
ant.home : /usr/share/ant
sun.jnu.encoding : UTF-8
java.library.path : /usr/java/jdk1.5.0_18/jre/lib/amd64/server:/usr/java/jdk1.5.0_18/jre/lib/amd64:/usr/java/jdk1.5.0_18/jre/../lib/amd64
java.specification.name : Java Platform API Specification
java.class.version : 49.0
sun.management.compiler : HotSpot 64-Bit Server Compiler
os.version : 2.6.27.24-170.2.68.fc10.x86_64

java.vm.specification.version : 1.0
sun.arch.data.model : 64
java.home : /usr/java/jdk1.5.0_18/jre
java.specification.vendor : Sun Microsystems Inc.
user.language : fr
java.vm.info : mixed mode
java.version : 1.5.0_18
java.ext.dirs : /usr/java/jdk1.5.0_18/jre/lib/ext
sun.boot.class.path : /usr/java/jdk1.5.0_18/jre/lib/rt.jar:/usr/java/jdk1.5.0_18/jre/lib/i18n.jar:/usr/java/jdk1.5.0_18/jre/lib/sunrsasign.jar:/usr/java/jdk1.5.0_18/jre/lib/jsse.jar:/usr/java/jdk1.5.0_18/jre/lib/jce.jar:/usr/java/jdk1.5.0_18/jre/lib/charsets.jar:/usr/java/jdk1.5.0_18/jre/classes

java version « 1.6.0_0 » OpenJDK Runtime Environment (IcedTea6 1.5) (fedora-18.b16.fc10-x86_64) OpenJDK 64-Bit Server VM (build 14.0-b15, mixed mode)

Pour résoudre ce problème de compatibilité, il suffit de dire à eclipse d’utiliser une version 32bits de la JVM :
Sous eclipse : menu windows->preferences
Partie Java -> compiler
Section Java Compliance: sélectionner 1.5 Compiler compliance level.

Preferences

Comme il est dit en bas de fenêtre:
« When selecting 1.5 compliance, make sure to have a compatible JRE installed and activated (currently 1.6) »

Ensuite aller sous partie Java -> Installed JREs et selectionner votre jdk en version 1.6x86_64 ou votre jdk1.5_18, l’important étant d’avoir un JDK compatible.

Installed-JREs

si ça peut servir à d’autres…

HADOPI, c’est pas bientôt fini ?

hadopi_fail

Voilà que la très controversée loi HADOPI refait parler d’elle ce jour même, à la surprise de tous avec cette nouvelle : le Conseil Constitutionnel censure la « riposte graduée ».

Qu’est-ce que cela signifie ? que le conseil constitutionnel, qui est la plus haute instance du système judiciaire français, estime que l’accès à Internet est un droit fondamental, qui ne peut être restreint que par un juge de l’autorité judiciaire, et non pas par une instance administrative non judiciaire comme l’est Hadopi.

Il stipule que ce projet de loi qui a été voté enfreint la déclaration des droits de l’homme de 1789 sur deux de ses articles:

  • l’article 11 : le pouvoir de « restreindre l’exercice, par toute personne, de son droit de s’exprimer et de communiquer librement » ne peut « incomber qu’au juge ».
  • l’article 5 : Il rappel qu’en France, c’est encore et toujours « la présomption d’innocence qui prime, et qu’il n’y a que la justice qui a le pouvoir de prononcer une sanction lorsqu’il est établi qu’il y a des téléchargements illégaux ».

Enfin, il conclut : « Le rôle de la Haute autorité (Hadopi) est d’avertir le téléchargeur qu’il a été repéré, mais pas de le sanctionner ».

Personnellement, je suis heureux de constater que nous disposons encore d’une justice indépendante dans notre pays qui protège les libertés individuelles garanties par notre Constitution, et que ce dernier rempart agit lorsque nos libertés individuelles sont menacées.

source : lemonde.fr

Tutoriel d’installation OpenGoo

opengoo_logo

C’est suite à l’excellent billet de Benjamin que j’ai installé OpenGoo, un logiciel libre de ‘Groupware‘ qui permet de travailler à plusieurs à distance sur une suite de logiciels bureautique intégrés : par exemple, il est possible de gérer ses utilisateurs afin qu’ils puissent partager leurs fichiers, gérer leurs tâches, les mettre en commun et enregistrer leurs travaux sur le serveur.

La présentation ayant été faite par Benjamin, vous pouvez même faire un essai directement sur la site d’OpenGoo avec cette demo, je ne m’attarderai ici que sur la partie installation du logiciel. Il n’y a rien de compliqué mais je pense que pour les plus débutants, cela peut permettre de les guider sur les quelques étapes ‘techniques’ que nécessite l’installation d’un tel logiciel ou pour ceux dont l’installateur ‘in english‘ peut rebuter (un package français est toutefois disponible en se créant un compte sur le forum OpenGoo).

les ingrédients

Pour éviter tout problème, il faut au préalable avoir préparé le terrain. il vous faudra donc:

  • Récupérer le logiciel OpenGoo que vous trouverez ici : comme Benjamin, je vous conseil d’utiliser la version 1.4 RC, bien que ce soit une beta, je n’ai pas découvert de problème suite à son utilisation.
  • Avoir sous la main votre logiciel FTP favori : Filezilla, FireFTP pour firefox, ou autres…
  • Assurez vous que votre serveur distant supporte PHP5, une base de donnée MySQL avec support InnoDB et d’environ 20Mo d’espace libre pour être à l’aise.
  • Les accès, mots de passe d’administration de vos bases de données que vous utilisez chez votre hébergeur.

la mise en place

  1. Il est préférable de créer une base de donnée MySQL dédiée à OpenGoo dés à présent sur votre serveur, pour cela, munissez vous du phpMyAdmin de votre fournisseur pour en créer une et récupérer toutes les informations suite à sa création, elle vous seront demandées lors de l’installation proprement dite d’OpenGoo.
  2. Décompresser le fichier opengoo_XXX.zip que vous avez récupéré sur votre disque local, et copier le répertoire opengoo sur votre serveur via FTP sous un directory de votre choix : exemple, https://www.monsite.com/une_directory/
  3. Vous pouvez à présent aller boire un café car le transfert devrait durer un ‘certain temps’ 😉
  4. Une fois la copie effectuée, vérifiez que vous disposez des droits d’accès lecture/écriture sur le répertoire, sous-répertoire et fichiers que vous venez de copier sur le serveur.

l’installation d’OpenGoo

Voilà, normalement tout est en place pour qu’avec votre navigateur, vous puissiez accéder à l’interface d’installation d’OpenGoo en entrant l’adresse : https://www.monsite.com/une_directory/opengoo/public/install

OpenGoo_Install1

Un message de bienvenue plus loin, un contrôle de votre environnement devrait vous indiquer que tout est OK sinon il faudra étudier le message d’erreur et traiter en conséquence…

OpenGoo_Install2

L’étape de configuration de la base de donnée : ici, remplissez les champs vides avec les informations qui vous on permis de créer la base de donnée OpenGoo : pensez à changer localhost par le nom de votre espace hébergé.

OpenGoo_Install3

Si tout c’est bien déroulé, un message de « Success! » devrait apparaitre vous indiquant que vous avez tué le boss ! avec un petit résumé des opérations effectuées.

OpenGoo_Install4

Ne reste plus qu’à créer votre utilisateur admin. Pensez à sauvegarder ces informations car elle vous seront précieuses pour créer d’autres utilisateurs, voir tout simplement vous connecter en administrateur sous opengoo…

OpenGoo_Install5

c’est fini ! à vous de découvrir et d’administrer ce merveilleux outil qu’est OpenGoo opensource et agrandir la communauté de ses utilisateurs…

HADOPI votée

ça y est, la loi Hadopi a finalement été voté après de multiples péripéties et avec déjà quelques victimes ! j’ai beau être aussi en colère que Tristan Nitot, je ne m’étendrais pas sur le sujet car aujourd’hui c’est fait, j’ai déjà dis ce que j’en pensais, mais il faut savoir passer à autre chose.

Je voudrais juste clôturer cet Hadopi avec cette image :

demantelement-LeFrance-Inde

Il s’agit du paquebot France, autrefois fierté de l’état français parcourant les mers du monde, aujourd’hui échoué et démantelé en Inde…
Je pense que ça résume bien mon état d’esprit du moment et le lien que je peux en faire avec cette loi Hadopi.

En tout cas, m’est avis que toute cette histoire ne va pas en rester là, pour rappel, la « piraterie » sur mer existe encore au XXIeme siècle, avec des techniques différentes mais toujours le même principe.

Mise à jour :
Juste pour mettre un lien sur ce qui nous attend après cette loi, ça s’appelle LOPSI et vous pourrait suivre son actu ici. Rien que du bonheur…