Lint, Smallint, Quality Assistant, Code Mentor et Code Critic

4 avril 2018

Vous ne savez pas trop comment utiliser l’outil Lint pour Smalltalk dans votre dialecte de Smalltalk préféré, que ce soit Pharo, Instantiations Smalltalk (auparavant VisualAge Smalltalk), Dolphin Smalltalk ou VisualWorks?

Vous devez tout premièrement savoir que cet outil porte différents noms selon l’environnement Smalltalk que vous utilisez.  Il est connu sous le nom de Quality Assistant dans Pharo, SmallLint dans Instantiations Smalltalk, Code Mentor dans Dolphin et Code Critic dans VisualWorks!

Une série de 2 articles (ici et ici) vous introduit à cet outil et à la construction de règles!


ENVY

9 septembre 2017

Que vous l’aimiez ou le détestiez, ENVY fait partie intégrante de l’environnement Instantiations Smalltalk (anciennement VisualAge Smalltalk ou VAST).  Quelques témoignages de célèbres Smalltalkers au sujet d’ENVY.


What’s new?

19 juillet 2016

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 snippets into something I could somehow call a genetic algorithm.  Problem was that my solution was tailored for this specific problem only!  Since I lost all the Smalltalk code, I redid the whole thing from scratch : better design, simpler API, more flexible framework.  I can currently solve a TSP problem, the best ruzzle grid search and a diophantine equation.

I also plan to provide examples of the 8 queens problem, the knapsack problem, a quadratic equation problem, a resource-constrained problem and a simple bit-based example with the GA framework.  Besides, the are now more selection operators, more crossover operators, more termination detectors (as well as support for sets of termination criteria!), cleaner code and the list goes on!  So I’ll soon publish a GA framework for Pharo.

As most of you know, the Rush fan in me had to pick a project name in some way related to my favorite band!  So the framework will be called Freewill, for the lyrics in the song :

Each of us
A cell of awareness
Imperfect and incomplete
Genetic blends
With uncertain ends
On a fortune hunt that’s far too fleet

Bingo

A stupid quest I’ll address after the first version of my GA framework is published.  It all started with a simple question related to the game of bingo (don’t ask!) : can we estimate the number of bingo cards sold in an event based on how many numbers it takes for each card configuration to have a winner?  So it’s just a matter of generating millions of draws and cards à la Monte Carlo and averaging how many numbers it takes for every configuration.  Why am I doing that?  Just because I’m curious!

Glorp

There’s been a lot of action on the Pharo side and Glorp.  I plan on having a serious look at the latest Glorp/Pharo combo and even participate to the development!

Sudoku

I’ll translate my articles (in French here, here and here) on the SQL sudoku solver in English and test the whole thing on the latest MySQL server.  Besides, db4free has upgraded to a new MySQL server version!

NeoCSV

I had done a port of NeoCSV to Dolphin right before losing all my code data.  Wasn’t hard to port so I’ll redo it as soon as I reinstall Dolphin!

Smalltalk

It’s time to reinstall VisualAge, VisualWorks, Squeak, ObjectStudio and Dolphin and see what’s new in each environment!  From what I saw, there’s a lot of new and interesting stuff on the web side.  Add to that the fact that most social media platforms have had significant changes in their respective APIs recently, so there’s a lot to learn there!

 

That’s a wrap folks!


Quelques moqueries!

4 février 2016

Non, il ne s’agit pas d’un billet humoristique! Mais dans ce cas-ci, moquerie se veut la traduction imprécise (à dessein) du terme mock, qui signifie plutôt simulacre dans le cas qui nous occupe.

Un mock, c’est un outil comme un autre.  Même si parfois j’ai l’impression qu’on surévalue grandement son utilité.  En 20 ans de Smalltalk, je n’ai eu qu’à travailler avec des mocks seulement 2 fois!

Plusieurs solutions existent pour votre environnement de développement favori!

Mocketry

Disponible pour Squeak, Pharo, aussi la version pour VisualWorks dans le Cincom Public Repository

SMock

Disponible pour Dolphin,et Pharo.

MiniSMock

Une version pour VisualAge,

BabyMock

Une version pour Pharo.

Teachable

Disponible pour VisualWorks et Squeak.

DoubleAgent

Disponible pour VisualWorks.


Smalltalk en vrac (20)

5 janvier 2016

Smalltalk

