Depuis quelques jour je post sur tumblr. Je trouve ce site très facile d'accès. Je ne postais pas assez souvent sur ce blog car j'ai bien que mes articles soient correctement travaillé. J'ai moins de scrupule sur tumblr..
Je garde ce blog pour tes projets plus important.
A bientôt
Itair
mardi 28 septembre 2010
mardi 23 mars 2010
Telecharger 300Go par ssh
La problématique du jour: Comment télécharger un fichier de 300Go sur un VPN en utilisant SSH. Le vrai problème vient du VPN qui finit par coupé, et donc de bloquer le téléchargement.
Si on utilise ftp pas de problème, on peut utiliser l'option continue. Mais dans le cas ou on n'a pas accès à ftp (donc on n'est pas root sur la machine, sinon c'est trop facile).
La solution consiste à découper le fichier, calculer une somme de contrôle, s'envoyer les fichiers et faire un controle des fichiers.
# Etape 1 : Découpage
Le problème de cette solution c'est qu'on double l'espace disque nécessaire, à 300Go ça peut etre significatif ! Ici j'utilise un tar. Il est possible de tarrer et splitter à la volé.
# Etape 2 : Transfert
En cas d'erreur de téléchargement, faire un checksum en local pour identifier les fichiers corrompus
On peut relancer le téléchargement partiellement grâce à sftp et les wildcards. Par exemple
Ce qui est très pratique avec cette méthode c'est qu'elle peut vous sauver la vie. Après un scp audacieux sur un fichier de 10Go qui foire à 90% de la fin. On peut faire le split coté client et serveur, générer un checksum coté client et le tester sur les fichiers splittés coté serveur : c'est magique les checksum colle. Enfin on Effectue le téléchargement des fichiers manquants..
# Etape 3 : Reconstruction
TADA !
Si on utilise ftp pas de problème, on peut utiliser l'option continue. Mais dans le cas ou on n'a pas accès à ftp (donc on n'est pas root sur la machine, sinon c'est trop facile).
La solution consiste à découper le fichier, calculer une somme de contrôle, s'envoyer les fichiers et faire un controle des fichiers.
# Etape 1 : Découpage
ssh toto@server
mkdir splitted
split -b 100m data.tar.gz splitted/data.tar.gz.
cd splitted
md5sum -b data.tar.gz.* > cheksum.md5
exit
Le problème de cette solution c'est qu'on double l'espace disque nécessaire, à 300Go ça peut etre significatif ! Ici j'utilise un tar. Il est possible de tarrer et splitter à la volé.
tar czf dossier/* | split -b 100m - splitted/data.tar.gz.
# Etape 2 : Transfert
sftp toto@server
cd splitted
get cheksum.md5
get data.tar.gz.*
exit
En cas d'erreur de téléchargement, faire un checksum en local pour identifier les fichiers corrompus
cd splitted
md5sum -c cheksum.md5 | grep -v OK
On peut relancer le téléchargement partiellement grâce à sftp et les wildcards. Par exemple
get data.tar.gz.[g-z]?récupère les fichiers à partir de data.tar.gz.ga jusqu'à data.tar.gz.zz
Ce qui est très pratique avec cette méthode c'est qu'elle peut vous sauver la vie. Après un scp audacieux sur un fichier de 10Go qui foire à 90% de la fin. On peut faire le split coté client et serveur, générer un checksum coté client et le tester sur les fichiers splittés coté serveur : c'est magique les checksum colle. Enfin on Effectue le téléchargement des fichiers manquants..
# Etape 3 : Reconstruction
cat splitted/data.tar.gz.* > data.tar.gz
TADA !
jeudi 28 janvier 2010
Le meilleur du pire 4
En direct de "je n'y comprend rien à l'injection, mais c'est pas grave je suis pas le seul", voici un exemple de ce qu'il ne faut pas faire :
Pour faire simple, si j'utilise Spring pour gérer les dépendances entre mes services ce n'est pas pour mettre les-dit services en static dans une classe four-tous....
Note : Préstation réalisé par Monsier : "Bonjour, je suis expert en J2EE et j'ai 3 ans d'expériences" (sic)
public void setCategoryService(CategoryService categoryService) {
CypresUtils.setCategoryService(categoryService);
}
public void setContentService(ContentService contentService) {
CypresUtils.setContentService(contentService);
}
public void setMimetypeService(MimetypeService mimetypeService) {
CypresUtils.setMimetypeService(mimetypeService);
}
public void setServiceRegistry(ServiceRegistry serviceRegistry) {
CypresUtils.setServiceRegistry(serviceRegistry);
}
public void setPermissionService(PermissionService permissionService) {
CypresUtils.setPermissionService(permissionService);
}Pour faire simple, si j'utilise Spring pour gérer les dépendances entre mes services ce n'est pas pour mettre les-dit services en static dans une classe four-tous....
Note : Préstation réalisé par Monsier : "Bonjour, je suis expert en J2EE et j'ai 3 ans d'expériences" (sic)
jeudi 1 octobre 2009
Encodage des fichiers
Une technique de sioux pour ne plus s'emmerder avec l'encodage des fichiers.
Il manque une information importante. L'encodage du fichier source (ici ISO-8859-1) pour le déterminer sun1 nous conseille d'utiliser Mozilla ! Ouvrez le fichier avec mozilla et aller voir dans View > Character Encoding le type d'encodage utilisé.
piconv -f ISO-8859-1 -t ascii --xmlcref fichier_source > fichier_cibleCette petite ligne transforme les caractères accentués en leur correspondant xml ! (é -> é à -> à ...). Avec l'option --htmlcref ils sont transformé en standard html (é -> é à -> à ...)
Il manque une information importante. L'encodage du fichier source (ici ISO-8859-1) pour le déterminer sun1 nous conseille d'utiliser Mozilla ! Ouvrez le fichier avec mozilla et aller voir dans View > Character Encoding le type d'encodage utilisé.
mercredi 29 juillet 2009
Extensions Firefox pour l'été
Voici plusieurs semaines que je souhaite mettre à jour ma liste de plugin Firefox. Je pense que le moment est bien choisis puisque FF3.5 viens de sortir.
Je ne re-cite pas les extensions du dernier articles que vous pouvez toujours trouver ici : http://itair.blogspot.com/2008/10/extensions-firefox.html
Trois outils indispensables à ma vie de geek :
Deux plugins pour modifier l'apparence de Firefox :
Enfin un accessoire pour développeur web :
Je ne re-cite pas les extensions du dernier articles que vous pouvez toujours trouver ici : http://itair.blogspot.com/2008/10/extensions-firefox.html
Trois outils indispensables à ma vie de geek :
- downloadhelper : (merci louline) qui permet de télécharger les médias d'un site (dailymotion, youtube, myspace...)
- TwitterFox : Affiche les twittes directement dans Firefox, et surtout permet d'en envoyer facilement.
- FireFTP :
Un client FTP/SFTP pas mauvais. Mais je préfères quand même lftp :p
Deux plugins pour modifier l'apparence de Firefox :
- Personas for Firefox : Change le thème graphique très simplement et très rapidement. Le résultat final est pas toujours fonctionnel.
- Fission : Ajoute une barre de progression dans la barre d'adresse (comme sur Safari). Fonctionnement tellement naturelle qu'on oublie la présence du plugin.
Enfin un accessoire pour développeur web :
- YSlow : Mesure la vitesse de chargement d'une page web. Score aussi la page pour vous aider à améliorer la vitesse de chargement.
lundi 11 mai 2009
Le meilleur du pire 3
Aujourd'hui : de la desoptimisation !
Moi je voulais écrire :
mais c'est beaucoup trop simple.
ListlistTemp = map.get(interloc.getFonction());
listTemp.addAll(listDocument);
map.remove(interloc.getFonction());
map.put(interloc.getFonction(), listTemp);
Moi je voulais écrire :
map.get(interloc.getFonction()).addAll(listDocument);
mais c'est beaucoup trop simple.
lundi 4 mai 2009
Inscription à :
Articles (Atom)

