Thursday, December 29, 2016

Tuesday, December 27, 2016

Pharo happiness

Use Pharo and cognitive services from Microsoft to find out about the happiness of people on pictures. The article is in japanese - but the code example shows what to do.

Calypso - another system browser for Pharo

Calypso is another system browser for Pharo. Read about it here or check the code here.

Thursday, December 15, 2016

Iceberg Techtalk

Techtalk on Iceberg - the git integration for Pharo:

Scroll forward until presentation starts after initial 10 minutes.

Monday, November 14, 2016

Scripting Unreal with Pharo

Kilon is working on bridging with CPP code (using shared memory approach). Still not finished - but he made some progress by remote driving Unreal engine. Read more.

Refactoring Example in Smalltalk

A nice example of the refactoring capabilities of Smalltalk (here Pharo). Refactor until you are satisfied with the code and make sure your tests run green.

Friday, November 04, 2016

Smalltalk Reflections episode 16: Unit testing

In this episode, Craig and Philippe discuss unit testing in Smalltalk, and how it influences the development process. We welcome special guest Jean-Christophe Mincke in our exploration of validation

The code behind Google Authenticator

A new article from Sven concerning Pharo. Code is on SmalltalkHub.

Smalltalk App streaming with Snowglobe

Read more on how to stream apps using Snowglobe. A Snowglobe demo is available here.


Tether - Remote messaging between Smalltalks with WebSockets. Read more.

Happy 20th Birthday Squeak!

It was twenty years ago that Dan Ingalls and the rest of Alan Kay's team announced Squeak to the world.

SqPronterface - 3D printing with Squeak Smalltalk

SqPronterface - a Port of MacPronterface to Squeak (Smalltalk) to control a 3D Printers. Description is here.

Wednesday, October 05, 2016

Pharo on VISSOFT 2016

The fourth IEEE Working Conference on Software Visualization (VISSOFT 2016). If you are on Facebook then check out the page to see how Pharo is used for Visualizations

Friday, September 23, 2016

MaterialDesignLite for Seaside

The project MaterialDesignLite to provide MDL for Seaside reached first milestone 1.0.0. A demo can be seen here.

Railway modeling in Smalltalk

Railway modeling in MetaEdit - a tool written in Smalltalk. Reminds me of RUT-K from german railway, a large Smalltalk project for train schedule planning that I helped shaping

Monday, September 19, 2016

Smalltalk is dead, long live Smalltalk

Robert C. Martin (from Object Mentor, Inc, also known as "Uncle Bob") once did a presentation in 2009 on RailsConf with the provocative topic "What Killed Smalltalk Could Kill Ruby, Too".

The way this talk was presented was nice and funny - but by declaring Smalltalk dead he showed me that he never really followed this technology and all its offsprings close enough.

If Smalltalk would be dead how would I have been able to fill my blog with news about it over so many years? If it would be dead why do new things like Agile VisualizationsSoftware Analysis platforms or cloud platforms like pop up? Why is it used to lively program robots or help solving scientific computations when it is dead? How could it help fighting Ebola or disaster and climate change when Uncle Bob says it is dead? How could a dead technology coordinate so many containers shipping around in this world, or how could it be used in one of the largest financial projects? How could it be given to so many people around the world as a visual programming tool? Looks like nobody cared that Mr. Martin declared it as dead already in 2009 ...

For sure Smalltalk is not as widespread as Java, C++ or C# and it will never be on top of the TIOBE index (since this is the most stupid metric to rank programming languages ever invented). But it is in use, a productive and efficient environment to solve daily problems that would be hard to solve in other technologies.

And all this in times where people (without having a deeper understanding) quickly decide for new technologies as the better ones "automagically" - because they think "newer means better". But often we see that new technologies just reinvent the wheel or provide an improvement only in a single aspect.

Smalltalk is around now since 1972, lifted and commercialized in 1980, stable and mature, used in big and small projects and processes. Because of this age it is not the first time it was declared legacy or dead. But due its virtual machine and its dynamic nature it was and still is adopted to new platforms, new requirements or new hardware. Some Smalltalks can even run 1:1 in the webbrowser or on the Pi.

So in the tradition of "The king is dead, long live the king!" Smalltalk is still alive and kicking. Primarily in the open source scene with PharoSqueak, Cuis, Amber there are many new success stories or books.

Now in 2016 even "Uncle Bob" - based on the old Type wars discussions (static vs. dynamic typing) - needs to admit in a blog post that:

