jeudi 26 décembre 2013

socat, sert de proxy et passe le plat...

Sur un de mes projets, un flux a été interrompu... en attendant sa réouverture j'utilise un proxy qui sert de passe plat
depuis une machine où le flux en question est ouvert...



socat tcp listen reuseaddr fork example proxy

samedi 7 décembre 2013

bash, renverser un flux ligne à ligne

Voici une commande que je ne connaissais pas avant le petit déjeuner...



Fallait la découvrir celle-là ;) tac, la soeur de cat à l'envers...

bash, la fonction qui tue...

Voici une fonction qui tue... et simplifie la vie en ligne de commandes !



Les commentaires parlent d'eux-mêmes pour dire ce que fait la fonction ..

A vos .bashrc !!!

bash, éviter l'interprétation en octal en utilisant printf

J'ai eu un petit soucis dans un script de renommage qui tentait d'interprêter les valeurs commençant par 08 et 09 en octal lors d'un printf.

La solution consiste à spécifier que la valeur est en base 10 comme dans l'exemple ci-dessous :

vendredi 6 décembre 2013

mysql, supprimer une base/table même lorsque des clés étrangères sont positionnées

Pour ignorer la vérification de la présence de clés étrangères lors de la suppression d'une table ou base, on peut utiliser "SET foreign_key_checks = 0" avec mysql comme dans l'exemple ci-dessous :

vendredi 15 novembre 2013

bash, expansion de paramètres et indirection

Aujourd'hui, je viens de découvrir l'indirection de paramètres en bash.

La syntaxe est la suivante : ${!PARAMETER}

L'expansion ne donne pas la valeur du paramètre lui même mais la valeur du paramètre dont le nom est contenu dans PARAMETER.



Cela permet de faire de jolies choses comme ceci en s'abstrayant d'eval...



Ci-dessous une documentation bien claire sur l'expansion des paramètres en bash

http://wiki.bash-hackers.org/syntax/pe

mardi 12 novembre 2013

bash, initialisation de variables depuis une chaine de caractères

Il est possible d'initialiser des variables depuis une chaine de caractères
et en redéfinissant le séparateur si nécessaire (ici la redéfinition est locale au read)

samedi 28 septembre 2013

bash, fonction de filtre et d'extraction de données d'un csv en bash

J'ai mis à disposition sur mon repository git un utilitaire csv-functions.sh pour filtrer et extraire des données d'un fichier csv en bash.

Voici un exemple d'utilisation :



avec son résultat :

mardi 27 août 2013

bash, chemin et nom de fichier sans dirname/basename (et sans sous-processus)

Voici une astuce pour récupérer le chemin et le nom d'un fichier sans utiliser les commandes dirname/basename (et sans la création de sous-processus lors de l'appel à ces commandes)



Cela permet d'optimiser la récupération de ces informations lors de traitements sur un grand nombre de fichiers par exemple.

vendredi 16 août 2013

Algorithme pour afficher un arbre

Voici un algorithme pour afficher un joli arbre à la manière de la commande tree.



Ce qui donne :

jeudi 15 août 2013

ranger, un file manager

Il y a quelques mois, j'avais commencé à utiliser vifm comme file manager en ligne de commande.
J'avais vite abandonné car il fallait retenir tous les raccourcis clavier.

Ce matin, je suis "tombé" sur ranger et la "découverte" se passe mieux.

En effet, vous commencez à taper un raccourcis et le programme propose les options possibles

Par exemple gh vous place dans votre homedir.

Voici le lien du projet http://ranger.nongnu.org/

Et un blog présentant ranger : http://bloerg.net/2012/10/17/ranger-file-manager.html

mercredi 29 mai 2013

word, tirets

Pour insérer un tiret demi-cadratin (tiret moyen), tapez le raccouri Ctrl + – (touche – du pavé numérique).

Pour insérer un tiret cadratin (tiret long), tapez le raccourci Ctrl + Alt + – (touche – du pavé numérique).

vendredi 3 mai 2013

awk, trimer des colonnes



awk re regex gsub trim strip space { }

mardi 23 avril 2013

dimanche 21 avril 2013

Archlinux, imprimante samung ML-1865

Tout d'abord, il faut installer yaourt (cf http://archlinux.fr/yaourt)

Ensuite, utiliser yaourt pour installer les drivers :

yaourt -S samsung-ml1860

Dans cups (cf install de cups) sur 127.0.0.1, installer ensuite l'imprimante avec le fichier PPD suivant (connexion en USB)

http://pastebin.com/KeZFgAG1

Imprimez ensuite votre page de test :)

N'oubliez pas :

systemctl start cups

systemctl enable cups

samedi 20 avril 2013

Archlinux, problèmes aléatoires de chargement de pages internet

En installant archlinux il y a quelques temps, j'avais constaté que j'avais des problèmes de connexion internet de manière aléatoire. Un rafraichissement de la page la faisait apparaître :) mais j'ai galéré à comprendre que cela venait des DNS déclarés.
La machine utilisait le DNS de ma livebox et comme par hasard, celui-ci résout aléatoirement les adresses :/

J'ai alors configuré de la manière suivante en spécifiant les DNS à utiliser et en forçant DHCP à ne pas écraser le fichier /etc/resolv.conf



nameserver etc resolv.conf

Depuis, que du bonheur !

Archlinux, slim en qwerty

En installant archlinux, mon terminal en mode console était bien en mode azerty.

Cependant, dans le login manager SLIM, le texte frappé était en qwerty :/

