Planet Squeak

blogs about Squeak, Pharo, Croquet and family
planet squeak - planet squeak es - planet squeak jp - planet croquet - planet squeak code - planet smalltalk

January 20, 2018


Fari: a shell tool to fetch and prepare your fresh images

Here it is, tell me what you think:

We discussed it with Christophe and of course there is some overlap with PharoLauncher, and in the future, it might get replaced by a command-line version of PharoLauncher based on Clap.
But for the moment it works and fits my twisted mind better 😁

by Stéphane Ducasse at January 20, 2018 07:55 AM

January 19, 2018

Torsten Bergmann

InriaSoft - Pooling software development for sustainability

There is a Launch of InriaSoft, a software community. Read more - it is a nice article with Pharo mentioned.

by Torsten ( at January 19, 2018 10:56 PM

January 18, 2018


PharoLauncher 1.1

Hi all,

I just released PharoLauncher 1.1. There are now 64-bits versions for Mac and Linux. Jenkins build is now managed through a Jenkins file.

Here is the changelog (details on

New features:
#66 new command: import an image into the launcher default image folder
#65 new command: remove a template from “Downloaded templates”
#64 new command: create a local template from an image and remove the image
#57 new option: run an image from a login shell to inherit from shell startup scripts to set up environment variables.
#54 It is now possible to run an image anywhere on your file system if you click “launch” and no image is selected
#23 Pharo Launcher now has an “about” box giving its description, version and a link to the bug tracker.
#62 Pharo Launcher should not load default Pharo settings
#51 Pharo Launcher now sets the current directory to the directory containing the image (was the VM directory). Avoid confusions in Pharo 7 images.
Bux fixes:
#60 hardReset option causes troubles to PharoLauncher
#56 #, was sent to nil
#55 Display name of Pharo 7 images unusable
#52 Cannot open a Pharo 2 image
#47 Cannot run pharo 50 pre-Spur images
You can get platform bundles from files.pharo.org

by Stéphane Ducasse at January 18, 2018 08:14 PM

January 16, 2018

Benoit St-Jean

La chanson du jour (1498)

RIP Dolores O’Riordan…

When We Were Young de Dolores O’Riordan.

I wanna get out
I wanna go home
Is anything better
Than you on the phone?

by endormitoire at January 16, 2018 01:00 AM

January 15, 2018

Benoit St-Jean

La chanson du jour (1497)

Fade To Black de Ethereal Motion.

She’s running out of whiskey
She’s running out of time
She plays me like a G string
Says baby, you’re doing just fine

by endormitoire at January 15, 2018 06:19 AM

La chanson du jour (1496)

I Love The Nightlife de Alicia Bridges.

Oh I, I love the nightlife
I got to boogie
On the disco ’round, oh yea

by endormitoire at January 15, 2018 05:58 AM

La chanson du jour (1495)

Steambreather de Mastodon.

I wonder who I am
Reflections offer nothing
I wonder where I stand
I’m afraid of myself

by endormitoire at January 15, 2018 12:19 AM

January 14, 2018

Torsten Bergmann

Woden2 for Pharo 7

The "World Dynamic Engine 2" running on Pharo 7. Read more.

by Torsten ( at January 14, 2018 04:11 PM

Pharo Sprint dates 2018

Next sprint dates for Pharo were announced.

by Torsten ( at January 14, 2018 04:08 PM

Moose2Model 1.1.0

New release 1.1.0 is available

by Torsten ( at January 14, 2018 04:07 PM


BitTrex API for Pharo

Thanks everyone who advised on Zinc, REST, NeoJSON, HMAC & Libsodium
to help me on my way to implement an interface to the Bittrex bitcoin
exchange.  I’ve got to the point where I’m happy to make an initial
0.x release.  After all my years having fun hacking around Pharo, this
is my first (tiny) product. Hopefully it may grow. 🙂

The implementation is probably closest to a Command pattern
with a class per entry-point.  All the v1.1 entry points are
implemented except a few to deposit & withdraw money from the
exchange.  These are currently infrequent events for me and left for
manual action.

I’m optimistic that I’ll add a few more exchanges so I created a
github org to group them together.  Contributions welcome.

Please see quick start instructions here…

by Stéphane Ducasse at January 14, 2018 11:34 AM

Torsten Bergmann

Pharo and Bittrex API

A Pharo/Smalltalk interface to the Bittrex API. The project is on Github and the announcement is here.

by Torsten ( at January 14, 2018 09:59 AM

January 13, 2018

Pierce Ng

Seaside-REST APIs for RedditSt20

I've implemented RESTful APIs for RedditSt20 using Seaside-REST. The API endpoints are accessible using Curl:

% curl -X GET -H "Accept: text/json"
<JSON output in one long line>

The same from Zinc, using NeoJSON to pretty-print:

NeoJSONWriter toStringPretty: 
  (NeoJSONObject fromString: 
    (ZnEasy get: '') contents)


		"points" : 0,
		"url" : "",
		"created" : "2018-01-13T20:03:56.405254+08:00",
		"title" : "PostgreSQL",
		"id" : 9
		"points" : 0,
		"url" : "",
		"created" : "2018-01-13T20:03:56.404526+08:00",
		"title" : "SQLite",
		"id" : 10
		"points" : 0,
		"url" : "",
		"created" : "2018-01-13T20:03:56.403656+08:00",
		"title" : "Pharo",
		"id" : 11

Voting is implemented using POST:

% curl -X POST \
    -H "Accept: text/json" \
    -H "Content-Type: text/json" \  

Let's check out the highest ranking links:

NeoJSONWriter toStringPretty: 
  (NeoJSONObject fromString: 
    (ZnEasy get: '') contents)

Here's the output:

		"points" : 1,
		"url" : "",
		"created" : "2018-01-13T20:03:56.403656+08:00",
		"title" : "Pharo",
		"id" : 11
		"points" : 0,
		"url" : "",
		"created" : "2018-01-13T20:03:56.405254+08:00",
		"title" : "PostgreSQL",
		"id" : 9
		"points" : 0,
		"url" : "",
		"created" : "2018-01-13T20:03:56.404526+08:00",
		"title" : "SQLite",
		"id" : 10

To create a new link, use PUT:

% curl -X PUT \
    -H "Accept: text/json" \
    -H "Content-Type: text/json" \
    -d '{"title":"Glorp", "url":""}' \   

And here it is:

		"points" : 0,
		"url" : "",
		"created" : "2018-01-13T20:15:15.569197+08:00",
		"title" : "Glorp",
		"id" : 12

Code is on STH. I plan to move it to GH anytime now.

by Pierce Ng at January 13, 2018 08:54 PM

Benoit St-Jean

La chanson du jour (1494)

Promises des Cranberries.

Oh, all the promises we made
All the meaningless and empty words
I prayed, prayed, prayed
Oh, all the promises we broke
All the meaningless and empty words
I spoke, spoke, spoke

by endormitoire at January 13, 2018 06:29 AM

January 12, 2018


2018 next sprints…

For Pharo sprints for the next months, we suggest these dates:
Jan 26
Feb 23
Mar 30
Apr 20
Mai 25
Jun 29
I have added the first one already to the events page:
the others will be added later.

by Stéphane Ducasse at January 12, 2018 03:10 PM

Woden for Pharo 7

We do have a working version of Woden for Pharo 7.
It would be great if you could try.

On OSX, I did:
git clone
cd woden2

It takes time to install & compile (~ 10 minutes?), but it works well.


by Stéphane Ducasse at January 12, 2018 09:30 AM

Benoit St-Jean

La chanson du jour (1493)

Change de Tears For Fears.

You walked in to the room
I just had to laugh
The face you wore was cool
You were a photograph

by endormitoire at January 12, 2018 04:30 AM

La chanson du jour (1492)

Test For Echo de Rush.

Some kind of trouble on the sensory screen
Camera curves over caved-in cop cars
Bleacher-creatures, would-be desperados
Clutch at plausible deniability
Don’t touch that dial,
We’re in denial
Until the showcase trial on TV

by endormitoire at January 12, 2018 01:41 AM

January 10, 2018

Torsten Bergmann

Google Summer of Code 2018 with Pharo Consortium

Pharo community will apply also this year - so read more.

by Torsten ( at January 10, 2018 07:01 AM

January 09, 2018

Benoit St-Jean

La chanson du jour (1491)

One Hit To The Body des Rolling Stones.

You fell out of the clear blue sky
To the darkness below
The smell of your flesh excites me
My blood starts to flow
So help me God
You burst in in a blaze of light
You unzippered the dark
One kiss took my breath away
One look lights up the stars

by endormitoire at January 09, 2018 07:50 PM

Torsten Bergmann

OpenSmalltalk VM Meeting

Fabio Niephaus wants to organize a meeting on OpenSmalltalk VM. The agenda is yet to be finalized, but maybe Clément and/or Eliot may give an update on their work on Sista. Read more here if you are interested or check the doodle.

by Torsten ( at January 09, 2018 11:30 AM

Benoit St-Jean

La chanson du jour (1490)

Heaven Knows de The Pretty Reckless.

One, two, three and four
The devil’s knocking at your door
Caught in the eye of a dead man’s wife
Show you life with your head up high

by endormitoire at January 09, 2018 07:48 AM

La chanson du jour (1489)

Kids In America par Kim Wilde.

Friday night and everyone’s moving
I can feel the heat but it’s soothing, heading down
I search for the beat in this dirty town (downtown)

by endormitoire at January 09, 2018 02:03 AM

La chanson du jour (1488)

Ella, elle l’a de France Gall.

Quelque chose qui danse en toi
Si tu l’as, tu l’as
Ella, elle l’a
Ce je-ne-sais-quoi
Que d’autres n’ont pas
Qui nous met dans un drôle d’état

Classé dans:music, musique Tagged: Ella, elle l'a, France Gall

by endormitoire at January 09, 2018 01:55 AM

La chanson du jour (1487)

Powerhouse de Raymond Scott.

Classé dans:music, musique Tagged: Powerhouse, Raymond Scott

by endormitoire at January 09, 2018 01:45 AM

La chanson du jour (1486)

Lump de The Presidents of the USA.

She’s lump, she’s lump
She’s in my head
She’s lump, she’s lump, she’s lump
She might be dead

Classé dans:music, musique Tagged: Lump, The Presidents of the USA

by endormitoire at January 09, 2018 01:40 AM

La chanson du jour (1485)

Two Princes des Spin Doctors.

And if you want to call me baby
Just go ahead, now
And if you like to tell me maybe
Just go ahead, now
And if you like buy me flowers
Just go ahead, now
And if you like to talk for hours
Just go ahead, now

Classé dans:music, musique Tagged: Spin Doctors, Two Princes

by endormitoire at January 09, 2018 01:34 AM

La chanson du jour (1484)

Someday de Sugar Ray.

Just close your eyes and I’ll take you there
This place is warm and without a care
We’ll take a swim in the deep blue sea
I go to leave and you reach for me

Classé dans:music, musique Tagged: Someday, Sugar Ray

by endormitoire at January 09, 2018 01:15 AM

January 04, 2018


Python3Generator and matplotlib


My new year main resolution: stop keeping my side-projects for me.
It’s been like 1 year that I created these two projects, one coming from a refactoring of the other.
Now it is time to take time to announce them.
I initially come from Python world and during my bachelor & master, I really liked to use matplotlib to plot data using Python.
So I wanted to be able to use this Python module from Pharo. I did it by generating Python 3 code from Pharo and making Python 3 executing it. So, first I implemented everything in MatplotLibBridge package and then I split it in two package in order to be able to eventually create bridges to other Python 3 modules.
So, Python3Generator [1] is made for generating programatically Python 3 code from Pharo. Basically, it allows you to easily build a Python 3 AST,  to serialize it in Python 3 source code and eventually to execute it. For now you can transfer data from Pharo to Python (e.g. providing arguments to functions that are Pharo’s objects) but you can not retrieve data stored in Python variable from Pharo (but it should be possible, just I don’t need to do that for my bridge to matplotlib). Some examples are provided on the github’s README.
MatplotLibBridge [2] is made for creating plots using matplotlib [3] from Pharo. There is a bunch of examples of what you can do on the README. The two features from matplotlib I like the most are: 1. You can generate your plot in a lot of file formats (png, pdf, svg, ps, etc…) 2. It allows to embed LaTeX mathematical formulae everywhere in the plot (which can be really cool). All the possible plots in matplotlib are not available in Pharo’s side because I build parts of the bridge when I need them but it is not hard to do. I someone is interested in a plot type not available yet, please tell me.
So, it is announced, if someone want to do something with those, please do it!
Happy new year.

by Stéphane Ducasse at January 04, 2018 08:33 AM

Torsten Bergmann

StableMarriage for Pharo

A solver for the stable marriage problem written in Pharo. If you want to know what it is then have a look at this video.

by Torsten ( at January 04, 2018 08:25 AM