Logiciel libre

Une nouvelle version de mon wall vient d'être mise ligne ! Bienvenue GIST.

GIST

  • Du chiffrement : on peut à présent partager du code colorisé chiffré et déchiffré coté navigateur
  • L'application est fondée sur git et permet de versionner les modifications réalisées sur du code et d'accéder aux différentes versions avec des diff
  • Il est à présent possible d'insérer sur son site le résultat de la colorisation
  • L'application est multilingue et fonctionne très bien sur téléphone
  • Toujours et encore libre, avec une procédure d'installation simplifiée !

La procédure d'installation :


Je viens de finaliser la première version de pdns-console, un outil en ligne de commande qui permet de gérer un serveur PowerDNS : un puissant serveur DNS qui repose sur des bases de données comme MySQL.

La particularité de pdns-console est qu'il permet de versionner ses zones.

  • On peut donc écrire différentes zones
  • On peut associer une zone à plusieurs domaines
  • Une zone est composée d'une ou plusieurs version dont l'une d'elle pourra être activée
  • La version activée d'une zone sera appliquée aux noms de domaine associés

pdns-console ajoute également des contraintes dans la base de données pour rendre les enregistrements cohérents.

Sous licence BSD, les sources et la procédure d'installation sont dispos sur Github. Je vous invite à tester, forker et bien sur contribuer !

Voici un exemple qui provient du README (en anglais) :

Specifications

  • We want to mange the domain example.tld
  • We need 3 records:
    • example.tld -> 1.2.3.4
    • www.example.tld -> same as example.tld
    • The MX of example.tld is mail.foo.net

Add the domain

$ ./app/console domain:add
Name: example.tld
MASTER [null]:
Type [NATIVE]:
Domain added
$ ./app/console domain:list
DOMAIN: example.tld
ID    : 5             # This ID is important
TYPE  : NATIVE
MASTER:

Create a zone

Interactive (or not)
$ ./app/console zone:add
Name: Example zone
Description: My example zone
Zone added.
The list is updated
$ ./app/console zone:list
Example zone
------------
My example zone
ID: 4                 # This ID is important

No version found
New version for "Example zone" (ID=4)
$ ./app/console zone:version:add 4 # My zone ID
Zone version added.
$ ./app/console zone:list
Example zone
------------
My example zone
ID: 4

Version: 1 - Active: No

No record found.

Add the records

"SOA" record (no interactive)
$ ./app/console zone:record:add 4 1 --name @ --type SOA --content "localhost. postmaster@localhost 0 10800 3600 604800 3600" --ttl 3600 --prio null
"A" record (interactive)
$ ./app/console zone:record:add 4 1
Name: @
Content: 1.2.3.4

Available types: A AAAA CNAME MX NS TXT SPF WKS SRV LOC SOA
Type: A
TTL: 3600
Prio [null]:
Zone record added.
"CNAME" record. "--ttl" is missing
$ ./app/console zone:record:add 4 1 --name www --type CNAME --content example.tld. --prio null
TTL: 3600
Zone record added.
"MX" record. The validation of "--prio" failed
$ ./app/console zone:record:add 4 1 --name @ --type MX --content mail.foo.net. --ttl 3600 --prio badValue
Prio [null]: badValueAgain
Prio [null]: 10
Zone record added.
My version is now ready
$ ./app/console zone:list
Example zone
------------
My example zone
ID: 4

Version: 1 - Active: No

   ID | NAME                  | TYPE      | TTL    | PRIO    | CONTENT
----------------------------------------------------------------------
   13 | @                     | SOA       | 3600   |         | localhost postmaster@localhost 0 10800 3600 604800 3600
   14 | @                     | A         | 3600   |         | 1.2.3.4
   15 | www                   | CNAME     | 3600   |         | example.tld.
   16 | @                     | MX        | 3600   | 10      | mail.foo.net.

Active and assign the new zone

$ ./app/console zone:version:active 4 1
Zone version activated.
$ ./app/console zone:assign 4 5
Domain zone updated.
./app/console domain:list --zone
DOMAIN: example.tld
ID    : 5
TYPE  : NATIVE
MASTER: 


      > Example zone
      > ------------
      > My example zone
      > ID: 4
      > 
      > Version: 1 - Active: Yes
      > 
      >    ID | NAME                  | TYPE      | TTL    | PRIO    | CONTENT
      > ----------------------------------------------------------------------
      >    13 | @                     | SOA       | 3600   |         | localhost postmaster@localhost 0 10800 3600 604800 3600
      >    14 | @                     | A         | 3600   |         | 1.2.3.4
      >    15 | www                   | CNAME     | 3600   |         | example.tld.
      >    16 | @                     | MX        | 3600   | 10      | mail.foo.net.
      > 

Push modifications

./app/console zone:push

Test :)

