billitch

Bienvenue sur blog de billitch !
Du code, de la noise, et quelques pensées électrogènes...


mardi 27 octobre 2009

Citation

Unix and C are the ultimate computer viruses.
– Richard P. Gabriel (1991)

1. Le jeudi 5 novembre 2009à09:12, par rook

ça et conficker

2. Le vendredi 13 novembre 2009à18:16, par billitch

ouais mais conficker n'est qu'un pauvre ver profitant d'une misconception de Microsuft, donc périssable. Le C lui nous hante depuis plus de 30 ans...! C'est un ver à wetware il séduit les gens par sa nullité et les asservit. Ils écrivent des compilateurs pour, des tonnes de programmes bourrés de failles (conficker n'existe que grâce à la nullité de windows codé en C) et optimisent les processeur rien que pour lui..

3. Le vendredi 13 novembre 2009à18:35, par billitch

Joli palmares pour conficker qd même : "Le département de la Défense des États-Unis, le ministère de la Défense britannique et le ministère de la Défense français ont été attaqués par le ver. Au Royaume-Uni, il a infecté certains systèmes, dont le NavyStar/N* à bord de navires et sous-marins de la Royal Navy, et ceux de 800 ordinateurs d'hôpitaux de la région de Sheffield. En France, il a infecté Intramar, le réseau intranet de la Marine nationale, certains ordinateurs de la base aérienne 107 Villacoublay et de la direction interarmées des réseaux d'infrastructure et des systèmes d'information (DIRISI). Le virus aurait paralysé les 15-16 janvier 2009 les chasseurs Rafale de l'aviation navale, ce que dément le Ministère de la Défense français."

Mais pourquoi tous ces gens ont Windows ..? S'ils avaient investi un millième de ce qu'ils ont payé à MS ils auraient une OpenBSD en mode desktop pour tout le monde !


jeudi 15 octobre 2009

URI-Templates

Les URI-Templates ou URI-Modèles permettent de spécifier des URI dynamiques selon des variables et quelques opérateurs très simples.

C'est un travail en cours du W3C proposé par Joe Gregorio de chez Google et même si que la spécification est encore une ébauche il existe déjà des implémentations Python, Lisp, Ruby, Javascript, Java, ... C'est donc en passe de devenir un standard de-facto.

Le principe est très simple et donc puissant. Quelques exemples :

http://b.lowh.net/billitch/{categorie}/{post}
http://{lang}.wikipedia.org/Wiki/{article}
http://www.google.fr/{-join|&|q,ie,oe}
http://www.w3.org/{-listjoin|/|dirlist}

Vous l'aurez compris tout se passe entre accolades non échappées, mais pas de risque de collision avec les accolades d'une URL qui sont représentées par %7B. On y trouve alors soit un nom de variable, soit une opération qui commence par un tiret - et dont les arguments sont séparés par des |.

Les opérations spécifiées actuellement sont :

  • {-opt|val|var} donne la chaine foo si la variable bar n'est pas vide,
  • {-neg|foo|bar} donne la chaine foo si la variable bar est vide,
  • {-prefix|foo|bar} ajoute la chaine foo avant chaque élément de la variable bar (qui peut contenir une liste),
  • {-suffix|foo|bar} ajoute la chaine foo après chaque élément de la variable bar (qui peut contenir une liste),
  • {-join|foo|bar,baz,qux} produit nom=valeur pour chaque variable (qui ne doit pas contenir de liste) en utilisant foo comme séparateur,
  • {-list|foo|bar} assemble la liste contenue dans bar en utilisant foo comme séparateur.

C'est très simple : des chaines, des variables, des listes, des opérateurs. Pas de quote ni d'échappement, pas de fonctions, pas de programme, donc peu de risque de faille de sécurité ou de code non valide. Les tests unitaires devraient être simples à écrire alors pas d'excuse donc pour une implémentation ratée.

Un des intérêts de l'implémentation Common Lisp est qu'elle propose aussi l'opération inverse : la déconstruction d'URI. Le même template peut alors servir à parser une URI pour en extraire des variables. Un peu comme les routes.rb de Ruby On Rails.

1. Le dimanche 25 octobre 2009à02:26, par marco

Merci, pour cet article.

2. Le jeudi 29 octobre 2009à17:32, par billitch

J'ai commencé une nouvelle implémentation des URI-Templates en Common-Lisp :

http://github.com/billitch/cl-uri-templates

Au passage j'apprends git, c'est sympa =)

3. Le vendredi 30 octobre 2009à15:56, par Nouvelle Amazone

intéressant mais là tu m'a un peu largée... je préfére tes pensées éléctrogénes! ;)

4. Le mardi 3 novembre 2009à02:01, par billitch

Eh c'est la catégorie Science hein ;)

Je pense séparer mon blog en plusieurs "colonnes" un jour, car il ne vise pas toujours les mêmes lecteurs même si le flux groupé peut être intéressant pour ceux qui veulent me connaitre.


dimanche 11 octobre 2009

Epiphanie type

Un type c'est la capacité de passer d'une représentation à une autre.

Par exemple le type nombre entier permet de passer de la représentation en bits puissance de 2 à celle en base 10. Le type string permet de passer de la représentation en chaine de caractères à celle de texte graphique à l'écran. Le type cerveau humain permet de passer la représentation de texte graphique à celle de sons, d'images, de rêves, d'émotions, d'inepties irrationnelles et plein d'autres choses.

Un type est ce qui donne une sémantique à une représentation.

C'est aussi pour moi ce qui relie informatique et mathématique : un type est quelque chose d'abstrait, comme un théorème ou une classification des fonctions. Mais dès qu'on l'utilise, dès qu'on trouve une preuve de l'existence de ce type alors on peut faire la transformation de représentations, ça devient du calcul, avec un avant et un après.

