Le fourre-tout à Geo

Aller au contenu | Aller au menu | Aller à la recherche

jeudi, septembre 17 2009

Je bidouille Firefox et j'aime ça

Ceux qui ont déjà jeté un oeil à ma machine savent que j'ai un gros problème avec les navigateurs web: le nombre d'onglets. Pour donner une idée, j'ai souvent plusieurs projets en cours, avec à chaque fois les onglets pour la documentation que je garde ouverts, j'ai un aggrégateur RSS avec beaucoup de flux pour lesquels j'ouvre un nouvel onglet (c'est lourd, ces sites qui ne mettent qu'un extrait dans le RSS) que j'oublie de lire, et j'ai comme tout le monde des séances sur Wikipedia où je clique compulsivement sur tous les liens de la page. Je me suis déjà retrouvé avec trois fenêtres contenant chacune plus de 50 onglets.

Résultat: je les perds régulièrement, j'oublie de les lire et ça s'accumule. Et en plus, Firefox aime bien la RAM, et en prend de plus en plus. Au bout de 600 Mo, il est très lent... Et si en plus, on ajoute des sites avec du Flash et du Javascript dans tous les sens, et une tendance à chercher le gros uptime, on court vers la catastrophe!

Interface de base Firefox

Bien sûr, on me proposera quelques solutions évidentes du genre:

  • lire les pages dès qu'on les ouvre
  • mettre en bookmark celles qu'on veut garder (j'ai jamais réussi à organiser les bookmarks)
  • ne pas passer autant de temps à glander sur Internet...

Mais ce serait trop facile! Quelque chose en moi me pousse à trouver une solution technique à ma flemme, me permettant de ne pas changer mes très mauvaises habitudes. Oui, c'est mal. Mais le résultat est plutôt efficace.

Affichage

Premier essai: Colorful Tabs

La première extension que j'ai essayée pour m'aider à m'y retrouver dans tous mes onglets est Colorful Tabs. Elle colore chaque onglet, ce qui se révèle très pratique pour la reconnaissance des pages que l'on veut consulter.

Colorful Tabs

Malheureusement, ça limite toujours le nombre de tabs visibles.

La suite: TabKit

TabKit est une extension très puissante pour gérer les onglets dans Firefox. Le réglage par défaut (onglets colorés à gauche organisés en arbre) contentera pas mal de gens (dont moi). Notons que ColorfulTabs n'est pas nécessaire car TabKit colore les boutons tout seul. Par contre, les boutons sont plus jolis quand on rajoute ColorfulTabs :)

Tab Kit

Gagner encore un peu de place

Vue aujourd'hui sur LifeHacker, une astuce toute simple permet de gagner un peu de place. Il suffit de droitcliquer (ça se conjugue comme doublecliquer: je droitclique, tu droitcliques...) sur la barre de menu et gauchecliquer sur "Personnaliser". J'ai décoché la "barre personnelle" dont je ne me servais pas, j'ai mis tous les boutons sur la ligne du haut, et j'ai supprimé le bouton Home (pas très utile, quand on a 150 onglets au démarrage).

Lifehacker Firefox tip

On gagne encore de la place en décochant aussi "Barre de navigation".

AAAAH Il y a trop d'onglets!

Bon, ok, c'est joli. On passe d'un affichage d'une dizaine d'onglets à 25 onglets colorés. Quand on en a 150, cette solution ne suffit pas.

Profils Firefox

Je peux résoudre le problème de la durée de vie des onglets avec une astuce pas très compliquée, et TRES utile (ça mérite le gras en majuscule). Firefox peut gérer plusieurs profils utilisateur. Généralement, personne n'a besoin de ça, et utilise directement le profil par défaut. Mais on peut en créer plusieurs. Ils se trouvent dans %APPDATA%\Mozilla\Firefox\Profiles\xxxxxxxx.default'' aka c:\Users\MOI\AppData\Mozilla\Firefox\Profiles\xxxxxxxx.default'' sur Windows, ou ~/.mozilla/firefox/xxxxxxxx.default/ (et les utilisateurs de Mac peuvent crever la bouche ouverte ou aller consulter la doc).

