Krusaf's Blog

Aller au contenu | Aller au menu | Aller à la recherche

mercredi, juillet 16 2008

Les charsets

Il y a peu de temps, j'ai converti tout un site web d'iso en utf8, je vous raconte pas le boulot : - Modification des tables MYSQL niveau structure mais aussi données - Modification de l'encodage des pages web php . - Modification de programmes python, bash ...

C'est pas rien et je tombe de plus en plus sur des soucis d'encodage. Pour PHP, y a tout un tas de fonctions et pour le scripting BASH, il y a :

  • utrac qui permet de détecter le type d'encodage d'un fichier
  • iconv pour convertir un fichier

iconv est très pratique !

lundi, juillet 14 2008

Vi vim ...

Pourquoi les gens utilisent vim en ligne de commande à la place de vi ?

C'est pareille :

krusaf@ares:~$ which vi
/usr/bin/vi
krusaf@ares:~$ which vim
/usr/bin/vim
krusaf@ares:~$ ll /usr/bin/vi /usr/bin/vim
lrwxrwxrwx 1 root root 20 2008-05-11 18:23 /usr/bin/vi -> /etc/alternatives/vi
lrwxrwxrwx 1 root root 21 2008-05-11 18:23 /usr/bin/vim -> /etc/alternatives/vim
krusaf@ares:~$ ll /etc/alternatives/vi /etc/alternatives/vim
lrwxrwxrwx 1 root root 17 2008-05-11 18:22 /etc/alternatives/vi -> /usr/bin/vim.tiny
lrwxrwxrwx 1 root root 17 2008-05-11 18:22 /etc/alternatives/vim -> /usr/bin/vim.tiny

Alors utilisez vi, vous gagnerez un caractère !!!!

PS : Oui ce billet ne sert à rien et est d'une inutilité astronomique ;)

lundi, juin 30 2008

par2 : un utilitaire qui peut être fort utile !

par2 is a program for creating and using PAR2 files to detect damage in data files and repair them if necessary. It can be used with any kind of file.

par2 est une petite application qui permet réparer un(des) fichier(s) qui aurait pu être altérés. Par exemple, je grave un CD de mes sauvegardes et malheureusement, le CD a subit quelques rayures et les fichiers ont été endommagés. je ne peux plus décompresser le fichier. Si j'avais utiliser l'utilitaire par2, j'aurais peut-être pu réparer mes si précieuses sauvegardes.

comment ça marche ? par2 créé simplement quelques fichiers en plus permettant, si le fichier est endommagé, de le réparer. En fait, cest basé sur des calculs de CRC, il me semble avoir étudié ça en IUT ou autre .... :)

Installation (sous debian et dérivé) : apt-get install par2

Créer les fichiers par2 : par2 c fichier.tar (Je prends exemple avec un fichier tar, cela pourrait être autre chose hein ... voirplusieurs fichiers)

Vérifier que le fichier ne soit pas endommagé : par2 v premier_fichier.par2

krusaf@ares:/home/bkp$ ll _etc_20080630_.tar.gz*
-rwx------ 1 root root 3992006 2008-06-30 22:50 _etc_20080630_.tar.gz
-rwx------ 1 root root   40436 2008-06-30 22:50 _etc_20080630_.tar.gz.par2
-rwx------ 1 root root   42500 2008-06-30 22:50 _etc_20080630_.tar.gz.vol000+01.par2
-rwx------ 1 root root   84900 2008-06-30 22:50 _etc_20080630_.tar.gz.vol001+02.par2
-rwx------ 1 root root  129364 2008-06-30 22:50 _etc_20080630_.tar.gz.vol003+04.par2
-rwx------ 1 root root  177956 2008-06-30 22:50 _etc_20080630_.tar.gz.vol007+08.par2
-rwx------ 1 root root  234804 2008-06-30 22:50 _etc_20080630_.tar.gz.vol015+16.par2
-rwx------ 1 root root  308164 2008-06-30 22:50 _etc_20080630_.tar.gz.vol031+32.par2
-rwx------ 1 root root  318484 2008-06-30 22:50 _etc_20080630_.tar.gz.vol063+37.par2
krusaf@ares:/home/bkp$ sudo par2 v _etc_20080630_.tar.gz.par2
par2cmdline version 0.4, Copyright (C) 2003 Peter Brian Clements.