La ligne suivante insérée insérée dans le .xsession ou .xinitrc n'a d'effet qu'une fois identifié.



Pour que X passe en azerty, j'ai ajouté le fichier suivant :



Dès lors, X se retrouve en azerty :)

Section "InputClass"
Identifier "Keyboard Defaults"
MatchIsKeyboard "yes"
Option "XkbLayout" "fr"
EndSection
setxkbmap fr

vendredi 19 avril 2013

Jetty, démarrer sur un port déterminé

Cela se passe dans le build.xml



port jetty ant webapp connector

jeudi 21 mars 2013

xterm, copier/coller simplement

Par défaut, la sélection avec xterm se fait de la manière suivante

  • Passage: sélectionner le début du texte en maintenant le bouton gauche de la souris enfoncé et déplacer la souris jusqu'à la fin du texte. Relachez
  • Mot: double cliquez sur le mot
  • Ligne: triple cliquez sur la ligne
Pour changer la définition du mot pour prendre plus de choses comme des urls, il faut modifier son fichier ~/.Xresources



Dès lors le double clic améliore le confort d'utilisation :)


vendredi 15 mars 2013

Changement d'heure

Le changement d'heure se passe le dernier week-end de Mars et d'Octobre, quand les samedi et dimanche sont tous les deux en Mars et Octobre...

Ainsi, en 2013, le passage à l'heure d'été se fera le WE du 30/31 Mars et le passage à l'heure d'hiver le WE du 26/27 Octobre.

Pour rappel :
  • le passage à l'heure d'été : +1h (à 2h, il est 3h) (cad qu'on dort une heure de moins)
  • le passage à l'heure d'hiver : -1h (à 3h, il est 2h) (cad qu'on dort une heure de plus)

jeudi 14 mars 2013

mysql, dumper seulement les données



mysqldump -u root dbname --no-create-info --skip-triggers --compact --complete-insert --skip-extended-insert

lundi 11 mars 2013

Linux, optimiser le poids des enregistrements MP3 en ligne de commande

Voici comment optimiser le poids de vos enregistrements en ligne de commande.

Pour cela vous pouvez utiliser le logiciel lame



lame 128 encodage mp3 poids réduire réduction

dimanche 10 mars 2013

Linux, réduire le poids des photos jpg

Je viens de découvrir un petit logiciel sympa réduire le poids des photos jpg et ce, en ligne de commandes.

Il s'agit du logiciel jpegoptim.

C'est très pratique pour réduire le poids de scans afin de les envoyer par emails :)

mercredi 6 mars 2013

SVN, ignorer des fichiers

Pour ignorer plusieurs fichiers lors des commits SVN



Une page qui explique bien http://www.math-linux.com/spip.php?article111

svn propset svn:ignore -F mktemp temp fichier temporaire

mercredi 27 février 2013

Git, fichier .netrc

Il y a plusieurs mois, j'ai découvert l'existence du fichier .netrc et l'utilisation que l'on peut en faire.

Dans le cadre de l'un de mes projets, j'y ai stocké les informations de connexion vers le wiki de l'entreprise à des fins de scripting.

En python, la lecture se fait simplement en utilisant le module netrc.

Aujourd'hui, je viens de découvrir que git peut l'utiliser afin d'éviter d'avoir à retaper son login et mot de passe à chaque push...



Ce fichier me plaît bien : centralisation et simplicité :)

Linux Mint et lettres ligaturées

 J'ai eu un petit souci pour utiliser les lettres ligaturées sous linux.

Sur bien des documentations, AltGr+o est censé donner œ, cependant, sur ma configuration cela donnait ø...

Pour accéder à ces lettres, j'ai procédé comme suit :



Ainsi, la touche "Pause" suivi de o et e donne œ ! "Pause" suivi de a et e donne æ !

Merveilleux maintenant ! Je vais pouvoir écrire œuf normalement dans mon blog de recettes :)

http://mezalor.blogspot.com

mardi 19 février 2013

awk, afficher les 5 lignes après un pattern

Cela peut se faire avec la commande awk



awk passwd

mardi 12 février 2013

Linux, déterminer la police utilisée par xterm

On peut utiliser appres qui affiche la liste des ressources utilisées par xterm.

Dans mon cas :




Donc, si je veux utiliser la même police dans un autre terminal, je n'ai plus qu'à utiliser : -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso10646-1

appres pacman xterm

samedi 2 février 2013

Linux, alternatives

A chaque fois, on fait des bidouilles pour utiliser une version d'un exécutable (par exemple java) plutôt qu'une autre...

Pourtant il existe les alternatives sous linux qui permettent de basculer vers une version particulière...



update-alternatives config java install

vendredi 1 février 2013

Casio SL-300.... et pourcentages

Voici ma vieille casio que mes parents m'ont offerte à Noël en 1984...


Et ci-dessous, le fonctionnement des pourcentages sur celle-ci...

jeudi 31 janvier 2013

stat, différence entre modify et change

Quelle est la différence entre modify et change dans le retour de la commande stat ?



  • Modify - indique quand le fichier a été modifié la dernière fois (le contenu a été modifié)
  • Change - indique la dernière fois que les meta données du fichier ont été changées (exemple permissions)

mardi 8 janvier 2013

Java, renvoyer un fichier binaire via une servlet



java, setContentType, addHeader, HttpServletRequest req, HttpServletResponse resp,Pragma,msword, getServletContext, getRealPath, FileInputStream, ServletOutputStream, IOUtils, copy