08/10/10

Crux : pkg++, ports, prt-utils… dpkg !

pkg++ 0.7.4 se rapproche. Qu’est ce qui me permet de dire ça ? Le fait que la construction de paquets .deb soit désormais possible.

L'avantage ne sera pas forcément sur les systèmes Crux et Nutritive, même si il serait possible d'installer dpkg à la place des pkgutils. Pour ceux qui sont intéréssés par l'utilisation de dpkg, j’ai déposé dans mon dépôt git personnel une recette de dpkg.. Pour faire ce passage, le plus simple serait de recompiler tout les ports, dans la même version, avec pkg++ configuré pour la création de .deb et d’ensuite tout réinstaller depuis un support extérieur. Ce genre de mise à niveau ou réinstallation complète sur un système vivant n'est pas possible sur une Crux non modifiée, et échouera en conséquence. Vous êtes donc avertis.

J’ai également commencé à écrire prt-deb, un outil pour faire des paquets Debian à partir des ports. Une sorte d’équivalent de prt-get pour les .deb. Je compte le publier dans quelques jours, quand il sera plus ou moins fonctionnel, ainsi que le présenter ici même.

Notons aussi qu’il faut convertir les anciennes recette en recettes plus récentes afin de faire des paquets valides. Le script de convertion est dans les tarballs et le dépôt de pkg++.

Du côté Crux classique, pas grand chose à annoncer, si ce n'est l'attente de la version 2.7 qui croit. Cette nouvelle version de la distribution contient en effet de nombreuses nouveautées. Autant au niveau des paquets, qui ont été mis à jours, comme c'est le cas partout, mais aussi au niveau des pkgutils. Le choix d'un algorithme de compression sera par exemple possible dans pkgmk, prt-get, etc. Cette possibilité a du coups été également implémentée dans pkg++, qui peut aussi faire des archives tar non compressées et des archives compressées en lzo. Pour rappel, le LZO est un algorithme pour lequel ses développeurs pensent surtout à la vitesse de compression et de décompression. Le taux de compression sera donc plus réduit, en compensation.

Malheureusement, les paquets en tar.lzo ne sont pas supportés par le reste des pkgutils, et devront donc etre installés à la main ou avec un script.

Pour Nutritive on pense de plus en plus à créer rapidement un nouveau type de paquet, dont l’extension serait sans doute .nutritive. J’ai évoqué l’idée d'un paquet en « double coque » il y a un peu plus d’un mois, cette idée est toujours à discuter. L’utilisation de xz et lzo seraient alors justifiées. Toujours dans les idées à discutter, l'utilisation du YAML pour l'enregistrement des méta-informations dans les paquets. Le développement d'outils pour rendre ces paquets utilisables sera alors très rapide.


Posté par Lukc | Lien permanent | Catégories : libre, developpement, crux-like

08/08/10

Installer Crux sans graver le CD.

Récemment, j'ai installé Crux sur mon netbook. Crux ne fournissant pas de live-USB et la documentation de Gentoo semblant lamentablement échouer à en faire à partir de l'ISO fournie, j'ai décidé d'improviser une méthode d'installation.

Cette méthode permet d'économiser un CD, ou d'installer Crux si l'ordinateur cible n'a pas de lecteur de CD.

La première étape de ma méthode consiste à trouver un média bootable. Dans mon cas, j'ai pris un live-USB de Fedora, fait avec Unetbootin. N'importe quel autre live-CD aurait pu faire l'affaire. Une fois ce média bootable prêt, inutile de perdre plus de temps. Démarrez votre ordinateur dessus. :)

La première chose à faire est de repartitionner. La configuration que j'ai prise est de deux Go de swap, deux Go pour /var, 80Go pour la racine et le reste (~75Go) pour le /home. Dès que le repartitionnement sera prêt, montez les partitions.

J'ai personnellement moi-même je, utilisé /mnt/crux comme point de montage temporaire pour la racine de ma Crux.

1 mkdir /mnt/crux
2 mount /dev/sda2 /mnt/crux

