Tutoriel Boost Graph Library
Posted by Calvin1602 in C & C++ on septembre 25th, 2009
Boost, c’est le bien, et la BGL ne fait pas exception à la règle. BGL permet d’utiliser des algorithmes de graphes précodés en l’adaptant à nos besoins via les templates, et économise beaucoup de temps de développement et de debug.
C’est bien beau, mais encore faut-il que les puissants concepts utilisés pour faire fonctionner la librairie soient bien documentés. Or, la documentation de la BGL est tout simplement ignoble :
Read the rest of this entry »
(Petit) Clône de client telnet en Haskell
Posted by Alp Mestan in Langages fonctionnels on août 28th, 2009
Bonjour,
L’autre nuit, muni de café, j’ai souhaité m’amuser avec Haskell. J’ai alors consulté le chapitre sur le réseau en Haskell de Real World Haskell et… j’ai écrit un (très petit) clône de client telnet… qui fait 41 lignes. Le seul soucis étant que dans toute application de ce genre, on doit partager habilement la lecture des entrées de l’utilisateur, et l’affichage de ce que l’on nous envoie. Ceci mis à part, tout cela fonctionne très bien !

CipherSaber – Chiffrement en kit
Posted by Wett in Non classé on août 13th, 2009
Sabre laser de chiffrement
Au détour d’une naviguation web fortuite mais bienheureuse, je suis tombé sur CipherSaber. Vous savez, c’est ce genre de moment où on tombe sur une initiative sympa, facile à suivre et qui fait sens. Bref, j’ai accroché tout de suite, alors j’ai laissé tomber ce que j’étais en train de faire et y ai consacré mes heures suivantes.
CipherSaber, c’est la reprise du concept selon lequel il faut en savoir faire un minimum, tout seul, comme un grand. A l’instar des Jedis dans l’univers Star Wars qui vont réaliser eux-même leur sabre laser (vous comprenez maintenant le nom du projet), on nous propose de réaliser nous-même notre petit logiciel de chiffrement. Read the rest of this entry »
Haskell Platform, ou comment se mettre à Haskell sans soucis !
Posted by Alp Mestan in Langages fonctionnels on août 12th, 2009
Bonjour à tous,
Cela fait quelques temps maintenant que la communauté Haskell a sorti Haskell Platform. Il s’agit d’un « paquet » qui regroupe :
- le compilateur haskell GHC, un debugger, un profiler, etc
- les bibliothèques les plus populaires et les plus utilisées, fournies d’office
- tout un tas d’outils auxiliaires, comme haddock, qui permet de générer de la documentation depuis les commentaires du code source.
Il existe des paquets pour déjà quelques distributions Linux, sachant que ce sera bientôt prêt pour Debian et Ubuntu également. Les installeurs Windows et Mac sont très simples également.
Bref, plus aucune raison de ne pas essayer Haskell
Préprocesseur et énumérations : la suite.
Cet article fait suite à mon premier article intitulé « Faire un peu joujou avec le préprocesseur »
(disponible ici : http://www.coder-studio.com/blog/preproc/ ).
Pour rappel, nous en sommes restés à un système de macro qui permettait d’automatiser la création
d’un opérateur « < <" pour iostream, capable d'afficher le nom d'une énumération.
Faire un peu joujou avec le préprocesseur…
Ça faisait un bail que je n’écrivais pas sur Coder-Studio…
Chose réparée
Du 17 au 19 avril 2009, a eu lieu la finale de Cod’INSA, un concours de programmation inter-INSA,
qui s’est déroulée à l’INSA de Toulouse (plus d’infos sur http://codinsa.insa-lyon.fr pour les intéressés).
Faisant partie des organisateurs, j’ai eu à faire l’interfaçage C++/Java (oui parce qu’il y en a qui veulent
participer en Java…allez comprendre :p [/troll]). J’y ai découvert les joies de GCJ et de CNI, ce qui
pourra peut-être être l’objet d’un autre article, selon ma motivation…
Bref, tout ça pour dire qu’il m’a fallu interfacer une librairie écrite en C avec du Java, et qu’il a fallu
automatiser un peu le boulot pour la partie concernant les énumérations.
Dans cet article, je vais illustrer une méthode pour faciliter l’affichage des valeurs des énumérations.
En gros, le but, c’est que si l’on a :
MonEnumeration e = E_VAL_1; std::cout < < e << std::endl; |
il s’affiche alors à l’écran « E_VAL_1″.
GTK+ en Haskell
Posted by Alp Mestan in Langages fonctionnels on juin 16th, 2009
Bonjour,
M’étant mis à Haskell depuis quelques temps (principalement grâce au désormais fameux Real World Haskell), je me suis dis qu’il était temps que je regarde un peu du côté des bibliothèques pour interfaces utilisateurs. Hé bien, je n’ai pas été déçu. Il y a notamment Gtk2Hs qui fournit un bon binding de GTK+, compatible avec Glade (le designer) et qui permet donc de charger des interfaces depuis du XML.

Challenge Tower Bloxx
Posted by nicolas66 in Optimisation combinatoire on mai 10th, 2009
Certains d’entre vous connaissent probablement le jeu Tower Bloxx sur téléphone portable. Pour résumer, le jeu consiste à construire une petite agglomération en plaçant des immeubles sur une grille carrée de taille n x n. Chaque immeuble est créé en empilant un à un les étages à l’aide d’une grue qui balance d’un bout à l’autre de l’écran. A chaque fois qu’un étage est ajouté, des habitants viennent peupler l’immeuble. Plus les étages sont alignés, plus l’immeuble abrite d’habitants et moins l’immeuble balance pour placer de nouveaux étages. Il existe plusieurs types d’immeubles (m), avec un nombre de points et une population croissants : résidentiel (bleu), commercial (rouge), industriel (vert) et hôtel de luxe (jaune). Les règles de placement des immeubles sont les suivantes :
- Un immeuble bleu peut être placé partout.
- Un immeuble rouge doit posséder au moins un immeuble bleu dans son voisinage.
- Un immeuble vert doit posséder au moins un immeuble bleu et rouge dans son voisinage.
- Un immeuble jaune doit posséder au moins un immeuble bleu, rouge et vert dans son voisinage.
On considère ici un voisinage en 4-connexités. Dans le jeu original, il est possible de détruire des tours voisines afin de placer davantage de tours de plus grande importance (loophole). Dans un souci de simplicité, j’ignore ici cette possibilité. L’image ci-dessous donne un exemple d’agglomération qui respecte les règles énoncées précédemment.

Exemple d'agglomération



Commentaires récents