Wednesday, March 30, 2011

Friday, March 25, 2011

PocketCube Solver in Pharo

HwaJong Oh implemented a PocketCube Solver in Pharo.

Read his announcement here or watch a video here. Code is available on this squeaksource project.

DesignBlocks - Scratch in the webbrowser

I already reported about Scratch (which is written in Squeak Smalltalk). In this app you can use building blocks to form small scripts and provide interaction on the screen. Looks like this concept is now also ported over to JavaScript - check out the DesignBlocks beta site.

Morphic in JavaScript

Jens Möning ported Morphic (the UI framework used in Squeak and Pharo) over to JavaScript. It also runs nicely on the iPad as this videos proves.

You can try morphic.js in your webbrowser or read the programmers guide.

So beside the LivelyKernel from Dan that is the second morphic like environment in the web browser...

Another nice example that dynamic languages are on the rise. Especially with the new "canvas" tag JavaScript can be used more and more to reimplement existing or create new rich client applications. Have a look at CanvasPaint (a clone of MSPaint in JavaScript) and you know what I'm talking about.

Wednesday, March 23, 2011

Progress on VM side ...

New Cog VM version from Eliot.

The Cog virtual machine for Pharo and Squeak now also has a project home at

And Igor is working on automated hudson builds for the VM (see docu and first results).

Friday, March 18, 2011

SqueakDBX 1.3 and DBXTalk

SqueakDBX 1.3 is released. This is the last release with this name.
In the future the project is called DBXTalk.

Wednesday, March 16, 2011

Pharo at Universities

Esteban now started teaching Pharo at San Martin University Buenos Aires Province.

JTalk and JSTalk

When I first heard about JTalk (Smalltalk on JavaScript in a browser) I immediately thought about using it to run a Smalltalk not only on JavaScript but also on the java virtual machine (by using JavaScript as a vehicle and Rhino from Mozilla as the engine to run it).

I played with Rhino in the past ... it's a simple JAR you can use to integrate JavaScript into Java applications and since JTalk is only a few kB in size it should be easy to bootstrap a Smalltalk on top of JavaScript on top of Rhino on top of JVM ...

Performance would be bad ... but it would be fun.

Looks like Thiago Silva already had a similar idea - not really like a Smalltalk, but with similar tools like Smalltalk (like class browser) to ease JavaScript development. This one is called JSTalk (hence the additional name) and can be found here.

Use Smalltalk for the next startup

Did I mention that Diego Lont and Stephan Eggermont participated in Startup Weekend Eindhoven. The combination of Seaside on Pharo made it possible they were honored by the jury with the innovation price (Most Innovative Business Case).

Read more here.

So you should really think about using Smalltalk for your next startup!

Tuesday, March 15, 2011

Life on Mars

Yes there is still life on Mars (project).

Riak Interface for Pharo Smalltalk

Runar Jordahl implemented a Riak Interface for Pharo Smalltalk. Why is this interesting, you may ask.

Riak is a scalable database (written in Erlang, C and a little bit of JavaScript) that is being used in production by companies like Mozilla and Comcast. It is based on Amazons Dynamo using key-value storage (bucket-keys to be exact). It has peer-to-peer replication without a specific master - this allows for a fault-tolerant system.

Runars Interface runs in Pharo 1.1., uses the ZincHTTP components and is currently in beta. Check out the included test case "EpigentRiakRestConnectionTest" to see how easy you can use it.
You have to set up a riak running at "http://riaktest:8098/riak" if you want to try.

I hope to find the time to play with this a little bit more.

SandCastle Themes for Pharo 1.2

Patrick Barroca announced two additional themes for Pharo 1.2. You can download them from Squeaksource.


Monday, March 14, 2011

JTalk - Smalltalk on JavaScript

Jtalk is an implementation of the Smalltalk language that runs on top of the JavaScript runtime. It was announced today by Nicolas Petton.

