Thursday, December 20, 2012

Squeak on RISC OS Pi

Tim Rowledge may be known to you. He ported Squeak to the Acorn RISC processor and wrote "A Tour of the Squeak Object Engine" when working at Interval Research. He is now working on the Raspberry Pi (RISC OS Pi) and as of today he has a running Squeak on it.

Wednesday, December 19, 2012

Need chocolate

The company Object profile is hiring: "Object Profile is hiring: Yes! We are ready to share our happyness! We are looking for fulltime and partime engineers to share fine chocolate." So if you want to work with Pharo and VW contact them.

Pharo Google Plus Community

There is now also a Google+ community for Pharo.

Thursday, December 06, 2012

Slides from Pharo workshop

Here are the new slides from Pharo workshop at fOSSa: - Talk 1: Pharo : a Dynamic Reflective System. Slides - Talk 2: Pharo: Syntax in a Nutshell. Slides - Talk 3: Pharo in the Real World. Slides

Pharo 2.0 enters Beta

Pharo 2.0 is now beta.

Friday, November 30, 2012

Thursday, November 29, 2012

Redline Smalltalk in Maven (Maven plugin)

Not only is Redline available in a Maven repo (the JAR's, I reported about it). Now there is also a Maven plugin for Redline. Haven tried yet - but the plugin's mojo has one simple goal: stic So adding it to maven pom.xml should be easy. Here is a sample.

Pharo Help additional features

I added some new features to my Pharo Online Help project. Read more.

Smalltalk 30th Anniversary Reunion

There is a new page on Smalltalk-80 history: and a "Smalltalk 30th Anniversary Reunion" in preparation. Read more on James' blog.

Growing Object-Oriented Software Guided by Tests

There is a book called "Growing Object-Oriented Software Guided by Tests" - the examples code is now ported to Pharo Smalltalk. See code at SmalltalkHub.

NativeBoost 1.7 for Pharo 2.0

A new NativeBoost version 1.7 for Pharo 2.0 (which is still alpha as of today) is now available.

Just fire up an updated fresh Pharo 2.0 image and select "Tools" and "Configuration Browser". Then select Native Boost and select "Install configuration (Stable version)".

- Igor changed the API of NativeBoost a little bit (avoid globals, etc.)
- Ciprian contributed special syntax for array arguments
- I contributed some more examples for Win32 by wrapping some common Win32 API functions

So if you are on Windows you can play with:

    NBWin32Shell shellBrowse: '' 
    NBWin32Shell getComputerName
NBWin32Shell showODBCSettings
NBWin32Shell lockWorkstation

A more complete list can be found here.

Using the shell you can also query infos about your system:

   NBWin32Shell getEnvironmentVariable: 'JAVA_HOME'
   NBWin32Shell getDriveType: (NBWin32Shell getHomeDrive)
   NBWin32Shell getPathEntries

You can also open the control panel and control panel applets:

   NBWin32Shell showControlPanel
   NBWin32Shell showDisplaySettingsBackground

See class NBWin32Shell for more examples.

Now there is also support for the "DebugOutputString" API - which allows you to write

    NBWin32Shell outputDebugString: 'Trace me'

These outputs can be viewed with tools like dbmon.exe (from WinSDK) or DebugView.
Very usefull if you run Pharo headless on Windows.

I also played with the MessageBox API allowing you to open native message boxes. Not yet complete but you can test with

  NBWin32MessageBox test

Additionally I started wrapping some Windows GDI functions - so if you need faster native drawing you can write:

   NBWin32Window getFocus getDC rectangleLeft: 10 top: 10 right: 100 bottom: 100

Note that NativeBoost will soon be integrated into Pharo 2.0 by default (before it goes beta).

Monday, November 26, 2012

Test coverage in Java and Smalltalk

When working with Java I usually have several plugins that I preconfigure in Maven. One is the the very usefull Cobertura plugin - it calculates the percentage of code assessed by tests.

That way you usually write a component/classes and try to cover it with as many tests as possible. Or you write the tests first (XP-Style) and then implement code until they are green. Often you want to know if you need more tests and how good they test your code.

When running maven with the Cobertura plugin (in combination with the site plugin) you get a site report that shows the coverage ratio. You can then dive into the report down into the Java packages and classes and see which lines are covered (green) and which not (red). For instance for an if/else you will see if both decision ways are covered by tests, etc.

Here is a sample report from the Java world.

Now Pavel created something similar for the Smalltalk and Pharo world. Here is the report from the Pharo kernel - scroll down to see the colored results. The Java report is still a little bit better structured - but I like that quality tools are available in both worlds.

Thursday, November 22, 2012

Athens Animation and Chipmunk physics library in Pharo

Esteban had a little bit of time to dig deeper into Igors work:
  - NativeBoost (a new mechanism to call external libs and a replacement for the former FFI)
  - and Athens (a vector graphics framework)

On top of these Esteban created a new playground for animations based on Athens for Pharo and wrapped the chipmunks physic engine as this and this video proves. Nice!

New ChangesBrowser for Pharo 2.0

Nearly all Smalltalks I know come with a changes file and are able to easily track changes. Any change on a method - even a doIt is logged.

In Pharo 2.0 it is time to rethink some of the old tools (and change management) and add new features (like tracking semantic changes, undo/redo ...). A first preview is now available.

Just open Pharo 2.0 and evaluate:

Gofer new
 smalltalkhubUser: 'EzequielLamonica' project: 'NewChangeSystem'; 
 package: 'Changes'; 

Then open the "Changes Browser" from the tools menu. Leave the browser open and change a method in a system browser. I like that I can instantly see the change and diffs. I can also change the grouping or undo a method change, etc.

If you create a class then two changes are logged: that a class is created and that an expression is evaluated.
This is not a surprise for a Smalltalker - since a class is typically not created by a wizard or by creating a file (like in Java, C++, ...). It is created by sending a message to the superclass to create a new subclass and follows the "objects and messages" idea that makes Smalltalk. ;)

