Planet Smalltalk

July 02, 2008

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.

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...

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*

The Weekly Squeak - Smalltalk Solutions 2008 - slides now available


Most of the slides from the presentations at this year’s Smalltalk Solutions conference are now on line.

The material available includes Gilad Bracha’s talk on Newspeak, James Foster’s guide to building a Seaside application using GemStone/S, Michael Rueger’s introduction to Sophie, Arden Thomas demonstrating WebVelocity in action, and Randal Schwartz’s double-header keynote: Seaside - Your Next Web Framework and an introduction to persistency solutions for use with Seaside.  

There are also slides from a couple of sessions looking at the reasons for the recent resurgence of interest in Smalltalk: Arden Thomas looks at the features of Smalltalk that other languages lack, and Rob Rothwell explains how Smalltalk helps with the development of healthcare applications.

There are many more slide-packs available, and still more to be added, so please check out the conference page for more information.

James Robertson - [Smalltalk Tidbits, Industry Rants] Smalltalk Daily 7/1/08: Announcements

On today's Smalltalk Daily, we take a look at Announcements, which are a replacement for Trigger Events

Technorati Tags: ,

James Robertson - [Smalltalk Tidbits, Industry Rants] Squeak Take 2?

The Pharo project has launched:

Pharo wants to take a fresh look at the Smalltalk philosophy and current implementations. The idea is to produce high quality open-source packages that will be loadable on a micro kernel.

I wonder what pickup will be like from the general body of Squeak developers?

Technorati Tags: ,

Andres Valloud - Anatolii Karatsuba meets Leonardo de Pisa

In the posts regarding Fibonacci, it came up that the VisualWorks' large integer multiplication primitive isn't the most suitable to calculate products of truly huge numbers. In this case, the term "truly huge" refers to numbers which can easily have one million bits, so they are way beyond what would be considered normal usage. And nevertheless...

I looked around and found Karatsuba's algorithm for multiplication. While it would be nice to put it in the VM, it is also possible to implement it in the image by letting it use the existing primitive when the number sizes are suitable for it.

After a bit of massaging the implementation, which is not the most efficient one because again this should be in the VM or otherwise in C, I got Karatsuba to tie the VM's performance at about 2k bits. Here are some measurements after that.
  • 3k bits: Karatsuba 12% faster than the VM.
  • 4k bits: Karatsuba 6% faster than the VM.
  • 8k bits: Karatsuba 33% faster than the VM.
  • 16k bits: Karatsuba 31% faster than the VM.
  • 64k bits: Karatsuba 2.51x faster than the VM.
  • 256k bits: Karatsuba 3.96x faster than the VM.
  • 1m bits: Karatsuba 8.85x faster than the VM.
So I subclassed the F(a+b) Fibonacci calculator so that it uses Karatsuba instead of regular multiplication. Result?
  • 1953152 fibonacci: Karatsuba F(a+b) 4.38x faster than the regular F(a+b) calculator.
How about that...

    SmallInteger>>karatsubaTimes: anInteger

      ^anInteger * self


    LargeInteger>>karatsubaTimes: aLargeInteger

      | splitThreshold
        selfHigh selfLow aLargeIntegerHigh aLargeIntegerLow
        highProduct lowProduct mixedProduct lowTerm |
      self digitLength + aLargeInteger digitLength > 768
        ifFalse: [^self * aLargeInteger].
      splitThreshold := self digitLength
        + aLargeInteger digitLength
        * 2.
      selfHigh := self bitShift: splitThreshold negated.
      selfLow := self - (selfHigh bitShift: splitThreshold).
      aLargeIntegerHigh := aLargeInteger
        bitShift: splitThreshold negated.
      aLargeIntegerLow := aLargeInteger
        - (aLargeIntegerHigh bitShift: splitThreshold).
      highProduct := selfHigh karatsubaTimes: aLargeIntegerHigh.
      lowProduct := selfLow karatsubaTimes: aLargeIntegerLow.
      mixedProduct := selfLow + selfHigh karatsubaTimes:
        aLargeIntegerLow + aLargeIntegerHigh.
      lowTerm := mixedProduct - (lowProduct + highProduct).
      ^((highProduct bitShift: splitThreshold)
        + lowTerm bitShift: splitThreshold)
          + lowProduct