L'idée ici est de créer un profil par thème. Je peux ainsi garder le profil par défaut pour lire les RSS et les webcomics, et autres distractions, et créer un profil pour chaque projet sur lequel je travaille. J'ai par exemple un profil pour stocker les onglets en rapport avec VLC, et un autre pour mes bidouilles en électronique. Ainsi, je garde des fenêtres avec peu d'onglets, je n'ai pas besoin de scroller constamment pour trouver les pages qui m'intéressent, j'ai moins de chances de perdre mes onglets, Firefox utilise moins de RAM, et avoir tous les liens en rapport avec un sujet sur la même fenêtre aide à ne pas se laisser distraire (surtout si je ferme le profil default).

Comment faire ça? Pas compliqué! En gros, Démarrer->Exécuter puis tapez: firefox.exe -ProfileManager

Créez ensuite le profil que vous voulez. Quittez Firefox et redémarrez-le. Il va charger le profil par défaut. Lancez une seconde instance de Firefox. Il devrait vous présenter la fenêtre suivante:

Choisissez votre profil

Si non, faites Démarrer->Exécuter puis tapez: firefox.exe -P -no-remote

-P étant un alias pour -ProfileManager et -no-remote indiquant à Firefox qu'il ne doit pas charger le nouveau processus dans le même profil.

Vous pouvez maintenant gérer vos profils (créer, supprimer, etc.) et lancer ceux qui vous intéressent. Vous pouvez même créer des raccourcis pour chacun des profils, par exemple en indiquant:

firefox.exe -P VLC -no-remote

Configurer chaque profil

Le problème, c'est que les nouveaux profils sont vierges. Vous voudrez peut-être copier vos bookmarks, mots de passe, historique d'un profil à l'autre. Pour ça, l'extension FEBE s'occupe de tout, même de la migration de vos extensions. Vous n'avez plus qu'à exporter les informations qui vous intéressent d'un profil à l'autre.

Et après?

Maintenant, je dois faire attention à garder un nombre d'onglets par profil limité. Pour le profil "distractions", il suffit de lire les pages qui sortent de l'aggrégateur RSS, et pour les autres profils, quand j'ai de trop nombreuses pages, soit je m'arrange pour bosser suffisamment et les supprimer, soit la documentation est importante, et je l'insère dans un logiciel de Mind Mapping. Ca fait un peu pipo comme outil, mais c'est très pratique!

Voilà, je vous ai livré mon secret pour corriger mes mauvaises manières grâce à la technologie. Si maintenant, vous voulez un dernier avis sur ce qu'il faut utiliser avec Firefox, voici quelques trucs:

La combinaison NoScript/RequestPolicy/GreaseMonkey peut paraître overkill et inutilisable, mais elle accélère la navigation (moins de Flash et de Javascript), les listes de sites à autoriser sont vites faites, et c'est marrant de voir les interactions entre sites, du genre vol d'images, publicités, séparation des services selon le nom de domaine, etc.

vendredi, février 13 2009

FOSDEM 2009

I was at FOSDEM 2009 in Brussels, and that was fun! I enjoyed seeing so much geeks, with their distrib t-shirts and trolling each other. That's nice to see that all these open source geeks are not only nicknames on IRC :)

I saw some interesting conferences, projects, people, and now I have enough ideas to play with for a few months. Here are some thoughts about the conferences I attended:

Reverse engineering of proprietary protocols, tools and techniques, by Rob Savoye

