Parts de marché des navigateurs

J’ai trouvé le très intéressant site http://gs.statcounter.com/

Il propose des statistiques d’usage des navigateurs, que l’on peut facilement recouper en fonction des pays. On a l’habitude de voir les stats françaises ou américaines, mais certains pays moins occidentaux ont des graphes assez particulier… Prennez par exemple le Tajikistan, l’Antarctique, l’Arménie ou encore la Biélorussie, chez qui on voit des graphes pas habituels. Par contre on peut remarquer qu’en règle générale si il y en a un qui ne bouge pas trop, c’est chrome…

Add comment June 14th, 2010

Joyeux anniversaire Linus A/B/C !

Quand on fait un peu de programmation système, on se rend compte que la fonction qui sert à éteindre/redémarrer la machine sous Linux, la fonction reboot(), prends 2 arguments un peu bizarre nommés magic1 et magic2.

La valeur de magic1 est 0xfee1dead, soit feel dead, “se sentir mort”. La valeur de magic2, peut être 672274793, 85072278, 369367448 ou 537993216. La manpage nous informe que ces valeurs ont un sens en hexa… Voyons voir la première : hex(672274793) = 0×28121969. Rien… Ah… Attendez… Oh tiens, 28/12/1969, la date d’anniversaire de Linus ! Les autres dates étant les dates de naissance de ses filles…

Mon regret est que la libc fournisse cette fonction en occultant les arguements magic :’(

Add comment June 5th, 2010

Poisson d’avril chez Google

Comme vous pourrez peut être le remarquer, sur la page de recherche de Google anglophone, les unités de recherche sont devenue un peu étranges… J’ai fait une petite liste de ce qu’on trouve :

  • 0.31 centons, l’unité temporelle de Battlestar Galactica
  • 0.17 microfortnights, une unité tirée du système humouristique FFF, en référence à VMS qui prenait un paramètre de configuration en microfortnights
  • 0.77e-15 epochs, “epoch” fait référence à une durée significative dans un système de mesure du temps, par exemple le temps qu’il faut pour que la date de UNIX revienne à 0 (on parle de la “UNIX epoch”, d’ailleurs la fin des timestamps unix est décomptée en haut de ce blog :) ). En l’occurence, j’ai pas réussi à trouver de quelle epoch il s’agit…
  • 23.00 skidoo, une phrase populaire aux USA signifiant que l’on doit partir rapidement à cause de la situation.
  • at 10.23 hertz, bon là c’est un abus de language… Le Hertz mesure une fréquence. En l’occurence, cela veut dire que Google aurait le temps de faire la recherche 10.23 fois chaque seconde.
  • 0.16e+43 Planck times, le temps de Plank est issu du système d’unités naturelles de Plank, qui cherche à faire en sorte que les constantes physiques soient toutes à 1.
  • 0.03 nanocenturies, un nanosiècle, soit 10-9 siècles. Pour info, 1 nanosiècle = 3.16 seconde.
  • 0.16 microweeks, une microseconde, soit 10-6 semaine. Pour info, 1 mirosemaine = 0,6 seconde.
  • 33.09 jiffies, une unité pour mesurer un faible intervalle de temps. Par exemple en informatique cela désigne le temps entre deux interruptions.
  • at warp 9.22, le niveau de distortion dans Star Trek, c’est à dire grosso modo la vitesse à laquelle ils vont (plus rapide que la lumière).
  • 11.90 parsecs, là c’est entièrement débile, le parsec est une unité de longueur. J’ai la flemme d’en dire plus, allez demander à Wikipedia :) .
  • 2.00 shakes of a lamb’s tail, dérivé de l’expression “in two shakes of a lamb’s tail”, litéralement “entre 2 battements de queue de mouton”, qu’on traduirait en français par “entre deux battements d’aile”.
  • 0.33 times the velocity of an unladen swallow, la vitesse d’une hirondelle à vide, en référence à Holy Grail. Par contre, est-ce que c’est une hirondelle du nord ou une hirondelle du sud ?
  • 0.10 centibeats, une sous-unité du temps Internet de Swatch.
  • 0.01 femtogalactic years, une année galactique est le temps qu’il faut au soleil pour orbiter autour du centre de la voie lactée. Le femtogalacticyear est donc équivalent à 10-15 année galactique. Pour info, cela représente 7.1 secondes.
  • 1.21 gigawatts, la puissance de la foudre dans Retour vers le Futur. Pour info, en VF on a “2,21 gigowatt” (un gigowatt ça n’existe pas, on parle de gigawatt), alors qu’en VO on a “1.21 Gigawatt”… Je ne sais pas pourquoi !

(à noter que la plupart des valeurs sont vraiment proportionnelles au temps de recherche)

Add comment April 1st, 2010

Nokia Secret Codes

Un truc cool avec les téléphones Nokia, c’est leurs codes secrets. Si on fait le tour du net et du code source de Symbian, on peut trouver les codes suivants (pour info j’ai un N97 mini) :

*#06# Imei Code
Affiche le code IMEI du téléphone.