"The Smalltalkers will, eventually, win. So says this old C++ programmer."

But there is no competition, so there is no need to have a winner.

Smalltalk is alive and still about new ideas - about new ways of computing and modeling our world to form something better.

Wednesday, September 07, 2016

Next Pharo Sprint dates

There is already a planning going on for the next sprint meetings at INRIA in Lille (France).

Next dates are

  • 30 September 2016 
  • 04 November 2016 
  • 25 November 2016 
  • 16 December 2016

Pharo on Pi

Made some progress on my pet project on the Raspberry Pi. Now using the new Pi model which is running much faster. Nice!

 Hope to find some time to update my medium article with the latest specs soon.

ESUG 2016 material

Slides from this years ESUG meeting in Prague are now online.

Thursday, September 01, 2016

RProjectConnector 2.1

Binding between Pharo and R was updated to use UFFI.

Toolchains ... any progress

While playing with PhoneGap, Android, Node and friends I noticed that in 2016 in the IT industry we still fight with path settings, environment variables, correct dependencies and command lines when setting up our toolchains. Always time consuming...

I hate it when to much time is required to setup things correctly to be able to code. Time is better invested in coding itself.

We know there are quicker ways where one can just install/extract and go.

Monday, August 29, 2016

SDL2, Cairo & Headless for realtime native applications

An SDL2 based game in Pharo.


Hardware gets cheaper each day. It also gets faster and faster to run dynamic object oriented systems like Smalltalks even on tiny single board computers. In this tweet Chris Thorgrimsson runs VisualWorks and Pharo side by side on Lattepanda, a cheap palm sized Windows 10 computer which costs around 100$. Nice!

Monday, August 22, 2016

ESUG 2016, 13th Innovation Technology Awards - MacroRecorder

MacroRecorder is one of the candidates for the ESUG Technology Awards

ESUG 2016, 13th Innovation Technology Awards - Kit

Kit (Programming for the rest of us) is one of the candidates for the ESUG Technology Awards

ESUG 2016, 13th Innovation Technology Awards - Caffeine

Caffeine is one of the candidates for the ESUG Technology Awards

ESUG 2016, 13th Innovation Technology Awards - Educational Bureau

Educational Bureau (using Phratch based on Pharo) is one of the candidates for the ESUG Technology Awards. Video is here.

ESUG 2016, 13th Innovation Technology Awards - Let it Bee

Let it Bee is one of the candidates for the ESUG Technology Awards

ESUG 2016, 13th Innovation Technology Awards - RemoteDebugger

RemoteDebugger is one of the candidates for the ESUG Technology Awards

ESUG 2016, 13th Innovation Technology Awards - OpenPonk

OpenPonk is one of the candidates for the ESUG Technology Awards

ESUG 2016, 13th Innovation Technology Awards - Woden 2 Game System

Woden 2 Game System is one of the candidates for the ESUG Technology Awards

ESUG 2016, 13th Innovation Technology Awards - PolyMath

PolyMath is one of the candidates for the ESUG Technology Awards

ESUG 2016, 13th Innovation Technology Awards - MatchTool

MatchTool is one of the candidates for the ESUG Technology Awards

ESUG 2016, 13th Innovation Technology Awards - smalltalkCI

smalltalkCI is one of the candidates for the ESUG Technology Awards

Friday, August 19, 2016

Tuesday, August 16, 2016

Tuesday, August 09, 2016

SmallPOS Status

SmallPOS is a POS and accounting system for small business written using Seaside web application framework for Smalltalk. Pharo is used as platform and the Code is on SqueakSource. The license of SmallPOS is MIT.

SmallPOS itself is a framework that can be used to build POS management applications.

Looks like there are some activity now to update the framework code and there are some screenshots of a russian SmallPOS-based management system that was built with the SmallPOS framework (click to enlarge):


In 2014 there was a presentation about Modtalk - an MIT licensed modular compiled Smalltalk.

There is a nice webpage on with a copyright of 2016. So there seems to be some activity behind the scenes. But the GitHub repo is still empty. I wonder about the status of the project...

Thursday, August 04, 2016

MatchToo for Pharo

A new tool that can help you to understand to the pattern code is working in match & rewrite rules

Wednesday, August 03, 2016

PunQLite now also moved to Pharo-NoSQL GitHub repo

