Microblog : A very long article Wikipedia article on the orientation of toilet paper [7 jun à 22:52] [R]

Jeudi, 30 décembre 2010

Circuit auto Noël 2010

Catégories : [ Jeux ]

circuit_noel_2010

Un circuit compact cette fois-ci, car la place habituelle que j'utilise pour monter le circuit est occupée par le sapin de Noël. Grande innovation cependant cette fois-ci, l'ajout du compte tours électronique.

[ Posté le 30 décembre 2010 à 13:27 | 4 commentaires | ]

Jeudi, 16 décembre 2010

Compte-tours pour circuit auto, deuxième partie

Catégories : [ Bricolage ]

Après plusieurs mois à prendre la poussière, j'ai finalement acheté les composants nécessaires pour construire une version fonctionnelle du compte tour pour circuit auto. Le circuit est le même que celui du prototype, mais l'Arduino Duemilanueve a été remplacé par un RBBB, plus petit et nettement moins cher.

Compte_Tours_boitier_dessus

L'interface utilisateur se compose d'un écran LCD (4 lignes de 20 caractères) et trois bouton. Le bouton rouge est relié au reset de l'Arduino. Les bouton noir du milieu sert à choisir l'item suivant dans le menu, et le bouton du bas sert à agir sur l'item sélectionné.

Compte_Tours_boitier_arriere

À l'arrière du boitier se trouve un connecteur D-sub à 9 plots récupéré sur une vieille carte mère, où le connecteur du port série était encore relié à la carte par un cable ruban. 4 plots sont utilisés : +5V, 0V, et les signaux venant des pistes 1 et 2.

Compte_Tours_boitier_interieur

Le circuit blanc est le RBBB, le brun est morceau de carte à prototyper. Il comporte le potentiomètre pour le contraste de l'écran, et les différentes résistance (pull-down des boutons noirs, limiteur de courant du buzzer). La paire de fils rouge/noir devant à gauche vont au buzzer qui est fixé sur la face avant, derrière un petit trou. Les deux circuits sont fixés par des vis sur le morceau de boitier que j'ai découpé pour laisser passer l'écran, et ce moreceau est vissé sur le fond sur un plot prévu à cet effet.

L'écran LCD est connecté en mode 4bits, et comme le rétro-éclairage contient déjà deux résistance de 10 Ω en parallèle, j'ai pu le brancher directement sur le +5V.

[ Posté le 16 décembre 2010 à 13:21 | 1 commentaire | ]

Jeudi, 2 décembre 2010

Linux Tablet Comparison

Traduction: [ Google | Babelfish ]

Catégories : [ Informatique ]

I currently found 3 tablet computers running Linux (all have Bluetooth and WiFi, options are between parentheses):

First line reads: screen size, resolution, weight, autonomy, OS, price.

Shogo

10.6", 1024x600, 800g, 3 – 5 hours, Ångström, 500 EUR

ARM FreeScale i.MX-37, 256 MB RAM, 4 GB Flash, Ethernet, (3G), SDHC reader, 1 USB host, 2MPx camera

Hacking: root access with ssh by default

WeTab

11.6", 1366x768, 1000g, 6 hours, Meego, 450(570) EUR

Intel Atom N450, 1 GB RAM, 16(32) GB Flash, (3G+GPS), SDHC reader, 2 USB host, 1.3 MPx camera

Hacking: ?

Archos

10.1", 1024x600, 480g, 10 hours, Android+Ångström, 300(350) EUR

ARM Cortex A8, 256 MB RAM, 8(16) GB Flash, Micro SDHC reader, 1 USB host + 1 slave, 0.3 MPx camera

Hacking: replace Android with Ångström

[ Posté le 2 décembre 2010 à 11:12 | pas de commentaire | ]

Vendredi, 10 septembre 2010

My Own Maemo Repository

Traduction: [ Google | Babelfish ]

Catégories : [ Informatique ]

I built my own maemo repository to distribute my small and insignificant applications. The APT source is deb http://users.jyu.fi/~mweber/maemo/ fremantle main and the two currently available apps have their own .install files: pointscounter.install and maemo-dict.install.

[ Posté le 10 septembre 2010 à 10:49 | pas de commentaire | ]

Dimanche, 29 août 2010

Guinness en gelée (2)

Catégories : [ Cuisine ]

Variante de la première expérience de Guinness en gelée.

Ingrédients

  • 1 boite de Guinness (440 mL)
  • 10g sucre glace
  • 2g κ-carraghénanes

Préparation

Gelee_de_Guinness-1

Mélanger finement le sucre glace avec les κ-carraghénanes. Chauffer la Guinness à 80 °C, y verser le mélange de sucre, mélanger puis mixer. Verser dnas un récipient pour la conservation. Laisser refroidir.

Commentaires

Gelee_de_Guinness-2
  • On obtient un gel cassant bien noir avec de la mousse sur le dessus (gélifiée elle aussi, donc stable).
  • 2g de gélifiant ça fait trop, le gel est bien résistant, mais on ne sent quasiment que le goût amer de la bière, les autres arômes étant emprisonnés par le gel.
  • La mousse risque de moisir rapidement, je conserve le produit au frigo.

[ Posté le 29 août 2010 à 17:53 | 4 commentaires | ]

Jeudi, 26 août 2010

Guinness en gelée (1)

Catégories : [ Cuisine ]

Erwan l'a proposé sur f.m.b.l., je l'ai fait. Même pas peur.

Ingrédients

  • 1 boite de Guinness (440 mL)
  • 10g sucre glace
  • 2g gomme xanthane
  • 2g gomme de konjak

