lundi 31 octobre 2011

Interfaces graphiques : la légende et l'histoire

Le talent de Steve Jobs dans l'art du récit était réellement stupéfiant. Ses shows millimétrés devant une audience acquise étaient une métaphore de la volonté du personnage d'emprise sur le réel. "Champ de distorsion du réel", disaient ses collaborateurs témoins de son entêtement à convaincre, fut-ce au mépris des faits.

La naissance de l'informatique personnelle dans les années 1970 est est une période passionnante. Elle marque le début d'un tournant anthropologique, dont le dernier développement est la révolution numérique actuelle. Et cette histoire n'est pas écrite, alors que certains de ses acteurs ont déjà disparu. Le risque, lorsqu'on s'y intéresse, c'est de prendre des discours de motivation à l'usage interne d'une entreprise ou sa publicité pour des faits établis. Un peu comme si on présentait Henri IV comme le faisait alors son efficace propagande, colportée sur les marchés de France et de Navarre au moyen de vignettes gravées : un Vert-Galant, bon soldat et bon père de famille. Tout le contraire de cette folle de Henri III. Evidemment, aujourd'hui, personne n'est dupe...

Mais revenons à Steve Jobs et à sa maltraitance des faits. Dans un documentaire de la BBC, il résume la genèse du Macintosh, premier ordinateur grand public avec une interface graphique, à sa visite au PARC (Palo Alto Research Center) : http://www.youtube.com/watch?v=rKiSMirEENA un peu après la minute 8:00. Maîtriser le passé pour contrôler le futur... Et il faudrait s'étonner de la source d'inspiration pour le clip du SuperBowl ?

Jef Raskin est un acteur et témoin de cette période, décédé en 2005 d'un cancer du pancréas. Il a écrit en 1967 une these sur le principe d'une interface graphique pour ordinateur, "A Quick Draw graphic system". Plus tard, il a été recruté par Apple pour travailler sur le projet Macintosh entre 1979 et 1982. Il expliquait dans un texte sur Digibarn en quoi l'histoire selon Jobs tient de la légende. En fait, cette idée d'interface graphique a été formulée et explorée par divers groupes en plusieurs endroits à partir des années 1960. Il rappelle le précédent de Sketchpad (1963), un programme de dessin avec stylet qui a inspiré Engelbart et son NLS, présenté en 1969 (j'en parle dans cet article). Raskin lui-même a développé ses idées sans lien avec les recherches menées au PARC, dont les produits (l'Alto et le Star) sont contemporains des années 1970. Parfois, la filiation des détails est complexe à retracer. Dans un autre de ses textes, Raskin se souvient que le glisser-déposer a été inventé chez Apple mais que le menu déroulant l'a été indépendamment chez Apple et au PARC.

La recréation d'idées par des chercheurs n'entretenant pas de correspondance ne doit pas surprendre, surtout si elle survient dans des contextes culturels similaires. Ainsi, le calcul infinitésimal a deux pères reconnus, Newton et Leibnitz.

En écoutant ce documentaire (voir plus haut), je me suis demandé d'où venait l'interface que j'avais devant moi, X-Window. Il me semblait qu'elle était ancienne et ne devait pas grand chose au Macintosh tant les différences sont grandes. Ce système est construit selon un modèle client-serveur, ce qui permet la manipulation les applications graphiques à travers un réseau. Et puis, il utilise une souris à trois boutons, comme celle de Engelbart.

Au début des années 1980, beaucoup de gens travaillent déjà sur les interfaces graphiques. Xerox et Apple, bien sûr, mais aussi le fabricant de stations Apollo et le projet Andrew à l'université Carnegie-Mellon. En 1981, David Cheriton et Keith Lantz, à l'université de Stanford, mènent le développement de V, un OS utilisé pour la recherche sur les systèmes distribués et les interfaces graphique. Paul Asente and Brian Reid créent W, une interface graphique pour ce système, puis la portent sur Unix en 1983 et en donnent une copie au laboratoire d'informatique du MIT. L'année suivante, Bob Scheifler écrit une première version de X en réutilisant une bonne partie du code de W mais en changeant le mode de fonctionnement des communications. Le logiciel permettait d'utiliser à partir d'un terminal graphique des applications réparties dans divers labos du campus, sur des machines de conceptions différentes et incompatibles entre elles.