That was something people were waiting for! The room was full! The speaker was the typical GNU guy: a geek with a great beard. He talked about his work on Gnash, the GNU flash implementation, and how he reverse engineered the RTMP protocol, a proprietary streaming protocol from Adobe. He explained the requirements and the process of reverse engineering in a few points:

  • First, talk to your lawyers: you may not know about some obscure cases and laws, and you can be sued over whatever little thing you might have forgotten. Using the "clean room" method is recommended: one group writes specifications while spying on the protocol, and the second writes the software using the specifications.
  • Next, have a calm, non disturbing environment. Reverse engineering a protocol is a long and hard process, don't expect to do it in one month on your spare time. And be prepared to throw away a lot of code. You may go into a direction, and then realize that the parser you just wrote is completely wrong. Using test cases is a good way to see if your code is wrong. Raw dumps will be useful for the tests.
  • Rob presented some tools he used to work with all the hexadecimal dumps he used, like od, ngrep, tcpdump, hexdump, wireshark, strings, vim, emacs, etc. You have to have a good hexadecimal editor: humans are really good at finding text, patterns, and you can save a lot of time just by looking at the packet dumped.

Marionett, networking for dummies, by Marco Stronati

This was really interesting, but too short. I would have liked to see some demos. The Marionnet project was started by a professor from université Paris 13, because teaching networks was hard: setting up a network for a course takes time, sometimes the hardware fails, there's not enough of it, students can't try at home... So, this professor started Marionnet, to provide students with a network testing tool, based on virtual machines. With this, they're not limited by the cost of hardware, the number of routers, and students can work at home. It's even easier with the live DVD they built. Marionnet supports the classic protocols: TCP, ICMP, DNS, BGP, etc. And it has some nice features: you can create "clouds", network items you can't determine, you just know some packets come through it. You can add lag and packet loss on a cable. You can make your virtual network interact with the real network your computer is plugged to, and even interact with another Marionnet virtual network over real networks. I hope we'll use it in Rézoléo to teach networking to new people.

Warning, troll inside: it's a french project, made by some academic people, so it's in OCaml (and they seem very proud of it). French CS professor like things that nobody uses, like Merise or ADA... *sifflote innocemment en regardant le ciel d'un air vague*

Wt, a C++ web toolkit, for reach web interfaces to embedded systems, by Pieter Libin

One of the most interesting sessions of FOSDEM. Wt is a C++ library providing web services. It can serve a website either using the builtin web server or through FastCGI (Apache, lighttpd,...). With its small footprint (2-3 Mb), it is aimed at embedded devices. Adding an ethernet port and a little flash disc cost less than adding a full interface with keyboard and screen. Managing your industrial devices can be done from your desk, in your navigator! The API looks a lot like Qt, so, easy to read. And it can use nice things like Ajax or SVG.

I'm pretty sure everybody in the room was thinking about a web interface to their coffee machine :)

Apport - Automatic application crash reporting for OpenSUSE, by Jan Blunck

opensuse: apport (crashreporting) what do you send back to bug reporting? parsing the crash report? symbols? having a stacktrace using /proc

