Pages

dimanche 23 septembre 2007

Sharon: un beau dimanche !

Dimanche très agréable, aujourd'hui, j'ai à nouveau eu le privilège de m'occuper de Sharon en exclusivité. Nous avons commencé par un peu de travail en carrière. J'ai voulu prendre les antérieurs de Sharon pour dégager la peau sous la sangle avant de la monter. Malheureusement, la jument est toujours aussi réticente à donner ses épaules depuis qu'elle a dû connaître un petit écart d'épaule. Je renonce donc à la forcer car elle se retient beaucoup. Le plus étonnant c'est qu'une fois montée, la jument ne présente pas de gêne particulière au travail.

Toujours est-il qu'après une détente sur des rênes semi-longues au pas avec un pli correct de l'encolure, la jument utilise son dos correctement et se place très facilement dès que je lui demande de s'engager avec la jambe intérieure.
Nous travaillons au pas, trot et galop comme à l'accoutumée, mais les départs au galops ne sont pas terribles, la jument est surprise, elle trottine avant de tomber au galop. En faite, j'utilisais mes aides en plaçant la jument avec la jambe intérieure. Lorsque j'ai demandé le galop en plaçant la jument avec la jambe extérieure, les départs étaient formidables. Je n'ai pas encore analysé le pourquoi du comment, mais le faite est bien là.

Après un petit travail d'une demi-heure, nous partons pour 30 minutes de ballade. Au menu, un peu de dénivellé, du trot, et beaucoup de pas, sur de rênes mi-longues, mais toujours avec une idée de travail, c'est à dire avec un dos solide.

Pour finir, je douche la jument seulement jusqu'à mi-côtes (sans mouiller ni dos ni reins) car il commence à faire un peu frais et je ne voudrais pas qu'elle se mette à tousser. Après 20 minutes de pré, la jument a droit à 1 bon kilo de carottes de retour au box.

Bref, le dimanche de rêve ...

vendredi 21 septembre 2007

Sharon : j'affine ma technique

Aujourd'hui, je suis parti en ballade pour détendre la jument. je connais un petit tour qui doit être faisable en 30 minutes environ. Ce tour démarre par une bonne moitié de goudron, d'abord du plat, puis une montée. Ensuite, je prend un chemin pierré, où je peux mettre la jument au trot sur un bon 500m. Ensuite, je reprend le pas pour retourner aux écuries en descente (en prenant garde aux nombreuses rigoles métalliques pour l'évacuation des pluies, car celles cî ne sont pas perpendiculaires au chemin, mais "en diagonale". Il faut donc veiller à faire passer la jument en la pliant de manière à ce qu'elle franchisse les rigoles perpendiculairement).

Après cette détente agréable mais néanmoins musclée (les trotting en extérieur sont toujours plus éprouvants pour les chevaux, surtout quand il y a un peu de dénivellé), nous prenons la direction de la carrière pour effectuer un petit travail au trot et galop. Là la séance a été exceptionnelle. La jument était dans le moule, libre de ses mouvements, et à l'écoute de mes aides à la fois.

En faite, j'ai affiné ma "théorie" : plutôt que de systématiquement utiliser la jambe externe pour mettre la jument sur la main, je dirais qu'il faut utiliser cette méthode pour venir à bout d'un cheval qui ne veut pas donner sa nuque puis sa bouche, mais ensuite, lorsque le cheval a compris le principe de ces aides, il faut très vite lui apprendre à se tendre sur la rêne extérieur, en appliquant la jambe intérieure à la sangle. C'est la seule technique qui permette d'avoir un controle absolu sur le cheval.

Ainsi, si je récapitule mes idées, je dirais que la mise sur la main se fait en poussant le cheval sur la rêne intérieur, et la mise en main, en le poussant contre la main extérieur.

Mise sur la main :
-1- poids à l'extérieur
-2- rêne intérieure qui agit par le jeu des phalanges en rêne d'ouverture
-3- jambe extérieure légèrement en retrait qui vient pousser le cheval sur la main intérieure.

