Quoi de neuf chez Neamar ? On en a pas forcément l'impression, mais ça bouge, et vite ce mois-ci ! Petit récapitulatif des améliorations passées et à venir…

Omnilogie

Tout d'abord Omnilogie continue son petit bonhomme de chemin, avec en projet une refonte complète du site pour clarifier l'interface et les fonctionnalités. Cela dit, ça reste encore au stade de projet, et demande pas mal de réflexion pour ne pas retomber dans les mêmes travers… et puis, il faudrait trouver un webdesigner plus compétent que moi ! Avis aux amateurs…
D'ailleurs, j'hésite à recoder tout ça en HTML5, les nouvelles balises apportent un vrai plus à la sémantique des textes. Faudrait que je me renseigne sur la façon dont Google gère ces nouveaux usages, et si IE – pour changer – ne fait pas trop de la merde.

Neamar.fr

Sur neamar, la section des Ressources accueille deux nouveaux articles :

  • d'abord un petit comparatif entre deux œuvres à priori hétérogènes à l'extrême : j'ai nommé Fight Club et Calvin & Hobbes ;
  • ensuite un article plus long et documenté sur l'historique du calcul de pi, des Mésopotamiens à l'invention des ordinateurs, une histoire riche accessible à tous au début, puis qui nécessitera quelques connaissances en mathématiques – rien de bien poussé rassurez-vous, j'aurais trop peur de dire des bêtises, même en les traduisant !

En prévision, encore un article sur Pi… mais un peu plus surprenant cette fois, je n'en dis pas plus pour l'instant car il me faut un peu de documentation.

Oh, et j'allais l'oublier : il y a eu aussi l'ouverture récente de la section des références et clins d'œils Adoprixtoxis, un travail collaboratif de longue haleine !

Cruciverbiste Neamar

Sur le dictionnaire des mots-croisés, j'ai quelques petites idées pour améliorer le service… rien de bien compliquées en plus, je prévois de faire les modifications dans la semaine si j'arrive à trouver un ordinateur avec une connexion Internet décente.

Blog

