Category Archives: Geek stuff

Comprendre le minage Bitcoin

Ayant poursuivi mes réflexions après mon article précédent, je me suis intéressé au fonctionnement du minage de bitcoins.

Pour commencer, une petite démonstration de mathématiques

Supposons que vous ne soyez pas très bon en maths et que vous ne connaissiez que la multiplication, pas la division.

Par quels chiffres doit-on compléter les xxx dans 4025249123xxx pour que le résultat de sa multiplication par 7 se termine par 30 ?

Le plus simple est d’essayer les combinaisons une par une :

  • 4025249123000 x 7 = 28176743861000
  • 4025249123001 x 7 = 28176743861007
  • 4025249123002 x 7 = 28176743861014
  • 4025249123003 x 7 = 28176743861021
  • 4025249123004 x 7 = 28176743861028
  • 4025249123005 x 7 = 28176743861035

En continuant ainsi on finit par tomber sur une bonne combinaison :

  • 4025249123090 x 7 = 28176743861630

Mais ce n’est pas la seule, on aurait pu également trouver :

  • 4025249123190 x 7 = 28176743862330

Une fois la solution trouvée, n’importe qui sachant calculer une multiplication peut la vérifier très rapidement.

Revenons à nos bitcoins…

Ce qui précède, c’est le principe général du “travail” Bitcoin, qui permet simultanément de rendre compliquées la création de monnaie et la validation des transactions, afin que n’importe qui ne fasse pas n’importe quoi, tout en rendant très facile leur vérification.

À la place de la multiplication par 7, on utilise une fonction de cryptographie appelée un hachage, ici SHA256, qui à partir d’un paquet de données binaires produit 256 bits de résultat (d’où son nom), d’une manière qu’on ne sait pas inverser. Ce genre de fonction est abondamment utilisé pour des signatures électroniques : le seul moyen pour trouver un paquet en entrée fournissant la sortie voulue, c’est de faire un grand nombre d’essais au hasard en appliquant la fonction (on dit force brute).

Ainsi le hachage SHA256 du paragraphe qui précède est 2756436ec1d5614b9e22840bf4f5bbbc580c897973d1e4607dc0a723f8d75073. En enlevant juste la première lettre, on obtient 6b8dc910fa3b2c8e3d40244869d5e1a5fe7753a1862eed5a306d2fceb6fe60fb.

À la place du nombre à compléter, on utilise une liste de transactions Bitcoin déjà signées par les clés des émetteurs, avec un emplacement à remplir appelé la nonce. (en fait le principe est similaire mais un petit peu plus compliqué, voir ce billet chez Turblog pour des détails techniques plus précis).

Au lieu de chercher un nombre se terminant par 30, on cherche un nombre inférieur à une certaine valeur, donc commençant par un certain nombre de zéros.

Et tous les ordinateurs du réseau Bitcoin cherchent simultanément des solutions à ce paquet, ce qui revient en gros à effectuer des tirages au sort vérifiables a posteriori.

En fait, plus précisément, chaque ordinateur cherche sa solution : car dans le paquet, il indique la transaction vers son compte, qui bénéficiera des Bitcoins qui rémunéreront son travail pour le paquet. Donc chacun trouve des valeurs SHA256 totalement différentes.

Le premier à trouver une solution a gagné. Il empoche le nombre de Bitcoins attribués au paquet (25 actuellement, 50 au début, et ce nombre va se réduire au fil du temps), et les commissions sur toutes les transactions du paquet.

La difficulté du problème (le nombre de chiffres prédéterminés dans la sortie) est ajustée afin qu’en moyenne, un nouveau paquet soit calculé toutes les 10 minutes.

Quel intérêt concret à être mineur ?

Évidemment, les ordinateurs rapides sont avantagés, et après l’exploitation des capacités de calcul rapide des cartes graphiques 3D, il existe maintenant des circuits électroniques spécialisés pour calculer beaucoup plus vite des hachages de paquets Bitcoin. Après les FPGA (circuits reprogrammables par le client), plus rapides moins gourmands en électricité (merci à Y. Rougy pour la précision) que les cartes graphiques, le Bitcoin est entré dans l’ère des ASIC (circuits intégrés classiques, fabriqués en usine pour cette application particulière, beaucoup plus rapides).

Ainsi, à la difficulté actuelle, il faudrait en moyenne 6882 années à mon ordinateur de bureau (14 millions de hachages par seconde) pour trouver un bloc et gagner 25 bitcoins. C’est ce que me dit ce calculateur de minage. Côté Litecoin, les algorithmes et difficultés sont différents, il ne me faudrait qu’environ 11 ans d’après https://www.litecoinpool.org/calc.

Pour comparaison, avec les circuits spécialisés les plus rapides du moment cités sur cette page de comparaison des performances matérielles, il faut environ 4 jours par bloc Bitcoin.

Plus il existe d’ordinateurs dans le réseau, et plus ils sont rapides, plus la difficulté est augmentée afin qu’il ne soit pas trop facile de créer de la monnaie et que le rythme moyen reste constant. Je ne sais pas si la réciproque est vraie (mais je pense que oui, le protocole semblant bien pensé) : on peut imaginer que la force de calcul se réduise soudainement, soit par disparition d’une équipe de mineurs, soit par panne, etc.

Il existe en tout cas une véritable course aux capacités de calcul : l’ajout de capacité avantage celui qui la détient, mais pousse la difficulté générale à la hausse, toutes choses égales par ailleurs en termes de services effectifs rendus.

La rentabilité du minage de bitcoins dépend du cours de celui-ci, de la difficulté des calculs et des coûts d’investissement et de fonctionnement (électricité et climatisation, notamment). Si l’activité est très rentable, elle attirera beaucoup de mineurs, ce qui en réduira mécaniquement la rentabilité de deux manières, augmentation de la difficulté et répartition des gains sur un plus grand nombre de mineurs.

Groupes de minage ou minage solo

Il existe un écueil au minage : les temps élevés pour découverte d’un bloc. On gagne beaucoup, mais très rarement, et rien du tout la plupart du temps. C’est pour cela que des groupes se constituent, visant à multiplier les chances de récupérer des blocs, et lissant les gains en les répartissant au sein du groupe.

Cette page sur le wiki Bitcoin présente plus en détail l’activité des groupes de mineurs, et ce comparatif décrit les groupes, notamment les différentes façons de répartir les gains.

La gestion de groupes introduit un autre problème intéressant : le taux de découverte de bloc étant très faible, comment s’assurer que les mineurs qui ne trouvent pas cherchent effectivement et ne sont pas des parasites qui ne viennent qu’empocher leur part des gains ? Des méthodes ont été inventées pour donner des preuves de travail.

Solo = Loto ?

Pour rire, j’ai voulu comparer les espérance de gain du minage en solo à celles, assez similaires, d’un gain de 5 numéros au Loto pour quelqu’un qui jouerait une fois par semaine.