Une fois que le cheval a compris, on passe à la mise en main :
-1- poids à l'extérieur
-2- rêne intérieure qui agit par le jeu des phalanges en rêne d'ouverture
-3- jambe intérieure à la sangle qui vient pousser le cheval contre la main extérieure, en demandant l'engagement du postérieur interne.

Sharon : après le beau temps ... La pluie

Eh oui, mercredi je n'ai pas donné de nouvelles. C'est curieux mais avez vous remarqué que quand celà ne se passe pas bien, je n'ai pas goût à épiloguer sur mes échecs ... A méditer ...

En gros, mercredi, la jument n'était pas bien : je la sentais "flottante", elle n'était pas dans le moule et se dandinait comme une anguille, malgré mes efforts pour appliquer ma méthode. Pour finir, je me suis dit que peut-être elle n'était pas assez impulsionnée. Du coup, j'ai voulu profiter du faite qu'un entier quittait la carrière pour la lancer dans un galop effreiné dans sa direction. Que n'avais-je pas fait là ! Arrivé au bout de la carrière (vers la sortie), j'ai eu toutes les peines du monde à la faire prendre le tournant pour rester sur la carrière ...
Et de là s'en est suivi une lutte assez pitoyable pour arrêter la jument. J'avais beau agir avec une seule rêne en mettant mon poids à l'opposé, celà n'avais pour effet que de la mettre en cercle, mais elle résistait toujours, et malgré les kilos dans la bouche (oui je sais j'ai honte), elle ne cédait pas. Finalement, je l'ai arrêté, mais à quel prix ! Ensuite, pas fin pour deux sous, je l'ai lancé à nouveau au grand galop en direction opposée ... Et rebelotte !
Nul, trop nul. En plus, je sais que la jument est émotive, est qu'elle a besoin d'être rassurée. j'aurais certainement pu l'arrêter simplement en lui glissant des "ho hooooo" langoureux, mais non, trop fier pour lui témoigner du soutient, je me suis entêté à n'utiliser que mes mains.

J'ai retiré de cette expérience, que je me suis promis d'essayer de la rassurer de la voix, à chaque fois qu'elle perdrait confiance et se mettrait à tirer. L'avenir me dira si j'ai pris la bonne décision(jusque là, je pensais qu'elle devait simplement obéir à mes mains, mais peut-être que la jument ne répondait pas aux mains du fait de son anxiété. De plus, en épreuve de dressage, il me semble qu'il est interdit d'utiliser la voix).

Jeudi fut un jour de repos pour Sharon car je n'ai pas pu lui rendre visite.

mardi 18 septembre 2007

Sharon : toujours mieux !

Une fois de plus, je n'ai pu que me féliciter d'appliquer cette "nouvelle" méthode. J'écris "nouvelle" entre guillemets car en faite, j'avais appliqué cette méthode avec succès à Kiwi, puis Flicka.

Ce soir, la jument était impeccable. Très à l'écoute, sensible dans sa bouche, elle suivait mes indications. C'est fou comme elle change, je la sens respirer, elle ne travaille plus en compression, mais c'est tout son dos qui se met à fonctionner, et elle est vient en place très vite dès la détente.
Les trajectoires ne sont pas encore bonnes car je me concentre essentiellement sur le fait qu'elle doive toujours céder à la main. Qui plus est, ce soir, la carrière est détrempée car il a plu aujourd'hui, et il n'est pas facile de jongler entre les flaques. La température est tombé à 9°C, les premiers froids vont arriver, sans doute que les chevaux vont devenir plus joueurs. En attendant, depuis hier, il y a eu 2 chevaux qui ont fait des coliques aux écuries (dont Joyce, la voisine de Sharon, qui est portante). Les chevaux n'apprécient pas les changements de temps aussi brusques.

lundi 17 septembre 2007

REBOOTER SUR UNE PARTITION DONNEE DU CHARGEUR GRUB

Il est possible de demander un reboot sur une des entrées du fichier de configuration de GRUB : /boot/grub/menu.lst :

