Compilateur Scheme vers C


h1 3/31/2006 04:45:00 PM

Je voudrais pas remplacer Lambda the Ultimate, mais cette présentation expliquant en 90 minutes comment réaliser un compilateur Scheme vers C de moins de 1000 lignes m'a impressioné... Ce n'est probablement pas la méthode de compilation la plus efficace mais ça me semble être une bonne solution pour les paresseux.

BlackOut


h1 3/30/2006 03:46:00 PM

Il y a deux jours on a eu une coupure de courant dans la nuit. Depuis, le modem-router ne veut plus retrouver la synchro DSL. Soit la matos a morflé, soit le firmware que j'aurais clairement dû mettre à jour depuis longtemps me le fait enfin regretter pour une raison obscure..
En d'autres termes, le débit théorique de mon accès Internet domestique ces jours-ci est de 64Mo/h -- oui ma clé USB est petite, oui je sous-estime le temps de trajet du RER B. Bref, c'est chiant.


Ayé c'est réparé, tout va bien après une update du firmware !

Libérez libé


h1 3/28/2006 02:50:00 AM


Plaf, encore une couche de geekerie. Je cherchais l'autre jour un moyen d'avoir des versions épurées de mes sites de News habituels afin de lire sur Palm après suçage par Plucker. Aujourd'hui je me tourne vers les proxys, ça me plait bien: on laisse le suceur-renderer faire son boulot, le proxy étant chargé de filtrer les pages de façon transparente, enlevant le contenu indésirables. En plus ça se teste simplement dans Firefox, par rapport à d'autres solutions genre refaire-wget. J'ai installé Privoxy, qui se lance et se configure très simplement. Out-of-the-box on a le filtrage des pubs et autres flasheries. En ajoutant deux trois regexps Perl on a un Libé épuré .. entre autres.

L'article original et le code de mes tests sauvages dans /etc/privoxy/default.filter:

FILTER: libe Met liberation.com a nu...

s/<!-- pub.*fin menu haut-->//sm
s/<!--fin titraille.*<!--corps article-->//sm
s/<div class="memesujet">.*?<!--fin boite meme sujet-->//sm
s|<div class="multimedia">.*?</div>||sm
s|<!--fin corps article-->.*||sm

s/massive/bite bite bite/g

LEGO


h1 3/27/2006 09:45:00 PM


LEGO sort une nouvelle génération de MindStorm, la brique programmable pour les petits et grands Geeks. La nouvelle brique supportera notamment le Bluetooth, pour piloter son robot depuis son téléphone portable ou autre.. Le joujou coûte quand même ses 250€, alors on ne fera probablement que baver.

WTF++


h1 3/25/2006 02:43:00 PM

J'ai commandé un clavier pour mon Palm en vue de l'utiliser plus sur mes trajets, pour le boulot ou pour développer dessus. Ayant remis la tête dans le monde Palm j'ai découvert de chouettes fonctionalités de Plucker que j'avais pourtant depuis un moment pour lire des eBooks, je posterai là dessus quand j'aurai tout mis en place.

En attendant je vais pour me renseigner sur un projet lié, le Sunrise Desktop. Et là surprise, pas de lien CVS dans la barre Sourceforge. Je tape l'adresse en dur, on me dit que ce projet a désactivé CVS. Je savais que la FSF désavouait Sourceforge mais là, je suis choqué ! Le projet release ses sources, mais pas voir le CVS c'est pas très open.

Il faudrait vraiment que je liste la charte de Sourceforge. J'avais l'impression qu'ils avaient des principes stritcs. Quand j'ai releasé Savonet, j'ai voulu retirer des fichiers mal foutus pour les remplacer par d'autres: j'ai appris que SourceForge l'interdisait, leur but étant la diffusion maximale et libre du logiciel.

Une autre nouvelle relative à Sourceforge m'étonne donc pas mal: en prévision de l'application de la loi DADVSI, un gros hébergeur français et miroir Sourceforge (OVH) décide d'inciter ses clients à retirer des éventuels logiciels de P2P qu'ils offriraient en téléchargement, et annonce qu'il fera de même sur son miroir Sourceforge en retirant les fichiers du projet eMule !
J'ai vérifié, les fichiers sont toujours là.