Sauf erreur de ma part, donc :

  • gain (calculé sur un cours de 600€ par bitcoin soit 25 bitcoins = 15 000€) environ 6 fois plus faible
  • chances de gain 3 fois plus élevée (temps moyen par bloc : 6882 ans au lieu de 20 000 ans environ)
  • dépense équivalente : en supposant une consommation de l’ordinateur d’environ 100 W donc 16,8 KWh chaque semaine, soit 2,23€, contre 2€ la grille de Loto.
  • et je n’ai pas inclus le coût d’acquisition et d’amortissement de l’ordinateur.
  • il faut ajouter, aux gains du Bitcoin, les commissions de transaction, qui représentent relativement peu actuellement (environ 0,2 à 0,4 bitcoin par bloc en général ; tout cela est visible sur blockchain.info)

Je précise que cette évaluation à la louche ne tient pas compte d’autres facteurs potentiels, notamment les refus peut-être plus probables d’un bloc si votre ordinateur est vraiment très lent, ou des délais de transmission, qui réduisent peut-être notablement les chances effectives de gains. En effet je n’ai jamais trouvé un bloc Bitcoin de ma vie, ce qui n’est pas étonnant quand on sait que je n’ai pas beaucoup tenté ma chance.

Si on intègre les rapports complets du Loto (tous les gains, pour toutes les combinaisons de chiffres), c’est moins glorieux pour le Bitcoin. En effet, au Loto on peut espérer récolter environ 1€ par semaine, soit 358 000 euros en 6882 années, ce qui représente 24 fois les gains en Bitcoin au cours actuel.

Mais, quand on se rappelle que tout cela chatouille gentiment les pieds des États, des banques centrales et des banques de détail, ce que ne fait pas du tout le Loto, on conviendra que cette satisfaction immatérielle a elle aussi une certaine valeur.

Commentaires et corrections bienvenus, bien entendu.

Petit cours de Bitcoin pour les nuls

Bitcoin, créé en 2009 et dont on a beaucoup parlé en 2013, est la première monnaie électronique non centralisée. On dit aussi parfois crypto-monnaie ou monnaie virtuelle, mais ce dernier terme est un peu fourre-tout.

Comme je me suis arraché les cheveux ces derniers temps pour en comprendre le minimum syndical, j’ai pensé en faire un article résumant ce que j’ai appris afin qu’il bénéficie à tous.

Pour les bases techniques et historiques, je vous invite à lire l’article de Wikipédia. ainsi que la série de billets de Turblog. Mais comme ceux-ci sont assez techniques, une explication plus concrète est utile.

Bitcoin est la première réponse sérieuse à un problème complexe : comment créer l’équivalent numérique d’une monnaie physique, sans que celle-ci soit liée à une autorité centrale ? Cette dernière rend le problème trivial : les monnaies virtuelles sont légions, notamment dans les jeux en ligne.

C’est à dire que l’on cherchait une monnaie :

  1. échangeable facilement et sans frais de personne à personne
  2. difficile à falsifier
  3. utilisable et échangeable de façon plus ou moins anonyme, comme l’argent liquide
  4. non duplicable, c’est à dire utilisable une seule fois
  5. utilisable sans passer par une autorité centrale
  6. d’une valeur reconnue

Et de préférence échangeable à distance, à travers Internet par exemple

Bitcoin est la première solution mise en œuvre à grande échelle avec un succès relatif, c’est ce qui fait son intérêt.

Il est très facile et maintenant banal de réaliser le point 2,  des documents numériques infalsifiables, à l’aide de la cryptographie, mais beaucoup plus difficile d’assurer le point 4 et le point 5.

Bitcoin propose une solution à tout cela en sacrifiant la confidentialité des transactions. Celles-ci sont visibles publiquement, ce qui permet leur vérification par un réseau décentralisé, comme dans beaucoup de protocoles pair-à-pair. L’idée est qu’avec un nombre suffisamment grand de partenaires d’origines et d’intérêts variés, une collusion entre eux pour falsifier les transactions est impossible.

Le cœur du système Bitcoin

Il existe donc deux principaux types d’acteurs dans Bitcoin :

  • vous et moi, avec nos portes-monnaie ;
  • le système de vérification et authentification des Bitcoins, aussi appelé les mineurs, qui fabriquent la monnaie, gardent trace des transactions validées, et reçoivent éventuellement une commission sur les transactions.

À cela s’ajoute tout un ensemble d’intermédiaires : places de marché diverses, accès au journal des transactions sur blockchain.info, agrégation de cours, etc.

La création de monnaie

La quantité de Bitcoins est fixée arbitrairement par l’algorithme initial. Pour éviter que n’importe qui puisse créer de la monnaie, sa création est volontairement difficile et repose sur le concept de preuve de travail. Ce travail est effectué par les ordinateurs en réseau des mineurs.

Le nombre total d’unités Bitcoin est mathématiquement limité à 21 millions. À ce jour, environ la moitié ont déjà été mis en circulation, à un taux qui se ralentira régulièrement au fil du temps.

Le Bitcoin ne peut donc, à la différence des monnaies classiques, être régulé par une banque centrale qui créerait ou détruirait de la monnaie à volonté pour amortir les variations de cours et l’inflation. C’est à la fois ce qui fait sa force et sa vulnérabilité.

File:Total bitcoins over time.png

Comment fonctionne le porte-monnaie ?

Un porte-monnaie Bitcoin est une paire de clés cryptographiques publique/privée. Le porte-monnaie ne contient rien d’autre, il permet juste d’insérer de nouvelles transactions signées dans le système Bitcoin.

La clé publique est le “numéro de compte” ou l'”adresse” Bitcoin. N’importe qui disposant d’un porte-monnaie crédité peut envoyer des Bitcoins à cette adresse.

La clé privée permet de signer des transactions pour dépenser de l’argent en faveur d’un autre porte-monnaie. On peut en outre y ajouter une commission, non obligatoire, pour que la transaction soit plus rapidement validée par les mineurs.

En effet, il est possible de signer absolument n’importe quelle transaction, aussi farfelue soit-elle.  C’est là que le réseau Bitcoin entre en jeu : on s’assure dans l’historique que la somme dépensée a bien été reçue au préalable sur le compte émetteur via des transactions créditrices. Les mineurs dépensent du temps de calcul informatique à créer, toutes les 10 minutes, un bloc signé contenant les dernières transactions. Ils sont rémunérés pour cela par les commissions facultatives à l’initiative de l’émetteur de la transaction.

On voit donc que Bitcoin ne fonctionne pas sur des conservations de totaux créditeurs, mais sur des deltas : une transaction de dépense n’est valide que s’il est possible de lui faire correspondre des transactions antérieures de recettes pour un montant suffisant, non déjà dépensées.

