[ANN] ba-st Web Stack new versions available


We’re happy to announce a new version of the Web Stack hosted at https://github.com/ba-st/. This is a multi-release announcement of the following related project versions:

  • Willow v6.0.0. Changes since latest announcement:
    • Added interaction on document load
    • Improved temporarily disabling command
    • Added identification support to unordered lists
    • Improved new location opening commands
    • Improved interaction functions to always include the event as a parameter
    • Improved asynchronous links to auto-configure a script doing preventDefault
    • Refactored the link support
  • Willow-Bootstrap v6.0.0
    • Updated Willow base support to v6.0.0
    • Improved Split Button support to allow triggering actions on the main button only
  • Willow-JQueryUI v5.0.0
    • Updated Willow base support to v6.0.0
  • Willow-SpinKit v3.0.0
    • Updated Willow base support to v6.0.0
  • Willow-Playground v2.0.0
    • Updated dependencies to the latest versions
  • RenoirSt v4.0.0
    • Removed Pharo 4 support
    • Updated dependencies

SemanticUI integration is still a work in progress. There’s a new Materialize CSS integration being worked on by Francisco Ortiz.

Find a more detailed changelog and migration instructions on the release pages of each repository.

Anyone interested in joining our ba-st projects is welcomed, and you can also start following our new tech blog @ mercap for Smalltalk and Pharo related posts and experience reports.


Gabriel Cotelli, Maxi Tabacman and all the contributors.


Iceberg 0.6.8 backported to 6.1


I backported iceberg 0.6.8 to Pharo 6.1, so now it is in sync with the version on Pharo 7.0


Cloudflare and Pharo

I needed to pass through a Cloudflare guard so made a tiny library that others may find useful.

Also I wrote a post detailing the background behind it…
cheers -ben

sentry.io (OSS error tracking platform) SDK for Pharo


I’ve made an experimental SDK for sentry.io to track errors in end-user installations.
Also usable as a Logger for Beacon (which I guess should be the primary way to use this).
… and  as an extension for Debugger (basically a replacement for ShoreLine, which is too simplistic for my needs).

Signed VMs and Restored build process

Which means latest vm versions are latest builds from OSVM:


• http://files.pharo.org/get-files/70/pharo64-mac-latest.zip
• http://files.pharo.org/get-files/70/pharo64-linux-threaded-latest.zip
• http://files.pharo.org/get-files/70/pharo64-linux-latest.zip
• http://files.pharo.org/get-files/70/pharo64-win-latest.zip

• http://files.pharo.org/get-files/70/pharo-linux-threaded-latest.zip
• http://files.pharo.org/get-files/70/pharo-linux-latest.zip
• http://files.pharo.org/get-files/70/pharo-mac-latest.zip
• http://files.pharo.org/get-files/70/pharo-win-latest.zip


• MacOS VMs now are signed! This should fix a lot of problems we had before.
• Please take note that win64 build lacks all library dependencies, and many things will not work (working on that).
Thanks to Fabio to help me put all the pieces together.


I2C support to PharoThings and WiringPi

I added I2C support to PharoThings and WiringPi.
Now you can ask the board instance for I2C connection:
i2cConnection := board connectToI2CDevice: 4.
And then read/write data using wiringpi functions like:

i2cConnection readData.
i2cConnection read8BitsAt: 16r32 “register”.

i2cConnection writeData: 16rAB.
i2cConnection write8BitsAt: 16r32 “register” data: 16rA5.

I added also I2CDevice as superclass for simple i2c devices. There is example of accelerometer ADXL345. Look for details.
Best regards,

HTTP mocking lib


I started with a rudimentary HTTP mocking lib (adding features as needed) inspired by nock, but using the existing ZnClient / ZnRequest / ZnResponse api for mocking.

Available at https://lolg.it/herby/znock
Atm the feature are very basic (no filtering, matching only by host and scheme), but there it is for the interested.


“other stuff”
Znock default intercept

“other stuff”
Znock default verify

https://foo.bar‘ znock
url: ‘/api/v0/info’;
ok: (ZnEntity json: self sampleInfoResponse).
“code that should get https://foo.bar/api/v0/info

The setUp starts and cleans the mocker; the test case sets up the expectation that GET https://foo.bar/api/v0/info will occur and defines the response; tearDown checks that that GET actually appeared and fails if not.

DNU w/ whitelisting is used to reply certain ZnClient messages to set up the expectation, ZnResponse class messages to create the response and ZnResponse messages to fill it further.

So you can

‘foo.bar’ znock
url: ‘/api/v0/info’;

if you like it this way or

‘foo.bar’ znock
url: ‘/api/v0/info’;

to allow both http and https; eventually

‘foo.bar/api/v0/info’ znock

if you want it shorter; mocking multiple req/res pair should work (not tested), as in

‘foo.bar’ znock
url: ‘/api/v0/info’;
url: ‘/api/v0/last’;
ok: (ZnEntity textCRLF: ‘herby’).

Both must appear (in any order) for verify to be happy.




Sending notifications from Pharo to your Mobile via Pushover.net

Just a little snippet I wanted to share. Pushover (https://pushover.net) is a general service that delivers notifications to iOS, Android and desktop devices via an API (and an email gateway as well). It is really easy to get started with.
This is how you do it from Pharo:
ZnClient new
url: ‘https://api.pushover.net/1/messages.json‘;
accept: ZnMimeType applicationJson;
contentReader: [ :entity | NeoJSONObject fromString: entity contents ];
contentWriter: [ :object | ZnEntity json: object asString ];
contents: (NeoJSONObject new
token: ‘ax4o55o6g5imb1a6st3m9x34hqu44z’;
user: ‘uv2fovx3f9sp3rgssrupvjgvdo8quw’;
title: ‘Test 3’;
message: (‘This is a test @ {1} by {2}.’ format: {
                            DateAndTime now. SystemVersion current }));
It will look like this on your mobile device (just seconds later):

New book at http://books.pharo.org


We reorganised the books.pharo.org web site to make the distinction between technology and teaching oriented booklet.
We will have specific covers soon and print available on lulu.
In addition we got the new booklet from C. Bera that explains Call Stack Management.

Calypso 0.8.11 Spotter integration


I just released new version of Calypso 0.8.11 which includes several fixes and new features.
The most exiting feature is Spotter menu from Esteban https://youtu.be/RgqiSRFUAIk:

“Spotter navigation” brings an easy way to access all available panels, tabs and commands in selected browser.
Activation is usually cmd+/ (because is close to the arrows)

Settings browser includes group for Calypso:
– trait method visibility (enabled by default)
– hierarchy order for variables (variable mode in full browser)
– hierarchy order of method visibility classes (when expand first item in method groups pane)
– shortcut for spotter menu. It is temporal solution until Commander will provide settings for all shortcuts in system.
And few other improvements:
– better status bar tool to change protocol and package
– shortcut to change ineditor method protocol: $e meta , $t meta (editor + tag)
– shortcut to change ineditor method package: $e meta, $p meta (editor + package)
– inherited method group is replaced by all methods group with name “instance side” or “class side” depending on browser mode. It should make browser meta level more noticeable.
Best regards,