Planet Smalltalk

October 01, 2014

Torsten Bergmann - ESUG 2014 Photos

Photos from European Smalltalk User Group (ESUG) 2014 conference can be found here.

Torsten Bergmann - Smalltalk news on all sides

While I often blog about news in the open source Smalltalk scene one additionally has to note that the commercial Smalltalk vendors are also playing well. Interesting news from Instantiations about upcoming VASmalltalk and similar news from Cincom about CincomSmalltalk appear regulary on the web. Nice!

September 30, 2014

Torsten Bergmann - Visualize network latency using Pharo

Visualize network latency using Pharo. Read more here.


More infos here.

Torsten Bergmann - VISSOFT 2014

2nd IEEE Working Conference on Software Visualization is currently held in Victoria, CA. From the twitter posts it looks like the Pharo based agile visualization tools are interesting for the participants.

September 29, 2014

Travis Griggs - Dipping Toe in Water

Two plus years ago, I decided to take a hiatus from blogging. In addition to a cessation of blogging, I also delisted from Facebook and Goggle+. Dropped off of a bunch of mailing lists. Sort of walked away from an online persona I had spent a bit of time curating. At one point, I had always thought, maybe I'll write a "year later" post to try and put some of my life/career changes that were going on in perspective.

A year came, and I thought about it. But thoughts didn't gel enough, so I put a retrospective aside for the time being, and went back to work. I was happily coding in C with 8K of RAM by that point. Smattered with Python. And then another year went by, and I was amusedly coding in iOS by then.

