person:bret victor

    • C’est un lieu magique où j’ai eu la chance de passer un week-end ("Game Jam") en septembre dernier.

      Bret Victor, qui a imaginé cet espace, s’inspire et veut reprendre des projets à la Xerox PARC, avec une visée essentiellement pédagogique.

      L’idée est d’explorer ce que devient l’informatique quand on supprime l’écran et le clavier, et qu’on les remplace par une caméra et des projecteurs, on supprime les fichiers de code et on les remplace par des feuilles de papier, on supprime les identifiants numériques et on les remplace par des gommettes de couleur.

      Un exemple : chaque fois qu’on édite un bloc de code, on obtient une nouvelle feuille de papier qui vient remplacer la précédente sur la table. On a alors plusieurs possibilités :
      -- conserver l’ancienne feuille sous la nouvelle ; alors on a un historique du code (versionning), qui permet de revenir en arrière en soulevant le nouveau papier pour refaire apparaître l’ancien ;
      -- avoir les deux feuilles sur la table (deux instances un peu différentes de notre code), et comparer leurs effets
      -- froisser la feuille qui ne nous convient plus et la jeter à la poubelle, y mettre le feu ou s’en servir comme brouillon pour griffonner.

      Comme les caméras détectent les points de couleur, on n’est pas obligé de se cantonner à programmer avec du papier : on peut programmer avec du carton, du bois, des cookies, des lego, des trains électriques… ce qui donne ce dispositif où une voiture en plastique se déplace sur une table, repère autour d’elle les trois feuilles les plus proches de type (son, fréquence, rythme), et joue la musique correspondante… tout en se déplaçant dans un paysage sonore alimenté en images fractales. Psychédélique.

      Le système fonctionne avec des objets (informatiques) qui font tourner le code correspondant à leurs points de couleur. Ces objets peuvent s’échanger des messages, et s’envoyer (à eux-mêmes ou aux autres) des illuminations (images, texte, sons).

      Un objet banal dira « je suis un écran », un autre dira « j’envoie à tous les écrans la valeur x », un autre encore dira « la valeur x est réglée sur le déplacement de mon point coloré ». Le fait que ce sont trois objets physiques différents fait qu’on peut alors remplacer n’importe quel bout pour changer le flux de messages, et qu’on fait ça « avec les mains », et qu’on voit ce qu’on fait.

      Comme le système lire la position et la couleur de points, on peut créer des objets physiques qui permettent de manipuler des nombres. Ainsi, une simple boulette de pate à modeler montée sur un ressort en plastique devient un joystick.

      Mais un autre objet peut venir et dire « j’envoie des flash sur tous les objets ». Un autre peut créer des images en webgl, faire des statistiques sur les points de couleur qui se trouvent sur la table, etc.

      Le sentiment qui s’en dégage est assez exaltant : la programmation devient une activité physique, sensorielle, collective. On se rapproche d’une pratique artistique, de la danse ou du théâtre peut-être.

      En tout cas le système oblige à des déplacements physiques, le code prend vie en-hors de l’ordi. Revenir ensuite à un code coincé entre clavier et écran est très frustrant.

      Le système mélange plusieurs concepts qui sont chacun intéressants en soi, et marchent bien ensemble.

      Si je résume on a :

      – une capture vidéo (basé sur OpenCV) d’une table (ou d’un mur), et un projecteur qui éclaire la même zone ; quand une partie des points colorés disparaissent, le système les garde en mémoire un certain temps, ce qui fait que les bras qui occultent les feuilles au passage ne provoquent pas trop de problème en pratique.

      – des points colorés qui, organisés en quatre coins d’un rectangle (appelé « page »), définissent un code (une référence) vers une base de petits logiciels de quelques lignes

      – un protocole de communication entre ces petits logiciels, baptisé RealTalk, qui s’inspire de smalltalk : chaque page peut envoyer des messages à toute la table, et écouter les messages

      – un OS qui relie le tout et qui orchestre le flux de communication, les modifications et l’insertion de nouvelles pages (avec une imprimante pour les matérialiser)

      Pour ma part durant le Game Jam j’ai fabriqué un bloc en bois qui me permettait d’éditer un code en pointant dessus ; une page qui capturait les points colorés sur la table et les faisait rayonner ; une exploration de la colorimétrie (très instable) de la caméra ; un dé à 24 faces avec reconnaissance optique de la face visible (sans succès d’ailleurs !). etc.

  • Hier soir, pintes et fatigue m’ont empêché de retrouver ce dont je voulais causer avec @nhoizey : au départ, on parlait de #Lego et #Lego Mindstorm. Je voulais rebondir sur Seymour Papert et Bret Victor (grâce à qui j’ai « redécouvert » S. Papert et relu un peu de Piaget).

    Seymour Papert : http://en.wikipedia.org/wiki/Seymour_Papert

    Son bouquin « Mindstorms : Children, Computers, and Powerful Ideas » a inspiré leur nom aux Lego Mindstorm

    L’article de Bret Victor : http://worrydream.com/LearnableProgramming

    The canonical work on designing programming systems for learning, and perhaps the greatest book ever written on learning in general, is Seymour Papert’s “Mindstorms”.

    #constructivisme #Piaget #pedagogie #programmation #psychologie

  • « The Future of Programming » - Bret Victor
    http://worrydream.com/dbx

    excellente conférence sur la #programmation, retro-style

    http://vimeo.com/71278954

    “Why did all these ideas happen during this particular time period?”

    There may be a number of reasons.

    The story I told in the talk — “they didn’t know what they were doing, so they tried everything” — was essentially that programming at the time was in the “pre-paradigm phase”, as defined by Thomas Kuhn in The Structure of Scientific Revolutions. (...)

    But there’s another story, which has to do with funding models. Much fundamental research at the time, including Engelbart’s NLS and the Internet, was funded by #ARPA, an agency of the US Defense Department which had been given significant resources due to the cold war.

    ARPA ushered in an era of abundant funding for university projects, offering far more in terms of funding than any other research funds at the time. Where institutions such as the National Science Foundation and the Three Services Program provided funding to research programs at the level of tens of thousands of dollars, ARPA was willing to throw millions into the creation and support of promising research efforts.

    Part of what made ARPA funding so successful was that its directors (such as J.C.R. Licklider and Bob Taylor) were free to aggressively seek out and fund promising individuals with “no strings attached”.

    #recherche #silicon_army

    Avec le même titre, mais une approche différente, un autre article très intéressant sorti le même jour :

    The future of programming - O’Reilly Radar
    http://radar.oreilly.com/2013/01/the-future-of-programming.html

    it’s worth examining the house of cards we’re building with our current approach to software development. The problem is simple: the brain can only fit so much inside it. To be a programmer today, you need to be able to execute the program you’re writing inside your head.

    When the problem space gets too big, our reaction is to write a framework that makes the problem space smaller again. And so we have operating systems that run on top of CPUs. Libraries and user interfaces that run on top of operating systems. Application frameworks that run on top of those libraries. Web browsers that run on top of those. JavaScript that runs on top of browsers. JavaScript libraries that run on top of JavaScript. And we know it won’t stop there.

    We’re like ambitious waiters stacking one teacup on top of the other. Right now, it looks pretty wobbly. We’re making faster and more powerful CPUs, but getting the same kind of subjective application performance that we did a decade ago. Security holes emerge in frameworks that put large numbers of systems at risk.

  • L’interface n’est pas une représentation

    Un texte intitulé De l’interface à la surface : Sur la conception représentationnaliste de l’interface, et présenté lors du séminaire Co-design d’Annie Gentès en juin 2011

    http://viz.meidosem.com/post/51419888234/representation

    Son auteur, sur touitère :

    Un vieux texte qui pourra intéresser ceux qui aiment les interfaces et les horizons phénoménologiques.

    L’approche est rigolote :

    Ce document a pour objectif d’exclure deux façons classiques d’en parler : celle qui ramène l’interface à des problèmes d’ingénierie, celle qui ramène l’interface à des problèmes de communication.

    @louije : J’imagine que tu as lu les articles de Bret Victor ("The Ladder of abstraction" et « Magic Ink »), tu en penses quoi ? Tu les articule comment avec ton propos ?

    #interface #IHM #approche #ingénierie #communication #créativité

    • La référence à la machine disparaît sitôt que l’interface prend pour objet l’activité de l’utilisateur, et non le fonctionnement des appareils nécessaires à cette activité. On cesse de prendre l’interface comme un outil, comme un moyen, comme un intermédiaire. On peut passer aux choses sérieuses.

      c’est un argument que combattait Neal Stephenson dans “In the beginning was the command line" http://www.cryptonomicon.com/beginning.html , que vous invite à lire ! J’aurais aimé qu’il soit édité en français, mais ça n’a pas (encore) pu se faire.

      cc : @louije

    • @Fil L’ordinateur qui devient invisible et qui perd sa dimension vraiment informatique, c’est une question difficile pour ceux qui ont appris à penser avec l’informatique des années 80 et 90. Il y a une vraie pertinence à comprendre comment marche un ordinateur. Mais avec tant d’activité dans le domaine de « l’après PC », type interfaces contrôlées et orientées applications comme l’iPad, c’est dommage qu’il y ait si peu d’efforts pour aller dans l’autre sens aussi, pour retrouver un peu l’idéal d’Engelbart.

      C’est marrant de voir que cet article qui voudrait réveiller l’innovation dans le PC (plutôt que dans les tablettes, etc.) ne propose que des choses dont on parlait déjà en 1995 : http://mobileopportunity.blogspot.com.es/2013/05/its-time-to-reinvent-pc.html

    • @0gust1 Bret Victor ♥. Je ne comprends pas pourquoi il n’a pas déjà un atelier type Renaissance, où toutes ses idées sont notées, réalisées, et exposées dans tous les salons du monde. Son approche me semble un peu héritée de Papert et Piaget : rendre concrets des idées et des processus, pour empêcher le lecteur / l’élève d’avoir à faire preuve d’abstraction pour comprendre quelque chose. (Cf. http://llk.media.mit.edu/courses/readings/mindstorms-chap1.pdf)

    • @Fil Je partage de plus en plus ce genre d’idées, par contre on/tu parle(s) là plus des OS, qui sont quand même des interfaces assez particulières : elles ont le public le plus large (de l’utilisateur néophyte « qui veut juste faire ... » au geek développeur) Si la machine ne transparaît pas assez dans une partie des interfaces d’un OS, il est moisi (du point de vue d’un manipulateur de machines, dev, informaticien).

      Merci pour le lien vers l’essai de Stephenson, je vais me le lire avec intérêt.

      Par contre, il dit lui même :

      The essay was written before the advent of Mac OS X. In a Slashdot interview in 2004, he remarked:
      I embraced OS X as soon as it was available and have never looked back. So a lot of In the Beginning...was the Command Line is now obsolete. I keep meaning to update it, but if I’m honest with myself, I have to say this is unlikely.

      http://en.wikipedia.org/wiki/In_the_Beginning..._Was_the_Command_Line

      Ce que j’aime dans le papier de @louije, c’est la posture qui s’en dégage, similaire à celles que promeut Bret Victor : Back to basics, on évacue (pour l’instant) l’ingénierie et son corollaire la communication (comment traduire la machine pour le pôvre utilisateur derrière) pour se concentrer sur la tâche et les actions (comportements manipulatoires, boucles perceptions / action) de l’utilisateur. C’est particulièrement important je pense dans les domaines de la pédagogie (les exemples de Bret Victor), des logiciels de création, etc.. les domaines où c’est vraiment important d’avoir très peu d’abstraction entre l’action et la rétroaction.
      Par contre, je pense qu’il y a des contextes où la machine doit bien être là, et les abstractions intermédiaires doivent être correctement sensibles.

      @louije : C’est un peu ce qu’il se passe, avec internet. Les gens reproduisent et s’inspire de ses travaux. De mémoire il y a un éditeur de code (IDE), basé sur ses idées exprimées lors d’une conf, qui est en cours de réalisation : http://www.lighttable.com
      Sur Papert et Piaget, Bret Victor s’en réclame explicitement dans plusieurs endroit de sa production (il cite notamment Mindstorm dans sa biblio de trucs à lire absolument).

    • @0gust1 Oui, c’est clair que ce monsieur connaît très bien les textes. Ça fait toujours plaisir de voir des inventeurs s’appuyer sur la littérature et rendre concrètes des théories.

      Sur Stephenson et Mac OS X, en revanche, je suis plus circonspect. À la limite, je trouve OS X moins geek que Mac OS Classic. Au fil des années, OS X a de plus en plus caché son fonctionnement à l’utilisateur (transformer la bibli iPhoto en un paquet, planquer le dossier ~/Library, toutes les magouilles bizarres pour stocker les documents iCloud, etc.), alors que sous Système 7 et suivants, avec le Dossier système, le système de fichiers était la vraie interface de gestion de l’ordi : tu enlèves un fichier, hop, la fonctionnalité disparaît.

  • Why Medium Notes Are Different and How to Use Them Well — Ev Williams — Medium
    https://medium.com/about/5972c72b18f2

    Notes are (...) useful for lots of things: They help improve writing. They add valuable supplementary information. They incorporate new viewpoints. They give meaningful feedback to those who write things. And they let people connect over ideas.

    (...) traditional comments (...) do the same thing (in ideal circumstances). Notes are much better for the type of ideas and stories people share on Medium. Here’s why (and how they work):

    #Web #commentaires #conception

    Petite question d’implémentation : comment déterminer le « paragraphe » quand on modifie le texte ? (On voit dans le code source que les paragraphes ont un « name=AAAA », un code hexa de quatre chiffres.)

    • Pour l’implémentation, naïvement, à part compter les paragraphes à l’enregistrement et les indexer, je vois pas trop.

      J’aimerais un jour essayer de transformer les notes de bas de page de #spip de cette manière. Un peu comme Bret Victor aussi (par ex. http://worrydream.com/MagicInk )

      J’entrevois plusieurs possibilités pour celà : la plus simple, via du #javascript, sinon en réintégrant, dans le rendu de SPIP le contenu des notes dans le flux du document et en les flottant à droite (ou en absolute, comme Bret Victor). L’idéal, bien sûr, est une solution « responsivable » (la deuxième piste est qd même plus propre).

      Des idées sinon pour le balisage #HTML (sémantique) de ces notes ?

      #CSS

  • Chris Granger - Light Table - a new IDE concept
    http://www.chris-granger.com/2012/04/12/light-table---a-new-ide-concept

    Inspiré par les idées de Bret Victor.

    Despite the dramatic shift toward simplification in software interfaces, the world of development tools continues to shrink our workspace with feature after feature in every release. Even with all of these things at our disposal, we’re stuck in a world of files and forced organization - why are we still looking all over the place for the things we need when we’re coding? Why is everything just static text?

    http://vimeo.com/40281991

    #IDE #programmation #code #interface #ergonomie

    • I came to the conclusion that windows aren’t a good abstraction for what we do. Other engineers have large tables where they can scatter drawings, tools, and other information around. A drafting table is a much better abstraction for us. We shouldn’t need to limit ourselves to a world where the smallest moveable unit is a file - our code has much more complex interactions that we can better see when we can organize things conceptually.

    • Alors, cette vidéo est assez longue (~1h), mais si vous êtes un tant sois peu « geek », accrochez-vous. ça vaut le coup.

      Le thème de cette vidéo tourne autour de « suivez vos passions, suivez vos principes » (très américain ?). Son truc, c’est de concevoir des interfaces, des dispositifs interactifs qui rendent tangibles et explorables par tous des concepts qui resteraient abstraits ou réservés aux seuls initiés.

      Il fait la démo de plusieurs « proof of concept » / prototypes vraiment enthousiasmants :
      – Une interface établissant une relation bidirectionnelle, explorable et temps réel entre un Canvas et du code qui dessine des choses dessus. (2’30)
      – Un moteur/éditeur de jeu vidéo, pour explorer le game design, la modélisation de contraintes physiques. (10’17)
      – Une interface pour apprendre à programmer, proposant une visualisation simple du déroulement d’un programme. (16’45)
      – Un explorateur de schéma électronique, permettant de visualiser en temps réel son fonctionnement et le comportement des courants électriques le parcourant. (23’30)
      – Un logiciel d’animation intuitif (29’30).

      Bref, il est très fort ce Bret Victor, son approche est imparable, j’aimerais beaucoup mettre la main sur un des synthés qu’il a conçu (Alesis Ion et Alesis Micron). D’ailleurs, « j’auto favorite » ce seen. (#fanboy_inside)

  • Encore du Bret Victor (@worrydream) :

    http://worrydream.com/MagicInk

    The ubiquity of frustrating, unhelpful software interfaces has motivated decades of research into “Human-Computer Interaction.” In this paper, I suggest that the long-standing focus on “interaction” may be misguided. For a majority subset of software, called “information software,” I argue that interactivity is actually a curse for users and a crutch for designers, and users’ goals can be better satisfied through other means.
    [...]
    Although this paper presents a number of concrete design and engineering ideas, the larger intent is to introduce a “unified theory” of information software design, and provide inspiration and direction for progressive designers who suspect that the world of software isn’t as flat as they’ve been told.

    J’aime vraiment son approche. J’aurais aimé écrire un truc de ce genre, un jour.

    Sinon, ce qu’il dit de son expérience chez #apple est assez rigolo aussi :
    http://worrydream.com/Apple

    #design #interface #IHM #interaction

    • tediously explaining their context, mouse click by mouse click, keystroke by keystroke, wasted hour by wasted hour. This is called interactivity.

    • Currently, almost all software is designed by people who are very comfortable with computers; their interest in technology motivated them to enter the field. This suggests an enormous exclusion of potential talent