Aujourd'hui, la plupart des OS de type Unix sont livrés avec X-Window. Les éléments d'affichage natifs de Xlib sont très simples et généralement remplacés par des toolkits plus jolis. L'interface par défaut des distributions Linux est le plus souvent un bureau intégré avec tous les raffinements, comme Gnome ou KDE. Mais si on lance une session avec TWM, on a un aperçu de l'interface d'origine, un peu comme un archéologue déblayant les couches empilées par le temps pour dévoiler les traces du passé.

mercredi 19 octobre 2011

NetBSD on a Macintosh 68k computer

An Apple fanboy, that's what I used to be. The first computer I talked to was an Apple II, a funny little machine with a colorful logo and a plenty of addicting games, like Little Brick Out or Lemonade. Later, when I discovered the graphical interface and the All-in-one casing of the Mac Classic, I went crazy about it. When I could afford a computer, in 1995, it couldn't be anything but a Mac. I was grateful for Apple to have turned computers into machines that are simple and pleasant to use, even by non-computer scientists.

Frustration followed a perfect honeymoon. Years passed and I realized that new exciting software won't run on a Motorola 68k processor, with less than 36 MB, on a system prior to 9 or X. I maxed out the hardware : 68040 with a real FPU, 36 MB of RAM, a 40 GB disk (limited with jumpers at 32 GB), a new silent fan. My Performa 630 should have deserved its name, but instead I hardly slowed its programed obsolescence. Stuck in the past, with an eternally buggy System 7.5.5, a browser illiterate of today's web and SSL certificates that expired last century, my computer should have died. Was the charm too strong ? Instead of buying a newer Mac, I stayed faithful to my first one and kept it sitting on my desk, beside the less attractive and more useful PC. But, one day...

Reversing programmed obsolescence



Years ago, I heard about NetBSD. This Unix-like system is a free software, free as in free speech and free beer. If you want to help developers keep on going, you can give some money or hardware to the NetBSD foundation. It is not an all-graphic system ala MacOS. The graphical interface is optional and rather rough on the edges on this platform. Command-line and text file editing are the Unix way to go. In the early 2000, the install process was rather challenging, and didn't work on my internal IDE drive. But last week I gave the new NetBSD 5.1 version a try. This system software supports a variety of hardware starting from the mini-computer of the eighties (VAX), to Macintosh of all generations, Amigas, Alpha and Sun machines as well as recent 64 bits PC's. How can they achieve that ? NetBSD people claim they made a clean design, with very little machine specific code. Some years ago, I had a discussion with one of them, Emmanuel Dreyfus. He told me that about 2% of the code base is tied to a particular piece of electronic. This means that even drivers are mostly generic and shared amongst different type of machines. Thus, improvements brought to the code benefit all supported hardware, even the oldest.

Installing NetBSD



Given the modest power of a 1995 machine by today's standard, the best I hoped was to turn mine into a simple but decent FTP server to backup a single laptop on a home network. An IPv6 address would also be useful to reach it from outside home, through a secure SSH connection. But, before I could enjoy a modern setup on my vintage Mac, I had to install NetBSD.

The process is now called Sysinst. It boots a minimal version of NetBSD from a file on the Mac disk and prompts the user through different steps. Disk partitions, choice and download of software sets, preliminary configuration is piece of cake for anyone who has carefully read the fine netBSD guide. For the advanced configuration, rc.conf fine tuning, user creation, I had to mount first the newly created partitions under /mnt (mount /dev/wd0g /mnt/usr, et coetera) and then change root (chroot /mnt). I feel there is room for improvement here.

Some bugs in NetBSD install



When I tried to configure wsconsctl -w -k encoding=fr, to use my french keyboard, I got a wskbd device not configured message. After some search in the dmesg log, I found that only wskbd0 was configured. Linking wskbd with wskbd0 (ln -s /dev/wskbd0 /dev/wskbd) was probably a dirty hack, but at least, it worked. Pain wasn't to an end, though.

