Author: Michael Davies

  • Welcome to the Real World – Kinect in Squeak

    The newly-launched Microsoft Kinect has been causing a lot of excitement in hacker circles since its recent launch, due to its open interfaces, and the Smalltalk community has already got some great uses of this device.

    The Kinect is a device, intended to be used as an accessory for the X-Box, which interprets 3D scene information from a continuously-projected infrared structured light, allowing live controller-less interaction by interpretation of movement and posture. This makes it a great complement to existing project teams working in Smalltalk.

    Ricardo Moran was a member of the team from the Grupo de Investigación en Robótica Autónoma at CAETI in Argentina who won the 2010 ESUG Innovation Technology Awards with Physical Etoys, their Arduino-based interface to Squeak which allowed them to monitor and control robots as they drove round the conference hall. They spent their prize money wisely, buying a Kinect! Building on the work done by Stephen Howell in getting the Kinect working with Scratch (a visual programming environment developed at MIT), they have now shown how to use the Kinect to control activities in Etoys, using the existing OSCeleton framework to provide the skeleton interpretation interface. Their approach is documented in more detail on their blog.

    Another approach to integrating data from the Kinect is that taken in Nikolay Suslov’s separate and equally impressive implementation which uses the lower-level OpenKinect driver to access the raw colour and depth information and pass this into his bespoke Krestianstvo images, where he then does the detailed video processing and interpretation in Smalltalk, which reduces his reliance on external, platform-specific code. His blog gives more details of his implementation as well as source code, and pre-built images.

  • Cuis 3.0 released

    Juan Vuletich has just announced the release of version 3.0 of Cuis.

    Cuis is a free Smalltalk-80 environment originally derived from Squeak by Juan with a vision of creating a simple and powerful environment by stripping out the layers of complexity that have accreted as Squeak has been developed over many years. In particular, this has meant major re-design of Morphic code in Cuis.

    Version 3.0 includes the core of a new architecture for cleaner separation of view and model for text morphs, as well a first version of a powerful theming framework developed by Casey Ransberger, giving simple control over every aspect of the appearance of the Cuis user interface. A number of sample themes have already been developed to demonstrate the power of this framework: DarkTheme as shown above demonstrates dark, translucent windows for late-night Linux hackers.

    Download the Cuis 3.0 package for yourself to see the new code in action – it runs happily on existing VMs.

  • Bringing Multimedia (back) to Squeak

    Sean DeNigris has been doing some great archaeology recently, and with help from some of the original Sophie team, he has managed to get some of Sophie’s rich multimedia capabilities working in mainstream Squeak images.

    Sophie is a multimedia editing environment that was originally written in Squeak, although more recently it has been rewritten in Java.

    The screenshot above shows a video being played by the QuickTime plugin, and being presented as a morph in Squeak. Sean shows in his blog post how to get this up and running in a few minutes in Squeak on OS X. There’s also a great discussion on the squeak-dev mailing list.

    There’s still lots of gems to be uncovered in the Sophie code base, but this is a great starting point!

  • An early Christmas present from Aida

    Janko Mivšek is delivering his Christmas presents early this year, with the announcement of  the first beta of the “Christmas edition”(6.2) of Aida/Web. Aida/Web is a Smalltalk web application framework with integrated Ajax support, a rich collection of web components, REST-like URLs, and integrated session and security management and much more.

    Among the many new features in this version are mobile device detection and rendering, HTML5 support, WebSocket support for bidirectional communication between server and browser, nestable AJAX-enabled forms, and the introduction of a unified JSON-based message format between server and browser.

    Aida/Web is supported on six Smalltalk platforms: Squeak, Pharo, Gemstone/S, VisualWorks and ObjectStudio, Dolphin Smalltalk, and Smalltalk/X.

    See the Aida/Web download page from more information. Janko has also provided an interesting analysis of the codebases of Aida/Web, Seaside and Iliad.

  • The Return of the Connectors

    Chris Muller has recently updated Connectors to work with Squeak 4.2 images. Connectors gives you the ability to turn Morphic into a drawing environment for making connected diagrams. This tool was developed by Ned Konz many years ago and hasn’t been able to load in an up-to-date image for some time.

    A Connector is a Morph that looks like a line and has a constraint on either end that keeps the ends attached to some other Morph. You can specify properties such as width, borders, fills, end-decorations for each connector, as well as determining the path the connector takes and what labels it should have. The package also comes with other tools to aid in the creation of smart drawings. See the tutorial for more information.

    The updated package is available on SqueakSource.

  • New tools for Squeak

    The staff and students at the Hasso Plattner Insitute have set up a new site to share the impressive work they are doing using Squeak. The projects they are showcasing include some gorgeous UI Widgets and a new UI Designer (shown above).

    Each project is available at the Institute’s SqueakSource server, and can be loaded using Metacello configurations.  All configurations were tested and run in the current Squeak (Trunk) versions (4.1, 4.2). The site is built using Trac project management software, which provides for issue/bug tracking if you do find any problems.

    Many thanks to the Software Architecture Group, led by Prof. Dr. Robert Hirschfeld at the Hasso Plattner Insitute (University of Potsdam), for sharing these great projects.

    (Note that Firefox currently gives a warning about the site due to an incomplete certificate chain, but this should be fixed soon).

  • Smalltalks 2010 – conference report

    Smalltalks 2010 took place last weekend, meaning that the post-conference reports have started hitting the blogs, and they’re universally enthusiastic about the content, organisation and atmosphere of the event.

    Organised by Fundacion Argentina de Smalltalk (FAST), and hosted this year by Universidad Tecnológica Nacional, in Concepción del Uruguay, Smalltalks aims to “strengthen the Argentine and international Smalltalk communities through the exchange of works, experiences and anecdotes connected with this technology or related matters”. This year’s speakers included Gilad Bracha, Eliot Miranda, Lukas Renggli and many many more (see the conference home page for a full listing and descriptions of talks).

    German Arduino described it as an “excellent event, with very very good organization—thanks to the hard work of FAST people—and high level technical talks”.

    Felipao Banados was attending his first Smalltalk conference, and was also impressed: “I remember talking with classmates and hearing things like ‘Yeah, Smalltalk, nice. But where can you work on that afterwards?’ Well, there ARE a lot of interesting places to do it, and there is a need for smalltalk programmers.”

    Andrés Valloud posted some rocking photos of the social event, and reported that the conference even got coverage in the local paper, including a video interview with Hernán Wilkinson.

    As James Robertson wrote: “Sounds a lot like ESUG to me – and that’s a good thing.”

  • Hear the Mouse Roar on Multi-Core!

    Stefan Marr has just announced on his blog the relase of RoarVM, the first single-image manycore virtual machine for Smalltalk. RoarVM is based on the work on Renaissance VM by David Ungar and Sam S. Adams at IBM Research, and was ported to x86 architecture by Stefan.

    From his post: “The RoarVM supports the parallel execution of Smalltalk programs on x86 compatible multicore systems and Tilera TILE64-based manycore systems. It is tested with standard Squeak 4.1 closure-enabled images, and with a stripped down version of a MVC-based Squeak 3.7 image.” Support for Pharo 1.2 is currently limited to 1 core, but this is being worked on!

    Here’s some indicative figures for this new VM (using an adapted version of tinyBenchmarks on an MVC image):

     1 core   66M bytecodes/sec;  3M sends/sec
     8 cores 470M bytecodes/sec; 20M sends/sec

    As Stefan notes “The RoarVM is a research project and is not as optimized for performance as the standard Squeak VM”. For comparison:

    Squeak 4.2.4beta1U, MVC image, OS X 555M bytecodes/sec; 12M sends/sec

    so you’ll need a few cores active before you start to see improvements over your existing image! There are also a number of known issues with the current implementation.

    You can download the code from the RoarVm page at GitHub, contribute to the discussion on the vm-dev mailing list, or follow #RoarVM updates on Twitter.

  • Tab Completion returns to Squeak

    Levente Uzonyi is obviously one of a number of people who have been quite envious of the built-in tab-completion in Pharo, so he’s put in the work required to make OCompletion work on Squeak images again. OCompletion works in two ways: it offers a short list of automatic completion hints as you type based on your recent activity, or you can bring up the fuller (classic eCompletion) list by using the tab key, and use the up and down arrow keys to navigate the list and the right arrow to reveal syntax-highlighted source code for the methods listed.

    OCompletion is a re-working of the venerable eCompletion package, based on research done by Romain Robbes and Michele Lanza. It is aware of the current context as you type, and so offers suggestions from your current area of work e.g. class, package etc. This means that it responds much more quickly than eCompletion based on the complete image code base. It also adds a number of look-and-feel enhancements that make it a perfect fit with the current appearance of Squeak.

    To try it out, just evaluate the following script in your image:

    Installer squeaksource
     project: 'RoelTyper';
     install: 'RoelTyper-FredericPluquet.82';
     project: 'OCompletion';
     install: 'OcompletionSqueakCompatibility-ul.1';
     install: 'Ocompletion-ul.67'.

    Useful notes:

    • Check out the squeaksource page for OCompletion to review latest versions of Levente’s code
    • Default behaviour is to switch on the ecompletionSmartCharacters preference, which results in auto-typing of matching [], (), {}, “”, ” characters. Some people may wish to switch off this preference.

    Thanks to Levente for making this handy tool available in Squeak again!

  • Design Principles Behind Smalltalk

    Lambda the Ultimate is celebrating 10 years of its own existence, 30 (nominal) years of Smalltalk-80 and PARC turning 40, by revisiting a classic article Design Principles Behind Smalltalk by Dan Ingalls. From the post: “Ingalls’s piece should be filed under Visionary Languages. Alas, no such category exists on LtU.” Does this mean that Smalltalk-80 was the last visionary language?