Planet Smalltalk

May 23, 2018

Pharo Weekly - [Ann] New iceberg videos!

Hi all,

This time (just before releasing a new version of iceberg) I wanted to share some videos with you. Feedback is welcome.

!! How to contribute to Iceberg

This video shows how to contribute to iceberg.
For this, you should update your iceberg installation and then just do a pull request.
This means that you need to start by forking

- Path 1: Clone and pull (easy)
  - Clone your fork
  - Checkout the latest development branch (e.g., dev-0.7)
  - Pull from pharo-vcs/iceberg

  This path does not always work, as this is kind of self-brain surgery. Iceberg is updating itself. If this does not work, go to path 2

- Path 2: Install from scratch (if Path 1 does not work)
  - Use the script in the README file to unload and reinstall iceberg
  - Make sure you use the latest development branch in the Metacello script (e.g., dev-0.7)
  - Clone your fork and checkout the development branch

Once you have the correct version, you can load the tests by loading the development group of the baseline.

!! Basic Branching and Merging

This video shows in a simple example how to branch, merge and checkout different commits. In this video we first create a new class with a method, then we create another branch and force a conflict. We resolve the conflict during merge.

In the middle, bonus feature, we checked out a commit and stayed in
Detached HEAD for a while ;)

!! Loading a baseline from your repository

This video shows how to load a baseline from Iceberg's UI.
We clone an existing project, see it is "Not loaded" and use Metacello plugin to load the default group.


PS: Tomorrow I'll answer the threads about Iceberg that were going around
here in the mailing list. I was running today.

Torsten Bergmann - Pharo 7 on SqueakJS (demo)

With some tweaks mostly related to FFI and fonts, we are able to run Pharo 7 on SqueakJS VM. Read more or try out directly in your web browser.

Torsten Bergmann - PngSuiteExplorer

PngSuiteExplorer is a simple tool to test the support for PNG files in Pharo using the "official" test-suite for PNG.

May 22, 2018

Cincom Smalltalk - Smalltalk Digest: May Edition

Welcome to the May 2018 edition of the Cincom Smalltalk™ Digest.  In this edition, the new releases of Cincom Smalltalk are available for customers and partners, Arden Thomas continues his DomainMaster Hidden Gems series and we feature a few videos by Suzanne Fortman.

The post Smalltalk Digest: May Edition appeared first on Cincom Smalltalk.

May 21, 2018

Smalltalk Jobs - Software Engineer, Edinburgh, UK

The company serves the semiconductor and MEMS industry;  its customers are in North America, Europe and Asia.  Travel to customer sites will be 10-20% of working time in a year.

A Software Engineer/Senior Software Engineer is wanted to develop and improve software on their current hardware platforms.  Programming is in VisualWorks, plus programming hardware interfacing modules and hardware / software integration.

They want experience in OO and in computer hardware (at least a little networking experience is also desired).  Prior knowledge of LabVIEW, Smalltalk and/or .Net is welcome but not essential.  The candidate will work in a small team but will also interact with other parts of the company and with customers and suppliers, so good communication skills are desirable.

More information is here and/or here.

UK Smalltalk - Bug Hunting - Monday, May 21st

The next meeting of the UK Smalltalk User Group will be on Monday, May 21th.

We'll meet at our now usual venue, the City Pride, from 7pm onwards.

For this month’s meeting, we’ll do a session of bug hunting: fix a few things in our favourite Smalltalk frameworks and tools.

If you'd like to join us, you can show up at the pub. You can also sign up in advance on the meeting's Meetup page. Don’t forget to bring your laptop!

May 20, 2018

Pierce Ng - SQLite Boolean

From its documentation, SQLite does not have a separate Boolean storage class. Instead, Boolean values are stored as integers 0 (false) and 1 (true).

I've added Boolean handling to UDBC-SQLite. When writing to an SQLite database from Pharo, true is written as integer 1 and false as integer 0. SQLite uses dynamic typing, and any column in an SQLite database, except an INTEGER PRIMARY KEY column, may be used to store a value of any type, irrespective of the column's type declaration. As such, when writing Boolean values to a database, UDBC-SQLite does not check the database's type declaration.