This morning, I was working my way through a tutorial on Swift (Apple's new language), I thought I'd have a go at it again. It probably won't be (much) about Smalltalk; I have done very little of that in the last 2 years. But I do miss the cathartic process of journaling my passage through programming.

We'll see how it goes.

ESUG news - Photos ESUG2014

Here is a small ESUG 2014 retrospective.

September 28, 2014

Ricardo Moran - ¿Por qué usar robots en la escuela?

Podríamos comenzar hablando del futuro, de las nuevas tecnologías. Podríamos mostrar cientos de artículos periodísticos y de investigación que vaticinan que los próximos 50 años van a estar signados por la tecnología física, por los procesos automatizados juntos con la inteligencia artificial. Pero no es esa nuestra motivación más importante. Nosotros amamos la robótica en la escuela como un recurso didáctico que combina lo mejor de dos mundos: una tecnología que está en el imaginario de los chicos y que los fascina y motiva como ninguna otra; y la posibilidad de volver a experimentar con lo físico, como nosotros, los mayores de 40, lo hemos hecho con nuestros juguetes. Con este material los chicos comparten, discuten, argumentan, aprenden a definir y cumplir reglas, experimentan, realizan hipótesis, las comprueban o la descartan, se equivocan, reintentan, fracasan, llegan a buen puerto, se respetan. Y con el maravilloso condimento de que los docentes no saben del tema. Con lo cual, su rol es mucho más rico que el de un mero transmisor de conocimientos. En el aula taller de robótica el docente es responsable de que los alumnos aprendan, que sepan comunicarse, que hagan un buen trabajo en equipo, que sepan explicar lo que hacen y por qué lo hacen, que se respeten en sus roles. Es el que indaga, da cauce a la energía creadora de sus alumnos, propone nuevos desafíos, acompaña desde aquello que ningún libro ni internet puede dar: la mirada pedagógica. Y para eso no hace falta saber de robótica. Eso está en los sitios especializados, en el material didáctico. El docente le da un condimento único e irremplazable, de la misma manera que el trabajo del chico en el aula no es reemplazable por el trabajo en su casa.

Podríamos seguir con muchas palabras más, pero tal vez estas imágenes dicen mucho más:

La ñata contra el vidrio

Todos interesados por la robótica



September 26, 2014

Pharo Weekly - Ubuntu packages and their PPA looking for a maintainer

Damien Cassou the maintainer of Ubuntu package is looking for a maintainer.

He announced the following:

I’ve recently switched my Linux distribution from Ubuntu to NixOS. This means I can no longer maintain the Ubuntu packages and their PPA ( These packages need a maintainer! The good side of it is that it is not a lot of work as I did all the automating infrastructure:

Basically, the maintainer will have to launch a few shell scripts regularly (once a month for example). I will obviously be available to help the new maintainer. The community needs *you*.

Good news is: I packaged the Pharo VM for the Nix package manager which can be installed on many Unix (e.g., Linux, MacOS X, FreeBSD). And NixOS will have the Pharo VM package in its next release in October!

September 25, 2014

Pharo Weekly - Blog translator

Udo Schneider wrote a nice blog article on how to use block as translators.

I just finished a blog entry. It shows how to use Smalltalk blocks as parsers/translators. E.g. translating a Block
[:customer | (customer joinDate year is: Date today year)]
into an SQL-like String
(YEAR(customers.joinDate) = 2014)
The SQL stuff is just an example – you can create nearly any output.
Check out
Maybe that’s old stuff for some of you – but I hope it’s interesting for some at least :-)
Comments and feedback appreciated.



September 24, 2014

Torsten Bergmann - Smalltalk block translator

Torsten Bergmann - Quicksilver - a Framework for Hierarchical Data Analysis in Pharo

Pierce Ng - Glorp with NBSQLite3

Sven van Caekenberghe has written a very nice tutorial implementing a Reddit clone in Pharo using Seaside, Glorp and PostgreSQL. Sven also makes available a prebuilt image containing the application.

Seeing that the image contains Glorp working with the PostgresV2 driver, I set about integrating NBSQLite3 with Glorp. After about an afternoon’s work, I now have working with Glorp+NBSQLite3. with NBSQLite3
$ sqlite3 reddit.db
SQLite version 3.8.2 2013-12-06 14:53:30
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> select * from reddit_links;
1||Pharo Smalltalk|2014-09-22 22:46:53|1
2||Planet Smalltalk|2014-09-22 22:47:18|1
6||The World of Smalltalk|2014-09-22 22:58:50|0

There is still much to be done to get Glorp fully working with NBSQLite3: Some tests apparently expect Glorp proxies, but are getting OrderedCollections, and one particular test rendered my Linux X session non-responsive to mouse and keyboard, except for screen brightness key chords!

September 23, 2014

Pharo Weekly - New release of SciST

Dear all,

we are to happy to announce SciSmalltalk v0.14

SciSmalltalk is a new Smalltalk project, similar to existing
scientific libraries like NumPy, SciPy for Python or SciRuby for Ruby.
SciSmalltalk already provide the following basic functionalities:

- complex and quaternions extensions,
- random number generators,
- fuzzy algorithms,
- Didier Besset's numerical methods,
- Ordinary Differential Equation (ODE) Solver.

Version 0.14 includes new work from Werner Kassens about function fittings:
and math accuracy framework:

SciSmalltalk project web page is here:
All the code is available under the MIT licence.

We have more than 506 green unit tests and we run a CI job here:

This version should work on Pharo 3.0/4.0 and also Squeak 4.5 (to
be confirmed).

We are a small community, we are looking for more volunteers to
contribute code and documentation. Please join us at :!forum/scismalltalk

Noury Bouraqadi - Towards Live Programming in ROS with PhaROS and LRP

In this tutorial we will show you how to programs robot behaviour on using Live Robot Programming over PhaROS. Setup Follow the steps 1 to 4 of this post. Create a ROS node that consumes /kompai2/pose and /kompai/scan and publish in /command_velocity. To do this, just executing this: LrpharosPackage uniqueInstance Create an instance of the… Continue reading

David Buck (Simberon) - OpenGL ES from Smalltalk on Android

Well, here's my first rendering of an OpenGL scene from Smalltalk on the Android:

It's your standard plain colored triangle on a plain background - so shoot me.  But this image was generated by calling OpenGL primitives from my Smalltalk VM on an Android device, so it's pretty special.

I've talked about this Smalltalk before here.  Here's the current status.  I have all of the same bytecodes as VisualWorks implemented with the exception of the bytecode for thisContext. This allows me to use the VisualWorks compiler for free.

My source code is kept in a Store package in a separate namespace.  To run the code, I package all the classes and methods from that package into an image file in my own format - the Android image isn't compatible with a standard VW image.  This image is added as an asset in an Android project and sent along with a .so shared object library for the VM where it runs on the Android.

There's no Java code in the project at all.  I'm using a native activity in C and I've merged the Android event loop into the Smalltalk interpreter loop.  This allows me to handle events from the Android although I currently don't have code for that.

For debugging purposes, I can package a development image.  On startup, this image connects by a socket connection to a VW application which I wrote to provide low-level debugging and stepping instructions.

The system is still in its infancy.  There are still lots of things to develop like the garbage collector and most of the class library.  I have some basic operations but there's a lot of work needed to build up the library.  So far I don't have large integers although that's in the works.  I do support Float and Double and these classes are being used to help build the OpenGL image above.

I'll be demoing this system at Camp Smalltalk in Vancouver.  I'd be happy to answer questions about it.  It still needs a lot of work, but it's starting to produce real results.

September 22, 2014

Cincom Smalltalk - Smalltalk Digest: September Edition

The September edition of The Cincom Smalltalk Digest is available now.

Pharo Weekly - Network latency analysis with Pharo

Lionel Morino from the University of Bern announced his work on understanding network latency!
Here is his announce!
Hi All,

I have been working on a visualisation of latency on a network. I found an interesting dataset with latency information of 140 cities around the world.
In the visualisation I show different metrics regarding latency such as from each city which other has the best/worst latency; cities that geographically are close but have high latency; far cities that have low latency; and average latency for each city.
When visualising the worst latency for each city I found that, for this network (at least), Valencia and in a minor extent Nairobi represent the worst endpoint for connections (in terms of latency). Also in the visualisation of far cities with low latency, Newmarket in Canada and Toledo in Spain concentrate the best endpoint for connections coming from Europe and North-America respectively.
Here there is a screencast:
If you want to load the code:
Gofer new smalltalkhubUser: ‘merino’
        project: ‘NetworkLatency';
        package: ‘ConfigurationOfNetworkLatency';
(ConfigurationOfNetworkLatency project version: ‘0.1’) load.
To execute the visualisation:
NLVisualise new open
I would be glad to have your comments and suggestions.
Best regards,
Leonel Merino

September 21, 2014

Torsten Bergmann - PocketCube solved by DijEvolution

Dijkstra shortest path search algorithm can find solution for PocketCube using Pharo. See the video here.

September 20, 2014

Pharo Weekly - Master your tests with Hapao2

Hapao2 a great test analysis tools was released by ObjectProfile! Here is their announce:

We are happy to release Hapao2 for Pharo. Ricard Jacas and Alejandro Infante put quite some work on Spy2 (an über cool profiling framework for Pharo) and Hapao2.
Hapao2 is about assessing the test coverage of your code and is a major revamp of Hapao1, which was presented a couple of years ago by Vanessa.
Hapao2 does not only list covered and uncovered methods, as most test coverage tool on Earth will do. Hapao gives a great visualization to easily navigate in your code, assess its complexity, and give you a great visual output telling its coverage.
You need Roassal in your image:

Gofer new smalltalkhubUser: ‘ObjectProfile’
project: ‘Roassal2′;
package: ‘ConfigurationOfRoassal2′;
(Smalltalk at: #ConfigurationOfRoassal2) load

and you need S2py:
location: ‘’
user: ”
password: ”

You can run the test coverage on :
– the class classes you have modified,
– on a particular
– on a particular class category
– on the last class categories you have modified

 – on the last packages you have modified
Here is a portion of a large coverage:
Screen Shot 2014-09-16 at 12.00.11 PM
A technical description of Hapao may be found on
We are daily using Hapao to help us understand our tests.
Ricardo, Alejandro & Alexandre

Alexandre Bergel

September 19, 2014

Pharo Weekly - Datatable support for Seaside

Esteban Maringolo announced the support of for Seaside.
Here is his announce. 

Hi folks,

This mail is just a heads-up to anybody already using DataTables
( or that developed a Seaside wrapper for it.
I just uploaded my initial working version of DataTables to STHub. If
your current wrapper is better than mine we can merge our efforts.

This initial version supports the basic features to instantiate a
DataTables jQuery object, plus support for AJAX+JSON responses and
also Server-side Processing

I still have to write a proper example of how to use it, but if you
load the DataTables-Magritte package it will include a
DTMagritteReport that you can use to replace the "stock" MAReport.

Once I have time I'll try to set up an example to show the different
ways it can be used. Meanwhile look at the DTMagritteReport class to
see a particular use case. It includes support for server side sorting
(multiple columns), filtering, pagination, search.

To load it with all the dependencies run:

Gofer it
  smalltalkhubUser: 'emaringolo' project: 'DataTables';
  package: 'ConfigurationOfDataTables';

(Smalltalk at: #ConfigurationOfDataTables)project development load: 'Magritte'.

The STHub is:!/~emaringolo/DataTables/


Torsten Bergmann - Bootstrap (V0.12.2) for Seaside

An updates version of Bootstrap (V0.12.2) for Seaside is available. You can easily load it from the Configuration Browser in Pharo 3.0 or the project site.

Beside more tests it features vertical tabs which is a simple wrapper of a component found on the web. 

Look at the online demo for Bootstrap to see how easy one can use them:

Torsten Bergmann - DataTables jQuery plugin for Seaside

If you build a web application using Seaside and Pharo, maybe using my Bootstrap wrapper project you might be interested in a good data table plugin to display tabular data.

There is a nice (commercial) jQuery plugin called DataTables. Esteban made it available as a plugin for Seaside now and describes this here.

September 18, 2014

Pharo News - Pharo Sprint Lille

<p>We are organising a small public Pharo Sprint in Lille end of September, 2014:</p> <ul><li> When? Friday, 26th September, starting at 10:00am</li><li> Where? RMoD, Inria Lille, <a href="">Building B, third floor</a></li></ul><p> As the building is not open to the public, please contact us before if you plan to come. </p>

September 17, 2014

Smalltalk Jobs - Smalltalk Jobs – 9/17/2014

NeoSoft in France, near Tours, is looking for Smalltalk/Java developers.  There are two URLs but they are for the same job.

Filed under: Employment

Pharo News - Pharo Sprint Lille

<p>We are organising a small public Pharo Sprint in Lille end of September, 2014:</p> <ul><li> When? Friday, 26th September, starting at 10:00am</li><li> Where? RMoD, Inria Lille, <a href="">Building B, third floor</a></li></ul><p> As the building is not open to the public, please contact us before if you plan to come. </p>

September 16, 2014

Torsten Bergmann - SortFunctions for Pharo

SortFunctions allow you to easily work with sorting in Smalltalk. Checkout the project at SmalltalkHub where you will also find the docu and examples.