Cliquez ici.Cliquez ici.
Cliquez ici.
Loading...
An error has occurred

An error has occurred in Orbeon Forms. You may want to try one of the following:

  • Close this dialog and continue to use this page.
  • Reload this page. Note that you will lose any unsaved changes.
  • If the above does not work, try reloading the page yourself. Note that you will lose any unsaved changes:

    • With Firefox and Safari: hold down the shift key and click the Reload button in your browser toolbar.
    • With Internet Explorer: hold down the control key and click the Reload button in your browser toolbar.
  • Return home.
Help

PLANÈTE XMLFR

Agrégation de carnets web.

2009-01-08

Neige - panique à Marseille

2009-01-08 Frédéric Laurent - Opikanoba.org - notes, marseille

Photos de Marc Torres - sous licence CC20cm. Il est tombé 20 cm de neige à Marseille et la ville est paralysée.

Le maire, JC Gaudin, avait qualifié 2009 de l’année des défis. Il semble cependant que 20cm de neige soit un défi trop important pour Marseille, la provençale. La mairie recommande, sur son site web, de rester chez soi. La preuve en image. Cependant les techniciens de la ville ont du suivre le conseil de leur employeur puisque le lien “en savoir plus” tombe lamentablement sur une erreur ! (on notera avec bonheur la gestion des erreurs 404 par les webmasters…)

Marseillais, restez chez vous

Ayant habité à Strasbourg, ce genre de conseil me surprend un peu !

Tout va bien sur le réseau de la RTM Côté des transports en commun, ce n’est guère plus brillant. Mais, le site de la régie des transports informe allègrement ses usagers : tout va bien. Effectivement, c’est le constat que l’on peut faire : pas de bus, pas de tramway, seul le métro circule. En somme, la RTM ne perturbe pas le trafic, tout va bien !

Quant aux hôpitaux, le plan blanc a été déclenché. Pour une ville sous le manteau neigeux, cela semble finalement logique…

RFC 768: User Datagram Protocol

2009-01-08 Stéphane Bortzmeyer - xmlfr

Le protocole IP, situé dans la couche 3, fournit un service de datagrammes où presque rien n'est garanti. Les datagrammes peuvent arriver dans le désordre, être dupliqués ou, plus couramment, ne pas arriver du tout. IP ne fournit pas non plus de mécanisme permettant d'identifier un processus particulier sur la machine de destination. Quasiment toutes les applications utilisent un protocole de transport au dessus d'IP. TCP (RFC 793) est le plus connu. Il fournit, lui, fiabilité de la transmission mais au prix de délais parfois importants. En effet, tout octet devant être acheminé à bon port, TCP doit souvent attendre les retardataires... ou demander leur rééxpédition. De plus, le fonctionnement de TCP nécessite l'établissement préalable d'une connexion et cela prend du temps (trois trajets sont nécessaires, donc la latence est parfois importante).

Il existe des applications pour qui cette stricte sémantique est excessive ou, plus exactement, pour lesquels on n'a pas envie de payer son prix. Ainsi, si on transmet un flux vidéo avec RTSP, et qu'un paquet de données se perd, on préfère en général afficher à l'écran un petit carré noir plutôt que de geler l'affichage en attendant une retransmission.

UDP fournit donc un service minimum, peu coûteux. Si l'application n'a pas besoin de fiabilité, UDP lui permet un débit maximum. Si elle a besoin d'une sémantique plus forte, elle doit la mettre en œuvre elle-même.

Un autre service important fourni par TCP ou ses homologues comme SCTP est le contrôle de congestion. Une application qui utilise UDP bêtement, en envoyant autant de données qu'elle le peut, risque de saturer le réseau, au détriment d'autres applications plus raisonnables. Si on utilise UDP pour des données en quantité importante, on doit assurer ce contrôle de congestion soi-même (RFC 3714, RFC 5348 et RFC 5405).

UDP n'apporte donc presque rien par rapport à IP seul. Son principal ajout est la notion de ports. Le paquet UDP indique deux nombres, le port de source et le port de destination, qui, avec les adresses IP, servent à identifier les deux processus qui communiquent. L'application a typiquement indiqué le port souhaité en appelant bind.

Le RFC est ultra-court, seulement trois pages, reflet d'une époque où les protocoles étaient spécifiés avec quelques grands principes plutôt qu'avec un luxe de détails, qui évoque désormais plutôt des textes juridiques. Les RFC d'il y a vingt-huit ans ne ressemblent guère à ceux d'aujourd'hui... Mais il faut aussi noter que la taille du RFC est le reflet de la simplicité d'UDP. Le RFC se contente essentiellement de spécifier le format (simple) de l'en-tête des paquets UDP. Si on analyse UDP avec pcap, il suffit (page 1 du RFC), pour le décoder, de :

/* UDP header */
struct sniff_udp {
	uint16_t        sport;	/* source port */
	uint16_t        dport;	/* destination port */
	uint16_t        udp_length;
	uint16_t        udp_sum;	/* checksum */
};
...	
const struct sniff_dns *dns;
...
udp = (struct sniff_udp *) (packet + SIZE_ETHERNET + size_ip);
source_port = ntohs(udp->sport);
dest_port = ntohs(udp->dport);
...		

Quels protocoles d'application utilisent UDP ? Le plus connu est le DNS, dont l'essentiel du trafic se fait en UDP. Le mode principal du DNS, « une requête / une réponse », chacune tenant souvent dans un paquet, correspond en effet bien à UDP. Au moment de la sortie de notre RFC 768, l'un des principaux utilisateurs d'UDP était d'ailleurs un ancêtre du DNS, Internet Name Service (IEN 116). Mais il y a aussi NTP (RFC 1305) et, depuis moins longtemps, les protocoles « multimédia » comme RTP (RFC 3550) qui ont typiquement des grandes quantités de données à faire passer, sans exigence qu'elles arrivent toutes (une trame vidéo en retard n'a plus aucun intérêt). Aujourd'hui, les protocoles de transmission de contenu multimédia (par exemple SIP, RFC 3261 pour la téléphonie sur IP) utilisent en général TCP pour le canal de contrôle et UDP pour les données, pour lesquelles l'acheminement de tous les paquets n'est pas vital.

On peut bien sûr utiliser aussi UDP pour les transferts de fichiers, qui ont besoin d'être parfaitement fiables. Cela suppose de gérer, au dessus d'UDP (qui n'assure pas ce service), un mécanisme permettant de s'assurer que tout a été bien transmis. C'est ce que fait le client BitTorrent de référence depuis fin 2008, une décision qui a suscité pas mal de remous (souvent exagérés).

Vu avec tcpdump, commande tcpdump -vvv -n udp, voici d'ailleurs un exemple de paquet UDP, en l'occurrence pour le DNS (une question et une réponse) :

16:03:11.436076 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto UDP (17), length 78) 192.134.7.248.15301 > 199.6.1.30.53: [bad udp cksum eaea!] 31425% [1au] Type32769? doleh.com.dlv.isc.org. ar: . OPT UDPsize=4096 OK (50)
16:03:11.451313 IP (tos 0x0, ttl 54, id 0, offset 0, flags [DF], proto UDP (17), length 775) 199.6.1.30.53 > 192.134.7.248.15301: 31425 NXDomain*- q: Type32769? doleh.com.dlv.isc.org. 0/6/1 ns: dlv.isc.org. SOA[|domain]
Les champs spécifiques d'UDP (protocole 17) sont le champ Longueur et les ports (ici, 53 et 15301).

UDP a aujourd'hui plusieurs camarades / concurrents dans la catégorie « protocole de transport sans connexion et non fiable ». C'est le cas de DCCP (RFC 4340). Il a aussi des ajouts ou des variantes comme DTLS (RFC 5238) pour la sécurité ou UDP-Lite (RFC 3828) pour encore moins de vérifications.

Et pour le programmeur ? Utiliser UDP n'est pas plus difficile que d'utiliser TCP, sauf si on veut assurer les mêmes services que TCP et qu'on met en œuvre la fiabilité des transferts. Sinon, un client UDP a « juste » à créer les prises avec l'option SOCK_DGRAM (au lieu de SOCK_STREAM), à appeler pour obtenir un port et à envoyer les paquets, par exemple avec .

2009-01-06

Évangénieur et révolution

If I had to describe in one word the perfect person to start a revolution, it would be "evangeneer." That is a combination of evangelist and engineer: someone who wants to change the world and has the technical knowledge to do it.

Un extrait de Rules for Revolutionaries de Guy Kawasaki, plutôt rafraichissant :-).

Logo biologeek Évangénieur et révolution a été rédigé par David Larlet pour biologeek.com et a été originellement posté le 06 Janvier 2009. À part exceptions, c'est ©2008 David Larlet et sous licence (presque) libre autorisant la reproduction, la distribution et la modification sous certaines conditions. Veuillez les respecter.

RFC 2385: Protection of BGP Sessions via the TCP MD5 Signature Option

