2+2=5

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

dimanche, février 15 2009

J'aime mon téléphone, je lui confectionne des adaptateurs

En gros, je suis un humble possesseur d'un Android Development Phone 1, un vrai téléphone du bien. Le problème, c'est qu'il n'y a pas de sortie casque normale, juste une prise USB modifiée par HTC pour faire passer le son sur les broches du bas.

Du coup, pour la Saint Valentin, nous allons vous montrer comment torturer le casque fourni pour confectionner un adaptateur à votre téléphone chéri.

En fait, le truc génial, c'est que l'ADP1 ne vérifie pas du tout la connexion du casque par des composants côté casque (genre "reliez tel fil à la masse et ouaich lol jte dis t'as un casque là"). D'ailleurs avez rien du tout de connecté, tous les fils à l'air, ça passe impeccablement bien.

1234641511790.jpg

Pour cela, munissez vous d'un fer à souder et d'une truelle. Avec la truelle, ouvrez la partie micro du casque (j'ai fait sur le casque fourni avec un HTC S310 sous Windows Mobile ... meurs pourriture), ensuite soit vous repérez les fils correspondant au son L/R/GND (ce que j'ai fait) soit vous trouvez le schéma du connecteur Ext-USB et regardez quel fil correspond à quoi (ce que j'ai fait aussi en oubliant à quel fil correspond quoi).

Ensuite, dessoudez tout, coupez tous les fils inutiles (micro, bouton, Georges Bush) et soudez le reste sur une fiche mini-jack 3.5mm femelle.

Admirez. et dans trois semaines recommencez tout parce que les fils se seront coupés haha haha

Vous pouvez désormais écouter la musique de Katamari Damacy en boucle tout le temps sans sortir l'iPod (merci Marc!) :

dimanche, décembre 7 2008

Astuce Facebook : savoir qui est en ligne sans paraitre en ligne

Note. C'est complètement inutile, mais ça donne une bonne idée de la puissance du truc.

Il me semble pas que ce soit très connu comme astuce, du moins je l'ai jamais vue. Si vous avez remarqué, quand vous vous mettez en mode invisible, Facebook ne vous permet pas de savoir qui est connecté.

Il se trouve que Facebook offre une interface "FQL", c'est à dire qu'on peut (avec un language de programmation proche de SQL) récupérer plein plein d'informations que normalement on peut accéder soi-même.

Quel est l'intérêt premier ? Automatiser. On peut comme ça demander la liste des amis ayant tel et tel et tel ami en commun vivant en France ayant une date de naissance proche : la recherche se fera en 0.5s au lieu de 30 minutes si c'était fait à la main. Et encore, c'est plutôt simple comme requête. C'est vraiment *très très* puissant.

L'autre intérêt, c'est qu'on peut exécuter des requêtes FQL sans se connecter au vrai site Facebook (une requête est un petit programme en FQL). Ici, on va donc créer une requête qui va afficher la liste des utilisateurs connectés. Du coup, on paraitra toujours hors ligne même si on sait qui s'est connecté.

  • Allez sur http://developer.facebook.com/tools...
  • Notez votre "User ID" : c'est le premier champ grisé sur la barre de gauche.
  • Dans le menu déroulant "Method", choisir "fql.query"
  • Dans le champ "query" qui vient d'apparaitre en dessous du menu déroulant "Method", mettez (en remplaçant votre-userid par l'user id que vous venez de noter) :
SELECT name, status, online_presence FROM user
WHERE uid IN (SELECT uid2 FROM friend 
WHERE uid1 = votre-userid)
AND online_presence != "offline"
ORDER BY online_presence
  • Cliquez sur "Call Method"

Vous verrez donc la liste de vos contacts de façon assez cryptique mais compréhensible, avec status, nom du contact, trié par état de connexion, sans que personne ne vous ai vu connecté :)

Si ça vous intéresse, la documentation de FQL est disponible ici : http://wiki.developers.facebook.com...

vendredi, octobre 3 2008

qmmpaper v0.2.5

Bon, ok, c'est *vieux*, ça date de Samedi, mais c'est une version assez importante, d'autant plus que ça fait presque un an que je n'ai pas touché à une ligne de code de ce machin. En gros, c'est un générateur de papiers (principalement millimétrés) en Qt4 ce qui permet de l'utiliser à la fois sous Windows, Mac et Linux[1].

Si vous ne comprenez pas pourquoi c'est un truc de la mort qui tue que de faire ses papiers millimétrés soi même (hormis que c'est moins cher, que c'est marrant et qu'on peut choisir ses couleurs et faire du papier millimétré rose), c'est que vous n'avez jamais vu la classe méga-internationale que c'est en TP d'avoir un papier millimétré avec marqué dessus "Alexis ROBERT -- MPSI2".