Ensuite, montez tout vos points de montage sur /mnt/crux. Dans mon cas, il s'agissait de /home et /var.

1 mkdir /mnt/crux/home
2 mount /dev/sda1 /mnt/crux/home
3 mkdir /mnt/crux/var
4 mount /dev/sda3 /mnt/crux/var

La prochaine étape consistera en l'installation d'un système chrootable dans /mnt/crux. Pour faire ce système chrootable, vous avez besoin de paquets binaires présents dans l'ISO de Crux. Procurez vous là et montez-là à un endroit quelconque, comme /mnt/iso.

1 mount -o loop ~/crux-2.6.iso /mnt/iso

Maintenant, il faut installer tout les paquets du dépôt core dans /mnt/crux. Cette opération va devoir être faite deux fois de suite, de manière différente. Je recommande également de copier les paquets à un endroit où ils seront accessibles une fois dans le chroot.

1 cd /mnt/crux
2 mkdir /mnt/crux/srv
3 mkdir /mnt/crux/srv/release
4 for pkg in /mnt/iso/core/*.pkg.tar.gz; do
5         cp $pkg srv/release/
6         tar vxf $pkg
7 done

Le système est désormais chrootable.

1 mount --bind /dev /mnt/crux/dev
2 mount -t proc proc /mnt/crux/proc
3 mount -t sysfs none /mnt/crux/sys
4 chroot /mnt/crux /bin/bash

Afin de nettoyer la base de données des pkgutils, les paquets vont être réinstallés avec pkgadd.

1 mkdir -pv /var/lib/pkg/
2 touch /var/lib/pkg/db
3 for pkg in /srv/release/*.pkg.tar.gz; do
4         pkgadd -f $pkg
5 done

Maintenant, vous avez une Crux minimale d'installée sur votre machine. Il ne vous reste plus qu'à la configurer (fstab, rc.conf, etc.) et à installer un bootloader. Ces oppérations et de nombreux détails sont disponibles dans le handbook officiel de Crux.


Posté par Lukc | Lien permanent | Catégories : libre, crux-like

07/28/10

Pkg++ 0.7.3.

Nouveau système de construction.

Jusqu'à présent, pkg++ changeait très peu d'un système à l'autre. Les deux seules choses qui changeaient réellement étaient uniquement des variables, $ARCH et $KERNEL. Désormais, un script de configuration plus complexe doit être utilisé. Ce script fait notament appel à un préprocesseur C, celui de GCC en l'occurence. L'utilisation de ce préprocesseur permet de modifier pkg++ lors de l'installation sans l'alourdir plus tard, lors de l'éxécution.

Changements moteurs.

La plupart des changements éffectués dans pkg++ étaient jusqu'à très récement uniquement utiles au niveau de l'utilisation, ou de la création de recettes. Maintenant, des modifications ont aussi été faites au niveau du « moteur » de pkg++. Par exemple, l'installation sur un système non-GNU est désormais possible sans avoir à supporter d'innombrables messages d'erreur et échecs critiques. Il est également possible de se passer désormais de wget et d'utiliser Curl à la place. De même, le choix de l'utilisation de tar ou de bsdtar pour l'extraction des sources est désormais possible, et ce même choix devrait prendre effet pour l'assemblage des paquets dans un futur proche.

Pkg++ 0.8 ?

Pkg++ 0.8 n'est toujours pas prévu pour une date en particulier. Il devrait arriver quand le script « configure » sera jugé assez complet, c'est à dire qu'il aura été testé et que toutes les fonctionnalités prévues fonctionneront. Comme il n'y en a pas beaucoup, ça dépendra beaucoup des demandes qu'on m'adressera et des bugs qui seront rapportés.


Posté par Lukc | Lien permanent | Catégories : libre, crux-like

Version stable : pkg++ 0.6

pkg++ 0.6

Comme je l'avais annoncé précédement, j'ai commencé à travailler sur un constructeur de paquets amélioré pour les systèmes de type Crux. Ce constructeur de paquet passe en version stable 0.6, et le travail sur la version suivante a déjà commencé.

Cette version comportait les éléments suivants :

  • Support de plusieurs dépôts de versionnement, notamment :
    • Git
    • Mercurial (hg)
    • Subversion (svn)
  • La reconstruction de versions de développement d'un logiciel n'est pas bloquée automatiquement.
  • Les footprint ne sont plus vérifiés pour des logiciels en développement.
  • La version du paquet binaire indique clairement la date, afin de pouvoir être partagés.
  • Fichiers d'inclusion pour faire gagner du temps aux empaqueteurs. Les fichiers d'inclusion suivants sont actuellement disponibles :
    • autotools : pour les GNU autotools.
    • autotools-dev : une variante d'autotools pour les logiciels en développement.
    • python : pour les modules python.
    • perl : pour les modules perl.
    • cmake : pour les logiciels utilisant cmake.
    • theme : pour les paquets de thème et d'icones.
    • virtual : pour les métapaquets.
    • gnu : pour récupérer un logiciel sur un serveur GNU.
  • Une fonction pkgmake à utiliser au lieu de make dans les recettes, pour permettre de préciser des paramètres automatiquement à make. (comme -J2, par exemple)
  • Une option -p, qui permet de compiler un paquet à partir d'une recette dans un autre répertoire ou un nom autre que « Pkgfile ».
  • Utilisation de sommes de contrôle sha256 en plus ou à la place de celles en md5, car plus sûres.
  • Une variables dans les recettes permet de désactiver l'extraction des archives afin de gagner du temps lors de la création du paquet.
  • $arch et $kernel peuvent être déclarées dans les recettes pour bloquer la compilation d'un paquet si elle est connue pour échouer dans des conditions similaires.
En route pour pkg++ 0.8 \o/

Le développement de pkg++ 0.7, le futur pkg++ 0.8, a déjà commencé. Plusieurs modifications de syntaxe ont eu lieu, et d'autres arriveront sans doute durant le développement, et ce jusqu'à pkg++ 1.0, ou la syntaxe devrait rester à peu près stable.

Le support de Bazaar (bzr) est également implémenté dans pkg++ 0.7. Le support d'autres dépôts de versionnement avant la 0.8 n'est pas à exclure. Monotone et CVS sont les premiers visés.

Au niveau des fichiers d'inclusion, l'automatisation de la construction de logiciels qui utilisent SCons est un de mes objectifs, et j'espère pouvoir l'implémenter. Un fichier d'inclusion pour récupérer un paquet de sources sur SourceForge automatiquement est également dans mes objectifs.

Pour rapporter un quelconque bug, vous pouvez me contacter sur XMPP (voir mon JID dans le menu de gauche).

!help

À part, ça, je recherche des testeurs et des gens intéréssés pour écrire de la documentation ou traduire les pages de manuel.

Toute aide est la bienvenue. :)


Posté par Lukc | Lien permanent | Catégories : developpement, crux-like

06/15/10

NuTyX, dune distribution décidément néfaste

Cet article est une suite de celui-ci, servant de réponse aux pseudo-contre critiques qui me sont parvenues.

Kikoolol 2.0

Tout d'abord, je dois avouer que ce blog est verrouillé. C'est évident. Tout comme en l'an 640 l'internet l'était. Si les commentaires sont impossibles, c'est tout simplement parce que le moteur de blog utilisé ne permet pas d'en déposer sans l'utilisations de plug-ins que je n'installerais pas pour des raisons logicielles.

Bien sûr, j'accepterais volontier de lire une réponse correcte — contrairement à ce que j'ai eu jusque là —, écrite dans un français lisible — et non pas du kikoolol — sur un site tiers. Bien sûr, si cette réponse est écrite sur nutyx.org, je ne la lirais jamais pour la simple raison que j'en suis banni pour avoir écrit le premier article. Il faut dire que c'est pas comme si j'avais été banni pour ne pas y avoir été depuis des semaines…

Le totalitarisme justifié

J'ai dit dans mon précédent article que NuTyX était dirigée par une personne qui avait le comportement d'un tyran, et la communauté à répondu en confirmant ! Leur principal argument est qu'une distribution ne peut avancer si quelqu'un ne prend pas de décisions rapides et indiscuttées. La seule chose que j'aie à répondre est que les distributions vraiment Libres ont progressé et continuent de progresser beaucoup plus vite. Pour prendre Frugalware comme exemple, les décisions sont prises démocratiquement et la distribution gagne bien plus de contributeurs actifs et réguliers qui font des paquets de meilleure qualité et l'ensemble n'en est que bien plus réactif.

NuTyX, le monde de la vengeance

Là, c'est un peu différent. Pour faire simple, Tnut a lancé des scripts sur plusieurs ordinateurs pour réduire ma bande passante à coups de téléchargements massifs et stupides. Cette technique est celle utilisée pour faire des DoS. Je cite Wikipédia :

Une attaque par déni de service (denial of service attack, d'où l'abréviation DoS) est une attaque ayant pour but de rendre indisponible un service, d'empêcher les utilisateurs légitimes d'un service de l'utiliser. Il peut s'agir de :

  • l’inondation d’un réseau afin d'empêcher son fonctionnement
  • l'obstruction d'accès à un service à une personne en particulier

L'attaque par déni de service peut ainsi bloquer un serveur de fichiers, rendre impossible l'accès à un serveur web, empêcher la distribution de courriel dans une entreprise ou rendre indisponible un site internet.

Même après avoir demandé, Tnut n'a pas coupé son script de grignotage de bande passante. J'ai répondu avec un bannissement via iptables et attends qu'il coupe son script sur les deux PC sur lesquels il l'a lancé pour le débannir.

L'utilisation de ces méthodes montrent bien l'immaturité du créateur de la NuTyX.

EDIT: On dirait que Tnut a finalement décidé d'arrêter ses scripts autours du lendemain de la publication de cet l'article.

Censure, pseudo-gloire et réponses immatures

Une autre réponse de Tnut, face à des arguments construits, à part dire qu'ils ne le sont pas alors qu'il suffit de lire pour y voir une évidence, est d'utiliser son pouvoir de modération sur son salon IRC. Après la suppression du salon XMPP pour qu'on ne puisse plus y venir que par un protocole unique, plus facile à censurer, à été de mettre en application la censure sur le dit protocole unique. Ainsi donc, après avoir énnoncé clairement des arguments valables et modérés, je me suis retrouvé éjecté de trop nombreuses fois du salon.

Notons tout de même que je ne suis pas le seul à être banni de son serveur web et de nutyx.org. Kooda, qui me fourni un sous-domaine, l'est aussi, et ce sans raison, bien sûr.

Tnut et l'égo démesuré
1 [21:59:26] <tnut> NuTyX est + q'une distro
2 [22:01:11] <tnut> NuTyX c'est le travail d'un seul homme

Comme le montre la citation ci-dessus, NuTyX n'est faite que par Tnut. Tout les autres contributeurs ne sont que des « extras » pour Tnut. Le seul vrai travail, c'est lui, le grand Tnut qui l'a fait. Cette situation était justement dénoncée par mon précédent article, et après les réactions extrémistes des plus fanatiques, j'ai peur que cette situation ne s'arrangera qu'à la disparition de NuTyX.

Pas étonnant qu'il fasse tout pour que je me taise.

Et pour les paquets volés :

Je suis méchant, je sais…

…, et la vérité, ça fait mal.

Désormais, je suis très en colère contre Tnut et NuTyX. J'aurais espéré d'une distribution qui se dit mature des réponses matures, et non pas des tentatives de grignotage de bande passante ou autres actes irréfléchis.


Posté par Lukc | Lien permanent | Catégories : libre, crux-like

06/14/10

mkisocd

mkisocd

mkisocd est le script écrit par Tnut pour la création d'ISO d'installation de NuTyX. Le script étant assez peu flexible à la base, j'ai décidé de l'améliorer il y a un certain temps déjà. Le script est donc disponible sur l'un de mes dépôts git. (http://nebula.upyum.com/git/index.cgi/mkisocd/)

Un module eselect ?

Le script étant en CLI, l'interface est très basique. De base, les messages d'aide ou d'explications sur son utilisations étaient très, voir presque trop, limités. J'ai donc créé un module eselect pour palier à ce problème.

Le module eselect fait également interface à d'autres outils liés à mkisocd.

Une création de listes ?

mkisocd fonctionne de base uniquement avec des listes prédéfinies et assez difficiles à modifier, fournies par l'équipe de NuTyX. Le module eselect inclu donc un outil de création de liste, pour permettre de créer plus facilement des images CD personnalisées.

Extrait de code
 1  % eselect mkisocd
 2 Usage: eselect mkisocd <action> <options>
 3 
 4 Standard actions:
 5   help                      Display help text
 6   usage                     Display usage information
 7   version                   Display version information
 8 
 9 Extra actions:
10   iso <Liste> <Version>     Crée les images au format ISO et les md5sum et sha256sum associés.
11     Liste                     Liste logicielle à utiliser pour créer le CD d'installation.
12     Version                   Version de la distribution à partir de laquelle récupérer les paquets.
13   list <Nom> <Paquets>      Crée une liste de paquets utilisée pour la création d'une image CD ISO.
14     Nom                       Nom de la liste à créer.
15     Paquets                   Liste de paquets à ajouter ou supprimer.
16       Paquet                  Ajouter le paquet à la liste.
17       +Paquet                 Ajouter le paquet à la liste.
18       -Paquet                 Retirer le paquet de la liste.
19     --include=<Liste>         Inclure le contenu d'une autre liste.
20   list-up <Liste>           Met à jour les listes logicielles de base.
21     Liste                     Liste logicielle à mettre à jour.
22  %
Fonctions diverses

La mise à jour des listes de base depuis le site de NuTyX est également possible.

Aucune ISO n'a encore été testée avec ce script, pour cause de bannissement du serveur, et il est fort probable que des problèmes inattendus apparaitront, mais j'espère que le script modifié et son module eselect aideront les personnes qui en avaient le plus besoin.

Toutes les contributions sont bienvenues, ainsi que les rapports de bugs ou fautes de français.


Posté par Lukc | Lien permanent | Catégories : developpement, crux-like

05/17/10

Wesnoth, une longue histoire.

Wesnoth

Wesnoth est un jeu de stratégie en tour par tour, Libre et disposant d'une communauté de développeurs et utilisateurs importante. Son développement est rapide et continu.

N'y jouant que depuis la branche 1.4, je ne pourrais pas dire grand chose sur les versions antérieures.

Wesnoth avant la version 0.4

Il est difficile de récupérer les versions correspondant aux captures avant la version 0.4 de Wesnoth.

Cette image semble provenir de la première version disponible publiquement de Wesnoth. À ce moment, le moteur de Wesnoth ne permettait ni les transitions entre les terrains, ni les capacités spéciales, telles que le soin, l'empoisonnement ou autre.

Les balises WML n'en étaient également pas encore réellement. Toutes se fermaient par [end] au lieu de l'habituel [/balise].

Wesnoth 0.1

La capture suivante montre une nette amélioration, bien que l'ensemble reste peu esthétique. De vrais images ont été faites pour les unités.

Wesnoth 0.2 ?

Branche 0.4

La branche 0.4 comporte beaucoup de composants qui n'étaient pas encore implémentés dans les versions précédentes. Voir la liste ci-dessous.

  • Des transitions entre les terrains.
  • De nouvelles unités.
  • Des images parfois refaites pour les terrains.
  • Le jeu dispose d'un thème pour son interface.
  • Il y a maintenant des jours et des nuits.
  • Les unités peuvent avoir des capacités spéciales.

Wesnoth 0.4

Branche 0.5

On peut noter quelques améliorations graphiques, mais rien de vraiment important.

Wesnoth 0.5

Branche 0.7

Je n'ai pas trouvé d'images de la 0.6, mais j'en ai trouvé pour la 0.7.

Les améliorations semblent être surtout au niveau du nombre d'unités et de types de cases disponibles. On peut remarquer entre autre de la neige et des bandits, alors qu'il n'y avait avant que des humains, des elfes et quelques mort-vivants.

Wesnoth 0.7

Branche 0.8

Le jeu commence à prendre une forme plus agréable. Les châteaux ont été refaits, les unités peuvent évoluer plus de fois. Il faut noter que les forêts visibles ici seront utilisées jusqu'à la branche 1.4.

Wesnoth 0.8.4

Branche 0.9

Note : La lave et les gués sont encores utilisés actuellement, avec les mêmes images.

Wesnoth 0.9.1

Wesnoth 1.0

Le passage à la branche 1.0 est un grand moment dans l'histoire de Wesnoth. Les campagnes principales ont été refaites et leur scénario est encore d'actualité.

À partir de cette version, la numérotation des branches devient très stricte : 1.X où X est pair est une version stable, sinon la version est une version de développement.

Wesnoth 1.0

Branche 1.2

Les améliorations sont surtout graphiques. Quelques campagnes ont été ajoutées.

Wesnoth 1.2

Branche 1.4

D'autres campagnes ont été ajoutées. Le code des campagnes a aussi été amélioré, et plus de macros sont disponibles. Beaucoup d'extensions ont été faites pour la 1.4, et un grand nombre d'entre elles n'ont jamais été portées sur les versions plus récentes de Wesnoth.

Wesnoth 1.4

Branche 1.6

La branche 1.6 a été marquée par des changements graphiques importants. Les forêts ont été refaites et l'équipe du jeu a commencé à multiplier les terrains. D'autres terrains ont aussi été refaits, mais ce fut moins visible.

Wesnoth 1.6.3

Branche 1.8

Branche actuelle de Wesnoth. Les images de beaucoup d'unités ont été refaites, surtout chez les dracans. Une campagne a été ajoutée, plusieurs types de villages, plusieurs types de forêts et un nouveau château ont été faits.

Wesnoth 1.8.0

Il n'y a plus qu'à regarder pour voir les progrès qui ont été faits par l'équipe de Wesnoth depuis les premières versions jusqu'à maintenant.


Posté par Lukc | Lien permanent | Catégories : wesnoth

05/13/10

Wesnoth et Python : wmldata et wmlparser

J'ai (enfin) réussi à récupérer les outils en Python faits par l'équipe de Wesnoth pour parser les fichiers en WML. Ces fichiers permettent en effet de traiter n'importe quel fichier en WML valide. Les fichiers de configuration de Wesnoth peuvent donc être exploités avec ces outils, tout comme n'importe quelle autre application utilisant ces modules python pourrait utiliser des fichiers de configuration ayant la même syntaxe.

Il est à noter toutefois que les wmfsrc ne sont souvent pas écrits dans un WML valide. Le parseur de WMFS doit donc être beaucoup plus permissif, et sans doute puissant.

Lire un fichier WML ?

Le module wmldata dispose d'une fonction qui lit un fichier et retourne automatiquement un arbre contenant toutes les balises et toutes les variables du fichier en question. Le code ci-dessous lit le fichier truc.wml et affiche l'arborescence qui y correspond.

1 #!/usr/bin/python
2 
3 import wmldata
4 import wmlparser
5 
6 wml = wmldata.read_file("truc.wml")
7 
8 print(wml)

Voilà la sortie du programme donné :

 1 \ root (DataSub)
 2 
 3   \ main (DataSub)
 4 
 5     \ a (DataSub)
 6 
 7       \ v1 (DataText)'1'
 8       \ v2 (DataText)'2'
 9       \ v3 (DataText)'3'
10     \ b (DataSub)
11 
12       \ v1 (DataText)'1'
13       \ v2 (DataText)'2'
14       \ v3 (DataText)'3'
15     \ c (DataSub)
16 
17       \ a (DataSub)
18 
19       \ b (DataSub)

Et voilà le fameux « truc.wml » :

 1 [main]
 2         [a]
 3                 v1=1
 4                 v2=2
 5                 v3=_"3"
 6         [/a]
 7         [b]
 8                 v1=1
 9                 v2=2
10                 v3="3"
11         [/b]
12         [c]
13                 [a]
14 
15                 [/a]
16                 [b]
17 
18                 [/b]
19         [/c]
20 [/main]

Pour traiter une balise en particulier, on peut utiliser la méthode get_first(name). Donc, dans l'exemple suivant, si j'avais voulu récupérer les variables de la balise a placée dans la balise main, j'aurais utilisé wml.get_first("main").get_first("a").

Pour récupérer des variables, il y a la méthode get_text_val(name). La méthode prend en seul paramètre le nom de la variable et retourne sa valeur, ou None si la variable n'est pas présente.

Un fichier de configuration en WML ?

Avec ces outils, un fichier de configuration complet en WML serait possible. À titre d'exemple de ce qui est possible aisément.

 1 [www]
 2         [ui]
 3                 toolbar-style=small-icons
 4                 lang=fr
 5         [/ui]
 6         [html]
 7                 default-encoding=utf-8
 8                 default-font-size=9
 9         [/html]
10         [other]
11                 text-editor=gvim
12                 rss-reader=liferea
13         [/other]
14 [/www]

Bien sûr, ceci n'est qu'une image, et il serait préférable de trouver quelque chose de mieux à faire avec ce parser de WML qu'un navigateur web en Python…


Posté par Lukc | Lien permanent | Catégories : developpement, wesnoth

05/10/10

Prologue de Libre de poche

Trouvant le projet Libre de poche très intéréssant, j'ai décidé d'éssayer d'en écrire un petit morceau. Ce petit morceau est disponible ici pour le moment, et sera sans doute dans le prologue du livre.

Cet extrait est utilisable pour n'importe quel usage, par n'importe qui, n'importe quand, à la seule condition que ni mon nom, ni mon pseudo ne soient utilisés si le texte est modifié. L'équipe de Libre de poche peut le considérer comme un cadeau fait pour la communauté.

Beaucoup d'entre vous n'ont jamais entendu parler du Libre, et la plupart de ceux qui en ont entendu parler ne savent pas ce que c'est. Tout au long de ce livre, on parlera surtout du logiciel Libre, mais il faut savoir que, bien que le Libre soit né du logiciel, il se développe et se propage également dans d'autres domaines.

Désormais, des œuvres artistiques sont également Libres. On appelle ça l'« Art Libre ». Il est pour le moment surtout développé pour la musique et le graphisme Libre. Le cinéma Libre et quelques autres domaines suivront très rapidement. Associé à la littérature et aux œuvres scientifiques Libres, celà forme la « Culture Libre ».

Pour beaucoup d'acteurs du Libre, qu'il soit logiciel, artistique, culturel ou autre, le Libre est bien plus qu'un problème de licences. Pour eux, moi, nous, le Libre est une philosophie, une manière d'être et de penser, un modèle culturel et de partage idéal.

Ce livre vous montrera comment le Libre peut vous aider, que ce soit dans votre quotidient ou dans des cas particuliers.

Bon… c'est pas comme si je l'avais écrit en 5 minutes, entre mes devoirs d'allemand et ceux de physique.


Posté par Lukc | Lien permanent | Catégories : libre

05/09/10

NB_Attachements

NB_Attachements

NB_Attachements est un plugin Nanoblogger permettant de joindre des fichiers à des articles, comme c'est le cas de celui-ci.

La version 0.1 est la première version, et est peu testée. Il est possible de trouver des bugs. Si c'est le cas, n'hésitez pas à me contacter.

Installation

Téléchargez l'archive et extrayez attachements.sh. Vous devez mettre ce fichier dans le répertoire plugins/entry/. Pour que le plugin prenne réellement effet, il faut modifier le template entry.htm. Personnellement, j'ai mis chez moi la ligne suivante, à la fin du div blogbody.

1 $([[ $ATTACHED_FILES ]] && echo -e "<div class=\"attached\">\n$ATTACHED_FILES\n</div>")

À partir de là, toute entrée qui contiendra une ligne ATTACHEMENTS: au dessus des ----- créera une ligne de fichiers joints en dessous de votre article.


Posté par Lukc | Lien permanent | Catégories : developpement