Wednesday 27 September 2006

XGL - Un bureau à la MAC OS

Depuis longtemps les interfaces graphiques des différentes versions des distributions de linux restent en retard et n'inovent pas beaucoup. Ainsi Gnome et KDE sont bien en retard face à leurs concurent de chez MAC OS ou même Microsoft


Mais ca y est il y a du nouveau avec XGL, permettant entre autre des bureaux en 3D (autour d'un cube), de la vrai transparence sur les fenêtres, et certaines animations bien sympatiques et bien d'autres surprises
Pour plus d'info : http://www.novell.com/linux/xglrelease/
Il y a même des videos, le tout est vraiment sympa... à tester

Et voici comment l'installer sur Ubuntu (Version dapper minimum)

Wednesday 20 September 2006

Du Spam sur mon blog

La nouvelle cible du spam est le blog.
Etant donné que j'utilise DotClear qui est un des blogs les plus répendus, le spam sur ce blog est assez facile. Et j'en ai été la cible à hauteur d'une dixaine par jour sous forme de Trackback.
Heureusement il existe des parades. J'ai opté pour spamplemouse (installer) mais il existe aussi un captcha (installer)

Monday 11 September 2006

Installer un serveur subversion

Comme il ne sert à rien de ré-écrire ce qui l'a déja été, j'ai trouvé un post assez interressant pour installer un serveur SVN. Le tout est ici

Update Comme le site est maintenant hors ligne, j'ai copier le contenu ici grace à wayback machine


Pour ceux qui ne connaissent pas encore, Subversion est un outil open source de contrôle de versions. En d'autres termes, il vous permet de mettre en place un serveur de stockage qui garde en mémoire toutes les versions successives de vos fichiers. Ainsi, vous pourrez à tout moment revenir à une ancienne version de votre code, ou visualiser l'historique des modifications apportées. Ce système est bien sûr très intéressant lorsque l'on travaille en équipe : chacun peut récupérer une copie du code en local, travailler dessus, et mettre à jour le code sur le serveur. Le système prendra soin de résoudre les conflits possibles : imaginez que 2 développeurs travaillent sur leur version locale d'un même fichier. L'un deux met à jour le fichier en question sur le serveur (avec ses modifications). Quand l'autre développeur souhaitera mettre à jour le fichier sur le serveur, le système lui proposera de "mélanger" ses modifications avec celles du premier développeur.

Tout d'abord, installez les paquetages nécessaires : (Apache 2 étant déjà installé)
apt-get install subversion
apt-get install libapache2-svn

Supposons que vous souhaitez placer votre repository dans /home/[username] et le nommer dev. Vous devez placer ceci dans /etc/apache2/apache2.conf :

<Location /dev>
   DAV svn
   SVNPath /home/[username]/dev
   AuthType Basic
   AuthName "Documentation Team Repository"
   AuthUserFile /etc/subversion/passwd
   <LimitExcept GET PROPFIND OPTIONS REPORT>

     Require valid-user
   </LimitExcept>
</Location>

Redémarrez Apache :
/etc/init.d/apache2 force-reload

Créez le repository :
svnadmin create /home/[username]/dev

Créez un fichier de mot de passe :
htpasswd2 -c /etc/subversion/passwd [username]

Donnez les droits d'accès au repository à Apache :
chown -R www-data.www-data /home/[username]/dev

Normalement vous devriez pouvoir accéder au repository dans un navigateur : http://[servername]/dev
Vous devez maintenant créer une structure de dossiers pour votre projet. Fréquemment, un projet de développement peut se retrouver scindé en plusieurs branches. En effet, si vous souhaitez remodeler en profondeur un projet tout en laissant la possibilité à d'autres développeurs de continuer à débugguer une version stable existante, vous devez créez une nouvelle branche avec laquelle travailler. Ces branches seront donc stockées dans un dossier "branches" tandis que la version principale du code en cours de développement sera placées dans un dossier "trunk".
Un autre concept à connaître est celui des tags : l'inconvénient du versioning, c'est que les numéros de révision ne sont pas toujours très parlants : difficile de se souvenir que la révision 4822 est en fait la version 1.2 du logiciel. Les tags sont donc des instantanés du projet à un moment donné, ce qui permet de leur attribuer un nom plus user-friendly. Un dossier "tags" est donc nécessaire dans votre structure.

Voici donc l'arborescence que vous devez créer :

/project/branches/
/project/tags/
/projet/trunk/
          file1.php
          file2.php
          ...

Ceci fait, vous devez importer la structure dans le repository. Si vous avez créé votre structure dans /home/[username] :
svn import /home/[username]/project http://[servername]/dev -m "initial import"


j'ai détaillé la procédure d'installation d'un serveur Subversion sous Ubuntu. L'exemple que j'avais donné n'est toutefois valable que pour un seul dépôt (repository), et donc un seul projet. Comme il est rare pour un développeur de travailler sur un seul projet à la fois, voici quelques indications pour créer plusieurs dépôts sur un même serveur.

Nous supposerons que le serveur est installé et que vous souhaitez placer vos dépôts dans un dossier /var/svn (que vous aurez préalablement créé). Pour chaque dépôt, voici la procédure à suivre :

sudo svnadmin create /var/svn/project
sudo chown -R www-data.www-data /var/svn/project
sudo svn import /path/to/your/project http://[server_name]/svn/project -m "initial import"

Vous devez également modifier votre /etc/apache2/apache2.conf :

<Location /svn>
   DAV svn
   SVNParentPath /var/svn
   AuthType Basic
   AuthName "Documentation Team Repository"
   AuthUserFile /etc/subversion/passwd
   <LimitExcept GET PROPFIND OPTIONS REPORT>

     Require valid-user
   </LimitExcept>
</Location>
Il ne vous reste plus qu'à redémarrer Apache !