Capture d'écran de qmmpaper - dernière version à l'affichage du document

Juste pour un petit rappel, la version 0.2 qui datait d'octobre 2007 apportait l'ajout d'un moteur de script qui permettait déléguer la génération du papier en question, ce qui permet à n'importe qui de créer de nouveaux papiers en 5 minutes.

*** ATTENTION !! Partie beaucoup plus technique !! ***

Seulement, un bug l'a rendu un peu useless : les lignes étaient placées de façon irrégulières, ce qui est légèrement con pour du papier millimétré d'avoir une ligne qui est à 0.8mm de l'autre puis une à 1.3mm et aléatoirement. Histoire d'expliquer un peu mieux le problème : avant la génération du papier millimétré, qmmpaper va interroger le gestionnaire d'impression selon le système d'exploitation (en fait c'est la classe QPrinter qui fait tout ça pour moi strop bien j'ai rien eu à faire) et va lui demander la résolution de l'imprimante en ... pixels par pouce ! (les fameux dpi). Après une légère conversion, on obtient des pixels par mm !

L'idée magique lors de la conception était : OH!!! mais on a qu'à utiliser cette valeur qui nous donne combien de pixels il faut pour avoir 1mm et faire une jolie multiplication et basta! Seulement, le seul léger problème est que 120dpi ça fait pas un nombre tout beau de pixels par mm, mais avec plein plein de virgules, ce qui représente des dixièmes et millièmes de pixels. Et il se trouve qu'un ordinateur et une imprimante ne peuvent pas dessiner en dessous du pixel vu que c'est le pixel est la plus petite unité qu'il peut dessiner. Donc le logiciel faisait un simple arrondi. Seulement, l'arrondi était beaucoup trop visible quand il y avait quelque chose comme 3.7px par millimètre.

Pour résoudre le bug, ça s'est retrouvé être très simple : forcer l'imprimante à traiter en 1200dpi (ou plus précisément la plus grosse résolution qu'elle peut gérer). Du coup, en 1200dpi, on environ 47.24 pixels par mm, et là, l'arrondi ne se voit absolument plus.

*** FIN ***

Du coup, j'en ai profité pour ajouter quelques fonctionnalités comme le retaillement de la zone de dessin (là où on voit le papier millimétré) à la volée parce que c'est classe -- si vous ne comprenez pas, vous verrez de toutes façon --, fixer quelques bugs (beaucoup de bugs liés à la dépendance vis à vis de la résolution) et l'utilisation d'une *jolie* icône toute hideuse que même Picasso il ferait pas plus moche.

Donc, pour résumer : qmmpaper v0.2.5 est sorti et c'est tout bon, *clica* ici (bien entendu sous GPL2)

Ah, je précise, la version MacOSX n'est pas sortie, devrait l'être bientôt, ce que j'ai dit aussi il y a un an et demi quand j'ai sorti la 0.1 mwahahahahaha.

Notes

[1] et sûrement Windows CE/Windows Mobile mais j'ai pas essayé, et à vrai dire un générateur de papiers millimétrés sur un téléphone portable, ça parait légèrement inutile

lundi, septembre 22 2008

Explication scientifique des méta-clairières

Dans un billet précédent, nous avons mis en exergue le fait que les clairières n'existaient pas, et que nous avions en effet affaire qu'à des méta-clairières. Mais pourquoi verrais-t-on ces clairières si elles n'existent pas ? *voix de documentaire de capital* Pour répondre à cette question, une équipe de scientifique de pointe s'est réuni sur le sujet pendant plusieurs mois où ils ont fini par arriver à la démonstration mathématique exacte du phénomène étrange qui fait qu'un téléphone marche moins bien quand on prend le combiné à l'envers.

Puisque la question de départ était absolument indispensable à la survie de l'humanité toute entière, une deuxième équipe de scientifique fut attaché à ce formidable projet, et a développé une théorie forte intéressante. Afin de vous expliquer, car notre but est une vulgarisation complète de ce phénomène ô combien passionnant (ahum ahum ahum), les meilleurs dessinateurs du moment ont été dépêchés et ont fini - eux aussi - dans le bar du coin au frais du contribuable.

Nous vous délivrons alors le travail ainsi réalisé, en intégralité et en *exclusivité* :

Réflexion des lapins

Le fait que nous voyons des clairières alors qu'elles n'existent pas, du moins dans cette dimension, viendrait du fait qu'il s'agit de MIRAGE ! Oui, vous avez bien vu ! (cette phrase était sponsorisée par le comité des calembours moisis). Personnellement, j'ai trouvé ça hallucinant ! (cette phrase aussi).

Le lapin qui se trouve sur le trajet de l'onde fait peur à l'onde car elle ne veut pas l'écraser (car un lapin c'est mignon ce serait dommage de le traverser ça pourrait le tuer), et du coup nous voyons l'arbre en croyant qu'il s'agit d'une clairière !