Selon les sites diffusant la nouvelle, les raisons invoquées diffèrent, les amendements entrant en jeu sont différents. Cela montre bien le foutoir qu'est cette loi. Ici on parle de l'amendement Vivendi-Universal qui punit les logiciels "manifestement destinés" au piratage, on note quand même que des contre-amendements protègent les logiciels qui permettent le transfert de données non-copyrightées.

Dans la foulée sur DADVSI: Apple, supporté par le gouvernement US, peste contre les exigences d'interopérabilité passées dans la loi française qui menacent le modèle iTunes+iPod -- et que le Danemark envisage d'adopter aussi.

Symphonie silencieuse


h1 3/23/2006 09:38:00 AM

Hier je suis tombé sur SymphonyOS, très prometteur sur le papier. Dans mes envies de nouvelle ergonomie, je me suis dit que ça allait être innovant, le bureau devient un gros menu. Ça utilise des technos web (XUL,HTTP,..) pour un developpement rapide des composants, ce qui m'intriguait aussi. J'ai téléchargé le liveCD, ça boote, c'est très très lent déja. Pas si joli, surtout dès qu'on ouvre une fenêtre. D'ailleurs on est déçu de voir des fenêtres classiques dans un environnement jusque là original. La machine est pétée de processus Perl aussi, pas super positif non plus. Grosse déception quoi. Le problème quand on veut changer l'interface c'est qu'il faut modifier tout ce qui va autour, sinon l'utilisateur est bridé ou au moins désorienté par les applications mal intégrées à l'environnement.

Du coup j'ai coupé court et je me suis mis au boulot sur liquidsoap, j'ai finalisé les opérateurs de détection de blanc. Mon calcul de puissance ressemblait à un calcul de fréquence, j'ai fini par le faire sur un modèle pompé ailleurs, directement en C, pas plus mal pour ce genre de trucs. Toujours est-il que ça tourne pile poil, je me suis fait un live pour moi tout seul, la musique interludesque partait dès que j'allais pisser en gros, pour me rendre le live quand je m'asseyais de retour. Faut juste que j'étudie la possibilité de ne pas reprendre la diffusion au premier bruit dans le voisinage, pour plutôt attendre une certaine durée de bruit non négligeable.

set log.dir = "/tmp"
set log.stdout = true

interlude = one_file("/usr/share/mrpingouin/mp3bis/bodom/TheNail.ogg")
# Après cinq seconde de blanc le flux arrivant du micro est ignoré,
# le fallback passe alors sur l'interlude mais repart sur le micro
# dès que du bruit revient, coupant si nécessaire l'interlude grâce
# au track_sensitive faux.
stream = fallback(track_sensitive=false,
[ strip_blank(length=5.,mic()) , interlude ])

output.ogg("/tmp/hop.ogg",stream)

CDuced


h1 3/21/2006 01:43:00 PM

J'ai fait quelques essais avec CDuce, un langage développé dans la thèse d'Alain Frisch...

Le langage est typé statiquement et supporte ce qu'ils appellent le sous-typage sémantique, encore mieux que le sous-typage structurel dont Caml fait usage avec les objets et les variants polymorphes. On voit vraiment un type comme décrivant un ensemble de valeurs, ainsi 1 devient un type (habité par 1), (1|2) est le type habité par 1 et 2, et [('b'|'a')+] est le langage régulier que vous devinez. La disjonction permet aussi d'avoir des fonctions surchargées contrairement à Caml, comme montré plus bas. Par contre j'ai pas vu le polymorphisme, ni un joli système de labels et d'arguments optionnels comme Caml.