Préparation

Mélanger finement le sucre glace avec les gommes. Verser dans la Guinness et mixer. Laisser prendre au réfrigérateur.

Commentaires

  • Le gel commence à prendre durant le mixage, et il devient plus solide et plus homogène durant le repos au réfigérateur.
  • Après quelques heures, il reste très « tremblant », mais c'est définitivement un gel.
  • Le mixage introduit une grand nombre de bulles d'air, donc la préparation a la même couleur qu'une Guinness qu'on vient de tirer, un beige/brun. Je ne vois pas comment obtenir à froid une préparation noire. J'essayerai à chaud un autre jour avec un autre gélifiant (agar ? carraghénanes ? tara ?).

[ Posté le 26 août 2010 à 21:53 | 4 commentaires | ]

Mercredi, 25 août 2010

QR Code Generator for WiFi Configuration

Traduction: [ Google | Babelfish ]

Catégories : [ Informatique ]

http://zxing.appspot.com/generator/ generates a QR Code that contains SSID, key and encryption type of a WiFi access point. This can be displayed on screen or printed on paper and used for automatically configuring a mobile device for connecting to the wireless network (provided the phone has a camera and can read the barcode).

[ Posté le 25 août 2010 à 21:59 | 2 commentaires | ]

Lundi, 16 août 2010

Compte tours (prototype)

Catégories : [ Bricolage/Arduino ]

Compte_Tours_Proto

Le prototype de la partie électronique du compte-tours pour circuit auto est prêt. Le code source est disponible .

La diode IR et le phototransistor sur la droite permettent de simuler le passage de la voiture sur une piste. Le buzzer juste à coté donne le départ avec un signal sonore, signale un faux départ avec un autre signal sonore et la fin de la course avec un troisième. Les deux boutons au milieu permettent de choisir les options du menu.

Le menu propose trois options, une par ligne. Un des boutons permet de passer à la ligne suivante (et repart du haut une fois arrivé à la dernière ligne), l'autre permet d'activer l'option choisie. La première option permet de choisir le nombre de tours de la course ; la second permet alternativement de choisir la durée de la course (en minutes) ; la troisième démarre la course.

Durant la course, pour chacune des deux pistes, le nombre de tours parcourus est affiché, ainsi que le chronomètre du tour en cours, le chronomètre de la durée totale de la course et, après le premier tour, la durée du tour le plus court.

Lorsque le nombre de tours est atteint par un des participants, ses chronomètres sont arrêtés et le signal de fin de la course retentit. Lorsque l'autre participant parvient au nombre de tours choisi, ses chronomètres sont arrêtés à leur tour.

Lorsque la durée choisie est écoulée, les deux chronomètres sont arrêtés.

[ Posté le 16 août 2010 à 21:02 | 1 commentaire | ]

Jeudi, 12 août 2010

Oscilloscope rudimentaire

Catégories : [ Bricolage/Arduino ]

J'ai bricolé hier un script python/GTK qui représente de manière graphique les données produites par le programme-exemple AnalogInSerial. Le code source sans documentation se trouve . Le code est dans le domaine public.

arduino_oscilloscope_noise

L'entrée analogique n'étant reliée à rien, elle produit surtout du bruit, de fréquence régulière (trop lent pour être les 50 Hz du secteur, mais comme la fréquence d'échantillonage est de l'ordre de 70 Hz, il se peut que le signal soit mal échantilloné) et d'amplitude constante.

arduino_oscilloscope_up

Ce qui est plus surprenant, c'est que l'amplitude du bruit diminue lorsque l'Arduino est soulevé de la table.

arduino_oscilloscope_tap

L'amplitude augmente temporairement lorsqu'on tapote le connecteur (ici le circuit est posé sur la table).

arduino_oscilloscope_blow

La valeur moyenne lue augmente lorsqu'on souffle sur le connecteur (le circuit est en l'air), tandis que l'amplitude des oscillations diminue. Ensuite, la valeur moyenne diminue très progressivement (sur plusieurs secondes), avant de retrouver son niveau de départ.

[ Posté le 12 août 2010 à 22:46 | 4 commentaires | ]

Mercredi, 11 août 2010

Hello World LCD

Catégories : [ Bricolage/Arduino ]

Arduino_LCD_1

J'ai récupéré l'écran LCD (4 lignes de 20 caractères) de feu Poppikone et je l'ai branché sur l'Arduino. Le Hello World livré en exemple avec la bibiothèque LiquidCrystal fonctionne :)

[ Posté le 11 août 2010 à 23:51 | pas de commentaire | ]

Mardi, 27 juillet 2010

Compte-tours pour circuit auto, première partie

Catégories : [ Bricolage ]

But du projet: construire un compte-tours électronique pour mon vieux circuit auto Tyco. Le portique est prêt : deux diodes IR éclairent la piste juste au dessus des voitures. Le compteur mécanique original fonctionnait grâce à un morceau de piste spécial, dont le rail guide était ouvert sur le dessous pour permettre à l'ergot des voitures de faire tourner une roue numérotée. J'ai placé deux phototransistors sous ces fentes : en temps normal, ils reçoivent le faisceau des diodes IR, mais quand une voiture passe, celui-ci est interrompu.

L'interface de sortie est simple à souhait : un fil pour chaque voie, dont la tension passe de 0 à presque 5 V lorsque le faisceau est interrompu. Plus qu'à espérer que la différence soit assez grande pour faire basculer une entrée numérique de l'Arduino.

[ Posté le 27 juillet 2010 à 12:14 | 3 commentaires | ]