La sécurité du porte-monnaie repose exclusivement sur la confidentialité de la clé privée. Ainsi, si certains services web proposent de la gérer eux-mêmes (certains ont déjà été piratés afin d’y vider les comptes associés), la méthode incontestablement la plus sûre est de la conserver chez soi, de préférence sur un ordinateur non connecté à Internet, voire sur un bout de papier ou une clé USB que l’on déconnecte après usage.

Il existe différents types de porte-monnaie sur ordinateur : ceux qui récupèrent une copie complète de la chaîne de transaction, qui ont besoin pour cela d’un espace disque et un volume réseau considérables, et les thin-clients, beaucoup plus simples à mettre en œuvre mais moins sûrs car dépendant d’un réseau de serveurs intermédiaires. Je n’entrerai pas ici dans les détails.

Sur la création de couples de clés pour porte-monnaie, je recommande le fascinant bitaddress.org qui montre une quantité de possibilités.

La volatilité

L”inconvénient le plus visible du Bitcoin est la variabilité de son cours de change avec les monnaies classiques, soumis à beaucoup d’aléas, paniques et manipulations, comme un cours de bourse, puisque ne dépendant que de transactions privées de gré à gré. Cette volatilité est renforcée par le nombre limité de Bitcoins en circulation et par le faible volume relatif des transactions.

Ci-dessous, voici un graphe de cours montrant en particulier la dernière bulle Bitcoin, avec l’envolée de 100€ à près de 900€ en novembre 2013, suivie d’une chute récente, qui n’est pas la première ni certainement la dernière.

Cette chute est due à la rumeur lancée ce week-end par une blague probablement pas désintéressée : le site directory.io laissait entendre qu’il avait cassé le système des clés privées. Apparemment, beaucoup de possesseurs de Bitcoins ont paniqué et ont revendu.

 

bitcoincharts

(cliquer pour agrandir)

source: Bitcoincharts.com http://bitcoincharts.com/charts/mtgoxEUR#rg360ztgSzm1g10zm2g25zv

Cours du jour BTC/EUR :

Creative Commons License
This chart is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.

Comment obtenir des Bitcoins ?

Il existe deux façons d’avoir des Bitcoins :

  1. en obtenir de quelqu’un qui en possède déjà ;
  2. être mineur, c’est à dire entrer dans le système de validation des blocs de transaction. Cela demande des moyens informatiques non négligeables. En échange de quoi, les mineurs sont rémunérés par la création de monnaie et par des commissions sur les transactions.

Le point 2 n’étant pas accessible au commun des mortels, à qui acheter des bitcoins ?

On peut déjà en échanger facilement avec des amis, le système a été conçu exactement pour cela.

On pourrait espérer également, pour les gens qui n’ont pas d’amis ou pas d’amis branchés, qu’il existe des bureaux de change “classiques” où l’on pourrait obtenir des Bitcoins en échange d’une monnaie classique, à un cours plus ou moins officiel, et sans formalité.

En fait, en raison sans doute de la variabilité des cours, il semble que personne n’ait pris le risque de lancer un tel bureau de change.

Les plateformes disponibles se contentent donc d’être des places de marché, des intermédiaires de confiance entre un vendeur et un acheteur, avec un fonctionnement similaire à celui des bourses : on place une transaction d’achat ou de vente, à un prix maximal ou minimal, et on attend qu’une contrepartie se présente. La place de marché tient trace des transactions en attente, et publie les cours le plus élevé et le plus bas, et le dernier cours du jour.

On peut citer par exemple :

  • le français bitcoin-central.net
  • le japonais mtgox.com, sans doute le plus connu  (je le croyais états-unien, merci à Stéphane Bortzmeyer et Martin Korolczuk pour la rectification)
  • le tchéquo-londonien (?) btc-e.com. Curieusement BTC-E est qualifié ici et là de Bulgare, alors que le détenteur du site indique un compte dans une banque à Prague (République Tchèque) pour une adresse postale à Londres (Royaume-Uni).

Et last but not least, le premier distributeur automatique de Bitcoins a vu le jour à Vancouver le mois dernier. Il s’agit sans doute du moyen le plus simple d’obtenir des Bitcoins à ce jour. Le distributeur propose même de créer un porte-monnaie à la volée, pour ceux qui n’en disposent pas encore.

Comment dépenser les Bitcoins ?

Une fois obtenu des Bitcoins, on peut se contenter de les conserver et de jouer avec. Mais on peut également les dépenser dans quelques magasins en ligne, mentionnés par exemple dans cet article de CNBC.

On peut encore les céder sur une bourse d’échange.

Une autre applications intéressante du Bitcoin est le transfert international sans frais avec change : en se servant uniquement du Bitcoin comme monnaie intermédiaire entre deux monnaies classiques, on peut réaliser des virements quasi instantanés d’un bout à l’autre de la planète. Le Bitcoin n’étant utilisé que pendant un court moment, la variabilité de son cours n’est pas un gros problème.

Et enfin, on peut s’en servir pour rémunérer des petits services, comme des blogs par exemple. Vous pouvez ainsi m’en donner quelques uns (cf adresse ci-dessous) si l’article vous a intéressé 🙂

Bitcoin, anonyme ? Pas vraiment

On lit ici ou là que le Bitcoin serait anonyme, mais attention : pas au sens où on l’entend habituellement.

En effet, si la relation théorique entre un porte-monnaie Bitcoin et son propriétaire n’est connue que de lui seul, puisque prouvée uniquement par la détention d’un secret mathématique,  il se dévoile plus ou moins lors des transactions qu’il effectue qui, comme on l’a vu, sont publiques par construction depuis l’origine du système. Le site blockchain.info permet ainsi de consulter toutes les transactions. Il est cependant éventuellement possible de compresser a posteriori la chaîne, en en faisant disparaître les transactions devenues superflues.

Le Bitcoin a donc un niveau de confidentialité très différent du système bancaire classique, où à l’exception de quelques paradis fiscaux l’identité des détenteurs et le détail des transactions ne sont disponibles qu’à la banque et aux autorités.

Ainsi, il est facile de consulter les transactions des porte-monnaie associés aux articles de blog suivants pour recevoir des dons :

http://www.rfc1149.net/blog/2013/05/02/why-bitcoin-transfers-are-not-instantaneous/ => https://blockchain.info/address/17Kr97KJNWrsAmgr3wJBVnLAuWqCCvAdMq

http://h16free.com/2013/11/28/27544-regardons-au-dela-de-la-bulle-bitcoin => https://blockchain.info/address/1EXgo7U3UA17u7njFK437ApCtsJvA7LdRB

Le porte-monnaie pour les dons suite à la blague de directory.io : https://blockchain.info/address/1Bv8dN7pemC5N3urfMDdAFReibefrBqCaK

Et celui qui correspond à cet article : https://blockchain.info/address/1Nb4aJWgAUAqMUCzeF2vTTDUNVNTM5ak42

Une expérience intéressante…

