Showing entries 1 to 10
Displaying posts with tag: Pharo (reset)
Freewill in progress (2)

(Click to enlarge)

What’s up?

As you can see, Freewill now supports 17 different selection policies.  At this point, all of them are coded but only half of them have been tested.

The 11 available termination policies are coded, half of them tested.

So far, only 2 mutation policies are available.  Both of them are coded and tested. I will probably need a few extras for TSP type of problems as well as numerically parametrized problems (e.g. De Jong functions with a domain for each variable).  I’ll probably add 3-4 other ones specific to the problem that started all this adventure!

Only one immigration policy (no immigration!) is available and it will stay that way …

[Lire plus]
What’s new?

What’s new?

After a major data loss (I haven’t given up on getting back all my data, mostly code repositories and databases!), I had to start all my pet projects from scratch. Luckily, it’s easier second time around as they say! And, lucky me, I store all my personal stuff on the web! So here’s a list of what’s coming up on this blog.

Ruzzle

Even though I had a decent working version of the genetic algorithm program to find the best ruzzle grid (original posts in French here, here and here), I wasn’t satisfied with the code.  It slowly evolved from a bunch of code …

[Lire plus]
Les casse-tête

Ceux qui me connaissent bien le savent, j’adore me casser la tête sur une foule de « petits » problèmes (mathématiques, algorithmiques ou autres) : ça permet de garder le cerveau en forme et ça me donne une occasion de faire du Smalltalk et de me garder à jour dans mes skills autant de programmation que d’analyse.

Si vous êtes comme moi, voici une liste de ces petits casse-tête qui m’amusent en ce moment (ou depuis un bout) et qui pourrait vous servir de suggestions…

Les nombres de Lychrel

Avant tout, un peu de vocabulaire!

Un palindrome est une mot, une phrase ou un nombre qui s’écrit de la même façon à l’endroit et à l’envers.  Par exemple, Laval, Bob ou 17371.  Ça peut également être une phrase ou un bout de texte comme « Mon nom » ou le célèbre …

[Lire plus]
MySQL et Squeak et Pharo

Dans l’éventualité d’une réécriture du driver de MySQL pour Squeak et Pharo, j’aimerais avoir une idée de ce que les gens utilisent!  Répondez aux sondages svp!

Versions de Squeak et Pharo.

Versions de MySQL.

 


Classé dans:InnoDb, Memory, MyISAM, MySQL, …

[Lire plus]
Bio-informatique

Je vous parlais, en début d’année, de BioSmalltalk (une librairie d’outils pour la bio-informatique écrite en Smalltalk disponible sur Pharo et Squeak).

Sachez que les auteurs (Hernán F. Morales et Guillermo Giovambattista) publieront un article (en anglais) dans le Bioinformatics Journal (de la prestigieuse Université d’Oxford).  Le sysnopsis de cet article est disponible …

[Lire plus]
Comment presser un citron (troisième partie)

1. Un problème n’arrive jamais seul

Dans la deuxième partie de cet article (le premier article étant ici), nous nous sommes laissés sur un exemple extrême (i.e. une grille avec des lignes et des colonnes vides) afin de vérifier la validité et l’efficacité de la solution présentée dans un des pires scénarios envisageable :

Avant même de débuter, rappelez-vous qu’il est primordial d’exécuter la commande suivante dans votre session pour éviter d’avoir à attendre une éternité, que ce soit pour la …

[Lire plus]
Comment presser un citron (deuxième partie)

Dans le premier article, nous avons vu combien il était facile de solutionner des grilles de sudoku avec une seule requête SQL. Malheureusement, c’était trop beau pour être vrai…

Avant de poursuivre, voici un outil utile pour se faciliter la tâche.  Pour ceux qui utilisent Smalltalk, vous pouvez vous aider du script suivant :


| uneTableOuVue uneStringSudoku stream estLePremier |

uneTableOuVue := 'sudoku_rows_view'.
uneStringSudoku := '.........134825697759364182397182564.........581476239825641973976538421.........'.

stream := ReadWriteStream on: String new.
stream
nextPutAll: 'SELECT * '; cr;
nextPutAll: 'FROM ';
nextPutAll: uneTableOuVue;
space; cr;
nextPutAll: 'WHERE'; cr.

estLePremier := false.
1 to: 9 do: [:r |
1 to: 9 do: [:c | | i |
i := (r-1)*9 + c.
((uneStringSudoku at: i) ~= $. and: [(uneStringSudoku …
[Lire plus]
Comment presser un citron (première partie)

Ainsi donc, cette première partie détaillera la méthode de base utilisée pour résoudre un sudoku en une seule requête SQL.  Et en passant, pour ceux que la petite histoire intéresse, vous trouverez ici un excellent article sur l’évolution du sudoku.

Pour nous faciliter la tâche, nous utiliserons des tables de type MyISAM pour commencer.  Dans le prochain article, nous ferons aussi en sorte que notre méthode ne retourne qu’une seule grille valide même dans le cas où plusieurs solutions existeraient.  Rappelons que notre objectif ultime est d’optimiser une base de données dans le but bien précis de solutionner une grille valide dans des délais raisonnables.  Mais pour cet article, nous nous contenterons de verser dans la facilité!

[Lire plus]
Comment presser un citron (préambule).

"La simplicité est la sophistication suprême" (Léonard de Vinci).

Problème : vous avez à trouver, en seulement quelques secondes, un enregistrement unique parmi des milliards de milliards de possibilité et les seules informations dont vous disposez pour faire votre recherche sont de 17 à 35 attributs sur les 81 que contiennent la donnée tant convoitée… Est-ce possible ? Comment faire? De prime abord, ça semble impossible!

"Impossible n’est pas français" comme le dit le dicton (faussement attribué à Napoléon Bonaparte, vexé par le pessimisme de Jean Léonard, comte le Marois).

Il y a bientôt quelques années de cela, un de mes confrères de travail, …

[Lire plus]
Préambule

De quoi traite ce blogue?

J’aborderai différents sujets, surtout reliés à l’informatique.  Comme mes intérets portent surtout sur Smalltalk et les technologies orientées-objet ainsi que sur les bases de données, vous entendrez souvent parler de Pharo, de Squeak et de MySQL.  J’y traiterai aussi de littérature, des échecs, de logiciels open source, de mathématiques, de musique et d’une foule d’autres sujets.  Bref, je vous ferai part de mes découvertes!

Pourquoi ce blogue?

Parce que j’aime bien partager mes expériences avec les autres et surtout découvrir de nouvelles façons de faire et de nouvelles idées.  Ce blogue servira surtout à présenter des problèmes pratiques et des façons de résoudre ceux-ci.

Pourquoi en français?

Parce que, malheureusement, les ressources disponibles sur internet sont rarement …

[Lire plus]
Showing entries 1 to 10