# grub-reboot 2


Cette commande redémarre le PC avec la 3ème entrée définie dans le fichier menu.lst.

Sharon : confirmation

Aujourd'hui, j'ai remonté Sharon après 3 jours "off". En effet, sa propriétaire étant en vacances et moi en week-end, la jument a été sortie de son box par Guy, mais uniquement en liberté dans la carrière.

J'ai été heureux de voir que ce repos lui a été bénéfique. Après une mise en avant sur des rênes très lâches, je lui ait fait exécuter une série de changements de direction au pas, mais de manière très franche. C'est à dire que la jument qui avance toujours énergiquement, devait répondre au quart de tour à mes demandes. Pour celà, les rênes étant très longues, j'ai utilisé l'aide du poids du corps et de la jambe (du même côté). Ainsi, pour tourner à droite, poids du corps sur l'ischion gauche, jambe gauche au contact et rêne droite d'ouverture. Une fois la courbe enclenchée, faire quelques pas et inverser les aides. Je pense que cet exercice permet de détendre la jument au mieux. En effet, la bouche est épargnée, mais on exerce cependant un contrôle assez puissant sur le cheval, et permet de le conditionner à obéir aux différentes aides.

Une fois la jument échauffée au pas, je prend le trot et réitère mon exercice en veillant à ne pas lui faire décrire des cercles trop petits. Si elle précipite, la faire ralentir en inversant les aides fréquemment (sans pour autant changer de main). Celà permet de rompre les appuis que le cheval peut avoir pour résister à la main, sans pour autant augmenter la pression sur sa bouche.

Après avoir fini cette détente, j'arrête la jument et lui demande des flexions d'encolure de chaque côté, avec les mêmes aides que précédemment, mais sans appliquer la jambe. La jument ne doit pas avancer, mais simplement suivre la rêne qui demande l'action. Au début, la jument n'est pas très coopérante et résiste un peu à mes demandes. Mais en y allant très doucement et avec le moins de main possible, elle finit par se sensibiliser à ce contact, et se décontracte dans son encolure. Pour finir, je lui demande une cession de mâchoire en serrant les doigts sur la rêne externe, pour faire jouer le mors dans sa bouche.

Le travail commence alors (ou se poursuit). On prend le pas, en ajustant les rênes un peu plus et en essayant d'obtenir une attitude du devant plus ronde et plus relevée. On conserve le même principe d'application des aides, mais avec beaucoup plus de finesse cette fois pour parvenir à décrire des cercles de qualité. C'est à dire qu'il faut sans cesse veiller à redresser le cheval sur le cercle en inversant les aides mais de manière très discrète et subtile. Les changements de poids et les actions de jambe et de main sont très mesurées, et la jument répond très bien à celles cî. Elle est très à l'écoute.

Je prends le galop depuis l'arrêt. La jument bondit en avant et je dois la reprendre tout doucement, mais son impulsion est bonne et je sens que je suis en équilibre dessus, signe que son dos travaille correctement.

Demain, sa propriétaire revient. J'espère que la jument ne sera pas trop déboussolée par les différences des aides, et que sa propriétaire "retrouvera les boutons".

vendredi 14 septembre 2007

FAIRE UN SCRIPT SHELL AVEC AIDE ET PARSER DE LIGNE DE COMMANDE

#!/bin/sh
# vim: set sw=4 ts=4 et:
help()
{
cat <Write usage and help text here
HELP
exit 0
}

error()
{
# print an error and exit
echo "$1"
exit 1
}

# The option parser, change it as needed
# In this example -f and -h take no arguments -l takes an argument
# after the l
while [ -n "$1" ]; do
case $1 in
-h) help;shift 1;; # function help is called
-f) opt_f=1;shift 1;; # variable opt_f is set
-l) opt_l=$2;shift 2;; # -l takes an argument -> shift by 2
--) shift;break;; # end of options
-*) echo "error: no such option $1. -h for help";exit 1;;
*) break;;
esac
done