Bitcoin, malgré des défauts évidents qui en rendent l’utilisation délicate dans la vie de tous les jours (je n’y convertirai certainement pas toutes mes économies), a le mérite d’avoir démontré la faisabilité d’une monnaie électronique et collaborative, sans banque centrale, qui n’allait pas de soi. Cela fait déjà grincer les dents des plus dogmatiques, ce qui n’est pas pour me déplaire. Ça ne peut pas marcher parce qu’il n’y a pas d’État. Euh, mais pourquoi ? Parce que. Ah, d’accord.

Déjà, de nouvelles crypto-monnaies suivent son exemple avec quelques adaptations mineures, comme le Litecoin (LTC).

Évidemment, personne ne peut garantir avec certitude qu’il n’existe pas une vulnérabilité essentielle qui puisse faire vaciller ou s’écrouler tout l’édifice (ce qui s’est vu aussi avec des monnaies classiques). On peut seulement constater que le système a tenu presque 5 ans sans encombre.

Il est probable que nous entendrons régulièrement prononcer sa mort prochaine ou son inutilité, comme cela a été le cas à maintes reprises pour l’Internet, autre invention d’individus peu recommandables.

À ce jour je ne détiens toujours pas un seul (ni même une seule fraction de) Bitcoin, les places de marché suscitées n’étant pas accessibles sans des procédures de validation qui prennent plusieurs jours. Alors si vous souhaitez avoir la bonté de me virer quelques fractions de Bitcoin afin que je puisse jouer moi aussi, voici ci-dessous les références de mon porte-monnaie. Merci !

1Nb4aJWgAUAqMUCzeF2vTTDUNVNTM5ak42

bitcoin:1Nb4aJWgAUAqMUCzeF2vTTDUNVNTM5ak42

Références

Merci à Samuel Tardieu, Hashtable, Stéphane Bortzmeyer, Turblog, et bien sûr l’indispensable Wikipédia, pour leurs articles, avis et conseils éclairés.

Un historique sur les origines de Bitcoin : The rise and fall of Bitcoin

Une analyse intéressante : Regardons au delà de la bulle Bitcoin

Un point de vue sur le rôle supposément indispensable de l’État : A Prediction: Bitcoin Is Doomed to Fail

 

Bad idea: Gmail now discriminates against mail servers without an IPv6 reverse

This new gem is from the SMTP Gmail FAQ at https://support.google.com/mail/answer/81126?hl=en

(Fun note: they call it the “Bulk Senders Guidelines”… hence apparently anyone running their own personal mail server falls in that category…)

“Additional guidelines for IPv6

 

  • The sending IP must have a PTR record (i.e., a reverse DNS of the sending IP) and it should match the IP obtained via the forward DNS resolution of the hostname specified in the PTR record. Otherwise, mail will be marked as spam or possibly rejected.
  • The sending domain should pass either SPF check or DKIM check. Otherwise, mail might be marked as spam.”

I happen to be running my own mail server, and I happen to also be IPv6-connected, and finally I happen to be lacking a reverse DNS delegation for IPv6 because my ISP (Free) didn’t yet bother providing me with one.

I’m happier than most as my mail is sent through the eu.org server, which happens to get its mail accepted by Gmail. But it ends up tagged as “spam”.

I’m not the only one in France. OVH is reported as having the same problem.

So what are my points?

  • obviously, my ISP should provide me with a correctly delegated IPv6 reverse… at some point, of course the sooner would be the better.
  • but, as has been determined for over 15 years now with IPv4, refusing mail based on a lacking reverse delegation is counter-productive… since spammers statistically tend to send spam from hosts with a reverse more often than legitimate users!
  • so measures like the above end up bothering legitimate users more than spammers.

So I hope Google will step back on this one, whether or not the reverse problem gets fixed.

 

 

 

Sexualité, Internet et libertés

Dans la série des collisions-coq-à-l’âne dont j’ai la spécialité…

couv-sexlibris

Alors que la sénatrice EELV Esther Benbassa propose une « loi sur la liberté de l’Internet » (comprendre, en français non politique : une loi restreignant la liberté), voici un livre qui n’a en apparence rien à voir avec ce qui précède, que j’ai découvert récemment, qui m’a beaucoup plu, mais dont je n’aurais pas forcément eu l’idée de parler ici.

Il s’agit du dictionnaire « Sexe Libris » de Camille, qu’on ne présente plus (ce que je fais donc) : “personnage épicène” selon sa propre description, on pourrait aussi dire “nom de plume”, qui a fondé la rubrique Rue69 sur la sexualité à Rue89 et maintenant Sexpress sur l’Express…

Pour citer l’avant-propos de Camille : « ce dictionnaire vise à conduire les lecteurs à s’interroger sur leurs représentations autour des questions de genre et de sexualité, et à travers elles sur la société ».

C’est David Abiker, dans la préface, qui m’a donné le lien (encore un mot à sens partagé) manquant avec ce blog. Internet, d’une part, et la liberté, d’autre part :

« Partout où la sexualité est (ou a été) réprouvée, cachée, humiliée, sanctionnée, on a souffert et on souffre encore d’un recul des libertés. Partout où le sexe est en cause, où il est redouté et donc combattu comme s’il était la marque du mal, on constate une stagnation des droits de la personne. Partout où la politique a fait du sexe un ennemi, la liberté a cédé du terrain dans tous les autres domaines, à commencer par ceux des droits de l’homme et de la femme ».

Maintenant relisez ce qui précède en remplaçant « sexualité » et « sexe » par « Internet »…

Le livre est très agréable à lire, loin de l’idée rébarbative que l’on se fait d’un dictionnaire. Il s’agit d’un cocktail bien écrit, tour à tour sérieux, coquin, bizarre, drôle, alternant références légales, citations savoureuses et traits d’humour, avec un énorme travail de (coureur de ?) fond.

Toutes les entrées comportent des liens “Lire aussi”, on peut ainsi se laisser porter agréablement de sujet en sujet. Je n’ai pas vérifié si le graphe ainsi constitué était connexe.

La postface judicieusement titrée « Post coitum », sorte de making-of et bêtisier, est savoureuse… particulièrement pour l’auto-contradictoire section “je n’ai pas osé”.

Plutôt que vous citer un extrait particulier, puisque tout est bon (…), j’ai choisi de vous donner des listes d’entrées par thème, les titres vous donneront peut-être la curiosité d’aller voir l’envers du décor ;). C’est toujours bien écrit et surprenant, un style clair et concis.

Et si vous voulez des extraits, vous pouvez en consulter ici sur Amazon.com, pas sur amazon.fr assez curieusement.

(PS l’image ci-dessus est un lien direct vers Amazon.fr)

Pour geeks : Album de la Comtesse, Apple, Audiard (Michel), Censure, Chatroulette, Chocolat, CNC, Correspondance, Facebook, Google, Minitel rose, Second Life.

Pour les gourmands : Chocolat, Cuisine, Manger.

Sur les questions de censure : Apple, Censure, Despentes (Virginie), Pornographie, Origine du monde (l’).