Beside Voyage and MongoTalk now also the PunQLite project was moved to the "pharo-nosql" GitHub Repo as you can see in the worklog. This repo created by Esteban should host all NoSQL efforts in the Pharo community.

Amber demos

There is a mashup of several AmberSmalltalk demos on

Monday, August 01, 2016

Does 1/7 + 6/7 = 1 ?

Short reminder from Benoit St-Jean.


Alan Borning's “ThingLab” (graphical constraint solver) running on the Smalltalk-78 VM by Bert Freudenberg and Dan Ingalls right in your webbrowser. Nice!

Thursday, July 28, 2016

Pharo Graphics work for Woden2

Ronie Salgado explains some of the graphics work that is in the pipe for his Woden2 project for Pharo

Monday, July 25, 2016

How to use git and GitHub with Pharo

Explained in a blog post here.

Pharo Kiosk system

Pharo 1.1 was used to build ATM-kind software in Russian Bank. Such devices could be found in Moscow streets. Here is a sample video:


Sunday, July 24, 2016

Towards 64 Bit VMs

Nicolas has finally compiled a 64bits VM for windows - and now the OpenSmalltalk VM has makefiles for 64 bits windows. Cool!

A taste of bootstrap

With Smalltalks image approach you save the whole state of your "object oriented world" to disk and continue later at the same point of execution where you left. Some objects are part of the standard image since the 1970s which makes Smalltalk images software artefacts that are maintained since a long time.

Other Smalltalks (like Amber) work without images and bootstrap right from the beginning (like Amber which is a Smalltalk running on top of JavaScript).

Nonetheless it also makes sense to bootstrap new images right from the start and (as I already reported) the Pharo community is working on that. Now there is yet another step done for this as you can read and now also try here.

Note that the boostrapped image is already in Spur format.

Pillar 4.0.0

New update on Pillar for Pharo. Now also with an ePub exporter. Nice!

Seamless (0.8.2)

A new update for Seamless is available.


A tool to traverse object references for Pharo. Read more.

JSONWebToken for Pharo

JWT (JSONWebToken) is a token format suitable for authentication and authorization. Read about the Pharo implementation.

Freewill - GA framework for Pharo

Freewill is the name of the genetic algorithm framework for Pharo. Read more here or see it in action here.

Thursday, July 07, 2016

DSL in Pharo

Building an external Domain specific language (DSL) with the help of an internal DSL. Using PetitParser in Pharo is easy as this picture proves.

Squeak on Slack

Didnt know that Squeak also has a slack team - but found out now from a post about an easier way to join the channel. Nice!

Tuesday, June 28, 2016


From Blocks to BlockClosures now to FullBlockClosures. It is nice that Clément Béra summarizes current activities for Sista on his blog.

Friday, June 24, 2016

Walls, Pillars and Beams: A 3D Decomposition of Quality Anomalies

A video demonstration of a 3D approach (in Pharo) from the paper with the same title.

Functional callbacks on all Cog platforms

Pharo as well as Squeak are based on a common virtual machine implementation (Squeak VM, later Cog). This virtual machine source code recently was moved over to GitHub as OpenSmalltalk VM to better maintain the (small but existing) differences in the virtual machines for Squeak, Pharo, Newspeak and Cuis Smalltalk.

Within all open source Smalltalks derived from Squeak (Squeak, Pharo, Newspeak) historically and initially there was a mechanisms to call external code outside the Smalltalk environment. This mechanism was called FFI - which is the abbreviation for foreign function interface. So you could call external libraries to perform an action.

Later there was another mechanism called Alien FFI that also allowed to pass a callback function to the ouside world. Alien was provided in 2007 by Eliot Miranda and old docu could be found here and here.

In Pharo later there was another mechanism called "NativeBoost" (provided by Igor Stasenko) to call external functions. NB allowed to be using native code directly and really fast as the native code was attached to a compiled method and lived within the image. Relying on assembler (provided by a package called ASMJit) the NativeBoost solution is very fast - but also hard to maintain because NB was not as portable as the initial FFI solutions.

Later Pharo decided to resynch all these efforts into what is now known as UFFI (Unified Foreign Function Interface) provided by Esteban Lorenzano. UFFI unifies and also borrows from FFI, Alien and even NativeBoost.

Also with the more aligned OpenSmalltalk VM the different open source Smalltalks come closer together. Current work in progress on the virtual machine side is to allow for 64 bit Smalltalk systems and to better support ARM architecture beside x86 one.