*#0000# Sw Version
Affiche des infos sur le firmware : version, date, nombre de langues, modèle, date de mise à jour, …

**04* Bad Pin Change
Pas d’infos, quand testé aucune action.

**042* Bad Pin2 Change
Pas d’infos, quand testé aucune action.

**05* Bad Pin Unblock
Pas d’infos, quand testé aucune action.

**052* Bad Pin2 Unblock
Pas d’infos, quand testé aucune action.

*#7780# Activate Rfs Normal
“Reset Factory Settings”, remise à zero “soft”.

*#7370# Activate Rfs Deep
“Reset Factory Settings”, remise à zero “hard”.

*#2820# Bt Adress
Affiche l’adresse MAC du Bluetooth (en théorie, car sur le miens n’affiche que “Bluetooth address:”, sans l’adresse elle même).

*#92702689# Life Timer
Affiche la durée de vie. Sur le N97 mini, est affiché le temps total passé en conversation.

*#9990# RF Loopback
Manifestement, active un mode de test du Bluetooth. J’ai un message “Bluetooth test mode” qui s’affiche, mais rien de plus ne se passe.

*#62209526# WLAN MAC
Affiche l’adresse MAC de la carte wifi.

*#2873# Bt Debug Mode
Je présume qu’il s’agit d’un mode de test du bluetooth, cependant sur mon téléphone cela n’entraîne aucune action.

Et on ajoute à ça les astuces habituelles :

  • Appuyer 3 secondes sur la touche du menu fait apparaître la liste des applications ouvertes.
  • Appuyer 3 secondes sur “0″ fait apparaître le navigateur web.
  • Appuyer 3 secondes sur “#” passe en mode sliencieux (ou retourne en mode général).

Add comment March 9th, 2010

Mise à jour d’Apache dans Sid…

Certains scripts PHP (par exemple Symfony) dépendent lourdement du fait que si on demande la page http://truc/machin.php/bidule/chose, et que http://truc/machin.php est un fichier PHP, alors c’est ce fichier qui est appellé. Le souci, c’est que dans lors de la dernière mise à jour d’Apache dans Sid, ça ne marche plus…

En fait ce comportement est lié à une directive de configuration AcceptPathInfo, qu’il faut placer à On.

Add comment February 27th, 2010

But It’s Not Google

J’hésite encore, Bing veut-il dire “But It’s Not Google”, ou est-ce le bruit que ça fait quand on tape dessus ? J’aimais déjà pas Bing, mais là où on se rend compte que c’est vraiment de la merde, c’est que cet abruti a réussi à indexer localhost… Mais quel con ce Bing !

Autre détail intéressant, Bing a réussi à indexer 1250 pages sur ce blog… Contrairement à 165 pour Google. On se demande lequel des deux va fournir les résultats les plus pertinents…

Add comment February 25th, 2010

Putain de clavier

J’avais jusque peu un combo clavier/souris sans fil d’une sous marque chinoise qui me plaisait tout à fait, sauf que après 3 ans de bons et loyaux services, les deux se sont mis à ne plus trop marcher comme il fallait. Alors j’me suis mis en quête d’une nouvelle paire de clavier/souris.

Pour la souris ça a été vite vu, pour Noël on m’a offert une grosse souris de PGM avec radiateur intégré, ça c’était nickel. Par contre, pour le clavier… Quelle horreur !

Déjà, impossible de trouver un magasin où on peut essayer un clavier. Le seul endroit où j’ai trouvé suffisament de claviers libre à l’essai, c’était Boulanger. Alors me voilà parti pour tester tous les clavier du magasin. On remarque que :

  • Ces connards de Logitech ont planqué la touche Inser pour que la touche Suppr fasse 2 touches de haut. Comment vous voulez utiliser vim avec ça ?
  • Peu importe la gamme, le toucher est horrible, le retour des touches est naze, … Même un clavier haut de gamme à 250€ ne vaut pas grand chose sur ce plan là.
  • Les dispositions de clavier deviennent n’importe quoi. Entre les constructeurs qui prennent des dispositions de clavier d’ordinateur portable (c’est débile, on achète pas un clavier de bureau pour qu’il soit condensé et pas pratique…), et les constructeurs qui nous font des concepts bizarre du style un pavé numérique détachable sans fil…

Bref, les claviers c’est devenu de la merde. Le seul truc que j’ai trouvé de potable à Boulanger, c’était le Listo le plus bas de gamme possible, qui était le seul clavier à respecter la disposition standard des touches… En tout cas j’ai fini par aller sur le site de Dell pour acheter le clavier OEM qu’ils donnent avec leurs serveurs, car celui ci il est génial :) : un clavier 100% standard avec des touches aux bon emplacements, un toucher nickel et tout et tout. Bref, vive les clavier Dell, dernier survivants d’une ère révolue où les claviers étaient agréables…

Je sais que ça fait très post sponsorisé, mais j’vous promet que je gagne pas un centime, c’est juste que j’en ai vraiment marre des constructeurs qui font de la merde, et que j’me sentais de le crier sur tous les toits. D’ailleurs la prochaine fois, on parlera des imprimantes et de l’ethernet…