par2cmdline comes with ABSOLUTELY NO WARRANTY.

This is free software, and you are welcome to redistribute it and/or modify
it under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version. See COPYING for details.

Loading "_etc_20080630_.tar.gz.par2".
Loaded 4 new packets
Loading "_etc_20080630_.tar.gz.vol063+37.par2".
Loaded 37 new packets including 37 recovery blocks
Loading "_etc_20080630_.tar.gz.vol003+04.par2".
Loaded 4 new packets including 4 recovery blocks
Loading "_etc_20080630_.tar.gz.vol015+16.par2".
Loaded 16 new packets including 16 recovery blocks
Loading "_etc_20080630_.tar.gz.vol001+02.par2".
Loaded 2 new packets including 2 recovery blocks
Loading "_etc_20080630_.tar.gz.vol007+08.par2".
Loaded 8 new packets including 8 recovery blocks
Loading "_etc_20080630_.tar.gz.vol031+32.par2".
Loaded 32 new packets including 32 recovery blocks
Loading "_etc_20080630_.tar.gz.vol000+01.par2".
Loaded 1 new packets including 1 recovery blocks

There are 1 recoverable files and 0 other files.
The block size used was 1996 bytes.
There are a total of 2001 data blocks.
The total size of the data files is 3992006 bytes.

Verifying source files:

Target: "_etc_20080630_.tar.gz" - found.

All files are correct, repair is not required.

Réparer un fichier : par2 r premier_fichier.par2

Et pour les allergiques à la ligne de commande ( Merci schyzo) : pypar2 : http://pypar2.silent-blade.org/ gpar2 : http://sourceforge.net/project/show

Biensûr, ce billet ne remplace par le manuel ;) RTFM : man par2

dimanche, juin 1 2008

RangeMusic.sh & cdrip.sh & archive_droits.sh

Y a des jours comme ça où un petit geste vous fait plaisir :) Je remercie donc jpht qui a gracieusement modifié des shells que je n'avais pas touché depuis un moment :

  • RangeMP3 a été modifié pour donner Rangemusic.sh qui permet à présent de ranger ses MP3/OGG dans une arborescence du style genre/artiste/album/
  • cdrip.sh a été amélioré aussi afin de ripper en mp3/OGG en même tempset une petite option a été rajouté pour passer par un proxy

J'en profite pour dire que j'ai mis à jour archive_droits.sh qui gère à présent les droits spéciaux.

samedi, mai 31 2008

Plugins pings de dotclear2 RC01 : modifier le comportement par défaut

Ce plugin permet d'avertir plusieurs sites d'un nouveau billet sur votre blog, vous ramenant par conséquant plus de visites. C'est bien pratique ! J'avai décris une petite modification du ocde source pour dotclear 2beta 7 permettant que les checkbox soient toutes cohées par défaut.

La liste s'agrandissant, il devient "barbant" d'avoir à cocher la multitude de cases à cocher pour avertir les services xmlrpc ...Pour modifier le comportement par défaut afin d'avoir par défaut toutes les cases à cocher de cochées !!

Pour dotclear v2 beta RC01, il faut modifier le fichier blog/plugins/pings/lib.pings.php à la ligne 70 :

Modifier cette ligne :

form::checkbox(array('pings_do[]'),html::escapeHTML($v),in_array($v,$pings_do)).' '.

par :

form::checkbox(array('pings_do[]'),html::escapeHTML($v),true).' '. 

Avant toutes modifications, faîtes un backup de votre fichier !

mercredi, mai 14 2008

Concours photo : Le déf EOS

J'y participe alors si vous aimez ma photo, je vous remercie de voter pour moi :)

Vous pourrez apprécier un peu la photo en allant voir ici ^^

EDIT : j'ai eu la chance de pouvoir compter parmis les 10 premières photos de ma catégorie mais je n'ai pas été sélectionné par le jury ... Une prochaine fois !

GdmGreeter à 100%

Si comme moi, l'upgrade vers Hardy heron s'est bien passé mais ne vous permet plus de vous connecter par GDM, il existe des solutions ci-dessous :