Eliot now announced that Alien now has functional callbacks on all x86 platforms, ARM32 platforms and x86_64 platforms. This is another major step in having a portable interface to the outside world as we can use callbacks on all these platforms. Great stuff!!!

Thursday, June 23, 2016

CuboidMatrix: Exploring Dynamic Structural Connections in Software Components using Space-Time Cube

A demonstration video of the VISSOFT paper by Teseo Schneider, Yuriy Tymchuk, Ronie Salgado and Alexandre Bergel. Done in Pharo.

Tuesday, June 21, 2016

Monday, June 20, 2016

Talking Small

Another newbee is discovering Smalltalk. Looks like he tries to learn a language each month and also stumbled over Pharo.

If he really wants to learn Smalltalk and find out more he for sure will need more time than just a simple month. Initial steps in Smalltalk are easy, also syntax is easy to learn - but learning what power it contains requires more time and a deeper understanding. Also it takes a while to understand why things are the way they are. Often learning to deal with pure OO also means to unlearn (bad) things from the mainstream programming languages...

Nonetheless nice summary of his early steps.

LRP - Live Robot Programming in Pharo

How does a PR2 move through a door opening? By using LRP of course! Live Robot Programming (LRP) is a live programming language designed for the creation of the behavior layer of robots. It is implemented in Pharo.

Thursday, June 16, 2016

Iceberg - better Git for Pharo

Iceberg, the future git integration for Pharo 6.0. Read more

Pharo and 3D

The nice work of Ronie Salgado with Pharo and 3 summarized on his page. Nice!

Voyage with Unqlite support

For relational databases there is the tiny SQLite database solution that just requires a simple linked library (DLL/SO file) including the full database engine.

There is a similar tiny database called Unqlite in the NoSQL world. Pharo already had a Unqlite binding in the past. Before Pharo 5 this "PUnqlite" project was based on Native Boost. It was provided by Masashi Umezawa and I extended the project with a spec based UI to provide a database browser for Unqlite.

During the Pharo 5 development I discussed with Esteban many issues on #Slack about porting several of my projects to UFFI. We also discusssed about Unqlite and Esteban quickly ported the PUnqlite binding over from NB to UFFI. This was done on GitHub. Additionally I remigrated the changes back to the original repo of PUnqlite on STHub and made it loadable from Catalog in Pharo 5 again. So with Pharo 5 you again have a package "PUnqlite" that you can load from Catalog. Just open Spotter and type in the name.

During these #Slack sessions we also discussed about Estebans Voyage framework. Voyage is a layer that allows for very simple persistence in Pharo. It is explained here and here.

So far Voyage only worked with MongoDB as backend. Often Mongo requires some setup which might be overkill for simple deployable applications that you want to build with Pharo. So we also discussed about using UnQlite as a backend for Voyage.

Esteban wanted to work on this for a project and now first results are available: Voyage is now restructured with a second backend to support also UnQlite beside MongoDB.

Cool - thanks Esteban!

VM support switching from SVN to Git

The Cog subversion repository is moved over to GitHub

More than 15 arguments

support is on its way. But I guess if you have need more than 15 arguments in a method you should think about your design. Possibly an argument object would be applicable.

Wednesday, June 08, 2016

MPDClient in Pharo

Client side interface to the Linux Music Player Daemon written in Pharo. Project is here.

Smalltalkers seriously not kidding

Like this ycombinator thread: "When they say that in Smalltalk, everything's an object, they're seriously not kidding. Everything is an object, including compiled code, stack frames, execution contexts, threads, etc. "

Friday, June 03, 2016

inline if in Smalltalk

No! No! No! Dont extend Smalltalk with things like that.

Just because you can extend Smalltalk does not mean you should do on all ends. So unlearn your traditional syntax thinking before starting with it. Code should tell a story to be maintenable and not end up in deciphering cryptic syntax sugar.

Lets think in objects and stay readable with: #ifTrue;ifFalse: please!

64Bit support progresses

64Bit virtual machine for Pharo, Squeak, ... are in the pipe - VM developers move forward on this frontier. There is now also 64bits image generation for Pharo.

While in the last century it was hard to run dynamic systems like Smalltalk times have changed a lot.
But now Hardware and software become faster and even smaller each day. This leads to suprising results.

Ubuntu Ambiance Theme for Pharo