Mercredi, 21 juillet 2010

Hacker un circuit auto Tyco

Catégories : [ Bricolage | Jeux ]

Le circuit auto est alimenté par un transformateur 12 V/6 W. Le problème, c'est que la tension délivrée baisse lorsqu'on lui demande de débiter davantage de courant, et donc que lorsque deux voitures roulent ensemble, leur accélérations ne sont terribles. De plus, lorsqu'une voiture sort de la piste, le transformateur n'a besoin de débiter que la moitié du courant, la tension augmente brusquement et la voiture restante accélère soudainement. Si elle est en entrée de virage, elle sort de la piste aussitôt.

J'ai donc utilisé une alimentation stabilisée à la place du transformateur, et tous ce problèmes s'envolent (évidemment, les fabricants de jouets ne sont pas prêts à remplacer un petit transformateur à 5 EUR par une alim à 150 EUR). J'ai d'abord règlé l'alim sur 12 V, mais les résultats n'étaient pas terribles. Après quelques essais, j'ai découvert qu'une voiture roulant à fond (j'en ai mise une sur cales pour les tests) recevait 17 V. J'ai donc réglé l'alim sur environ 16 volts, et là ça marche drôlement bien.

Une voiture consomme environ 300 mA dans les virages, et peut consommer brièvement jusqu'à 700 mA quand on accélère à fond. Et quand on utilise deux voitures en même temps, les deux peuvent accélérer à fond au besoin. Aussi, fini les sorties de pistes provoquées par la sortie de l'autre voiture. Que du bonheur.

Prochaine étape, construction d'un compte-tours/chronomètre éléctronique à base d'Arduino. J'ai déjà les diodes IR et les phototransistors, mais l'Arduino et l'écran LCD alphanumériques sont restés à la maison.

[ Posté le 21 juillet 2010 à 19:28 | pas de commentaire | ]

Lundi, 19 juillet 2010

Circuit auto 2010

Catégories : [ Jeux ]

Circuit_Auto_2010

Il y a deux ans, j'avais ressorti mon vieux circuit auto. Cette année, Emma me l'a redemandé, on en a donc construit un nouveau.

Je me suis rendu compte que les deux voitures d'origine ne fonctionnaient pas très bien dans le looping : l'avant de la carosserie frottait contre la piste et les roues avant ne touchaient plus le sol, ce qui faisait que la voiture restait parfois accrochée sur une mauvaise jonction entre deux rails et sortait de la piste. J'ai donc limé l'avant de la carosserie, et maintenant ça marche beaucoup mieux.

J'ai aussi expérimenté un looping « carré » avec des lignes droite entre chaque quart de looping, mais la voiture noire n'a pas assez de tenue de route pour rouler tête en bas.

[ Posté le 19 juillet 2010 à 15:58 | 1 commentaire | ]

Jeudi, 8 juillet 2010

4 ans

Catégories : [ Blog ]

4 ans de blog, 808 messages, 252 commentaires et 205 000 spams.

[ Posté le 8 juillet 2010 à 13:26 | 2 commentaires | ]

Samedi, 3 juillet 2010

Obese Debian Kernel

Traduction: [ Google | Babelfish ]

Catégories : [ Informatique ]

To run the Maemo SDK on a 64-bit computer, you need to enable VDSO compat in the kernel. To do so on Debian Lenny, you need to recompile the kernel. The problem is that when you follow the instructions, you get a 400+ MB package, because the binaries contain all the debugging symbols. After some time spent in search for the solution, I found it: export INSTALL_MOD_STRIP=1 before running make-kpkg. This calls strip on the modules when creating the .deb package.

Here's the procedure:

apt-get install kernel-package ncurses-dev bzip2 module-init-tools initramfs-tools procps fakeroot

apt-get install linux-source-2.6.xx

cp /usr/src/linux-source-2.6.xx.tar.bz2 /some/path/

cd /some/path/

tar jxf linux-source-2.6.xx.tar.bz2

cd linux-source-2.6.xx

cp /boot/config-2.6.xx ./.config

make menuconfig

make-kpkg clean

export CONCURRENCY_LEVEL=2

export INSTALL_MOD_STRIP=1

make-kpkg --rootcmd fakeroot --initrd --revision=custom.001 kernel_image kernel_headers

[ Posté le 3 juillet 2010 à 15:49 | pas de commentaire | ]

Mardi, 29 juin 2010

DICT-NetMOT Gateway Updated

Traduction: [ Google | Babelfish ]

Catégories : [ Informatique ]

The DICT-NetMOT Gateway I wrote some time ago suffered from an annoying bug: when the list of dictionaries at the source website is updated, the gateways uses the wrong dictionary (not-so-long story short: dictionaries are identified by index, and when the indexes change, it looks up in the wrong one). This has happened one time too many it seems, because I decided to fix this and get the gateway to download the list of dictionaries instead of using a hard-coded list. Currently the list is downloaded only on startup, so if it changes, the gateway needs to be restarted. If I am motivated, I may get it to reload automatically after a given timeout. EDIT: I was motivated, I just changed it; it now reloads after 1 day. (2010-06-29).

Short names for dictionaries, used as DICT identifiers, are generated automatically, so this may not work properly for dictionary names I haven't seen yet (there is a risk of short name collision, there is not checking against it).

Dictionaries which should be looked up by default can be specified with a (hard-coded) list of regexps against which the dictionary's long name is matched.

Also, some unidentified time ago, I updated the gateway to use the new NetMOT interface. I noticed that it started to use AJAX to provide the user with a list of suggestions while typing in the query box. I then used this feature to add support for ‘prefix’ and ‘glob’ matching strategies (‘prefix’ is mandatory in the DICT protocol, so before that the implementation was incomplete, but who cares?).

[ Posté le 29 juin 2010 à 08:08 | pas de commentaire | ]

Mercredi, 23 juin 2010

Life Subset

Catégories : [ Blog ]

Pour filtrer le contenu «  moins intéressant  » du blog, c'est à dire les résumés de livres, de films, les bières et les chocolats, il suffit d'ajouter le paramètre subset=life à l'URL du blog. Pour les plus fainéants, voici des liens directs vers les version HTML et RSS du blog.

To filter out the “less interesting” content of the blog i.e., the book and movie summaries, the beers and chocolats, you just have to append the subset=life parameter to the blog's URL. For the laziest of you, here are direct links to the HTML and RSS versions of the blog.

Jos haluat suodattaa “vähemmän kiinnostavan” sisällön pois, eli kirjojen ja elokuvien yhteenvedot, oluet ja suklaat, sinun tarvitsee vain lisätä subset=life blogin URL:iin. Tässä vielä laiskimille suoria linkkejä HTML- ja RSS- versioihin.

[ Posté le 23 juin 2010 à 23:37 | pas de commentaire | ]

Jeudi, 3 juin 2010

I'm a Geek!

Traduction: [ Google | Babelfish ]

Catégories : [ Râleries ]

I'm 86% geek, to be accurate:

86% Geek

Was there anyone to doubt it?

[ Posté le 3 juin 2010 à 18:11 | pas de commentaire | ]

Dimanche, 30 mai 2010

Micro blog 2

Catégories : [ Blog ]

Il y a un an, j'ai ajouté une fonctionnalité de micro blog (RSS), que je n'ai jamais vraiment utilisée. Je ms suis dit il y a a quelques jours que je pourrais l'utiliser pour garder une trace des videos et images amusantes vues sur le web. On verra bien si je l'utiliserai davantage à partir de maintenant.

J'ai aussi fait en sorte d'afficher la dernière entrée dudit microblog dans l'en-tête du blog, histoire de lui donner un peu plus de visibilité.

[ Posté le 30 mai 2010 à 17:18 | pas de commentaire | ]

Jeudi, 27 mai 2010

Xorg intel Driver and Refreshing Graphics

Traduction: [ Google | Babelfish ]

Catégories : [ Informatique ]

The not-so-new-anymore computer at work has an intel graphics card, I therefore use the intel Xorg driver. Since Day One, bitmaps (background images) in Firefox got scrambled when they were being repainted. For example, when the top of the page has a background image, after scrolling down and up again, the image is redisplayed by slices, and each slice was repainted upside down.

I finally found the culprit today, after trillions of CPU cycles used for recompiling various versions of Firefox: if I set the AccelMethod option in xorg.conf to XAA (the default value being EXA), it works properly.

Now I just have to find out why the computer crashes (and shuts down) when I restart xdm.

[ Posté le 27 mai 2010 à 20:02 | pas de commentaire | ]

Dimanche, 23 mai 2010

Caramel

Catégories : [ Cuisine ]

J'ai essayé de faire du caramel pour de la glace au caramel. La recette préconisait 130g de sucre, puis de faire décuire en ajoutant 75g de beurre. Le sucre a cristallisé en surface pendant la cuisson, et après avoir ajouté le sucre et remué, j'ai obtenu quelque chose de très bon, mais qui est devenu très dur.

Un peu plus tard j'ai essayé avec 200g de sucre, 20g de fructose pour essayer d'empêcher la cristallisation (j'avais pas de glucose sous la main) et 2g d'acide citrique. J'ai fait caraméliser assez foncé et ajouté 100g de beurre en remuant. J'ai obtenu un caramel un peu trop mou avec un goût excellent, mais malheureusement un arrière goût terriblement amer…

[ Posté le 23 mai 2010 à 18:10 | pas de commentaire | ]

Jeudi, 20 mai 2010

Dice Tower Blueprints

Traduction: [ Google | Babelfish ]

Catégories : [ Bricolage ]

dice_tower_blueprint

Some years ago, I designed and built a dice tower. I considered releasing proper drawings, but I didn't have a real incentive to do it. Recently, I've been asked if I could draw more readable blueprints than the original paper-and-pen isometric view.

Well, that's done then. The blueprints are now available in PDF under a Creative Commons Attribution-ShareAlike 3.0 Unported License.

Only the core of the tower is drawn there, you need to build a shell around it.

[ Posté le 20 mai 2010 à 22:39 | 5 commentaires | ]

Mardi, 18 mai 2010

Huoltosilta välikatossa

Traduction: [ Google ]

Catégories : [ Bricolage ]

Pekan kanssa rakennettiin eilen huoltosilta välikattoon.

Ennen

Aiemmin siellä näytti tältä.

valikatto_ennen_1

Korkeus on välikaton keskellä 80 cm (kuvassa oikealla puolella). Kuvassa vasemmalla korkeus on noin 60 cm.

valikatto_ennen_2

Oikealla on ilmanvaihtoputki, ja takana näkyy viemärin tuuletusputki.

valikatto_ennen_3

Ilmanvaihtoputken oikea puoli.

Jälkeen

Ja nyt SE silta.

valikatto_jalkeen_5

Seinässä olevan luukun ja huoltosillan välinen eturamppi on jyrkkä: etäisyys luukusta on alle 70 cm ja silta on 40 cm korkeudella.

valikatto_jalkeen_1 valikatto_jalkeen_7
valikatto_jalkeen_3

Silta itse on 6 m pitkä, jotta se ylettyy viemärin tuuletusputkelle. Ilmanvaihtoputken edessä on pieni tasanne, jotta siihen pääsee käsiksi.

valikatto_jalkeen_2 valikatto_jalkeen_4

Loppujen lopiksi

Päivitetty 18.5.2010

Selluvillaa puhallettiin tänään välikattoon.

valikatto_selluvilla_1 valikatto_selluvilla_2

[ Posté le 18 mai 2010 à 19:02 | pas de commentaire | ]

Lundi, 10 mai 2010

Tortillas au blé

Catégories : [ Cuisine ]

J'ai trouvé une recette de tortillas au blé sur le site de Jim Peyton, accompagnée d'explications sur les différentes variantes.

Ingrédients

  • 4,5 dL farine de blé (soit 320 g)
  • 3 c. à soupe huile
  • 1/2 c. à café levure chimique
  • 1 pincée de sel
  • 1,8 dL eau tiède (environ 40 °C)

Préparation

Mélanger la farine avec le sel et la levure chimique. Ajouter l'huile et mélanger un peu. Ajouter l'eau peu à peu en mélangeant. Pétrir la pâte qui doit être souple et non collante. Séparer en 8 boules, fariner et laisser reposer 30 – 60 min sous un linge (voire plus longtemps).

Pétrir une boule de pâte afin qu'elle soit à nouveau souple. La fariner et l'étaler au rouleau jusqu'à obtenir un disque de 23cm de diamètre (la taille du fond de la poêle). Cuire dans une poêle en fonte à sec jusqu'à l'apparition de bulles à la surface (environ 30 secondes), retourner et cuire de même sur l'autre coté.

Commentaires

  • Pas facile de faire un disque vraiment rond quand on n'a pas le coup de main avec le rouleau
  • Si le disque est plus grand que le fond de la poêle, il risque de se froisser et la tortilla ne cuira pas dans les plis.
  • Si la tortilla est trop fine ou cuit trop longtemps, elle deviendra dure et cassante, si elle est d'épaisseur irrégulière, elle sera cassante d'un coté mais pas de l'autre.
  • Si les boules de pâte ont reposé longtemps (plus d'1h), il n'est pas nécessaire de les repétrir, bien les fariner suffit à faire de beaux ronds

[ Posté le 10 mai 2010 à 13:06 | pas de commentaire | ]

Samedi, 8 mai 2010

N900, xterm, screen and ViM

Traduction: [ Google | Babelfish ]

Catégories : [ Informatique ]

For some reason, the xterm on the Nokia N900 sends KP_Enter instead of simply Enter when pressing the Enter key. The result is that ViM inserts an “M” in addition to starting a new line. Maemo bug #6009 discusses the problem, and thankfully there's a fix (because the problem was identified in December 2009 and nobody is actually taking care of it, so it probably won't be corrected any time soon).

In the .screenrc file, add the line bindkey -a -k fe stuff ˆM. You can also fix a currently running screen by pressing C-a : and typing the same bindkey command.

[ Posté le 8 mai 2010 à 23:47 | 1 commentaire | ]

Jeudi, 6 mai 2010

Zhu ye qing

Catégories : [ Thé ]

Plutôt bon.

[ Posté le 6 mai 2010 à 10:34 | 2 commentaires | ]

Mardi, 4 mai 2010

Shell Scripts and Large Files

Traduction: [ Google | Babelfish ]

Catégories : [ Informatique | TV/Leffakone ]

I use a shell script wrapper around MPlayer for recording TV programs in my Leffakone, the problem being that when TV reception is too bad, MPlayer crashes or freezes, so the wrapper restarts it when needed. Since MPlayer doesn't output anything while recording, I use a loop that checks every second that the recorded file is actually growing. Whem it stops growing (and there is still some recording time left), it means that MPlayer stopped working and that it needs to be restarted. Until now, I did this in a loop like this:
while [ $(stat -c %s $filename) -gt $last_size ]
do
  last_size=$(stat -c %s $filename)
  sleep 1
done

I then noticed that all recordings exceeding one hour (there aren't that many, that's why it took so long to notice it) where cut in two even though the picture doesn't show hints of bad reception. More peculiar, the size of the first part is slightly over 2 GB in size (therefore the problem is not related to a 2 GB size limit, right?). An experiment conducted yesterday show that it actually is: the test program (used here in its |[| form) handling the -gt comparison actually doesn't like values greater that 2ˆ31, which caused the loop to be interrupted and the recording to be split into two parts.

The solution is then (for Bash at least) to use the following syntax:

while [[ `stat -c %s $filename` -gt $last_size ]]
which seems to be working with values greater than 2ˆ31 (and than 2ˆ32, I just checked).

[ Posté le 4 mai 2010 à 08:53 | 1 commentaire | ]

Jeudi, 22 avril 2010

Reliable

Traduction: [ Google | Babelfish ]

Catégories : [ Râleries ]

Ari mentioned this afternoon that “reliable”, in an expression such as “a reliable politician” means “able to lie again”. Makes perfect sense to me.

[ Posté le 22 avril 2010 à 18:29 | 3 commentaires | ]

Antenne TV

Catégories : [ Bricolage | TV ]

L'antenne d'intérieur active pour la télé fonctionne relativement bien, sauf quand des conditions indéterminées (en général l'après midi) font que la reception est vraiment mauvaise et que MPlayer plante lors de l'enregistrement. Après avoir lu je sais plus où (probablement dans Make), j'ai étudié la possibilité de construire une meilleure antenne. Je ne suis pas sûr d'y être parvenu, mais celle que j'ai fini par construire fonctionne plutôt bien. En fait le problème principal est que le mur situé entre le salon et la chambre à coucher augmente considérablement le bruit (le rapport signal/bruit donné par la carte DVB est nettement plus bas lorsque l'antenne est dans le salon que dans la chambre à coucher, et le taux d'erreur est plus élevé).

Après une première expérience avec un simple dipôle de 22 cm (prendre un câble d'antenne de 75 ohms, dénuder 11 cm, séparer le blindage de l'âme, torsader le blindage et le replier d'un coté, replier l'âme de l'autre coté pour obtenir un T) où j'ai découvert l'effet du mur, j'ai voulu développer une antenne qui soit adaptée aux fréquences des deux bouquets TNT que je regarde (YLE à 546 MHz et MTV3/Nelonen à 786 MHz).

biquad_300_reflector

Les deux fréquences étant éloignées l'une de l'autre, ce n'est pas une tâche facile. J'ai fini par obtenir un résultat théorique plutôt bon avec une biquad munie d'un réflecteur plan (voir le fichier NEC2).

antenne_1 J'ai alors construit la biquad avec une tige d'acier plaquée de cuivre (destinée à la soudure) de 2 mm de diamètre. Le coté d'un petit carré mesure 122 mm.

antenne_2

Je l'ai soudée à 10 m de câble d'antenne 75 ohms. Je comptais mettre l'antenne derrière la porte de la chambre où elle aurait été invisible, mais la réception était bien meilleure à coté de la fenêtre. J'ai donc dû rajouter une rallonge de 3 m.

antenne_3

Je me suis rendu compte qu'installer l'antenne dans la chambre à coucher avec son réflecteur situé 10 cm en arrière n'allait pas être facile (comprendre : ça va dépasser du mur et ça va être très moche). Mais les performances pratiques de cette antenne sans son reflecteur sont semble-t-il suffisamment bonnes (on n'est pas très loin de l'émetteur) : le taux d'erreur a été divisé par 16, et j'espère que ça évitera à la réception de devenir tellement mauvaise que MPlayer plante.

biquad_300

Les performances théoriques (meilleur gain net dans la partie haute de la bande de fréquences que dans la partie basse) contredisent les valeur (qui valent ce qu'elles valent) renvoyées par la carte DVB (taux d'erreur plus faible dans la partie basse de la bande). Je suppose qu'il existe une source de bruit externe plus forte dans la partie haute que dans la partie basse qui explique cette différence.

[ Posté le 22 avril 2010 à 13:27 | pas de commentaire | ]

Amazon Images

Traduction: [ Google | Babelfish ]

Catégories : [ Informatique ]

In Abusing Amazon images you learn how to abuse Amazon images, creating images of an Amazon product with whatever tag overlaid on it (such as a “99% off” bullet).

But the interesting part is that you can get images in any format with the following syntax: http://ecw.images-amazon.com/images/P/ASIN.01.size_info.jpg .

Useful values for size info are:

  • THUMBZZZ for thumbnail
  • TZZZZZZZ for medium-size
  • nothing for default size
  • L, LZ or LZZ for large
  • AAxx, xx is the size of the largest dimension
  • SXxx, xx is the width
  • XYxx, xx is the height
  • SSxx, xx is the size of width and height (image is padded with white)

Plenty of other features are available, I now use SSxx for the blog so that I can add size/height attributes to the IMG elements in the HTML and WAP 2.0 versions.

[ Posté le 22 avril 2010 à 13:14 | pas de commentaire | ]

Lundi, 15 mars 2010

3D Movie

Traduction: [ Google | Babelfish ]

Catégories : [ Râleries ]

I went to see Alice in Wonderland in 3D this afternoon. When there is a real depth in the shot, 3D actually adds something to the picture; in many cases however, when the view is focused on a charater's head, the depth is barely noticeable. More disturbing is when the director wants to play with the depth of field and have blurry foreground or background: this doesn't look natural at all. 3D pictures should look more real than 2D, but at the same time the depth of field and the aperture used for shooting the scenes (part of the art in making movies) are not the ones equivalent to a human eye, and those shots just look weird, verging on making my eyes water. Fast moving elements are disturbing as well, I suppose it's because of the relatively low framerate of movies not able to render properly the fast movement.

Even more annoying, subtitles sometimes are inside of an object (subtitles are set at a fixed depth, but the objects in the picture might be closer to the viewer than the subtitles), making an impossible perspective which looks very disturbing.

And the 3D goggle are a bit heavy and hurt my nose.

[ Posté le 15 mars 2010 à 09:18 | pas de commentaire | ]

Mardi, 9 février 2010

User Identification through Web Browser User-Agent

Traduction: [ Google | Babelfish ]

Catégories : [ Informatique ]

I found las year that 33 bits are enough to uniquely identify someone.

Now I just read that the browser's User-Agent field provides 5 to 15 bits of identification (10.5 bits on average). If you add zip code, geolocation, it becomes nearly enough to track people perfectly.

With EFF's Panopticlick, I know that my browser provides at least 16.12 bits of identification. The identifying criteria are the User-Agent and HTTP_Accept fields, available plugins, time zone, screen size, system fonts, cookies enabled/disabled and so-called super-cookies. The most scary part of the report is the statement that “Your browser fingerprint appears to be unique among the 71,157 tested so far.”

Without Javascript, my browser still provides 16.13 bits, due to the HTTP_Accept header and User-Agent.

[ Posté le 9 février 2010 à 12:56 | 1 commentaire | ]

De l'âge du pu er

Catégories : [ Thé ]

« Dès qu'il s'agit de Pu Er et autre chinoiserie … tu peux être sûr qu'il y a un truc pas très net quelque part !!! Jamais très clair tout ça ;-) »

Ainsi s'exprimait un amateur éclairé de pu er (qui tient à rester anonyme). Il avait mis son expertise à mon service pour goûter mon pu er mystère (voir tout au bas de l'article). Il confirme qu'il s'agit du pu er « cuit », mais qu'à son avis il ne date ni de 2005 (comme la date de production sur l'emballage le laissait penser) ni probablement de 1990 comme le vendeur me l'avait annoncé:

« Un cru de 2005 serait plus incisif, moins rond, nettement moins moelleux. De même s'il datait de 1990, il aurait en théorie plus de charpente, plus de corps avec des notes plus camphrées. Il est donc probable que cette galette ait été fabriquée en 2005 mais avec des feuilles d'une dizaines d'années, guère plus. … En fait, il me rappelle curieusement une galette de la Maison des Trois Thés qui date de 1994. Une année qui pourrait tout compte fait assez bien lui correspondre ! »

Mais suite à une question de ma part, il avoue que « 4 années de vieillissement supplémentaire n'influent pas trop sauf en cas de stockage humide », ce dont je déduis que le thé pourrait dater de 1990 mais qu'il ne s'est pas bonifié de manière notable durant ses quatre dernières années de vieillissement.

En conclusion, je vais essayer de suivre son conseil, même si je sens mon esprit analytique se rebeller à cette idée : « Profite simplement de tes Pu Er et ne te pose pas trop de questions, de toute façon c'est un monde tellement complexe et opaque qu'il vaut mieux se contenter d'apprécier ce que l'on a sans en savoir plus car on risque toujours d'être déçu. » En d'autres termes, si c'est bon, c'est bon, et si c'est pas bon, c'est pas bon. Lapalisse n'aurait pas dit mieux.

[ Posté le 9 février 2010 à 12:15 | pas de commentaire | ]

Lundi, 8 février 2010

The Definite New ADSL Modem

Traduction: [ Google | Babelfish ]

Catégories : [ Informatique ]

End of the new ADSL modem story. I sat on my principles and bought last Saturday an A-Link RR24AP(d) at Gigantti, even though it runs Linux (yes!) without publishing the source code (boo!). It cost me 20 EUR more than what it would have cost at Multitronic.fi, but I guess that's what it cost to get it immediately.

The RR24AP(d) is not perfect either: its DynDNS client is updating its DNS record even though the IP address doesn't change (I got banned temporarily by DynDNS for that; I restarted the DynDNS daemon running on minikone and disabled the one in the router).

Moreover, I wanted to use its telnet/ssh menu-based interface for enabling/disabling the WLAN from the desktop (I wrote a docklet for that with a wrapper script for hiding the protocol stuff), but although enabling works, disabling doesn't work. I had to use the Web interface instead. An additional nice discovery is that although the main menu offers choices numbered 1 to 10, when you choose 0, you get a root shell. I haven't found a way to enable/disable the WLAN from the shell, hence the wrapper script for the Web interface.

[ Posté le 8 février 2010 à 22:23 | pas de commentaire | ]

Vendredi, 5 février 2010

More ZyXEL Troubles

Traduction: [ Google | Babelfish ]

Catégories : [ Informatique ]

Part 2 of the new ADSL modem story.

This is how it goes: reboot the modem, connect to its telnet server. The TCP window is 2048 bytes long. Everything works fine. Telnet again: the TCP window is now 1024. Actually, it shrunk to 1024 already on the FIN/ACK packet sent by the router when closing this first telnet session and stays like this for all the subsequent connections. During those connection, each ACK packet it sends is followed by a second ACK where it resets the window size to 1024 bytes. After some time (this is the tricky part, I have no idea how time or idleness affects it), when telneting again, some TCP packets are lost, the client side has to retransmit them. Insist a bit more, and there are more and more packets which don't get acknowledged. Eventually, the telnet server may become non-responsive and the whole device stops responding to pings. Reboot the modem.

Whether using the forwarded port from the WAN to the client machine on the LAN is involved or not in prooking this behaviour is not known, more investigation needs to be done.

I contacted ZyXEL, they asked me to return the device. Let's see if they are able to reproduce the problem.

[ Posté le 5 février 2010 à 17:31 | 1 commentaire | ]

Jeudi, 4 février 2010

New ADSL Modem

Traduction: [ Google | Babelfish ]

Catégories : [ Informatique ]

The old A-Link RR64, Linux 2.4-based ADSL modem and router has been dying slowly for the past eight months or so, and when the “alarm” LED went suddenly on, I decided it was time to get a new piece of hardware before that one broke down completely. Since it had a hard time booting up after the power had been down, it was a good idea anyway.

After long discussions with my colleagues, I decided to buy a ZyXEL Prestige 660WP-D1, with an integrated WLAN base station. It's not based on free software, but the equivalent linux-based model by A-Link doesn't respect the GPL regarding the distributon of the source code (it actually doesn't even mention it's based on Linux), so I wasn't going to give my money to those people anymore.

I spent the whole evening and half the night yesterday trying to set it up so that it replaces the old device in the network. First thing, the ZyXEL does't have a DNS server for the local network, so I had to setup one on the server there using dnsmasq (merci tontonth :) ). This means I cannot get the outside DNS server's address from the ISP anymore (the router is unwilling to serve as a DNS proxy while at the same time propagating the dnsmasq's address through the DHCP configuration) but I have to set it up statically in dnsmasq. I hope it doesn't change its address every two weeks…

The second problem was that the NAS I use for backups is unable to get its IP address from the ZyXEL, so I had to set a static one.

But the weirdest of the weirdest, is that the machines connected through the WLAN were not able to connect to the ones on the LAN, which is a bit of a problem since the dnsmasq is on the LAN. After a long time reading the docs, I found in the latest firmware's changelog that the following bug had been fixed: 22. WLAN and LAN can not communicate with each other when the admin password is changed in the GUI. The new firmware indeed fixed the problem, but what screwy software design makes the bridging between two networks dependent on the admin's password and the GUI? This is bound to be a problem for any user who knows that default passwords must be changed, since the first time you connect to the Web interface as admin, it forces you to change the password.

Well, it seems to be working now. Let's cross fingers.

[ Posté le 4 février 2010 à 12:21 | 1 commentaire | ]

Samedi, 30 janvier 2010

Pizza-Burger

Catégories : [ Cuisine ]

Ça fait un certain temps que je me tâtais pour préparer un pizza-burger. Voila qui est fait.

Ingrédients

  • 1,1kg hachis de b½uf
  • 250g lard en tranches
  • 300g emmenthal
  • 2 pizzas tomate-mozarella

Préparation

pizza_burger_1

Tasser la viande dans un cercle à tarte et recouvrir de fromage rapé. Cuire au four à 200 °C jusqu'à ce que le c½ur de la viande atteigne 70 °C.

Faire frire le lard jusqu'à ce qu'il soit complètement grillé, puis le hacher grossièrement.

pizza_burger_2

Une fois cuit, recouvrir du lard grillé haché. Cuire les 2 pizzas.

pizza_burger_3

Déposer la viande sur une pizza, et recouvrir de la deuxième posée à l'envers.

Commentaires

pizza_burger_4
  • La viande seule est trop sèche et un peu fade. Essayer de la mélanger à de l'½uf et de la chapelure, des herbes.

[ Posté le 30 janvier 2010 à 22:18 | 5 commentaires | ]

Mercredi, 27 janvier 2010

LPRng and Windows LPD Server

Traduction: [ Google | Babelfish ]

Catégories : [ Informatique ]

We have two kinds of printers at work: old HP LaserJets and newer Ricoh multifunction photocopiers connected to the same Windows-based print server (accepting the LPD protocol).

While no particular option in /etc/printcap is required to print with LPRng on the HP printers, the bq_format=l option is needed for printing to the Ricoh ones. This tells Windows that the data must be printed as is, as explained on the LPRng mailing list. But why does it work without this option on the HP printers then?

[ Posté le 27 janvier 2010 à 14:36 | pas de commentaire | ]

Mardi, 24 novembre 2009

Détecteur IR

Catégories : [ Bricolage/Arduino ]

Le détecteur IR (QRB1134) ne fonctionne pas très bien pour détecter le déplacement de l'aiguille du compteur d'eau. Le fait qu'il y ait une couche de verre et que le compteur soit sous eau ne doit probablement pas faire partie des paramètres normaux de fonctionnement…

J'ai suivi le schéma à superdroidrobots.com pour le branchement, en ajoutant une LED rouge entre la résistance de 10 kΩ et le collecteur du phototransistor. L'Arduino n'a servi que comme source de tension stabilisée.

L'émetteur IR a une tension de polarisation de 1,7 V et supporte jusqu'à 40 mA, il nécessite donc une résistance de 83 Ω. Avec 110 Ω, on obtient 30 mA. J'ai utilisé deux résistances de 220 Ω en parallèle lors du deuxième test.

Il faudrait essayer en utilisant une entrée analogique de l'Arduino et observer les variations de tension au bornes du capteur pour voir si on arrive à détecter le passage de l'aiguille.

[ Posté le 24 novembre 2009 à 21:43 | pas de commentaire | ]

Mardi, 27 octobre 2009

Transcend 1 – Kingston 0

Catégories : [ Informatique ]

J'ai acheté il y a un an et demin un lecteur de cartes mémoires SD Kingston MobileLite. Il fonctionnait correctement sur ma vieille Debian Etch (avec un noyau 2.6.18), mais après l'avoir mise à jour en Lenny (noyau 2.6.26), le lecteur à cessé de fonctionner. Je l'ai renvoyé en garantie, on me l'a échangé contre un neuf, qui ne fonctionne pas mieux. Après un certain temps passer à fouiner sur le web, j'ai appris que quelque part entre le 2.6.18 et le 2.6.26 un certain nombre de contournements de bugs on été ajoutés au noyau afin de faire fonctionner des lecteurs de cartes SD plus ou moins mal foutus. Le résultat, c'est que le Kingston, qui est lui aussi mal foutu, mais différemment, ne fonctionne plus. La raison profonde, c'est que Linux tente de lire le dernier secteur de la carte (pour en déterminer la taille ?) et que lors d'une lecture par blocs, si le bloc contient le dernier secteur, le firmware du lecteur plante. Et s'il contient l'avant dernier secteur, il plante aussi. Le noyau 2.6.30 souffre également de ce bug, donc le problème n'a pas été corrigé depuis le 2.6.26. Et comme le lecteur ne fonctionne qu'une fois sur deux avec Leffakone (noyau 2.4.22), j'ai donc décidé de changer de crèmerie : j'ai acheté un lecteur Transcend P5, au nom nettement moins marketing, mais qui au moins fonctionne du premier coup. Transcend roulaize (pour le moment), Kingston pas.

[ Posté le 27 octobre 2009 à 20:55 | 2 commentaires | ]