Planet Smalltalk

May 25, 2017

Pharo Weekly - Reading JSON Feed format

Here is a quick example using the new JSON Feed format (

json := ZnClient new
url: ‘‘;
accept: ZnMimeType applicationJson;
contentReader: [ :entity | NeoJSONObject fromString: entity contents ];

json items collect: #title.
json items collect: [ :each | each title -> each url ].

Note how you can just pretend that the objects understand #items, #title or #url.


Benoit St-Jean - Pharo et NLP

Si le NLP (Natural Language Processing, aussi appelé TALN pour Traitement Automatique du Langage Naturel) vous intéresse, il y a maintenant une librairie de code pour Pharo Smalltalk disponible ici.

Classé dans:Pharo, Smalltalk Tagged: Natural Language Processing, NLP, Pharo, Smalltalk, TALN, Traitement Automatique du Langage Naturel

Benoit St-Jean - Smalltalk dans l’espace

À tous ceux qui disent que Smalltalk n’est pas cool, lisez ceci!

Classé dans:Cuis, Smalltalk Tagged: Cuis, espace, satellite, Smalltalk, spatial

May 24, 2017

The Weekly Squeak - Satellogic hyperspectral cameras geometric and spectral processing software written in Cuis Smalltalk


Hi Folks,

Satellogic was featured today at Nature News!

I helped design and build the hyperspectral cameras in our satellites
Fresco and Batata. And I wrote the geometric and spectral processing
software for that image. This is not completely off topic, though: The
geometric software (image rectification and correction), the most
complex part of the processing, was written by me in Cuis Smalltalk, and
runs in a Cuis Smalltalk + OpenCL application.

Please share my joy today!

Juan Vuletich

“Some firms are beginning to explore hyperspectral imaging, which spans a wide range of wavelengths, allowing the detection of specific chemicals. In 2016, Satellogic of Buenos Aires launched two 35-kilogram satellites equipped with custom-designed cameras and light filters. Last month, the company became the first commercial supplier of hyperspectral data. Satellogic’s goal is to fly about 300 satellites, together capable of imaging any location on Earth.

And it has already begun to appeal to scientists. The company announced in January that it would give researchers free access to its 30-metre-resolution hyperspectral data. These span optical and near-infrared wavelengths and can help track water pollution and oil spills, and monitor the health of forests and crops. “We are receiving contacts from scientists all over the world,” says Satellogic chief executive Emiliano Kargieman.”

Torsten Bergmann - TDD example in Pharo

Self Blogs - Self “Mandarin” 2017.1

It’s been a while since we did a proper release of Self – too long in fact.

The last duck themed release was “Mallard” a couple of years (!) back – we’re overdue for more ducks so here is a new release of Self brought to you by this beauty:


Self 2017.1 is downloadable for Linux x86 (.zip) and MacOS (.dmg), or you can build it yourself from the GitHub source tree.

There is also a handbook included and available to read online.

A brief change log is:

New features:

  • Changed to new versioning system for key subsystems (vm, core, morphic, outliners)   and for release as a whole.
  • New `about` object accessible from main menu with system info.
  • New `preferences` object allows easy access to system preferences.
  • ew themeing system for outliners and a new look.
  • Extensive reorganisation of object categories in `globals` to make global objects more easily discoverable and understandable.
  • New option on `worldbuilder.self` script to allow for fully automated building of Self worlds by setting subsystem options on command line.
  • New string helper methods: `splitOn:`, `joinUsing:` and `slice:`.
  • The `transporter` is now aware of code being in multiple independent trees, not  only one single Self tree, allowing for separate projects to be kept in separate   version control repositories.
  • A system-wide logger has been included to standardise logging practices within    Self.


  • Self on macOS updated to work with El Capitan.


  • Fix on macOS to reduce CPU usage when idle.
  • VM build will now explicitly show which macOS SDK it is using.
  • ^D (EOF) handled correctly at prompt
  • Fix to bug preventing compilation on recent GCC
  • Many other misc fixes.


  • General improvements to Self handbook.
  • Self website moved out of main repository.


  • Webserver moved to separate repository:
  • integration for VM building

May 23, 2017

Torsten Bergmann - Things people built with Smalltalk

Juan Vuletich from Cuis Smalltalk is working at Satellogic company (Buenos Aires).  Back in 2013 the company launched "Captain Beto" (a.k.a. CubeBug-1), the first Argentine CubeSat.

Now as one of the earth-observing companies who push for more-advanced science satellites they were mentioned also in this article from Nice.

Juan helped design and build the hyperspectral cameras in satellites Fresco and Batata. And he wrote the geometric and spectral processing software. The geometric software (image rectification and correction), the most complex part of the processing, was written by him in Cuis Smalltalk, and runs in a Cuis Smalltalk + OpenCL application.

Always interesting to see where Smalltalk is used and what kind of things people built with the help of Smalltalk

Pharo Weekly - JPMorgan open position at London

Torsten Bergmann - Fog - blockchain client for Pharo

Fog is a library that allows the user to connect to an ethereum based blockchain data base. Code is here and the original announcement is here.

Torsten Bergmann - DataFrame class -

Oleksandr Zaytsev released "Public Interface for DataFrame class" - an article on a DataFrame class to handle tabular data in Pharo.

Torsten Bergmann - Storiefied PharoDays 2017

A storified version of Pharo Days 2017 (based on tweets) is available here.

Torsten Bergmann - Updated Refactoring browser critics rules in Pharo

Myroslava is working on rewriting the refactoring browser critics rules from Pharo into newer rules, in a more comprehensible format. Initial version is on her GitHub account - there is a description of the work as an article on Medium

Torsten Bergmann - Commander: command pattern library for Pharo

Commander is a new Pharo library which models application actions as first class objects. Description is here and code is on SmalltalkHub.

Torsten Bergmann - Calypso presentation PharoDays 2017

Calypso browser is a new browser for Pharo that also allows remote debugging. A presentation from PharoDays 2017 is here

May 22, 2017

Torsten Bergmann - Beer and Smalltalk meeting

Torsten Bergmann - Berlin Smalltalk meeting

There is a Smalltalk user meetup in Berlin, germany 12th of June. Read more.

Torsten Bergmann - Lawsuit tracker

Torsten Bergmann - Hash ID's for Pharo

A Smalltalk implementation of Ivan Akimov's Hashids to obsfuscate internal ids and references. Read more here

May 21, 2017

Pierce Ng - Seaside and Pharo 5

I just tried loading Seaside into the latest Pharo 6 pre-release image from the Catalog Browser. It loads cleanly. However, the Seaside control panel doesn't start because it uses NewListModel which does not exist in this image:


  self instantiateModels: #(
    listModel NewListModel "<== Exists In Pharo 5, not in Pharo 6"
    textModel TextModel
    toolbarModel WAServerAdapterToolbar).

