Entropie anthropique

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

mardi 29 avril 2008

Conférence sur la Piraterie, à Bruxelles, avec des bouts de Olivennes dedans

Si des gens peuvent se rendre à Bruxelles, faîtes-vous invitez, et piratez de nombreux petits fours pour bibi s'il vous plaît. Toute une partie parlera du flicage de l'Internet (comprendre "industry cooperation") pour contrer les copies sauvages. Ce sera très certainement un exposé plus qu'une conférence apportant des choses intéressantes, car il y aura trois participants pour quarante-cinq minutes de parlotte. http://ec.europa.eu/internal_market/iprenforcement/index_fr.htm#conference

lundi 28 avril 2008

Comment changer le comportement de "new" dans ruby

Oui, c'est vrai, on utilise initialize nous dit Pouype, mais on peut tout à fait bidouiller avant de créer une instance en tournant autour de "new", voici le code:

 1 class Truc
 2   class << self #construction magique pour que "self" devienne la classe Truc qu'on est en train de créer, car alias marche sur les méthodes d'instances
 3     alias :oldnew :new
 4   end
 5   
 6   attr_accessor :bidule
 7
 8   def Truc.new
 9    p "salut"
10    t = Truc.oldnew #l'instance est créée maintenant là tout de suite, pas avant pas après
11    t.bidule = :chose
12    t #si on ne retourne pas t, alors ce sera :chose qui sera retourné
13   end
14 end
15
16 p Truc.new.inspect

Pour le commentaire, je dirais que c'est juste une preuve du concept, la méthode la plus propre est de créer une méthode de classe du style Truc.new_avec_prout qui à son tour appellera Truc.new .

Pour ceux qui se demandent comment ça se fait qu'on puisse faire ça, c'est qu'il n'y a pas de magie dans Ruby, les concepts de classes/objets/instances ne font pas d'exception à la règle (à ma connaissance). C'est entre autre pour cette raison que Ruby est un peu lent, mais ça prouve qu'il est cohérent et reste un joujou trop génial.

dimanche 27 avril 2008

Installer Slackware, le gros des étapes

A l'heure de "l'user friendly", il est toujours bon de revenir aux sources. Slackware, c'est une très belle distribution, elle laisse tout contrôle à l'utilisateur, et possède des concepts simples. Simples dans les concepts, mais pas forcément à la porté de tout le monde dans la réalisation.

L'installation (et configuration) Slackware est la suivante:

  • démarrage du CD
  • sélection de la langue de l'installation
  • partitionnement du disque
  • formatage des partitions, sélections des points de montages et de la partition swap
  • sélection et installation des packages
  • configurations supplémentaires (horloge, net, modem, environnement graphique, services auto-démarrés)
  • installation du boot-loader
  • mot de passe root
  • redémarrage (pas obligatoire si on fait un chroot, mais fortement conseillé)

A partir de là, l'utilisateur n'est plus guidé, à lui de se débrouiller, en ligne de commande. Coincé au runlevel 3, sans serveur graphique. Il devra:

  • ajouter un ou des utilisateurs/groupes
  • changer le /etc/inittab pour démarrer en mode graphique
  • configurer le serveur X avec xorgsetup (script pratique)
  • configurer le son avec alsaconf (script pratique)
  • lancer le serveur X ou redémarrer

Et voilà :) . Bien entendu, après on peut fignoler son kernel en le recompilant, il faut parfois rajouter un module pas chargé par défaut ou des firmwares, ainsi que du flash ou des drivers proprios si besoin.

Certes ce n'est pas évident, mais pour moi, ça reste un plaisir

Projets Ruby qui seraient bien

En vrac, et sans trop plus d'explications:

- un DSL pour générer des parsers de stream (avec possibilité de rajouter ses propres templates pour le langage de son choix)

- plein de scripts pour faire de la recherche / du tri d'information dans les gros volumes

- continuer Férus pour coder des petits jeux simplements

- conquérir le monde à l'aide de deux souris au génie génétique

- des librairies "à la" graphviz pour sortir du .svg

dimanche 20 avril 2008

Ruby - RSS - Hpricot + data mining : all your base are belong to us !

C'est ce que je me suis écrié lorsque j'ai touché à Hpricot.

Somebody set up us the bomb

Si vous ne connaissez pas Hpricot, c'est le moment ou jamais d'apprendre à l'utiliser. Pour la petite introduction, Hpricot est une extension Ruby qui permet de facilement et avec des performances plus que correctes, d'extraire et modifier les données des pages web. Hpricot supporte en partie plus que suffisante le X-Path et le CSS-Path. Et, comme je l'ai déjà dit, et je le répète donc, c'est en Ruby, donc très naturel.

En outre, Hpricot sait plutôt bien se débrouiller avec des sites mal codés, et non respectueux des standards du web. Bref, Hpricot est l'outil idéal pour un explorateur du web sour Ruby.

We get the signal

Le premier intérêt d'Hpricot est de pouvoir extraire des données d'un site pour, par exemple, les afficher sur un autre. Une fois qu'on connais la structure du site, on peut donc lui tirer les bouts qui nous plaisent, par exemple, pour afficher tous les titres des fils de discussions d'un forum phpBB du site A, tous les titres de blogs du site B et d'en faire un mélange à sa sauce. Ça ne reste pas toujours très sympa d'extirper juste les données d'un site sans lui renvoyer de traffic, mais Hpricot ne fait pas que le mal. Il permet par exemple de facilement créer un robot d'exploration du web en suivant tous les liens d'une page. Il pourrait permettre d'effectuer simplement des remplacements de liens inutiles, de classes CSS etc. afin par exemple, de faciliter l'accès au web pour des personnes avec des handycap (j'imagine le cas où une liste de 30liens est présente avant que le contenu ne soit facilement ateignable).