En fait, pour bien identifier le problème, connectez-vous en mode console et tapez la commande top. Vous devriez voir le processus gdmgreeter prendre 100% du CPU.

Si les solutions ci-dessus ne fonctionnent pas, je vous conseille de tout sauvegarder (vos fichiers de conf, votre home directory ...) et de refaire l'installation à partir du CD en faisant un formatage. Personnellement, c'est ça qui a marché pour moi. Vous comprenez pourquoi je n'ai aps écris de post depuis un petit momentà présent (bon j'avoue, je n'avis pas non plus grand chose à dire ;) )

Modifier les couleurs de la commande ls

La commande ls accepte l'option -color qui permet de repérer plus facilement les fichiers en fonction de leurs types. La commande ls --color permet d'activer les couleurs simplement (sans parler d'un éventuel alias). (Des alias existent par défaut sur ubuntu dans le fichier ~/.bashrc)


Jusque là tout va bien mais parfois les couleurs ne sont pas des plus aisées à lire lorsque son écran est à contre jour. Bref,on peut les modifer sans trop de difficultés.

Pour obtenir la configuration courante :
$ dircolors -p > ~/.ls_couleur

La commande dircolors permet de lister la configuration des couleurs. Vous pouvez éditer le fichier ~/.ls_couleur que nous venons de créer.

Il existe deux façons d'associer une couleur à un fichier. La première consiste à déterminer une couleur en fonction du type de fichier. Les types valides sont les suivants :

NORMAL
: il ne s'agit pas d'un type mais plus exactement de la valeur par défaut

FILE
: fichier normal

DIR
: répertoire

LINK
: lien symbolique

FIFO
: tuyaux

SOCK
: socket

BLK
: fichier périphérique en mode bloque

CHR
: fichier périphérique en mode caractères

ORPHAN
: lien symbolique orphelin (pointant vers un fichier inexistant)

EXEC
: fichier possédant une permission d'exécution

FILE
00 # Fichiers normaux sans attribut spécifique

DIR
01;34 # Répertoire en gras, couleur bleue

.tar
01;31 # Fichiers TAR en gras, couleur rouge

.tgz
01;31 # idem

.arj
01;31 # idem

Les codes d'attributs :

00=aucun, 01=gras, 04=souligné, 05=clignotant, 07=inversé, 08=caché

Les couleur d'avant plan :

30=noir, 31=rouge, 32=vert, 33=jaune, 34=bleu, 35=magenta, 36=cyan, 37=blanc

Les codes de couleurs d'arrière plan :

40=noir, 41=rouge, 42=vert, 43=jaune, 44=bleu, 45=magenta, 46=cyan, 47=blanc

Il est possible de combiner plusieurs de ces codes comme dans notre exemple pour obtenir plus de couleurs (gras + couleur).

Une fois le fichier de configuration personnalisé, il faut le faire interpréter par l'utilitaire dircolors. Ainsi, nous pourrons obtenir la définition de la variable d'environnement LS_COLORS dont ls se sert.

Tapez la commande suivante :

$ dircolor ~/.ls_couleur

$ LS_COLORS='no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;33:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.deb=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.mpg=01;37:*.avi=01;37:*.gl=01;37:*.dl=01;37:';

$ export LS_COLORS

Et le tour est joué !

$ eval `dircolors ~/.ls_couleur`

Cette ligne devra être incluse dans votre fichier .profile (ou .bashrc ou ncore .bash_profile selon votre distribution/configuration).



mardi, mars 25 2008

Mercurial 1.0

Il est enfin sorti :) (sachant que la 0.9.5 était presque une 1.0 mais bon ça fait plaisir)

Available at http://selenic.com/mercurial/

General:

* greatly improved merge tool configuration, see "hgrc.5.txt" for details
* improved copy/rename handling in diffs, status, and merge
* files in .hg inherit permissions from .hg/store
* infer --repository when possible, so commands may be run from anywhere.
* easy-installable
* new "droplet" logo

Commands:

* archive: disable ".hg_archival.txt" file addition with "ui.archivemeta"
* bisect: now built-in with greatly improved performance and usability
* bundle: new --all option to bundle the whole repository more easily.
* cat: apply decode filters with --decode
* clone: can clone from a full-history bundle
* commit: warn when creating a new head
* debugancestor: index argument is now optional
* diff: set the number of context line to show with -U/--unified
* grep: display matched revisions commit date with --date
* import: new no-commit and user options
* incoming/outgoing: add --limit option
* log: use -b/--only-branch to show revisions of a single branch
* remove: improve handling for --after
* revert: major speedup
* serve: prefix the served path with --prefix (also in web section)
* status: unknown files are skipped by --quiet
* tag: allow multiple tags to be added or removed
* tags: --verbose flags local tags
* update: switch between named branches without -C

Extensions:

* churn: promoted to an official extension (previously in contrib)
* color: new extension coloring "status" and "qseries" command outputs
* convert:
  * allow synthetic history to be spliced in with --splicemap
  * support GNU Arch and Monotone sources
  * svn: allow shallow conversions of single branches with convert.svn.startrev option.
  * svn: make trunk/branches/tags layout detection more flexible by allowing either of them to be skipped.
  * svn: preliminary support as a conversion target
* hgk: configuration file changed from .gitk to .hgk
* highlight: new extension enabling syntax highlighting in hgweb file view (requires pygments)
* inotify: new extension using Linux 2.6 inotify API for instant status checking
* keyword: new extension for filewise RCS-keyword expansion in working directory
* mq: new currentdate, date, currentuser, and user options
* record: add "qrecord" command when used with mq
* win32mbcs: new extension dealing with problematic MBCS behavior on Windows

Web interface:

* improved WSGI integration and compatibility
* follow symlinks in hgwebdir collections
* show branches in most of gitweb templates
* add line anchors to annotate, changeset, diff and file views 
* support web.baseurl in hgwebdir, overriding SCRIPT_NAME

Hooks:

* standard hook to reject text files with CRLF in win32text extension
* redirect stdout to stderr for ssh and http servers

Windows support:

* "hg" script output set to binary mode for redirecting diff, export, annotate, etc.
* also search for .hgrc if mercurial.ini cannot be found
* major speedup of "clone --pull"

jeudi, février 21 2008

La commande pax

Tout le monde ou presque connaît la commande tar et gzip. Oui elles sont pratiques et très utilisées. Cependant, quant-on travaille dans des environnements très hétérogènes, on se heurte régulièrement à des problèmes de compatibilités des différents formats :

  • Le tar sun n'est pas compatible avec le tar GNU
  • Un fichier créé avec un tar GNU 1.14 a de fortes chances d'être mal "détarré" par un tar GNU 1.13
  • ...

Mais il existe une solution méconnue : la commande pax ! Cette commande permet de créer des archives et assure la compatibilité même entre différents systèmes (SUN,linux ...).

Exemple type :

krusaf@ares:~$ pax -w photoblog > /tmp/test.pax 
krusaf@ares:~$ cd /tmp
krusaf@ares:/tmp$ ls photoblog
ls: photoblog: Aucun fichier ou répertoire de ce type
krusaf@ares:/tmp$ cat test.pax | pax -r
krusaf@ares:/tmp$ ls photoblog/
00014.jpg           blog_panorama_aubrac.jpeg     _MG_0313.xcf
00014.xcf           blog_saut_de_la_mounine.jpeg  _MG_0386.xcf
00048.xcf           blog_ttiffouille.jpeg         _MG_0393.xcf
00085.xcf           GuiGui2.jpg                   _MG_0474.jpeg
blog_00014.jpg      GuiGui.jpg                    _MG_0474.xcf
blog_00048.jpeg     IMG_0015.CR2                  Moto.jpg
blog_00085.jpeg     IMG_0015.jpeg                 panorama_aubrac.xcf
blog_IMG_0015.jpeg  IMG_0120_2.jpeg               pont_st_pierre.jpeg
blog_MG_0313.jpeg   IMG_0120_2.xcf                pont_st_pierre.xcf
blog_MG_0386.jpeg   IMG_0120.xcf                  result.xcf
blog_MG_0393.jpeg   IMG_0132.jpeg                 ttiffouille.jpeg
blog__MG_0474.jpeg  IMG_0132.xcf                  ttiffouille.xcf

- page 3 de 13 -