A theme for Pharo to look like Ubuntu. Looks nice. Code is here.

Friday, May 27, 2016

Epicea in Pharo 6

Epicea is now integrated into Pharo 6.

Who uses Smalltalk

A new article from Richard Eng on who uses Smalltalk.

There are many people and projects all over the world who use Smalltalk. And yes it is true that mostly new projects start in more "fashioned" languages like Java. So this is more a question about how well known Smalltalk is and about popularity. There is also this common misbelief that new technologies must be better out of the box. I have some doubts in that - because today many software technologies or languages are very specific, written in a hurry or lack a solid and stable engineering foundation.

My answer to the question on who uses Smalltalk would be much easier: anyone who is interested in clean OO solutions and knowledgable enough to value increased productivity and long term maintainability.

Thursday, May 26, 2016

Pharo Newsletter

There is a low traffic “Pharo Newsletter” Mailinglist. If you want to join read here.

Sunday, May 22, 2016

Saturday, May 21, 2016

Friday, May 20, 2016

OpenSmalltalk virtual machine repo

The virtual machine used for open source Smalltalks like Squeak and Pharo is now moved from Subversion to GitHub.

Read about the details.


I did not know yet about this project from Esteban:

TokyoDB is a Pharo wrapper for Tokyo Cabinet.

Wednesday, May 18, 2016

Tuesday, May 17, 2016

Thursday, May 12, 2016

Sunday, May 08, 2016

Friday, April 29, 2016

ESUG 2016 Registration

Read more.


Nice quote on Twitter:

"Every time I look at Smalltalk, I feel I know how Dark Age engineers must have felt looking at the Roman Aqueducts."


In Pharo installing Kernel classes is far from trivial (the SlotClassBuilder raise error and one cannot modify the Kernel classes using the IDE).

This package from Clement allows to install the correct classes for the FullBlockClosure, and update everything so all the state is correct. Nice.

Smalltalk VM History

Did you notice that the commits from Eliot Miranda to the Squeak/Pharo/Cuis/Newspeak VMMaker packages follow a year pattern (1850, 1851, ...) and include not only a description of the changes but also what happened in the year corresponding to the commit number.

Wonder what happens when he reaches 2016 and following commits...

Wednesday, April 27, 2016

Genetic Algorithm for Pharo

A genetic algorithm implementation is available from the Pharo Catalog provided by Alexandre Bergel.

I helped Alexandre in providing the config for this. I like the package. His genetic algorithm code is nice and interesting - it allows to play with Genetic algorithms in the regular Smalltalk tools (workspace, inspectors, ...) and the package also provides Roassal visualizations for them. 
You definitely should check this package out. Code is on STHub.

Monday, April 25, 2016

Arff Generator in Pharo

Weka is a collection of machine learning algorithms for data mining tasks. Weka defines a format called "Arff" to be used for data importation. On GitHub you will now find an Arff generator written in Pharo.

Changing Pharo background picture

Want to style your Pharo image with a wallpaper image? Peter describes the possible options in detail.

JSON persistency with SQLite database in Pharo

as described by Pierce on his blog. Really nice!

Saturday, April 23, 2016

Scratch performance

Tim optimized Scratch for the Raspberry Pi ... now it runs much faster. Read more.

Monday, April 18, 2016

Algernon-Launcher for Squeak

Back from the days when I used Squeak there was a nice tool called "Algernon" which was a simple "type in search" tool. I used it very often.

Later in Pharo days such a tool was missing - but after a while the "Spotter" tool for Pharo was provided by the GT team based on the same idea.

The nice thing is that now also the Algernon code was updated for latest Squeak in a project called "Algernon-Launcher".

BTW: Spotter does not allow to evaluate the given text as expressions, but the tool is extendable and maybe should provide this Algernon feature by default as well.

Wednesday, April 06, 2016

Pharo Pomodoro (updated) - version 1.6

Updated the code of Pomodoro timer for Pharo 5 once again:

  • settings with custom start value and custom colors
  • better resizing behavior of the morph
  • pause/continue - start/restart possibility
  • default colors aligned with Pharo scheme
  • pause state in Pomodoro instead of Morph
  • separate core and tests in own packages
demonstrated in a new video:

New version of Mocketry 3.0

is available. Read more here.

MessageFlowBrowser updated for Pharo 5

I updated my MessageFlowBrowser for Pharo 5 and added a new video:

TDOOOP Slides from ETAPS 2016