2 comments February 23rd, 2010

Statut de connexion dans PHP

Ces derniers je fais un peu de push en HTTP, donc une information importante pour moi est le statut de connexion. En théorie cette information m’est donnée par la fonction connection_status(). Mais il faut savoir comment PHP connait ce statut (je n’ai regardé que pour le mod_php5 de apache et le cgi, mais c’est probablement vrai dans les autres cas) : en fait, le serveur web n’envoit jamais de signal à PHP pour dire “hop c’est bon on n’a plus besoin de toi ta gueule” quand l’utilisateur ferme sa connexion. PHP ne se rend compte de la fermeture de la connexion uniquement quand il tente d’envoyer des données au serveur, car le serveur lui dit “non je peux pas écrire les données, la connexion est fermée”.

En d’autres termes, si vous attendez un évènement (grâce à une fonction bloquante par exemple), même si vous appellez régulièrement la fonction connection_status() le résultat sera faux car vous n’avez envoyé aucune donnée. Et encore plus grave, si vous attendez votre évènement avec une fonction bloquante, le processus passe en mode S (sleep), ce qui fait que le temps est stoppé, et que le max_execution_time n’est jamais atteint : le processus reste bloqué là éternellmement. Face à ça, pas beaucoup de solutions… Vous pouvez envoyer un espace chaque seconde (en n’obliant pas d’appeller ob_flush() et flush()), ou alors vous pouvez faire des timeouts et faire en sorte que le client refasse une requête juste après, ou autre hack du genre… Vous pouvez aussi vous passer de PHP, mais ça c’est une autre histoire :) .

Add comment February 20th, 2010

TeamSpeak Proxy

Si vous êtes un administrateur système, et que vous avez la gentillesse de bien vouloir laisser TeamSpeak passer sur votre firewall pour les pauvres étudiants de la résidence dont vous êtes l’administrateur qui ne pourraient sinon pas passer leur temps à jouer à WoW au lieu de travailler, alors vous avez probablement comme moi remarqué une chose : TeamSpeak n’a pas de port standard. Et c’est la merde ! Mon firewall se transforme peu à peu en gruyère…

Pour repousser la menace, j’ai donc décidé de coder un proxy pour TeamSpeak. Le principe est de l’installer sur une machine qui peut sortir sur tous les ports en UDP. Les clients utilisent un petit logiciel spécial pour ouvrir un canal temporaire le temps de l’utilisation de TS, et le proxy fait du port forwarding.

Pour l’instant

  • Le projet est hébergé sur Github, c’est aussi là que vous trouverez les tarballs, installeurs, …
  • Il y a un installeur pour le client sous Windows, pour les autres OS vous devez compiler le client à la main (c’est du C++).
  • Le serveur est codé en Python, et utilise Twisted. Il n’y pas de paquet Debian ou de truc du genre…
  • Pour le support de TeamSpeak 2, je suis à peu près sûr de moi, par contre ce qui est de TeamSpeak 3 c’est encore en version β, histoire de faire un peu moderne.

N’hésitez pas à me contacter si vous n’avez pas la moindre idée de comment ça fonctionne (ça se comprend, c’est moi qui ai codé…) mais que ça vous intéresse quand même :)

Add comment January 21st, 2010

Radiateur…

J’aurai jamais pensé écrire un article là dessus, mais vu que j’ai eu du mal à trouver de l’aide sur internet… C’est dingue ce que la vie réelle nous ratrappe des fois :)

Donc depuis pas longtemps j’ai un appartement chauffé au gaz, ce qui fait que j’ai eu quelques manips à faire (pour info, ma chaudière est une Saunier Duval “Thema F 23″) :

  • La chaudière ne démarre que si la pression est suffisante (grosso modo 1,5 bar chez moi). Si la pression est trop faible, il y a des manettes sous la chaudière à tourner en même temps pour la remplir, ça fait augmenter la pression (de toute façon, ça c’est marqué sur l’étiquette).
  • Si la pression est trop importante, on peu la baisser en purgeant un radiateur : en haut du radiateur il y a un petit trou avec un truc à faire tourner par un tourenvis. Quand on tourne, ça ouvre le “robinet” et ça laisse sortir de l’eau, ce qui diminue la pression dans la chaudière. Attention à pas trop vider non plus…
  • Si le radiateur fait “glouglou” c’est que y’a de l’air. Si y’a de l’air, alors c’est de l’espace en moins occupé par l’eau chaude, et donc en plus de faire “glouglou” ça chauffe moins. La solution est simple : il faut purger. Au lieu d’avoir de l’eau qui sort, ça sera de l’air. Il faut purger jusqu’à ce que l’eau arrive… Attention conséquence du point précédent : ça baisse la pression. Attention donc à ne pas se retrouver avec une chaudière dépressurisée… (sinon, faut faire comme au premier point :) )

/me gagne +1 en compétence plomberie \o/

Add comment January 15th, 2010

Previous Posts


Categories

Links

Feeds

Wikipedia Affiliate Button