Main screen turn on

Passons sur Hpricot, nous y reviendront. Reparlons de Ruby, et n'oublions pas que fourni de base se trouve le module RSS. Celui-ci, comme Hpricot, permet de simplement lire des flux RSS et de raisonner non pas en xml mais en beaux concepts haut-niveau. Comme un RSS contient généralement des liens vers des pages web, et que, réciproquement, les pages web contiennent souvent des liens vers des flux RSS, on peut sans trop d'effort dire que Hpricot et RSS permettent de glaner simplement des tas d'information.

It's you !!

Prenons un exemple pratique. Si nous voulons avoir accès rapidement aux dernieres machinations machiavéliques de nos députés. Le site de l'Assemblée Nationale propose un intéressant flux RSS : http://www.assemblee-nationale.fr/rss/rss.xml. On peut donc facilement le parser avec Ruby. Puis, ouvrir les liens avec Hpricot et en ayant au préalable remarqué que les contenus intéressants sont au chemin Xpath /html/body/div[i]//p avec i prenant une valeur qui varie selon les pages, et tout le reste dans des balises paragraphes (je ne ferai pas de commentaire sur la propreté d'un tel code).

How are you gentlemen!! All your base are belong to us. You are on the way to destruction.

On n'a plus qu'a analyser le contenu de ses pages, pour tenter de déterminer les sujets chauds, quels député oeuvre dans quels domaines, quel est le langage à la mode (je passerai sur et vous laisserai trouver ce qu'est la fléxicurité) chez les faiseurs de loi. Ça permettrai de savoir si nos députés ont des tendances sécuritaires paranoïaques, peut-être de déceler les sujets chauds. Mais pour ça, je pense que la quantité de données sur le RSS seulement risque d'être pas assez, il faudrait passer un coup d'Hpricot sur toutes les archives pour récupérer tous les anciens débats, ce pourrait être intéressant de voir comment les mots des lois évoluent.

You have no chance to survive make your time. Ha Ha Ha Ha

Il ne me reste plus qu'à trouver les bons modules restants, ou les coder si besoin pour mettre en place un outil de surveillance des faits-et-gestes de nos zélites. Sans forcément rendre une base de donnée publique, pour pas s'embêter trop avec la CNIL, faire que chacun puissse se faire la sienne.

For great justice !

Du coup, si vous voulez faire un truc de ce genre avec ouam, proposez vous, moi j'ai déjà Take off my Zig.

dimanche 6 avril 2008

Rapport sur la propriété intellectuelle de Jacques Remiller

On se rappelait que Jacques Remiller voulait nous faire vivre dans un monde de bisounours en interdisant les jeux vidéos violents aux jeunes, sachant que la loi actuelle les protégeait déjà assez.

Désormais, voici son rapport sur la propriété intellectuelle, et sur la quasi ingérence de l'OMPI sur nos legislations, qui a conduit à l'adoption du très mauvais texte DADVSI et enfin au très controversé rapport Olivennes.

Pour faire court et simple, ces textes sont là pour adapter le droit d'auteur au monde numérique afin de lutter contre les copies non autorisées. La loi DADVSI sacralise les mesures techniques de protection, en punissant fortement les personnes qui proposent des logiciels pour s'affranchir de ces protections (on fera un petit court de sécurité informatique pour comprendre pourquoi la plupart d'entre-elles sont inefficaces). Quant au rapport Olivennes, il préconise de couper l'accès internet aux délinquants, de forcer les gens à s'équiper de matériel de surveillance (à leur frais, bien entendu). On sait déjà les dérives et abus possibles de ces matériels et logiciels de protection de contenus : une intrusion pure et simple dans la vie privée, comme les télécrans dans "1984" d'Orwell.

Dans tous ces textes acquis à l'industrie culturelle, aucun recours n'est offert aux consommateurs, tout cela pour protéger non pas les artistes, mais les producteurs et les actionnaires. Les consommateurs n'ont jamais pu savoir s'ils achetaient des droits sur un support, un enregistrement ou une oeuvre, avec les cadenas numériques, qu'ils le sachent : ils la louent. En plus, ils continuent de payer une redevance sur tous les supports numériques, pour rémunérer les artistes qu'on copierait éventuellement, la redistribution de cette redevance, contrairement aux taxes et aux impôts est complètement opaque.

A lire le rapport de M. le député J. Remiller, tout semble parfait et les droits des consommateurs sont soi-disant équilibrés avec ceux des exploitants. C'est complètement faux, le rapport est tronqué et passe sous silence les détails importants comme l'intéropérabilité des mesures, la redevance pour copie privée (quand bien même la copie est, de fait, interdite) les risques de dérives et les recours de la part des consommateurs. De même que l'information précise pour les utilisateurs des droits qu'ils ont lors qu'ils payent pour de la musique ou un film.

Pour ma part, je ne suis pas contre les formes de "protection" numérique intéropérable, je rajoute des guillemets car les formes de protection auxquelles je pense sont les traçages des fichiers. Cela dit il faudra également des gardes fous, d'une part, sur la responsabilité d'une personne si un fichier possède son empreinte (s'est-il fait volé son lecteur de musique ?) , d'autre part sur l'exercice du droit, qui doit être au main de l'état et non pas de milices privées du net (comme veut l'instaurer le rapport Olivennes).

Je vous invite à lire ce rapport à l'adresse suivante : http://www.assemblee-nationale.fr/13/rapports/r0777.asp . J'inaugure par la même ma section "lois pourries" de mon blog.