# The main program of you script comes after this line
error "ERROR: This is a generic script framework you must modify it first"
#

FAIRE UN MENU DE CHOIX EN SHELL

The select statement is a bash specific extension and is very good for interactive use. The user can select a choice from a list of different values:

select var in ... ; do
break
done
.... now $var can be used ....

Here is an example:

#!/bin/sh
echo "What is your favourite OS?"
select var in "Linux" "Gnu Hurd" "Free BSD" "Other"; do
break
done
echo "You have selected $var"

Here is what the script does:

What is your favourite OS?
1) Linux
2) Gnu Hurd
3) Free BSD
4) Other
#? 1
You have selected Linux

ENVOYER UN FAX GRATUIT AVEC FREE

1) Scanner le document et le sauvegarder en JPEG, ou si c'est un document word, l'exporter en PDF avec openoffice

2) Lancer la commande suivante pour en faire un PDF au format A4 (très important sinon c'est refusé par free)
$ sam2p -m:bottom:28bp -m:top:28bp -e:rot:0 faxe.jpeg faxe.ps && sam2p faxe.ps faxe.pdf && rm faxe.ps

3) Aller sur l'interface de free et connectez vous à votre compte pour l'envoyer :
http://www.free.fr

AUTORISER LA GENERATION DE FICHIER CORE EN CAS DE PLANTAGE

En cas de crash violent (message Segmentation fault) autoriser la production de fichiers core grâce à :

#Set user limit (accept core files and remove limit of stack size)
$ ulimit -c unlimited
$ ulimit -s unlimited

MONTER UNE CLE USB

Il faut que les modules suivant soient chargés s'ils ne sont pas compilés dans le noyau :

# lsmod |grep usb
usb_storage 69056 1
usbcore 119044 5 usb_storage,ehci_hcd,uhci_hcd
ide_core 139940 5 usb_storage,ide_cd,ide_generic,piix,ide_disk
scsi_mod 125228 3 usb_storage,sd_mod,libata

Pour les charger manuellement :
# modprobe ide_core
# modprobe usbcore
# modprobe ehci_hcd
# modprobe uhci_hcd
# modprobe scsi_mod
# modprobe sd_mod
# modprobe libata
# modprobe usb_storage

Pour charger automatiquement au démarrage, ceux qui ne sont pas compilés dans le noyau, il faut les ajouter au fichier
/etc/modules

Je ne sais pas encore pourquoi mais certaines clés sont reconnues en scsi sous /dev/sda et d'autres sous /dev/sda1. Si on ne parvient pas à en monter une, c'est peut-être qu'on la cherche à un mauvais emplacement : lister avec un ls -l /dev/sd*

LIMITER LES ACCES RESEAUX AUX SERVICES LINUX

# vi /etc/hosts.deny
ALL: ALL

# vi /etc/hosts.allow
sshd: 192.168.1.

CREER UNE BIBLIOTHEQUE STATIQUE AVEC AR

Les noms des fichiers des logitèques doivent commencer par lib et se terminer par .a. Pour créer la logithèque, il faut compiler chacun de ses composants avec les option -c et -o, comme dans les exemples précédents, puis utiliser le programme ar pour construire la logithèque :
$ ar qvs libprog.a lire.o ecrire.o

Au moment de l'édition des liens du programme prog, il faudra spécifier à la commande gcc l'option -l pour lui indiquer le nom de la logithèque d'où gcc devra puiser les programmes objets référencés par le programme prog. Notez que la commande gcc extensionne automatiquement le nom suivant le paramètre -l en le faisant précéder de lib et le faisant suivre de .a (convertissant prog en libprog.a dans notre cas) :
$ gcc prog.o -lprog -o prog

COMPILER EN LIGNE DE COMMANDE AVEC GCC

