Ce fut une excellente journée de travail, stimulante et productive. Tôt le matin, Cédric m'a montré les slides d'un article sur la mesure géométrique de la différence entre deux gamuts, en me demandant s'il était facile de programmer la méthode présentée. Avant d'attaquer la question et la réponse, une petite introduction sur le merveilleux monde des couleurs s'impose.
Programmation
Sirtin a récemment fait remonter l'origine de l'informatique aux métiers à tisser Jacquard, "programmables" par cartes perforées au tout début du XIXème siècle déjà. Pour ma part je n'adhère pas à cette filiation car les métiers Jacquard ne connaissaient pas la notion de boucle conditionnelle. Une idée fondatrice de la programmation, c'est de pouvoir coder "répète 123 fois ceci:", et que la machine ait un moyen de compter jusqu'à 123, ce qui implique l'existence d'une mémoire dont le contenu est modifié par les instructions du programme. Comme l'a très bien exprimé Alan Perlis : "Un programme sans boucle et sans structure de données ne vaut pas la peine d’être écrit." Alors qui a écrit le premier programme valant la peine d'être écrit, la première boucle ?
Andrew Wiles vient de remporter le Prix Abel pour sa démonstration du Grand théorème de Fermat qui dit qu’il n’existe pas de solution de l’équation a^n+b^n=c^n pour a,b,c,n entiers et n>2. Pourtant , quelques semaines après la publication des quelques 100 pages de la démonstration d’Andrew Wiles en 1995, Homer Simpson se promènait nonchalamment et en 3D devant un contre-exemple : 1782¹² + 1841¹² = 1922¹²
Quelques découvertes informatiques en vrac Les formulaires Google Drive Le quiz sur les poissons d’avril m’a permis d’expérimenter la puissance et la facilité d’utilisation des formulaires Google Drive . C’est simplement génial : dans Google Drive, on crée un document de type formulaire on se retrouve dans un éditeur permettant de composer le formulaire. […]
Dans un récent article [1] Anna Lietti fait le point sur une question qui fait son chemin un peu partout: Pour former des citoyens «informatiquement éclairés»*, l’école doit-elle enseigner à tous le b. a.-ba de la programmation? Selon certains comme Bernard Stiegler, les enfants du numérique ont une « expérience rusée » du […]
(mis à jour plusieurs foirs après correction de bugs et améliorations, cf commentaires…) Je m’apprêtais à passer une soirée tranquille quand je suis tombé sur un tweet de @ElJj disant: « Qui va me battre au « jeu de l’année » ? http://eljjdx.canalblog.com/archives/2012/01/15/23243094.html« . Un seul click m’a torpillé non pas une, mais trois soirées et un […]
Il devient de plus en plus difficile de choisir un carrelage original pour sa salle de bains. Depuis le XVème siècle, 17 types de pavages réguliers différents sont utilisés dans les décorations de l'Alhambra. En 1891, le mathématicien russe Evgraf Fedorov démontre que le nombre de pavages réguliers distincts vaut … 17 [1]. […]
Tout a commencé* par un message « Genius sorting algorithm: Sleep sort » sur 4chan : un anonyme propose un algorithme de tri en 2 lignes de code bash : function f() {sleep "$1" echo "$1"} while [ -n "$1" ] do f "$1" & shift done wait Lorsqu’il est appelé avec une liste de N nombres comme dans ./sleepsort.bash 5 3 6 3 […]
Je programme des ordinateurs depuis 30 ans, et tous les 5 ans environ je me demande pourquoi je continue à aimer ça. Et à chaque fois je découvre quelque chose qui provoque un « éclair haha », une de ces illuminations cérébrales où l’on entrevoit le Génie dans toute sa Pureté avant […]
Les inégalités de revenu sont un sujet d’actualité politique brûlant. En Suisse, les Jeunesses Socialistes viennent de lancer une initiative populaire visant à limiter le salaire maximal dans les entreprises à 12 fois le salaire minimal.Dans une petite boite c’est presque toujours le cas, mais plus on travaille dans une […]
Vu l’autre jour sur un blog¹ une « question bête », donc intrigante : existe-t-il des nombres entre lesquels les mathématiciens ne connaissent aucune relation ? La question est « bête » puisqu’on peut toujours trouver une relation entre deux nombres entiers. Mais elle m’a rappelé ma quête initiée avec les nombres acratopèges : tous […]
Les problèmes du Project Euler devenant vraiment très ardus, j’ai été content de trouver ici un petit challenge intéressant : déterminer rapidement le nombre de nombres palindromes inférieurs à un maximum donné. Un nombre palindrome se lit indifféremment de gauche à droite ou de droite à gauche, comme 1234321 ou 567765. Outre […]
Le Jeu de vie imaginé par John Conway en 1970 est un automate cellulaire célébrissime pour au moins deux raisons: A partir de règles toutes simples, le jeu de la vie génère une « vie » artificielle étrangement complexe et imprévisible, posant toutes sortes de questions intéressantes Le Jeu de la Vie […]
Amis des casse-tête mathématiques ardus et de la programmation d’algorithmes optimisés, bonjour! Je viens de découvrir Project Euler.net, et j’ai honte de ne pas l’avoir trouvé avant. Ce site propose 233 problèmes (et environ un de plus chaque semaine environ) pouvant parfois être résolus avec un papier et un crayon […]
C’est très facile de faire une photomosaïque comme celle ci-contre. Des sites comme Pictosaic juxtaposent en quelques secondes des centaines d’images pour approximer une image de base. Par exemple, voici un détail du goulot du bécher ci-contre: Mais combien de petites images distinctes sont utilisées pour produire la mosaïque ? […]
Le « problème à N corps » consiste à déterminer le mouvement de N masses sous l’effet des forces d’attraction gravitationnelles entre elles. Pour N=2, Newton savait déjà que les deux corps décrivent des ellipses autour de leur centre de gravité commun. Pour N=3, Poincaré avait découvert que les trajectoires des corps […]
Python est un langage très puissant, mais livré dans un état un peu brut. Pour l’exploiter de façon efficace, il faut y ajouter des libraires graphiques, de calcul spécialisé ou d’accès à des bases de données par exemple. Certaines ne sont que des interfaces vers des librairies en C ou C++, […]
Ces temps-ci, je découvre Python, un langage de programmation très apprécié en particulier dans la communauté scientifique. Ce « langage interprété multi paradigme » intègre des concepts développés dans plusieurs langages récents, ce qui en fait peut-être le langage le plus complet disponible actuellement. Pour une première approche de ce langage, je […]
Le quatrième et dernier problème de la Google Treasure Hunt 2008 mérite un article à lui tout seul. (J’ai parlé des trois autres dans cet article et ses commentaires) Il s’agit de trouver le plus petit nombre premier P qui soit en même temps : la somme de 9 nombres […]
Si vous souhaitez travailler chez Google ou facebook, voici un petit tuyau : cultivez l’art de résoudre des casse-tête, et montrez vos talents sur internet. Chez Google, on testera votre raisonnement logique dès les premières minutes du premier interview téléphonique, puis on vous cuisinera sur de nombreux autres problèmes plus […]
Voici comment générer rapidement et automatiquement des polices de caractères bitmap avec canal alpha, donnant un anti-aliasing parfait quel que soit la texture de fond utilisée. Toutes les polices vectorielles peuvent être utilisées et combinées avec une infinité d’effets graphiques. Le logiciel réalisant 99% du travail est ImageMagick, un programme de […]
Stupéfaction : Google vient de permettre à 10’000 programmeurs d’utiliser AppEngine, un environnement permettant de développer (en Python) des applications qui fonctionneront directement sur les serveurs de Google, en utilisant certaines technologies propriétaires de Google, et tout ça gratuitement. Jusqu’ici, Google gardait jalousement sa technologie permettant de stocker et d’indexer […]
Proce55ing (ou Processing), est un langage de programmation, et même un environnement de développement d’applications graphiques temps réel interactives. Créé initialement par Ben Fry et Casey Reas pour des applications de visualisation de données, Processing est également apprécié de créateurs comme qui en tirent des oeuvres graphiques magnifiques. « Bubble Chamber » […]
Suite à Galaxies, Fenêtres sur l’Univers, je m’étais lancé dans la réalisation d’une Simulation de Galaxie Spirale en temps réel basée sur Demoniak3D. L’idée était principalement d’illustrer le fait que les bras spiraux des galaxies ne tournent pas : se sont des « ondes de pression » dans lesquels la densité d’étoiles […]
Tombé par hasard sur cette page qui liste de minuscules programmes en C utilisés comme signatures d’e-mails par des programmeurs fous, ou de génie c’est la même chose. C est un langage de programmation tellement dense qu’il peut en devenir cryptique, ce qui fait qu’il est impossible de deviner ce […]
En préparant un autre article, je suis tombé sur quelques citations d'Alan Perlis, un précurseur de la programmation et célèbre professeur. Les dictons informatiques dont il émaillait ses cours ont été publiés et sont passés à la postérité sous le nom de "Perlisismes", mais ne sont disponibles qu'en anglais. Ne les ayant pas trouvé en français, je me suis fendu (de rire) d'une traduction, en les reclassant par thèmes subjectifs et en les classant selon mes préférences. Régalez vous !
Depuis longtemps je suis un fan du site de Paul « Bugman » Nylander, un incroyable ramassis de choses épatantes sur des sujets comme la physique, les maths, les fractales et les papillons, le tout illustré par de magnifiques images et animations faites avec Mathematica et POV-Ray principalement. Le seul problème est […]
Dans les ordinateurs vendus depuis 2003 environ, le microprocesseur (CPU) fourni par Intel ou AMD n’est plus le composant le plus puissant, et souvent plus le plus couteux non plus. Désormais c’est le GPU, le Graphics Processing Unit, qui détermine largement la puissance d’un PC. Strictement limités au graphisme il y a peu, ces processeurs […]
« The Right Way to Calculate Stuff » est une page pour informaticiens dans mon genre : elle contient des petits « snippets » de code utile pour contourner certains pièges tendus par les maths et la géométrie. Par exemple, si on veut calculer sin(x)/x, il faut faire attention à ce qui se passe pour x=0, sinon on obtiendra une […]
Me suis mis à programmer un peu en Lua, un « langage de script » très utilisé dans les jeux video, mais aussi par Hyperion. LUA présente plusieurs caractéristiques étonnantes: il est très rapide, presque autant que JAVA mais environ 6x plus que Python ou 15x plus que PHP (voir ici par […]