Add your blog

To have your blog added contact pollux AT inl DOT fr.

Planet EdenWall Guidelines

The content aggregated at Planet EdenWall is the opinions of its authors, but the sum of that content gives an impression of the project. Please keep in mind the following guidelines for your blog content and keep the content inside the correct code of conduct]. The EdenWall project reserves the right to remove an inappropriate blog from the Planet. If that happens multiple times, the Community Working Group can be asked to consider what needs to happen to get your blog aggregated again.

Microblogging from EdenWall

mars 05, 2010

Emmanuel Garette (gnunux)

Noooooveauté

Voici la quatrième version de mon script nootv.py (j'espère la dernière !).

Nootv.py est toujours un script permettant d'accéder aux contenus du site de la chaine de TV local Vootv avec des logiciels libres.

La grosse nouveauté de cette version est l'utilisation d'Elixir et d'une base de donnée Sqlite pour sauvegarder le titre des émissions et des programmes en locale.

Lorsqu'on lance l'application, nous voyons maintenant la liste les programmes ajoutés depuis la dernière consultation (attention, le temps de téléchargement est maintenant beaucoup plus long ... parce qu'il faut que je parcours un ensemble des pages du site avant de créer ce menu) :

# ./nootv.py
Téléchargement ...

Nouveaux programmes
  144 : Le Grand Rendez-VOO du 4 Mars 2010 partie 2 (Le Grand Rendez-Voo)
  145 : Le Grand Rendez-VOO du 4 Mars 2010 partie 1 (Le Grand Rendez-Voo)
vide pour voir les anciennes émissions
>>> 

Soit je tape l'ID de l'émission voulu (par exemple 144) soit je fais "entrée" pour retrouver l'ancien menu.

Emissions
  1 : Grand Tourisme
  2 : L'Agenda quotidien
  3 : Le Grand Rendez-Voo
  4 : Sports
  5 : Météo
  6 : Associez-voo
  7 : Watt's in
  8 : Le Rendez-vous Politique
  9 : L'Atelier des Chefs
vide pour quitter
>>> 

Si je ne tape pas d'ID, je quitte l'application, sinon, j'accède aux programmes de l'émission choisit :

/// Programmes

 138 : Atelier des chefs n°2 Maquereau de David Zudas (L'Atelier des Chefs)
 139 : Atelier des chefs n°1 Délice Maltée (L'Atelier des Chefs)
 140 : Atelier des chefs n°4 Verrines chocolat et suprèmes de pamplemousse de Franck Pourrier (L'Atelier des Chefs)
 141 : Atelier des chefs n°5 Gambos et tofu par  fumi mitera (L'Atelier des Chefs)
 142 : Atelier des chefs n°3 Croustillant de veau de Cyril Riandet (L'Atelier des Chefs)
 143 : Atelier des chefs n°6 Boeuf bourguignon (L'Atelier des Chefs)

vide pour retour aux émissions

>>

///

Si aucun programme ne m'intéresse, je n'ai qu'a taper entrée pour revenir à la liste des émissions. Et ainsi de suite.

Et oui, la seconde nouveauté c'est que je ne suis pas obligé de lancer plusieurs fois l'application pour accéder à plusieurs contenus.

N'hésitez pas à laisser un commentaire pour des éventuelles suggestions ou autres.

Sinon, pour récupérer le script, c'est toujours : http://gitorious.org/nootv/nootv/blobs/raw/master/nootv.py

21:09, vendredi, 05 mars UTC

février 25, 2010

Victor Stinner (haypo)

Ce qui m'énerve dans les pubs télévisées

Petit billet d'humeur sur ce qui m'énerve dans les publicités à la télévision.

Bandeau de texte illisible

Les pubs vantent souvent une offre précise. Sauf que les offres sont limitées par de nombreuses conditions qu'il est obligatoire d'afficher (si ce n'était pas le cas, les publicitaires s'en passeraient volontiers). Souvent, un bandeau de texte défile en bas pendant la pub. Problème : certains publicitaires malhonnêtes font en sorte que ce texte soit illisible. Il y a plusieurs manière de faire, comme utiliser un police très fine ou bien faire défiler le texte trop vite. En ce moment, j'ai vu encore pire :

Si on regarde le texte de plus près :

On pense à un problème dans sa télévision ou qu'on a besoin de lunette. Bah non, c'est uniquement le bandeau de texte en bas qui est flou ! Le texte en grand et la voiture sont nets. Pour obtenir cette image, j'ai utilisé le logiciel VLC en regardant la télévision via le multiposte Free. J'ai coché l'option « Vidéo > Désentrelacement > Moyenne », et j'ai pris une capture d'écran avec KSnapshot. Je précise tout, car je n'ai pas réussi à trouver ces publicités sur Internet. Sur Youtube ou Dailymotion, j'ai trouvé les publicités, mais... sans les bandeaux de texte défilant.

Fiat n'est bien sûr pas le seul à utiliser du texte flou. La MAIF, la pub pour la Renault Mégane DCI (coupé 2009) ou encore la Citroën C4 Picasso utilisent aussi cette astuce (arnaque ?). Et il y en a sûrement bien d'autres.

Volume sonore

La plupart des chaînes augmentent le volume sonore lors de l'interruption publicitaire. Ça a bien sûr pour effet d'éveiller mon attention, mais ça m'énerve car à chaque fois je dois baisser le volume.

Côté possitif : on peut utiliser cette singularité pour détecter le début et la fin de la publicité. Cette astuce a été utilisée sur les boitiers TiVo aux États-Unis (fonction « commercial-skip »). D'ailleurs, aux États-Unis, la quantité de publicité à la télévision est incomparable avec ce qu'on a en France. Mais ce n'est pas une excuse pour ne pas râler !

Divers

Il y a d'autres trucs qui m'horripilent. Les pubs utilisant une animation 3D pour en mettre plein la vue, mais avec une animation complètement bidon (bien loin de la réalité). Exemples typiques : action de la brosse à dent, d'un dentifrice, du shampoing ou d'une lessive.

Autre horreur : la mode des publicités en chanson. Votre banquier ou votre assureur se met à chanter sur un air connu... sauf que c'est une reprise. Le pire étant un slogan repris régulièrement pendant plusieurs mois comme la publicité « C'est la MAAF ». Raaaaah !

Il y a aussi les publicités en deux parties. La plus ridicule étant la même publicité (ou deux versions très proches) diffusée deux fois dans un intervalle très court (genre deux ou trois minutes). Sinon il y a une première partie qui crée le suspense, puis la 2e partie qui révèle la nouvelle (décevante bien sûr).

Pour finir, sachez que les agences de publicité ont leur QG : Syndicat National de la Publicité TéléVisée (SNPTV). Si vous en avez ras la pub, c'est le moment de relire ou revoir 99 francs ;-)

01:15, jeudi, 25 février UTC

Victor Stinner (haypo)

Partager une imprimante avec CUPS

Je partage mon imprimante USB entre deux ou trois ordinateurs (selon mon humeur). Chaque fois que je dois (re)configurer le serveur qui la partage ou un poste client, je m'arrache les cheveux. Pourtant, c'est simple, mais j'oublie toujours une étape importante. Voici donc une petite liste récapitulative, sûrement incomplète et imprécise, pour partager une imprimante sous Linux.

Serveur

Installation l'imprimante

Pour l'installation, l'interface web de CUPS (http://localhost:631) est bien foutue et inclut même de la documentation ! Sinon il existe des assistants graphiques qui fonctionnent pas trop mal. Bref, rien de spécial à dire pour cette étape.

Partager l'imprimante

Il faut bien marquer l'imprimante comme étant partagée. Par exemple avec l'outil Ubuntu (ou Gnome ? system-config-printer.py), il faut faire un clic droit sur l'imprimante et s'assurer que « [x] Partagée » soit coché.

Partager le serveur d'impression

Il faut que le serveur CUPS soit accessible sur le réseau local. Pour cela, il faut « Publier les imprimantes partagées connectées à ce système ».

Après il se peut qu'il y ait des soucis de permissions. Mais alors là, bonne chance :-)

Poste client

cups-bsd

Sous Debian, s'assurer que c'est le paquet cups-bsd (et non lpr) qui est utilisé. lpr pose des problèmes, notamment avec Kpdf.

/etc/cups/client.conf

Il n'y a pas besoin de serveur CUPS (enfin, j'ai jamais trop su... mais je crois pas). Il suffit d'une seule ligne dans le fichier /etc/cups/client.conf :

ServerName lisa

où lisa est le nom du serveur.

Test en ligne de commande

Le programme lpq permet de voir la liste des tâches d'impression :

$ lpq
HP_LaserJet_P2015_Series est prêt
aucune entrée

Ça marche !

Configurer KDE

Avec KDE 3.x, assurez-vous d'utiliser le « pilote » CUPS et non pas LPD :

  • Allez dans le menu : K > Configuration > Périphériques > Imprimante
  • Système d'impression : choisissez CUPS

Utilisez du laser !

Mon imprimante est une HP LaserJet 2015 noir & blanc branchée sur USB. Elle m'a coûté cher (environ 300€ je crois), mais depuis que je l'ai (2 ans je crois ?) je n'ai jamais changé le toner. Elle est très rapide : la première page sort en 10 secondes maxi et les suivantes se suivent directement sans interruption. En plus, le papier est chaud et j'aime bien l'odeur. Par contre, parfois elle clignote quand elle est ronchon :-) Je lui tripote les boutons et ça la calme. Ah oui, elle s'installe sans aucun problème sous Linux.

Si comme moi vous n'imprimez que du texte sans schéma (article de recherche, facture, recette de cuisine, etc.) : je vous conseille d'investir dans du laser noir et blanc plutôt qu'une imprimante jet d'encre droguée qui réclame sans arrêt ses doses à 30€ (quand c'est pas 50€ ou plus !). Je pense que les constructeurs vendent à perte, mais se rattrapent très vite sur les consommables. Et si possible, ils mettent des verrous matériels ou logiciels pour empêcher que vous achetiez des cartouches concurrentes ou que vous rechargiez vos cartouches à la main (avec une seringue, opération rigolote).

00:13, jeudi, 25 février UTC

février 24, 2010

Victor Stinner (haypo)

Outils Xorg en ligne de commande

Xorg est fourni avec une large palette d'outils en ligne de commandes bien pratique pour dépanner un serveur Xorg malade. Voici une courte liste des commandes que j'ai déjà utilisées. Initialement, j'ai écrit ce billet juste pour me souvenir de xdpyinfo :-)

Clavier

Configuration la répétition du clavier :

 xset r rate 500 30

Changer la disposition du clavier. Passer en QWERTY :

setxkbmap us

Changer la disposition du clavier. Passer en AZERTY (français) avec la variante latin9 :

setxkbmap fr -variant latin9

Définir les touches Propriété Windows et Menu Windows droit comme touches de composition :

setxkbmap -option compose:menu,compose:rwin

Écran

Afficher les écrans connectés, les résolutions disponibles et la résolution courante :

xrandr

Utiliser l'écran externe ("VGA") plutôt que l'écran interne ("LVDS") d'un ordinateur portable :

xrandr --output VGA --auto --output LVDS --off

Lire la taille en millimètres et la résolution en points par pouce (PPP, ou DPI en anglais). Chercher « screen #0: » dans la sortie de la commande :

xdpyinfo

Exemple :

...
screen #0:
  dimensions:    1280x1024 pixels (294x235 millimeters)
  resolution:    111x111 dots per inch

Désactiver l'économiseur d'écran :

xset s off

Divers

Application affichant les événements claviers et soucis. Peut par exemple server à trouver le code d'une touche (keycode). Voir mon article sur la touche compose de mon article Touche compose) qui en parle.

xev

Générer un fichier de configuration Xorg dans le dossier courant (créer un fichier « xorg.conf.new ») :

Xorg -configure

Si Xorg est déjà en foncitonnement, utiliser le second display :

Xorg :1 -configure

Autoriser l'utilisateur toto à se connecter à votre serveur X :

xhost +toto

Puis xhost -toto pour retirer la permission. Désactiver les bips du buzzer :

xset -b

23:31, mercredi, 24 février UTC

février 21, 2010

Emmanuel Garette (gnunux)

Noo, voo, ils ...

Voici la troisième version de nootv.py.

En réalité le premier menu (la sélection du jour) n'était pas utile. En effet, le jour de la semaine n'a aucun intérêt, on tombe régulièrement sur des rediffusions. Cette nouvelle version récupère l'ensemble des émissions de la semaine et les affichent directement.

La version des émissions étant listé par jour de diffusion, c'est suffisant.

Exemple ... :

L'émission :
   1 : Associez-voo
   2 : Grand Tourisme
   3 : L'Agenda quotidien
   4 : L'Atelier des Chefs
   5 : Le Grand Rendez-Voo
   6 : Le Rendez-vous Politique
   7 : Météo
   8 : Sports
   9 : Watt's in
>>>(1) 
9

Version de l'émission :
   1 : Watt's in du 10 Décembre 2009
   2 : Watt's in du 19 novembre 2009
   3 : watt's in 17 Décembre 2009
   4 : watt's in 8Janvier 2010
>>>(4) 

Enfin, j'ai mis la licence "qui va bien" dans le script, à savoir la licence libre "DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE".

Pour récupérer le script ... : http://gitorious.org/nootv/nootv/blobs/raw/master/nootv.py

Bon Vootv.

22:08, dimanche, 21 février UTC

Emmanuel Garette (gnunux)

Pourquoi je n'irais pas à LibrexpOS 3

Ce billet est écrit à titre personnel et ne représente pas l'association COAGUL.

Je viens de prendre connaissance d'un courriel envoyé par, sauf erreur de ma part, le vice président de Ubuntu-dijon.

Ce courriel me fait changer d'avis sur l'événement Librexpos 3. Alors que j'avais décidé, initialement d'y participer, je viens de changer radicalement d'avis et décidé ... de rester chez moi (ou pas).

Moi j'ai pas envie de reproduire le coup du premier LibrExpOs ou ils sont arrivés, excusez moi de l'expression 'comme un éléphant dans un magasin de porcelaine' à 11h, au courant de rien, alors que tout était déjà installé et commencé.

Réinventer l'histoire de cette façon ... c'est un peu fort !

J'étais personnellement présent à l'heure pour tenir mon stand. Il était prêt à l'heure. Presque rien n'était installé en tout cas autour de moi. J'estime ne pas être arrivé comme "comme un éléphant".

De même, Tony et Jibux était présent. Ils sont arrivés pratiquement en même temps que moi. A l'heure.

Je devais et j'ai tenu le stand sur les "données libres". Tony devait installer le stand de COAGUL et Jibux, si mes souvenir sont bons, filmait l'événement.

Soit nous étions, aux yeux de cette personne, totalement inutiles et transparents. Soit, il y a volonté manifeste de dénigrer l'engagement des membres de l'association COAGUL.

En réalité, il fait référence au 4ème membre qui lui est arrivé, comme prévu, après l'heure d'ouverture. Il est évident qu'il est parfois difficile d'associer vie de famille, vie professionnelle et vie associative. Il faut parfois faire des compromis entre ces trois univers. Si un vice-président ne peux pas comprendre cela ...

Normalement Tony devait tenir le stand de COAGUL, jusqu'à l'arrivé de notre président. Je ne vois pas en quoi cela devrait être jugé choquant et irrespectueux. En réalité, le problème venait d'un malentendu entre Ubuntu-dijon et l'association COAGUL. Nous devions avoir une place durant l'événement. Bien. Mais nous ne pouvions nous contenter d'un bout de table dans le couloir. En effet, nous avions pris part, activement, à l'organisation de l'événement (place qui nous était normalement réservé).

Tony était venu se réfugier sur le coin de la table de mon stand (alors qu'il ne devait pas être là) plutôt que de rester seul dans le couloir. Mais il est évident que cet état de fait ne pouvait convenir au président de COAGUL. Il a donc installé le stand, comme cela était prévu lors de l'organisation.

Notre tord à uniquement était de ne pas avoir su nous imposer avant son arrivée.

Ce malentendu n'est pas passé du côté d'Ubuntu-dijon puisque deux ans après, nous voyons que cet petit épisode n'est toujours pas digéré.

Dans ce cadre, je ne vois pas comment je pourrais participer sereinement à nous nouvelle édition. Si la suspicion est toujours de mise si longtemps après. Je ne voudrais pas recréer un "incident diplomatique" pour des faits futiles que je pourrais commettre.

Mais à une unique condition, qu'ils viennent aux réunions de préparation.

C'est une façon un peu sommaire de proposer la co-organisation de l'événement. Pourquoi pas, mais il faudrait un définir les contours, les engagements et les intérêts réciproques AVANT de venir aux réunions d'organisation. Chose qui n'est pas à l'ordre du jour (dans tous les cas, je n'ai pas vu de telle demande).

Néanmoins, il est toujours possible de participer à l'événement sans être co-organisateur (je suis allé récemment présenter OpenStreetMap dans un événement organisé par Séquanux). Mais ... c'est exclu pour Ubuntu-dijon.

Nous voyons ici l'habileté de la rhétorique. Faire croire que COAGUL ne répond pas aux sollicitations ... qui n'ont jamais été formulé ! Si Ubuntu-dijon propose de co-organiser l'événement avec COAGUL, pourquoi pas, mais il faut qu'elle fasse des propositions claires pour que nous puissions les évaluer.

Tous les ateliers seront sous Ubuntu (ou Os proprio pour présenter que des applis libres tournent aussi dessus). Lors du premier, on a eu plusieurs visiteurs sont repartis, n'ayant pas compris pourquoi il y avait Ubuntu et Mandriva, et sont reparit avec le sentiment comme quoi c'était la guerre chez nous ....

Il est ironique de lire ces phrases alors qu'un peu plus loin il évoque la présence de la distribution Toutoulinux. Qu'est ce que c'est que Toutoulinux ? La distribution francisé de Puppy ... plus ou moins héritière de la distribution Slackware. Rien a voir avec Ubuntu donc.

C'est tout de même drôle de constater que cette règle ... ne s'applique qu'aux membres de COAGUL, et non au membre d'Ubuntu-dijon.

Comme le vice-président sait que la plupart des membres susceptibles de venir n'utilisent pas Ubuntu, créer une règle qu'on ne s'applique pas à soi même permet d'exclure de facto les autres ... sans le dire.

Cela montre, tout au plus, le sectarisme dont fait preuve l'association Ubuntu-dijon envers les autres distributions.

Edition : Comme on me le signal, Ubuntu-dijon est particulièrement bien veillante envers les "Os proprio", mais pas envers les distributions GNU/Linux.

Toujours ironiquement, je me rappelle avoir vu la plupart de l'après midi, sur un vidéo projecteur, une application privatrice avec des données fermées développée par un célèbre moteur de recherche. Alors que je présentais les données libres d'OpenStreetMap sur mon petit écran, pendant que les membres d'Ubuntu-dijon faisait la promotion du même type de données ... mais fermé.

Personnellement, je pense que le mélange privateur/libre est plus un risque de confusion pour les visiteurs que de montrer que le libre c'est l'innovation, la concurrence et la saine compétition.

c'est pas pour rien que ça fait 3 mois que je leurs envois des invits sur leurs mailing list.

Je n'ai vu aucun message sur nos listes de diffusion. En réalité, il existe des messages sur la liste du collectif bourguignon de promotion du logiciels libres. En effet, j'ai mis en place et héberges la liste "Bourguinux". Mais, j'ai toujours voulu (et c'est la même chose pour COAGUL) que toutes les sensibilités soient au même niveau sur cette liste.

Ne pas comprendre que la fédération des utilisateurs des logiciels libres est important, démontre bien que l'association Ubuntu-dijon est sectaire et ne désire pas s'ouvrir aux autres.

Conclusion :

Etant donné que le vice-président (et certainement d'autres dans l'association Ubuntu-dijon) sont sectaire aux autres distributions, que des faits anodins reste présent dans leur esprit (et que cela servent à calomnier notre association) et devant le peu d'ouverture je ne serais pas présent à Librexpos 3.

Il ne faut pas non plus oublier que, par simple esprit sectaire, les membres de Ubuntu-dijon ne viennent jamais aux événements, ateliers et réunions organisé par l'association COAGUL.

10:30, dimanche, 21 février UTC

février 10, 2010

Emmanuel Garette (gnunux)

Et de deux ...

Voici une nouvelle version de nootv. Pour rappel, nootv permet de visualiser les vidéos de la chaine locale de Dijon vootv avec des logiciels libres.

Avec le nom des vidéos, il est difficile de déterminer quelle vidéo nous voulons réellement voir.

Voici un nouvelle exemple de menu (plus clair) :

Version de l'émission :
   1 : Atelier des chefs n°2 Maquereau de David Zudas
   2 : Atelier des chefs n°1 Délice Maltée
   3 : Atelier des chefs n°4 Verrines chocolat et suprèmes de pamplemousse de Franck Pourrier
   4 : Atelier des chefs n°5 Gambos et tofu par  fumi mitera
   5 : Atelier des chefs n°3 Croustillant de veau de Cyril Riandet
   6 : Atelier des chefs n°6 Boeuf bourguignon

Pour télécharger la nouvelle version, c'est encore ici :

http://gitorious.org/nootv/nootv/blobs/raw/master/nootv.py

19:46, mercredi, 10 février UTC

février 07, 2010

Emmanuel Garette (gnunux)

Première version de nootv.py

Je viens de publier la première version de nootv.

Nootv est un script permettant de regarder les vidéos Vootv avec des logiciels libres (ce que ne propose pas le site officiel).

Pour fonctionner, il faut python 2.6 et flvstreamer ou rtmpdump d'installer.

Lancer le script :

python nootv.py

Il faut ensuite répondre à trois questions :

Le jour de l'émission :
   1 : Lundi
   2 : Mardi
   3 : Mercredi
   4 : Jeudi
   5 : Vendredi
   6 : Samendi
   7 : Dimanche
>>>(7)

(le jour par défaut correspond au jour d'exécution du script)

L'émission :
   1 : Grand Tourisme
   2 : Le Grand Rendez-Voo
   3 : Sports
   4 : L'Atelier des Chefs
   5 : L'Agenda quotidien
>>>(1)

et enfin :

Version de l'émission :
   1 : GRV-604-0030485AE30C13_3
   2 : GRV-604-0030485AE30C15_2
   3 : GRV-604-0030485AE30C80
   (...)
   31 : GRV-604-0030485AE30C24_1
>>>(31)

La version émission par défaut correspond à la dernière émission de la catégorie.

L'émission est enregistrer dans le fichier "nootv.flv". Vous pouvez regarder l'émission avec votre lecteur préféré (mplayer, totem ou vlc par exemple) même si le téléchargement n'est pas fini.

Tout n'est pas encore parfait (surtout le dernier menu est particulièrement illisible) mais cela semble fonctionner. J'attends les retours d'expérience pour l'améliorer.

Pour télécharger, c'est ici :

http://gitorious.org/nootv/nootv/blobs/raw/master/nootv.py

15:35, dimanche, 07 février UTC

février 06, 2010

Pierre Chifflier (pollux)

Creating a live cd for open source SIM Prelude and Suricata

I have started to work on a Live CD for Open Source tools like Prelude SIEM, and software like Suricata, Snort, OpenVAS to send alerts. The goal is to easily test these tools, register new agents, get some alerts and be able to correlate them etc. I also want to add some visualization tools, so this CD could maybe become a reference for security alert detection and report.

Prewikka

First, a few points on applications used:

  • Debian Live for building the CD. It's very easy, it's based on Debian, and it allows me to re-use some work I've done
  • Suricata IDS, which is a very promising project
  • Snort IDS, with the free signatures
  • OpenVAS to be able to generate alerts
  • Prelude SIEM is the key point: suricata, snort, syslog etc. will send alerts to Prelude, which has a database, a correlator, a web interface (Prewikka) etc.
  • Standard useful tools: nmap, scapy, wireshark, p0f, etc.

This first version is based on Debian Lenny and arch x86. Everything is based on packages (.debs) to make it easier to maintain, upgrade versions or add patches: most of the time, I just have to rebuild packages from squeeze or sid.

The build tools are:

  • Debian live (package name is live-helper, I'm running sid/unstable here)
  • About 2-3 GB of free space (including cache, chroot and image).
  • A local Debian repository for custom packages (I use reprepro)
  • (optional) a chroot or pbuilder for rebuilding packages (I use cowbuilder).

Building the CD

You need to be root for that. We'll assume you have created a container directory (for ex. LIVE_SIEM) and extracted the sources in that directory.

Configuration is done in the config subdir. Added packages are just named in packages lists (files in the config/chroot_local-packageslists/ directory). D-L is nice, since it respects dependencies so you add the name of the package and it should be enough.

Default window manager is LXDE, to have a good compromise between size, speed and features. You can change that in file config/chroot.

Default keyboard is qwerty

Just run:

* lh clean
* lh build

and wait for a few minutes. The first command cleans up the chroot and binary directories (keeping the cache), and the second will rebuild completely the cd (download required packages, install them in chroot, run hooks, create compressed image etc.). Clearly, this is not the fastest way of making changes and quickly rebuilding the ISO, and it can be quite boring if you have to test small changes .. Using individual helpers (See this page) may help.

After that, you should have a file called binary.iso in the directory.

Download

I've uploaded a very preliminary version of the iso here: http://live.nufw.org/dl/siem-live-20100205.iso

Edit

A new version of the iso is available: http://live.nufw.org/dl/siem-live-20100220.iso

Changes: add GLPI, OCS Inventory, Prelude Notify and a basic homepage

This iso has:

  • A qwerty keyboard
  • Prelude + syslog + snort configured and installed, started on boot
  • OpenVAS (server and client) installed but not started (due to the number of plugins, server can take several minutes to start ..)
  • Suricata 0.8 installed and basically configured to use all snort signatures. You have to start it manually, for ex.
sudo suricata -c /etc/suricata/suricata.yaml -i eth0

and look in /var/log/suricata/*.log for alerts

  • other tools like Scapy (hint: use ipython to use it in interactive mode), OpenSCAP libraries, etc.

Test

I don't like to reboot, so to test I use VirtualBox or qemu:

qemu -net tap -net nic -boot d -cdrom {build-root}/binary.iso -m 256

During the boot sequence, the live CD will automatically configure applications:

  • create databases
  • setup a default working configuration for most applications
  • create and register Prelude profiles for all applications supporting it
  • start X, and open a browser on the local Prewikka (default login is admin/admin)

SIEM live boot

Prewikka

What to do after boot ?

The live cd is running a syslog server, you can configure some servers / equipments to send logs and they will automatically be analyzed by Prelude.

You can connect to the http server to see the Prewikka interface (default login/pass is admin/admin).

To change the keyboard layout at runtime, use setxkbmap kb, where kb is the keyboard layout to use (for ex fr or de).

Next step ?

I'm waiting for ideas / contributors / whatever :) I'll update suricata with a recent version as soon as it will have support for Prelude, and other tools. Just reply to this post (or contact me) if you have any suggestion.

Help would be appreciated to add visualization tools etc.

Edit

Git repository is up !

22:12, samedi, 06 février UTC

février 04, 2010

Emmanuel Garette (gnunux)

Vootv ... oui ... mais nous ?

Vootv est une chaîne de télé local lancé fin de l'année dernière.

Elle est accessible sur la TNT et sur un site Internet. Problème, je n'ai pas la TNT (ben oui ...) et le site internet est complètement en flash et ... ne marche pas du tout avec swfdec.

Bien.

J'ai toujours un navigateur avec le plugin flash propriétaire disponible au cas ou.

Je peux enfin accéder aux grilles de programme (http://www.vootv.fr/grille.php) et aux vidéos flash.

Evidement, je ne suis pas satisfait du résultat (consommation processeur excessive, utilisation d'un plugin flash propriétaire, ...).

J'analyse donc un peu tout cela ...

D'abord il s'agit vraisemblablement d'un protocole rtmp(|t|s) qui est utilisé.

Reflèxe de base ... lancer un "ngrep rtmp". J'obtiens rapidement :

T 192.168.0.12:46006 -> 91.121.132.131:80 [AP]
  F(V.8.Q`..8..)%4...4.....bN....bsp...K.M}..0.....F..f/..m=.!...r.....o.D.0..........R.X.......X........connect.?........
  ..app...vod/vootv..flashVer...LNX 10,0,42,34..swfUrl..,http://www.vootv.fr/visionneuse/visio_v5.swf..tcUrl... rtmpt://91
  .121.132.131/vod/vootv..fpad....capabilities.@.........audioCodecs.@.........videoCodecs.@o........videoFunction.?......
  ....pageUrl..,http://www.vootv.fr/video.php?key=rY338EG7dQ..objectEncoding.@..........  

Super ! Voilà pas mal d'informations :

  1. c'est le protocole rtmpt qui est utilisé (déjà ce n'est pas le rtmps ... bonne nouvelle) ;
  2. le tcUrl est : rtmpt://91.121.132.131/vod/vootv.

Je sors donc mon "flvstreamer_x86" favoris ... Mais il me dit :

flvstreamer_x86 -r "rtmpt://91.121.132.131/vod/vootv/vootv/"
[...]
"ERROR: Connect, failed to connect socket. Error: 111"

Etrange, je ne vois jamais ce genre de message. Avec wireshark, je m'aperçois rapidement que tous le trafic est sur le port 80.

Essayons ...

flvstreamer_x86 -r "rtmpt://91.121.132.131/vod/vootv/vootv/" -c 80
[...]
Starting download at 0.000 kB

Bingo !

Il ne reste plus qu'à trouver le "Playpath".

Un petit "ngrep play" me donne :

T 192.168.0.12:42351 -> 91.121.132.131:80 [AP]
  POST /send/SrAmTv0dVQKGY3jp/7 HTTP/1.1..Host: 91.121.132.131..Accept: */*..User-Agent: Shockwave Flash.Connection: Keep-
  Alive.Cache-Control: no-cache..Content-Type: application/x-fcs..Content-Length: 73..........=.........play.............v
  ootv/associez_voo_003............@.....     

Donc le playpath est .. "vootv/associez_voo_003".

J'ai donc tout ! Et ca fonctionne :

flvstreamer_x86 -x -r "rtmpt://91.121.132.131/vod/vootv/vootv/associez_voo_003" -c 80 > vootv.flv

Reste une problématique ... comme récupérer le playpath des émissions ?

Pour l'instant ... je n'en sais rien.

Mise à jour : J'ai développé un script pour pouvoir regarder les vidéos : http://www.gnunux.info/dotclear2/index.php?post/2010/02/07/Premiere-version-de-nootvpy

23:10, jeudi, 04 février UTC

janvier 21, 2010

Emmanuel Garette (gnunux)

J'y serais !

Bon, cela n'est pas vraiment une surprise, mais je serais dans la bande annonce de Durian :

http://durian.blender.org/wp-content/content/filmcredits-dvd-durian.html

Et vous ?

21:11, jeudi, 21 janvier UTC

janvier 20, 2010

Emmanuel Garette (gnunux)

M, M., Mr, Mr., ... ?

Lors de la rédaction de la lettre mensuelle de COAGUL, l'utilisation de l'abréviation "Mr." pour Monsieur me semblait bizarre. En effet, j'ai toujours entendu dire qu'en français, l'abréviation était "M." et non "Mr.". Cette dernière étant l'abréviation Américaine.

En réalité, il faut bien écrire "M.". En Américain c'est "Mr" (sans point).

Il est possible d'écrire Mr également (comme on écrirait Mme) mais c'est visiblement moins utilisé.

La liste complète des abréviations est disponible sur l'excellent (encore une fois) wikipédia :

http://fr.wikipedia.org/wiki/Liste_d%27abr%C3%A9viations_courantes_en_fran%C3%A7ais#M

22:15, mercredi, 20 janvier UTC

Emmanuel Garette (gnunux)

COAGUL réagit au publi-reportage de la ville de Dijon

COAGUL a envoyé une lettre au maire de Dijon pour exprimer l'exaspération des membres suite à la diffusion d'un publi-reportage pour un système privateur. Plus d'informations dans la lettre : http://www.coagul.org/spip.php?article826.

A titre personnel, je suis allé à la réunion de quartier de présentation du budget. M. le maire était présent en personne et répondait aux questions.

Je l'ai donc questionné sur ce sujet. Il ne paraissait pas au courant de l'existence de ce publi-reportage.

J'ai posé 3 questions (retranscription de mémoire) :

- Est-ce que la ville soutien réellement la sortie de Windows 7 ?

Réponse : il doit voir avec ces services car n'est pas au courant. Mais a priori "non".

- Est-ce que la ville fait ou va faire d'autre publi-reportage ?

Réponse très clair : non

- Est-ce que la ville va contrebalancer ce publi-reportage en parlant des logiciels libres ?

Réponse : il s'est dit, bien éventuellement prêt a en discuter mais sur le principe "oui".

J'ai fini en lui disant que l'association dans laquelle je suis membre allait lui envoyer une lettre à ce sujet. Il a promis de regarder la question et de répondre.

A suivre.

22:00, mercredi, 20 janvier UTC

janvier 19, 2010

Eric Leblond (regit)

Quand ça fonctionne tout seul

Je venais d’avoir l’idée d’une modification d’ulogd2 pour réaliser la chose pratique d’avoir deux sorties sur la même stack. J’ai donc rajouté pour tester la stack suivante à mon fichier ulogd.conf :

stack=log2:NFLOG,base1:BASE,ifi1:IFINDEX,ip2str1:IP2STR, \\

print1:PRINTPKT,sys1:SYSLOG,mark1:MARK,emu1:LOGEMU

Les tests ont montré que c’était déjà fonctionnel ! D’un coup, la neuvième de Beethoven par Harnoncourt est encore plus grandiose.

01:15, mardi, 19 janvier UTC

décembre 31, 2009

Eric Leblond (regit)

Dan Brown est un génie

Et bien oui, dans Da Vinci Code, il a quand même réussi à passionner le monde avec l’histoire d’un mec super intelligent qui cherche à faire un test de filiation mère-fille pour prouver une paternité.

Il faut être génial pour faire passer un truc pareil. Ou alors, on est tous super stupide…

PS: bonne année 2010

09:06, jeudi, 31 décembre UTC

décembre 30, 2009

Eric Leblond (regit)

Vers une nouvelle agora ?

Récemment, le Nouvel Observateur a réalisé un dossier intitulé « Internet en procès ». Ce dossier a semble-t-il été motivé par l’apparition de plus en plus fréquente d’informations qui font suffisamment de bruit sur Internet pour devoir être reprises par les médias classiques. Le dossier est intéressant mais l’avis des partisans d’un contrôle d’internet me fascine. L’éternel tentation de la censure est toujours bien présente. On peut certes comprendre qu’au vu des affaires récentes (Jean Sarkozy ou Frédéric Mitterand) une envie d’étouffer la contestation naisse dans l’esprit de certaines personnes.

Pour moi, cette envie est d’autant plus forte que la source de l’information n’a pas de visage, ou plutôt qu’elle n’a pas de visage identifiable. Twitter est l’outil par excellence de cette propagation virale et presque anonyme de l’information. Celle-ci se distingue complètement de ce qui se faisait dans les médias standards où tout finit par prendre un visage (le porte parole d’un collectif quel qu’il soit par exemple). Et s’il n’y a pas de visage c’est par un sondage (qui traite de réponses à des questions formulées par le média lui-même) que la voix du peuple s’exprime. Dans cette fabrication de l’information, la communication se fait toujours d’un individu identifié vers le grand nombre. Or, qui dit identification, dit possibilité de contrôle (par contre direct ou par pression par exemple) et c’est pour cela en bonne partie que les médias traditionnels n’effraient aucun homme politique.

Internet fait d’autant plus peur que 2009 a été l’année de l’émergence de Internet comme lieu politique. De nombreux événements ont été architecturés ou conditionnés par Internet :

  • L’élection de Barack Obama qui a fait une campagne utilisant intelligemment les moyens offert par Internet
  • La contestation en Iran (Internet intervenant notamment pour la diffusion des images et pour la synchronisation des manifestants)
  • La manifestation anti-berlusconi du 5 décembre à Rome organisée par des blogueurs

Ces trois événements relèvent du champ de la politique mais Internet est aussi l’endroit de toutes les contestations. J’en tiens pour preuve que Rage Against The Machine a été le numéro 1 de Noël des charts anglais avec « Killing in the Name of » une chanson de 18 ans d’age. L’origine de ce fait inédit est une volonté d’échapper à la « dictature de X-factor » qui s’est matérialisé par un groupe Facebook dont la popularité a explosé en quelques jours. Là aussi, pas de leader charismatique de la contestation mais un intérêt commun qui se nourrit des contributions de chacun et renverse une institution (ici la programmation médiatique de la prise de la tête des charts par le vainqueur de X-factor). Cette histoire est certes anecdotique mais elle montre que l’influence des médias classiques (ici comme prescripteur) peut-être contrée par un mouvement né spontanément sur Internet.

L’équilibre des forces semble être sur le point de basculer. Internet a maintenant la potentialité de devenir une nouvelle agora globalisée, unique et multiple à la fois. Un lieu où une information plus fluide rend possible un échange des idées et un refus de l’arbitraire. Un lieu où des volontés particulières se concertent, se concentrent et font entendre leur voix. Un lieu où des « gus dans un garage » peuvent changer des lois.

GUG !

02:03, mercredi, 30 décembre UTC

décembre 27, 2009

Victor Stinner (haypo)

Cette grosse plaie de PulseAudio

PulseAudio est un serveur sonore visant à simplifier la lecture de son sur le bureau. Il remplace le vieux Esound (ESD). Il permet d'envoyer le son sur les hauts parleurs d'un autre ordinateur, d'utiliser plusieurs cartes son, prend en charge les oreilettes bluetooth, gère la consommation d'énergie, etc. Sur le papier, ça semble super : relire Why you should care about PulseAudio (and how to start doing it) pour s'en convaincre. Par contre, en pratique c'est une grosse plaie : PulseAudio rajoute une couche entre les applications et ALSA qui consomme du temps processeur, de la mémoire, et (dans mon cas) dégrade la qualité du son (rajoute des petits pics sonores).

Problèmes liés à PulseAudio sur un Eee PC (Fedora 11)

En particulier, sur mon Eee PC (1101 HA) équipé de Fedora 11 : mplayer est incapable de lire une vidéo (le film Sympathy for Lady Vengeance) bien que mon processeur graphique (la célèbre puce Poulsbo) accélère grandement le décodage de l'image. Dans les logs noyaux (/var/log/messages), j'ai pu voir que PulseAudio tente de rattraper la situation :

Nov 15 23:07:57 maggie pulseaudio[6894]: alsa-sink.c: Increasing minimal latency to 1,00 ms
Nov 15 23:16:27 maggie pulseaudio[6894]: alsa-sink.c: Increasing minimal latency to 2,00 ms
Nov 15 23:16:50 maggie pulseaudio[6894]: alsa-sink.c: Increasing minimal latency to 4,00 ms
Nov 15 23:20:43 maggie pulseaudio[6894]: alsa-sink.c: Increasing minimal latency to 8,00 ms
Nov 15 23:20:48 maggie pulseaudio[6894]: alsa-sink.c: Increasing minimal latency to 16,00 ms
Nov 15 23:21:19 maggie pulseaudio[6894]: alsa-sink.c: Increasing minimal latency to 26,00 ms
Nov 15 23:22:03 maggie pulseaudio[6894]: alsa-sink.c: Increasing wakeup watermark to 15,99 ms
Nov 15 23:37:22 maggie pulseaudio[6894]: alsa-sink.c: Increasing minimal latency to 36,00 ms
Nov 15 23:37:37 maggie pulseaudio[6894]: alsa-sink.c: Increasing wakeup watermark to 25,99 ms
Nov 15 23:43:03 maggie pulseaudio[6894]: alsa-sink.c: Increasing minimal latency to 46,00 ms

Toutes à 5 à 10 minutes, le son finit par sauter et mplayer se fige. J'ai trouvé un contournement : revenir un peu en arrière puis aller un peu en avant (touches gauche puis droite).

Solution : passer directement par ALSA

Après trois coupures dans mon film (c'est-à-dire après un quart d'heure), j'ai fini par me décider à le couper et à chercher à résoudre ce problème énervant. J'ai vu que Mplayer utilisait PulseAudio. J'ai alors essayé l'option « -ao alsa » (-ao : Audio Output), mais mplayer utilisait quand même PulseAudio. Bizarre.

En regardant la configuration ALSA, j'ai vu dans le fichier /etc/alsa/pulse-default.conf :

# Let's make it the default!
pcm.!default {
    type pulse
    ...
}

Donc PulseAudio est configuré pour être le pilote par défaut. J'ai supprimé ce fichier et j'ai redémarré la machine (vu que PulseAudio a trituré ALSA, j'ai préféré tout réinitialiser).

Après le redémarrage, j'ai relancé mon film et j'ai pu le voir jusqu'au bout sans la moindre coupure !

Utilisation du processeur

  • mplayer -ao pulse : le processus pulseaudio utilise 20% du CPU, et au total 20 à 25% du CPU est utilisé
  • mplayer -ao alsa : le processus pulseaudio n'est plus solicité (et n'est donc plus visible dans top), et au total 5 à 10% du CPU est utilisé

Réglage du volume

Avec PulseAudio, alsamixer (et autres mixeurs de sons) n'affiche qu'une seule sortie. Il faut utiliser « alsamixer -c 0 » pour que je puisse avoir accès à toutes les sorties. En particulier, ça me permet de régler le volume du casque, chose nécessaire car le volume est insuffisant.

Problèmes liés à PulseAudio qu'ont d'autres utilisateurs

Lors de la migration à PulseAudio, pas mal d'applications ne fonctionnaient plus (le son en tout cas). Flash et Skype supportent aujourd'hui PulseAudio (Flash 10+ et Skype 2.1+), par contre Audacity ne le supporte toujours pas. Les jeux utilisant la bibliothèque SDL (ex: l'excellent xmoto) ont également des problèmes. Correction : SDL 1.2.12 a un pilote natif pour PulseAudio.

Complaintes :

Le démon PulseAudio a besoin de tourner en priorité temps réel (SCHED_FIFO). Or il faut être root pour cela. Une faille de sécurité dans PulseAudio a déjà servi pour exploiter des failles du noyau Linux (2.6.30, 2.6.31, 2.6.32), notamment via la boîte à outils de Brad Spengler.

Conclusion

Sympathy for Lady Vengeance est un excellent film ! Il fait parti de trilogie sur la vengeance du sud-coréen Park Chan-wook. La fin est bien gore, j'adore :-)

Pour PulseAudio, c'est plutôt mauvais signe étant donné qu'il est activé par défaut sur Ubuntu, Fedora et Mandriva. Bien que j'ai du mal à voir l'intérêt de PulseAudio, il doit bien en avoir un pour que les distributions bureaux majeures l'activent par défaut. Par contre, il serait bon de donner le choix de désactiver complètement PulseAudio le temps que le code soit stabilisé.

18:48, dimanche, 27 décembre UTC

décembre 06, 2009

Victor Stinner (haypo)

Nettoyage de clavier

Pour nettoyer un clavier, la méthode la plus simple est de secouer le clavier à l'envers :

(Alternate method: convince them to pretend it's an Etch-a-Sketch and try to erase it.)

Ça marche pas trop mal, mais quand le clavier est maltraité pendant plusieurs années, il en faut un peu plus. J'ai complètement démonté mon clavier pour tenter de débloquer la touche S qui s'était coincée durant le nettoyage. La quinzaine de vis de la coque en plastique était cachées derrière des bouts de caoutchouc (sûrement un message pour me dire « non, ne le fait pas ! »). Et à l'intérieur il y a encore un grand nombre de vis.

J'ai trouvé une grosse touffe de cheveux et une poignée de miettes (miam !). Malheureusement, vu l'état du clavier, je me suis dit qu'il serait plus rapide d'en racheter un autre ...

En même temps, pas mal de des lettres étaient effacées, ce qui ne facilitait pas la frappe à une main (ex : avec un bébé dans les bras). Peut être que ça va enfin me motiver à apprendre à utiliser mon clavier bépo !

14:03, dimanche, 06 décembre UTC

décembre 04, 2009

Victor Stinner (haypo)

Compiler PyPy trunk en activant le compilateur à la volée (JIT)

PyPy est une interprète Python écrit en Python. Il implémente Python 2.5 et offre quelques fonctionnalités supplémentaires. Je m'intéresse surtout au compilateur à la volée, car il laisse espérer une vitesse d'exécution des programmes Python bien meilleure. Lire ces benchmarks du blog PyPy pour se faire une idée :

Prérequis

  • Linux
  • Processeur 32 bits (le compilateur à la volée ne gère pas encore le 64 bits)
  • 2 Go de mémoire (1,5 Go semblent suffisant selon ce que j'ai lu)
  • Une bonne heure pour la compilation

Téléchargement

svn co http://codespeak.net/svn/pypy/trunk/ pypy-trunk

Installer les dépendances

Sous Debian / Ubuntu :

sudo apt-get install libffi-dev libbz2-dev libexpat1-dev libexpat1-dev

La compilation proprement dite

cd pypy-trunk/pypy/translate/goal
python translate.py -Ojit

Prévoir 60 minutes sur un CPU Intel @ 3 GHz et 2 Go de mémoire. Pour faire patienter, PyPy dessine de jolies fractales : C

Le résultat est le programme testing-1 (environ 18 Mo) dans le dossier /tmp/usession-trunk-0/testing_1/. Je vous conseille de le déplacer le fichier testing-1 à la racine du projet PyPy sous le nom pypy-c-jit.

C'est prêt !

Voilà, vous avez un PyPy prêt à l'emploi. Vous pouvez jouer avec l'option --jit :

$ ./pypy-c-jit --help
usage: /home/haypo/prog/SVN/pypy-trunk/pypy-c-jit [options]

options:
 (...)
 --jit debug=N              low-level JIT parameter (default 2)
 --jit hash_bits=N          low-level JIT parameter (default 14)
 --jit inlining=N           low-level JIT parameter (default False)
 --jit optimizer=N          low-level JIT parameter (default 1)
 --jit threshold=N          low-level JIT parameter (default 1000)
 --jit trace_eagerness=N    low-level JIT parameter (default 200)
 --jit trace_limit=N        low-level JIT parameter (default 10000)

Un sprint PyPy est prévu fin janvier 2010 (dans un chalet en Suisse) pour finaliser la version 1.2 qui devrait donc sortir peu après (je l'espère).

Unladen Swallow

J'attend aussi beaucoup d'Unladen Swallow qui a pris une autre voie. C'est un fork de CPython 2.6 qui utilise LLVM pour la boucle d'évaluation du bytecode Python. LLVM intègre notamment un compilateur à la volée. Contrairement à PyPy qui redéveloppe tout depuis zéro dans leur coin, LLVM est un projet très populaire utilisé par Apple pour ses effets graphiques, dans les pilotes 3D Xorg récents (Gallium), pour compiler des programmes en C, etc. Non pas que les développeurs de PyPy soient moins bons, j'ai plus confiance dans un projet (LLVM) utilisé par un grand nombre des personnes pour des usages très différents. C'est un gage de pérénité, et LLVM semble plus actif.

D'ailleurs, PyPy avait un backend LLVM pendant un temps, mais ils l'ont abandonné. Il me semble que la raison avancée par les auteurs de PyPy était que LLVM n'était pas adapté à Python, langage trop dynamique.

Unladen Swallow a aussi l'avantage d'être 100% compatible avec CPython... vu que c'est un fork de CPython, notamment au niveau des modules tiers écrits en C (utilisant l'API C de Python) comme PyQt ou numpy.

00:24, vendredi, 04 décembre UTC

décembre 03, 2009

Victor Stinner (haypo)

Installer Fedora 11 et 12 depuis une clé USB

Ce bref article explique le minimum pour installer Fedora 12 sur un Eee PC blanc à partir d'une clé USB (vu qu'un Eee PC blanc ne dispose pas de lecteur de CD-Rom). Mais vu les galères que j'ai eu avec Fedora 12 et Poulsbo, j'ai fini par installer Fedora 11. Cet article explique donc aussi une procédure pour installer Fedora 11 à partir d'une clé USB. Les deux installations se basent sur la méthode « Netinstall » qui utilise un petit média pour le boot, puis télécharge les paquets depuis Internet.

Prérequis

  1. Un Eee PC blanc modèle 1101HA, chipset Poulsbo, sinon ça marche pas (mais non je déconne !)
  2. Une clé USB d'au moins 200 Mo que vous pouvez formatter (perdre toutes les données écrites sur la clé)
    • N'importe quel média de stockage USB devrait faire l'affaire. Évitez tout de même de formatter la partition FAT de votre appareil photo numérique : une clé USB 4 Go coûte 8€ en supermarché (voir moins) !
  3. Choisir un miroir Fedora près de chez vous
    • ATTENTION : si vous choisissez un miroir FTP, assurez-vous qu'il supporte le téléchargement partiel (commande FTP "REST") : Fedora 12 l'exige (j'ai ouvert un rapport de bug pour Fedora 12 Beta, mais il n'a pas pu être corrigé avant la version 12 finale)
  4. Une bonne heure devant vous

Création puis boot de la clé USB

  1. Télécharger Fedora-12-Beta-i386-netinst.iso depuis votre miroir ou depuis le site principal
  2. Taper la commande dd if=Fedora-12-Beta-i386-netinst.iso of=/dev/sdX où sdX est le périphérique de votre clé USB. Vérifiez trois fois que sdX est bien votre clé USB, avec fdisk ou cfdisk par exemple, sous peine de perdre tous les données de votre disque dur !
  3. Au démarrage de l'Eee PC blanc, taper la touche Echappe sans arrêt pour afficher le menu de sélection du média sur lequel booter (disque dur, clé USB, ...) : choisir USB:
  4. Le menu de boot Fedora s'affiche : choisir Install or upgrade

Installation Fedora

  1. Choix de la langue : French
  2. Choix du clavier : fr-latin9
  3. Choix du média d'installation : ne pas choisir /dev/sdXY, faire précédent (sûrement une blague des développeurs de Fedora pour empêcher les débutants d'installer Fedora), puis :
    1. Choisir la méthode "URL"
    2. Interface réseau : prendre eth0 (carte ethernet)
    3. [x] Activer le support IPv4 (*) Dynamic IP configuration (DHCP)
    4. Pour l'URL, chercher dans votre miroir Fedora le chemin vers le dossier "os" de l'architecture et de la version de votre choix : (...)/releases/test/12-Beta/Fedora/i386/os/. Exemple avec le miroir Free :
ftp://ftp.free.fr/mirrors/fedora.redhat.com/fedora/linux/releases/test/12-Beta/Fedora/i386/os/
  1. À partir de là, c'est l'installeur Fedora classique qui est bien foutu et explique bien ce qu'il y a à faire. Si vous êtes perdus, consultez la documentation Fedora (en anglais pour le moment)

Note : le miroir Free ne gère que FTP et ne supporte pas le téléchargement partiel. Il n'est donc pas utilisable pour installer Fedora !

Échecs successifs

Comme j'ai pas de bol, j'ai du m'y reprendre à dix fois (au moins) pour arriver à installer Fedora 12...

  • Je n'arrivais pas à booter sur la clé USB : j'ai mis du temps à deviner qu'il fallait utiliser la touche Echappe au boot. J'avais tenté de changer la configuration du BIOS : j'ai mis le média "Removable device" en premier, mais ça ne fonctionne pas pour l'USB !?
  • J'ai tenté de lire le contenu de l'image ISO, en extraire install.img, et écrire install.img sur la clé USB (dd if=install.img of=/dev/sdX)... Mais ça ne fonctionne pas, ce n'est pas la bonne méthode. Conseil : ne pas lire de vieux billets de blogs.
  • À l'installation, j'ai choisi le média /dev/sda1 comme source d'installion. Or pour une Netinstall, il faut faire précédent et choisir "URL"... La vieille feinte de l'ours !
  • J'ai pris le miroir Free, or le serveur FTP de Free ne supporte pas l'extension "téléchargement partiel" (commande FTP "REST"). Du coup, l'installeur graphique a échoué lors qu'il a téléchargé le 1er paquet RPM...

Créer une clé USB bootable pour installer Fedora 11

Créer une clé USB bootable pour Fedora 11 n'est pas possible depuis Debian (pas facilement). Il vaut mieux avoir une Fedora sous la main pour créer la clé USB.

  1. Télécharger Fedora-11-i386-netinst.iso
  2. Sous Fedora, installer les paquets livecd-tools et syslinux (sudo yum install livecd-tools syslinux)
  3. Créer une partition ext3 (/dev/sdXY) de 300 Mo sur la clé USB (ex: avec gparted)
  4. Marquer la partition /dev/sdXY bootable. Exemple avec parted :
$ sudo parted /dev/sdX
(parted) toggle Y boot
(parted) quit
  1. Enfin, taper la commande : sudo livecd-iso-to-disk Fedora-11-i386-netinst.iso /dev/sdXY

Note : Remplacez X et Y par le nom et le numéro de partition de votre choix.

--

Lire aussi Installer Ubuntu Ibex depuis un disque dur USB externe.

23:54, jeudi, 03 décembre UTC

novembre 21, 2009

Victor Stinner (haypo)

Analyse de spam (commentaires de ce blog) : sites chermou.org et denjala.com

Avec mon antispam maison (NIH powa !), je filtre une grosse partie du spam (dans les commentaires), mais quelques uns passent à travers le filtre. La plupart sont ponctuels, mais un spam persiste dans la durée : chermou. Cet article tente de comprendre l'insistance de ces spams (qui visent à amener du trafic vers certains sites précis), notamment en analysant le contenu et la stratégie commerciale de ces sites.

Analyse des spams

Le mardi 29 septembre 2009 à 02:40
Email : 
Site : http://www.denjala.com
@IP : 41.249.40.88
mais pourquoi les americains sont si fort et dans tout les domaines!!!

L'auteur des messages est différent pour chaque message (bomi41, s3aidia, tafrawte, windman, ...). Par contre, la même adresse de courriel est utilisée pour plusieurs messages durant plusieurs semaines (mais sur plusieurs mois, il y a donc plusieurs adresses différentes). Le contenu des messages est en français (plutôt correct) et semble avoir un rapport avec l'article (peuvent passer inaperçu si on n'est pas attentif).

Le plus intéressant reste les noms de domaine (les sites vers lesquels ces spams tentent d'amener du trafic) :

  • www.jeseraimillionnaire.com
    • Crée en juin 2008 (voir plutôt en 2006 ?)
    • Registrar: ENOM, INC.
    • (autres informations : cachées)
  • www.twinibila.com
    • Crée le 16 août 2007
    • Propriétaire : Leblanc SARAH
    • Registrar : ONLINE SAS
  • www.chermou.org
    • Propriétaire : Mourad Chermou
    • Registar : Gandi
    • Crée le 24 décembre 2008
  • www.lannuairegrand.com
    • Crée le 26 février 2009
    • Propriétaire : Mourad Chermou
    • Registar : Espace 2001
    • Adresse postale : Mohammedia, Maroc
  • www.lannuairesport.com
    • Propriétaire : Mourad Chermou
    • Adresse postale : Mohammedia, Maroc
    • Registar : Espace 2001
    • Crée le 25 février 2009
  • www.denjala.com
    • Propriétaire : Mourad Chermou
    • Registar : Gandi
    • Crée le 21 mai 2009

Sur mon blog, c'est essentiellement chermou.org et denjala.com que j'ai croisé. Bon mais sinon, que vendent ces sites ?

Présentations des différents sites

Denjala.com ressemble à un annuaire très généraliste de sites webs : 2000 thèmes divers allant de Dictionnaire à Tissage en passant par Perruque. Il propose d'acheter une « page » pour 50€. Le contenu pornographie est interdit. Si j'ai bien compris, une « page » est une annonce publicitaire. La page d'accueil contient un emplacement Google Ads, et chaque page contient deux emplacements Google Ads : un bandeau textuel (en espagnol) et une image (bannière horizontale).

C'est là que je ne comprend pas. Le seul contenu proposé par denjala.com est de la publicité ? Quel est le public visé : des annonceurs, des internautes égarés, voir carrément des fans de publicité sur Internet ? En tout cas Mourad espère gagner 100.000€ avec son affaire. L'annuaire contient quelques entrées, mais je ne sais pas si les webmestres de ces sites ont payé pour être enregistrés.

Lannuairesport.com est également un annuaire, dédié au sport. Il comporte un emplacement de publicité Google Ads.

Lannuairegrand.com est un « annuaire de tous les meilleurs sites du web francophone ». L'inscription d'un site est manuelle et gratuite. Il y a un bandeau (image) Google Ads sur la page d'accueil, et deux bandeaux textuels sur chaque page.

chermou.org est un site de question/réponse. La page d'accueil contient des liens vers les questions résolus et non résolues, et un lien pour poser une question. Juste sous le menu, il y a une ligne d'annonces Google sous forme textuelle sur une seule ligne « Annonces Google Reponse Question Eau Poser Loisirs 92 Loisirs En » (les mots clés me semblent assez étonnants). Cliquer sur un des mots amène à une page qui liste des publicités Google (textuelles avec un grand bandeau en bas). Il semble que des personnes utilisent ce site pour poser des questions, et répondent aux autres questions. Le concept de site question/réponse n'est pas nouveau, il existe par exemple Yahoo! Questions/Réponses ou l'oracle Wikipédia.

Google Ads

Si j'ai bien compris, les sites chermou visent à faire gagner de l'argent à son auteur, grâce à la publicité (Google). La question que je me pose donc est « Google Ads, combien est-ce que ça rapporte ? ». Problème : La charte interdit de dire combien on gagne... Les mots clés sont vendus aux enchères chaque jour, de 2 cents à plusieurs dollars par clic. Une rémunération est perçue à chaque clic sur une annonce. Les annonces sont choisies selon le contenu de la page web où les annonces sont placées. Par contre, il faut gagner au moins 100$ pour avoir le premier versement : « Les gains vous sont reversés tous les mois par chèque ou virement bancaire à partir du moment où vos gains dépassent la somme de 100$. Sinon, ils sont reportés au mois suivant et ainsi de suite. » Pour en savoir plus, lire par exemple googlecash.

Mourad Chermou achète également des mots clés vers son site. Du coup, cliquer sur un pub menant vers son site va donc lui coûter des sous.

Ce qui m'étonne surtout, c'est les formes que prennent les publicités sur les sites que j'ai cités. Publicités pas très attirantes, parfois en espagnol, parfois uniquement sous forme de quelques mots qui me semblent aléatoires... La logique est difficile à suivre.

jeseraimillionnaire.com

En juin 2008 (ou 2006 ? j'ai pas trouvé de date exact), Mourad avait également lancé le site jeseraimillionnaire.com : Comment devenir millionnaire sans bouger... (novembre 2006). Exemple de spam pour ce site : « Paris 28 juin 2008. Je m'appelle chermou mourad, j'ai 31 ans je suis marocain je vie depuis 5 ans en france sans papiers, je suis venu en france pour terminer mais études mais j'ai pas terminé... J'ai créé ce site pour être millionnaire et retourner chez moi pour mettre fin à cette mésaventure! La france, je l'aime mais je dois la quitter » (source). Il y a 2000 mots et si vous voulez que votre site apparaisse dans la page d'un mot, vous devez payer 100 €.

Étant donné que Google référence gratuitement (et représente 90% des moteurs de recherche ou plus), je ne vois pas trop l'intérêt de ces sites.

Twinibila.com

Parmi cet ensemble de sites, Twinibila.com se détache du lot. C'est un site d'annonces gratuites pour vendre des voitures au Maroc. Ce site semble actif et pas mal utilisé par des particuliers. Alors que les autres sites sont essentiellement statiques, celui là comporte un moteur de recherche. Il héberge également un forum phpBB. Le site est plutôt bien foutu. L'enregistrement DNS indique le nom « Sarah Leblanc ». Je suppose que le site a été conçu par une personne différente de tous les autres sites.

00:03, samedi, 21 novembre UTC

novembre 10, 2009

Victor Stinner (haypo)

sudo adduser elisa

$ date
mar. nov. 10 04:17:00 CET 2009

$ sudo adduser elisa
Adding user `elisa' ...
Adding new group `elisa' (1002) ...
Adding new user `elisa' (1002) with group `elisa' ...
Creating home directory `/home/elisa' ...
Copying files from `/etc/skel' ...
Entrez le nouveau mot de passe UNIX :
Retapez le nouveau mot de passe UNIX :
passwd : le mot de passe a été mis à jour avec succès
Changing the user information for elisa
Enter the new value, or press ENTER for the default
        Full Name : Élisa Stinner
        Room Number :
        Work Phone :
        Home Phone :
        Other : 3,540 Kg, 50 cm
Is the information correct? [Y/n] y

04:17, mardi, 10 novembre UTC

octobre 28, 2009

Pierre Chifflier (pollux)

implementing the evil maid attack on linux with Luks

This month, Joanna Rutkowska implemented the "evil maid" attack against TrueCrypt [1].

This kind of attack can be done on any OS with disk encryption: when using whole-disk encryption, you have to infect to bootloader. Linux includes dm-crypt/LUKS, which has some nice features (including TKS1 and working encrypted suspend-to-disk). But how does it play with this attack ?

Sadly, the answer is: pretty bad. LUKS has no protection against this attack, and even requires a /boot partition in clear. Before looking at the possible solutions, we'll play with the /boot partition to see how simple the attack is.

Linux boot sequence basics

The boot sequence (See [2]) is the following:

  • System startup: the BIOS is loaded, searches for a boot medium, loads the MBR, and yields control to it.
  • Boot loader stage 1: the job of the primary boot loader is to find and load the secondary boot loader (stage 2)
  • Boot loader stage 2: its jobs is to search and load the Linux kernel and initial RAM disk (initrd) images.
  • Linux kernel: it starts by uncompressing itself, then mounts the initrd image. This image contains modules and scripts required to find the root filesystem. After the root fs is found, the kernel switches its / partition (using the pivot_root method) and lets init continue.
  • Init: the first task executed.
Hacking the ramdisk (for fun and profit)

While dm-crypt is embedded in the Linux kernel, no solution is offered for Pre-Boot authentication. This means that the Linux and initrd images are stored on a clear partition. The job is then only to edit the initrd image, find a way to capture the passphrase when typed, and store it for later use.

Editing the initrd image

The initrd image is stored in /boot, and is a compressed cpio image:

mkdir tmp
cd tmp
gunzip < ../initrd.img-2.6.30-2-686 |  cpio -i

Early crypto and root partition

(This part was tested on a Debian sid) The initrd image contains a hierarchy of directories:

$ ls
bin  conf  etc  init  lib  sbin  scripts

The interesting file is scripts/local-top/cryptroot. This script searches for the partition to decrypt, uses a secure program to ask the passphrase (aha) in a secure memory location, and calls cryptsetup to decrypt the device. The relevant section is:

if ! crypttarget="$crypttarget" cryptsource="$cryptsource" \
      $cryptkeyscript "$cryptkey" | $cryptcreate --key-file=- ; then
 	message "cryptsetup: cryptsetup failed, bad password or options?"
 	continue
fi

Here are the steps to do:

  • display the usual message, to avoid alerting the user:
message -n "$cryptkey"
  • read the answer, without echo:
read -s BLAH
  • save it for later use. This is a bit more "difficult", since you don't have access to the filesystem at this point, and the root fs is switched anyway after. However, it seems that the /dev partition (especially when using udev) it not remounted ... let's use it:
echo $BLAH >> /dev/.blah
  • decrypt the partition as usual. We just have to adapt the decryption line:
if ! crypttarget="$crypttarget" cryptsource="$cryptsource" \
     echo -n "$BLAH" | $cryptcreate --key-file=- ; then
  • finally, re-create the initrd image:
find ./ | cpio -H newc -o > initrd.cpio
gzip initrd.cpio
mv initrd.cpio.gz ../initrd.img-2.6.30-2-686

Test it

After a reboot, the boot sequence looks the same as usual and everything goes fine. Maybe except:

# cat /dev/.blah
secret

Next?

See how trivial this was ? The next step could be to get the infection process automatic, or to broadcast the passphrase in mDNS broadcasts or whatever :)

Possible solutions

The real protection is Trusted Platform Module (TPM). It's goal is to have a trusted path for the entire boot sequence (from power on, bios etc. to running OS), However, it raises concerns about its potential uses, especially for antitrust respect (Palladium?) or for the money-vampires of RIAA and friends (DRM?).

To protect against these attacks, the most basic protections can be pretty efficient (assuming you don't need a military-grade protection):

  • Set a password on your Bios, to avoid booting on USB, for ex.
  • Ensured the box can't be opened
  • Set (another) password on the bootloader, so people won't add init=/bin/bash
  • When encrypting your disks, don't forget the swap !
  • Always mount /boot as read-only, run a checksumming program like aide to detect modifications.
  • Don't forget the basics: set up good passwords, change them regularly, store them with a correct hash [3], always lock your screen, etc.

These suggestions won't cost you additional hardware, are pretty easy to do, and will at least raise your security by slowing down intrusions (which now requires to find a way to boot), and detect them easily (changed file, computer rebooted unexpectedly or opened etc.). And anyway, if someone has (physical) access to your computer for a good period of time, it's over ;)

Have fun !

Notes

[1] http://theinvisiblethings.blogspot.com/2009/10/evil-maid-goes-after-truecrypt.html

[2] http://www.ibm.com/developerworks/library/l-linuxboot/index.html

[3] To make PAM use sha512 instead of MD5, just add sha512 to the line containing password pam_unix.so in /etc/pam.d/common-password or the equivalent for your distro

23:42, mercredi, 28 octobre UTC

octobre 04, 2009

Pierre Chifflier (pollux)

animated charts in python and Qt

I'm currently trying to generated interactive (and animated) charts in Python + Qt. The wanted library would be:

  • portable: this is one of the reasons of the choice of PyQt
  • simple: same reason
  • interactive: I want to be able to select, for example, the slices of a pie chart. A signal of events like Qt's would be perfect
  • animated: this is useless, but looking at things like AnyChart or FusionCharts, the result is really nice !
  • light on dependencies: relying on tons of libs makes the project hard to maintain and not portable, especially for windows where there is not packaging and dependency system.
  • free software

A quick search gave me the following products:

  • matplotlib: mostly for scientific plots, but there is a nice number of options, a well-documented API.
  • pyQwt: Python bindings for Qwt. Again, it's more scientific plot than charts
  • cairoplot: projects looks dead (or in the "yeah, the project's not finished, but we're recoding it in $LANG to be faster" syndrome, which is more or less the same). It generates images, though item maps can be extracted. The name tells it, it uses Cairo.
  • pyCha: some nice charts, uses Cairo. Very simple API (not much options).
  • reportlab: not really for interactive applications, but it can generate charts (and images).
  • KD Charts: not tested. It looks nice, but the license is not free.
  • ChartDirector: not free

Globally, the result is quite a deception:

  • There is no immediate reply (yes, I'm lazy).
  • Cairo is nice for Linux projects, but is a pain to use on other platforms
  • There is nothing using Qt only, except PyQwt which cannot be used directly :/ This is surprising, especially given that Qt's API is really nice and almost offers the solution natively.
  • Charts libraries for web apps are easy to use, there seems to be nothing easy on desktop apps.

Custom version

This was pretty simple (at the beginning, at least): Qt provides two classes, QGraphicsView and QGraphicsScene, to draw objects. These classes are pretty good, and adding a PieChart, for ex, was only a matter of calculating the slices:

for d in data:
   (l,v) = d
   start_angle = sum
   span = (v*360 / self.current_sum)
   el = QGraphicsEllipseItem(0, - ELLIPSE_RADIUS, ELLIPSE_RADIUS, ELLIPSE_RADIUS)
   el.setStartAngle(start_angle*16)
   el.setSpanAngle(span*16)

To do the animation, just create a QTimer, and redraw the scene in the event handler. The setSpanAngle function can be use, for example, to display the slices regularly in 20 steps, drawing (360/20) degrees of the total Pie at each step:

current_step = (self.i+1) * (360/20)
if (current_step >= o._start_angle):
   o.setVisible(True)
   if current_step > o._start_angle + o._span_angle:
      o.setSpanAngle( o._span_angle * 16 )
   else:
      o.setSpanAngle( 16 * (current_step - o._start_angle) )

Using all features of Qt is pretty simple, like brushes to create a gradient etc. data are stored in a model, and catching events allows to redraw the scene smoothly when something is changed.

This solution is implemented in PyQt only (and could easily be in Qt only), has no extra dependency, and is reasonably fast. Using Qt objects natively allows to use events like hover, click in a very trivial way.

Code is stored in a git repository. I've named it Cutie Chart, which is a pretty bad pun (I'll say I'm almost sorry):

git clone http://git.wzdftpd.net/cutie-chart.git

The repository also contains animation on Bar Charts, scaling each bar progressively to its normal size.

Example of result:

Matplotlib version

Using matplotlib would simplify things a lot, and bring tons of existing classes to the projects. However, things may not be so easy.

matplotlib provides a class FigureCanvasQTAgg. This class is a Qt canvas, so it can be used as a widget.

You have to create a Figure, a subplot and draw the pie:

fig = Figure(figsize=(width, height), dpi=dpi)
self.axes = fig.add_subplot(111)
self.axes.hold(False)
self.axes.plot([0.1, 0.1, 0.8, 0.8])
(patches, texts, autotexts) = self.axes.pie(self.data, explode=self.explode, labels=self.labels, colors=self.colors, autopct='%1.1f%%', shadow=True)

The animation is a bit trickier: changing the span angle is not possible. I've tried several options with no success (like using Transform etc.), until I decided to create a different animation, better suited for matplotlib. In this version, we add a dummy slice, to create the effect that each slice starts at 0% and grow to its proportion regularly. As previously, we use a QTimer:

s = sum(self.data)
i = self.i
self.anim_fracs[-1] = (s*(20-i)/i)

self.axes.pie(self.anim_fracs, colors=self.colors, labels=self.anim_labels, autopct='%1.1f%%')
self.draw()

Code will be committed in the same repository soon. I've uploaded the current file here

It works fine, and using matplotlib is nice, with many features and support classes (for ex the ability to create SVG or PDF, to have many other classes for charts etc). Matplotlib also handle the automatic placement of the legend, 3d effects, z-shape, which would take some time to add manually ;). However, the drawback is that the integration with Qt is limited, like the support of signals or interaction on objects.

Example of output:

22:32, dimanche, 04 octobre UTC

septembre 17, 2009

Pierre Chifflier (pollux)

Playing with OpenDPI

So, Ipoque has published its deep inspection engine under a free license (LGPLv3): OpenDPI This is always good news when a company decides to release source code to the community, so first of all thanks to Ipoque for this.

After downloading the source code on OpenDPI google project's page, I started to look at it.

Basically, the project looks quite unprepared for release (only a Makefile, no configure script - though no-one can be blamed for not using autotools -), but after looking at the code it seems not so bad:

  • the code is reasonably clean
  • it builds fine on x86 or x86_64 platforms
  • the code is provided with a decent list of identified protocols
  • the demo uses pcap files

There are a few minor annoyances:

  • the provided lib is a static lib ... building a shared library would be better !
  • the build system is pretty awful, rebuilding everything each time, without using deps, no install system etc.
  • no docs (looking at the demo file was sufficient to understand most of the function).
  • no correct website, forums or whatever. I'm sure it will get better in the future
  • pcap only

This last point was the most annoying to me, so I decided to rewrite a daemon using the NFQUEUE target. While I could have used the nfqueue-bindings, I decided to use C this time: it was simpler ! I only had to recode the open/close/runloop functions to use nfqueue, extract the packet from the nfqueue callback, and use the exact same callback as for pcap :)

Here is the relevant parts of the interesting code:

static int _nfq_cb(struct nfq_q_handle *qh,
		    	 struct nfgenmsg *nfmsg,
			 struct nfq_data *nfad, void *data)
{
       [...]
	struct nfqnl_msg_packet_hdr *ph = nfq_get_msg_packet_hdr(nfad);

	if (ph)
		id = ntohl(ph->packet_id);

	payload_len = nfq_get_payload(nfad, &payload);
	iph = (struct iphdr*)payload;

	ret = nfq_get_timestamp(nfad, &tv);
	time =
		((uint64_t) tv.tv_sec) * detection_tick_resolution +
		tv.tv_usec / (1000000 / detection_tick_resolution);

	// process the packet
	packet_processing(time, iph, payload_len, payload_len);

	nfq_set_verdict(qh, id, NF_ACCEPT, 0, NULL);

	return 0;
 }

The proof-of-concept code works fine. As seen on this discussion, maybe Ipoque folks would be interested in a contribution :D No netfilter integration is needed, just playing with nfqueue + mark for filtering should be enough for most cases.

The code is not yet published, because it doesn't do anything useful yet (just try to identify and follow protocols and flows). If you're interested, contact me (remove the _ signs).

20:46, jeudi, 17 septembre UTC

septembre 12, 2009

Victor Stinner (haypo)

git : supprimer un commit, rééditer le dernier changelog

Le gestionnaire de code source git a été lancé en 2005. Depuis sa création, de nombreuses extensions et patchs ont été écrits. Du coup, je tombe régulièrement sur des informations contradictoires lors que je cherche comment faire tel ou tel truc dans Google. Quand j'arrive enfin à faire ce que je veux, je le note pour pas l'oublier :-)

Aujourd'hui, les astuces permettent de modifier les commits précédents. Je m'en suis servi sur un dépôt git-svn pour corriger des soucis avant d'envoyer (git svn dcommit) mes modifications upstream. Attention à ne pas modifier des commits déjà envoyés upstream par contre, sous peine d'avoir de gros conflits.

Supprimer un commit git

Si on réalise après coup qu'un commit est foireux, il peut être utile de le supprimer pour éviter de l'envoyer upstream. Dans mon cas, je devais supprimer un commit et non pas l'annuler (revert) car un script svn en pré-commit me bloquait.

La commande pour supprimer le commit numéro XXX :

git rebase --onto XXX~1 XXX

Rééditer le changelog du dernier commit git

Ça arrive de faire une faute de typo, mais de s'en rendre compte qu'après avoir fait le commit. J'ai toujours voulu pouvoir éditer un changelog à posteriori. C'est possible avec svn (sur le serveur), mais c'est très compliqué. Avec git, on peut facilement éditer un changelog, mais uniquement celui du dernier commit.

La commande pour éditer le changelog du dernier commit :

git commit --amend

Il exite également « git commit -c XXX » et « git commit -C XXX » mais je n'ai pas réussi à m'en servir :-(

01:07, samedi, 12 septembre UTC

août 25, 2009

Pierre Chifflier (pollux)

Planet INL is back

Planet INL, le Planet non officiel des salariés d'INL, est de retour !

13:07, mardi, 25 août UTC

août 05, 2009

Eric Leblond (regit)

Il ne faut pas confondre (version 2)

Je disais donc, il ne faut pas confondre la coquetterie et la classe. Pour certains, la barrière est difficile à estimer:

Ferrari dorée

Une Ferrari, dorée c'est mieux

Pour reprendre approximativement Clint Eastwood : « Peindre une telle voiture dans cette couleur devrait être considéré comme un crime »

23:19, mercredi, 05 août UTC

juin 10, 2009

Pierre Chifflier (pollux)

Hadopi .. FAIL

Il y a des fois, on a encore envie de croire en la justice.

Ca doit certainement être un coup des gars planqués en embuscade derrière les rideaux. Ou pas.

21:18, mercredi, 10 juin UTC

Older blog entries