Jetty 8 et paramètres d'initialisation

2012-07-17 | #bash #encoding #python

La documentation sur le net est obscure quant à la manière d’initialiser les paramètres de contexte avec jetty (hors du web.xml dans le webdefault.xml (équivalent du host.xml de tomcat)). J’ai cherché, cherché et cherché… Et puis j’ai trouvé :) Le nouveau code est le suivant : <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://www.eclipse.org/jetty/configure.dtd"> <Configure class="org.eclipse.jetty.webapp.WebAppContext"> <Set name="sessionHandler"> <New class="org.eclipse.jetty.server.session.SessionHandler"> <Arg> <New class="org.eclipse.jetty.server.session.HashSessionManager"> <Set name="storeDirectory">jetty/sessions</Set> </New> </Arg> </New> </Set> <Get name="ServletContext"> <Call name="setInitParameter"> <Arg>driverSQL</Arg> <Arg>com.

Continuer la lecture 


Servlets et encoding...

2012-07-17 | #encoding #java #servlet

J’ai eu des petit soucis avec le charset… Un svi envoyait bien text/csv; charset=utf-8 (curl) mais pour une raison x ou y, mon ihm qui l’appelait voyait text/plain;charset=ISO-8859-1 ce qui faisait que le fichier était mal affiché. Dans le code ci-dessous, j’ouvre une connection et récupère le charset afin d’initialiser l’InputStreamReader et commencer les lectures… URL url = new URL(sviUrl); URLConnection conn = url.openConnection(); conn.connect(); InputStream in = null; try { String charset = "ISO-8859-1"; String contentType = conn.

Continuer la lecture 


mysql, importer un fichier csv

2012-07-16 | #import #mysql

Pour charger un fichier csv dans une table on peut utiliser la commande suivante : mysql> load data infile '/path/to/file.csv' into table mytable character set 'utf8' fields terminated by ';' IGNORE 1 lines; Query OK, 786 rows affected (0.13 sec) Records: 786 Deleted: 0 Skipped: 0 Warnings: 0 Ici, le charset est spécifié et la première ligne du fichier CSV est ignorée (titre des colonnes).

Continuer la lecture 


bash, récupérer les noms de fichiers renvoyés par diff -rb --brief

2012-07-16 | #bash #commande #diff

La commande diff -rb --brief génère des lignes user-friendly qui sont malheureusement localisées. Pour récupérer le nom des fichiers qui diffèrent, il est possible d’utiliser la commande lsdiff du package patchutils. $ sudo apt-get install patchutils $ files_to_transfer=$(diff -x '*.zip' -x '.svn' -rb -U 1 fitnesse-install/FitNesseRoot/FrontPage/Project $dist_install/FrontPage/Project | lsdiff)

Continuer la lecture 


python, bash et encoding...

2012-07-16 | #bash #encoding #python

En python, lorsque la sortie n’est pas de type tty, l’encoding est “ascii” ce qui provoque des erreurs sur les caractères accentués. La solution est d’exporter la variable PYTHONIOENCODING qui définit l’encoding à utiliser. $ python a.py é $ python a.py | cat Traceback (most recent call last): File "a.py", line 3, in <module> print u"\xe9"; UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 0: ordinal not in range(128) $ export PYTHONIOENCODING=utf-8 $ python a.

Continuer la lecture 


bash, moreutils

2012-07-13 | #bash #moreutils

Je viens de découvrir un paquet mettant à disposition des outils bien sympathiques pour faciliter l’écriture de scripts bash. Il s’agit du paquet moreutils $ sudo apt-get install moreutils Exemples d’utilisation : Pour envoyer un mail si des données sont lues sur l'entrée standard... $ find . -name core | ifne mail -s "Core files found" root Pour réécrire dans un même fichier sans avoir à créer un fichier temporaire... $ sed '.

Continuer la lecture 


url et mot de passe

2012-07-03 | #encodage #url

Pour réduire mes logs, je viens d’utiliser la syntaxe suivante : http://user:password@host:port... Ici, le mot de passe doit être encodé lorsque des caractères non alphanumériques sont utilisés (comprenez 0-9a-zA-Z). Chaque caractère non alphanumérique doit être encodé avec le format “%xx” où xx sera remplacé par le code hexadécimal du caractère. Exemple: def conv(pw): r = '' for c in pw: if not c.isalpha(): r += '%' + '%X' % ord(c) else: r += c return r >>> conv(u'tuéàtu') u'tu\xe9\xe0tu'

Continuer la lecture 


bash, fautes sur commande cd...

2012-07-02 | #bash #cdspell

Si l’option cdspell est positionnée, les fautes de frappe dans la commande cd seront corrigées. Les erreurs prises en compte seront les caractères transposés, les caractères manquants et les caractères trop nombreux. Si un correctif est trouvé, le chemin utilisé pour le cd sera affiché et la commande exécutée. L’option n’est utilisée que dans le cas des shells intéractifs. $ shopt -s cdspell $ cd /ec /etc $ shopt -u cdspell

Continuer la lecture 