Politique et législation : Censure, Divorce, Loi, Mariage, Parenthèse enchantée, Prostitution, Protection des mineurs.

Pour les usagers du rail (sic, mais le non-ferroviaire) : Blanc-Bleu.

Religion : Emmanuelle (Sœur), Jean-Paul II, Religion, Urbain.

Improbables ou m’ayant particulièrement étonné : Emmanuelle (Sœur), Foot, Giscard d’Estaing (Valéry), Grève, Guerre, Ousepo, Piscine.

Installation de la fibre (FTTH), suite de la saison 5

(Suite du parcours du combattant de l’abonné FTTH français en copropriété)

Les choses avancent : la nouvelle résolution d’assemblée générale a été votée le 17 décembre, donnant mandat au syndic et au conseil syndical pour signer les conventions de pose avec un opérateur d’immeuble quelconque (résolution sans nom d’opérateur afin de pouvoir continuer en cas de désistement sans avoir à attendre la prochaine AG ni une assemblée générale extraordinaire).

La convention SFR va donc être signée et envoyée incessamment.

Suite : FTTH en France, saison 6 : du rififi chez le syndic, relance du dossier et repérage v2

 

Petits meurtres de liens entre amis : la presse, le ministère et Google News

Vous avez peut-être entendu parler des demandes d’une partie de la presse française vis-à-vis de Google, ainsi motivées :

  1. Google News indexe les articles de presse
  2. Google gagne de l’argent avec ces articles
  3. La presse, en difficulté, a besoin d’argent au delà de ses aides, publicités et abonnements…
  4. donc Google doit reverser à la presse française sa part « légitime »

(par la suite pour alléger je parle de “la presse”, mais il faut savoir que le lobbying en question se limite à quelques grands journaux parisiens liés au SPQN, ne mettons donc pas tout le monde dans le même panier)

Munie de cette argumentaire, la presse a donc proposé un projet de loi au ministère de la Culture et de la Communication, pour lui demander de légiférer dès que possible, ce à quoi il a commencé à s’employer. Le projet en question n’est pas public, mais sa première version a fuité grâce à Télérama. Au moment de cette fuite, on a appris qu’il ne s’agissait que d’un document de travail déjà périmé, la version à jour étant encore aujourd’hui tenue secrète et réservée à la presse et au ministère (P. Jannet sur twitter : “il avance, mais je prefererai parler avec Google avant …“)

Nous avons néanmoins eu droit à quelques détails sur les changements, qui révèlent la stratégie des lobbyistes. J’y reviens plus loin.

Le premier problème, c’est que l’argumentaire de la presse prend l’eau littéralement dans tous les sens :

  1. Google News ne permet pas de lire les articles car il ne fournit que le titre et un début de phrase, il faut aller sur le site du journal qui a publié l’article ;
  2. Google ne gagne pas d’argent avec cette activité : il n’y a aucune publicité sur Google News ; et Google ne gagne ni plus ni moins d’argent sur son moteur de recherche habituel avec la presse qu’avec les autres types de contenus indexés ;
  3. Google fournit gratuitement ce service d’indexation et de recherche ;
  4. C’est la presse elle-même qui gagne de l’argent avec ses articles, en général en publiant sur la même page des publicités ;
  5. Mieux, Google attire des lecteurs sur les articles en question, permettant donc déjà à la presse de gagner plus d’argent qu’en l’absence d’indexation.

Bref, le ministère de la Culture a beau soutenir contre vents et marées, par construction de ses missions et par principe, les lobbyistes de la presse, il faut peut-être que l’argumentaire tienne la route, et à l’évidence ce n’est pas le cas.

La position de Google a été connue assez rapidement, et elle tombe sous le sens. Vous ne souhaitez pas que l’on vous indexe gratuitement ? Eh bien ce n’est pas grave, on va cesser de vous indexer, car nous ne souhaitons pas vous payer quoi que ce soit (cela a déjà été pratiqué avec les journaux belges dans des circonstances similaires ; ceux-ci ont tenu trois jours).

Nous avons aussitôt eu droit à quelques déclarations indignées, notamment de Laurent Joffrin du Nouvel Observateur, s’étranglant que Google ose menacer ainsi de « censure » la presse locale : non seulement Google devrait payer pour l’indexation, mais il devrait en plus en tant que service d’« ‘intérêt général » être obligé d’indexer, donc de payer. Le système parfait.

Les lobbyistes ayant vu venir la réponse de Google et sa logique implacable, l’argumentaire a été largement modifié. Je rermercie Philippe Jannet (consultant, directeur général de ePresse. fr, ex-PDG du Monde Interactif, ex-DG numérique des Echos, ex-Président du Geste) de me l’avoir signalé  dans nos discussions sur Twitter. On peut lire chez Libération son article de samedi : “Oui, Google capte la valeur créée”. Cet article, à la différence de celui de Laurent Joffrin, a la franchise de reconnaître que tout cela n’est qu’une histoire de gros sous, et rien d’autre. C’est Philippe Jannet lui-même qui insiste sur le pivot crucial, sur Twitter :  « j’ai mis moteur de recherche… Agrégateur c’est pas pareil », en réponse à quelqu’un qui lui demandait pourquoi cibler “Google” plutôt que “les agrégateurs”.

Google News ne vend pas de publicité et ne gagne donc pas d’argent ? Qu’à cela ne tienne, on va arrêter de parler de Google News et d’agrégateurs, on va maintenant parler de Google qui lui, à l’évidence, gagne beaucoup d’argent et pratique l’« optimisation » fiscale, ce qui justifie par avance une taxation, fût-elle au profit exclusif d’intérêt privés.

Le lien entre l’affichage sur Google News et la publicité vendue par Google Search est inexistant ? Aucune importance, on invente de toutes pièces une explication à base de « sémantique » de l’algorithme d’indexation, qui en extrayant automatiquement le sens des articles de la presse, permettrait à Google d’améliorer la qualité de la réponse (on ne sait pas comment), donc de générer plus de revenu (on ne sait pas comment non plus).

Mais c’est un gros mensonge car l’algorithme de Google, dont les grandes lignes sont bien connues, ne fonctionne pas du tout comme cela.

Second écueil passé sous silence au bénéfice de la rhétorique, les articles de presse n’ont pour un moteur de recherche ni plus ni moins d’intérêt que les pages « normales » du web. Mais ce fait est évidemment occulté, car il s’agit bien de demander une taxe au profit de la presse, pas une taxe générale sur les liens du web qui, pour le coup, n’aurait strictement aucune chance d’être votée, et a fortiori appliquée.

Bref, on ne sait trop comment Philippe Jannet arrive à la conclusion suivante, mais c’est celle qui l’intéresse et qui va tenir lieu de justification pour la suite du lobbying : « En clair, grâce aux contenus de la presse en ligne, Google améliore jour après jour son revenu. ».

Au total ce nouvel argumentaire ne tient en réalité pas plus la route que le précédent. Va-t-il sauver suffisamment les apparences pour convenir au ministère de la Culture ?