Dotée d'un type la représentation devient alors une information.

1. Le samedi 31 octobre 2009à00:25, par Wakko

Carrément! Mais je suis pas trop d'accord avec la dernière phrase même si je pense voir à peu près ou tu veux en venir.

J'aurais plutôt dis: dotée d'un type la donnée devient alors une information (représentable)

Quel type donnerais-tu a la représentation ?

2. Le mardi 3 novembre 2009à01:58, par billitch

Pour moi donnée et information sont un peu la même chose, où est la différence ?

En fait une donnée n'est-elle pas plutôt une information vue comme entrée d'un algorithme, par opposition au résultat ?

Ce que je veux dire c'est que les informations n'existent que dans le monde mathématique théorique. Il n'y a que leurs représentations qui sont observables, et le passage d'une représentation à une autre se formalise toujours par un type.

3. Le mardi 3 novembre 2009à02:38, par billitch

Par exemple, la représentation 101 ne veut rien dire tant qu'on ne lui associe pas une sémantique. Celle généralement admise dit que :

  • chaque caractère est un pictogramme indépendant en noir sur fond blanc
  • le caractère 0 représente l'élément neutre de l'addition et absorbant de la multiplication,
  • le caractère 1 représente le neutre de la multiplication et est générateur des entiers naturels par l'addition.
  • mis côte à côte sans espace ils forment un nombre où l'on multiplie chaque chiffre par B puissance (R-1) où B est la base et R le rang du chiffre soit sa position dans le nombre depuis la droite

ainsi même avec toute cette spécification il reste un élément non précisé : quelle est la base ? couramment on utilise la base 10, mais le contexte de la discussion pourrait nous pousser à le considérer en base 2 par exemple s'il s'agit d'électronique. Notre cerveau fait la traduction entre la représentation et la valeur théorique, la vraie information, en fonction de son contexte.

Dans un langage informatique on appelle ça un type. Tout n'étant représenté que sous forme de séquences de 1 ou 0, il faut dire si cette séquence est de type nombre à virgule ou entier ou si c'est une couleur. C'est ce type qui permet de passer de la représentation binaire d'une couleur à la couleur elle-même sur un écran. C'est la spécification de la représentation et de sa sémantique.

Ça veut aussi dire que je pourrais décider que 0 représente une vache et 1 représente un chapeau mexicain et que cela représente une suite de vaches et de chapeau mexicains dans un certain ordre... Ou alors que le couple 10 représente le texte "ceci n'est pas " et que 1 représente "une pipe". Ensuite je peux spécifier que la phrase "ceci m'est pas une pipe" représente un programme qui a pour effet de se répliquer à l'infini dans tout processeur respectant la norme DADA 2009 (successeur de ADA 2005). Ou que 101 représente le type "nombre en base 10"...


L'attente

J'ai décidé d'aimer ce monde. Sans attendre ces joies simples qui vont et qui viennent. Je les emmerde. Ce que j'aime, je l'aime. Indépendamment de mes affections, de mes joies, de mes peines, de mes envies, de mes attentes.

J'aime vivre, j'aime mon expérience, si unique, si horrible qu'elle puisse parfois être. J'aime les sciences qui permettent d'agir sur ce monde en comprenant ses règles. J'aime les humains dans toute leur horreur ! Je suis prêt à tellement de choses pour chacun d'eux (surtout quand ils cessent d'être des connards). J'aime les machines car elles sont notre œuvre et jusque là nos plus fidèles serviteurs. J'aime l'esprit critique, j'aime la liberté, j'aime être perdu et m'y retrouver grâce à 3 clous, j'aime découvrir à quel point je suis passé à côté de toute la subtilité de l'esprit humain que je redécouvre à chaque fois que je parle à quelqu'un.

La vie n'est pas offerte, elle vient avec plaisirs et souffrances et a une fin. Il faut savoir cela pour y mettre un sens. Je l'aime dans son entièreté.

1. Le dimanche 11 octobre 2009à10:46, par Nicko

Attention, tu vas finir par fonder une religion !!

Tu connais le mantra de Jack Kerouac ? Tous les soirs il récitait

"John Smith, également vide, également aimable, également digne d'être Boudha"

En remplaçant John Smith par les noms de toutes les personnes qu'il connaissait, meilleurs amis, pires ennemis, personnes qui lui étaient parfaitement indifférentes ...

2. Le mardi 20 octobre 2009à20:21, par billitch

Haha énorme !

Ma religion c'est la philosophie metamoderne consciente. Et oui je viens bien de l'inventer...

3. Le mardi 20 octobre 2009à20:23, par billitch

Et aussi, "bite".

4. Le vendredi 30 octobre 2009à16:03, par Nouvelle Amazone

Intéressante philosophie. Optimiste et réaliste j'aime.


samedi 10 octobre 2009

Le sang et l'indifférence

Nous avons peut-être du sang sur les mains. Mais qui s'en inquiète ?

Après tout nous sommes les défenseurs de causes justes, dotés de médias critiques, d'un système éducatif qui forme l'élite, d'une armée humanitaire et d'une économie développée. C'est bien.


jeudi 8 octobre 2009

Chances for survival

We are alive.

We are alive.

We are alive.

We are alive.

We are alive.

We are alive.

We are alive.

We are alive.

We are alive.

We are alive.

We are alive.

We are alive.

We are alive.

We are alive.

We are alive.

We are alive.

We are alive.

We are alive.

We are alive.

We are alive.

We are alive.

We are alive.

We are alive.

We are alive.

We are alive.

We are alive.

We are alive.

We are alive.

We are alive.

We are alive.