Le protocole TCP est vulnérable à plusieurs attaques fondées sur l'envoi de paquets prétendant venir d'un correspondant légitime, alors qu'ils sont injectés dans le réseau par le méchant. La communauté des opérateurs Internet est depuis longtemps particulièrement soucieuse de ces risques pour les sessions BGP entre ses membres et a donc développé ce bricolage qui consiste à insérer une option TCP validant très partiellement les paquets. (Bien que cette vulnérabilité de TCP soit très générale, cette solution n'a été utilisée que pour BGP. Le résultat est un très court RFC, traitant - assez mal - un problème très particulier.)

Une attaque typique contre BGP est une DoS où le méchant envoie un paquet TCP RST (ReSeT, sections 3.1 et 3.4 du RFC 793) qui va couper brutalement la session. Les techniques récentes comme TLS ne protègent pas contre ce genre d'attaques car elle opèrent juste en dessous de la couche application, et ne peuvent pas authentifier les paquets TCP (section 1). Même chose si on avait une solution purement BGP.

La solution de ce RFC est donc (section 2) d'insérer dans chaque segment TCP un résumé cryptographique MD5 portant sur une partie des en-têtes IP et TCP, les données, et un secret partagé entre les deux routeurs. L'attaquant ne connaissant pas ce mot de passe, il ne peut pas fabriquer de faux paquets.

À noter que, bien qu'enregistrée dans le registre IANA des options, ce n'est pas une « vraie » option TCP : les options TCP (section 3.1 du RFC 793) ne sont pas, comme leur nom l'indique, obligatoires. Chacun des deux pairs peut les refuser. Ici, pour éviter toute attaque par repli, la signature TCP MD5 est à prendre ou à laisser.

Passons aux bits sur le câble, avec la section 3 qui décrit le format dans le paquet. Puis aux considérations pratiques avec la section 4 qui détaille les problèmes qui peuvent se produire avec les signatures MD5, comme les soucis qui peuvent provenir car des paquets TCP légitimes peuvent être refusés (section 4.1 mais qui ne mentionne pas le fait que des paquets ICMP, non validés par la signature MD5, peuvent par contre être acceptés alors qu'ils sont faux), le coût en performance à cause des opérations cryptographiques (section 4.2 mais il faut relativiser : lorsque le RFC a été écrit, l'exemple de processeur de routeur était le MIPS R4600, à 100 Mhz) ou l'augmentation de la taille des paquets (section 4.3).

Plus sérieux est le problème de la vulnérabilité de MD5. Elle était déjà bien connue à l'époque (section 4.4) et ça ne s'est évidemment pas arrangé. (En décembre 2008, une attaque réussie contre MD5 a permis de générer de faux certificats X.509). À noter que le RFC ne prévoit pas de moyen d'indiquer un autre algorithme cryptographique que MD5, pour les raisons expliquées dans cette section 4.4. De l'avis de certains, dans le cas de BGP, MD5 reste encore relativement raisonnable.

Presque tous les routeurs dédiés savent utiliser cette option MD5 TCP. Ainsi, sur IOS, c'est le mot-clé password :

router bgp 64542
   neighbor 192.0.2.108 password g2KlR43Ag

La situation est plus délicate sur les routeurs non-dédiés, par exemple fondés sur Unix. Linux ou FreeBSD n'ont pas eu pendant longtemps le support du RFC 2385 en série (il existait des patches comme http://hasso.linux.ee/doku.php/english:network:rfc2385), en partie pour une question de principe (cette option viole le modèle en couches avec ses aller-retours entre l'application et TCP). (Pour Quagga, voir certains liens en http://wiki.quagga.net/index.php/Main/AddRes.) Aujourd'hui, le noyau Linux (par exemple en version 2.6.26) a cette fonction (au moment de la compilation, activer TCP: MD5 Signature Option support (RFC2385) (EXPERIMENTAL), ce qui est le cas sur Debian par défaut).

En pratique, l'exigence de sessions « TCP MD5 » a souvent servi à éliminer ceux qui utilisent Quagga sur Unix et n'avaient pas de moyen facile de configurer leurs routeurs selon cette option.

Une autre objection fréquente faite à ce RFC 2385 est qu'il aurait mieux valu utiliser IPsec, qui a l'avantage de couvrir les autres protocoles (comme ICMP) et d'être plus générique. Mais IPsec, notamment en raison de sa complexité, a connu peu de déploiements.

Le groupe de travail tcpm de l'IETF est en train de travailler sur un meilleur protocole, actuellement à l'état d'Internet-Draft, .

2009-01-05

Pimp my Web!

2009-01-05 David Larlet - BioloGeek.com - xmlfr

De quoi réduire votre productivité pour la rentrée (et surtout soulager un peu Firefox en fermant quelques onglets) :

Il faudra que je pense à faire une brève sur mes outils Python qui changent la vie aussi. Tiens j'ai rejoint la conversation twitter aussi, aucune garantie de continuité de service par contre, un peu comme eux :-).

Logo biologeek Pimp my Web! a été rédigé par David Larlet pour biologeek.com et a été originellement posté le 05 Janvier 2009. À part exceptions, c'est ©2008 David Larlet et sous licence (presque) libre autorisant la reproduction, la distribution et la modification sous certaines conditions. Veuillez les respecter.

RFC 5395: Domain Name System (DNS) IANA Considerations

Un RFC un peu bureaucratique, pour détailler les mécanismes utilisés pour l'enregistrement dans les registres de l'IANA des paramètres liés au DNS.

Un certain nombre de paramètres, dans le DNS, sont enregistrés à l'IANA, afin de s'assurer d'une interprétation identique partout. C'est ainsi que l'IANA gère un registre des paramètres DNS où on trouve, entre autres, les types d'enregistrement (A, codé 1, pour une adresse IPv4, AAAA, codé 28, pour une adresse IPv6, LOC, codé 29, pour les positions géographiques du RFC 1876, SPF, codé 99, pour le RFC 4408, etc). Cette espace n'étant pas de taille infinie, il faut y enregistrer de nouveaux paramètres avec prudence, selon les règles qui étaient expliquées dans le RFC 2929, que notre RFC modifie.

En effet, les règles du RFC 2929 étaient bien trop strictes à l'usage. Notamment, le processus d'enregistrement d'un nouveau type d'enregistrement était tellement pénible que beaucoup de protocoles (comme SPF à ses débuts) préféraient utiliser le fourre-tout TXT pour y mettre leurs enregistrements. Ce goulet d'étranglement était souvent cité comme un exemple typique des blocages liés à l'IETF.

Notre RFC assouplit donc les règles d'enregistrement des types de ressources DNS (les autres règles sont peu changées). Avant, il y avait deux solutions (voir le RFC 5226 pour plus d'explications), IETF Review (ex-IETF Consensus), un processus long et incertain imposant un RFC sur le chemin des normes, approuvé par l'IESG, ou Specification required, qui impose l'écriture d'une norme (pas forcément un RFC) « stable et permanente ».

Le nouveau système est plus léger (section 3.1.1) : il suffit désormais de remplir un formulaire décrivant le nouveau type d'enregistrement, de le soumettre sur la liste namedroppers@ops.ietf.org et d'attendre le jugement d'un expert, désigné parmi les noms fournis par l'IESG, qui décidera, sur la base du formulaire soumis, d'allouer ou pas la requête. Un tel processus est utilisé pour d'autres enregistrements à l'IANA, par exemple pour les nouvelles étiquettes de langue.

Le nouveau processus a été testé pour la première fois pour le type d'enregistrement ZS (Zone Status) qui a été accepté, sous un autre nom, NINFO (il n'est pas encore apparu dans le registre IANA)

2009-01-04

Django vs. concurrence PHP

Je serais à La Cantine avec pas mal de pointures PHP pour parler de Django lors d'un événement Eyrolles le soir du 13 janvier. L'occasion de troller discuter tranquillement des avantages et des raisons qui me poussent à utiliser ce framework. Un bon exercice dans un contexte qui pour une fois n'est pas gagné d'avance ;-).

Je voulais en profiter pour parler du framework web le plus rapide du monde mais ça serait déloyal.

Logo biologeek Django vs. concurrence PHP a été rédigé par David Larlet pour biologeek.com et a été originellement posté le 04 Janvier 2009. À part exceptions, c'est ©2008 David Larlet et sous licence (presque) libre autorisant la reproduction, la distribution et la modification sous certaines conditions. Veuillez les respecter.

RFC 2330: Framework for IP Performance Metrics

La mesure des performances sur Internet est un vaste sujet, rendu plus difficile par l'utilisation massive de mots mal définis ou, pire, utilisés à contre sens (« débit », « bande passante » ou, pire, « vitesse » étant de bons exemples). C'est pour cela que le travail du groupe IPPM (IP Performance Metrics) a commencé par ce RFC 2330 qui essaie de définir un cadre solide pour parler de mesures de performances.