Mais sur le fond, le plus grave, c’est que la presse demande donc que soit établi à son bénéfice exclusif un précédent : « la mise en place d’un droit voisin » sur les liens du web. Autrement dit il y aurait les « bons » contenus bénéficiant de reversement de taxes parce qu’ils proviennent de professionnels encartés, et les « mauvais » contenus, tous les autres (on note à ce propos que la presse en ligne se bat depuis des années pour un alignement de ses droits avec ceux de la presse papier, considérée de facto comme plus « noble »). Même avec beaucoup d’optimisme, difficile d’imaginer comment cela pourrait être bénéfique pour quiconque.

Ce lundi, Eric Schmidt (président exécutif de Google) est reçu par la ministre, Aurélie Filippetti, après que le président Hollande ait déclaré dans le courant de la semaine dernière à des représentants de la presse que la loi demandée serait votée au plus tard en janvier 2013. Autrement dit, la conclusion est déjà écrite, et maintenant nous allons négocier.

 

 

 

IPv6 ICMP “packet too big” filtering considered harmful

If you intend to seriously run Internet servers or firewalls in the future (hence, IPv6 servers and firewalls), please read this.

This problem is so well-known, so old and yet still so unfixed and pervasive nowadays that, after pulling my hair for days on many hanging or time-outing IPv6 sessions, I felt I had to write this.

Executive summary: there are a huge number of sites with misconfigured firewalls who filter out “ICMP6 packet too big” packets. This breaks Path MTU discovery, causing hanging or broken IPv6 sessions.

Many sites unknowingly assume that the Internet MTU is at least 1500 bytes. This is wrong, whether in IPv4 or IPv6.

Many Internet hosts are connected through tunnels reducing the real MTU. Use of PPPoE for example, on ADSL links, reduces the MTU by a few bytes, and use of 6rd (“6 rapid deployment” tunneling) reduces it more than that. As 6rd is used extensively in France (Free ISP), this is a big problem.

1. The symptom: hanging IPv6 connections

Here’s a sample capture for a request where the server has more than 1 data packet.

08:39:57.785196 IP6 2a01:e35:8b50:2c40::7.39738 > 2001:xxx.43: S 165844086:165844086(0) win 65535 <mss 1440,nop,wscale 3,sackOK,timestamp 901

08:39:57.807709 IP6 2001:xxx.43 > 2a01:e35:8b50:2c40::7.39738: S 883894656:883894656(0) ack 165844087 win 14280 <mss 1440,sackOK,timestamp 2377433946 90108,nop,wscale 7>

08:39:57.808452 IP6 2a01:e35:8b50:2c40::7.39738 > 2001:xxx.43: .ack 1 win 8211 <nop,nop,timestamp 90132 2377433946>

08:39:57.808655 IP6 2a01:e35:8b50:2c40::7.39738 > 2001:xxx.43: P 1:9(8) ack 1 win 8211 <nop,nop,timestamp 90132 2377433946>

08:39:57.833052 IP6 2001:xxx.43 > 2a01:e35:8b50:2c40::7.39738: .ack 9 win 112 <nop,nop,timestamp 2377433972 90132>

08:39:57.888981 IP6 2001:xxx.43 > 2a01:e35:8b50:2c40::7.39738: P 1:1025(1024) ack 9 win 112 <nop,nop,timestamp 2377434026 90132>

(missing packet here : 1025:2453 containing 1428 bytes)

08:39:57.889315 IP6 2001:xxx.43 > 2a01:e35:8b50:2c40::7.39738: FP 2453:2723(270) ack 9 win 112 <nop,nop,timestamp 2377434027 90132> 08:39:57.890100 IP6 2a01:e35:8b50:2c40::7.39738 > 2001:xxx.43: .ack 1025 win 8211 <nop,nop,timestamp 90213 2377434026,nop,nop,sack 1 {2453:2723}>

(session hangs here, unterminated because of the missing bytes)

This is difficult to debug as modern Unices have a “TCP host cache” keeping track of Path MTUs on a host-by-host basis, causing the problem to suddenly disappear. in unpredictable ways depending on the size of transmitted data.

2. A sample successful session with working trial-and-error Path MTU discovery

10:09:55.291649 IP6 2a01:e35:8b50:2c40::7.40948 > 2a01:e0d:1:3:58bf:fa61:0:1.43: S 1032533547:1032533547(0) win 65535 <mss 1440,nop,wscale 3,sackOK,timestamp 5487603 0>

10:09:55.291787 IP6 2a01:e0d:1:3:58bf:fa61:0:1.43 > 2a01:e35:8b50:2c40::7.40948:S 3695299654:3695299654(0) ack 1032533548 win 65535 <mss 1440,nop,wscale 3,sackOK,timestamp 3185067848 5487603>

10:09:55.316234 IP6 2a01:e35:8b50:2c40::7.40948 > 2a01:e0d:1:3:58bf:fa61:0:1.43: . ack 1 win 8211 <nop,nop,timestamp 5487628 3185067848>

10:09:55.317965 IP6 2a01:e35:8b50:2c40::7.40948 > 2a01:e0d:1:3:58bf:fa61:0:1.43: P 1:9(8) ack 1 win 8211 <nop,nop,timestamp 5487628 3185067848> 10:09:55.417301 IP6 2a01:e0d:1:3:58bf:fa61:0:1.43 > 2a01:e35:8b50:2c40::7.40948: . ack 9 win 8210 <nop,nop,timestamp 3185067974 5487628>

Now the big packet that was missing in the broken session above:

10:09:56.084457 IP6 2a01:e0d:1:3:58bf:fa61:0:1.43 > 2a01:e35:8b50:2c40::7.40948: . 1:1429(1428) ack 9 win 8210 <nop,nop,timestamp 3185068641 5487628>

The 6rd gateway replies with an ICMP6 message:

10:09:56.085221 IP6 2a01:e00:1:11::2 > 2a01:e0d:1:3:58bf:fa61:0:1: ICMP6, packet too big, mtu 1480, length 584

Missing data is retransmitted by the server using a lower packet size (and an entry is created in the server’s host cache to remember that):

10:09:56.085489 IP6 2a01:e0d:1:3:58bf:fa61:0:1.43 > 2a01:e35:8b50:2c40::7.40948: . 1:1409(1408) ack 9 win 8210 <nop,nop,timestamp 3185068642 5487628> 10:09:56.085522 IP6 2a01:e0d:1:3:58bf:fa61:0:1.43 > 2a01:e35:8b50:2c40::7.40948: . 1409:1429(20) ack 9 win 8210 <nop,nop,timestamp 3185068642 5487628>

Then the connection goes on to correct completion (no use showing the packets here).

Interestingly, trying an identical request then shows that the MSS negotiation takes the host cache into account, with a MSS set to 1420 instead of 1440 from the start in the server reply:

10:10:14.053218 IP6 2a01:e35:8b50:2c40::7.20482 > 2a01:e0d:1:3:58bf:fa61:0:1.43: S 2231600544:2231600544(0) win 65535 <mss 1440,nop,wscale 3,sackOK,timestamp 5506365 0>

10:10:14.053382 IP6 2a01:e0d:1:3:58bf:fa61:0:1.43 > 2a01:e35:8b50:2c40::7.20482: S 2676514636:2676514636(0) ack 2231600545 win 65535 <mss 1420,nop,wscale 3,sackOK,timestamp 1128201317 5506365>

3. The simple fix

The fix is dead simple: just make sure that your filters are configured so that ICMP6 “packet too big”, type number 2, messages are correctly transmitted end-to-end, and correctly handled.

 

Le parcours du combattant de l’abonné FTTH français en copropriété

(suite de mes pérégrinations débutées ici)

Les opérateurs délivrant de la fibre jusqu’à l’abonné (dite “FTTH”) sont au nombre de 3 :

  • FT/Orange
  • SFR
  • Free

On peut y ajouter Numéricâble qui est un cas particulier. Numéricâble est un cablo-opérateur de télévision qui a ajouté à son offre, à la fin des années 90, l’accès à Internet utilisant la technologie DOCSIS. Il ne délivre pas de la fibre jusqu’à l’abonné mais du câble coaxial cuivre pour télévision (quoiqu’il semblerait que Numéricâble fournisse maintenant de la “vraie” fibre FTTH mais je n’en sais pas plus).

Alors comment obtenir la fibre chez soi ?

Signature d’une convention avec un opérateur d’immeuble (OI)

Pour cela, il faut procéder au vote d’une résolution en assemblée générale. Le plus économique est de le faire lors de l’assemblée générale annuelle, afin de ne pas multiplier les convocations coûteuses.  Cette résolution donne l’autorisation au syndic d’immeuble de signer une convention avec un opérateur.

Or, les opérateurs se déplacent rarement avant d’avoir une convention signée, et ne peuvent vérifier la faisabilité technique qu’en se déplaçant.

Par ailleurs, comme je l’ai expliqué précédemment, Free s’est retiré de l’activité d’opérateur d’immeuble, et les autres opérateurs semblent éviter de (ou ne peuvent) se rendre dans les immeubles où Numéricable a été choisi comme opérateur d’immeuble.

Les deux seuls fournisseurs d’accès également opérateurs d’immeuble existant à Paris (et a priori c’est le cas par défaut dans toutes les grandes villes, à part les exceptions locales) à l’heure actuelle sont donc SFR (voir ici) et Orange (ici).

Mais il existe la possibilité d’être simplement opérateur d’immeuble sans être fournisseur d’accès, c’est par exemple ce qui se passe dans les Hauts de Seine avec Sequalum (merci à J.-B. Favre). On peut même imaginer des syndics d’immeuble qui seraient leur propre opérateur.

De plus, il est évidemment impossible d’être certain qu’un opérateur pressenti installera effectivement la fibre. Il a 6 mois pour le faire, après quoi la convention est caduque et il faut procéder à la signature avec un autre opérateur, en général à l’assemblée générale annuelle suivante. Sauf convocation exceptionnelle on peut donc perdre un an, c’est ce qui est arrivé dans ma copropriété.

Il est donc conseillé de rédiger une résolution d’AG “générique”, du style “accord de principe pour signer une convention avec un opérateur pour la pose de fibre, avec pouvoir au conseil syndical pour le choix de l’opérateur”, plutôt qu’une résolution nommant explicitement un opérateur.

Arrivée de l’opérateur d’immeuble

Une fois la convention signée, dans un délai de 6 mois, l’opérateur va venir :

  • effectuer un repérage des lieux pour le câblage horizontal (arrivée en bas d’immeuble) et le câblage vertical (relier les étages) et faire viser un dossier de travaux par le syndic d’immeuble ;
  • tirer une fibre de son réseau métropolitain jusqu’au bas d’immeuble
  • installer en bas d’immeuble un “point de mutualisation” permettant aux autres opérateurs de desservir l’immeuble
  • installer le câblage dit “vertical” pour desservir chaque bâtiment et chaque étage

Ces opérations prennent un certain temps. La pose effective du câblage vertical demande 1 ou 2 jours de travaux.

Création d’un accès abonné

Tout n’est pas encore prêt pour s’abonner à n’importe quel opérateur. !

  • cas le plus simple : on souhaite s’abonner à l’opérateur d’immeuble. Celui-ci envoie alors un technicien qui va procéder au raccordement de l’appartement, en posant un câble optique de l’armoire de palier (desservie en câblage vertical) jusqu’à l’appartement. Eh oui, les appartements ne sont pas systématiquement raccordés complètement lors du câblage vertical, en raison des coûts induits et des contraintes logistiques d’accès !
  • cas plus compliqué : on souhaite s’abonner à un autre opérateur.. C’est possible. Il faut alors que celui-ci pose à son tour une fibre horizontale jusqu’au bas d’immeuble, ou qu’il réutilise une fibre horizontale existante posée par un opérateur déjà présent (ce cas semble rare mais il existe entre SFR et Orange, voir les commentaires), puis se mette en contact avec l’opérateur d’immeuble pour être raccordé au point de mutualisation local. Il ne lui reste alors plus, comme ci-dessus, qu’à poser du câblage d’étage pour desservir l’appartement désiré.

Les délais ?

Il faut d’abord penser à intégrer une résolution à l’ordre du jour de l’assemblée générale suivante. Délai légal de convocation : 1 mois (il n’y a pas si longtemps, il me semble me souvenir que c’était seulement 2 semaines…)

Puis, si la résolution est votée, signer et envoyer la convocation, et attendre le passage de l’opérateur pour le repérage : de 1 semaine à 1 mois (estimation au doigt mouillé)

Puis pour les travaux : de 1 semaine à un mois pour attendre son tour (estimé aux entrailles de poisson), puis 1 ou 2 jours de pose horizontale + verticale.

Puis , pour un abonnement à l’opérateur d’immeuble ou un opérateur déjà présent : de 1 semaine à 1 mois (estimation marc de café), 1 ou 2 heures de pose.

Pour un abonnement à un autre opérateur non présent : repérage + pose fibre horizontale, de 1 à 3 mois (estimation astrologique), raccordement au point de mutualisation après accord avec l’opérateur d’immeuble : quelques semaines, pose chez l’abonné : idem ci-dessus.

Les totaux sont assez déprimants :

  • presque 2 mois d’attente dans le meilleur des cas, si l’on a la chance de s’y prendre juste avant l’AG et dans les délais.
  • probablement plutôt 3 à 4 mois si l’on fait vite côté immeuble et syndic mais que l’opérateur prend du temps ;
  • au pire, 8 à 9 mois si l’on fait vite côté immeuble et syndic mais que  l’opérateur ne réalise les travaux qu’à la fin de son délai de 6 mois
  • à quoi il faut ajouter 11 mois pour attendre la prochaine AG annuelle si elle vient juste d’avoir lieu