The UI of the browser needs some work - but it is already based on the new UI Specs in Pharo 2.0. The menu is also a little bit inconsistent (since the "undo" on evaluated expressions is enabled).

But nonetheless a nice and useful tool ...

Wednesday, November 21, 2012

Rossal and Calder

The Roassal visualization engine can also be used for simulation as this new video from the Calder project proves.

Redline Smalltalk for JVM funding

Getting Smalltalk to run on the JVM is not an easy task. There are currently two main projects trying to achieve that. One is RTalk from Mark Roos (that soon will see the open source light) and the other one is an already opens source project driven by James Ladd called Redline Smalltalk.

James now asks for support to fund the development. If you are interested in the campaign you can click here to become a Redliner.

Sunday, November 18, 2012

Thursday, November 15, 2012

Saturday, November 10, 2012

Redline in Maven

When I do Java work I always use Apache Maven. It's a clear step forward in Java world compared old Apache Ant - which is as terrible as old makefiles from C/C++ if the project grows. Although project descriptions (POM) in Maven are also static due to XML (and one has to code a Mojo with Java for non-common tasks) I like the unified way to treat projects and builds and the amount of plugins that are available (ranging from checkstyle, site plugins, project reports, ...).

Nice to hear that Redline Smalltalk JAR is now accessible in a Maven repo too - at least a snapshot ( Will make it easier to use it and follow Redlines development if new versions will show up as maven artefacts.

If time permits I will play with Redline a little bit in the next evenings since according to the latest commits one can now use a Java class like a Smalltalk class within Redline. This is done by dynamically generated Smalltalk to adopt a Java class. Here is an example for java.util.ArrayList.

Tuesday, November 06, 2012

Pharo Online Help (Preview)

Some time ago I wrote a little help system for Pharo. You can see some infos about it here.

I now implemented a hopefully better one and today published a preview of a possible "Pharo Online Help". Documentation and QuickStart tutorials are crucial in my opinion for better adoption of Pharo and Smalltalk. Lets see if the community accepts my proposal and helps moving it forward...

Click the image below for a preview or read about it here.

Smalltalk and multicore programming

Found a new presentation from a talk from Stefan Marr on Multicore programming in Smalltalk

How old are your objects

Nice discussion and info about the age of objects:

"Also, since our GC does not change the order of objects when compacting, you can tell if an object is older than another by enumerating all objects. The oldest ones are of course nil, false, and true (more than 30 years old now)"

Monday, November 05, 2012

Pharo downloads

If you want to grab the latest Pharo development you can regulary use the Pharo CI Server ( Unfortunaletely it is down today - but there is a page with all the latest things for download.

Friday, November 02, 2012

Pharo Server backend

UN Number is a new application for the iPad/Android. What you cant see is that it uses Pharo Smalltalk for the server backend.

Smalltalk is cool

A popular german computer magazine (ct') has a special issue on programming. On the title it states: "Cool Languages: Haskell, Smalltalk and D". Yes - and we plan to make Smalltalk even better.


Interactive Snap! using Seaside

A video about connecting Snap! and Scratch Sensor Board via Seaside - nice.

Yesplan video

This is a new video (in dutch) about Yesplan - a planning software made with Pharo and the Smalltalk Seaside web framework.

Byte Magazine on Smalltalk

The famous BYTE magazine issue about Smalltalk from 1981 is available online.

Aida with Websockets

The Aida web framework is now the first one with full Websocket support. So a new Aida 6.5 Interim release is published for Squeak, Pharo and VisualWorks. Download it from the website.

Monday, October 29, 2012

Amber and script tag

Amber allows you to write client side scripts for the webbrowser in Smalltalk.
Nicolas now added support for the script tag so you can write the code directly in the HTML page:


Pharo localization and translation with ICU

A really good package for everything related to Locales, translation and I18N is ICU. There is an interface for Pharo written by Jan van de Sandt (using the NativeBoost callout mechanism).

Thursday, October 25, 2012

Pharo VM Update

There is an updated set of Pharo VMs available (built by Jenkins), including Cairo, FFI, FreeType and SSL support.

Friday, October 19, 2012

Morphic BPM

There is a "Morphic Business Process Modeler" running right in your webbrowser. Based on JSMorphic which is a port of Smalltalks Morphic to JavaScript.

Watch the video or try yourself.

Lars Bak on language virtual machines

Lars Bak presents several language virtual machines (Self, Strongtalk, Hotspot), why they matter and how they influenced V8 and Dart.

I find it is a really interesting talk, especially since I follow his VM developments over the years (StrongTalk, OOVM, ... as you know from previous posts). And I agree with Lars who states: "I like Smalltalk"

Try to imagine if the software industry would have continued on the dynamic path in the 90's without getting the detour on static language ideas and VMs. Yes - Java and C# have momentum - but more because of marketing and commercial pressure, market pressure and since people believe in stupid TIOBE index. Better tools and IDEs makes them nowadays less painfull - but that just hides the fact that we need easily changeable and maintainable systems with meta facilities and true reflection that are easily scriptable and extendable.

We know we can do better in the software industry with dynamic languages and dynamic system. Dart is a move forward - but for me still not comparable to the most dynamic object system.
And it still comes with curly braces ;)

Wednesday, October 17, 2012

Talk about RTalk

James interviews Mark Roos about RTalk (a Smalltalk on top of JVM).

 RTalk is a Smalltalk 'Live' Environment built on the JVM. You can also get the slides from the JVM lang Summit (slides and workshop slides) or watch the video about it at Dr. Dobbs..

Pharo Workshop at fOSSa Open Source conference

There is a Pharo Workshop at fOSSa Open Source conference. Read more.

JSON with Pharo

Want to parse JSON with Smalltalk? You can use Petit parse to do it. Here is a short guide.

Wednesday, October 10, 2012


Pavel announced Phobos - the XULRunner based Smalltalk framework for development of native GUI with standard look&feel for Linux, Mac OS X and Windows. Read more here and here.

Friday, August 31, 2012

New World

The World of Smalltalk ( website has been changed. Nice - it includes more infos now.

Thursday, August 30, 2012

Aida 6.5 Summer release

Janko has Aida 6.5 ready. The webframework now also includes support for OpenID authentication and OAuth authorization. By default it includes support for JQuery, Twitter bootstrap and Amber.

Run Seaside 3.1 on Pharo 2.0

You want to run Seaside 3.1 already on Pharo 2.0 (both not yet released) to work on the bleeding edge versions. Here is how.

Gesture Recognizer

Need a $1 Unistroke Recognizer? There is an implementation in JavaScript that is ported to Smalltalk as well.

Thursday, August 23, 2012

JITting on ARM

Lars has some news on his GSoC project on JITting on ARM. With his VM Plugin for the Cog VM it should be possible to enable debugging and simulation of the ARM-JIT.

WebSockets for Pharo (Zinc)

The "Zinc HTTP Components" framework for Pharo will support WebSockets in the near future. An initial implementation is already available as Sven (the author of Zinc) announced today.

Thanks to a financial incentive (from Andy Bernett from Knowinnovation) Sven is now sponsored to implement it in an open source way and release the code with MIT license.

Wednesday, August 22, 2012

Bootstrap 2.1

Ahh ... Bootstrap 2.1. is out! Nice!

SourceCity for Pharo

There is CodeCity written in VisualWorks. Looks like there were some issues with licensing for commercial use.

Now there is a similar tool called "SourceCity" for Pharo.

Have a look at the demo video. Unfortunately it will not be open source - according to Stef:

 "Now we are developing since more than six months a replacement from scratch but it will not be open-source. Interested people will be able to contact us and we will license them the software."

Sad - it would have been a nice example for using NativeBoost. But meanwhile Igor wrote some documentation for NativeBoost using the HelpSystem.

Monday, August 20, 2012

Roassal video

There is a new video about the Roassal visualization engine available. It also includes a preview of the port to Amber (to run client side in the browser).

Thursday, August 02, 2012


The Pharo/Squeak VM Maintainers now have an own blog related to VM building an stuff.

R.I.P. FileDirectory

Pharo now finished switching from old "FileDirectory" to the new "FileSystem" for the not yet released Pharo 2.0. Expect a  much cleaner API covered with many tests.

I'm sure people may lament that Pharo is too radical and not backward compatible - but Pharo's vision can only be accomplished if the platform moves forward quickly, throws away ugly code and gets cleaner and cleaner.

I switched some of my packages to the new Filesystem, others from ReferenceStream (which is also removed in 2.0) to its replacement "Fuel" very easily. The quality and maintainability is much better and I'm sure we are on the right track.

So whats next? Morphic ;)

Altitude webframework presentation

The "Altitude" webframework is presented by Colin Putney at the next Vancouver Smalltalk Developer Group meeting.

Smalltalk in the cloud

Old video (1 year ago) but nonetheless interesting.

Wednesday, August 01, 2012

Roassal News

Alexandre announced that Roassal now supports Cairo in VisualWorks. See this picture (click to enlarge):

They also work on an Amber version to be able to run in the webbrowser. Nice!

Sunday, July 29, 2012

OpenQwaq in use

3D ICC is using OpenQwaq (which is based on Squeak Smalltalk) for a collaborative platform. Here is a new showcase video how Smalltalk helps to work as a team in 3D.

Monday, July 23, 2012

RTalk on JVM Language Summit 2012

Mark Roos will present RTalk (a Smalltalk on the JVM) at the JVM Language Summit (July 30 to August 1, 2012). Mark Roos has two talks - one about RTalk and one about "invokedynamic" (a new bytecode for dynamic method invocation).

You can also watch the presentation about RTalk from last year.

Wednesday, July 18, 2012

MessagePack for Smalltalk

MessagePack is an efficient binary serialization format. Now there is also Smalltalk support for it.

Pharo 1.4 "Summer" released

The summer release of Pharo 1.4 is announced! 
While the community is hard working on getting 2.0 into shape this is a maintenance release for all users of Pharo 1.4 with fixes and backports.

Go and download it!  

Jejak Trace Framework

The Jejak Trace Framework - a new framework for injecting probes into (Pharo) Smalltalk methods, and record their execution. Read more.

WaveFront file importer for Pharo

Jean Baptiste Arnaud published code for a Wavefront importer (3D Object Models with *.obj extension)

Tuesday, July 17, 2012

Altitude - a new Smalltalk web framework

Colin Putney announced his "Altitude" web framework for Squeak Smalltalk as open source under MIT license. It's a brand-new, from-scratch HTTP server and application framework written on top of Xtreams.

One needs an up to-date 4.4. image. Code is here and Colin provided a load script.

Colin also explains the difference between Altitude and the more well known Seaside web frameowork for Smalltalk.

BOSS - robots simulation in Smalltalk

BOSS is the "binary object storage service" in VisualWorks Smalltalk. But now BOSS also depicts a project on robots simulation written in Smalltalk done at the Ecole des Mines de Douai.

They also have an own SqueakSource server.

Monday, July 16, 2012

Ludus for Amber Smalltalk

Ludus is a game framework for Amber Smalltalk (the Smalltalk on top of JavaScript). Today I checked out the Sokoban game example which is written in it.

 Again if you hit F12 in your (chrome) browser on the page go to the JavaScript console and evaluate:


 you can open the Smalltalk browser and dig into the code. Amber makes client side programming really easy!

Wednesday, July 11, 2012


Memcached is a free & open source, high-performance, distributed memory object caching system. If you want to use it with Pharo just use the ConfigurationOfMemcached.

Monday, July 09, 2012

Easy setup a Pharo Smalltalk HTTP Server

Sven shows you how to download, install and run a Pharo Smalltalk HTTP Server for Linux using a single command. Read more here.

Friday, July 06, 2012

Pharo 2.0 progress

If you grab the latest Pharo 2.0 version from the CI server you will see that it has some countless new features:

 - one is Spotlight search which can by accessed by hitting SHIFT + ENTER
 - another one is grouping of windows: just select "Create Windows Group" from the window menu
    (you can drag and drop for instance two browsers together to have them tab-styled in one single
     window)- this is an idea from TWM docking windows.
 - Nautilus the new code browser
 - code completion in all tools
 - some initial metacello configurations using Tools -> ConfigurationBrowser
 - Fuel is now part of Pharo
 - if you load ScriptManager from the config browser you will notice that it is
    using Fuel (since Fuel is now part of Pharo) and also allows for code completion
 - the new filesystem code is integrated
 - you can now also set the Monticello package cache directory in the settings browser to easily share
    the *.mcz package cache folder between images
 - the new Spec UI is integrated allow you to easily build tools

More things to come in the near future:
 - Zodiac (SSL support) is integrated and soon the SSL plugins will be part of the distribution
 - Freetype, Cairo Libs bundled
 - ....

There is also a new way how fixes got reviews:
 - you open a bug in the Pharo issue tracker
 - then submit a fix as a slice to the inbox
 - set the state to ReviewNeeded
 - now "Ulysse" the code monkey script checks your fix by running all tests automatically - so
   it is easy to see in advance if the fix is working or breaking the latest builds

This speeds up the integration process.

Expect more things to come ...

Join Smalltalk

Thats why I like the language: it easy, extendable and expressive:

';' join: #(1 2 3 4) returns '1;2;3;4'


 String lf join: #('First line' 'Second line')  returns

 'First line
Second line'

Amber news

Some Amber news from Göran. I'm very curious ...

Wednesday, June 27, 2012

Wednesday, June 20, 2012

Alan Kay: Extracting energy from the Turing Tarpit

Webcasts from the ACM Turing event. One is a presentation from Alan Kay named "Extracting energy from the Turing Tarpet". Alan uses the Frank system (remember Frankenstein monster) which is based on Squeak Smalltalk. As ever a very interesting presentation. Hope to find the time to watch also the others.

If you want to find it on the page click into the playlist in the video and scroll down to Alans talk.

Thursday, June 14, 2012


Softwarenaut is an interactive visualization tool for understanding software systems. It was originally written in VisualWorks. Looks like it is also ported to Pharo.

Wednesday, June 13, 2012

GNU Smalltalk on Android

I already reported that Pharo/Squeak Smalltalk is able to run on Android using CogDroid project.
Hilaire used this to implement his DrGeo for Android which is available in the Google Market.

Now Stefan crosscompiled GNU Smalltalk to Android. A binding to Android APIs is still missing - but it basically runs. The source is on GitHub if you want to help.

Fuel Smalltalk Serializer

Want to know more internal details about Fuel - the new Smalltalk object serializer written in Pharo? Then read this PDF.

TDD using BabyMock

Nice video on TDD (Test Driven Development) using BabyMock with Smalltalk.

Friday, June 08, 2012


Take care with the water on your desk. Otherwise this can happen to your Smalltalk browser. Code is here.

Wednesday, June 06, 2012

Deep into Smalltalk

The "deep into Smalltalk" school from ESUG is available online:

 - the page
 - the videos (youtube)
 - the videos (for download)
 - the slides

Tuesday, June 05, 2012

Aida Online Workshop

Smalltalk offers nice technologies for web development ranging from Seaside, Iliad up to Aida and other frameworks.

Between 18th and 22nd there will be an online workshop on how to create a website using Smalltalk with the Aida framework.  Janko Mivsek (creator of the framework) will answer questions.

Smalltalk-80 on the iPhone

Here is a video on running the old ST-80 on the iPhone.

Magritte 3

Nice video on Magritte 3.

Voyage - persisting objects

Voyage is another approach in the Smalltalk/Pharo world to persist object models. It was written by Esteban Lorenzano, I think mainly with the goal to persist data from Pier (the CMS system) images.

You will find his slides from the Pharo 2012 conference here. Francois Stephany is a beta tester and is already blogging how to use Voyage in conjunction with MongoDB.

The code can be found in the Voyage project at smalltalkhub.

Thursday, May 31, 2012

Amber in use at SmalltalkHub is not only a new website for Smalltalk. If you look at the bottom of the page you will notice that is based on Pharo, Seaside, MongoDB and also the client side Amber Smalltalk that helps running the nice looking pages.

If you have have Google Chrome just hit F12, go to the JavaScript console and evaluate:


to open the Amber class browser. It is very nice to see the classes in Hub-Amber-... categories and I like how easy one can understand and encapsulate client side rendering.

Hope to find some time to dig deeper into Amber especially after Nicolas has some nice ideas to push Amber.

CogVM Object format

Guillermo explains the details of the CogVM object format in a blog post. I already mentioned Marianos blog that should also help you digging deeper in virtual machine building and related technology. Currently there is also a discussion about a new object format that Eliot want to introduce. If interested check out the vm-dev list.

Destroy all software (fun)

After watching this video I opened a Smalltalk image and tried things like "#() + #()" and the like.

Friday, May 25, 2012

Squeak on top of JavaScript Linux in the web browser

Exotic but possible: Squeak virtual machine now also runs on JSLinux using the mini.image. 
JSLinux is a x86 PC emulator written in JavaScript and running in a web browser.

Here is the video and announcement from Pavel.

I expect more and more emulators running on top of JavaScript. Maybe one day it is fast enough to load and run Windows or Ubuntu on top of the JS engine right within your pc/tablet/phones web browser. Interesting times...

Thursday, May 24, 2012

CodeMirror - Styling Seasides WABrowser

I wrote a simple seaside wrapper today for the CodeMirror JavaScript Editor, the code lives in

It was actually very easy to wrap due to the new WAFileMetadataLibrary facility allowing for nested folders in latest Seaside versions.

Since this editor includes also a "Smalltalk mode" you can also use the project in combination with a simple patch changeset for WABrowser to style your web served Seaside code browser/editor:

Wednesday, May 23, 2012

Sunday, May 20, 2012

Roassal visualization engine

Roassal is a new agile visualization engine. With the project you can graphically render objects using short and expressive Smalltalk expressions. It is MIT licensed and free.

Tuesday, May 08, 2012

Timeouts in Smalltalk

Thats why I like Smalltalk (and Blocks) - powerfull and easy to understand:

[ self doSomething ]
valueWithin: 1 day
onTimeout: [ self doSomethingElse ].

Monday, May 07, 2012

STON - Smalltalk Object Notation

You may know JSON format from JavaScript - now Smalltalk has something similar. It is called STON - Smalltalk Object Notation and infos about it can be found here.

Wednesday, April 25, 2012

Artefact - PDF framework for Pharo

Oliver created a PDF Framework for Pharo called "Artefact". Nice to have a new alternative.

In the past I used my LibHaru wrapper for Pharo - but that one requires a native library. Christians work generating PDF directly in Smalltalk is only available for VW and not yet ported to Pharo.

Monday, April 23, 2012

Squeak on a BeagleBone

Squeak running on BeagleBone (an embedded ARM V7 platform). Read more!

2nd favorite language

Just stumbled over this presentation from Eric Clayberg with an introduction to Dart for Smalltalkers. You can also watch the video here. As you may know Dart is an attempt from Google to provide a better language than JavaScript for structured web apps. Its interesting and in my spare time I follow new Dart development by looking at or Dart news on Google+.

One interesting thing I noticed is that Eric's presentation is dated March 2012. Nothing special for you. But at least something that made me personally think. Exactly 12 years ago in March 2000 we both attended the first CampSmalltalk in San Diego where a bunch of Smalltalkers gathered to make the world a better place and have a great time. It was my first visit to the states and yes - we all had a great time.

At the Camp Eric had a few copies of the original Smalltalk issue of the BYTE magazine and I got the last one he had left. I was so happy about this historical trophy - it still has a special place in my library!
Eric is meanwhile working for Google as Engineering Manager for the new Dart Editor at Google. One of his slides in the Dart presentation is:

"Let us know if Dart is your new 2nd favorite language :)"

I have to admin I'm not sure what my 2nd favorite language is. There are many nice languages out there:
  • Is it JavaScript since it is widely present and IMHO the dynamic languages with the best adoption
  • Is it Dart since its new and better structured than JavaScript?
  • Is it Groovy which is a nice scripting language for the JVM with Java, Lisp and Smalltalk roots and Smalltalk syntax on the wish list.
  • Is it Amber since it allows me to run Smalltalk on JavaScript
  • Is it Java since I (have to) use it in daily work and is the most wide spread
  • Is it SQL since (relational) data often survives code/programs?
  • Is it C since stupid TIOBE ranking says it has now overtaken Java.
When I look back these 12 years many new languages have evolved and I like that now more and more people turn to dynamic languages since they now see the benefits to build dynamic systems. Unfortunately only a few walk in to metaprogramming. So it's not really clear to me what my 2nd favorite language is.

But I know what my first favorite language is and the programming future still has to be invented.

SVG importer for Pharo Athens

Igor is working on an SVG importer for the Pharo Athens framework. He made some progress as this screenshot proves:

Pharo Launcher for Mac

Working with Pharo Smalltalk on Mac? Then have a look here for a nice launcher.

Pharo 2.0 development started

Pharo 1.4 is released - so the community starts Pharo 2.0 development. The webpage has the details.

Cuis 4.0 released

Juan released Cuis 4.0

Thursday, April 19, 2012

Nautilus - the reborn System Browser

When working with the new Pharo 1.4. Release please do not forget to try Nautilus - a new browser. Mariano has written a nice blog post about it.

Collabri - a new Web-App, written in Amber Smalltalk

This is a video on a new Web-App, written in Amber Smalltalk (which is running on top of JavaScript). The server uses node.js and with Amber.

Video on Athens for Pharo Smalltalk

There is a new video about Athens available - the new vector graphics framework for Pharo.

Monday, April 16, 2012

The Pharo community now owns domain.

Amber Smalltalk on PhoneGap

Apache Cordova is a platform for building native mobile applications using HTML, CSS and JavaScript.

The project now has become PhoneGap and if you like you can already use Amber (the Smalltalk on top of JavaScript) with it.

Read more.

Inside OOVM

Kasper V. Lund (who is now working on Google Dart Language) provides a link to his Master thesis which he wrote with Jakob R. Andersen called "Revolutionizing Embedded Software".

Both worked together with Lars Bak in the OOVM team. Lars should be known to you from his V8 JavaScript Engine implementation in Google Chrome, the Strongtalk project and others.

OOVM is a Smalltalk based virtual machine that allows programmers to hook in remotely and modify code on the fly without needing to reboot the environment.

This VM allowed you to connect to running embedded devices and directly manipulate every object, class, or method. Which is a very known concept for us Smalltalkers since the beginning it allowed interactive programming environments for embedded system developers as well.

However - interesting paper.

Thursday, April 12, 2012

Tuesday, April 10, 2012

Pharo: from Kernel to Core

As I already posted Pavel is working on a small Pharo Kernel. The idea is to have the Pharo core image, throw out packages to find a minimalistic kernel image and by loading the packages back prove that it is able to boostrap Core from Kernel again.

Pavel is now using Fuel to load the core packages back into the kernel image to recreate a Pharo Core image. As you can see and read here this really speeds up the process.

Monday, April 02, 2012


Smallsource is a project from Dale to allow you to store Monticello packages
within the file tree. This allows you to use traditional versioning
systems like Subversion or Git from Pharo Smalltalk.

Check out the README of the project.

Dale gave a presentation on this called "Practical Git for Smalltalk"

Vancouver Smalltalk Developer Meetup

And a new Vancouver Smalltalk Developer Meetup group. More infos here.

Ha Noi Smalltalk Developers Meetup

Regular meetings for developers interested in Smalltalk in Ha Noi with focus on Pharo.

Saturday, March 31, 2012

Made with Amber

Amber - the smalltalk on JavaScript is already used in customer products.
Laurent knows more - you can watch the video too.


In the tradition of Squeaks Morphic and the Scratch platform there
is a nice library for JavaScript with a morphic implementation to BYOB
(build you own blocks)
. Version 4.0 is still in pre-alpha status, but here's a preview available.

The current result looks really good. Details can be found on Jens Mönig's blog.

Monday, March 26, 2012

Pharo Build Pipeline

The Pharo image is used a base image for various software builds - details can be
found on the Jenkins Continuous Integration tool

Also check out the visualization of the Pharo build pipeline.

Thursday, March 22, 2012

Smalltalk 71

Smalltalk 71 one pager.

Old Hardware

Dont know what to do with old hardware? Use Pharo Smalltalk to play with it again.


You start learning Smalltalk - then look at the simple TicTacToe example game you can implement in Pharo.

STIC in Arizona for 2013

Smalltalk Industry Council Heads to Arizona in June 2013

Testing Webapps with Pharo

Selenium is a nice web app testing system. And there is Selenium Remote Control which can be used with Pharo web tester to test your web interfaces. There is also a video showing how to do that.

IWST 2011 papers

The International Workshop on Smalltalk Technologies (IWST) 2011 proceedings are currently on-line.

Pharo and (Oracle) databases

Want to work with Pharo and Oracle using DBXTalk. Here is some help.

Looks like the DBXTalk project makes good progress - there is Neptuno the database browser and Phoseydon Beta2 allowing you to define entities using a simple DSL.

Pharo Conference in May

Want to visit the Pharo conference in May?

Then check out this page:

Wednesday, March 21, 2012

Extended File Library for Seaside and Twitter Bootstrap

Subclasses of "WAFileLibrary" allow you to serve static files directly from Seaside without the need for a stand-alone server like Apache.

This is nice - but unfortunately they were all served in the same resource folder/url. If you look at most JavaScript components then often separate folders for CSS or images are used which can be very tricky if you want to wrap them in Seaside.

But there is help: Nick Ager works on an improved WAFileLibrary.

He also used this to wrap the Twitter Bootstrap library, check it out at:

Object profiling

Looks like there is now a new small company founded to help profiling software. They use VisualWorks and Pharo and they use their own MIT licensed "Kai" and "Hapao" projects. I already reported on "Hapao" earlier.

VAST Videos

Nice - a new page for videos from Instantiations about VAST (Visual Age Smalltalk) and Smalltalk in general.

Thursday, March 15, 2012

CSS Frameworks for Seaside

Paul made some code available that should easily allow you
to use some of the new CSS Frameworks within your Seaside
application. Nice!


BioSmalltalk is an open source library for doing bioinformatics with Smalltalk. You can read a little bit about it on the following blog:

‎3 Smalltalkers presenting at DYNCON 2012

Gäran Krampe, Jason Ayers and Nicolas Petton - 3 Smalltalkers presenting at the dynamic languages conference.

Wednesday, March 14, 2012

Optimizing Seaside: Cacheable

Sebastian Sastre shares a project usefull for optimizing Seaside apps.
It is called Cacheable.

"Cacheable will make you able to use the same code in the app but making your web applications able to cache resources forever but preserving your ability of updating them whenever you need to."

Spelling Services for Pharo and Squeak

In the past John M. McIntosh created a spellchecker plugin for the
MacVM for Squeak. Now Tim announced that there are also bindings
for Linux and Windows available.

You will find it as "ConfigurationOfSpellingServices" in the MetacelloRepository on

The development repo is at the Squeaksource 3 instance at HPI Institute.
Its open for read write - so if you want to contribute...

EToys 5.0 Beta 2 is ready

... for you to try out.

Smalltalk and CI

Pharo already provides a CI server for daily builds:

I personally use it to get the latest versions and you should do as
well if you are interested in up to date images.

Now some work is going on in the Squeak community to reuse the build
scripts from Lukas
as well and I think we can soon expect

to fill up with Squeak CI built images. Cool and a big thanks to the people providing that!

Tuesday, March 13, 2012

Wednesday, March 07, 2012

SmallCharts website

Hey, Christian announced that his company website has a new design. The company is offering a tool (built in VW Smalltalk) to easily build financial charts for newspapers. Nice!

Pharo Launcher

There is a new video available about Pharo Launcher.

Friday, March 02, 2012

S8/U8 Social Smalltalk development

There is a new social platform for Smalltalk development called "U8".

It is based on development with S8 - a Smalltalk running over javascript execution engines on all major browser flavors.

You can find some details here or visit the NYC Smalltalk user group on 6th of March (details on the meeting here).

Wednesday, February 29, 2012

Styling your (VisualWorks) Smalltalk app

There are Smalltalks with native UIs (native widgets painted by the underlying OS) and other Smalltalks who paint the windows and widgets themselves.

With the last ones you can even built an own "Cross-Platform UI Look" like this UI example from a VisualWorks based product from shows.

Wednesday, February 22, 2012

Play with Arduino and Pharo

In case you want to play with Arduino and Pharo Smalltalk then check out this blog post.

Also note that since the VM packaged with the 1.3 one click image from the download has a bug when using FFI package you should use the latest Cog VM as it is also described here.

Tuesday, February 07, 2012

Monday, January 30, 2012

Tuesday, January 10, 2012

Sunday, January 08, 2012

Wednesday, January 04, 2012