Ok, how about Pharo 5? Using Pharo 50772, which is currently the latest Pharo 5 image, I loaded Seaside 3.1.5 programmatically after visually inspecting ConfigurationOfSeaside3:

Gofer it 
  smalltalkhubUser: 'Seaside' project: 'Seaside31';
  package: 'ConfigurationOfSeaside3';
(#ConfigurationOfSeaside3 asClass project version: '3.1.5') load.

The load sequence includes messages to String>>#subStrings: which is deprecated. The senders are GRStringTest>>#testSubStrings, JQAjax>>#callback:passengers:, WAAdmin class>>#register:at:in: and WAAdmin class>>#unregister:in:.

Otherwise Seaside 3.1.5 loads cleanly. Test Runner reports 1173 run, 1171 passes and 2 expected failures.

May 19, 2017

Pharo Weekly - Chrome DevTools Protocol and Pharo


I played around with remote controlling Google Chrome from
Pharo using Chrome DevTools Protocol [1] (based on WebSockets).

The video shows an example using latest Pharo 6 on Mac:

Initial Code is on GitHub [2] if someone is interested,
requires OSOSX and Zinc Websockets to be loaded.

Have fun


May 18, 2017

Torsten Bergmann - Chrome DevTools Protocol and Pharo

I played around with remote controlling Google Chrome from Pharo using Chrome DevTools Protocol (based on WebSockets).

The following video shows an example using latest Pharo 6 on Mac:

Initial Code is on GitHub if someone is interested, requires OSOSX and Zinc Websockets to be loaded.

Torsten Bergmann - Pharo Days 2017

May 16, 2017

Cincom Smalltalk - Smalltalk Digest: May Edition

The May Edition of the Cincom Smalltalk Digest.

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

Torsten Bergmann - German election and Smalltalk

German election results are displayed with an application powered by Gemstone/S Smalltalk. Read more

Marten Feldtmann - Gemstone/S Application Example – HbbTV Playout System

The last two weeks we had two elections here in Germany – one in Schleswig-Holstein and last weekend in Nordrhein-Westfalen in Düsseldorf.

Television Tower next to state parliament in Düsseldorf

As mentioned in an earlier posting we already used Gemstone/S as our database during the election for the broadcaster SWR and we played out results and graphics for an internet based application. The model is defined using PUM, source code is created for Topaz, Sencha ExtJS and Python3.

This weekend we did a similar application for the broadcaster WDR (Westdeutscher Rundfunk), but not for their Internet presence, but for an HbbTV hybrid add-on service during their program on sunday and 14 days later (so its still available via their WDR TV channels).

Persons at the broadcaster were able to enter results via an browser based data-enter application – and the results were stored in Gemstone/S and transferred to the system producing the animated TV graphics. Application as usual – API oriented, browser based.

Input Application written in Sencha ExtJS

The structure of the application was pretty similiar to the one of last autumn – main logic is located in the Gemstone/S database, several independent topaz processes are inserting election results, preparing graphical repesentations of the results and even do an automatic publication of the results without interaction.

The system is managed via a browser based UI (written in Sencha ExtJS), communicating via an API with the database. External applications were otherwise written in Python3.

Management Software written in ExtJS

The system was actually running in parallel on two different systems at some hosters – producing the same results independently.

Current HbbTV at the WDR television broadcaster

The end-user application (running on the TV sets) was written in “low-level” Javascript (WITHOUT any larger libraries like jQuery) to make is runnable on even the most slowest TV set available on the market :-)))