Interesting Slides from Oscar Nierstrasz from an invited talk at European Joint Conferences on Theory and Practice of Software (ETAPS 2016) with the provocative title "The Death of Object-Oriented Programming" (TDOOOP)

 As meanwhile any technology claims to be object orientied (or object based) I would rather say

"OOP is dead long live REAL OOP (with Smalltalk and Pharo)"

Friday, April 01, 2016

Thursday, March 31, 2016

Man page support in OSUnix

I now provide Unix man page support in OSUnix for Pharo,
here an example in Ubuntu:


docu is here.

Support for CDB in Pharo

CDB, which is short for "constant database" is a database where the DB contains an entire data set (e.g. a single associative array) in a single computer file. Four students from a lecture released the Pharo implementation for CDB support as Stef wrote. The repo can be found on STHub.

Thursday, March 24, 2016

Simple FogBugz Search tool in Pharo

Played with the JSON API of Pharo FogBugz issue tracker with the outcome of another little Pharo tool that lets you:
  • login to FogBugz from Pharo
  • enter a string and search for according issues
  • open a browser on a selected issue in the result list (works on Linux and Win so far) 
The project repo is at:!/~TorstenBergmann/FogBugz

One can use the client also directly:

|client| client := FogBugzClient loginUser: 'abc at' password: 'secret'. (client query: 'UFFI') inspect. client logout

You can download the tool in latest Pharo 5 (50660 or later) from catalog or by opening the Spotter and entering "FogBugz", wait and hitting ENTER.

Tuesday, March 22, 2016


After a renaming discussion on the pharo-dev list I suggested to rename "SciSmalltalk" into "PolyMath" and it looks like this proposal got accepted.

At least now there is a new repo on STHub:!/~PolyMath/PolyMath/


Thursday, March 10, 2016

Moose-FAMIX SAP-Extractor

A project to extract model data from a SAP system into the analysis platform Moose on Pharo Smalltalk (by using FAMIX). Read more.

Easy deploy of Pharo applications on the Web (Linux)

You can setup a full Seaside application behind Apache webserver. Or you could setup more lightweight behind NGINX.

Here is a short help on how to do that on Linux.

Tuesday, March 01, 2016

SqueakJS on ElectronJS (repackaging as desktop app again)

Web applications everywhere, but there are still desktop applications with full access to the underlying computer on the other side.

But meanwhile one can also create desktop applications using HTML, JS and Node.js, package them into an executable file and distribute it to all platforms (Windows, OS X, Linux, ...). There is a framework called Electron that allows to package an HTML/JS based application as a desktop application.

The portable Squeak Smalltalk which is usually running as a desktop application by using a native and fast Cog VM provides also a reimplementation of the Squeak VM in JavaScript. This project is from Bert and is called "SqueakJS". It allows to run Squeak Smalltalk on top of JavaScript within an HTML page. Because of the portability it runs 1:1.

And guess what: one can also use Electron to package SqueakJS then as a traditional desktop application again...

A nice twitter post from Fabio Niephaus who exactly did that can be found here: SqueakSmalltalk running on Cog VM vs. on SqueakJS on electronjs

Havent checked how fast this is ... but the lines between desktop and web based Smalltalk deployment become blurred once again.

Free Access to Ephemeric Cloud

There is free access to Ephemeric Cloud to all Pharo association members. Try it out!

Alan Kay talk at Coors Television (VPRI 0035)

Pharo Days Preregistration

is here.

Thursday, February 25, 2016


Paste your repo URI into GTSpotter. See **

Wednesday, February 17, 2016

The Pharo Unicode Project

Sven and Henrik cared about better Unicode support for Pharo. Read the announcement and have a look at a new article describing the details.

Gtoolkit 3.10 in Pharo 5.0

You can read about some new features of GT in Pharo 5 here.

Monday, February 08, 2016

Amber Smalltalk 0.15.1

Release 0.15.1 is out. Breaks IE8 compatibility, wraps Promise directly, has a few changes under hood & will be strictly semver from now on.

A little Bloc demo

Another demo of Bloc (the replacement for Morphic): a hit test.

Sunday, February 07, 2016

Thursday, February 04, 2016


SmallIPFS - Smalltalk Interplanetare Filesystem API. Read more and have a look at the project page

Tuesday, January 19, 2016

Hidden Gems Screencast Series

Hidden Gems Screencast by Arden Thomas demoing useful Smalltalk use.