When reading an SQLite database, UDBC-SQLite does check a column's type declaration: If a column is Boolean, UDBC-SQLite reads 1 as true, 0 as false, NULL as nil, and any other integer values raises an exception. I've encountered real world data where the string "t" means true and "f" means false for a Boolean column, so UDBC-SQLite handles these cases too.

Glorp has been similarly updated. Loading GlorpSQLite, from my development fork for now, installs both UDBC-SQLite and Glorp:

Metacello new
  repository: 'github://PierceNg/glorp-sqlite3';
  baseline: 'GlorpSQLite';

All Glorp unit tests should pass. Tested on Linux using fresh 32- and 64-bit 60540 images.

Smalltalk Jobs - Smalltalk Jobs – 5/19/18

  • Bloomington, MNSoftware Developer II at Rudolph Technologies
    • Required Skills:
      • BS/MS in Computer Science or Software Engineering (Exceptional candidates from other fields will always be considered).
      • Minimum 3 years of experience
      • Excellent object oriented software design and development skills
    • Wanted Skills:
      • C# and/or .NET Framework
      • Smalltalk
      • Experience controlling hardware devices from software
      • rich user-interface development
      • Experience developing robust multi-threaded applications.
      • Real time control experience using VxWorks or other RTOS
      • Database design and development
      • Semiconductor industry exposure
      • SEMI Factory Automation, SECS/GEM
      • Experience working in simulated environments.
  • San Jose, CAControlworks Software Engineer with Smalltalk through InfiCare Technologies
    • Required Skills:
      • BS or MS in Computer Science or related field with solid programming knowledge
      • Hands-on experience in C/C++, C#, .Net, COM
      • At least 5 years experience in real-time multitasking programming, preferably for large equipment control software in the semiconductor industry
      • ControlWORKS SmallTalk framework
      • Software development for intelligent devices and their links such as: MFC’s, gate valves, pressure transducers, integrated gasbox, gas panel, safety-critical devices, Ethernet, TCP/IP, RS-232, etc.
    • Additional listings: Fraank Systems, CSI Jobs, CSI Jobs
Good luck with your job hunting,
James T. Savidge

View James T. Savidge's profile on LinkedIn

This blog’s RSS Feed

May 19, 2018

Pharo Weekly - PharoContributor videos

Pharo contributor is a simple tool to help you contributing to Pharo.

now provides two videos demonstrating how this tool can be used as an alternative to easily contribute to latest Pharo 7



Pharo Weekly - Call for new GC testers

Hi all.

We’ve been working on a GC with lower pause time recently and we are looking for people working with images over 2 Gb to tune it (Deployed applications, not interested in quick hacks). We can sign NDAs if required.

Companies and people helping us will be guaranteed that the GC about to be deployed will be fine-tuned for the use-cases they provided. To evaluate and tune it properly, we need three kind of use-cases (>2 Gb):

– an image growing from a small size to a large size

– an image performing random accesses on objects on a large heap

– an image decreasing memory

The best would be for us 3 DoIts performing the 3 examples with low dependencies aside from the image so we can reproduce easily.

Clément Bera <>

May 18, 2018

Pharo Weekly - [Ann] OSSubprocess 1.0.0

Hi all,

News from the OSSubprocess side. For those who do not know it, OSSubprocess is the library to call external processes from Pharo.

These are the main points of this release.

- 64bits support
- Issues Working on both Pharo 6 and 7
- Issue #34: Adding tests to validate that the return code is correctly handled
- Issue #27: Cleanup: remove OSSubprocess-Tests package
- PR #26: Add stress tests

This version works for Pharo >=6. Users of Pharo5 will need to stick with v0.2.5, because of non-compatible changes in uFFI (required mostly for 64 bits).