Prenons l'exemple d'un cas qui semble trivial : un liaison Internet est saturée et on n'arrive plus à y faire passer tous les films qu'on veut regarder. Pour la remplacer, on hésite entre deux liaisons dont on voudrait bien mesurer la capacité, afin de choisir la « meilleure ». Mais que veut dire exactement « cette liaison permet un débit de 20 Mb/s » ? Ce chiffre est mesuré dans quelle couche ? Est-il valable en permanence ou bien est-ce une moyenne ? Dépend-il de la taille (ou d'autres caractéristiques) des paquets ? Sans réponse claire à ces questions, le chiffre de 20 Mb/s ne signifie pas grand'chose. D'autant plus que les vendeurs ont tout intérêt à brouiller les pistes. (Au fait, cette notion, nommée « capacité », est définie dans le RFC 5136.)

La section 3 du RFC résume les buts : définir des , c'est-à-dire des grandeurs mesurables et définies de manière rigoureuse. Pour cela, notre RFC spécifie le cadre commun à toutes les métriques, qui seront développées dans des RFC ultérieurs (comme le RFC 2678 pour la métrique de connectivité ou bien le RFC 2681 pour la métrique de temps d'aller-retour entre deux points).

Quels sont les critères pour une « bonne » métrique ? C'est la question que traite la section 4. Parmi ces critères :

  • Pouvoir être définie rigoureusement,
  • Pouvoir être mesurée de façon reproductible,
  • Être utile en pratique, pour les utilisateurs ou les administrateurs du réseau.
On voit que les questions de vocabulaire vont être cruciales. Pour rompre avec le flou des données, il faut que les grandeurs mesurées soient définies d'une manière rigoureuse et précise. Ainsi, la section 5 donne des définitions pour un certain nombre d'éléments qui seront utilisés dans les métriques. Par exemple, host, machine connectée au réseau, inclus explicitement les routeurs, link est un lien de couche 2, path un ensemble contigu de links, etc.

Une fois ces bases de langage établies, le RFC s'attaque aux concepts (section 6). Il s'attache à bien établir la différence entre la définition d'une métrique (qui doit avant tout être complète et rigoureuse) et la mesure effective (qui n'est pas toujours facile, comme illustré plus loin par la discussion sur la mesure du wire time).

Cette section est aussi l'occasion de poser certaines conventions comme le fait que les temps se mesurent toujours en UTC et que les kilos valent toujours 1000 (suivant la règle des télécommunications, celle du stockage informatique étant plutôt qu'un kilo vaut 1024).

Une fois une métrique définie, il faut la mesurer : c'est l'objet de la section 6.2. On peut le faire directement en mesurant la grandeur qui nous intéresse ou indirectement, par exemple en calculant ou en déduisant cette grandeur d'autres mesures. Les particularités de la mesure doivent être soigneusement étudiées et publiées avec les résultats. Par exemple, certaines mesures modifient la grandeur mesurée (des pings répétés chargent le réseau et modifient donc le temps d'aller-retour que ping est censé mesurer). La science de la mesure est aussi ancienne que la physique et ces problèmes, tout comme ceux des erreurs ou incertitudes (section 6.3) sont bien connus, mais souvent oubliés lorsqu'il s'agit de réseaux informatiques. Le RFC a donc raison de les rappeler et d'insister sur l'importance de les documenter lorsqu'on publie.

Les métriques ne vivent pas seules : il est souvent utile de les composer, ce que traite la section 9. Elle décrit en 9.1 les compositions spatiales où les mesures sur des sous-chemins (subpath) s'additionnent. Par exemple, le délai de propagation d'un paquet le long d'un chemin (path) est proche de la somme des délais de propagation sur les sous-chemins. En 9.2, on trouve les compositions temporelles, où le passé permet de prédire le futur. Par example, si on a mesuré le débit sur un lien depuis vingt-quatre heures, et que sa variation selon l'heure est bien comprise, on va pouvoir déduire le débit futur pendant les prochaines vingt-quatre heures.

La plupart des mesures, en matière de réseau, font intervenir le temps. Le concept est souvent mal compris et une section entière, la 10, est dédiée à Chronos. Certes, l'Internet dispose depuis longtemps d'un protocole standard pour la gestion d'horloges, NTP (RFC 1305). Mais ses buts sont différents : il vise à garder des horloges synchronisées sur une longue période. Pour la mesure, on s'intéresse à des périodes plus courtes pour lesquelles NTP n'est pas forcément la solution.

Quels sont les problèmes avec les horloges ? Une horloge peut avoir un écart (offset) avec le « vrai » temps, UTC (ou bien avec une autre horloge, si on s'intéresse juste au fait qu'elles soient synchronisées). Si cet écart est inférieur à une certaine valeur, on dit que l'horloge est correcte (accurate). Et l'horloge peut avoir un décalage (skew), elle peut avancer plus ou moins vite que la normale (et donc cesser au bout d'un moment d'être correcte). Pire, la dérive peut être variable, auquel cas on mesure la dérivée seconde du décalage sous le nom de dérive (drift). Enfin, l'horloge a une certaine résolution (resolution), la plus petite unité de temps qu'elle peut mesurer.

Pour minimiser l'effet de ces limites sur la mesure, le RFC recommande donc que les horloges des différentes machines impliquées soient synchronisées, idéalement à partir d'une source extérieure commune (comme le GPS). Le RFC illustre l'importance de la synchronisation par un simple exemple. Si on mesure le délai de transmission d'un paquet sur un lien transaméricain, une valeur de 50 ms est raisonnable. Si le décalage est de 0,01 %, après seulement dix minutes, l'écart atteindra 60 ms soit d'avantage que ce qu'on veut mesurer.

NTP n'est pas forcément la bonne solution car son exactitude dépend des liens Internet, exactement ceux dont on veut mesurer les caractéristiques. D'autre part, NTP donne la priorité à la correction, pas à la limitation du décalage. NTP peut délibèrément accélérer ou ralentir une horloge (augmenter ou diminuer le décalage) pour la rapprocher du temps correct. On n'a pas envie que cela survienne pendant une mesure !

Un autre problème de mesure lié au temps est celui du wire time (section 10.2). Les mesures sont souvent effectuées sur les machines elle-mêmes, et pas via un équipement spécial connecté au câble. Les machines ne sont pas forcément optimisées pour la mesure et n'ont pas forcément un noyau temps réel. Elles peuvent donc introduire leurs propres inexactitudes. Pour séparer les délais internes à la machine des délais du réseau, le RFC recommande d'utiliser dans les métriques le « temps du câble » (wire time), pas le temps de la machine. Le premier reflète le moment où le paquet est effectivement présent sur le câble. Plus rigoureux, il est par contre plus difficile à mesurer. Ainsi, pour un programme comme ping, le temps de la machine (host time) est facilement connu grâce à gettimeofday alors qu'il n'y a pas de moyen de mesurer le temps du câble, depuis une application Unix ordinaire. C'est donc une instance particulière du problème discuté plus haut, où le souci de donner une définition correcte de la métrique a priorité sur la facilité de mesure.

Pour réaliser une mesure du temps du câble, le RFC recommande d'utiliser un filtre à paquets comme le BPF qui associe à chaque paquet une estampille temporelle en général proche du temps du câble. Il recommande également de ne pas faire tourner ce filtre sur la machine qu'on veut observer, pour limiter les perturbations.

Les mesures impliquent des statistiques et la section 11 quitte les rivages de la physique pour revenir à ceux de la mathématique. Elle est consacrée à la différence entre les mesures uniques (singleton) et les échantillons (samples), ensembles de mesures uniques. Par exemple, un échantillon de mesures consiste en « une heure de mesures uniques, chacune prise à intervalles de Poisson avec un écart moyen d'une seconde entre les mesures ». L'échantillonnage est un art délicat et la section 11.1 expose différents moyens de le réaliser. Par exemple, le plus simple est la mesure périodique, à intervalles fixes. Mais elle a des défauts :

  • Si la grandeur mesurée est elle-même périodique, la mesure risque de se faire toujours au même moment, par rapport à la période du phénomène observé. On peut alors ne pas percevoir la périodicité de celui-ci.
  • Si la mesure est active, l'injection de données à intervalles périodiques entraîne parfois des effets de synchronisation non désirés (cf. un article fameux, S. Floyd et V. Jacobson, The Synchronization of Periodic Routing Messages (http://ee.lbl.gov/papers/sync_94.pdf), IEEE/ACM Transactions on Networking, avril 1994).
  • Enfin, l'échantillonage périodique est prévisible, ce qui peut être gênant si un malhonnête essaie d'influencer le résultat.
Le RFC recommande donc d'échantilloner à intervalles aléatoires, suivant une certaine distribution. Quelques exemples de telles distributions suivent comme celle de Poisson en section 11.1.1.

Autre piège de la mathématique, les probabilités (section 12). Le RFC met en garde contre leur abus lors de la définition d'une métrique. Dire que 34 paquets sur 100 ont été perdus (ce que ping affiche sous l'étiquette packet loss) est un fait, dire que « la probabilité de perte d'un paquet est de 0,34 » est une interprétation, qui suppose que le phénomène soit aléatoire (ce qui est faux, la perte des paquets, contrairement à la désintégration d'un atome radioactif est très déterministe).