Côté valeurs on a des enregistrements assez souples (en gros on a l'OO) et surtout une structure de donnée XML, par exemple <p>[<a href="url">["titre"]] mais aussi <foo>[(fun (Int -> Int) x -> x+1)]. Tous ces types de valeurs sont manipulés avec simplicité grâce au filtrage, qui permet en particulier de pratiquer l'analyse par regexp sur les String. Et pour ceux qui ne savent pas, le typage là dedans sert à vous assurer que vous sortez une valeur bien formée, et que vous traitez complètement les valeurs que vous prétendez traiter. Vu l'expressivité du système, c'est un beau cadeau.

# let f = fun (Int -> Bool ; <bla>[Any] -> 1)
| <bla>[ _ ] -> 1
| 1 -> `true
| _ -> `false ;;
val f : <bla>[ Any ] -> 1 & Int -> Bool = <fun>
# f 1 ;;
- : Bool = `true
# f 2 ;;
- : Bool = `false
# f <bla>[1] ;;
- : 1 = 1


Les principaux inconvénients jusque là c'est la syntaxe un peu rigide et la nécessité d'indiquer le type des fonctions, même simples. Avec un peu de persévérance on définit des types de documents XML (ou autre), on charge un document et vérifie qu'il est bien formé, et on le traite en quelques lignes, pour produire à coup sûr un document valide en sortie. Un truc comme le moteur de Blogspot s'écrirait joliment là dedans.

En tout cas ya des idées qu'on voudrait voir se répandre vite.

Hum


h1 3/17/2006 05:27:00 PM

Un truc de fou m'est arrivé ce matin. Mon maitre de thèse rentre dans mon bureau, m'annonce qu'il est trop occupé pour aller à TYPES 2006, une grosse conf bien intéressante, et me propose d'y aller à sa place.

Pour ceux qui savent pas, l'évenement que je viens de raconter est rare. D'habitude on te paie une conf' que si tu y as publié un papier.

Mais ce n'est pas tout. Il me demande de vérifier les dates, et vous savez quoi ? Ça tombe sur la seule semaine bloquée que j'ai pour toute la fin de l'année: du 18 au 21 Avril 2006, je serai au ski, c'est déja réservé et indéplacable. Du coup j'ai dit merci mais nan.

C'est fou la vie. A part ça je tourne en rond.

Intégration


h1 3/16/2006 05:16:00 PM

En rentrant de pause café j'ai eu une vision un peu déprimante. Non je suis pas toujours en pause, mais je vois des trucs que quand je me balade..

Donc je vois un tas de gens devant moi, encadrés derrière par deux militaires. A regarder de plus près je vois aussi trois grands mecs en survet' et casquette. Devant, un troupeau d'enfants. Visiblement une classe "pas favorisée" de banlieue qui visite l'Ecole Polytechnique. En tête du cortège deux élèves racontaient leur école, les labos en l'occurence. Les deux élèves n'avaient pas été choisis au hasard je crois: un blanc et un black. Et ils portaient leur grand uniforme.

Je vous dis pas l'impression que ça a du faire aux gosses. Super sympa, la visite encadrés par deux caporals en kaki et deux élèves en grand uniforme. Un peu plus ils avaient droit à un encadrement avec fusil automatique. Au final, ça a du vachement les motiver, d'un coup ils ont du se sentir super proches des polytechniciens. Les jeunes, ça aime l'uniforme, c'est bien connu.

C'est bien d'essayer, mais se rater à ce point ça devrait être interdit. Le mec qu'a organisé ça a un peu trop pensé à l'opération de comm' pour son école et pas assez au message à passer aux enfants.

Trucs à voir ou pas


h1 3/16/2006 09:04:00 AM

Ce matin je me suis levé plutôt tôt, mais je ne pouvais pas partir pour le labo avant 8h, au risque de me faire encore attraper pour le cours de japonais, que j'ai désormais vraiment abandonné. Il fallait trouver une occupation. Je boude un peu mes sites de news habituels, j'ai été jeter un oeil sur Reddit et Digg. Saviez vous que ces trucs là, avec Flickr sont les ennemis spirituels de Google dans la grande bataille de l'homme contre la machine pour indexer l'info ? Le géant utilise des robots, pas mal de petits nouveaux tablent sur l'avis de la foule par le vote.

Je suis tombé sur une vidéo nulle sur Google Video, j'en ai parcouru quelques autres, par exemple la propagande et contre-propagande (malheureusement moins bonne) Sarkozy. Ya aussi deux trois amateurs qui publient leurs vidéos là-bas. En tout cas je connaissais pas encore le principe, eh ben c'est pas mal -- pour un tas de vidéos pourries pour perdre du temps.

Sinon, un OVNI qui vient de sortir: YouOS. EN gros OS web en JavaScript, avec deux trois idées en plus. C'est moche et inutilisable, et pourquoi voudrait-on l'utiliser d'abord, mais ça vaut le détour et pourrait inspirer.

Edit: Ya de l'idée pas si originale que ça dans l'air: je viens de voir que EyeOS vient aussi de sortir. C'est la même chose, en gros. D'ailleurs la similarité des noms est assez comique. Différences: EyeOS met plus l'accent sur l'utilisateur "normal" que le Geek qui va étendre son propre bureau en utilisant la plateforme intégrée de dev; le code de EyeOS est ouvert; l'interface de EyeOS est plus léchée et configurable ms se comporte mal dans mon navigateur.

Desktop Shell


h1 3/14/2006 08:15:00 PM

Je me suis remis à coder dans Liquidsoap. Ces jours-ci, je dormais trop, ce soir je veille :p Et pour couronner le tout un troisième post: le coup de coeur geek de l'instant...

Enlightenment a été pendant longtemps le Window Manager le plus léché du monde libre. Ça fait des années qu'on entend parler de leur prochain bébé, E17. De temps en temps on lit une news ici ou là, on voit des screenshots plus ou moins jolis. J'ai finalement remarqué un article assez récent de LinuxFR décrivant E17 sous un jour intéressant que je n'avais pas soupçonné.

E17 ne cherche pas à concurrencer Gnome ou KDE. E17 ne cherche pas à utiliser XGL pour un rendu efficace d'effets graphiques monstreux sous X avec de bonnes cartes graphiques. Le projet cherche à définir un framework simple et portable fonctionnant à la fois sur nos desktop que sur nos PDA, téléphones portables et autres, permettant d'avoir sur toutes ces plateformes une interface homogène ergonomique ET agréable à l'oeil. Mieux, il ne s'agit plus de créer un "Window Manager" mais un "Desktop Shell". On ne sait pas trop bien ce que cache ce mot, puisque le produit n'est pas encore sorti. Ce n'est peut-être qu'un autre buzzword à la cool, mais ça m'inspire de bonnes choses.

[It] will provide integration between files and your environment in a seamless manner while encompassing a graphically rich and flexible architecture. It will not compete with GNOME or KDE, but be a completely new way of visualizing your desktop, based around the EFL which was built from the ground up for this task.


Franchement, je suis assez pessimiste sur la nouveauté qui sortira vraiment de ce long travail, qui pourrait tout aussi bien ne jamais aboutir. Mais ça me parait pas con d'éviter de courser les grands KDE et Gnome dans leur cour, et de tabler sur l'innovation et l'exploration de nouvelles interfaces. Les cliquodromes actuels sont peu ergonomiques et l'on en vient vite à préférer le bon vieux mode console, qui ne tire vraisemblablement pas le meilleur parti des technologies à disposition. On peut faire mieux. La réflexion sur l'ergonomie pour les PDA aura peut-être de bonnes conséquences pour nos interfaces de bureau -- et puis de toute façon moi je veux un tablet PC comme prochain portable. Si j'avais plus de compétences et de temps, ça m'amuserait de participer à ce genre d'initiatives.

En attendant je télécharge le liveCD E17 pour jeter un oeil, à défaut de pouvoir me faire baver devant la pléthore d'effets graphiques du liveCD XGL, que ma vieille carte Mobility ne supporterait pas.

Hector le chaud lapin


h1 3/14/2006 03:07:00 PM

Nico a son lapin Wifi! J'ai installé ici une interface pour le HectorLapin, à côté de celle pour Pino, le lapin d'Estelle. Amuse-toi toi aussi à réveiller toujours plus de gens au milieu de la nuit en passant la 9eme de Beethoven sur ces lapinous.

Petit creux..


h1 3/14/2006 02:45:00 PM

Pour ma thèse je développe un petit outil nommé Bedwyr qui cherche et vérifie des preuves dans une certaine logique. J'étais en train de péniblement corriger mon Bedwyr, quand me vient l'idée de glaner de l'info sur le Bedwyr (Bedevere) original, car bien sûr personne ne comprend pourquoi cet outil se nomme ainsi. D'abord il s'agit d'un nom de chevalier de la table ronde, et comme l'équipe se prénomme Parsifal, ça fait bien. Ensuite il s'agit d'un chevalier au rôle bien particulier dans la quête du Sacré Graal des Monthy Python: c'est le scientifique au raisonnement implacable et aux idées brillantes. Une image qui vous situera à coup sûr le personnage:


Enfin j'ai fait le Quizz pour savoir quel perso de Sacré Graal je suis, et sans mentir, j'obtiens ça:


French Guard: I'm French! Why do think I have this outrageous accent, you silly king-a?!


Qui a dit que mes posts étaient moins intéressants que les épisodes croustillants de la vie de Nico ?

Vise la tête !


h1 3/12/2006 10:03:00 PM

Ce week-end je suis parti avec Estelle et des amis à elle en week-end d'escalade. Faire un aller-retour Paris-Marseille pour deux jours de grimpe c'est déja du luxe, mais quand on peut grimper qu'un jour pour cause de trop gros vent dimanche c'est un peu abusé pour quelqun près de ses sous. Vivement qu'ils me paient ma traduction de Décembre, que je puisse gaspiller l'esprit libre.

Bref, j'ai grimpé dans les calanques samedi, c'est un super site. Ça m'a fait plaisir de re-grimper un peu dehors. J'ai pas mal perdu, mais pas tout. Le mistral à Marseille est vraiment impressionant. Déja samedi on marchait penchés, et quand on arrivait en haut de la paroi bien abritée on se prenait des rafales effrayantes. Résultat des comptes, je suis crevé, j'ai jamais autant dormi que ces temps-ci.

Rentrés prématurément ce dimanche après-midi, on s'est remis à Time Splitters 2. Ce jeu est vraiment bon. C'est du FPS sur un ton sympa, presque cartoonesque, avec des niveaux aux ambiances/armes/décors/époques variés. Mais la vraie valeur ajoutée est la coopération deux joueurs en mode histoire. Ça fait plaisir d'arriver à s'aider mutuellement à finir les niveaux, évitant les malentendus et les balles perdues. Enfin, l'équilibre tactique-bourrinage permet de prendre son pied. Faut du temps pour s'habituer quand même, mais après ça devient presque trop facile, peut-être.

Bref, ce week-end, ça bosphore..

<censuré>


h1 3/09/2006 10:31:00 AM

NdA: le titre était une trop mauvaise blague, je m'auto-censure.

Avant-hier je ne suis pas allé gonfler la nuée de gens en colère contre le CPE que le premier ministre a fait semblant d'écouter et considérer. Je suis bien d'accord avec eux, mais j'avais décidé d'aller au labo, et qu'ils avaient pas tant besoin de moi que ça, je sais c'est un argument de merde. Moi j'avais choisi de me motiver pour gonfler les rangs d'une non-manifestation contre les DRM devant l'Assemblée Nationale hier soir, à la sortie du débat sur DADVSI.

Pourquoi non-manif ? Parceque nous n'avions pas d'autorisation, il a fallu nous présenter comme des individuels voulant faire de l'information dans "le quartier" (pour ne pas dire Assemblée Nationale) ayant tous trouvé nos slogans placardés sur nos ventres et dos sur Internet au même endroit comme par hasard. C'était très con, les flics ont pas gobbé et nous ont détournés et canalisés sur un côté de l'Assemblée, derrière des barrières avec 20 gendarmes qui nous empechaient d'aller plus loin. En même temps c'était faire un grand cas de nous parce qu'on était bien 40 selon les organisateurs. Ils ont gentillement coursé les 5 retardataires qu'ont tenté de faire du bruit de l'autre côté de l'assemblée, comme s'ils étaient d'efficaces militants. Et à la fin ils nous ont demandé de nous disperser, mais nous empêchaient de traverser la rue pour rejoindre Concorde, nous canalisant fermement vers le métro Assemblée Nationale.

En tout cas, là ma présence valait 2% au moins de la manif, c'est pas tous les jours qu'on peut se permettre ça. En même temps le truc était une grosse rature, c'était couru d'avance, personne nous a entendu, j'ai juste réussi à informer un papy dans le métro qui m'a demandé ce que j'avais dans le dos, et ce qu'étaient les DRM. Nous n'avions pas de chef, pas de visibilité, nous étions une bande de geeks à côté de la plaque. Un type se faisait filmer par un autre, pendant qu'une prétendue journaliste lui faisait réciter son discours anti-DRM. Plus tard, un autre a sorti son portable, mode console avec un pingouin linux en fond d'écran, pour détecter les réseaux wifi accessibles dans le coin. D'un côté c'était vraiment marrant, les flics devaient pas trop savoir comment gérer, rester sérieux malgré le ridicule de la situation. Ils ont pas voulu nous prendre en photo depuis l'autre côté des barrières en tout cas.

Voila c'était quand même un peu dommage, d'autant que je me suis péniblement motivé pour y aller. J'ai passé une journée crevante avec deux trajet jusque Rue de la Pompe pour donner un TP le matin et un l'après-midi. Je commence à me plaire dans le rôle de TP-man, d'autant que les élèves sont sympas et parfois pas si nuls.

Fin


h1 3/03/2006 05:00:00 PM

Ce n'est que la fin de l'école d'hiver. Pas la fin de l'hiver, pas la fin du monde, etc. Mais ça fait du bien, on bosse trop ici. J'ai commencé à coder un mode interactif rudimentaire pour Bedwyr. Rudimentaire au sens où il ne permet pas de définir ses propres tactiques, et pour l'instant si je permets ça ce sera au détriment de la sûreté des preuves. Mais bon ça a son côté joli et je vais pouvoir bientôt faire tourner quelques exemples. Cela m'aidera peut être à réfléchir à comment cette logique nous permettra de parler du monde, et quelles sont les choses que l'on n'aura pas le droit de dire.

Peut-on définir: "P vrai si P est faux", "P(x) vrai si ∀y. P(y) est faux", "P(λx.Mx) vrai si ∀y. P(y) ⇒ P(My)" ? Non, non et heu... Ces définitions qui se mordent la queue sont des casse-têtes du point de vue des modèles. Mais la consistence ne peut-elle pas se passer de modèle ? Entre en scène "P(λx.Mx) vrai si ∇y. P(y) ⇒ P(My)". Je me sens un peu démuni sur ces questions.

Tout cela est très autoritaire, froid, contraignant. Aucune course-poursuite héroique, aucun lever de soleil sur la Mongolie, aucun corps nu... Si on a pas de poste après la thèse, Etienne veut faire luthier-vent. Peut être qu'alors je me mettrai au dessin ? Ou j'irai coder pour manger, plus crédiblement. On ne devrait pas parler autant de ces choses là à table.

Bon goût


h1 3/02/2006 12:05:00 AM

Les blogues bédé c'est bien. Des fois c'est crade, mais ça fait quand même plaisir. Si vous avez le rire bien accroché, allez donc jeter un oeil chez Damned, Club Yaourt ou Kadabra pour le prix de la page d'accueil.

Voila sinon on joue pas mal au go ici le soir, et je me suis dit que je devrais m'y remettre, y compris sur Internet. Du coup j'ai cherché une interface web à la cool (AJAX,SVG,..) pour les serveurs genre IGS/KGS/.. et j'en ai pas trouvée.

Côté geek, j'ai été surpris récemment d'apprendre que l'équipe de Caml prévoyait encore des évolutions. Guarrigue a dit sur la Caml-list en parlant d'héritage multiple: "We are actually discussing possibly changing the behaviour of variables, to have overriding rather than hiding, like for methods." On a aussi vu passer un Nicolas Pouillard qui bosse sur une rénovation de Camlp4.

Titre alternatif pour ce post: amalgame, fourre-tout ?