Pour faire la compilation et l'édition des liens du programme prog.c et produire le fichier exécutable prog :
$ gcc -o prog prog.c
Pour compiler un fichier c en fichier objet :
$ gcc -c -o fichier1.o fichier1.c
$ gcc -c -o fichier2.o fichier2.c
Faire l'édition de lien de 2 fichiers objets (dont l'un contient un main) vers un executable 'prog':
$ gcc -o prog fichier1.o fichier2.o

CONFIGURER UN SERVEUR X AVEC GNOME ET XFCE4

Installer les paquets : # apt-get install x-window-system-core
# apt-get install xdm
# dpkg-reconfigure xserver-xfree86
# apt-get install gdm
# apt-get install xfce4

gdm est lancé par init au démarrage de la machine par le script /etc/rc2.d/S21gdm
Fichier de conf de gnome : /etc/X11/gdm/gdm.conf
Il contient une variable SessionDesktopDir=/etc/X11/sessions/:/etc/dm/Sessions/:/usr/share/gdm/BuiltInSessions/:/usr/share/xsessions/
Le dossier /usr/share/xsessions/ contient un fichier xfce4.desktop qui décrit le desktop manager xfce comme suit :

[Desktop Entry]
Encoding=UTF-8
# The names/descriptions should really be better
Name=Xfce Session
Comment=Use this session to run Xfce as your desktop environment
Exec=startxfce4
Icon=
Type=Application

On pourra donc le sélectionner dans l'invite d'accueil de gnome, puis ensuite demander de se loguer avec le même desktop que précédemment.

SAUVEGARDER LA CONFIGURATION SON AVEC ALSA

Pour configurer le son :
# alsaconf

Pour régler les volumes :
# alsamixer
ou mieux :
# alsamixergui

Utiliser l'utilitaire alsactl qui sauvegardera les différents volumes audio sous '/var/lib/alsa/asound.state' :
# alsactl store

FAIRE UNE RECHERCHE WEB SUR UN SITE DONNE AVEC GOOGLE

La recherche peut se faire avec une URL google de la manière suivante :
http://www.google.com/search?sitesearch=%2F&q=

ex : http://www.google.com/search?sitesearch=lists.trolltech.com%2Fqt-interest&q=signal+string

Ou alors en tapant dans la recherche :
site:rapidshare.com cheval

COMPILER UN PROJET QT AVEC QMAKE

1) Se positionner dans le répertoire où se trouvent les sources et lancer
$ qmake -project
qui va générer un fichier nom_repertoire.pro

2) Editer le .pro pour le modifier et lancer
$ qmake
qui va générer le Makefile équivalent

3) Ne jamais éditer le Makefile, toujours repasser par le .pro

4) Si on veut regénérer le Makefile par la suite :
$ make distclean && qmake

5) Par défaut, Qt semble linker avec les librairies de debug, sin on ne le souhaite pas, ajouter une ligne au .pro :
CONFIG += release warn_on qt thread

RECUPERER UNE INFO DANS UNE COLONNE D'UN FLUX MATERIALISEE PAR DES ESPACES

Faire un pipe vers "tr -s ' ' " pour supprimer les répétitions de l'espace et ainsi pouvoir repérer les colonnes. exemple :

Récupérer la version de libc6 installée :
$ dpkg -l libc6|grep libc6|tr -s ' ' |cut -d' ' -f 3

SUPPRIMER UN FICHIER AVEC UN NOM AVEC CARACTERE ILLEGAL PAR SON INODE

Il arrive qu'un fichier qui comporte un caractère illégal dans son nom soit créé par une application. Dans ce cas, la commande rm ne fonctionne pas puisqu'on ne peut pas nommer le fichier. Voici un élément de réponse :

- récupérer son inode :
$ ls -i *
- le supprimer
$ find . -inum $num_inode -exec rm {} \;

VERIFIER UNE SIGNATURE MD5

Générer la signature :
$ md5sum mon_fichier > mon_fichier.md5

Vérifier :
$ md5sum -cv mon_fichier.md5

On peut contrôler un répertoire entier avec le script md5.sh suivant :

#!/bin/sh