Monsieur Sourd

PS. Promis, c'est le dernier billet sur les clairières. Ça devient hallucinament lourd ...

PS2. (haha.) Vais devoir changer le thème de mon dotclear, parce que du coup les images dépassent dans le menu et c'est pas classe.

mercredi, septembre 17 2008

Facture de geek

Facture de geek

Ça fait une connexion toutes les 1.97 secondes.

samedi, septembre 13 2008

Sauvez les clairières !

Vous savez bien sûr qu'après est l'opposé d'avant. On peut donc simplifier par a (étant différent de 0 en ASCII), cela donne donc que les prés sont les opposés du vent. Cette conclusion est déjà un peu marquante, mais ce n'est pas TOUT, madame !

après = - avant
près = - vant
pré = - vent (après correction de près en pré
et de vant en vent qui doivent être des erreurs
de mesure non significatives)

Vous savez bien sûr qu'une clairière est un petit pré dans une forêt (ce qui nous facilitera la vie vu que ce qui est petit est mignon, et donc ce qui est mignon est mieux). On pourra donc dire que les clairières sont les opposés du vent. Cela a plusieurs conséquences :

  1. Sachant que 1 clairière = -1 vent, on en conclut que les clairières sont les anti-vents. Mettre en présence une clairière avec du vent forme du vide, du rien. Nous avons donc conclu à l'existence de l'anti-matière dans le domaine restreint des clairières et du vent. Le CERN peut aller se rhabiller.

  2. De la même façon, puisque les clairières existent, puisqu'on les voit et qu'on peut danser la macaréna dessus, cela implique que dans cette zone là, il n'y a pas de vent. Or, nous savons que si il n'y a pas de vent, il y a du feu. Les clairières étant détruites par le feu, cela veut donc dire que si il y a des clairières il n'y a pas de clairières !! Les clairières n'existent donc pas ! Nous avons donc affaire à des méta-clairières.

  3. A chaque fois que quelqu'un va sur une clairière et qu'il parle, cela amène du vent (valable surtout pour Arthur et Bigard). Donc, à chaque fois que quelqu'un parle sur une clairière, ça détruit la clairière. Il est donc très important de rester silencieux quand on traverse une clairière. De la même façon, vu la symétrie clairière/vent, la clairière supprime le vent et donc la parole ainsi prononcée. Nous avons donc découvert un super insonorisant, à condition de recharger les murs continuellement en clairières. Conclusion : dites non au baillonage, dites oui aux clairières !

  4. Vu que les clairières détruisent le vent, elles créent donc une dépression locale, ce qui provoque une aspiration. Cela peut donc être utilisé dans le domaine des aspirateurs mais surtout dans le domaine des automobiles. Il se pourrait, après recherches significatives bien entendu, que l'on arrive à exploiter les clairières comme carburant écologique qui aspirerait le vent formé devant le véhicule par la vitesse initialement procurée, et ainsi alimenter le véhicule. Ce serait le Graal de l'énergie renouvelable !!

lundi, août 25 2008

Même le Dimanche après-midi, Python est ton ami

Le Velib c'est bien, juste que sur des trajets habituels on a souvent genre beaucoup de mal à trouver une station qui a plus de 2 vélos. C'est à dire contenant juste un vélo cassé et ... un autre vélo cassé.

L'idée était d'utilise l'API REST du site Velib pour en faire une interface pour les téléphones sous Symbian S60. On mémorise le numéros des stations où l'on va souvent, et il va utiliser la connexion GPRS/3G du téléphone pour récupérer le nombre de vélos libres des stations enregistrées et l'afficher à l'écran. Et ce de n'importe où.

Exemple :

-- Portes de Vanves (14024) --
        Available : 17
        Free : 5

-- Guynemer (6009) --
        Available : 7
        Free : 27

-- Rue Alesia (14028) --
        Available : 7
        Free : 40

FBI WARNING : Explicit programming content following !! May be not suitable for people who like classic literacy !!

Le léger problème fut que l'API du système Velib retourne du XML et que pour faire du parsage XML sous PyS60 (c'est à dire Python 2.2.2, *vieux*) il faut utiliser cElementTree, et c'est un peu bourrin. Du coup j'ai codé un petit parseur XML tout pourri (en 33 lignes de code) mais qui permet de reconstituer l'arbre DOM du document.

Exemple avec l'option Debug activée :

XML DEF MATCH : <?xml version="1.0" encoding="UTF-8"?>
NODE : <station>
NODE :   <available>
TEXT : 17
END NODE : </available>
NODE :   <free>
TEXT : 5
END NODE : </free>
NODE :   <total>
TEXT : 24
END NODE : </total>
NODE :   <ticket>
TEXT : 1
END NODE : </ticket>
END NODE : </station>
{'station': {'available': '17', 'ticket': '1', 'total': '24', 'free': '5'}}
-- Portes de Vanves (14024) --
        Available : 17
        Free : 5