Ajoutez un mauvais suivi de la part du syndic (cas très fréquent), une mauvaise compréhension des procédures, un opérateur faisant faux bond, et vous pouvez facilement perdre des années supplémentaires.

Ainsi dans notre immeuble les démarches (signature de la première convention) ont été initiées en mars 2008 ; 4 ans 1/2 plus tard il faut tout reprendre à zéro.

Conclusions

  • ne pas s’étonner de la faible demande pour la fibre, vu le parcours du combattant qui précède et demande une sérieuse motivation de la part du syndic d’immeuble et conseil syndical, les opérateurs ne venant absolument solliciter personne.
  • ne pas s’étonner du retard français

Sans être grand devin, il est facile de voir que ce retard ne sera pas résorbé dans les années qui viennent, bien au contraire, puisque :

  • aucun changement législatif ou organisationnel ne semble actuellement en préparation pour simplifier cette procédure ;
  • le sujet qui intéresse l’ARCEP et les opérateurs est le déploiement du VDSL2, qui à moindre coût donnera une “seconde vie” au cuivre du siècle dernier ;
  • les opérateurs préfèrent investir dans la téléphonie mobile 4e génération (LTE), potentiellement plus rémunératrice.

Et grands merci à @_Galak_ et @lprevosto (sur Twitter) ainsi que l’assistance SFR qui m’ont grandement aidé à mieux comprendre ce qui précède…

Quant à Orange, c’est l’électroencéphalogramme totalement plat, aucune nouvelle d’eux directe ou indirecte, 9 jours après le premier contact avec l’assistance qui m’a assuré afin de me forcer à raccrocher que l’on allait “me rappeler”.

Mise à jour : suites

FTTH en France, saison 6 : du rififi chez le syndic, relance du dossier et repérage v2

Installation de la fibre (FTTH), suite de la saison 5.

 

Signalspam, emailvision, gmail et le spam

(petit texte résumant/archivant un ensemble de tweets réalisés ce matin)

Ce matin, je tombe sur ce tweet de Stéphane Bortzmeyer : Si vous doutiez encore que SignalSpam, c’est du pipeau :  http://eric.bachard.org/news/index.php?post/2012/07/20/Une-histoire-de-spam-…-et-de-spammeurs

J’ai déjà parlé ici de SignalSpam.

Et en effet, en fouinant dans mon dossier de spam, je constate que le prestataire concerné (emailvision), dont SignalSpam se gargarise du partenariat, m’a envoyé 104 spams depuis 8 mois exactement, sans compter une newsletter expédiée pour le compte de Bouygues Télécom dont personne n’arrive à me désabonner depuis des mois, ni moi-même via les procédures prévues pour cela, ni le support Bouygues lui-même.

Bref, voici l’incantation pour mutt pour trier tout ça avant envoi à SignalSpam. Cela risque de ne pas servir à grand chose, mais c’est vite fait :

l ~h ^X-EMV-CampagneId:

Vérifiez les messages et marquez (tag : t) ceux qui sont effectivement des spams. 241 sur 261 dans mon cas, car emailvision est opérateur de newsletters pour des sociétés, ce qui lui permet de nier de toute responsabilité dans l’exploitation de listes d’adresses collectées par détournement de finalité. 241/261 est donc le ratio de spam et on voit que l’activité réelle hors spam est réduite à la portion congrue.

Soumettre (avec le script ci-dessous) à SignalSpam :

;| signalspam votremotdepasse

Mon script Python est là et fonctionne encore : http://signal.eu.org/blog/wp-content/uploads/2007/05/signalspam.txt

Google n’est pas en reste puisque ce même matin j’ai reçu 11 spams d’un compte Gmail parfaitement valide, via Google Groups, sans aucun lien abuse pour les plaintes.

Lossless import of MPEG-TS or HDV video files to iMovie

Here’s a little trick I learned and wanted to share. As it’s not complete, comments and additional hints are welcome!

The problem

I have a Canon HDV camcorder with many hours of HDV video. HDV is mpeg2-compressed video with a bitrate of about 25 Mbps.

I also have a MacOS X computer where I can run iMovie, Apple’s consumer-grade video editing application.

The camcorder video can be easily imported to FreeBSD using the built-in fwcontrol tool. It generates MPEG-TS files (mostly like IP TV channels) which read nicely in vlc, mplayer and other video tools. It’s easy and reliable.

The video can also be imported directly from the camcorder to iMovie, but it is painful and not adapted to easy archiving of the rushes. The import process is slow and buggy and you often have to rewind the tape and restart it.

I wanted to get the best of both worlds — fwcontrol’s easy import followed with iMovie editing.

But iMovie doesn’t know how to directly import MPEG-TS files. It can only import video from .mov (Quicktime) or .mp4 (MPEG4) containers. It’s difficult to know which video codecs are supported by iMovie but it seems to accept MPEG2, which means it can losslessly import HDV files, it’s just a matter of converting their container format from MPEG-TS to Quicktime.. It saves us from the slow, error-prone, lossy and painful process of transcoding.

So how do you do that?

The (mostly complete) solution

Here’s the incantation that mostly works for me. input.mpg is my MPEG-TS file; it can come from a fwcontrol import or from a IPTV capture (Freebox file for example); output.mov is the resulting Quicktime-container file:

ffmpeg -i input.mpg -acodec copy -vcodec copy output.mov

On my server (a double-core Intel Atom D525 processor with SATA disks, ie not a very fast machine) it converts at about 80-100 frames per second (3x to 4x real time), which is very fair (IO bound probably) and 12 to 20 times faster than transcoding the video.

From an IPTV capture you may have to explicitly transcode audio to AAC using -acodec libvo_aacenc instead.

Your second-best bet if the above doesn’t work is to let ffmpeg make a (much slower) almost-lossless transcoding to MPEG4, using option -sameq, yielding a bigger file (was almost twice as big as the original in my trials):

ffmpeg -i input.mpg -acodec copy -sameq output.mov

It works, but…

Why do I say it mostly works? Because there are two remaining gotchas:

  1. the original video timestamps (date and time of the video) are lost and set to the date and time of the conversion process — it’s constant and doesn’t even increment throughout the file duration. It is probably a ffmpeg bug. I tweaked the import with -copyts option but this apparently handles the time index from the camcorder (duration from the beginning of the tape). This may (or may not) be related to the following error message from ffmpeg: [NULL @ 0x806c1d920] start time is not set in av_estimate_timings_from_pts
  2. iMovie doesn’t seem to grok huge files. It works for a couple hundred megabytes, but not for a couple gigabytes. So you may have to split files take by take, and I don’t know how to do that easily, especially given the above regarding broken timestamps.

Thanks to Benjamin Sonntag for the excellent idea of using ffmpeg for this 😉

Comments and especially clues/solutions more than welcome 😉