- We moved the repository to pharo-contribution to remove pressure from Mariano for releases and integrations
- We updated the configuration in the catalog
- We decided to move to a 1.0.0 versioning schema because 0.* does look like the library is not stable and it actually is (We have been using it in pillar and iceberg for quite some time).

You can load this version from the catalog or using with:

Metacello new
   baseline: 'OSSubprocess';
   repository: 'github://pharo-contributions/OSSubprocess:v1.0.0/repository';

Detailed changes log in

If you have any issues (or PR!), we wait for your issue entry in

Have a nice weekend,

Guille Polito

Research Engineer

Torsten Bergmann - Alternative Pharo-contributor tool explained with videos now provides two videos demonstrating how this tool can be used as an alternative to easily contribute to latest Pharo 7

Video 1:


and Video 2:


May 17, 2018

Torsten Bergmann - Pillar Techtalk

May 16, 2018

Cincom Smalltalk - Bringing together: Data API, TLS, JSON parsing, Drawing, Text2 and DomainMaster

The purpose of the Hidden Gems Screencast is to give developers who use Cincom Smalltalk some valuable insight into useful abilities of the products that may not be obvious. This episode is a series […]

The post Bringing together: Data API, TLS, JSON parsing, Drawing, Text2 and DomainMaster appeared first on Cincom Smalltalk.

May 10, 2018

Cincom Smalltalk - Using Cincom Smalltalk, AR-CAD LLC Provides Custom Software for Companies Using CAD Systems

AR-CAD LLC provides motion simulation, engineering and graphics software for companies using CAD (computer-aided design) systems in their operations. Their software products can be stand-alone or work as add-ins or customizations in other computer-aided design programs.

The post Using Cincom Smalltalk, AR-CAD LLC Provides Custom Software for Companies Using CAD Systems appeared first on Cincom Smalltalk.

May 09, 2018

Cincom Smalltalk - What Value Can You Create Using Cincom Smalltalk?

Have you dreamed of being wildly successful and creating the next "big thing" in the development world? Maybe you've had grand visions of where you would like to be, but have never found a solution to help you get down that path.  Why not give Cincom Smalltalk a try?

The post What Value Can You Create Using Cincom Smalltalk? appeared first on Cincom Smalltalk.

May 08, 2018

Pharo Weekly - [Ann] Containers-UniqueOrdered


Just a short notice to announce a newcomer to the Containers project. Now we have OrderedSets or UniqueOrderedCollection.

Stef (talking less Pharoing more)


Pharo Weekly - [ANN] OSC and TUIO on github


A short notice to announce that OSC and TUIO smalltalkhub packages are now available at

Stef (talking less pharoing more)


Torsten Bergmann - Intelligent System Construction

Video from latest tech talk of PharoClub: Intelligent System Construction by Alexandre Bergel


May 07, 2018

Pharo Weekly - [ANN] TelescopeCytoscape for Seaside v1.0.0


Telescope is an engine for efficiently creating meaningful
visualizations. It allow users to create models of visualizations and to
render them via connectors to visualization frameworks.

Until now, it was hosted on SmalltalkHub and we just migrated it to Github.

