lundi, octobre 27, 2014

Comment générer un histogramme des focales d'un ensemble de photos.

Je prévois acheter une nouvelle lentille pour ma caméra. Je sais que je veux une lentille rapide (au plus f2.8). Je veux aussi une lentille versatile qui couvrira une étendue maximale de longueur focale. Je sais que je ne peux avoir une lentille 18-200/2.8, ça n'existe pas. Je sais que je devrai me contenter d'une étendue plus restreinte.

Quel est le meilleur moyen de découvrir cet intervalle? Ayant toutes mes photos sur un de mes serveurs, je peux savoir quelle est la focale utilisée pour chacune d'entre elles à l'aide des données EXIF qui sont enregistrées dans le fichier de chacune des photos. Comme j'ai pas mal de photos, je ne peux faire ça manuellement, il faut automatiser.

C'est la que bash entre en jeu!

1ere étape, installer EXIF. Sous Ubuntu, rien de plus simple:
sudo apt-get install exif
2e étape, aller dans le répertoire qui contient les photos:
cd ~/Photos
3e étape, l'incantation magique:
sudo find . -iname DSC_????.JPG -print0 | xargs -0 -I {} exif -t 0x920a "{}" | grep Value | cut -d ' ' -f 4 | sort -n | uniq -c | awk '{print $2, $1}' > ~/Documents/histogrammefocale.txt
Cette étape mérite quelques explications:
  • sudo find . -iname DSC_????.JPG -print0 Trouve tout les fichiers qui correspondent au pattern des noms de fichier de mes caméras Nikon et les passe à l'étape suivante
  • xargs -0 -I {} exif -t 0x920a "{}" Extrait la longueur focale de la photo à partir des métadonnées EXIF du fichier et la passe a l'étape suivante
  • grep Value Ne garde la ligne que si elle contient "Value" et la passe à l'étape suivante
  • cut -d ' ' -f 4 Ne garde que la valeur de la focale et la passe à l'étape suivante
  • sort -n Trie toute les valeurs de focale en ordre croissant et les passe à l'étape suivante
  • uniq -c Prend la liste triée des focales et compte combien fois chaque focale est répétée. Le nombre d’occurrence suivie de la focale est retournée, une paire par ligne. ces valeurs sont passées à l'étape suivante
  • awk '{print $2, $1}' Inverse les 2 colonnes et les copies finalement dans le fichier ~/Documents/histogrammefocale.txt
Voilà donc comment je génère le fichier d'histogramme. par la suite il ne reste qu'à l'importer dans votre feuille de calcul préférée pour obtenir un beau graphique!



lundi, mai 26, 2014

Genou kaput

Pas de travail pour moi cette semaine, mom genou est encore trop enfle pour supporter mon poids.

dimanche, mars 17, 2013

Enfin de la quincaillerie neuve!

Voila un billet composé il y a presque 2 ans. Il a languit dans mon Inbox tout ce temps.
----