Outre les questions physiques et mathématiques, la mesure cache des pièges liés à l'informatique. Pour plusieurs raisons, les différents paquets ne reçoivent pas le même traitement. Par exemple, certains FAI ralentissent délibérement les paquets considérés comme liés à un protocole pair à pair. La mesure dépend donc du type de paquets, ce que la section 13 formalise avec la notion de « paquets de type P ». Lorsqu'on dit « la machine 2001:db8:42::bad:cafe est joignable », cela n'est pas toujours vrai pour tous les protocoles, en raison notamment des coupe-feux. Il faut donc dire « la machine 2001:db8:42::bad:cafe est joignable pour un certain type P », où P est défini comme, mettons « paquets TCP à destination du port 80 ».

2009-01-02

★ Bilan après une année de freelance

2009-01-02 David Larlet - BioloGeek.com - freelance, quotidien, avenir

L'année 2008 a été riche en événements avec un changement d'activité et un déménagement dans la foulée. Il est temps de faire un bilan sur ce qui a bien marché ou pas et de lever un peu la tête du guidon.

Erreurs de débutant

J'ai voulu trop en faire. Je ne sais pas si c'est parce qu'on m'a dit que le début est toujours difficile mais du coup j'ai dit oui à beaucoup trop de projets, pas forcément intéressants, et ça m'a complètement épuisé. J'essaye maintenant de mieux choisir (puisque j'ai la chance d'avoir le choix), quitte à augmenter mes tarifs pour ne pas avoir peur d'avoir des périodes d'inactivité. Je travaille ainsi dans de meilleures conditions et tout le monde est gagnant.

J'ai eu quelques problèmes de cashflow. Il y a des périodes pendant lesquelles les factures pleuvent et il faut avoir anticipé un minimum pour ne pas se retrouver bêtement dans le rouge alors que des prestations restent impayées par ailleurs faute de relances ou d'organisation de ma part. Le pire c'est que je n'ai pas réussi à éviter ça alors que je m'y attendais quand même... rien de grave heureusement, on apprend de ses erreurs :-).

J'ai mis de côté ma vie privée. En travaillant les soirs, les weekends, les nuits, les vacances, etc. Il y a forcément des périodes de rush dans ce métier mais bon lorsqu'il dure un an c'est plus vraiment vivable, pour moi mais aussi et surtout pour ceux qui m'entourent. Le plus frustrant c'est d'avoir perdu mon temps sur certaines propositions pour un résultat quasi-nul, si ce n'est celui de savoir dorénavant flairer ces mauvais coups.

Points positifs

Heureusement, il y a aussi du positif sinon je n'aurais pas tenu !

Je me connais mieux. J'arrive à mieux cerner mes phases de productivité, je sais jusqu'où je peux aller au niveau de la charge de travail avant que ça fasse trop et connaître ses limites est un point essentiel lorsqu'on travaille seul car il n'y a personne derrière pour rattraper lorsqu'on est malade par exemple.

Je sais qu'il est possible de gagner plus. En fait j'ai le contrôle sur ce curseur et c'est intéressant de pouvoir directement influer là-dessus. Pour l'instant, j'arrive assez bien à vivre de mes projets et je suis content car c'était un peu l'inconnu à ce niveau. Mes challenges (ci-dessous) vont forcément avoir une influence sur mes revenus mais le principal c'est de savoir que c'est possible.

J'ai eu la chance de travailler sur des projets innovants. C'est extrêmement motivant et cerise sur le gâteau, j'ai collaboré avec des personnes très intéressantes. En fait la notion de client est totalement inversée lorsqu'on passe d'un contexte industriel où le client est souvent considéré comme le jamais content de service à un contexte artisanal où le client est un véritable partenaire. C'est lié à l'agilité d'un projet mais je détaillerai ça plus tard, il va me falloir de la place.

J'ai gagné des points d'expérience. Dans à peu près tous les domaines, que ce soit administratif, relationnel ou technique. Je n'ai pas hésité à me lancer dans des prestations qui n'étaient pas gagnées d'avance mais qui m'ont permis d'utiliser des technologies auxquelles je voulais me frotter. Il me reste encore énormément à apprendre mais cette année à mon compte m'a permis de faire un bond énorme à ce niveau.

Challenges pour 2009

Au final, je trouve le bilan assez positif mais je pense qu'il est utile de se fixer des challenges pour pouvoir aller dans la bonne direction.

Si on reprend mes résolutions 2008, être, aimer et faire, j'essayerai d'ajouter cette année prendre soin, voyager et partager. Pour cela, il va falloir :

  • libérer des weekends pour pouvoir balader, rencontrer et décrocher du web ;
  • prendre des vacances, j'ai pas mal de projets à ce niveau et c'est en bonne voie ;
  • trouver le temps de communiquer davantage sur mes expériences, j'ai notamment un vieux rêve mais j'en reparlerai.

Tout un programme, qui se résume finalement à travailler moins, mieux.

Logo biologeek Bilan après une année de freelance a été rédigé par David Larlet pour biologeek.com et a été originellement posté le 02 Janvier 2009. À part exceptions, c'est ©2008 David Larlet et sous licence (presque) libre autorisant la reproduction, la distribution et la modification sous certaines conditions. Veuillez les respecter.

Peut-on vraiment mettre des utilisateurs ordinaires sur Ubuntu ?

2009-01-02 Stéphane Bortzmeyer - xmlfr

Le système d'exploitation Ubuntu est souvent présenté comme la solution idéale pour mettre sur le bureau de l'utilisateur ordinaire, non technicien. Fondé sur essentiellement du logiciel libre, Ubuntu bénéficie d'un marketing très dynamique, à base de photos d'utilisateurs multiraciaux et souriants. La promesse : qu'Ubuntu, contrairement aux autres Unix, est utilisable par tous. Quelle est la réalité ?

Ce n'est pas parce qu'on répète quelque chose que c'est vrai. Pourtant, dans le marketing de l'informatique, c'est une méthode très fréquente. « Ubuntu, c'est convivial » ou bien « Avec Ubuntu, Unix est aussi facile qu'avec le système XXXXX » sont des phrases répétées tellement souvent qu'on finit par y croire. Je gère donc plusieurs machines Ubuntu, destinées à des utilisateurs exigeants mais pas du tout techniciens (voir des descriptions plus techniques en dell-latitude-d430-linux.html, dell-inspiron-7500.html et packard-bell-mx37.html).

Et que constater ? D'abord, l'administration système n'est pas du « tout cuit ». Bien qu'Ubuntu cède partiellement aux pressions de l'industrie du matériel et accepte d'incorporer des pilotes non libres dans son système, le matériel ne fonctionne pas forcément du premier coup. Obtenir des meilleurs résultats nécessite des manipulations qui ne sont certes pas à la portée de l'utilisateur ordinaire comme de compiler une version plus récente du pilote. La lecture de forums comme la liste de diffusion des utilisateurs francophones d'Ubuntu montre bien que ce problème est fréquent. Il est récurrent avec tous les Unix libres et n'est souvent pas de la responsabilité des programmeurs Unix, mais de celle des fabricants de matériel. Néanmoins, nier ou minimiser ce problème, comme le font trop souvent les promoteurs du logiciel libre est contre-productif. L'utilisateur naïf qui a pris ce discours au pied de la lettre risque, de dépit, de s'enfuir bien vite au premier problème.

Mais il y a pire : les problèmes ne s'arrangent pas forcément avec le temps. Parfois, une mise à jour du système résoud soudain un problème matériel qui trainait depuis des mois. Parfois, au contraire, il y a régression (en passant de Ubuntu Heron à Ubuntu Ibex, la fonction de mise en hibernation de mon Dell D430 marche moins bien).

Ces problèmes, je le sais bien, sont largement dûs à l'attitude de l'industrie du matériel, qui refuse de publier des documentations correctes, réservant les informations à ceux qui écrivent des pilots pour Windows. Les autres Unix libres ne font pas forcément mieux qu'Ubuntu sur ce point et ils sont parfois bien plus complexes.

Mais il existe aussi des problèmes purement logiciels. L'environnement graphique par défaut d'Ubuntu, Gnome, vise explicitement à copier MS-Windows. Comme son modèle, la priorité est aux gadgets qui brillent et pas à la stabilité et à la fiabilité. Certaines bogues indiquent un mépris de la robustesse qui est assez étonnant. Ainsi, les nombreuses bogues de gnome-appearance-properties, le programme lancé lorsqu'on clique sur Système -> Préférences -> Apparence montrent une absence totale de contrôle qualité. gnome-appearance-properties fait des erreurs de segmentation dès qu'il rencontre un petit problème, sans qu'aucun message d'erreur ne signale rien.

