Planet Smalltalk

July 03, 2008

Lukas Renggli - Announcing the Seaside Sprint in Amsterdam

Seaside ESUG Amsterdam

The Seaside core team is happy to announce the first official Seaside Sprint held in Amsterdam. The Sprint starts right after the last ESUG presentation and is basically open ended:

August 29, 2008 (14:00) - August 30, 2008

The Seaside Sprint is intentionally planned outside Camp Smalltalk, because we want to be able to define the exact goals at the beginning of the Sprint where everybody is present. We would be happy if people from the commercial vendors could join the effort, so that we can push the release of Seaside 2.9 together. People proposing their own Seaside related projects or being interested joining the development team are very welcome as well.

The place where the Sprint is held has not been determined yet, but we are trying to get something organized where we can comfortably work. It is supposed to be fun, but be prepared to work hard ;-)

See you in Amsterdam!

Randal L. Schwartz - One stop shopping for Smalltalk Jobs, please

As I just wrote on the Seaside mailing list, when someone suggested posting a job elsewhere:


It's been very helpful to the Perl community to get one place for all serious Perl jobs: jobs.perl.org.  Because then all the smart people look there, and all the clueful employers post there, and it's also free.  And the stats at http://jobs.perl.org/about/stats show that Perl is far from dead.


I'm trying to do the same thing for Smalltalk.  Please support me in that. Don't point at other places.  Get them to post at http://smalltalkjobs.dabbledb.com.  It will be good for all of us overall. Truly.


The DabbleDB interface has many RSS feeds for particular areas, and can be pulled out and searched in detail.  It's also all in Smalltalk, which is a good demo.


Just passing this along to my blogreaders as well.  Please, support me in this.  Let's get all clueful people posting Smalltalk jobs in one place. Then, when someone says "But I can't get a job in Smalltalk", we can point them at one place.  Maybe "jobs.smallltalk.org" should also forward here?

Read and post comments | Send to a friend

James Robertson - [Smalltalk Tidbits, Industry Rants] Tracking Smalltalk on FriendFeed

I mentioned the Smalltalk room on FriendFeed yesterday, but I didn't mention the fact that it merges together a bunch of feeds from various sources - my blog, other people's blogs, and the public repository feed - so you can find out what's happening across the Smalltalk world in one place (new feeds can be added to it easily).

If you want to follow that in your reader, just add this feed.

Bill Kerr - waterboarding: DIY

Christopher Hitchens, who supports the Iraq war, but is critical of many aspects of the Bush administration has done something which I think is amazing, admirable and enlightening

He wanted to be able to assess whether waterboarding was torture and so he organised himself to be waterboarded and has written not just a descriptive but also a reflective piece about it - and also released a video of the event

Believe me, it's torture (article)
on the waterboard (video)

Some might dismiss this as a publicity stunt or as a way for an already controversial character to become more controversial and widely read. That may be partially true - (nevertheless, I admire his guts for submitting himself to something which he now acknowledges is torture) - but read page 2 of Hitchens' article where he canvasses in detail the two opposing opinions of whether the United States should use waterboarding. I won't quote since to do this topic justice you need to read the whole of Hitchens' article. The deeply reflective aspect of Hitchen's writing, which is always present, should not be missed in this case.

Rob Vens - In Good Order, Smalltalk