Final Results shown in HbbTV

Voters moving from one party to another

Filed under: Smalltalk Tagged: elections, Gemstone/S, HbbTV, Javascript, PUM, WDR

Smalltalk Jobs - Smalltalk Jobs – 5/16/17

Three jobs in Germany, all of them with pension management firms.

The first two are in Cologne.

The first is with PSVaG they are looking for Smalltalk with complex analysis, and, good team work.

The second is with collogia AG and they want Basis and Visual Works Smalltalk.

The last job is in Berlin and it is with Verka VK which is the largest pension company in Germany.

Good luck with your job hunt!


Filed under: Employment

Cincom Smalltalk - Using Polycephaly/MatriX in Cincom Smalltalk™

A Product Management Mini Survey The purpose of product management mini surveys is to make sure that we communicate, listen and understand customer and user requirements, needs and issues. Polycephaly […]

The post Using Polycephaly/MatriX in Cincom Smalltalk™ appeared first on Cincom Smalltalk.

May 15, 2017

Smalltalk Jobs - Reducing the friction when upgrading: Change Type Filtering for the Package Comparison Tool

Many of you that follow this blog are, or will be involved in projects that require upgrading applications from one version of Smalltalk to a newer one. Those upgrades can often be difficult, particularly when there are multiple versions being skipped.

As part of the Support team at Cincom®, I and my teammates are often called on by our customers to be the “first responders” when large obstacles get in the way during an upgrade.

Based on feedback from our customer’s experiences, I have created enhancements to the Package Comparison tool that I hope will reduce some of the friction involved in upgrading VisualWorks® and ObjectStudio® applications. Please follow the links below for full details about this new Contributed Pacakge.

Introducing Change Type Filtering for the Package Comparison Tool

When loaded, this package adds three Checkboxes to the Package Comparison Tool that allow the user to control what types of comparisons are to be shown or hidden. It is designed to work with ObjectStudio 8.4 or Cincom VisualWorks 7.9 and above. When any of the new options are turned on (checked), the comparison view will be updated so that those types of comparisons are no longer shown. The hidden comparisons can be shown again by turning off any of the options (unchecking a checked option).

A video demonstrating the Contributed package is also Available.

Good luck with your upgrades,
James T. Savidge

View James T. Savidge's profile on LinkedIn