Une bogue que j'ai rencontrée personnellement (et qui est enregistrée sous le numéro 312931) est particulièrement « réussie » : si un fichier avec une extension .jpg (normalement une image JPEG) contient en fait un autre format, le programme crashe sans aucun message d'erreur. Le programmeur n'a pas eu l'idée qu'un fichier pouvait ne pas être au bon format ! Produire un message « Fichier invalide ou inconnu » avec le nom du fichier n'aurait-il pas été la moindre des choses ? Ce genre de programmation, dite « défensive » est pourtant enseigné dans les écoles depuis de nombreuses années.

Pour contourner cette bogue particulière et permettre de lancer le programme, il a fallu trouver son nom (Système -> Préférences -> Menu principal puis Choix de la catégorie (par exemple Accessoires) puis Clic droit sur le nom de l'application (par exemple Calculatrice) puis Clic sur Propriétés, le champ commande contient... ce nom, merci à Bernardo pour la méthode, que je ne trouvais nulle part). Ensuite, il faut faire tourner le programme sous strace pour afficher les appels systèmes effectués. On voit alors qu'immédiatement avec le SIGSEGV, il ouvrait un fichier, fichier qu'il suffit ensuite de supprimer pour que gnome-appearance-properties fonctionne à nouveau.

Une autre solution aurait été de faire tourner le programme sous un débogueur comme gdb. Dans les deux cas, on ne peut pas dire que cela soit accessible à l'utilisateur typique.

Je suis politiquement attaché au logiciel libre et je suis bien conscient que MS-Windows est lui aussi très loin d'être facile et sans douleur pour l'utilisateur non informaticien. Mais j'aimerais des fois que le marketing du logiciel libre soit un peu moins optimiste et un peu plus réaliste.

2009-01-01

Veux 2009

Excellente année 2009 à toutes et à tous !

Que tous les (je) « veux » qui vous tiennent à cœur soient exaucés, sans demeurer des (jeux de) vœux pieux.

Sur Formats-Ouverts.org (FOo), cela reste « Je veux des formats ouverts ! » (j'espère vous aussi).

Les vœux des années précédentes :

PS : veux et vœux ont autant de lettres, 4, et le premier n'est pas le second sans o, mais le e y remplace le œ (qui est un caractère, le e dans l'o, comme dans œuf, œuvre ou chœur).

2008-12-31

La pyramide de Khéops, l'archéologie 3D et les formats

Le 28 décembre 2008 (un dimanche) était diffusé à 15h45 sur France 2 une émission à propos des pyramides d'Égypte : plus précisément à propos de la plus célèbre, celle de Khéops [1], dans le documentaire intitulé Khéops révélée [2].

Il s'agit de l'histoire de la théorie élaborée et vérifiée en partie par l'architecte français Jean-Pierre Houdin à propos de la construction de ce momument exceptionnel qu'est la grande pyramide de Khéops (plus de 130 m de haut, âgée de plus de 4500 ans, la seule des 7 merveilles du monde encore visibles).

Et Les Formats ? La question peut se poser à 2 niveaux.

Pas de trace, un mystère : il n'y a pas de document véritable à propos des méthodes utilisées et c'est l'objet du documentaire que d'avancer des explications sur la construction. Pour nous aujourd'hui ce sujet des archives se confronte au problème des formats numériques fermés pour les documents électroniques comme les plans et les informations des monuments et ouvrages actuels. Seront-ils encore utilisables dans 100 ans, comme annoncé pour le viaduc de Millau ?

« L'archéologie 3D » : c'est l'expression employée dans le documentaire à propos d'une méthode utilisée. Il s'agit de créer à partir des documents (plans, relevés, photos,...) la pyramide en trois dimensions dans un logiciel de simulation de la réalité. Cela a été réalisé par Dassault Systèmes [3], qui a modélisé la pyramide et a permis de valider la théorie. Quid des formats utilisés dans le(s) logiciel(s) de ce qui peut s'appeler de l'archéologie numérique : fermés ou ouverts ?

Sources et liens :

Et sur Formats-Ouverts.org le 31 décembre :

Un cas exemplaire : le loto, on y voit tout

Et si les élections copiaient les tirages du loto ?

Mercredi 31 décembre : dernier tirage du loto pour l'année 2008. Lundi 6 octobre 2008 : début de la nouvelle formule (format) du loto. Désormais ce ne sont plus 6 bons numéros (entre 1 et 49), mais 5 bons numéros avec le bon numéro chance (de 1 à 10) qui font gagner le gros lot [1].

Mais une chose demeure : on montre à l'écran les boules numérotées qui se mélangent dans une sphère transparente qui tourne et d'où chacune est extraite au hasard pour effectuer le tirage.

Serait-il possible de remplacer ce dispositif totalement compréhensible et a priori peu falsifiable (il y a un huissier) par un écran où s'afficherait un numéro calculé au hasard par un logiciel ?

  • oui techniquement la chose est même très facile ;
  • non d'un point de vue de la mise en scène et de la confiance accordée à la procédure.

Et pour le vote, doit-on laisser un logiciel compter, au lieu de glisser une enveloppe dans une urne transparente ? Le vote n'est pas moins sérieux que le jeu de hasard, il faut aussi avoir confiance dans son fonctionnement en le comprenant (et en pouvant vérifier le décompte des bulletins).

Sources et liens :

Et sur Formats-Ouverts.org le 31 décembre :

2008-12-30

La télé et les formats

2008-12-30 Thierry Stoehr - Formats-Ouverts.org - Nonelectronique

Les émissions de télévision, de radio ou les films ont des formats connus (durée, déroulement, héros, manières de filmer,...). Certains sont plus à l'honneur selon les périodes de l'année, comme en été ou en fin d'année. Parfois on assiste même à des guerres des formats :

  • Sissi contre Angélique : chaque jour du lundi 29 décembre au jeudi 1er janvier, ce fut le match féminin de l'après-midi entre TF1 et M6 avec les 4 films successifs des deux héroïnes ;
  • Joyeux Noël - Les Chevaliers du ciel : match indirect et dominical sur TF1, fin novembre et début décembre, entre un film « aidé » et un qui ne le fut pas ;
  • Miss France contre le Téléthon : l'affrontement du 6 décembre au soir (un samedi) entre TF1 et France Télévision ;
  • La nuit Albator contre la nuit de Noël : à partir de 00h30 le jeudi 25 décembre pour la nuit du réveillon, des épisodes du dessin animé Albator, une programmation un peu décalée par rapport à l'ambiance classique des émissions de Noël.

Et sur Formats-Ouverts.org le 30 décembre :

Saint Lazare, le dernier ; l'italien, le nouveau

2008-12-30 Thierry Stoehr - Formats-Ouverts.org - Nonelectronique

Plus aucune gare parisienne ne vend la carte orange de janvier 2009 au format papier. Aucune ? Si, une dernière gare résiste, la gare Saint Lazare qui est donc la seule encore à proposer les coupons magnétiques mensuels et hebdomadaires du mois de janvier 2009.

Il n'y a plus d'espagnol, place à l'italien : telle est la nouvelle annonce faite dans la ligne 14 du métro en Gare de Lyon. Le message est apparu en décembre 2008, avec de nouvelles voix et il est en français, anglais et donc italien (les langues sont/ont des formats).

(Ces 2 notules concerne vraiment Paris au sens strict).

Et sur Formats-Ouverts.org le 30 décembre :

2008-12-29

Paris s'étend et le cirque s'écarte

La bonne formule : du Paris

Paris est un nom utilisé en parfumerie, dans le luxe, en gastronomie. Mais Paris est d'abord une ville... qui se trouve aussi ailleurs qu'à Paris ! Des sortes d'extensions hors (voire loin) du territoire communal :

  • à l'ouest, Paris-La Défense [1] ;
  • au sud, exit la ville d'Issy-les-Moulineaux, dixit Microsoft France dans son communiqué de presse à propos de son centre de recherche [2] ; pourtant la ville d'implantation de ce centre (et aussi de son prochain siège social) n'est pas Paris mais bien Issy-les-Moulineaux ;
  • à l'est, c'est Disneyland Paris [3] ;
  • et encore au sud, le projet d'aménagement du plateau de Saclay s'intitule Paris-Saclay [4].

Cela doit être la bonne formulation, le bon format (ouvert), que d'avoir Paris dans son nom de lieu (et le nom d'origine passe alors en second).

La mauvaise formule : du cirque

Pour Surcouf, le cirque, c'est fini [5] : l'univers du cirque (personnages, décoration,...) était utilisé depuis la création du magasin à Paris, avec le Grand Couf et autres déclinaisons de ce thème (notamment visuelles). Depuis septembre 2008, le catalogue « fait peau neuve » en affichant une « nouvelle identité visuelle » : « l'univers du cirque laisse place à une nouvelle dynamique » (page 1). Le cirque, ce n'est plus le bon format.

On peut aussi relever que dans les catalogues Surcouf de septembre et de Noël, la mise à jour tarde... : une pleine page parle de l'affrontement des DVD entre les formats HD-DVD et Blu-ray Disc... pourtant terminé depuis janvier 2008 (mais interrogé en magasin, au moins un responsable de Surcouf a dit le savoir et admet le retard).