Un résumé de ESUG 2015 par Niall Ross.

Compte-rendu d’une expérience de développement d’un ERP avec VisualWorks, GemStone et Seaside.

Pharo

Interactive Fiction : une version de SmallWorlds (Dolphin Smalltalk) portée sur Pharo!

Une implémentation d’un ReadWriteLock.  L’annonce ici.

Il y a maintenant kit de développement pour AWS qui supporte Elastic Transcoder ici.

Iliad 0.9.4 fonctionne maintenant sur Pharo 4.x !

OXR : un nouveau package pour utiliser Open Exchange Rates.

Un sondage sur votre utilisation du package OS Process.

Amber

La version 0.14.18 est maintenant disponible ici!

Squeak

Il est dorénavant possible d’exécuter du code JavaScript dans SqueakJS!

Vous pouvez maintenant faire des builds de vos projets sur le serveur Travis-CI.  L’annonce ici.

VASmalltalk

PUM 08.06.02-02.06.47 est disponible pour VASmalltalk 8.6.2!

GemStone

Object Explorer pour GemStone/S 64.

 

 


Smalltalk en vrac (19)

19 décembre 2015

Smalltalk

Smalltalk Digest, édition d’octobre 2015.

Smalltalk Digest, édition de novembre 2015.

Smalltalk Digest, édition de décembre 2015.

Pharo

Trantor : un nouveau framework de pair à pair (P2P, peer to peer) annoncé ici.

Un pilote PhaROS pour Robulab ici.

CalipeL : un outil de benchmarking pour Pharo et Smalltalk/X !

Macro Recorder : un outil pour automatiser des transformations de code! Une démo ici.

Command Availability : un petit utilitaire pour déterminer si une commande est définie sur Unix.

TinyBlog : un tutoriel pour vous expliquer comment bâtir une application web avec Pharo… et encore plus!

Un tutoriel sur Magritte en format PDF!

Hourra!  Spur approche!  L’annonce ici.

Pharo et Unicode : récentes observations et commentaires.

Automata : un microservice d’automation basé sur une state machine.  Plus facile à lire en anglais qu’à expliquer en français!

Un autre vidéo montrant Roassal2 à l’oeuvre.

Pour avoir un avant-goût de Brick (le remplacement éventuel de Morphic), l’annonce est ici.

Un vidéo montrant Mondrian en action.

ChronosManager : un outil de gestion de temps.

QuickAccess : un outil de gestion de scripts (similaire au célèbre Script Manager)

Un très court vidéo qui montre Smarter Critics à l’oeuvre.

Vidéo montrant un guichet automatique écrit en Pharo!

Un package qui implémente Material Design Lite dans Seaside.

Logoot : un outil de collaborative editing basé sur Trantor.

Twisty : un nouveau framework pour gérer le texte!

TwitterAPI : Twitter à votre portée!

Un package pour générer du code Latex pour les mathématiques.

Annonce de la version 2.0 de RenoirSt, un outil de gestion de CSS. Les slides de la conférence Smalltalk 2015 sont ici.

Le projet GeekO : ou comment visualiser les tweets.

Quality Assistant : un survol.

VDM-SL traduit en code Smalltalk, c’est possible!

Pharo et les raccourcis-clavier : un bref vidéo sur les derniers développements.

PharoCloud OS : comment construire une application Pharo bootable ISO.

Squeak

Aida 6.6 est maintenant disponible pour Squeak 5.

VisualWorks

Un autre vidéo de Roassal2 sur Visualworks.

La version 8.1 est disponible!

SqueakJS

Nostalgique ou seulement curieux? Vous pouvez maintenant vous amuser avec une implémentation de Smalltalk-78 dans votre fureteur.  La documentation est ici!

GemStone/S

La version 3.2.10 (64 bits) est arrivée!

ObjectStudio

La version 8.7 est disponible!

VA Smalltalk

La version 8.6.2 est disponible!


Chalten

21 avril 2014

Une nouvelle librairie pour la gestion des dates, du temps, des durées, des fuseaux horaires et des calendriers vient de se pointer le nez : Chalten.  Quoique dans bien des cas la librairie Chronos suffise à la tâche, Chalten offre de toutes nouvelles possibilités dans un paradigme assez différent de ce à quoi l’on s’attend habituellement.  L’approche utilisée est très intéressante, voire brillante!

