Sahid Ferdjaoui Blog - Funraill Foundation Bienvenue, Log in - thème 2007 RC1

Powered by OpenSource Softwares

Outil de déboggage colaborative
reduire

Script Python svn_commit

le 19 avril 2008 par sahid

Simple script pour commit une liste de fichiers

Je me suis fait un petit script en Python permettant de commit une suite de fichiers inscrits dans un fichier texte. ca me permet de mieux gerer les fichiers que j’edite et ceux qui doivent etre envoyés sur le serveur svn.

Le plus simple est de placer le script dans ~/bin/svn_commit.

Le script python

  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3.  
  4. import sys
  5. import os
  6.  
  7. for rfile in sys.argv:
  8.    if rfile == sys.argv[0]:
  9.        continue
  10.    try:
  11.        cmd = “”.join (open (rfile, ‘r’)\
  12.                       .readlines ())\
  13.                       .replace (\n, ” “)
  14.        os.system (“svn commit “ + cmd)
  15.    except IOError:
  16.        print “le fichier ‘”+rfile+“‘ n’existe pas.”

Exemple d’utilisation

# malist_1
src/fichier.c
cfg/general.conf
img/image.png

~$svn_commit malist_1 malist_2

reduire

GNU Emacs, Fleuron du logiciel libre

le 17 avril 2007 par sahid

GNU Emacs, Editing macros

Présentation