Sources et liens :

Et sur Formats-Ouverts.org le 29 décembre :

2008-12-28

Ouf, il sera possible de lire les photos ! Merci ?

Le problème

Vous prenez des clichés avec le superbe appareil photo numérique dans lequel vous avez investi (ou que le père Noël vous a apporté en cadeau). Ils sont sur une carte mémoire que vous placez dans le lecteur de cartes. Votre logiciel de photo est lancé et vous lui demandez d'ouvrir les photos.

(Faisons une petite parenthèse : vous avez sans le savoir déjà franchi plusieurs obstacles liés aux formats : ceux à propos des caractéristiques physiques (dimension de la carte, lecteur de ladite carte avec les prises des câbles éventuellement nécessaires pour relier les éléments). Reprenons le cours de l'histoire.)

Au moment où vous demandez au logiciel d'ouvrir les photos, une réponse étrange s'affiche à l'écran (il est question d'absence de prise en charge, d'association avec le logiciel,...) mais le résultat est là : aucune photo visible !

L'explicaton tient au format : le format RAW utilisé par votre appareil plutôt haut de gamme n'est pas connu du logiciel. Le fichier photo parle une langue inconnue, le RAW du fabricant de l'appareil (donc presque autant de RAW que de fabricants...).

La fin du problème ?

Mais heureusement cette histoire n'est plus possible avec certains appareils de certains fabricants ! En effet, dans sa grande bonté, l'industrie s'est penchée sur ce problème et la solution a été trouvée : les fabricants d'appareils photo numérique ont indiqué aux éditeurs de logiciels comment leur RAW fonctionne.

Donc heureux possesseurs :

  • des logiciels Aperture 2 ou iPhoto 08 d'Apple avec des appareils Canon (2 modèles), Leaf (4 modèles), Pentax (1 modèle) ou Leica (1 modèle), il est possible depuis décembre 2008 de lire leurs formats RAW [1] ;

  • du logiciel Photo Galery de Microsoft avec des appareils Nikon et Panasonic, il est aussi possible de lire leurs formats RAW, depuis septembre 2008 pour le premier et fin octobre 2008 pour le second [2].

Si vous n'êtes pas dans cette liste de logiciesl et d'appareils... alors retournez au début de l'article (on appelle cela une boucle) en attendant le bon vouloir d'une mise à jour.

Voilà un exemple supplémentaire du Vos données sont dans nos formats. Bien sûr cette solution repose sur des accords entre sociétés à propos des formats fermés RAW : il ne s'agit pas d'utiliser des formats ouverts (comme DNG ou OpenRAW).

Sources et liens :

Et sur Formats-Ouverts.org le 28 décembre :

  • en 2007, en 2006
  • pause en 2005 et en 2004.

Vous avez dit "redocumentarisation" ?

2008-12-28 Patrick Peccatte - Du bruit au signal (et inversement) - documentation, redocumentarisation, signalements

J'ai utilisé assez fréquemment le mot "redocumentarisation" sur ce blog et je m'aperçois qu'il n'est pas si facile d'en trouver une bonne définition sur Internet. Le terme, popularisé par le collectif Roger Pédauque, est par exemple absent de Wikipedia. J'emprunte à Jean-Michel Salaün, Directeur de l’École de bibliothéconomie et des... Lire Vous avez dit "redocumentarisation" ?

2008-12-27

Ah ces mots mal orthographiés...

L'orthographe fixe les règles d'écriture des mots, c'est un code ouvert. Parfois, une erreur peut se glisser...

  • involontaire : sur cette image [1], l'intitulé Apple Store est revu et corrigé... (je n'y suis pour rien, car il manque une lettre et je n'ai pas de magasin en ligne !)
  • volontaire : Bernard Madoff a établi une nouvelle unité monétaire : le 50-milliards de dollars [2] (il y avait déjà l'euro et le 4,9-milliards d'euros). Il serait plus exact d'écrire ce mot avec une espace : Mad off, et d'établir les balises <mad on> et <mad off>... (mad pour fou, en mode activé ou pas ; mais rien à voir avec FOo !)

Sources et liens :

Et sur Formats-Ouverts.org le 27 décembre :

  • en 2007, en 2006
  • pause en 2005 et 2004.

2008-12-26

Le calendrier de l'après (jour de Noël)

Au lendemain de Noël, le marronnier consiste à évoquer les retours en magasin de ces cadeaux qui posent problème, souvent à cause des formats (mais il faut attendre le 27 en Alsace et en Moselle où le 26 décembre, jour de la Saint Etienne, est férié [1]).

Le calendrier de l'après Noël, outre le 26 décembre, donne encore 5 jours où les formats à l'honneur sont connus : le bêtisier, le bilan, la rétrospective, le conte (comme celui du parapheur du RGI), en préparant le compte à rebours, les vœux, les résolutions, les prévisions, les perspectives et autres calendriers pour la nouvelle année (après la nouvelle année scolaire).

Et en 2008, l'année aura connue un format inhabituel qui peut s'écrire sous la forme de : +1 jour (année bisextile) et +1 seconde pour le 31 décembre [2].

Ce dernier jour de l'année est aussi la date butoir annoncée pour le décret accessibilité et le RGI [3] : les personnes des cabinets ministériels et leurs prestataires doivent avoir fini ces documents à cette date... donc à suivre.

Sources et liens :

Et sur Formats-Ouverts.org le 26 décembre :

Revue de bandes dessinées

Ça change un peu du web de temps en temps et c'est la pleine saison :

  • Dernier tome des Chroniques de la Lune Noire : quelle déception. Après une série exceptionnelle, seul le dessinateur a dû vraiment s'éclater dans ce dernier tome qui a un scénario proche de zéro. C'est tellement dommage, alors que tant de choses restent énigmatiques (la famille de Wismerhill, les buts de Lucifer et Methraton, etc). Ou alors c'est pour mieux vendre ensuite les Arcanes ? En tout cas quel gâchis de finir ainsi...
  • Dernier tome de Lanfeust des Étoiles : bon là aussi panne de scénario et fin bâclée alors qu'il y avait un potentiel énorme. Les séries estampillées Troy deviennent vraiment des pompes à fric : histoires totalement décousues, moins de blagues, planches bâclées (même sentiment avec le deuxième tome des Conquérants de Troy). Re-déception donc.
  • Tome 31 de Thorgal, ou tome 2 de Jolan ? On sait plus mais le principal c'est que ça reparte parce que la série commençait à sérieusement s'essouffler. L'arrivée de sang neuf a fait beaucoup de bien et on retrouve la magie de certains tomes parmi les meilleurs, merci Y. Sente pour ce nouveau cycle.
  • Tome 8 du Scorpion : avis partagé sur ce tome où l'on apprend des choses mais le dénouement tarde à arriver (en fait je l'ai lu en pensant que c'était le dernier). C'est dommage car j'aime beaucoup l'histoire, j'espère que ça ne dépassera pas les 10 tomes...
  • Les Gouttes de Dieu : on termine avec un manga découvert récemment et qui mérite à être plus connu. L'histoire est à déguster pour les amateurs de vins qui souhaitent en apprendre un peu plus sur l'œnologie. Le scénario tient la route et c'est une vraie mine d'informations intéressantes pour arriver au meilleur mariage sur votre table. À consommer sans modération :-).

Bon bout d'an !

Logo biologeek Revue de bandes dessinées a été rédigé par David Larlet pour biologeek.com et a été originellement posté le 26 Décembre 2008. À part exceptions, c'est ©2008 David Larlet et sous licence (presque) libre autorisant la reproduction, la distribution et la modification sous certaines conditions. Veuillez les respecter.

2008-12-25

Noël, des cadeaux et des formats

Des cadeaux sans souci de formats : une solution

Les cadeaux de Noël, demandés dans une lettre au père Noël ou pas, peuvent se diviser en 2 grandes catégories : ceux avec des problèmes de format et ceux sans ces problèmes.

  • livres (les beaux, ceux de photos, les romans, album, ceux de poche,...), vêtements, papeterie, parfum, chocolats, boissons, déguisements, services de cuisine, appareils et produits avec recharge (stylos, rasoirs, machines à café, distributeur à savon, fût de bière), jeux de société, de cartes et de construction...

La première liste (non exhaustive) est aussi concernée par le sujet des formats : la taille, les dimensions, la forme des objets, notamment ceux avec recharge qui peuvent être des pièges (consommateurs captifs).

Mais la seconde liste (également non exhaustive) rencontre forcément des problèmes de formats non-ouverts liés au monde du numérique : les logiciels (avec la version) pour lire les formats des fichiers de vos données (sans oublier les supports et les prises).

Numérique ou pas, telle est la question des cadeaux. Avec cette lapalissade (mais à indiquer) : hors du numérique (et cela existe), pas de problème de formats numériques. Très bonne fêtes !

Et sur Formats-Ouverts.org pour le jour de Noël :

En rouge et noir...

2008-12-25 Emmanuelle Bermès - Figoblog - blogs, Divers, interfaces