At reboot, it all went awry. The GENERIC kernel crashed consistently at exactly the same point in the boot process (setting tty's). How to get out of this ? The solution would be to build a new kernel, possibly trimmed down, and give different options to the compiler in hope that the faulty code doesn't make its way into the kernel. The compiler is the piece of software that outputs a machine executable from the source, human readable code. And to build a mac kernel you need a mac compiler that runs normally on NetBSD mac68k. But what if it can't even boot ?

Cross-compile NetBSD kernel



NetBSD allows to build a compiler for any target on any platform. I installed an other NetBSD on my amd64 PC to compile a mac68k compiler to build a mac68k kernel. As the INSTALL kernel worked, I took its config file as a start. After some try and many errors, I ended up with a working kernel on my Macintosh. The important option to include in the config file was:

makeoptions COPTS="-Os" # Optimise for space. Implies -O2

NetBSD on Macintosh is Insanely great !



Now, my Macintosh is useful again with its 21 GB free disk space and 480 KB/s network transfers. On Mac OS 7.5.5, they were ceiling at 150 KB/s. It's got a very well-tested IPv6 stack, full featured FTP and SSH servers and the best firewall to date, Packet Filter. I also installed Links, a console web browser, that displays today's web sites in a blink of an eye (but only the text). There are many programs available on NetBSD repositories that I'm eager to try.
The system seems to be faster, more responsive than with NetBSD 1.6, and it doesn't need more memory (about 17 MB). Usually newer software with more features downgrades your hardware, makes it actually slower.

At last.



I'm still an admirer of the elegant lines of Apple products and their well designed casing. But I value durability even more. Both come together with old Apple hardware and current high-end workstations. But on some laptops you can't even replace batteries. Portable devices are even worse: you are not supposed to install a software not made or approved by the Firm. Should it pull the plug, your shiny little gadget would quickly turn into a useless piece of crap. These expendable products should be avoided, if you don't want to feed the big dump and are not ready to cut you a path through the installation of a free system.

NetBSD on Macintosh 68k

mardi 11 octobre 2011

Une uchronie sans Steve Jobs

Au sujet de la mort de Steve Jobs, beaucoup de choses intelligentes ont été dites et chacun devrait être autorisé à ne pas en rajouter mais je vais quand même contribuer de mes 2 cents, estimant qu'ils ne plomberont pas la moyenne, au moins.

Dans la pluie de louanges, j'ai vu et revu passer l'affirmation qu'il aurait changé la face du monde, ce qui m'a semblé très exagéré. Les contributions du grand homme seraient dues à lui seul et sans lui, le monde numérique en serait resté au MS-DOS, je caricature à peine. A une époque où les grands patrons sont payés des fortunes et loués comme les nouveaux héros du travail, de pareils commentaires ne surprennent pas. Mais faut-il pour autant laisser prospérer la sottise ? Alors, jouons au jeu en essayant de répondre sérieusement à la question : Et si Steve Jobs n'avait pas existé ?

Une uchronie est une expérience de pensée consistant à réécrire l'histoire à partir d'une hypothèse, du genre Et si l'empire romain n'avait pas décliné, Et si Grouchy était arrivé à temps, etc. En général, ça ne sert à rien d'autre qu'à exprimer des idées réactionnaires. Mais en l'espèce je vais l'utiliser pour rappeler quelques faits mis au jour par des sociologues et des historiens.

Si Steve Jobs n'avait pas existé.



Si Steve Jobs n'avait pas existé, Apple Inc n'aurait pas existé, c'est raisonnable de le penser lorsqu'on sait l'importance de son co-fondateur dans l'histoire de cette entreprise et la timidité de l'autre fondateur (à lire sur www.folklore.org). Et sans Apple Inc, le monde serait-il très différent, privé d'ordinateurs utilisables par tous, hyper-connectés et même jolis ? Voyons les faits. L'ordinateur personnel, le micro-processeur, les interfaces graphiques, Internet, la souris et même les interfaces tactiles multipoint, aucun de ces éléments déterminants dans le succès des produits Apple n'a été inventé chez Apple. Les principales inventions de la révolution informatique sont venues de plusieurs institutions de recherche ancrées dans le monde universitaire états-unien et financées par de grandes entreprises ou des programmes de recherche de l'armée US, sans qu'il soit demandé des résultats immédiats ou un quelconque retour sur investissement. Bref, on pouvait mettre beaucoup d'argent sur des idées aux résultats incertains. Cette configuration historique particulière, issue du New Deal de l'administration Roosevelt, de la deuxième guerre mondiale puis de la guerre froide a donné beaucoup de moyens et de liberté aux chercheurs du PARC (Palo Alto Research Center), du SRI (Stanford Reseach Institute), d'ARPANET, du MIT, de Berkeley...

La souris, en 1968 déjà



Dans ce bain intellectuel, des ingénieurs humanistes et libéraux échangeaient des idées sur l'utilisation des machines pour accroître la capacité du cerveau humain. Après les thèses de Turing (1936) et de Shannon (1937), on était persuadé des possibilités des ordinateurs binaires pour manipuler symboles et signifiants. Ces idées, synthétisées dès 1945 par Vannevar Bush dans son texte "As we may think", allaient percoler dans toute la période suivante. Dès 1968, Doug Engelbart, inventeur multitâche, peut montrer tout le potentiel de cette vision. Cette démonstration, montée le 9 décembre de cette année, préfigure l'informatique personnelle telle que nous la connaissons, avec traitement de texte, téléconférence, hypertexte, édition de texte à plusieurs et l'utilisation de la souris.

conférence Douglas Engelbart | mother of all demo

L'innovation au PARC, mais pas seulement



Dans la décennie suivante, la technique se raffine et se miniaturise, avec le Xerox Alto, decendant direct du NLS, la machine développée par Engelbart au SRI, puis le Xerox Star en 1981. C'est à ce moment que les idées sur la nation câblée (The wired Nation), précurseurs des autoroutes de l'information, sont formulées par Ralph Smith, des opérateurs et des informaticiens. Certains, comme Jacques Vallée (Ufologue qui a servi à Spielberg de modèle au personnage de Lacombe dans Rencontre du troisième type) voient déjà un réseau de pair à pair, avec des noeuds à égalité (The Network Revolution, Berkeley Press 1982).

Hippies et Hackers



En parallèle, des jeunes diplômés révoltés par le Viet Nam, imprégnés de contre-culture et de l'éthique des hackers telle que l'a décrite Steven Levy dans : Hackers, Heroes of the computer revolution, forment des clubs comme le Homebrew Computer Club californien. Le point central est la liberté d'accès aux ordinateurs, perçus comme des stimulants de la créativité personnelle. L'idéal pour ces hippies est d'avoir un ordinateur à soi.

A la fin des années 1970, la révolution de l'informatique personnelle est dans les têtes depuis longtemps et la technique arrive enfin à maturité.

Comment l'histoire aurait divergé si Steve Jobs n'avait pas rencontré Steve Wozniak au Homebrew Computer Club ? Apple aurait-il laissé la place à Sinclair, Amiga ou IBM avec son excellent système OS/2 ? Sun, Microsoft, HP auraient-ils été différents ? On ne peut qu'imaginer le détail mais, c'est sûr, l'histoire ne se serait pas arrétée en 1976. Elle était déjà lancée à pleine vitesse.

Apple: Des inventions aux produits



Enfin, les hommages trop appuyés à Jobs sont bien injustes pour tous ceux qui, au sein même d'Apple, ont contribué aux produits de la marque. Il faudrait inclure Steve Wozniak, co-fondateur et créateur des Apple I et ][, Andy Hertzfeld et Bill Atkinson, programmeurs surdoués du premier Macintosh, jusqu'à Jon Ive, designer des matériels récents. Et puis, il ne pas oublier les ouvrières de Foxconn dont la modération salariale contribue à la remarquable prospérité de la firme.

Il reste à Jobs quelques mérites, qu'il convient de souligner. Il a sans doute joué le premier rôle pour faire avancer ensemble ces gens talentueux mais focalisés sur leur spécialité vers la création de produits au-dessus de la masse. Il a aussi repéré plus vite que d'autres l'intérêt d'inventions existantes dans ce même but. Son modèle économique de vente de biens numériques est un digne rejeton des barons voleurs. Well done Steve ! Et il a le mérite de souligner l'importance du contrôle des canaux de distribution de ces biens, une leçon que l'industrie de la presse ne devrait pas laisser à d'autres. Rien que ça, c'est beaucoup. Allez, Farewell Steve et Merci.