$ dig +short -t A @localhost example.tld
1.2.3.4
$ dig +short -t CNAME @localhost www.example.tld
example.tld.
$ dig +short -t MX @localhost example.tld
10 mail.foo.net.

Pour les addicts de t411, j'ai développé un outil en ligne de commande permettant d'accéder aux données du site. Ainsi, il est possible de faire des recherches avec critères, afficher les détails d'un torrent ou bien le télécharger. L'API du site a des bugs qui ne sont pas encore corrigés mais il est déjà possible de faire quelques trucs sympas.

Le code source et la doc sont disponibles sur Github. Tout est libre et ne vous génez pas pour forker :)


Il y a plusieurs années, j'ai mis en place un outil en ligne pour indenter les codes-sources qui reposent sur des langages de balisage.

Une partie de l'interface était développeé sur du CSS qui n'était plus disponible (très ancienne version du blog). J'ai donc effectué une refonte complète du code et j'ai amélioré l'algo.

Indentation

Cet outil est bien évidement totalement libre et je vous invite à le forker comme bon vous semble :

svn co https://svn.deblan.org/svn/indentation.deblan.org

C'est un article assez étrange à première vue, surtout venant de ma part. Oui, j'aime et j'utilise une distribution Linux, oui j'apprécie ce système et oui je suis persuadé qu'il convient à beaucoup de tâches quotidiennes et non techniques. Cependant je suis aussi sûr d'une chose : Linux n'est pas fait pour Monsieur Toutlemonde.

Voici 10 raisons de ne pas installer une distribution Linux.

01. Un copain m'a dit que Linux c'est trop bien !

...et en plus il m'a dit qu'Ubuntu c'est l'avenir de l'informatique. C'est le point de départ de beaucoup d'ennuis : on ne change pas de système sans avoir un avis plus affûté que ça. Quand on décide de passer sur Linux c'est qu'on connaît un minimum la bestiole, qu'on sait (presque) ce que c'est et qu'on ne se limite pas à l'avis d'un non linuxien (ceci est un troll).

02. Windows ça plante tout le temps !

...et vous ferez partie des gens qui booteront Paint.net avec Wine car Gimp c'est pourri. Plus sérieusement, autant être clair tout de suite : les distro Linux ne sont pas des substitus à Windows. Il est difficile de comparer un Linux à Windows, ils sont trop différents, les objectifs ne sont pas communs.

03. Linux, il n'y a pas de virus...

Une belle connerie bien trop répandue sur la toile. Il est plus rapide de crasher la machine d'un linuxien manchot que le Windows de ma grand-mère. C'est une idée reçue et je peux vous assurez qu'il est très rapide de faire une connerie et d'ouvrir votre machine à des gens/logiciels malveillants (Linux ou pas).

04. Linux c'est pour les hackers !

...et on installe Backtrack pour casser le Wifi de son voisin. Si votre unique objectif est de péter le Wifi du mec qui vie à coté de chez vous, restez sur Windows, ça fonctionne aussi bien et vous ne viendrez pas pourrir les forums car le mode monitor de votre carte wifi est mal géré.

05. Je veux linux...ça se télécharge où ?!

Le truc le plus énervant à lire quand on fait du support : la question typique du mec qui n'est pas fichu de faire une recherche. Si vous n'avez pas envie de passer des heures (voir des jours) pour plancher sur un problème, que vous et la documentation font deux, alors vous êtes mal barré et vous préférerez Windows.

06. Installer Linux ça à l'air cool...par contre c'est quoi le BIOS ?

Pour utiliser une distro. Linux, il faut avoir le minimum vital en informatique. Je ne dis absolument pas que le Linuxien moyen est informaticien, mais avoir des notions essentielles en informatique sont primordiales pour utiliser et comprendre un tel système.

07. J'ai testé sur une machine virtuelle, ça marche trop bien !

Une différence notable entre une machine virtuelle est une installation en dure sur votre machine c'est la quantité d'emmerdes que vous allez vous prendre sur la tronche. Linux c'est bien mais c'est loin de fonctionner du premier coup et la publicité mensongère de Canonical ne viendra jamais trahir la vraie vie Linuxienne !

08. Je veux Linux mais je suis attaché à mes outils de Windows

Si vous espérez garder vos belles habitudes Windowsiennes alors c'est peine perdue. On n'installe pas Linux en imaginant l'utiliser comme Windows.

09. Linux c'est super joli, on peut faire des trucs en 3D avec son bureau

Si votre objectif est d'avoir un bureau joli, consultez le site DeviantArt, il y a d'excellents bureaux Windowsiens.

10. Je veux utiliser du logiciel libre

C'est sans doute la première grosse erreur de jugement : un système complétement libre est quasi inutilisable. Entre les drivers vidéo/Wifi libres a moitié utilisable et la fausse pub d'Ubuntu, vous aurez tout sauf un système libéré. Si vous avez envie de logiciels libres (et c'est très bien), la plupart sont disponibles aussi sur Windows.