Comme cadeau de Noël, Figoblog s'offre (avec l'aide de Got) un nouveau look. Sortez un peu de votre agrégateur pour venir le voir ! Aucun rapport avec Jeanne Mas ou un quelconque revival année 80, j'avais juste envie de sobriété et de quelque chose de minimaliste, avec du noir pour économiser la planète ;-)

Joyeux Noël !!!

2008-12-24

L'affaire Zotero-EndNote par 2 fois

Un cas hélas exemplaire de données enfermées dans un format (présenté selon 2 formats)

l'éditeur propriétaire d'EndNote attaque le projet Libre Zotero car il permet de lire le format propriétaire des fichiers produits par EndNote [en] ! Voilà qui a le mérite de mettre en perspective l'importance des formats ouverts [fr] et d'apprécier la concurrence bienvenue amenée par le logiciel Libre...

Cette citation (y compris les liens) est tirée de l'article de Tristan Nitot sur son site Standblog [1] à propos de l'affaire qui oppose Thomson Reuters (éditeur du logiciel EndNote [2]) à l'Université George Mason en Virginie (éditrice de Zotero, une extension Firefox [3]).

C'est une manière de présenter ce cas exemplaire du « VOS données sont dans NOS formats ». Autre manière possible :

Est-il normal que je ne puisse plus accéder aux données que j'ai saisies moi-même pour les stocker dans un format propriétaire ? Suis-je condamné à faire une croix sur mes données passées de peur de me faire attaquer en justice ? Est-ce que dans l'expression « logiciel propriétaire », on doit comprendre que l'éditeur est propriétaire de vos données ?

Ces 3 questions sont du même Tristan Nitot qui explique la même affaire dans un article publié sur le site 01Net. [4].

Dans chaque cas, les formats ouverts ou fermés sont au centre... avec 2 formats (ouverts) d'écriture, adaptés aux contraintes des 2 sites.

Sources et liens :

Et sur Formats-Ouverts.org le 24 décembre :

2008-12-23

Une conférence remarquable (mais avec une barrière remarquable)

Allez, fermez vos ordinateurs portables et écoutez ! Consacrez-moi quelques minutes d'attention !

C'est presque en ces termes que Chris Anderson est descendu de la scène, micro en main, pour se rendre dans les allées de la salle de conférence où il intervenait... [1] Une descente « dans l'arène » alors que l'auditoire n'était pas très enclin à écouter... Voilà un format inhabituel de début de conférence. C'était à Paris, pour LeWeb'08, le 10 décembre 2008 (un mercredi).

Tristant Nitot, qui y a assisté, traite de cette conférence, avec photo [1] et article [2]. Chris Anderson mettait en avant les bénéfices apportés par le Web, qu'il a comparé à un « cerveau géant » qui a un « QI planétaire », avec cette phrase de fin :

Si vous travaillez sur un sujet qui va augmenter le QI planétaire, je vous salue, car ce que vous faites est un don d'amour pour ces enfants et pour nous tous. (les enfants sont ceux du Pakistan, dont des photos illustraient ces propos à l'écran)

La video est en ligne [3], indique l'article de Tristan Nitot. Voilà donc des images dignes d'intérêt à regarder. Mais non, impossible de lire la video : le format n'est pas jouable, disent au moins 2 des ordinateurs très différents, netbook et poste de bureau, que j'utilise : il faut Flash Player 10 (pour lire le format fermé associé, et il faut avoir le système d'exploitation sur lequel ce logiciel fonctionne...).

Encore une histoire de format dans le domaine de la video. Donc, encore une fois, le seul accès réel aux propos tenus restera une éventuelle retranscription au format texte (un format ouvert) publiée sur le Web et alors accessible à tous (et indexée), dans l'esprit d'un Web ouvert, véritable « cerveau géant ».

Sources et liens :

Et sur Formats-Ouverts.org le 23 décembre :

Comprendre Google Native Client

J'ai lu pas mal de choses marrantes ces derniers jours à ce sujet et je ne vais pas tirer sur l'ambulance mais plutôt essayer de montrer la stratégie qui accompagne Native Client (NaCl). Je ne suis pas anti-Google, derrière la peur que j'ai exprimé se cache vraisemblablement une certaine admiration aussi : ils ont une vision claire de l'évolution du web et de la place qu'ils vont y occuper.

On a longtemps évoqué un GoogleOS pour pouvoir concurrencer Microsoft et s'installer sur le desktop mais c'est un total non-sens pour une entreprise web qui tente depuis 10 ans de faire migrer votre bureau en ligne ! Cette solution écartée, voyons les différents points importants pour arriver à contrôler la chaîne d'accès à l'information, aux données.

La première étape a été de pouvoir rendre les applications web nomades, exploitables en étant déconnecté. Avec Google Gears c'est chose faite mi-2007. La deuxième c'est de contrôler le navigateur (Chrome) qui devient la nouvelle plateforme de développement pour des applications développées avec Native Client (le parallèle avec l'iPhone + AppStore serait intéressant d'ailleurs), la partie importante de l'annonce était :

If web developers could use all of this power, just imagine the rich, dynamic experiences they could create. At Google we're always trying to make the web a better platform. That's why we're working on Native Client, a technology that aims to give web developers access to the full power of the client's CPU while maintaining the browser neutrality, OS portability and safety that people expect from web applications.

Autrement dit : Imaginez la sensation de Microsoft lorsqu'on va insérer notre plateforme dans leur navigateur (il faut l'imaginer avec les voix d'Omar & Fred sinon c'est moins drôle :-).