J'ai finalement pris possession de ma nouvelle station de travail hier soir. Sa prédécesseure ayant déjà presque 4 ans et déménageant à Beijing à la fin du mois, je voulais une machine qui me donnera au moins 4 bonnes années de performance continue.
J'ai donc jeté mon dévolu sur une machine basée sur une carte-mère Supermicro H8DG6-F ayant 2 processeurs AMD Opteron Magny-Cours 6128 à 2 GHz et 32 GB de Ram Kingston DDR3 ECC. Le châssis est un Cooler Master HAF932 Advanced. Ce n'était pas mon premier choix mais ce châssis fournira toute la ventilation nécessaire aux Opteron couronnés de radiateurs Noctua NH-U12DO A3 et ventilateurs Noctua NF-P12.
Le bloc d'alimentation est un Thermaltake Toughpower Grand 750 qui permettra d'alimenter très efficacement (93%) les processeurs et la carte vidéo qui sont les 2 plus grands consommateurs d'électricité de cette machine. C'est mon 2e bloc d'alimentation de ce modèle, le 1er aliment le serveur de fichier que j'ai acquis en octobre (je devrais bien écrire un petit quelque choses la-dessus.).
Pour la première fois j'ai choisis une carte video performante, la ASUS HD6870 DirectCU. Cette carte peut aussi servir d'unité de calcul parallèle offrant environ 2 TeraFlops de puissance de calculs lorsque programmée avec OpenCL. C'est pour cette raison que j'ai choisi d'y aller avec une carte performante. Pas pour jouer à des jeux mais bien faire de la programmation parallèle. Savoir programmer des systèmes massivement parallèle est une habileté qu'il est essentiel d'avoir. Et j'ai décidé d'y aller avec une carte AMD car je trouve que leur modèle de programmation avec OpenCL (qui est maintenant un standard: http://www.khronos.org/opencl/) est supérieur a celui de NVidia. De plus AMD offre maintenant des cartes vidéos avec un ratio puissance de calcul/cout * dissipation thermique supérieur à NVidia.
Comme ma carte-mère est destinée à être utilisée dans un serveur, j'ai du ajouter une carte audio. Comme ma machine roulera sous Ubuntu, le choix etait plutôt restreint du côté des cartes PCIe. J'ai choisi la Asus Xonar DX basé simplement sur sa compatibilité avec Ubuntu. mes besoins audio ne sont pas élevés, je veux simplement pouvoir écouter de la musique en travaillant.
Finalement les unités de stockage! Le disque principal est un Crucial C300 128G et contiendra les partitions / et /boot. J'ai choisi ce disque car la très grande majorité des revues que j'ai lu étaient bonnes et que ces performances avec des blocs de donnée de 4k sont au-dessus de presque toute la compétition. Je voulais absolument un SSD comme disque principal car la différence de vitesse est phénoménale comparée à un HDD. Comme la capacité des SSD est encore restreinte et que le nombre d'écriture est limité je l'ai couplé à un HDD Caviar Black de 2TB afin d'y mettre la partition de swap, /var et /home. Les deux disques sont au standard SATA III à 6Gb/sec. Comme ma carte-mère n'offre que 6 connecteurs SATA II à 3Gb/sec, je les ai branchés au contrôleur SAS qui est compatible avec SATA III et qui est cadencés à 6Gb/sec. Je n'ai pas encore fait de tests mais les performances devrait être extraordinaire! J'ai volontairement limité le nombre de disque dans cette machine car mes données résident surtout dans mon serveur de fichier principal avec des sauvegardes sur deux disques durs Western Digital MyBook Live attachés au réseau: un sur mon réseau local et un hors-site accessible via l'internet. Je me suis aussi procuré un mini serveur QNAP TS-439 Pro II+ afin de mettre 4 des disques de mon ancienne station de travail (lien vers sa description). Le QNAP offre plusieurs fonctions haut de gamme telle que iSCSI, SNMP, network bonding, VLAN, NFS, FTP, RAID, syslog, eSATA, UPS, etc. Cette unité servira à ajoute de la capacité de stockage à mon réseau ou servira de serveur central de sauvegarde. J'écrirai un autre article sur le QNAP quand j'aurai le temps. Ces temps-ci, ce sont les préparatifs du déménagement qui me tienne occuppsé.

vendredi, juin 10, 2011

UPS is crap

Never ever ever use UPS to get purchases from the US. Their brokerage fees are highway robbery: 39$ shipping +39$ brokerage for an item valued at 80$ and weighting 1 pound.

mercredi, avril 22, 2009

Probleme de librairie

Ma librairie SUN StorEdge L9 m'affichait un message inusité ce soir: "Loader partly available". La solution? Nettoyer le drive. Je ne vois toujours pas le lien entre le message et la solution...

mercredi, février 04, 2009

Talk at OCLUG

Here are the slides of my talk of yesterday at OCLUG "Deduplication on the cheap"
Voila la presentation que j'ai faites hier soir a OCLUG: "Deduplication on the cheap"

jeudi, mai 29, 2008

Mise a jour de mémoire.

Oui ça fait longtemps que je n'ai rien écrit sur ce blog. Manque de temps comme d'habitude.

Mais la il faut que j'écrive car j'ai des nouveautés!

