lundi 22 octobre 2012

App::Flo : Reclaim space used by duplicate files

Once again I have to handle the same situation : no more spaces and directories with a lot of duplicates.

That's not the first time I have to do it
(last time it was to remove all the duplicates .mp3 with different names when I merged my various 'Music' directories from different boxes/disks.), so I already have a small script waiting in my repos.

But this time I choose to explore another way, instead of removing duplicate files, I've tried the hardlink substitution way.

Using hardlinks is not always applicable but my perl5/perlbrew directory seemed a good candidate (read only duplicate data...).
And it was : after running my script on it, the size went from 765M to 670M, and all the test suites of the tested modules passed with all the Perl versions.

I first thought to release the script as a patch for perlbrew, but thinking more about it I realized that a need probably exists for a more generic tool.

That's why App::Phlo was created :-)

Not a killer module, but one that suit my needs, and that will enable me to test some ideas (multi digest algorithms, use with "unionfs like" fs, Perl dirs optimization...)

If you want to experiment with me, don't hesitate : Ideas, patches, comment are always welcome...

samedi 13 octobre 2012

Solarized : Un peu de couleurs avant les vacances...

Un collègue m'ayant récemment posé des questions sur l'installation du thème de couleurs "Solarized" pour vi(m) j'ai décidé de noter ici les informations pour ceux que ça pourrait intéresser.

Qu'est ce que Solarized ?


C'est un thème de couleurs scientifiquement conçu par Ethan Schoonover pour offrir un contraste sélectif qui s'adapte aussi bien au fonds sombres que clairs en utilisant un nombre réduit de couleurs (palette de 16 couleurs)

L'auteur et divers contributeurs fournissent des fichiers de configuration pour divers programmes : de la palette Gimp/Photoshop au plugin vim en passant par les fichiers de configuration de terminaux....

Plus d'infos :  http://ethanschoonover.com/solarized

Pourquoi Solarized ?


D'abord parce que nous le valons bien bien :-)

Ensuite parce que le thème est joli, efficace, sans être criard.

Enfin parce que tout bon geek qui se respecte, aime bien 
personnaliser/améliorer son environnement de travail et expérimenter de nouvelles choses.

Solarized ça s'installe comment ?


Simplement (dans la plupart des cas)

Mais comme on peut parfois être perdu devant la multiplicité des fichiers proposés, je vais détailler ici l'installation sur mon laptop.

Solarized pour vim


D'abord installer https://github.com/altercation/vim-colors-solarizedPathogen (ça n'a rien à voir en soit, mais tout utilisateur de plugin vim devrait l'installer (ou un plugin similaire comme vundle/vimana))

Ensuite cloner https://github.com/altercation/vim-colors-solarized dans ~/.vim/bundle/

L'ajout dans le .vimrc de


 syntax enable
 set background=dark
 colorscheme solarized
 
Suffira a activer le theme.

Quelques notes toutefois :
  • L'activation d'options (let g:solarized_termcolors=256, g:solarized_contrast=high...) doit se faire avant l'appel au colorscheme
  • Si la coloration syntaxique de votre code fait apparaitre des portions avec des couleurs de fond différentes, vérifiez la valeur de t_Co  (:echo &t_Co de doit pas retourner 8)  et la valeur détecter par vim n'est pas la bonne (16 ou 256)  il faut la spécifier explicitement
      set t_Co=16

Solarized pour votre terminal


(Ce qui suit a été testé avec urxvt.)
Si vous utilisez vim dans votre terminal (et pas un gvim) vous devrez probalement installer https://github.com/altercation/solarized/blob/master/xresources-colors-solarized/Xresources

Solarized pour vos fichiers


 Ca serait dommage d'avoir ces belles couleurs configurées partout et d'obtenir une liste de fichiers/répertoires/liens aux couleurs dépareillées quand on fait un 'ls'

Sous Linux un outil permet de configurer simplement les couleurs des fichiers/répertoires  : dircolors

Il suffit d'installer un des fichiers de configuration
(https://github.com/seebi/dircolors-solarized) et de le charger au démarrage en ajoutant cette ligne dans le .bashrc

  eval `dircolors /chemin/vers/le/fichier/dircolor/choisi`

Voilà vous êtes 'Solarized' du sol au plafond...
:-)


2012-10-31 EDIT : Pour les utilisateurs d'(u)rxvt ne pas oublier d'installer feh pour une meilleure expérience...