Friday, 22 August 2014
|
Écrit par
Grégory Soutadé

Encore un de mes petits outils. Les Windowsiens ne savent pas combien la ligne de commande peut être rapide et puissante comparé aux cliquodrômes graphiques ! Depuis que j'ai découvert "wget" (téléchargement en ligne de commande) il y a quelques années, je ne peux plus m'en passer. Principalement pour une bonne raison : la reprise après arrêt. Comme Firefox en son temps, il permet de stopper le téléchargement et de le reprendre après (surtout en cas d'échec ou de coupure réseau). wget (comme curl) supporte plein de protocoles et d'options (http, https, ftp, login...), mais il y a une fonctionnalité manquante : le téléchargement en parallèle.

Certains sites limitent la bande passante par connexion, mais pas par IP, donc si on utilise plusieurs connexions, on augmente la bande passante totale !

J'aurais aimé implémenter cette fonctionnalité directement dans wget et/ou curl, mais ils sont vraiment gros et c'est une modification assez intrusive. Donc, j'ai créé gget. gget est assez petit (~500 C loc), il est basé sur libcurl et supporte seulement HTTP sans authentification. Les principales fonctionnalités sont :

  • Téléchargement en parallèle (3 connexions par défaut)
  • Reprise après arrêt (par défaut)
  • Limitation de la bande passante (optionnelle)
  • Possibilité de définir son "user agent" (identification du navigateur)

Le code source est disponible sur ma forge sous licence GPLv3. Il y a une version compilée pour Linux.

J'ai ajouté le support pour Windows, il compile parfaitement avec mingw64, mais plante à l'exécution... J'ai abandonné après m'être battu plusieurs jours sous Windows avec CodeBlocks et DevCPP. C'est un système détestable pour faire du développement hors Visual C++ !! Si quelqu'un souhaite proposer un correctif, il est le bienvenu !

Monday, 04 August 2014
|
Écrit par
Grégory Soutadé

Gâteau anniversaire 4 ans

l'année dernière je disais que l'amour dure trois ans. Visiblement il y en a une de plus ! Côté publications, c'est cette année 49 articles dont 4 en anglais. Plutôt pas mal sachant que la section cinéma a été fermée, n'étant pas suffisamment intéressante. Seuls les films qui méritent vraiment le coup (comme le fameux "Libre et assoupi") seront sujets à article. Pour parler cinéma, je trouve que cette année, sans être extraordinaire, a été bien meilleure que la précédente !

Côté serveur, ça fait donc quatre ans que le Sheevaplug tourne avec une seule panne l'année dernière ! Il tient parfaitement la charge (merci nginx !), même s'il manque un peu de pêche pour faire tourner Dynastie (écrit en Python avec le framework Django). D'ailleurs, je trouve la syntaxe Markdown vraiment agréable pour rédiger des articles tant que ceux-ci n'ont pas de formatage complexe, sinon je repasse en HTML. J'ai aussi abandonné mon certificat SSL Gandi pour un auto-signé. C'est moins bien pour l'utilisateur, mais au moins je connais tous les maillons de la chaîne de signature !

Concernant la fréquentation, mon article favoris, mis à part une embellie à la fin de l'année passée, est de moins en moins consulté. Le serveur a aussi servi de relais à des pirates dans le but de faire télécharger à un autre serveur de grosses quantités de données pour, je suppose, créer un déni de service (DDoS), c'est à dire faire tomber sa connexion. Les administrateurs de moxiecode.com (auteurs de tinyMCE) à l'origine de la faille n'ont pas réagi, j'ai donc simplement coupé l'accès au fichier en question (de 4Mo quand même).

Voici un aperçu des articles les plus consultés avec leur date de parution (sur un an) :

Les liens en gras sont surtout consultés pour les images.

En ignorant l'attaque du début de l'année (à la louche), les chiffres sont :

  • 49 articles (50, 60, 60)
  • 25 000 visites (12 000, 18 000, 9 000)
  • 5.5 Go de données envoyées (2, 5.7, 2.7)

Entre parenthèses, ce sont les chiffres des années précédentes. On peut donc considérer que c'est une très bonne année, sans effet linuxfr qui plus est (gPass n'a eu qu'un succès relatif...) ! Même si la moitié des visites ne concernent qu'un seul article...

Pour la suite, je vais peut être créer une catégorie "ballades" si j'en viens à faire plus de "reportages" photos comme le "Chemin du paradis", "Expo roses" ou encore "Le plan des Noves". Il faut juste que je fasse attention car les images sont très consommatrices de bande passante, donc éviter de mettre plusieurs articles sur une même page d'index !! On verra si j'aurai autant d'inspiration que pour cette année (le mois de mai a été particulièrement fertile). En tout cas, il y a déjà un article en préparation qui risque de faire du bruit !!!

Tuesday, 29 July 2014
|
Écrit par
Grégory Soutadé

BSD systems are known to have the highest uptime, but our favorite GNU/Linux system can do the same if we want. At work my computer runs since 260 days without any reboot thanks to Ubuntu (LTS 10.04).

This is cool, nevertheless having software launched for a long time consume a lot of memory (I like to keep terminals and emacs open to save history), especially Firefox uses one to three giga bytes of memory (even in version 30.0). Software not used everyday goes to swap and come back when needed. This process can slow my computer for minutes (when I unlock my session).

The only solution is to kill these applications and restart them properly. I used to track memory eaters with "top" command, but it's hard to see in one time which software is using most of memory.

I wanted to do it for long time, and now it's out ! I wrote a PERL script called memstats that list processes by memory usage (and not by CPU usage like top).

It reads information from /proc/PID/stat and /proc/PID/status, so it's very Linux dependant (sorry BSDs...).

memstats output looks like "top" (because it's a good one).

soutade@cybelle> memstats
  PID    OWNER  VIRT   RES S       TIME         COMMAND
20098  soutade 3.10g 1.80g S   09:00:59         firefox
 1285     root  526m  259m S 6214:00:04            Xorg
 2555  soutade  862m  200m S 6214:00:10  gnome-terminal
 2113  soutade  827m  181m S 6214:00:20     gnome-panel
20081  soutade  866m  153m S   10:00:12     thunderbird
 2122  soutade 1.97g   98m S 6214:00:20        nautilus
 2192  soutade  591m   86m S 6214:00:13 indicator-apple
20104  soutade 1.07g   42m S   09:00:58          pidgin
26536  soutade  627m   40m S   06:00:22           gedit
 6517  soutade  529m   30m S 2816:00:40           emacs
 2845  soutade  442m   27m S   00:00:50           emacs
22935  soutade  449m   23m S  103:00:06           emacs
 2094  soutade  899m   23m S 6214:00:21        metacity
 2207  soutade  393m   11m S 6214:00:13 indicator-messa
 2762  soutade  114m   10m S   00:00:48          python
 9752  soutade  401m    8m S   96:00:18 gnome-screensav
 2070  soutade  766m    7m S 6214:00:22 gnome-settings-
 2914  soutade   94m    6m R   00:00:00        memstats
 2121  soutade  477m    6m S 6214:00:20 notification-da
 2489  soutade  414m    6m S 6214:00:20 update-notifier
23305  soutade  391m    5m S 5641:00:44 ubuntuone-syncd
 2280  soutade  418m    4m S 6214:00:10 gdu-notificatio
 2061  soutade   22m    4m S 6214:00:22     dbus-daemon
 1973     root  192m    4m S 6214:00:32         lightdm
 6886  soutade  581m    4m S 3797:00:46 gnome-keyring-d
 2134  soutade  539m    4m S 6214:00:19 gnome-fallback-
28423  soutade   85m    4m S   05:00:43            bash
 2389  soutade  335m    4m S 6214:00:00 zeitgeist-daemo
 6080  soutade  332m    4m S 3624:00:44      pulseaudio
 2382  soutade  400m    3m S 6214:00:00 zeitgeist-datah

memstats is licenced under GNU GPL v3 and available in my inDefero forge. Have fun !

Tuesday, 22 July 2014
|
Écrit par
Grégory Soutadé

Rendu OpenStreetMap

Yoann Sculo a commencé il y a quelque temps déjà le recensement des entreprises travaillant dans le logiciel embarqué, l'électronique et l'industrie. C'est une initiative intéressante autant pour celui qui est en recherche d'emploi que pour connaître les différents acteurs du marché. Les entreprises recensées sont des "noSSII" comme il le dit, c'est à dire, non pas des sociétés de services soit disant expertes, mais de vraies entreprises qui font de vrais produits.

De mon point de vue, le monde de l'embarqué étant assez technique et requiert des compétences moins génériques que les autres branches de l'informatique, les entreprises préfèrent capitaliser le savoir en recrutant directement (ou en pré embauche via SSII) leurs ingénieurs. Mais, n'ayant pas encore été confronté à ce problème, je me trompe probablement.

Je vous encourage donc si vous travaillez ou connaissez une telle entreprise à la rajouter dans la liste. Soit pour les plus téméraires en faisant un fork du projet et modifiant le JSON à la main (rien de très compliqué), soit en envoyant directement un mail à Yoann avec les coordonnées, et il se chargera du reste !

Tuesday, 15 July 2014
|
Écrit par
Grégory Soutadé

36 heures d'interruptions, ce sont les joies de l'auto hébergement... Tout commence par une (je suppose) mise à jour de la livebox. Chouet, une nouvelle interface eye candy, mais toujours pas de support de l'IPv6 et moins de contrôle de la livebox... S'ensuit naturellement une déconnexion intempestive. On débranche tout, on rebranche, on fait un reset (non !!!!!!!!!!!).

Bref, il faut vingt-quatre heures pour que je puisse intervenir physiquement sur la box, puis encore deux heures pour retrouver ce satané mot de passe de connexion (heureusement enregistré dans un ancien profil de Firefox). À priori tout est OK, pourtant le serveur n'est pas accessible depuis l'extérieur. Sûrement les DNS qui n'ont pas encore été mis à jour. En fait non, le reset avait aussi effacé les règles NAT. Cinq heures pour m'en rendre compte !

Maintenant tout est redevenu normal (sauf erreur que je n'aurais pas encore rencontrée). Tout ceci souligne (mais je le savais) la fragilité de l'installation :

  • Pas de serveur de secours
  • Pas d'IP fixe (donc coupures régulières de DNS, merci Orange)
  • Pas de carte d'accès à distance style DRAC

Vivement la réplication sur un autre site physique avec un fournisseur d'accès internet indépendant comme FDN et un vrai modem routeur (pas de services inutiles comme le téléphone, la télévision...). Le tout relié à un serveur un peu plus musclé comme l'alléchante Cubox-i2eX. L'idéal serait même un modem sous *BSD pour limiter les backdoors de la NSA/DGSE !

Dernier gif les joies du code when the boss is not around on friday night