J'ai augmente la mémoire de ma station de travail de 4GB a 8GB. Pourquoi? VMWare. Chaque machine virtuelle a besoin de sa propre mémoire et ça ne prend pas beaucoup de machines virtuelles pour que la machine hôte commence a swapper. J'ai plusieurs machines virtuelles qui me permettent de rouler d'anciens systèmes d'opérations ou qui me permettent de "simuler" plusieurs serveurs roulant en parallèle.

Choisir la bonne marque de mémoire n'a pas été facile pour ma carte-mère très "sélective" (une Gigabyte N680i-SLI-DQ6). En effet il semble que les carte-mères basées sur le chipset 680i de NVidia ne sont stables qu'avec quelques marques de mémoire.

Mon vendeur a aussi eu beaucoup de problèmes a garder stable la Asus Striker, qui utilise le même chipset, avec 8GB de RAM.

J'utilisais 4GB de Kingston DDR2-667Mhz et c'était très stable.

Pour mon upgrade a 8GB, mon vendeur habituel m'a suggéré 8GB de Kingbox 800Mhz. Base sur leur expérience, cette marque est stable et compatible avec la grande majorité des carte-mères qu'il vendent. J'ai essayé cette marque sans succès: Memtest86+ a trouve des erreurs des les premières 30 secondes et Linux n'a jamais été stable plus de 5 minutes avec cette marque. J'ai donc du rapporter ces bâtons de mémoires et essayer une autre marque.

Mon vendeur m'a suggéré d'essayer des bâtons de marque APacer. Après plus de 3 heures, Memtest86+ ne montrait aucune erreurs. J'ai donc décidé de booter Linux et voir si c'est stable. Aucun problèmes! Ma machine fonctionne sans arrêt depuis maintenant 5 jours.

La mémoire APacer est un excellent choix pour cette carte-mère!

Si jamais j'ai besoin de plus de mémoire, il va falloir que je change la carte-mère. Probablement une bonne occasion de finalement acheter une carte-mère Supermicro!


dimanche, décembre 23, 2007

Revue de "nouveaux produits"

Voici de courtes revues de produits que j'ai acquis ou que j'ai commencé à utiliser récemment. Je ne veux pas être exhaustif, juste donner MON opinion sur ces produits.

Lentille Sigma 10-20/F4-5.6: Ça faisait longtemps que je voulais une lentille à très grand angle, j'avais considéré la Tokina 12-24/F4, la Nikon 12-24/F4 et la Sigma 10-20/F4-5.6.
  • D'entrée de jeu j'avais renoncé à la Nikon due à son prix; je ne pense pas que la différence de qualité ou la marque Nikon justifie une différence de prix de 500$ avec les 2 autres.
  • J'aimais beaucoup la Tokina mais Tokina n'est pas distribuée au Canada. J'avais lu que la qualité optique était presqu'aussi bonne que la Nikon et que le bâti était très solide.
  • J'avais des appréhensions concernant la Sigma. J'avais lu que le bâti est moins solide que la Tokina et la qualité optique un peu inférieure à la Tokina.
Comme la Tokina n'est pas disponible au Canada, j'ai profité de mon passage à New York il y a quelques semaines pour aller chez B&H comparer les 2 lentilles avec un de leur conseiller. Le conseiller m'a rassuré sur la qualité du bâti et de l'optique des deux lentilles: les deux lentilles sont extrêmement semblables dans leur bâti et la qualité de leur optique. Nous avons pris des photos test avec les 2 lentilles et les photos étaient quasi-identiques. J'ai finalement pris la Sigma car elle me donne 2mm de focale de moins (à 10mm, cette lentille à un champ de vision de 102 degrés de large). Comme je fais surtout des photos de paysage et d'édifice, ce 2mm me permettra de faire des paysage plus larges et de moins reculer pour cadrer un bel immeuble au complet. Comme cette lentille sera surtout utilisée en extérieur et pour des paysage, le fait que la Tokina a une ouverture fixe de f/4 n'a pas compté pour beaucoup dans ma décision.

