Planet Smalltalk

July 03, 2008

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 :

James Robertson - [Smalltalk Tidbits, Industry Rants] OMeta keynote at Smalltalk Solutions 2008

The slides from Alessandro Warth's keynote at Smalltalk Solutions 2008 are online now - his talk was very well received - the audio and video will follow next week.

Technorati Tags: , ,

James Robertson - [Smalltalk Tidbits, Industry Rants] Smalltalk Daily 7/2/08: Brace Constructor

On today's Smalltalk Daily, we look at the BraceConstructor add on. In short, it makes it possible to change this:

Array
	with: 3+4
	with: Date today.

to this:

{3.4. Date today}

Technorati Tags:

Torsten Bergmann - Show Smalltalk

Looks like we should continue to show the ease of development in Smalltalk IDE's so more people like Piers Cawley will find their way to Smalltalk.

Giuseppe Luigi Punzi Ruiz - Squeak 4 se construirá sobre Spoon

Según puedo leer en los últimos mails de Squeak-Dev, al parecer, el Squeak Board, ha decidido que Squeak 4 estará basado en Spoon, para conseguir un entorno totalmente modular.

Spoon, según la definición que dá Craig Latta en su web (ya que no he encontrado nada en el Swiki oficial),

“Spoon, es un sistema de programación mínimo de Objetos, con nuevos enfoques a la organización, colaboración y despliegue”.

Supongo, pues todavía no han dado muchas más noticias, éste sistema, junto a los DeltaStreams, o ChangeSets, o Installer scripts, o/y mezcla de todos y demás parafernalias, nos montaríamos, partiendo de una imágen mínima, nuestro entorno.

A ver que se va cociendo en los próximos días.

ShareThis

Antony Blakey - VW Class - NameSpace structure

More diagrams produced for MirrorImage documentation. These two show the Class/Namespace model in VW. In addition to the PNGs embedded below, you can grab them as PDF. I think that's more immediately useful than SVG, and the OmniGraffle sources aren't relevant.

I've also added a PDF form of the Class - Metaclass diagram.

.

.

July 01, 2008

James Robertson - [Smalltalk Tidbits, Industry Rants] Porting from VW 5i to VW7: Thomas Hawker at StS 2008 (Audio)

Thomas Hawker's porting experience report from StS 2008

Frank Mueller - Day 20 to 23 - No photos, no work?

Four days no photos. So dour days no work? No, we've still done some painting and finishing, the tools and the material of the craftsmen is removed, some cleaning is done, and the first flowers are on the windowsills again. So why no photos? Because tomorrow the new kitchen will be delivered and on Thursday the new furniture. So I'll wait until then with my next photos. And then I can write about other topics. *phew*