Sur ce blog, il y a eu le pensum sur l'optimisation d'un algorithme de le calcul des nombres premiers qui me plaît (depuis le temps que je voulais l'écrire celui-là ! ), le top 5 de la BD qu'il me faut achever (il ne m'en reste qu'un à écrire, mais je veux relire la série en question avant de m'y mettre), et j'ai en réserve un article sur la représentation dynamique des graphes. Et puis il y a eu ce petit délire d'hier prouvant si besoin était que je trolle donc je suis.

DGraphe (enfin !)

Ce qui m'amène tout naturellement à l'info principale qui a motivé ce billet – même si je n'en dirai presque rien pour des des raisons évidentes de confidentialité : j'ai enfin trouvé l'idée de jeu de DGraphe. Oui, je sais, ça a été très long, j'ai changé plusieurs fois d'avis… mais j'avais un certain nombre de contraintes que je voulais respecter et qui m'étaient dictées par l'enchaînement des trois premiers jeux : pour clore la série, la liste des exigences devenait dure à remplir… mais ça y est, je l'ai. En soi, le principe du jeu sera très simple – vraiment simple, et j'espère intuitif – en revanche programmer l'IA n'est pas une sinécure, loin de là ! Pour être franc, c'est tout juste si je sais pas où commencer… ce qui est toujours un peu effrayant quand on commence à modéliser le jeu.
Je ne sais pas quand je le commencerai, j'ai vraiment envie de prévoir chacun des détails à l'avance… même si comme je le dis, l'IA va nécessiter pas mal de boulot. Le côté positif des choses, c'est que le jeu sera fonctionnel en une semaine, comptez un mois pour l'intégration d'une IA challengante sans être imbattable, un mois de prise de recul puis une semaine de mise en production.


Voilà, je crois que j'ai fait le tour… comme on dit chez les anglo-saxons, stay tuned !

Mon langage préféré a la syntaxe de l'ActionScript, la puissance du C++, la banque de fonction de PHP, l'indentation de Python, l'extensibilité de Java, l'intuitivité de SQL.

Mon pire langage a la lourdeur du Java, le typage de PHP, les erreurs à la compilation de C++, le sandbox d'ActionScript la syntaxe de Visual Basic et l'interopérabilité de Javascript.

Mon éditeur de texte préféré a la polyvalence et la coloration syntaxique de Kate, la minceur de gedit, les plugins de Notepad++, l'auto-complétion de Netbeans, l'aspect professionnel de Code : : Blocks, l'aspect geek de vim.

Mon OS préféré a la rapidité de Linux, la puissance de Linux, le multitâche de Linux, la personnalisation de Linux, la beauté de Linux.

Mon troll préféré est juste là.

En me baladant sur les réalisations de l'éminent Docteur Goulu, je suis tombé sur cette superbe montre de Pierre Kunz, nommée « Infinity Looping » (depuis renommée Insanity avec un changement de design qui ne lui réussit pas).

Montre infinity Looping de Pierre Kunz

Après avoir admiré le mécanisme extrêmement simple pour une montre de ce genre, j'avoue avoir été tenté par l'achat – mais bon, $20 000, voilà qui n'entre pas dans mon budget ! Tous mes remords de pauvre ont d'ailleurs disparu puisque la montre a été tirée en édition limitée, et n'est plus disponible. Le jour où je serai riche et célèbre, j'écumerai (enfin, je ferai écumer par une armée de secrétaires) le web à la recherche d'un ancien magnat du pétrole devenu pauvre qui revendra sa montre, que je rachèterai alors à quatre fois sa valeur pour le simple plaisir d'acquérir enfin ce joyau mécanique. Mais je m'égare.

Revenons à nos moutons : le jour de ma découverte (dimanche), je me suis lancé le défi de reprogrammer cette montre en deux heures. Pour des raisons indépendantes de ma volonté (ah, j'ai horreur quand le boulot vient s'immiscer dans le weekend… surtout s'il me coupe en plein élan), j'ai été coupé après une heure trente et n'ai pu reprendre que le lendemain soir. Au final, je pense y avoir passé plus de temps, parce que mes capacités graphiques font passer Picasso pour du réalisme et que j'ai eu du mal à maîtriser Inkscape (superbe logiciel, que je conseille fortement).

Sans plus vous faire languir, voilà le résultat brut ; l'analyse suit juste après.

Dis tonton Neamar, tu trouves pas que tes sites font pas très ouèbe 2.0 ? C'est vrai quoi, on peut même pas commenter !

Hum. La franchise m'impose de répondre sans ambages ni atermoiements : « oui ».
Mais mon côté cartésien me dicte d'expliquer les méandres qui m'ont amenés jusqu'à cette position peu courante sur les rivages de l'Internet…

Voilà plusieurs fois que je tombe sur des programmes C cherchant à savoir si un nombre est premier ou pas. La plupart du temps, on peut aller beaucoup plus loin que ce qui est proposé.

Petit tour d'horizon des optimisations à appliquer ; pas toujours évidentes, mais qui ont l'avantage d'être bien plus rapides que l'implémentation naïve.

Définition du cahier des charges

Que doit faire le programme ?

Dans cet article, j'examinerai différents algorithmes qui auront pour but de trouver tous les nombres premiers inférieurs à une constante, MAX_NUM et de les renvoyer à l'intérieur d'un tableau d'entiers.

Les contraintes suivantes devront être respectées :

  • Code le plus performant possible.
  • Pas d'algorithmes compliqués : les codes ne dépasseront pas quarante lignes.
  • MAX_NUM restera inférieur à la taille maximale codable sur une variable de type unsigned long.
  • On ne se soucie pas de l'affichage du tableau à la fin
  • Pour rester général, les codes seront en C.