Some features:
- it is written in itself (including the parser/compiler)
- it is self-contained
- it compiles into efficient JS code
- it uses the Squeak chunk format
- Pharo is considered as the reference implementation

SqueakNOS updates

Looks like Squeak NOS (No operating system) will soon get an update. One of the coolest project I've seen ... booting a Smalltalk system without an operating system. Have to try out as soon as it is available.

Pharo Core 1.1.2 release and Pharo Core 1.2 in preparation

Pharo Core 1.1.2 is released. This is 1.1. with additional fixes.

So Pharo 1.2 is the new stable and a prebuilt final can be loaded here. Please test and give feedback.

Monday, March 07, 2011

Java 7

With the introduction of a few "simplifications" in Java 7 I expected exactly this kind of discussion when I first heard about the new diamond operator. Java may end up as a degenerated C++ variant...

So why not switch to something much simpler right from the beginning and care about real world problems.

Tron inspired by Smalltalk?

Do you know Tron - the movie. Sure. But how is this related to Smalltalk?

The script was written by Bonnie MacBird and according to this page her script for Tron is loosely based on the work of her spouse Alan Kay (Dynabook, Smalltalk, Vivarium). Didnt know that until today...

Smalltalk on AVM2

Alchemy is a research project from Adobe that allows users to compile C and C++ code that is targeted to run on the open source ActionScript Virtual Machine (AVM2).

Interesting enough Alexandre Jasmin is working compiling the Squeak VM with Adobe Alchemy - this would allow Smalltalk to run on the Flash VM. Interesting ...

Here are some more notes on this.

Seaside 3.0.4

After Dale finished the metacello configuration the new "Seaside 3.0.4" is ready now.

SqueakDBX news

SqueakDBX is a nice interface for accessing relation databases from Smalltalk. It is now once again supported by ESUG. Next steps will be an updated name (since it also works for other Squeak forks like Pharo) and an updated Glorp version (OO to RDBMS mapping layer).

Panu Suominen now also announced a project for simple object pooling that you can use to pool database connections for SqueakDBX.

Cuis 3.1 is available

Cuis 3.1. is available from Juan. It is faster regarding UI performance and has support for MCZ files (Monticello).

Juan also made a small 2MB image available that is based on Cuis 3.1.

SIXX updated

SIXX (Smalltalk Instance eXchange in XML) was updated to work on Pharo 1.2 and Squeak 4.2. SIXX allows you to exchange nets of Smalltalk objects between various Smalltalks.

Sunday, March 06, 2011

Birth of a Smalltalk image

A Smalltalk image is a file where all the objects are persisted (similar to an OO-database). You can at any point in time save the state of your object world to continue later - for instance continue debugging a problem the next day. The image concept is often confusing for people who are used to building a program by compiling source files to a binary.

An image is typically maintained over years - and it is possible that some of the objects within a smalltalk image live there since Smalltalk-80.

An image can grow in size over time and sometimes one starts to load code/objects into a smaller one to create a new clean image file for daily work.

At Pharo-Project we currently have a PharoCore image that is cleaned up day by day and that is used to build the Pharo-dev ("Pharo") Smalltalk distribution. Pavel also worked on a much smaller kernel (Pharo Kernel project) by throwing out more classes. I already reported about his work.

However - all these were built by stripping an existing image.

Benjamin (with the help of Igor) now created a new Smalltalk kernel ("Hazel") based on Pharo. The new born weight 2.2Mb and includes 230 classes. It is just beeping to prove that the image is living. Read about it here. Congratulations to the new born ...

Combined with more VM support in the future this will allow for small kernel images that provide textual interactivity (replace your bash with Smalltalk scripts, ...) or small webserver images, etc.

Due to the reduced size these images have less tool support (no IDE as you will find in any typical Smalltalk image) - so it will become important to reactivate the InterpreterSimulator project. With this small tool you can run a Smalltalk image within a Smalltalk image and trace the processing. Pavel already started to work on this. Interesting ...