We also finished the v1.0.0 of the CytoscapeJs
( Telescope connector. It is build on top of
Seaside to use visualizations as components.

You can find the project at:

And a demo at:

Cyril Ferlicot

Pharo Weekly - 30/4-6/05 Esteban ChangeLog


This is my weekly ChangeLog, from 30 April 2018 to 6 May 2018.
You can see it in a better format by going here:


3 May 2018:

*    I took some time to polish a long time waiting PR: [](, which finally 
    closed [case: 20878]( and incidentally cleaned up some dependencies with old Compiler we no longer need. 
    Not bad :)
*    I spent last 5 working days working on a change on metacello that I thought it was going to be just a morning. 
    Considering murphy's law of estimations, I'm still 5 days early ;)
    ... but I'm not done (even if PR is working, you can see it [here](, 
    I'm waiting for some feedback from Dale (there are some problems on gemstone side and I need help for it).
    Anyway. this PR basically makes tonel format available even when declaring +filetree://+ repositories (+filetree://+
    now is just a declaration of "smalltalk format", not binded to +cypress+ as before). 
    This should provide backward compatibility on baselines (who can still be declared with +github://+ etc. protocol) and 
    makes tonel format available up to Pharo 3.0 versions (since it does not depends on iceberg presence anymore).


May 06, 2018

Pharo Weekly - [ANN] Heimdall logging manager for Seaside v1.0.0


Guillaume Larcheveque begun a simple login manager for Seaside.

I just finished to port it to github and we released the v1.0.0.

It is still experimental and help is welcomed.

Project can be found at:

Cyril Ferlicot

May 05, 2018

Pharo Weekly - [ANN] PrismCodeDisplayer for Seaside v1.0.0


We just finished the release v1.0.0 of PrismCodeDisplayer for Seaside.

Prism ( is a lightweight, robust,
elegant syntax highlighting library.

The Seaside binding allows to:
    Display code
    See line numbers
    Select code and act on the selection
    Customize the style of some text intervals
    Add links to text intervals
    Add a search feature
    Have a dynamic loading of the text content
    Copy the text content
    Have a minimap

Project can be found at:

Demo at:

Cyril Ferlicot

Smalltalk Jobs - Smalltalk Jobs – 5/5/18

Telna has a job in Toronto for an experienced Smalltalker.

Telna is a global network operator that focuses on providing “out of the box” connectivity to devices, machines, users and manufacturers. We are changing the way networks operator, by focusing on scalable software-defined networks that can be deployed anywhere in the world in minutes rather than years.

We are looking for Software Engineers to join our network team to design and develop the core tools that drive our “Network as a Service” platform. Development experience in smalltalk is mandatory.

This is a unique opportunity that will give the selected candidate(s) the ability to learn about the operations of a mobile network and hands-on experience developing the software systems that form the backbone of our services.

Mandatory Skills Required:

  • 4+ years of Smalltalk Development (Pharo preferred )
  • Strong understanding of Linux and databases (MongoDB, MySQL)

Bonus Skills:

  • Telecom experience

While a Bachelors degree in Computer Science, Engineering or related is required, relevant experience will be taken into consideration.

Telna welcomes and encourages applications from people with disabilities. Accommodations are available on request for candidates taking part in all aspects of the selection process.

Job Type: Full-time


  • Smalltalk Development: 4 years (Required)
  • Pharo development: 4 years (Preferred)


  • Bachelor’s (Required)

Pharo Weekly - Book Update: Voyage


I published a new version of the Voyage booklet. It includes a pattern to support tests and description of excluded attributes.

Available at:


May 04, 2018

Pharo Weekly - [ANN] ChartJs for Seaside v1.0.0


I'm happy to announce the release v1.0.0 of ChartJs for Seaside.

This is a binding of ChartJs v1. We did not got the time to bind v2 of

v1.0.0 includes:
    Creation of 1D charts
    Creation of 2D charts
    Creation of Boxplots
    Callbacks on 1D and 2D charts
    Tooltips on charts
    Style customization

The project can be found at:

Demo at:

Cyril Ferlicot

Torsten Bergmann - PrismCodeDisplayer for Seaside

A wrapper for PrismJS for Seaside web framework. Read more here or check the demo here.

Torsten Bergmann - TelescopeCytoscape for Seaside

Telescope is an engine for efficiently creating meaningful visualizations using Seaside and Pharo. Now there is a connector for CytoscapeJs for Seaside. Read more here and a demo is here.

Torsten Bergmann - Reproducible moldable interactions using Pharo and Bloc

A new inspector model in Pharo that records developer interactions as first-class entities and uses them to reduce repetition: this is part of "Reproducible moldable interactions" master thesis. You can directly jump to the PDF here. Note that the solution presented is implemented in Pharo using Bloc UI infrastructure.

Torsten Bergmann - Pharo - "Containers" for collections and data structures

"Containers" - a project for alternate collections and data-structures for Pharo Smalltalk is now on GitHub. Read more