# Calculate md5sum of each files or directories in argument
rm -f /tmp/archive.files
rm -f /tmp/archive.md5
find $@ -type f > /tmp/archive.files
for files in `cat /tmp/archive.files`
do
md5sum $files >> /tmp/archive.md5
done
echo "You can get the md5 file at : /tmp/archive.md5"
echo "To check your files, just do a : md5sum -cv /tmp/archive.md5"

CONNAÎTRE LES VARIABLES D'ENVIRONNEMENT D'UN PROCESSUS

Il faut utiliser le script ~/showenv.sh PID :

#!/bin/sh
# showenv - show environment of a process, by PID
# If second argument given, show just that one environment variable.

f=/proc/$1/environ

if [ ! -r "$f" ]; then
echo "`basename $0`: can't access process $1" 1>&2
exit 1
fi

case $# in
1) tr '\000' '\012' < $f | sort ;; 2) tr '\000' '\012' < $f | grep "^$2=" ;; *) echo "Usage: `basename $0` pid [envariable-name]" 1>&2; exit 1 ;;
esac

LOGS / TRACES TOURNANTS DU SYSTEME

On peut configurer des logs tournants avec le package logrotate pour que certains fichiers soient vérifiés selon leur taille ou leur ancienneté et ensuite compressés ou effacés. On peut définir également le nombre de fichiers compressés qu'on souhaite conserver.
La configuration de logrotate s'effectue dans /etc/logrotate.conf et si on inclus la ligne :
include /etc/logrotate.d/
on pourra définir des configurations de rotations pour certains fichiers/répertoires avec les configurations contenues dans /etc/logrotate.d.
Exemple :

fichier /etc/logrotate.d/gen :
/home/lbs_p/gen/logs/log_* {
daily
size=2M
missingok
rotate 5
compress
# delaycompress
notifempty
create 640 root adm
}

IMPRIMER UN FICHIER PDF SOUS LINUX

La commande lpr ne fonctionne pas, dans acroread, il faut utiliser :
$ lp -c -d NOM_IMPRIMANTE NOM_FICHIER

ANALYSER UN FICHIER CORE AVEC GDB

$ gdb fichier_programme fichier_core_généré
(gdb) bt

la commande bt (BackTrace) remontera la pile des appels de fonctions précédent le crash

AJOUTER UNE COMMANDE A SUDO