Chalten est disponible sur Pharo, VisualAge, Squeak, GemStone et VisualWorks!!


VA Smalltalk 8.6

8 septembre 2013

La nouvelle version de VA Smalltalk de Instantiations est disponible!

Le changements et ajouts à la version 8.6 sont détaillés ici.

Le lien pour télécharger est ici.


Smalltalk et performance : tinyBenchmarks

8 décembre 2012

Il existe plusieurs programmes d’évaluation (benchmarks) servant à établir des comparaisons.  Le plus simple dont nous disposions en Smalltalk est tinyBenchmark (dans Squeak, Pharo et quelques autres saveurs de Smalltalk).

Ce petit test simpliste mesure le nombre de bytecodes traités par seconde ainsi que le nombre d’envois de messages (message sends) par seconde.  Bref, ce test vaut ce qu’il vaut : il évalue  principalement la rapidité de la machine virtuelle sans se soucier de l’efficacité et de la rapidité du code Smalltalk ou des primitives.

Un test plus représentatif et complet, comme le Computer Language Benchmark Game, est nettement plus révélateur de l’ensemble des capacité d’un environnement Smalltalk.  Dans le passé, il en existait des versions pour Squeak et GNU Smalltalk mais il ne semble maintenant rester que celle de VisualWorks.  Le code Smalltalk pour le CLBG est toutefois disponible ici

Malgré tout, par simple curiosité, j’ai utilisé tinyBenchmark pour comparer différentes versions de Smalltalk.  Les versions évaluées étaient:

  • VisualWorks Non Commercial 7.8 (VW)
  • ObjectStudio 7.1 (OS)
  • VisualSmalltalk 3.0.1 (VS)
  • Squeak 4.2 All-in-One (SQ)
  • PharoCore 1.2 RC3 (PH)
  • VA Smalltalk 7.5 (VAST)
  • Dolphin Professional 6.02 (DP)
  • Amber 0.9.1 (AM)

Sans m’en douter, quelques surprises m’attendaient!

1) Bytecodes par seconde

VisualWorks Non Commercial 7.8 : 607691685
ObjectStudio 7.1 : 35717175
Visual Smalltalk 3.0.1 : 281603053
Squeak 4.2 All-in-One : 85373820
PharoCore 1.2 RC3 : 97390689
VA Smalltalk 7.5 : 358381181
Dolphin Professional 6.02 : 110771676
Amber 0.9.1 : 2195520

Bytecodes par seconde

Bytecodes par seconde

On remarque immédiatement la nette domination de VisualWorks sur tous ses concurrents et la seconde place de VisualAge.  La performance de VisualSmalltalk est surprenant tandis que je m’attendais à ce que Dolphin fasse mieux!  Évidemment, dans le cas d’Amber, il s’agit d’un petit nouveau mais laissons-lui le temps de mûrir un peu!

2) Envois de messages par seconde

VisualWorks Non Commercial 7.8 : 52403197
ObjectStudio 7.1 : 708240
VisualSmalltalk 3.0.1 : 59120053
Squeak 4.2 All-in-One : 3128033
Pharo Core 1.2 RC3 : 3828940
VA Smalltalk 7.5 : 19515614
Dolphin Professional 6.02 : 5097612
Amber 0.9.1 : 133367

Envois de messages par seconde

Envois de messages par seconde

Grosse surprise ici!  VisualSmalltalk domine!  Évidemment, VisualWorks suit de près tandis que Dolphin me déçoit encore!  J’ai toujours eu l’impression que Dolphin était fichtrement rapide mais ce n’était, hélas, qu’une impression!

Évidemment, la liste des versions de Smalltalk est loin d’être complète. J’essaierai, un  de ces jours, de refaire ce petit test (ou mieux, le Computer Language Benchmark) pour tous les environnements mentionnés ci-haut ainsi que les versions de Smalltalk suivantes:

Bref, toute cette histoire ne fait que commencer!  J’essaierai d’aboutir avec une version de tinyBenchmark pour toutes les versions de Smalltalk mentionnées dans cet article et qui roulent sur Windows… Éventuellement, je ferai la même chose pour le Shootout Benchmark…

À suivre!


ESUG 2012

20 septembre 2012

Pour les intéressés et les fans de Smalltalk, les diapos (en anglais) de la conférence 2012 de ESUG (European Smalltalk User Group) sont disponibles ici sur slideshare.