Après quelques semaines d'utilisation, qu'est-ce que JE pense de cette lentille? Superbe! Presque pas de distortion à grand angle pour les photos d'immeubles, les couleurs sont reproduites fidèlement, le focus se fait rapidement et les images sont pas mal sharp même à F5.6. Je suis très satisfait jusqu'à maintenant. Quand les beaux jours seront revenus, il me restera à tester cette lentille en plein soleil.

Asus eee PC 701 4G: J'ai déjà un laptop mais celui-ci est lourd et roule WindowsXP. Je voulais avoir un laptop plus petit et un laptop qui roule Linux. Ce laptop Asus comble simultanément mes 2 souhaits: Il roule Linux (un dérivé de Debian (Xandros) qui boot en 13 secondes!) et pèse 0.92kg! J'ai vu un démo de ce laptop pour la 1ère fois au meeting de novembre d'OCLUG, j'ai été conquis le soir même.

La raison princpale pour laquelle j'en voulais un est que ce laptop me permet de faire simplement les choses de bases que je fais tout le temps: écouter de la musique, surfer le web, prendre mon courriel, lire des PDF, faire du traitement de textes de base et faire des feuilles de calcul de base. Avez-vous besoin d'un quad-cores pour faire ces tâches? Non.
Quand je suis à mon bureau, j'ai accès à une station de travail quad-cores et j'y fais des choses plus lourdes: montage vidéo, programmation, bases de données, stockage de données. Même si ce laptop n'est pas très puissant, il permet de faire efficacement des tâches de base, boot très rapidement, ne plante jamais (car ça roule Linux) et a une autonomie de batterie plus longue que mon Compaq. C'est aussi le laptop idéal avec lequel visiter les clients (à cause du "Wow! Factor") ou la famille (à cause du poids et de la dimension, ça ne prends presque pas de place dans les bagages).