Exemple de configuration du fichier /etc/sudoers (avec l'utilitaire #visudo)

Cmnd_Alias HALT=/sbin/halt
Cmnd_Alias REBOOT=/sbin/reboot

# User privilege specification
root ALL=(ALL) ALL
myuser ALL=NOPASSWD: /usr/sbin/pptpconfig
myuser ALL=NOPASSWD:HALT,NOPASSWD:REBOOT

SYNCHRONISATION DE TEMPS GUEST LINUX VMWARE/ HOTE WINDOWS

Il faut modifier le fichier /usr/src/kernel-source-2.6.8/include/asm-i386/param.h des sources du noyau 2.6.8 et le recompiler.
Trouver la définition de la fréquence du timer d'interruption :
#define HZ 1000
Passer sa valeur à 100 :
#define HZ 100

COMPILER UN NOYAU LINUX 2.6

Télécharger le code source du noyau
$ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.8.tar.bz2
ou sur debian :
# apt-get install kernel-headers-$(uname -r) kernel-source-$(uname -r)

Décompresser le code source
$ tar xvjf linux-2.6.8.tar.bz2

Nettoyer les anciennes compilations (si besoin)
$ make mrproper

Configurer le noyau
(Cette opération va générer un fichier .config qui contiendra toutes les options paramétrées pour la compilation du nouveau noyau)
$ make menuconfig (ou xconfig ou config)
A noter que si l'on souhaite compiler le noyau avec les mêmes options que son noyau actuel, il suffit de remplacer l'opération précédente par :
$ cp /boot/config- .config
$ make oldconfig # repondre a toute question par entree

Compiler le noyau
$ make bzImage

Compiler les modules
$ make modules

Déplacer le noyau vers /boot
$ cp ./arch/i386/boot/bzImage /boot/vmlinuz-2.6.8-cmp

Déplacer la table de symboles vers /boot
$ cp System.map /boot/System.map-2.6.8-cmp

Installer les modules
$ make modules_install

Créer un fichier "RAM disk" si on n'a pas de disque dur IDE
$ cd /lib/modules/2.6.8
$ mkinitrd -o /boot/initrd-2.6.8-cmp 2.6.8

Configurer GRUB, le chargeur de boot avec le nouveau noyau :

title Debian GNU/Linux, new recompiled kernel
root (hd0,0)
kernel /boot/vmlinuz-2.6.8-cmp root=/dev/hda1 ro
initrd /boot/initrd-2.6.8-cmp
savedefault
boot

UTILISER SUBVERSION (SVN)

L'argument d'une révision peut être :
NUMÉRO numéro de la révision
'{' DATE '}' révision disponible à cette date au format {aaaa-mm-jjThh:mm:ss}
'HEAD( dernière révision du dépôt
'BASE' rév. de base de la copie de travail
'COMMITTED' dernière propagation à ou avant BASE
'PREV' révision juste avant COMMITTED


Ajouter un répertoire et son arborescence
-----------------------------------------
svn add mon_rep
svn commit mon_rep -m "Ceci est la description de ce répertoire"

Récupérer une copie de travail SVN
----------------------------------
Se placer à l'endroit de la partition où on souhaite récupérer l'arborescence :
cd ~/svn/dev
récuperer l'arborescence Tracking :
svn co http://rd-cvs/svn/gc/CURRENT/dev/Tracking

Connaître les informations sur une arborescence locale
------------------------------------------------------
svn info

Connaître les révisions et leur auteur sur un fichier donné
-----------------------------------------------------------
svn blame monFichier.cpp > /tmp/monFichier.cpp.svn && kate /tmp/monFichier.cpp.svn

Connaître le status d'un fichier
--------------------------------
svn status mon_fichier

Revenir en arrière les fichiers locaux non commités
---------------------------------------------------
svn revert mon_fichier

Déverrouiller un fichier verrouillé au niveau .svn
--------------------------------------------------
svn cleanup mon_fichier

Trouver les 5 derniers changements effectués sur le repository
-------------------------------------------------------------
svn log -v --limit=5

Comparer un fichier de la copie de travail par rapport au dépot
---------------------------------------------------------------
svn diff mon_fichier
l'option diff-cmd peut être définie dans ~/.subversion/config pour utiliser un outil de diff externe (comme kdiff3)

Déterminer les fichiers modifiés d'une arborescence entre 2 révisions
---------------------------------------------------------------------
svn di -r 74247:74332 --summarize

Revenir à une version précédente des fichiers
---------------------------------------------
svn sw http://rd-cvs/svn/gc/CURRENT/dev/K2/K2 -r 72724

AVOIR DES INFORMATIONS SUR UN BINAIRE

LISTER LES DEPENDANCES DE BIBLIOTHEQUES D'UN BINAIRE

Définir le chemin vers les librairies partagées (shared libraries) chargées dynamiquement s'il y en a
$ export LD_LIBRARY_PATH=./lib/
$ ldd ./bin/gcis

========================================
LISTER LES FONCTIONS ET SYMBOLES D'UNE BIBLIOTHEQUE

$ nm ./libgcis.so

LA COMMANDE FIND

LISTER LES FICHIERS D'UN REP D'UNE TAILLE DE PLUS D'1 Mo
$ find . -size +1000k -ls
ou
$ find . -size +1000k -exec ls -al {} \;
!!! Attention aux espaces entre la commande -exec et le \;
{} est une variable représentant une occurence trouvée

SUPPRIMER LES REPERTOIRES CVS D'UN PROJET
Commencer par lister les répertoires :
$ find . -type d -name CVS
S'ils sont tous à supprimmer :
$ find . -type d -name CVS -exec rm -r {} \;

LISTER TOUS LES FICHIERS .H ET .CPP D'UNE ARBORESCENCE
$ find . -regex .*.[hc]p?p?
ou
$ find . -name *.h -o -name *.cpp

SUBSTITUTIONS A L'AIDE DES EXPRESSIONS RATIONNELLES

Pour remplacer toutes les occurences de FROM_REGEX par TO_REGEX dans tous les fichiers FILES :

$ perl -i -p -e 's/FROM_REGEX/TO_REGEX/g;' FILES ...

-i est pour « édition sur place », -p est pour « boucle implicite sur FILES . . . ». Si la substitution est complexe, vous pouvez faciliter le retour sur des erreurs en utilisant le paramètre -i.bak au lieu de -i ; cela permet de garder les fichiers originaux en leur ajoutant le suffixe .bak.

LISTER LES CONNECTIONS INTERNET D'UNE MACHINE SUR UN PORT

Pour les connections ssh :
# lsof -ni :22

Il existe également l'utilitaire netstat (trop complet)

On peut également utiliser lsof pour savoir quelle application utilise un fichier :
$ lsof /cdrom

QUICKLY ADD YOUR PUBLIC KEY TO AN AUTHORIZED KEYS FILE

This will add your public ssh key to an authorized keys file on a remote server for passwordless login.
Change id_dsa.pub to wherever you stored your public key from ssh-keygen.

ssh-keygen -t dsa -f ~/.ssh/id_dsa -P ''
ssh $user@$host 'mkdir ~/.ssh;echo '`cat ~/.ssh/id_dsa.pub`' >>~/.ssh/authorized_keys'

PATCHER UN FICHIER SOURCE

* Créer un patch -- (pour representer l'addition d'un nouveau fichier,
faire un diff avec /dev/null.)
$diff -Naur test.old test.cpp > test.patch

* Appliquer un patch
$patch test.cpp test.patch

* Annuler un patch
$patch -R test.cpp test.patch

RECHERCHER UN MOT DANS DES FICHIERS SANS TENIR COMPTE DE LA CASSE

$ grep -irn 'monMot' monFichier
exemple : grep -irn 'tomcat' *

ou :
$ find / -name '*' | xargs grep -l 'monMot'

Je vous présente Sharon


J'ai commencé à monter Sharon début juin 2007. C'est donc très récent. Cette jument Hanovrienne est tout simplement géniale. Dotée d'un caractère extrêmement sensible, elle est très proche de l'homme. Je n'ai jamais connu de cheval qui soit aussi à l'écoute de son cavalier.

En ballade par exemple, qu'on soit seuls ou en groupe, la jument ne répond qu'à moi. A tel point que les autres peuvent partir au grand galop et moi rester au pas, sans bagarre. De même, je peux bifurquer de chemin au cours d'une ballade et quitter le groupe sans que celà pose problème. Elle n'embarque pas, n'a peur de pas grand chose, possède des allures dynamiques et couvre facilement du terrain.

Jusqu'à présent je l'ai essentiellement travaillé en carrière. Il faut dire que cette maman de 2 poulains, du haut de ses 11 ans, n'a pas beaucoup de travail derrière elle. La première fois que je l'ai monté, elle n'avait jamais travaillé en place. C'est dire le changement qui l'attend ! Bref, aujourd'hui je travaille toujours la mise en main, mais je suis plutôt fier du résultat (même s'il reste beaucoup de chemin à parcourir pour en faire une bête de dressage).

Accueil

Voilà, c'est ici que commence l'aventure, j'ai l'intention de mettre ici mes élucubrations, mes découvertes, mes coups de coeur, mes coups de gueule, bref, ce blog sera le reflet d'une (petite) partie de moi-même, et vous savez quoi ? Vous allez pouvoir en profiter !

Pour préciser un peu les choses, vous risquez fort de trouver ici des notes sur mes activités informatiques (linux/windows), mes notes équestres, mes pérégrinations sur le web, et éventuellement mes petites folies du quotidien.

Bonne lecture

Archives du blog