This blog’s RSS Feed

Filed under: Employment

Smalltalk Jobs - Smalltalk Jobs – 5/15/17

  • Fremont, CASoftware Engineer 3 (42681) at Lam Research
    • Required Skills:
      • B.S or Masters in Computer Science, Computer Engineering, Electronics or related field
      • Knowledge of embedded software development and design
      • Knowledgeable with communication protocols such: I2C, SPI, UART etc.
      • Excellent knowledge of Object Oriented Software implementation and design e.g.: Design Patterns and Finite State Machines
      • Strong software engineering skills: modular design, data structures and algorithms
      • Experience with Source Control and Development life cycles
      • Analytical approach to root cause analysis
      • Knowledge of multithreading is a must (preemptive thread scheduling)
      • Understanding of Networking/TCPIP
      • Ability to travel within USA, Europe, and Asia (total is less than 10%)
    • Wanted Skills:
      • Background in electronics and electrical engineering
      • Smalltalk experience
      • Experience with real-time operating systems
      • Experience in distributed embedded controls systems
  • Jersey City, NJSmall Talk Developer through VDart
    • Required Skills:
      • Extensive working experience in Smalltalk Language using IBM Visual Age Smalltalk, ObjectStudio, Visual Smalltalk and VisualWorks Smalltalk
      • Experience in developing the Enterprise Applications using Java, Struts, EJB, JDBC, JavaBeans, Java Servlets, JSP, JavaScript, HTML, XML
      • Possess excellent technical, management, leadership, coordination, communication, negotiation and intra personal skills.
  • Minneapolis, MNSmalltalk Technical Lead through Cognizant
    • Required Skills:
      • Candidate should have Minimum 8+ years of Software Programming experiences in Smalltalk technology (Ex: Smalltalk, Sybase)
      • Development and Support experience
      • Tech lead experience
      • Hands on experience of Development / test/ Deploy
      • Experience in working with global teams
      • Fluent English language skills (written, spoken)
    • Wanted Skills:
      • Experience in on-site / off-shore delivery model
      • Experience & knowledge in Commodity Trading, Risk Management (market risk, credit risk), ERP, Financial Services
    • Additional listings: Smalltalk Technical Lead
  • Columbus, OHVisualAge SmallTalk Developer through ReqRoute
    • Required Skills:
      • VisualAge Smalltalk
      • DB2
      • MQ Series
      • At least 4 years in Analysis, Designing, Development , Testing and Supporting of projects involving Smalltalk.
    • Wanted Skills:
      • Experience in handling Application development and Application support projects.
      • Experience of working in Onsite/Offshore model
      • Utility domain or experience working with Billing Applications in Telecom/Finance domain
  • Richland, WABWR Neutronics Reload Design & Analysis Engineer I-III-DES02320 (Multiple positions are available) at AREVA Front End Business Group
    • Required Skills:
      • Engineer II: BS in Nuclear Engineering plus 2-3 years experience reactor physics or fuel management engineering experience. An advanced engineering degree may be substituted for related work experience (MS 1-2 yrs. or PhD 1-3 yrs.)
      • Engineer III: BS in Nuclear Engineering plus 3-5 years experience reactor physics or fuel management engineering experience. An advanced engineering degree may be substituted for related work experience (MS 1-2 yrs. or PhD 1-3 yrs.)
      • Engineer IV: BS in Nuclear Engineering or related field plus 5-7 years experience reactor physics or fuel management engineering experience. An advanced engineering degree may be substituted for related work experience (MS 1-2 yrs. or PhD 1-3 yrs.)
      • Basic experience and capabilities with MICROSOFT Office software products (WORD, EXCEL, etc.).
      • Must have a pro-active approach to problem identification and resolution.
      • Must have ability and attitude to learn a variety of new procedures, processes, and tools, while maintaining various stages of production.
    • Wanted Skills:
      • A wide range of other skills related to the position, including Smalltalk
Good luck with your job hunting,
James T. Savidge

View James T. Savidge's profile on LinkedIn

This blog’s RSS Feed

Filed under: Employment Tagged: jobs, Smalltalk, Smalltalk jobs

May 14, 2017

Torsten Bergmann - Pharo booklet collection

Pharo now has a booklet collection. Check it out on the books page.