Smalltalk programmers have, for a long time, looked at their Smalltalk image with mixed feelings. They were happy to immerse themselves in the world of objects and learned to live in it like a dolphin in the ocean (which, as you know, was originally a land animal, turning to the sea), and make grateful use of the facilities it offered because code, applications, and objects lived in the same space happily together.
They were also slightly envious of other, less productive languages, where you could start anew with something like:

   main()
     {

... and then the world of possibilities would be endless... until of course the world of problems created by exponential complexity would overwhelm you...
While there is a Smalltalk focussing more on scripting abilities ( GNU Smalltalk ) and doing a great job of it too, as a rule Smalltalk adheres to the "object world" structure.
The question rose to my mind: is this such a problem? Can it not be that this is a good thing?
The Smalltalk image as a miniature world of objects, residing on what might be called a Smalltalk node, may very well be precisely the concept that can transform the web into something useful and propel it into the "next phase". As can be seen in cloud computing, the web is gradually moving toward a distributed model, in which even things like backups become things of the past because everything is everywhere. The original model of redundancy of the Internet, put into it by requirements from the US DoD which funded the ARPANET, the precursor to the Internet that specified it should be able to survive a nuclear attack, can easily be recognised in this.
However, what is running at the moment on these many nodes realising the Google File System or Amazon S3 , is code . Not objects . Properly recognised as a requisite for these clouds, the code is written in dynamic languages, but still: the code is not the thing. It needs writing, compiling, testing, and deploying. What is worse: it needs to do this outside the runtime environment. It needs rigorous processes to keep them under control - it needs control in the first place.
What if we had Smalltalk images running on thousands, millions of nodes? What if we had to think about communicating between worlds of objects instead of between ip addresses, interfaces, service connectors? Can we not envision an object cloud as much more efficient, much more scalable, and most importantly: with many more capabilities? It is alive at the higher and at the lower levels of abstraction.
Smalltalk systems have already been built using a network of Smalltalk images. Some of them even quite large 1.
The important thing to realise is that with Smalltalk we have a technology that can scale up as well as down: Smalltalk images, including all tools needed to access the objects in it, can be created to fit in a 5 MB memory space or even much smaller, with room for applications. This may have been large 20 years ago, but has now become a commodity on the smallest mobile devices.
An issue that we may need to tackle as Smalltalkers is the operating systems. Smalltalk has originally been conceived as operating system, development environment and application environment in one. More and more I begin to realise that, if we want to get Smalltalk to as many devices as we can, we must consider the option of what I call hijacking the hardware : to offer users the possibility of running Smalltalk directly on the hardware. This also raises all kinds of issues with licences and such - vendors may not be particularly enamoured with the fact that their software is thrown in the garbage bin (take Nokia or Apple), but then of course the Linuxes have taken this path before.
Already we are seeing moves in this direction 2. And I am convinced these are only the first signs of a greater change. Watch Smalltalk!



Rob Vens - The end of privacy

Of course, the famous quote from Scott McNealy, chairman and co-founder of Sun Microsystems, "you have zero privacy anyway. Get over it.", has mostly been repeated out of context. But it created quite a stir at the time, almost a decade ago. Since then the situation regarding privacy has increasingly changed in a direction that most would describe as worse. I am not sure I would - although it certainly is not an easy subject and I hope not to simplify it too much in this blog.
But, in short, I guess I am advocating the end of privacy.

James Robertson - [Smalltalk Tidbits, Industry Rants] Smalltalk Daily 7/3/08: Extra Emphasis

On today's Smalltalk Daily, we look at the ExtraEmphasis package - which adds some nice text capabilities (plus a nice debugger enhancement)

Technorati Tags:

Andres Valloud - Assessments v1.0 beta feature list

So now that v1.0 alpha is done, it's time to think about the v1.0 beta features. There are only two such things.
  • Explicit support for validation services.
  • Comparison validation.
  • A serious benchmark evaluator.
The first two should be easy to do. The last one, however, will require significant thought.

Torsten Bergmann - Squeak demo on iTouch

Andres Valloud - Assessments v1.0 alpha

Assessments has reached 1.0 alpha 1. This means it's feature complete as per the 1.0 spec: it provides all the major features of SUnit / SUnitVM, it is able to run existing SUnit / SUnit VM tests (and benchmarks and validators) without causing code change to occur to existing tests, and its design is oriented towards flexibility for future enhancements.
  • 148 classes.
  • 1008 methods.
  • ~6.81 methods per class on average.
I will ship this code base to the beta testers du jour, and start working on the final annoyances that are left. I am basically done. I can't believe it.

Update: an additional method fixes the only known annoyance in this source code base, thus making 1.0 alpha 2.
  • 148 classes.
  • 1009 methods.
  • ~6.82 methods per class on average.

Andres Valloud - Vacation, eh?

Sure, why not... let's go out to the wilderness and don't do anything for a while. And yet, I knew I was lying to myself. I predicted I wouldn't last even 3 days before I'd be compelled to go create new things.

Indeed. Today for example. I had been doing little things in the last 2 days, and the stuff ready for coding piled up quickly. Yesterday I had a design session for the Smalltalks 2008 coding contest, and this caused even more implementation details to appear out of thin air. All of this material is going to my queue of things to do, and now I cannot take this anymore. I need to finish Assessments and push the size of the queue back down. Hopefully I'll be done within the next 4 hours. We'll see how it goes...

Update A1: 130 minutes later, Assessments has native validation facilities. Next up, the SUnit Validation bridge. 148 classes, exactly 1000 methods, ~6.76 methods / class.

Update A2: a few minutes later, some refactoring, cleanup and bug fixes resulted in the overall deletion of one method. 148 classes, 999 methods, 6.75 methods / class.

Update B: 25 minutes after update A1, some 165 minutes since I started, Assessments runs existing validators successfully. What's funny is that the assessment checklist uses the bridged validator to run the tests :). Some small issues remain, but it's nothing serious.

July 02, 2008

Runar Jordahl - Using the Croquet Hydra VM to Scale on Multiple CPU Cores

After spending some time playing with Erlang, I decided it was time to test running Smalltalk on multiple cores too.

"Hydra VM is a virtual machine capable of running multiple Croquet images side-by-side, therefore being able to effectively utilize multi-core CPUs."

To test Hydra on Windows, follow these steps:

A workspace explains how to save a headless copy of the current image. After saving it you can start the headless image by evaluating:

HydraVM loadAndRunNewImage: fileNameOfImage.

To evaluate some code (asynchronously) on the started image, evaluate:

HydraVM doIt: 'Transcript show: ''Doit Test''' at: indexOfStartedImage.

I added a load stress class before saving the headless image, started multiple copies of the image, and sent the instruction to start the load test to each image. All worker images ran the stress code in parallel.

Now, this way of using images has a lot of similarities to using processes in Erlang. You fork of another process/image in your code, keep a reference to it and send it asynchronous messages. I can easily see a lot of Erlang’s infrastructure being added at the Smalltalk level, and you have something that works well for a lot of heavy computational problems.

Hydra does however have some aspects which make it far from as good as Erlang’s approach to scaling on multiple cores. When running a large number of Erlang processes, the VM will not create one OS thread per Erlang process. Instead, it will create one OS thread per CPU core, and use its own (green-thread-like) scheduler to run the processes on the (relatively small number of) OS threads. Hydra, on the other hand, will use one (or two -- I am not sure) OS threads per Smalltalk image started. The disadvantage to this method is that operating systems fail to handle a large number of concurrently running OS threads. Erlang programs might start thousands of process, but this is out of question with Hydra’s approach.

Another aspect that prevents starting many images, is the fact that each image will consume a lot of memory. We are talking about several megabytes while an Erlang process uses only a few hundred bytes. I think this might be solvable by letting images share their static parts, but that might take a lot of work at the VM level to support.

I really think the Hydra VM is a great initiative. It shows how Smalltalk can scale on multiple CPU cores, using the only sane method to parallelize a problem (non-shared memory). Even if Hydra has similarities to the Erlang approach, the coding style will be different. While Erlang emphasizes using process as a dynamic part of the program, the Hydra approach will probably be to create a few worker images when your program starts and let the main image send jobs to these images. You do not want to start and stop these images dynamically as your program executes. That will be too expensive.

Serge Stinckwich - Vidéo d’interviews réalisée lors de C5

L’Espace Mendes France (EMF) de Poitiers à publié une vidéo comprenant plusieurs interviews de participants de la conférence C5. On retrouve notamment une intervention de Markus Gaelli qui parle d’Open Croquet, Samir Saidini de Squeak, Wendy Mc Kay sur la conception participative ainsi qu’une présentation de SqueakBot par des animateurs de Planète Sciences. Merci à Patrick Treguer pour la réalisation de ce reportage.

James Robertson - [Smalltalk Tidbits, Industry Rants] Smalltalk Solutions Video Timeline

As some of you know, the video camera I brought to StS 2008 broke after day one - fortunately, I received a lot of help from James Savidge and Thierry Thelliez, and we got video shot of the rest of the conference.

However, the higher quality stuff was HD, shot on Thierry's Sony camera. I have conversion software for the files, but the time to convert the files is about 12x the time of footage. Meaning, one hour of content takes 12 hours to convert. Even then, it's not done - that leaves me with a file that's too big to upload, so it will require further down-conversion.

All of which is a roundabout way of saying that it's going to take awhile to get all of this footage posted :)

Serge Stinckwich - Démonstration de Squeak sur iTouch au RMLL’08

Michael Rüger, qui doit faire une présentation de Sophie au RMLL’08, a fait une petite démonstration de Squeak sur un iTouch lors de son passage sur le stand ESUG. Voilà la vidéo en avant première sur #dNU :