Avec ces trois éléments, Google contrôle les (inter)actions verticales (si on considère que les données sont contrôlées horizontalement par le nombre d'applications) et arrive ainsi à couvrir un périmètre beaucoup plus large. De plus, ils peuvent compter sur leur infrastructure et éviter (partiellement) les bugs inhérents aux caprices des navigateurs actuels.

Une fois le contrôle sur cette partie, Android devrait rentrer dans la bataille pour exploiter l'aspect mobile de la plateforme. On ajoute à ça une pincée de SSO intégrée à Native Client (ce que tardent à implémenter les navigateurs avec OpenID) et on se retrouve avec une gestion complète de votre présence en ligne par Google : vérification de votre identité, accès, manipulation et stockage de vos données. Il ne manque qu'une brique, c'est l'accès à internet, mais les expérimentations en Californie et les satellites lancés récemment confirment cette approche également. Vous venez de perdre les quelques points de liberté qu'il vous restait, retour à la case départ. L'autre grand perdant dans l'histoire c'est Microsoft qui doit trouver l'addition... salée, surtout après l'échec d'ActiveX.

En conclusion, ce raisonnement se base uniquement sur les indices extérieurs et je peux très bien me tromper. Mais s'il s'avère que c'est réaliste, les stratèges Google doivent bien rigoler lorsqu'ils croisent des trolls sur les langages utilisables ou sur quel L majuscule mettre à Logiciel Libre. Moi je ris jaune.

Logo biologeek Comprendre Google Native Client a été rédigé par David Larlet pour biologeek.com et a été originellement posté le 23 Décembre 2008. À part exceptions, c'est ©2008 David Larlet et sous licence (presque) libre autorisant la reproduction, la distribution et la modification sous certaines conditions. Veuillez les respecter.

Lire des paquets capturés sur le réseau en C

Il y a des tas de raisons de vouloir lire soi-même les paquets capturés sur le réseau. Cela peut être par curiosité, par souci de sécurité (ou pour pirater !) ou bien pour faire des statistiques. Pour un rapide coup d'œil, on utilise en général tcpdump, pour un examen interactif détaillé, l'excellent Wireshark mais, pour des études à long terme, il vaut mieux programmer et développer un programme d'analyse spécifique, ce que je fais ici en langage C.

Souvent les articles sur la question parlent ensemble de la capture des paquets et de leur analyse. Ici, je ne mentionne que l'analyse, supposant que la capture a été faite par d'autres moyens, par exemple tcpdump -w FICHIER ou bien pcapdump.

L'outil d'analyse le plus fréquent pour les programmeurs C est libpcap. Il existe un excellent tutoriel d'introduction.

Je commence par un programme trivial, qui lit un fichier au format pcap, capturé par un des outils cités dans « Capturer les paquets qui passent sur le réseau », et qui décode suffisamment d'IPv4 pour afficher le protocole de transport utilisé. L'essentiel du programme est :

/* Ouvrir le fichier pcap */
handle = pcap_open_offline(filename, errbuf);
/* Parcourir le fichier */
while (1) {
    packet = pcap_next(handle, &header);
    /* Décoder l'en-tête Ethernet en convertissant le packet en une
    struct */
    ethernet = (struct sniff_ethernet *) (packet);
    /* Si c'est de l'IPv4 */
    if (ntohs(ethernet->ether_type) == IPv4_ETHERTYPE) {
          /* Décoder IPv4 : convertir le paquet en une struct. Ne pas
	  oublier de décaler de SIZE_ETHERNET octets */
          ip = (struct sniff_ip *) (packet + SIZE_ETHERNET);
          /* Afficher */
          printf ("Paquet IPv4 avec le protocole %d\n", ip->ip_p);
Notons bien qu'il faut utiliser ntohs pour convertir le paquet dans la bonne boutianité. Le code complet du programme est disponible en . On peut le compiler sur Unix avec :
cc -o readfile -lpcap readfile.c
(Si libpcap est bien présente. Sur une Debian, il aura fallu installer le paquetage libpcap-dev.)

On note qu'il a fallu faire le décodage soi-même, en travaillant au niveaux des bits de l'en-tête du paquet IP. Cela nécessite donc de connaitre le protocole décodé. Pour IPv4, il faut donc lire le RFC 791, section 3.1.

Et pour IPv6 ? Le format est décrit dans le RFC 2460, section 3. Traduisons-le en C :

/* IPv6 header. RFC 2460, section3. 
   Reading /usr/include/netinet/ip6.h is interesting */
struct sniff_ip {
	uint32_t         ip_vtcfl;	  /* version then traffic class
	                                     and flow label */
	uint16_t         ip_len;	  /* payload length */
	uint8_t          ip_nxt;	  /* next header (protocol) */
	uint8_t          ip_hopl;	  /* hop limit (ttl) */
	struct in6_addr  ip_src, ip_dst;  /* source and dest address */
};
Il suffit ensuite de « plaquer » cette définition sur le paquet :
if (ntohs(ethernet->ether_type) == IPv6_ETHERTYPE) {
	ip = (struct sniff_ip *) (packet + SIZE_ETHERNET);
et hop, on a un paquet IPv6 à analyser. On peut par exemple lire ip->ip_nxt qui contient le type du prochain en-tête (en général, la couche transport, mais attention, avec IPv6, d'autres en-têtes intermédiaires peuvent être présents). Le programme complet est en .

Si on veut décoder des protocoles de plus haut niveau, c'est souvent plus complexe. Prenons le DNS comme exemple. Le format est décrit dans le RFC 1035, section 4.1. Il peut se traduire en :

struct sniff_dns {
	/* RFC 1035, section 4.1.1 */
	uint16_t         query_id;
	uint16_t         codes;
	uint16_t         qdcount, ancount, nscount, arcount;
};
(Cela ne contient que l'en-tête DNS, il existe également des champs ultérieurs pour stocker la requête, la réponse, etc.)

Les codes sont des bits ou des groupes de bits et, pour y accéder, il faut faire de l'arithmétique de bits. Je définis des macros pour cela :

#define DNS_QR(dns)		((ntohs(dns->codes) & 0x8000) >> 15)
#define DNS_OPCODE(dns)	((ntohs(dns->codes) >> 11) & 0x000F)
#define DNS_RCODE(dns)	(ntohs(dns->codes) & 0x000F)
Ainsi, DNS_QR va extraire le bit 15, qui indique si le paquet est une requête ou bien une réponse (on masque avec une valeur où seul ce bit est à 1, 0x8000, puis on décale vers la droite). Une fois le paquet décodé :
if (source_port == DNS_PORT || dest_port == DNS_PORT) {
     dns = (struct sniff_dns *) (packet + SIZE_ETHERNET + 
                                        size_ip + SIZE_UDP);
on peut utiliser ces macros pour afficher le contenu du paquet, par exemple :
DNS_QR(dns) == 0 ? "Query" : "Response"
Le code complet figure en .

Les programmeurs Python peuvent regarder mon article équivalent pour Python.

2008-12-22

Un forum international organisé par l'OTAN, le ministère de la défense du Portugal et Microsoft

2008-12-22 Thierry Stoehr - Formats-Ouverts.org - Manifestations

Le « 2008 Defence Leaders Forum »... et les formats

C'était du 9 au 12 décembre 2008 à Lisbonne : le deuxième Defence Leaders Forum (DLF), avec 250 participants de 22 pays différents, dont de nombreux hauts responsables [1]. Le sujet : les défis des TIC pour les nations et l'industrie (IT Challenges for Nations and Industry).

Microsoft est l'un des 3 co-organisateurs de la rencontre, avec donc un ministère et une organisation internationale [2], preuve s'il en fallait de sa présence, de son importance et de son rôle dans le domaine des TIC.

Les secteurs militaire, de la défense et de la sécurité sont a priori sensibles à l'indépendance technologique, au contrôle des données et à la maîtrise des outils, notamment du point de vue de la confidentialité. Ce sont donc des secteurs où les formats et protocoles ouverts pourraient (voire devraient) être de rigueur. Qu'en est-il au travers des documents publiés pour ce forum (3 de Microsoft et 1 de l'OTAN) :

  • protocole et standard : oui, cité 1 fois [3], mais « standard ouvert », non (jamais cité) ;
  • interopérabilité et interopérable : oui, ils y figurent de nombreuses fois (et compatibilité 1 fois) [4], [5] ;
  • l'utilisation importante de la suite Microsoft Office, avec Windows ou les technologies SharePoint semblent ressortir.

L'approche de l'OTAN est passée de Need to Know (Besoin de savoir) à Need to Share (Besoin de partager) [5], ce qui signifie :

  • une uniformisation avec les mêmes outils, réseaux, logiciels, protocoles et formats pour tout le monde ;
  • ou des formats ouverts pour échanger de manière indépendante en respectant la diversité des situations.

Enfin il est amusant de relever que :

  • le nom de la stucture en charge des TIC au sein de l'OTAN est la NCSA (pour NATO Communication and Information Systems Services Agency [6])... comme le NCSA (pour National Center for Supercomputing Applications de l'université de l'Illinois[7]) où le navigateur Web Mosaïc [8] est né fin 1992 et d'où est parti Netscape Navigator (qui a donné un jour Mozilla Firefox) ;
  • le slogan du Lieutenant General Wolf, Directeur du NCSA, est un jeu de mot (volontaire ou pas) : « Share to Win » où Win est le verbe gagner... mais aussi l'abréviation du Windows de Microsoft.

Autres articles sur le sujet :

Sources et liens :

Et sur Formats-Ouverts.org le 22 décembre :

ADN, web et confidentialité

Pour répondre à David P. en commentaire, j'ai du mal à cautionner l'utilisation de l'ADN sur le terrain glissant de la gestion de l'identité mais il faut bien voir que c'est déjà possible en ligne !

Plus inquiétant dans le domaine (via sebsauvage), il semblerait qu'une base de données de l'ADN directement prélevé sur les nouveaux-nés voit le jour à des fins plus que douteuses (mais non enfin c'est pour la recherche). « Yes, we can! » qu'ils disaient... il serait peut-être temps de rebooter l'Amérique ? (si quelqu'un l'a lu, retours bienvenus).

[edit du soir] : si quelqu'un sachant lire le suédois pouvait me confirmer la traduction approximative de ce billet, notamment :

Le fait est que, depuis 1975, un échantillon de sang a été prélevé sur un total de nouveau-né en Suède, cet échantillon est utilisé pour la recherche sur Phénylcétonurie (PKU) et est stocké à utiliser dans la recherche future. Au total, environ 3,3 millions de Suédois ont des échantillons de sang dans ce registre.

Logo biologeek ADN, web et confidentialité a été rédigé par David Larlet pour biologeek.com et a été originellement posté le 22 Décembre 2008. À part exceptions, c'est ©2008 David Larlet et sous licence (presque) libre autorisant la reproduction, la distribution et la modification sous certaines conditions. Veuillez les respecter.

Épuisement des adresses IPv4

Il ne reste aujourd'hui plus que 34 préfixes IPv4 libres à l'IANA. Si la consommation d'adresses IP continue au même rythme, elles seront épuisées en janvier 2012.

Les chiffres et dates contenus dans cet article sont automatiquement mises à jour à partir de la liste officielle des allocations. Le nombre d'adresses IPv4 étant une ressource finie et non renouvelable, l'épuisement futur ne fait aucun doute (même si quelques négationnistes arrivent à nier ce fait). Lorsque la dernière adresse IPv4 sera allouée, il faudra, ou bien arrêter toute croissance de l'Internet, ou bien passer à IPv6, comme cela aurait dû être fait depuis longtemps. Une autre « solution » sera d'accepter un Internet limité, où les clients résidentiels, puis les petites entreprises et les associations, n'auront plus d'adresses IP publique du tout et devront passer des bricolages comme le NAT, qui limitent le nombre de services auxquels ils auront accès (par exemple le pair-à-pair).

Pour illustrer l'approche de ce problème, le programme qui met à jour cette page compte le nombre de préfixes restant. Les préfixes alloués par l'IANA aux RIR sont des « /8 », c'est-à-dire des blocs de 16 777 216 adresses. Le programme :

  • Récupère la liste des allocations (http://www.iana.org/assignments/ipv4-address-space/) et l'analyse,
  • Compte le nombre de préfixes libres (aujourd'hui, 34),
  • Compte le nombre de préfixes alloués depuis deux ans (22),
  • En supposant un rythme constant d'allocation, calcule le temps res