Là on voit le XML se faire parser à fur et à mesure et le dictionnaire représentant l'arbre DOM constitué.

Par contre, le code est tout moche. Le parseur doit pas marcher très très bien en dehors de ces documents là (notamment il ne connait pas les attributs et plein d'autres trucs, alors les xmlns n'en parlez pas hein!).

Code source : http://projects.robertlan.eu.org/ve... (login : anonymous/pas de mot de passe)

mercredi, juillet 23 2008

Une Orange. Et avec ça je vous met ? ...

... ah désolé, je ne rends pas la monnaie ! Mais comme vous êtes une bonne cliente, ça ira cette fois ci ! Et vos petits-enfants ? L'aîné est toujours en CAP camionnerie ?

Round 0 : le commencement

Tout commença un beau jour de Juin. Brutalement l'idée se jeta sur moi (c'est dingue comment une idée ça peut être violent, méfiez vous). Je devais changer de forfait. Il se trouva qu'en fait, Ten fermant ses portes, c'était ça où je perdais mon numéro. Vu que mon numéro, c'est un nombre premier, j'avais pas trop envie de le perdre voyez vous. C'est pas tout les jours qu'on a un nombre premier comme numéro de téléphone !

Génial, ni une ni deux, portabilité entrante choisie, numéro temporaire, un contrat de la taille des rouleaux de la Torah, avec la littérature kivabien qui vous explique oh combien Orange sailémeilleurs, queséquevousavezbienféd'allerchénou.

Deux personnes analysant minutieusement un contrat de chez Orange

Bienvenue donc dans le merveilleux monde d'Orange, celui où le ciel est bleu azur, où les oiseaux chantent, et où les lutins dansent autour du feu le soir venu. Hahahahaha ... quel naïf ... hahahahahahahaha !

Round 1 : la portabilité

Demandée le 31 mars, annoncée pour le 7 juin avec 10 juin dernier délai. Mais c'est merveilleux. Surtout quand le 10 juin rien ne se passe. Coup de téléphone toussa : "ah bah on va le faire". Rien. Ah si, ils m'ont dit qu'ils ont fait une demande à la cellule de portabilité, mais qu'il était impossible de leur téléphoner ou leur faxer quoi que ce soit. Genre ils habitent dans un bunker ou dans un couvent (voire les deux), sans aucune autre communication avec l'extérieur que des pigeons voyageurs leur apportant les ordres de portabilité.

La solution ? Envahir l'agence.

Là, le but est simple : amener le conseiller à faire en sorte d'appeler la hotline de chez eux, comme ça, c'est pas toi qui paye et tu peux attendre autant que tu veux.

Au bout d'une heure de communication, un type dit : "je comprend rien, ça devrait pas faire comme ça, tout est cassé, on répare ça et on vous appelle".

Owi !

Round 2 : on m'appelle

Eh non, toujours pas porté. Par contre Orange me fit un énorme cadeau. On était la dernière semaine de juin. Ce fut un jour béni ! Rendez-vous compte que la cellule de portabilité m'a appelé directement !!! OMG !!!!!!! Oui ! Je ne veux surtout pas voir la tête de mon karma ce jour-ci, ce serait indécent !

  • Voila, mon portage est toujours pas effectif, du coup je suis obligé d'avoir en permanence deux téléphones, mes pantalons en souffrent, et si il y a bien une chose que je déteste au monde, c'est de faire souffrir mes poches de pantalon. Donc, au nom de mes pantalons, PITIÉ AIDEZ MOI !!
  • Oui, alors, je vais vous refaire le dossier, attendez sept à dix jours ! Aucun problème, tout marchera nickelement bien, vous n'aurez plus de problème ! Cette fois ça marche !

Maintenant je vais vous apprendre un truc : c'est le décodage des phrases des techniciens Orange. Il se trouve que par un mystère étrange dû à des mutations génétiques provoquées par l'excès de punch frelaté offert par le comité d'entreprise, leur mesure de la réalité s'en trouve quelque peu affectée. Quand ils vous disent "Cette fois ça marche !", traduisez, "Ça devrait marcher si ce jour là vous aurez la chance de tomber sur un jour où 90% du personnel n'est pas tombé dans un coma éthylique profond".

Round 3 : rien

Apparemment, une conduite de gaz a du un peu fuir dans leurs locaux. On est le 11/07. J'appelle leur hotline.

  • Oui, voilà, le 1er juin on m'a dit que je serai porté le 7, et on est plus d'un mois après, et toujours rien. Donc j'en ai marre, personne peut me joindre c'est une horreur. Vous pouvez me dire à quelle adresse je peux envoyer mon tueur à gages ?
  • Euh, on va peut-être pas en arriver là hein, ce serait dommage !
  • Oui, surtout qu'un tueur à gages, ça coûte cher !

