La plus grande invention de l’informatique ?

18 06 2008

Le blog “Coding Horror” de Jeff Atwood est probablement un des plus intéressants à suivre par tout Microclubiste.

Dans “The greatest invention in Computer Science“, il prend un peu de recul par rapport aux langages de programmation à la mode et considère que la “routine” (fonction ou procédure) est la plus grande invention de l’informatique (software).

Dans une avalanche de commentaires, puis aussi sur Digg, de nombreux programmeurs ont nommé leurs chouchou : pointeurs, compilateurs, langages divers etc.

Pour ma part, j’ai choisi la pile (stack). Indispensable aux routines, c’est aussi une structure de données assez puissante pour permettre de réaliser des calculatrices (HP) et même des langages de programmation (Forth).

Et pour vous, quelle est l’invention la plus marquante de l’informatique ?





Perlisismes : les dictons informatiques d’Alan Perlis

21 01 2008

Tombé sur quelques citations d’Alan J. Perlis, un précurseur de la programmation et professeur célèbre. Les dictons informatiques dont il émaillait ses cours ont sont passés à la postérité sous le nom de Perlisismes.

Ne les ayant pas trouvé en français, je me suis fendu (de rire) d’une traduction. En voici quelques uns, et beaucoup d’autres sur mon blog

  • Il y a deux manières d’écrire des programmes sans erreurs. Seule la troisième marche.
  • Le 11ème commandement était “Tu programmeras” ou “Tu ne programmeras pas”, je ne me souviens plus au juste.
  • Tout programme a (au moins) deux buts : celui pour lequel il a été écrit, et celui pour lequel il ne l’a pas été.
  • La constante d’une personne est la variable d’une autre.
  • Les inconscients ignorent la complexité. Les pragmatistes en souffrent. Certains parviennent à l’éviter. Les génies la suppriment.
  • Dans la symbiose homme-machine, c’est l’homme qui doit s’adapter parce que la machine ne peut pas.
  • En informatique, les invariants sont éphémères.
  • Le contact prolongé avec les ordinateurs transforme les mathématiciens en comptables et vice versa.
  • Une année de travail sur l’intelligence artificielle est suffisante pour vous faire croire en Dieu.
  • Il est plus facile de changer la spécification pour qu’elle corresponde au programme que le contraire.
  • Adapter de vieux programmes à de nouvelles machines signifie habituellement adapter les nouvelles machines pour qu’elles se comportent comme les anciennes.
  • Chaque programme est un bout d’un autre programme qui convenait mal.
  • Une fois que vous comprenez comment écrire un programme, trouvez quelqu’un d’autre pour l’écrire.
  • Il est plus facile d’écrire un programme incorrect que d’en comprendre un correct.
  • Si votre interlocuteur hoche la tête pendant que vous lui expliquez votre programme, réveillez-le!
  • Il ne vaut pas la peine de connaitre un langage qui ne modifie pas votre façon de penser la programmation.
  • Un langage de programmation est “bas niveau” quand il nécessite de faire attention à ce qui n’a aucune importance.
  • Enseigner la programmation va à l’encontre de l’éducation moderne : Quel est le plaisir à planifier, se discipliner à organiser ses pensées, faire attention aux détails et apprendre à être autocritique ?

Il y en a encore beaucoup d’autres sur le blog du Dr. Goulu





redirection conditionnelle en JavaScript

12 01 2008

Je remonte un peu le temps pour vous expliquer le problème:

  1. En même temps que mon domaine goulu.net, j’avais acheté un hébergement web pas cher auprès d’une boite lointaine, ce qui m’avait permis de créer de nombreuses versions de mon site internet.
  2. Lorsque j’ai créé mon blog drgoulu.wordpress.com, hébergé gratuitement sur le génial wordpress.com , j’ai créé sur mon ancien hébergement une redirection HTTP toute simple en créant un fichier index.php contenant simplement ces lignes:
    <?
    Header( “HTTP/1.1 301 Moved Permanently” );
    Header( “Location: http://drgoulu.wordpress.com/” );
    ?>

    ce qui redirigeait les accès à l’ancien site vers le nouveau blog.
  3. J’ai cependant conservé mon contrat d’hébergement car j’avais besoin d’un serveur e-mail @goulu.net
  4. Pour différentes raisons, j’ai acheté d’autres noms de domaine comme pro-g.ch et projets.ch, et un hébergement chez infomaniak.ch, qui permet de définir des domaines “synonymes” : plusieurs domaines peuvent ainsi partager le même site web.

A ce moment, je me suis dit que j’allais pouvoir économiser mon vieil hébergement si j’arrivais :

  1. à définir goulu.net comme un nouveau synonyme de l’hébergement chez infomaniak, ce qui me permet de plus de recevoir tous mes mails sur un seul compte au lieu de 2
  2. à réaliser un “redirection conditionnelle” pour que les gens qui tapent www.goulu.net continuent à se retrouver sur mon blog au lieu de tomber sur mon site pro-g.ch en construction.

Petite contrainte supplémentaire, je voulais éviter de faire ça en PHP pour ne pas interférer avec le système existant sur pro-g. Par chance, infomaniak a bien configuré ses serveurs : s’il existe un document nommé index.html, il a la priorité sur index.php. Donc il m’a suffit de faire un fichier index.html contenant un peu de JavaScript :

<html >
<head>
<title>goulu.net redirect page</title>
</head>
<body>
<script language=”JavaScript” type=”text/javascript”>
<!–
var d=”http://projets.ch/index.php”;
var p=document.URL;
if (p.indexOf(”goulu.net”) != -1) d=”http://drgoulu.wordpress.com/”;
window.location.replace(d);
–>
</script>
</body>
</html>

ça marche, et ça donne des pistes sur comment faire un système de redirection assez sophistiqué grâce à JavaScript, un langage incontournable du Web, souvent sous-estimé.





Simulateur de Dauphin

29 11 2007

(texte et image de Daniel Roux, repris de la page “Simulateur de Dauphin” sur Epsitec.ch dans le but de faire de la pub pour cet excellent travail didactique)

En 1977, le professeur Jean-Daniel Nicoud crée le Dauphin, un génial petit ordinateur livré en kit, qu’il fallait construire soi-même. Cette sympathique machine a rencontré un grand succès en Suisse romande, permettant à de nombreux passionnés de s’initier à cette nouvelle discipline.

Aujourd’hui les PC sont développés par de grandes équipes d’ingénieurs, mais les principes de base sont restés les mêmes. Pour fêter ses 30 ans, la société EPSITEC a développé un ordinateur Dauphin virtuel, accompagné d’un excellent manuel didactique. Tout ceci est gracieusement mis à votre disposition sur la page “Simulateur de Dauphin” sur Epsitec.ch

Avec ce simulateur, vous vous trouvez face à un ordinateur rudimentaire, vierge de tout logiciel, qui ne sait strictement rien faire, exactement comme à l’époque des pionniers de l’informatique. C’est vous qui lui donnez toutes les instructions qu’il doit exécuter. Même les tâches les plus simples telles qu’afficher la valeur correspondant à la touche pressée doivent être programmées. Vous acquerrez ainsi les bases de la programmation en « langage machine », une chose presque totalement oubliée de nos jours.