Depuis que je l'ai, je l'ai personalisé un peu: je suis passé à l'interface avancée (très près du bureau KDE "classique"), j'ai installé plusieurs repositories additionnels et j'ai installé les outils de développement et Subversion. Malgé le petit écran, c'est une super machine de développement pour Erlang (en fait je ne peux que souhaiter une version plus récente de Kate qui me permettrait d'avoir les templates de code highlighting pour Erlang.)!

Voilà un petit résumé des pours et contres observés:
Pour:
  • Roule Linux: super stable
  • Petit, léger: très facilement portable
  • Batterie: dure près de 3 heures. c'est une autonomie suffisante pour travailler dans un endroit public loin d'une prise électrique.
Contre:
  • Petit clavier: ça prend un peu de temps pour s'habituer
  • Emplacement de la touche right-shift: La première semaine, je pesais toujours sur la fléche vers le haut au lieu de la touche right-shift.
  • Mémoire: Un peu restreinte, Je souhaiterais avoir 2G surtout que cette machine n'utilise pas de swap. Comme ça s'augmente, je probablement faire ça plus tard cet hiver.
Neutre:
  • CPU: je pensais que le CPU (Celeron 900Mhz) serait un peu poussif mais non! Plus que suffisant pour tout ce que je fais sauf quelques programmes que je développe en Erlang.
  • Écran: Parfait pour tout sauf pour Google Reader.

Visual Basic Express 2008: J'ai téléchargé la dernière version de VB Express le jour même de sa publication. J'étais curieux de voir comment la nouvelle version de l'interface de développement se comporterait et comment LINQ simplifiait l'accès aux donnés en mémoire.
L'IDE est superbe. L'IntelliSense est indispensable même si il vous rend paresseux en vous permettant de ne pas tout mémoriser l'API et la syntaxe de toutes les commandes. Avec ça, apprendre le langage et l'API de .Net est un jeu d'enfant. On est productif dès la première minute!
LINQ permet, en une phrase, de faire des requêtes sur les donnés en mémoire (i.e. contenues dans une variable ou résultants de l'invocation d'une fonction) comme si ces donnés étaient stockées dans une table accessible via SQL. Pour un programmeur, ça simplifie considérablement la vie. On accède les données presque de la même manière qu'elles soient dans une table ou en mémoire.
Je suis un fan des logiciels OpenSources et essaie de les utiliser le plus souvent possible mais je dois confesser aimer cet IDE et LINQ. Je ne peux que souhaiter qu'un IDE de cette qualité apparaisse dans le monde de l'OpenSource.

Photos de New York

Un premier jeu de photos de notre voyage à New York est ici. Certaines des photos ont été prises avec ma nouvelle lentille Sigma 10-20mm.

lundi, décembre 03, 2007

Accuponcteur, la suite

Après 3 rendez-vous, je dois avouer que je ressens une amélioration. Je n'ai plus mal au dos au sortir de la douche et me tenir debout me cause moins de douleur qu'avant. On verra le bénéfice total à la fin du traitement.

New York

Je vais à New York bientôt. Si vous avez des suggestions de choses à voir, manger ou acheter, laissez un commentaire ci-bas.

mercredi, novembre 14, 2007

1ère visite chez l'accuponcteur

J'ai mal au dos depuis plus de 30 ans. J'ai décidé d'en voir un, encouragé par les résultats d'une collègue et d'un membre de la famille.
À ma grande surprise ça n'a pas fait mal du tout. Après discussion de mes symptômes et de leur conséquences, il m'a mis des aiguilles dans le côté gauche de mon dos et dans le haut de ma cuisse gauche. J'ai gardé les aiguilles une 40aine de minutes.
Je ne ressens pas de bénéfice immédiat mais on verra avec le temps. J'ai encore 3 ou 4 séances à avoir.
À suivre.

lundi, octobre 29, 2007

Enragé après Bell...

Un technicien de Bell devait venir ce matin entre 8h00 et 12h00 pour une réparation du filage de la maison. Il est presque 16h00 et le twit est pas là. Je suis malade, j'ai les sinus congestionnés et la gorge comme une râpe. Je voulais me recoucher après son départ mais c'est complètement foutu, une journée down the drain. J'ai téléphoné Bell à midi: la téléphoniste me dit que le gars s'en vient. Je rapelle à 14h30, une autre téléphoniste me dit qu'un technicien va venir avant 22h00. 22h00! On m'a dit 12h00 quand j'ai téléphoné pour prendre rendez-vous! Me semble que c'est pas difficile de téléphoner pour dire qu'on va être en retard? Maudits monopoles....

mardi, septembre 18, 2007

Renouvellement de passeport

Je suis allé faire renouveler mon passeport ce matin. J'ai attendu 1h30 en tout. Moins pire que cet été mais encore inacceptable comme délai. Les australiens font ça en 10 minutes...

Problèmes de backups

Je fais des backups de mes données importantes à toutes les 8 heures sur une machine dédiée que j’ai peuplée de disques plus assez rapides pour être dans ma station de travail principale. C’est disques forment un gros volume (600G) via LVM2. Une fois par semaine, je transfère mon backup hebdomadaire sur 5 rubans DLT40. Normalement, tout va bien. Je peux faire le transfert sur mes 5 rubans via deux unités en environ 8 heures. Mais depuis deux semaines, le transfert des données du serveur de disque (d’où elles sont rendues disponibles via NFSv3) au serveur de ruban est très lent, environ 3MB/s sur un réseau gigabit. Probablement que les backups sont rendus sur le disque le plus lent du volume… En attendant, il faut que je corrige la situation. Après pas mal de Googlage, je suis tombe sur un utilitaire nommé mbuffer. Celui-ci créé un tampon entre le réseau et l’unité de disque évitant à celle-ci de toujours avoir à reculer le ruban quand le flux de données est trop lent. Voilà « l’incantation magique » :

tar cvbf 64 - 'Photos de ma camera3' | mbuffer -m 350M -P 95 -s 32768 -v 4 -f –o /dev/nst0


Ça dit à mbuffer de créer un tampon de 350M, de ne pas commencer à écrire sur le ruban avant que le tampon ne soit remplit a 95% et d’écrire en block de 32k.
Ce n’est pas la vitesse optimale mais c’est mieux que rien. Ma vitesse de backup est remontée à 2.2MB/s. Pas encore à sa limite théorique de 6MB/s mais ça devrait aller pour le moment. Il faudrait peut-être que le change mes backups de volume…