Bilan, quelques jours après, j'ai été porté. Morale : si vous n'arrivez pas à quelque chose, PENSEZ TUEUR À GAGES !!

Tonçonneuse portage

Round 4 : Monsieur, c'est quoi ce bout de jambon moisi qui traîne sur ma ligne de téléphone ? Nettoyez moi ça, je vous en prie !

Armé de mon super numéro, je me sens un autre homme, je me sens tout bien dans mon corps, tellement que même Superman il se sent comme ça quand il sauve les gentils. Tellement que je décide de profiter de mon génial forfait internet illimité pour m'envoyer 3/4 photos par mail pour les envoyer sur Facebook sans attendre de rentrer chez moi (que c'est beau la technologie, on peut être nolife en sortant de chez soi !).

Mais ... pourquoi j'ai 15€ de hors forfait ? ET CA MONTE !! Tout passe en hors forfait (sauf la hotline) ! Mais ... pourquoi quand je vais sur Orange World ça me redirige vers le portail moisi de chez Ten tellement qu'il est moisi qu'il se déplace tout seul ?

*GNIIIIIIIIIIIII*

  • Oui, alors voila, [blablablablablabla]
  • Vous pouvez me donner votre numéro de téléphone ?
  • Mais bien sûr, c'est le 06-machin-bidule-truc
  • Euh, vous avez bien dit 06-machin-bidule-truc ?
  • Oui !
  • Ah non Monsieur, ce numéro ne peut pas exister ! C'est impossible, Monsieur !
  • Euh, je vous appelle avec, et je reçois des appels ! Il marche !
  • Ah non Monsieur, c'est impossible !

Nokia : "To be or not to be THAT is the question"

Ils se rendent pas compte chez Orange que lancer une phrase comme ça, c'est un coup pour lancer les téléphones dans une quête métaphysique de leur existence. Le mien s'est arrêté à "Je téléphone donc je suis", coup de chance, ça a pas trop blessé son petit processeur.

Round 5 : Enfin un Mossieu sérieux

Vu cette sublime réussite, il fallait bien rappeler quelques jours plus tard.

  • Alors, oui, votre problème c'est que la personne savait pas vraiment comment faire ! (traduction: vous êtes tombé sur un attardé du bulbe, mais vous êtes vraiment un sale demeuré d'avoir eu l'idée d'appeler un samedi alors, même mon chat il sait qu'il faut pas et pourtant mon chat il est pas finaud ! mais là vous êtes tombés sur le beau gosse d'Orange, félicitations ! vais vous résoudre ça en deux cuillères à pot que même John Doe il va rien comprendre)
  • Ah ! (ça c'est pour faire un subtile retour à la ligne)
  • Alors, vous avez reçu un SMS pendant le portage ?
  • Oui, il disait "Bienvenue chez Orange France"
  • [fou rire du conseiller] (faut penser à la ressortir celle là) En fait c'est pas sensé dire ça ! C'est sensé dire échec.

Et là il m'annonça une chose qui a boulversé ma vie :

  • En fait je vais vous annoncer que votre dossier est géré par une chaîne de soutien de portabilité !

QUEL HONNEUR ! Une chaîne de soutien de portabilité !! Vous savez j'ai rien fait hein ! Je ne mérite pas tant !

Une chaîne de portabilité

Comme le disait une certaine personne qui se reconnaîtera : "méchants oranges" :)

dimanche, juin 22 2008

HOUSTON ON EN TIENS UN !!!!!!

Si c'est pas du beau ça !!!

vendredi, juin 20 2008

Reconstitution du crime

Vous savez ce genre de machins, qui s'annonçent sans problèmes, bien préparés, que c'est que même si vous attrapez Ebola entre temps vous pourriez encore majorer Chuck Norris. Que c'est que quand vous voyez les autres sortir ils disent "c'est trop SIMPLEEEEE sa maman !", puis comme de par hasard, il y aura toujours une personne qui sortira en disant "NE PRENEZ JAMAIS L'ÉLECTROLYSE, C'EST HORRIBLE, J'EN SUIS TOUT REMUÉ DANS MOI MÊME !". Et, comme de par hasard, lors du tirage au sort, il ce qui en sortira sera toujours l'électrolyse. À croire que les petits papiers se liguent, qu'ils se vengent de tous leurs confrères que vous avez jeté sans compassion.

Et, comme de par hasard, vous aurez oublié votre blouse. Mais bien sûr, le type qui est passé avant vous et qui a eu le sujet sur les condensateurs, sujet aussi facile à faire que de peler une banane (on a dit sans couteau !), vous prêtera généreusement sa blouse en ajoutant "Tiens, j'en ai pas besoin, j'ai les condensateurs, MOI !". Tu me redis ça, t'es mort.