Specific domain visualizations

in Pharo. Read more.

Kendrick 0.29

Kendrick the platform for epidemiological modeling and analysis is out in version 0.29 beta

Pharo bootstrap

Currently in Pharo the image is maintained step by step by adjusting and changing it. It is like a database of objects that you maintain over time.

But since the beginning of Pharo there was this also the dream to be able to bootstrap the image cleanly right from the ground up. It is a lot of work to prepare such a bootstrapping process - but now the efforts bring the first fruits: there is a minimal Pharo kernel that is bootstrapped.

I can only say: amazing work!

Spotting senders and references

Spotting senders and references using Spotter in Pharo is explained here. You can also use the MessageFlowBrowser.

Smooth scrolling with Smalltalk 78

"At one point (Steve) Jobs, watching some text scroll up the screen line by line in its normal fashion, remarked, 'It would be nice if it moved smoothly, pixel by pixel, like paper.' With (Dan) Ingalls at the keyboard, that was like asking a New Orleans jazz band to play 'Limehouse Blues.' He clicked the mouse on a window displaying several lines of Smalltalk code, made a minor edit, and returned to the text. Presto! The scrolling was now continuous." -- Dealers of Lightning: Xerox PARC and the Dawn of the Computer Age by Michael A. Hiltzik

Thursday, January 14, 2016

OSSubprocess first milestone

So far there was an OSProcess project for executing OS commands from Pharo. Mariano is working on a new project called "OSSubprocess" that works with the new unified FFI.

He reached a first milestone now - you can read about the details here.

The Pharo Consortium is the sponsor of this development.

Snowglobe for SqueakJS

Snowglobe is a SqueakJS remote display surface written by Craig Latta for Squeak Smalltalk. So Squeak is running in a browser (Chrome here), acting as the display for a native Squeak app running somewhere else on the internet.

A first demo can be seen in this video:

PharoLauncher with Spur and Non-Spur

Up to image build #50496 (where 50000 range means Pharo 5.0) the Pharo images were non-spur. In December the image was migrated to Spur to get more speed and profit from the new virtual machine architecture. So for any newer Pharo 5.0 image you need the new Pharo Spur VM.

PharoLauncher is now able to find out if an image reguires the new Spur VM or the old one. You can set the location of old non-spur VM and new spur VM in the PharoLauncher settings.

This way you can work with old images Pharo 3, Pharo 4, Pharo 5 up to build 50496 as well as with the newer ones.

Read this post for more details or grab PharoLauncher from CI server.


There is a project from Esteban called WorkLog. It is written in Seaside.

If you would like to see it in action just visit: and receive some infos how busy he is preparing Pharo for the future.

Pharo Spur 32 VM on Debian Stable

Want to run Spur virtual machine for Pharo on Debian. Then check out this one.

There is a CI build available.

Turing Machine simulator in Pharo

A Turing Machine simulator written in Pharo by Julien Delplanque.

Wednesday, January 13, 2016

Tracing the Dynabook

A PhD Dissertation from 2006 about Dynabook and Smalltalk. Interesting nonetheless.

Shortcut learnability in Pharo

A small tool was introduced in recent Pharo 5 images. It is called Shortcut Reminder and reminds you n times about shortcuts that one can use as an alternative to clicking around.

One can enable the tool via Settings. Anytime you use a menu item that has a keyboard shortcut the shortcut is displayed on the screen in large letters. This happens n-times. Depending on your learning curve you can set the number of repetitions in the settings.

Pharo Mooc in preparation

The Pharo community is currently preparing a Pharo Mooc. It's not yet finished and therefore not yet officially announced - but some informations are already available and a lot is going on behind the scenes for it.

There is a GitHub Repo and a Roadmap for it if you already want to dig into the stuff.

The abbreviation Mooc means Massive Open Online Course. It will include tutorials and videos to learn about Smalltalk and Pharo in particular (70 lectures and videos).

The Mooc videos are currently in preparation. It is filmed with a professional setup as:

 - Picture 1
 - Picture 2
 - Picture 3
 - Picture 4


Science Smalltalk v0.39

The last stable version is Science Smalltalk: v0.39 (Pharo 4.0 and Pharo 5.0 with SpurVM) is out.

Thursday, January 07, 2016

Codemash presentation on Smalltalk

Larry Staton Jr gave a presentation on Smalltalk at CodeMash this week. Slides are here.