Tout le monde connait Emacs, mais j’ai de nombreuses fois entendu qu’il était dépassé trop austÚre ou encore “compliqué” à prendre en main, personnellement, la premiere fois que j’ai démarré emac, je n’ai pas réussi à le fermer … ( ; néanmoins aujourd’hui je ne jure et ne développe que par lui. Pour présenter emacs, je vais utiliser un extrait du magnifique livre “Programmer avec les outils GNU” qui je pense définit dans ce petit paragraphe au mieux l’impact d’emacs dans le Logiciel Libre.

gnu emacs

“Fleuron du logiciel GNU, Emacs est aujourd’hui l’éditeur libre le plus répandu et, surtout, le plus apprécié du programme exigeant. Il consitue souvent un premier contact avec le monde du Logiciel Libre et, apres avoir taté de ses nombreuses fonctionnalités, beaucoup ne jurent plus que par lui. Pour notre part, nous pensons simplement que s’il fallait ne conserver qu’un seul outil gratuit, nous pencherions sans hésiter pour Emacs…” … et je suis de cet avis !

Pourquoi emacs est si compliqué

Tout d’abord emacs n’est pas compliqué, il utilise une certaine philosophie qui de nos jours disparait avec l’arrivée de la souris et du clic …Pourtant il me semble qu’en tant que développeur, la souris n’est pas trés utie, disons qu’elle gene meme, qui n’a jamais senti cette espece d’angoisse qu’on ressent en plein développement à devoir déplacer notre poignet confortablement installé au chevet du clavier, pour attraper la souris et tripatouiller dans les menus pour trouver une option particuliere, ou encore se déplacer à une certaine ligne ou je ne sais trop quoi.

Dompter Emacs

Il faut entrer dans le emacs, s’impregner de celui-ci, se coucher en pensant à lui …et quelques semaines apres on se dit tous … “mais comment je faisais avant?” (:

Configurer Emacs

Emacs est véritablement modulable et c’est ce qui rend ce logiciel legerement deroutant au premier abord,
m’enfin les choses importantes a savoir :

  • Emacs lit a chaque démarrage son fichier de configuration “~/.emacs”, à partir de lui on peut transformer emacs pour qu’il colle completement au doigt (;
  • la combinaison M-x “commande” permet d’executer une des milliers de commandes disponibles, ce qui est interessant c’est que la completion via la touche tab est fonctionnelle
  • C-x C-c permet de quitter emacs ( ;

Je ne vais pas lister ici toutes les commandes vraiment utiles pour dompter emacs, il existe deja pas mal de documents la dessus, je conseille meme d’utiliser l’excellent tutorial présent dans le logiciel (en francais).

Mon fichier de configuration

Pour ma part, mon fichier de configuration est plutot simple, disons que j’ajoute à emacs certains modes qui ne sont pour l’instant toujours pas disponibles en natif, de plus j’ai ajouté quelques raccourcis que j’utilise largement.

Perso. j’utilise emacs et non xemacs …oui bah j’suis un fan de Barry White et autres Seventies (;

Vous pouvez telecharger le paquetage avec les modes sur le depot
http://.labs.funraill.org/pub

  1. ;; == Repertoire des bibliotheques
  2. (add-to-list ‘load-path “~/.emacs.libs”)
  3.  
  4. ;; == Numerotation des lignes
  5. ;(load "setnu")
  6. (load “wb-line-number”)
  7. (wb-line-number-enable)
  8.  
  9. ;; == Completion du code
  10. (load “completion”)
  11. (initialize-completions)
  12.  
  13. ;; == Possibilite de supprimer la selection
  14. (delete-selection-mode t)
  15.  
  16. ;; == Affiche l’heure
  17. (display-time-mode t)
  18.  
  19. ;; == Affiche le numero du caractere de la ligne
  20. (column-number-mode t)
  21.  
  22. ;; == Coloration syntaxique
  23. (global-font-lock-mode t)
  24.  
  25. ;; == Couleur zone selectionnee
  26. (transient-mark-mode t)
  27.  
  28. ;; == Force l’indentation a 2 espaces
  29. (custom-set-variables ‘(tab-width 2))
  30.  
  31. ;; == Force l’espacement de tabulation
  32. (setq-default indent-tabs-mode nil)
  33.  
  34. ;; == Configurations du clavier
  35. (global-set-key [(control j)] ‘complete)        ;; [Ctrl+Ret] Completion
  36. (global-set-key [(control g)] ‘goto-line)       ;; [Ctrl+G] Aller a la ligne indiqué
  37. (global-set-key [f9] ‘compile)                  ;; [F9] Commande compile
  38. (global-set-key [(control f)] ‘isearch-forward) ;; [Ctrl+F] Recherche
  39.  
  40. ;; == Edition de code PHP
  41. (autoload ‘php-mode “php-mode” t)
  42. (setq auto-mode-alist (append((\\.php$” . php-mode)) auto-mode-alist))
  43.  
  44. ;; == Edition de code Javascript
  45. (autoload ‘javascript-mode “javascript-mode” t)
  46. (setq auto-mode-alist (append((\\.js$” . javascript-mode)) auto-mode-alist))
  47.  
  48. ;; == Edition de code C/C++ style GNU
  49. (lambda ()
  50.   (c-set-style “gnu”)
  51.   (c-toggle-auto-state t)
  52.   (c-toggle-hungry-state t)
  53. )
reduire

Code Blocks OpenSuSE 10.2

le 11 décembre 2006 par sahid

Code Blocks RC2 et autoconf < 1.5

Code::Blocks

La derniÚre version release de code blocks, a ce qu’on appelle un petit bug, si on utilise une version supérieure à la 1.5 de autoconf (c’est le cas pour la openSUSE 10.2).
Donc, ce bug a été fixé, néanmoins, pour pouvoir compiler code block sur votre openSUSE 10.2, il vous faudra récuperer la derniÚre version du cvn, cette version est aussi légerment bugé, vous risqué de voir apparaitre “codeblocks: error while loading shared libraries: libcodeblocks.so.0: cannot open shared object file: No such file or directory”, avec une petite astuce, ca passe tous seul…

Installation Code Blocks openSUSE Linux 10.2

  • # mkdir codeblocks
  • # cd codeblocks
  • # svn checkout http://svn.berlios.de/svnroot/repos/codeblocks/trunk
  • # cd trunk
  • # chmod +x boostrap
  • # ./boostrap
  • # ./configure & make
  • # su
  • # make install
  • # export LD_LIBRARY_PATH=:/usr/local/lib
reduire

Apache2 rewrite_mod, mapping url

le 20 août 2006 par sahid

Installation du Rewrite Module pour Apache2 sous OpenSuSE

Introduction

Le Rewrite_mod pour apache ou la réécriture url est plutÃŽt à la mode ces temps-ci, une des raisons les plus marquantes est le référencement, là ou les moteurs de recherche ont du mal à suivre des url exotiques comme “www.monsite.org/?page=mail&action=envoyer” l’utilisation du rewrite_mod coupler à un MVC (Model View Controler) (voir framework zend) en Php permet d’obtenir des url bien plus parlantes “www.monsite.org/mail/envoyer”

Installation du module: rewrite_mod

L’installation est en fait assez simple, il suffit d’ajouter la ligne “LoadModule rewrite_module /usr/lib64/apache2-prefork/mod_rewrite.so” dans le fichier de configuration des modules d’Apache2 pour OpenSuSE

Donc: En root (commande: su) on édite le fichier /etc/apache2/sysconfig.d/loadmodule.conf et on ajoute la ligne LoadModule rewrite_module /usr/lib64/apache2-prefork/mod_rewrite.so

Installation module rewrite-mod

Redemarrage d’ Apache2 : apache2ctl restart