"I LOVE TP", LES MASOS CONTRE ATTAQUENT

Bien sûr, le sujet commence. TROP SIMPLE que même que ma soeurmon chien il peut le faire ! Et bien sûr, la lutte continue. Maintenant, le diiode se ligue. Ce truc a repéré que la copie était en dessous du bécher (c'est un machin genre pot de bébé avec des graduations, parce que les graduations à 10^-2 mL ça sert à rien pour la purée à la carotte), et il prépare son coup. Une fois collé au bécher, prêt faire du toboggan jusque dans le bécher, il se met spontanément, et contre toute attente, à se glisser entre le bécher et la petite bouteille pour finir un vol plané sur la feuille à rendre. Pour le bac. Coef 7.

Reconstitution du crime, à l'américaine

Et figurez vous, le diiode, à part avoir un nom imprononçable, est jaune. Très jaune. Et très tâchant, et rendre une feuille entièrement jaune ça fait toujours plaisir !

dimanche, juin 15 2008

La révélation du bain-marie

Ce midi, au programme : petit salé aux lentilles. Bien sûr, en conserve, faut pas déconner. Sur l'étiquette, dans les conseils de préparation, je lis "Faire chauffer au bain-marie 15 minutes". Réflexe : Wikipédia.

Le bain-marie est une technique de chauffage qui
utilise un récipient rempli à moitié d'un liquide
[...] et dans lequel on place le récipient contenant
le liquide ou préparation à chauffer.

La question : comment dois-je faire pour que le niveau d'eau de la première casserole après l'introduction de la seconde casserole soit à la moitié du volume de cette dernière.

Physique et bain-marie

Paf, je sors du papier, calculette, bilan des forces, poussée d'archimède, ce qui se révèle facile puisqu'on projette tout sur l'axe (Oz), le seul axe. J'en déduis que, vu la masse du plat (840g) et vu la masse de la casserole (480g), le volume d'eau déplacé se retrouve être obligatoirement 1.320L, hors la moitié du volume de la seconde casserole est 0.71L, ce qui fait que le niveau d'eau atteindra toujours 93% du volume de la seconde casserole.

Révélation, choc, terreur.

dimanche, juin 8 2008

Paye ton trajet

Samedi 7 juin, 18h20. "Zut", m'écriais-je, "je suis en retard". N'ayant pas de ticket, j'emporte 2€, et file à la station la plus proche, St Placide.

Pouf, pas de guichet. Soit disant pour améliorer la qualité du service rendu à la clientèle. Youhou, ça commence bien. Direction les deux machines.

Première machine : une femme qui essaye de prendre un carnet de tickets avec un billet de 20€ et son billet ne passe pas et se fait refuser. Bien sûr elle retentera 5 fois. Sur la machine de gauche : un type qui s'obstine à payer 2 tickets avec des pièces de 10 centimes et de 5 centimes. MAIS BORDEL JE SUIS EN RETARD MOI !

2 minutes plus tard, la machine de la personne qui prenait des billets se syndique. Elle fait la tête et refuse désormais de délivrer des tickets et des reçus, elle se rabat donc sur la machine de droite.

30 secondes plus tard, la machine de la personne qui prenait un ticket avec des pièces de 10 centimes affiche un splendide message d'erreur "Vous avez mis trop de pièces, nous ne pouvons pas accepter votre demande". Forcément, la personne a trouvé la bonne idée de rester médusé devant l'écran pendant 35 secondes. ENVIE DE MEUTRE.

Paf, et voici la personne avec son billet qui se pointe et me double. Elle fait sa demande, et au moment où on lui demande d'insérer sa monnaie ... bah elle ne trouve pas le machin où on met le billet. Bah oui, yavait qu'un distributeur sur deux qui le faisait. 35 secondes de médusage en règle additionnel.

ET VOILA. Je peux demander mon billet, pouf pouf, tout se passe nickellement bien, il me rend la monnaie, rêve, bohneur, toussa. Derrière moi, deux personnes qui veulent un ticket et qui se décident finalement à prendre un taxi en dissertant sur le sens du mot hebdomadaire à savoir si il voulait dire "Semaine" ou "Jour". Je regarde l'écran vidéo d'à côté : 18h30. YOUPI YÉ YOUPI YA, même pas parti et déjà en retard.

Armé de mon précieux, je descend les marches vers le saint Graal : le portillon. Et là, je peut comtempler le sublime métro de mon quai qui est juste entrain de partir sous mes yeux. Temps d'attente ? Je sais plus, mais ça m'a paru long...

Conclusion : pour une soirée pleine de péripéties, ne cherchez pas bien loin, achetez un ticket de métro.

mardi, mai 27 2008

Petit programme en assembleur qui bouffe tout votre CPU

Actuellement j'écris pas mal de billets casse pieds. Je veux dire par là qu'ils sont beaucoup trop centrés sur l'informatique, et qu'un individu lambda qui voudrait lire ce blog n'a pas du tout envie de le lire. C'est pour ça que je n'ai pas voulu publier ce billet. Finalement, je le met quand même, parce qu'on sait jamais.

Souvent, pour tester des trucs (décharge de batterie, ou utilisation de hotbabe, tout ça), on est amené à utiliser la commande UNIX yes, qui en effet bouffe 100% du processeur, en écrivant que des y sur la console où il est lancé.

Seulement, j'ai trouvé ça un peu bourrain, et qu'il devait sûrement avoir une technique plus directe pour utiliser 100% du processeur. Le programme assembleur x86 ci dessous permet ça :

section .text
        global _start
_start: jmp _start

Eh oui, comme quoi, c'est simple :)

Le gros du programme est situé dans la dernière ligne. Ça dit que quand on va dans _start, il faut aller voir dans _start. Ce qui fait une belle boucle infinie, qui va utiliser tout le processeur.

Les deux lignes du dessus sont là pour dire que _start existe (_start est la section qu'on va exécuter au démarrage du programme), afin d'éviter un warning du linker.

À compiler avec nasm.

mercredi, avril 30 2008

Dell XPS M1530, bios A08 et touchpad

Encore un autre billet aujourd'hui, décidément. En fait, j'ai voulu mettre à jour le bios de mon nouveau laptop de A07 à A08. Dans le descriptif de la mise à jour, Dell annonce que ça permet de supporter les nouveaux processeurs Intel mais aussi de résoudre des problèmes de touchpad.

"Youhou !" me dis-je. Vais avoir un ordi encore mieux que c'est qu'il était. Pouf pouf, je prépare la disquette Freedos pour faire la mise à jour, je l'uploade sur mon serveur TFTP pour la faire booter sur le réseau, j'installe la mise à jour, tout content toussa et je redémarre.

Résultat : ça a révolutionné mon touchpad ! Avant il marchait, maintenant ... il marche plus.

Solution ? Ajouter i8042.nomux=1 aux arguments du kernel dans /boot/grub/menu.lst Un redémarrage et c'est bon !

Source : http://ubuntuforums.org/showthread....

Ubuntu et Wine

Dans les dernières version d'Ubuntu, une fonctionnalité de sécurité a été ajoutée, histoire d'éviter d'attaquer les adresses mémoire du noyau depuis l'userland via mmap histoire de se protéger de futures failles de sécurité. Seulement, cela pose quelques problèmes à Wine surtout quand il s'agit d'émuler des exécutables DOS qui ont besoin d'accéder à ces adresses mémoires.

Pour cela, il suffit de faire un sysctl -w vm.mmap_min_addr = 0 puis de changer dans /etc/sysctl.conf la ligne correspondante en vm.mmap_min_addr = 0

Vive le bac !

Extrait du corrigé du sujet de physique 2005 en Polynésie Française :

Si nous avions choisi t0 très supérieur à tau,
la durée d'éclairage, justement égale à t0,
aurait été beaucoup plus longue. La minu-
terie perd alors de son intérêt car la lampe
reste alors longtemps allumée et c'en est fini
des économies d'énergie.

Clap clap. Dans le genre réponse à 2 balles, clap clap.

samedi, avril 26 2008

Changer le pas des touches de volume sous KDE (KMilo)

KMilo, inclu dans kdeutils, est le service qui gère les touches multimédias sous KDE : quand vous appuyez sur les touches Volume +/Volume -, il va parler à kmix pour lui demander de changer le volume et affichera une petite fenêtre en OSD affichant le volume changé.

Son problème ? Il change le volume de 10% en 10%, ce qui est un peu trop. Actuellement, aucune doc sur internet ne montre comment configurer KMilo, pour trouver ses options de configuration il faut chercher dans son code source.

Solution : éditer ~/.kde/share/config/kmilodrc et ajouter les lignes suivantes :

[generic monitor]
volumeStepFast = 5

Maintenant, les touches de volume auront un pas de 5%. Vous pouvez aussi voir du côté des options volumeDeviceIdx, muteDeviceIdx, extraDeviceIdx, volumeStepSlow et enabled.

samedi, avril 12 2008

Pulseaudio et Wifi, que du bon

Avant, je branchais tout le temps mon ordinateur portable à l'ampli par le fameux câble mini-jack => RCA, seulement comme il s'agit d'un ordinateur portable, je me prenais tout le temps les pieds dedans, ce qui à la fois réveillait tous les voisins, mais a complètement bousillé le câble.

Histoire de résoudre ce problème, tout d'abord je me suis procuré un nouveau câble (eh oui :) ) et ensuite, j'ai branché l'ampli directement sur mon ordinateur fixe qui, étant fixe, ne bouge pas (wah.)

Ensuite, j'ai utilisé pulseaudio qui transmet tout le son de mon Macbook vers mon fixe par Wifi ce qui me permet de virer tout câble. C'est pas beau ? :)

Wifi Pulseaudio et NFS

Le pire c'est que ça marche achtement bien, ça bouffe seulement de 150 à 200ko/s ce qui est complètement envisageable (ma Fonera plafonne à 2Mo/s en pointe).

Ce qui fait le plus classe c'est que mon Macbook n'utilise AUCUN câble, à part l'alim, vu que mon serveur de fichier partage mon disque dur externe sur le réseau : tout passe par Wifi :D

mardi, avril 8 2008

Notification du suivi d'une commande Dell en temps réel

Voila, j'ai commandé non pas un Dell XPS 1330, mais un Dell XPS 1530 (en gros, c'est un 15", c'est quazi la seule différence). Bien sûr, qui dit commande par internet, dit clic sur rafraichir toutes les 35 secondes sur la page de suivi.

XKCD

Histoire de rire, j'ai codé vite fait un petit script ruby qui va télécharger la page de suivi Dell, la parser, récupérer l'état, et la comparer avec le MD5 de la dernière valeur. Si la valeur change, il enverra un mail à une adresse déterminée, grâce à Net::SMTP (oui oui, c'est du Ruby, vous avez bien lu).

Ce script est lancé en cron toutes les 30 minutes et envoie l'e-mail directement à mon téléphone portable qui le reçoit immédiatement en Push. Je suis donc averti en temps réel depuis n'importe où de chaque changement d'état de la commande. Sympa, non ? :)

Le script est dispo ici (licence BSD) : http://alexis.robertlan.eu.org/file.... Attention, le code est parfois un peu crade.

vendredi, avril 4 2008

BLBARC pour Android

Si vous suivez ce blog, vous savez donc que je développe un petit logiciel pour l'aide aux aveugles avec des codes barres : BLBARC. Voulant développer une version mobile de ce programme, il m'a fallu choisir la plateforme de développement :

  • iPhone ? C'est SATAN. Et pour coder dessus, il faut déjà en avoir un (le SDK officiel n'existe pas). Et il n'y a pas de synthèse vocale dessus.
  • Windows Mobile ? C'est SATAN^2. Et pour coder dessus, c'est un cauchemard.
  • PythonCE sous Windows Mobile ? SATAN enrobé de BIEN. Si vous voulez déployer un truc avec ça, je vous souhaite de posséder un gros flacon de Prozac.
  • Symbian ? Ca ressemble à du SATAN, en moins pire. Et il faut en avoir un.
  • Python pour S60 ? J'ai vu l'API, berk, SATAN. Et il faut en avoir un.
  • J2ME ? Ressemble à du bien, mais en vrai SATAN : déjà si vous voulez stocker des trucs, allez vous pendre. Ensuite, si il vous prend l'idée de développer votre propre petit moteur de base de donnée pour combler l'autre débris, vous allez découvrir la superbe API d'accès aux fichiers, et là, je ne sais même pas si vous aurez le temps d'aller chercher la corde avant que les gentils médecins en blouse blanche ne viennent. Ensuite, si vous voulez faire de la synchro avec l'ordinateur, il ne vous restera plus qu'à vous gazer.
  • Android ? MAIS OUI, C'EST LE BIEN !!!

Résultat, après une petitegrosse soirée à coder : BLBARC sous Android

Là, ça va juste se connecter en XMLRPC sur le serveur BCDB (après avoir porté kxmlrpc pour Android : merci à ce monsieur, puis après avoir porté certaines classes de BLBARC pour Swing), vérifier si le client est à jour par rapport au serveur, et télécharger le titre de l'article associé au code barre depuis le serveur (ici, qui va récupérer les données depuis son plugin Amazon, mais ça, c'est côté serveur).

C'est encore très hacky, et il reste beaucoup de boulot à faire : déjà passer le balai, finir de porter tous les trucs, faire une interface pour voir les détails d'un article, implémenter un système de stockage en local sur le téléphone, détecter la connexion DATA (oui c'est un peu con de se connecter en XMLRPC si ya pas le net), implémenter la synchro avec la base de l'ordinateur et pourquoi pas implémenter un scan du code barre avec l'appareil photo intégré (il existe des libs java qui implémentent l'algo de détection à partir de l'image de la caméra).

Reste que Android n'est pas encore prêt pour les synthèses vocales et l'accessibilité, mais c'est encore en développement, et à mon avis, connaissant Google, société DU BIEN, ça m'étonnerait qu'ils ne gèrent pas ça dans une future release.

- page 1 de 9