Wednesday, February 13, 2019

v2.1.0 Material Design Lite for Seaside

New version v2.1.0 is available now. Check it here.

Glamorous Toolkit v0.5.1

is out now - and it is based on latest Pharo 7.

Reactive data bindings framework for Pharo

A small Vue.js-inspired reactive data bindings framework for Pharo.

Registration for Pharo Days 2019 open

Just check this page if you want to participate.

New (bugfix) release of PetitParser v2.1.2

is available here.


Marvin - a Prototype system based on Self for Pharo from Pavel.

P3 V1.2 - PostgreSQL client for Pharo

A new release 1.2 of P3, the modern, lean and mean PostgreSQL client for Pharo.

ObservableSlots for Pharo

A language extension for Pharo to have slots that announce changes. This is useful expecially in UI projects.

The computational notebook of the future

This screencast shows an idea of how computational notebooks should work in the future. For pointers to the technologies being used, see the accompanying blog post

Tuesday, January 22, 2019

TravisCI and Smalltalk

SmalltalkCI was integrated with Travis. To set up continuous integration for your Smalltalk project, you need a .travis.yml and a .ston configuration file for SmalltalkCI. It is easy to setup and works great in many Squeak and Pharo projects already. Read the docu for more.

Pharo 7.0 released

Smalltalk systems influenced computing like no other technology in the world. You will find many of its ideas in all modern software systems ranging from graphical user interfaces up to mobile devices.

With Pharo-Project we continue with this tradition to provide an inspiring lively object-oriented system but also move Smalltalks ideas to the next level.

Today is the day we release Pharo 7.0 into the wild and again as a free open source gift to the world.

This is yet another major step towards a brighter future for dynamic development approaches. Pharo 7.0 was realized by a worldwide community of 75 people - taking us over one year of distributed development.

Pharo advanced on many sides. Now we can fully bootstrap into a custom image - including Slots, Metalinks and other meta facilities. New books and tutorials were written about it, it is used in web development, IoT and other. It's already a business driver for several companies worldwide with a growing number of users.

2142 issues solved in general - 762 commits done from my side (astares) alone. Mostly trivial stuff but each still important to cleanup and form a well structured core. Dont know if I could be proud to have climbed to the top in github contribution statistics in this release - personally I will remember the PR's primary as 762 times fighting with the CI infrastructure ;)

Pharo 8 work already started now ... so come in - the water is just fine. Step by step it goes...

Wednesday, December 19, 2018

Dispatching tasks to multiple Pharo VMs using SystemProcess

is described here.

MachineLearning in #Pharo

Want to check out MachineLearning in Pharo? Then use this awesome list of projects, books, booklets, papers, and applications related to machine learning, AI, data science in Pharo


Releaser is a new tool for releasing nested #pharo projects residing in multiple repositories. Read more.

TimeMachine in Pharo

Funny experiment of Manuel Leuenberger about using Bloc and Pharo to get a déjà vu

Glamorous Toolkit v0.4.0

Glamorous Toolkit v0.4.0 is out. Read more.

Maizo and Pharo

Maizo - a Chemistry project developed with Pharo.

To quote research gate:

Maizo is aimed toward molecular- and reaction discovery based on big data of quantum mechanical global reaction route mappings. The global reaction data includes equilibrium structures (EQs), dissociation channels (DCs), and transition structures (TSs), which are automatically calculated by a global search on a potential energy surface using the GRRM (global reaction route mapping) method. Applications to molecular- and synthesis design are an important part of the project. Machine learning and visualization techniques as well as chemoinformatics methods are essential to acquire useful information from the large reaction data space. The team developed an RMapViewer, which was developed to visualize and analyze the GRRM outputs.  

Read the PDF on "Maizo"-chemistry Project: toward Molecular- and Reaction Discovery from Quantum Mechanical Global Reaction Route Mappings".

Pharo Git Thermite

A visual tool developed in Pharo for assessing Git commits and GitHub Pull Requests

The project is available on GitHub:

and now also integrates with Iceberg:

Read more details here.


JupyterTalk makes good progress - nice!

 Project is on GitHub:

Exploring Pharo

There is a nice blog post about his initial experience with Pharo from Konrad Hinsen. He overall likes Pharo and especially the explorability but also has two primary points to criticize:

  1. he mentions that Pharo is not reproducible and can not be bootstrapped from its own source code 
  2. it is not easy for beginners to follow Pharo
The first point is actually invalid. Konrad seem to have missed that Pharo since two years IS ACTUALLY  BOOTSTRAPPED - so we can build a image from scratch and from our own source code. This is actualy in place and used to build Pharo now. Even smaller images (like the minimal one) beside what is provided in the default Pharo download.

People interested in this topic should read this blog post from 2014 and check the "bootstrap" folder in the Pharo github project. This is based on the PharoBootstrap work. Someone interested in this topic might also be interested in this video.

For the second point I agree as Pharo is moving fast it might not be easy to follow. Also the community is small. Due to this we can not invest our sparce resources into making things easy for newbees - but rather will continue to focus on moving forward. Especially with the upcoming Pharo 7 including better git support and the new Calypso browser many things have changed compared to Pharo 6.

But there are books available and there is the mailinglists as well as the Discord chat to ask questions and get answers. Situation is far better than in 1994 when I dived into Smalltalk and where it was not easy to get informations or even a free system to enjoy the openess and productivity of such a system.

Nonetheless - as one of the primary contributors of the Pharo project I really enjoy such blog posts. It shows we are on the right track. There is still a long way to go - but step by step it goes...

GeoSphere in Pharo

A project to compute distances, parse coordinates, etc. using Pharo.


How to use Extensions in Pharo

In Pharo it was always possible for a package to extend a class within another Package. So far it was done by putting a * in front of the method name.

In Pharo 7 this changes a little bit as you can directly select the extension from the new Calypso system browser.

Here is a description about the differences.

Mobile Apps Development with PharoJS

A new description on how to use PharoJS is available.

Friday, November 02, 2018

Dynamic creation of compiler plugins in Pharo

A new class (merged this week into Pharo 7) called "OCCompilerDynamicASTPlugin" allows for the dynamic creation of compiler plugins

Object compiler
   newFromTransformBlock: [ :ast | (RBParseTreeRewriter replaceLiteral: 42 with: 'meaning of life') executeTree: ast. ast. ]
   andPriority: 0
 evaluate: '42'.
This would give 'meaning of life'