I went to this lecture just for fun: I wrote a system like this in VLC for Windows just two weeks ago (see http://git.videolan.org/?p=vlc.git;a=commitdiff;h=f7c9acaebd4b620d8b4ed6aedbdae3a3ee52d38e and http://git.videolan.org/?p=vlc.git;a=commitdiff;h=82bc4a310683688843c8b361a1c767260f522ecc, more on this in an upcoming article). I was able to resist the urge to troll the speaker, but that was hard :)

While writing your crash reporting application, you encounter these classical and annoying problems:

  • what do you send back? Can dumping memory harm the privacy of your users? Can you send the OS version? The good solution is asking the user: some won't like sending the content of their memory. And some users will be pleased to send you a message describing what they were doing (and insulting you on the way...).
  • How do you get a stacktrace? How can you get symbols? Well, I've got a solution for the symbols (see my commits and the strp man page)
  • how do you use the crash report? I was disappointed to see that they had no working (read "in production") system to parse crash reports. As I still have no system to do it (*sifflote*), I was expecting that the Novell guys would have something to keep me lazy... To parse a report, you typically have to find similarities with other reports. A good way is to assemble crashes with similar stacktraces.

Google Summer of Code: a behind the scenes look at large scale community management, by Leslie Hawthorn

Leslie, the Summer of Code's community manager, talked about all the hard work she did interacting with all the students, mentors, projects, Google people, and about what you can do to help a large scale project like this to go smoothly. Kudos to her!

And so on...

I saw many other nice things, like FreeIPA (an identity management system using LDAP, and Kerberos. I'll look more into this in the next few weeks), CMake and Qt (well, thanks to VLC, I knew a bit about these projetcs, but attending a small lecture helps understanding), syslinux (PXE with HTTP, yay!), cpan2port, and I came to the CACert assuring party. I now have 100 points, I can try to pass the assurer's test! I didn't do the GPG signing party: I was too late to register my key on the keyserver they built for the event, and, well, they did it outside, and it was cold :P

mercredi, mars 19 2008

Jouer avec des automates finis ?

Je viens de tomber sur http://thedailywtf.com/Articles/Finite-State-Arg.aspx, c'est excellent ^^

Une implémentation classique d'un automate fini pour un problème qui peut être réglé par une fonction standard... Ok, c'est réinventer la roue, mais on doit être fier de soi après avoir écrit un bout de code pareil !

lundi, mars 17 2008

Problème de driver pour cartes mémoire SD sous Vista

J'ai eu pendant quelques temps un petit problème avec mon PC : le lecteur de cartes SD intégré était reconnu et installé, mais pour les cartes SD, elles étaient reconnues, mais Windows ne trouvait pas le driver. Comme j'ai des partiels à réviser cette semaine, je me suis attelé à ce problème aujourd'hui :)

J'ai cherché un peu sur Internet, et sur pas mal de résultats, c'était soit "installe cette mise à jour Windows", soit "désinstalle le lecteur et redémarre". Sauf que les mises à jour ne s'installaient pas (parce qu'apparemment elles ne sont pas faites pour mon PC, je trouve que Windows Update fait de la méchante discrimination ;), et que désinstaller puis redémarrer a eu pour effet de transférer le problème au lecteur, qui ne trouvait plus son driver du coup...

En cherchant un peu plus, je suis tombé sur ce lien (bon, ok, le 4ème résultat quand on tape "vista sd" dans google.fr contient ce lien, c'est juste que j'ai eu la flemme de regarder avant un moment).

La solution est très simple :

  • Allez dans C:\Windows\System32\DriverStore\FileRepository
  • Cherchez les dossiers dont le nom commence par sdbus.inf
  • Ouvrez le dossier sdbus.inf** le plus récent
  • Copiez le fichier sdbus.inf dans le dossier C:\Windows\Inf
  • Essayez de réinstaller votre lecteur de cartes, normalement, ça devrait marcher :)
  • Si vous avez de la chance, les cartes SD seront reconnues et installées sans problème, mais comme moi j'ai pas de chance (Calimero, tout ça), j'ai du bidouiller un peu plus
  • En gros, faites la même manip, mais cette fois en cherchant le dossier le plus récent commençant par sffdisk.inf, puis en copiant le fichier sffdisk.inf dans C:\Windows\Inf
  • Essayez d'insérer votre carte SD, pour voir si elle est reconnue et installée
  • Si ça marche et que vous êtes moi, retournez bosser votre mécanique des fluides (parce que les tuyères et les ondes de choc c'est très important, sisi!)

mercredi, janvier 23 2008

Clavier Dvorak bépo : faites du bien à vos mains

Avez-vous déjà eu des fatigues dans les doigts après avoir frappé un rapport de 50 pages d'une traite? Voudriez-vous apprendre à frapper au clavier avec vos dix doigts, mais sans vous prendre la tête? Alors le clavier Dvorak français est fait pour vous!

Lire la suite...

- page 1 de 2