Following the conclusion of ESUG‘s 16th Joint International Smalltalk Conference in Amsterdam, the Seaside developers held a Seaside Sprint. The aim of the sprint was to address a number of outstanding issues in order to move Seaside 2.9 towards release.

The sprint was a great success with 14 developers working on a number of issues. Eighteen key bugs were resolved, and progress was made in a number of other areas. The attendees had a range of levels of knowledge and experience, from the core developers, to those seeing Seaside code for the first time

The Sprint attendees would like to thank Café Kobalt and the Amsterdam Bibliotheek who provided essential facilities including free internet access, and great food and drink.

Over fifty Smalltalk developers have spent the last two days working on a variety of Camp Smalltalk projects before this year’s ESUG Conference. A number of projects were based on Squeak:

The SqueakNOS team are working to get rid of the need to have an OS underlying the Squeak image. They have now got to the point where any image can run on their VM with minor changes. They can boot from USB memory, and are making progress on accessing SD memory cards.

The Amelia Project aims to use OpenCroquet to develop a three-dimensional multiuser collaborative virtual environment to help teachers organizing computer-mediated activities where children can collaborate, negotiate and make decisions regarding the spatial configuration of school spaces. Filipe Santos was able to work with other Squeak developers to move his work forward.

The MOOSE team worked on their collaborative research platform for Software Analysis and Information Visualisation, and were able to make significant progress with migrating their FAMIX2 meta-model to Squeak using Fame.

Hilaire Fernandes and Michael Reuger began exploring how to integrate DrGeoII, a tool for interacting with geometric figures, into the Sophie multimedia authoring environment.

Giovanni Corriga worked on the code for the KomHttpServer, and delivered a number of bug-fixes.

Lukas Renggli and Philippe Marschall were able to fix a number of bugs in Magritte, and add new functionality to Pier, as well as releasing a new maintenance version of Seaside.

A team of students from UTN (National Technological University in Argentina) co-ordinated by Estaban Lorenzano has just announced the first beta release of SqueakDBX, a package to allow Squeak to access OpenDBX functionality, so allowing users to perform relational database operations (DDL, DML and SQL) through a truly open source library. OpenDBX can interact with major database engines such as Oracle and MSSQL besides open source databases such as Postgresql and MySQL. SqueakDBX can also integrate with GLORP.

From the release notes, the key features for this release are:

  • Tested on 3.10 and Pharo. 
  • Support for Linux and OSX. 
    • Proved on windows (through MinGW), but some changes in OpenDBX are still needed (next version will have full compatibility).
  • Tested on PostgreSQL, MySQL and Oracle. 
    • MS SQL Server, Firebird, Interbase, SQLite, SQLite3 and Sybase tests will be available as soon as possible. 
  • Transactional management.
  • Automatic conversion of resultset columns (a String) into squeak types. 
    • Large objects (clob, blob, arrays, and so on) are not yet supported.
  • Special OpenDBX options: multi-statments, compression, paged results. 
  • Automated database connection release on garbage collection (although manual disconnection is recommended)
  • Error handling

Some benchmark testing has been carried out, and the performance of the drivers appears to be comparable with native drivers.

The team are very keen to get feedback, bug reports, experiences on different platforms etc, and welcome any contributions. Sources can be download from SqueakSource (it requires FFI installed). Full documentation, installation and getting started instructions can be found at the SqueakDBX wiki page.

This project has been selected as part of ESUG SummerTalk 2008.

Lukas Renggli is looking for willing volunteers to complete work on a project that he has been working on. OB-Tools is a package that aims to build the remaining development tools on top of OmniBrowser. It currently includes working versions of the Inspector, Object Explorer, Debugger, Process Browser, File Browser, Transcript and Workspace. It’s already progressed to the point where Damien Cassou is planning to include it in his Squeak Developer Images. It’s also being used by Gwenael Casaccio in his Google Summer of Code project Squeak GTK.

Lukas asks: “I wonder if anybody would be willing to take over the effort? I don’t have much time to work on it and I think it would be a pity to let the code rot. The core is relatively stable, and there are only very few things missing compared to the original morphic tools. It would be cool to add tests similar to what we have for OB-Standard.”

WxSqueak reaches 0.5

14 July, 2008

Rob Gayvert recently announced on the wxSqueak mailing list that he has made a new version of wxSqueak available. wxSqueak is a Squeak interface to the wxWidgets (formerly known as wxWindows) GUI library. The project hasn’t seen much activity recently, but the new version was released following a request on the mailing list. 

Version 0.5.1 includes Unicode support, syntax highlighting and other new features, and looks like a very interesting tool for producing applications with a native look and feel. It can be downloaded from the wxSqueak website as source code, or as a fully runnable demo for Win32.

This revival of wxSqueak comes at an interesting time, as work is proceeding well on SqueakGtk; it looks as though using Squeak to develop native look and feel applications is becoming an increasingly attractive option. No doubt this will fuel the resurgence of interest in Squeak Smalltalk.

Thanks to Torsten Bergmann for spotting this announcement.

As we mentioned in March, the Squeak Project was accepted as a mentoring organisation for the 2008 Google Summer of Code. Five students stepped up to the challenge, choosing to work on the following projects:

The students have already been working on their projects with great enthusiasm, as you can see by checking their posts on the Summer of Squeak blog, and now that the summer holidays are upon us, it looks like the rate of progress is really shooting up! The projects are all going to be valuable additions to Squeak, and I’m sure we’re all looking forward to seeing the final outputs.

Dan Ingalls has released JSqueak, a Squeak interpreter written in Java. 

JSqueak (formerly known as Potato) is less than 5000 lines of code, available under the MIT licence. It runs the Mini2.1 image, which is included for convenience. This image contains a complete Smalltalk development environment, including:

  • Rich text and Text editor
  • File browser (no file access in VM yet)
  • Code browser
  • Decompiler (plus temp-name hints)
  • Compiler
  • Source Code Debugger

Dan wrote JSqueak to teach himself NetBeans and Java in the fall of 2006. Although he developed it as a throw-away project, he notes that

it has features that recommend it for further useful service:

  • It is simple
    • Uses Java objects and storage management
    • Uses Java Integers for SmallIntegers
  • It is general
    • A weak(*) object table enables enumeration and mutation
  • It is efficient
    • Includes a method cache and an at-cache (**)
    • Also a cache of common SmallIntegers
  • (*) – This does not mean wimpy — it’s a good sturdy object table — it just doesn’t hold onto garbage.
    (**) – This is not an automated teller machine, but a device that speeds up array and stream access.

These properties make it a reasonable base for teaching about VM design.

Dan adds that a number of things should be finished or improved if this VM is to see further use – it currently runs between 10 and 30 times slower than the C-based VM! If you wish to track or contribute to such projects, he invites you to add yourself to the (brand new!) JSqueak Interest mailing list.

You can find out more, and run the application as a WebStart Java Application at the JSqueak home page.

Squeak on the iPhone!

11 June, 2008

John M McIntosh announced on the squeak-dev mailing list that “I’m pleased to say that I’m one of the 1.5% of the iPhone developer population that has been accepted to officially build applications for distribution via Apple’s iPhone Application Store.”

He’s prepared a 93-day plan to build a new fully documented Objective C based source tree to host the Squeak VM on the iPhone and in addition as a 64bit VM on OS-X. He’s already collaborating with Impara who are looking at adapting the Squeak UI to the iPhone’s multi-touch paradigm and platform widgets, and is looking for further support (and funding) for this work.

John is also looking to offer support for Squeak developers hoping to make their applications available through the iPhone Store, although he notes that Apple has a number of restrictions limiting the types of applications that can be made available in this way.

The screenshot above shows a “visually exciting” 3.4 image running on an iPod Touch, the result of 15 days’ work. John does sound a note of caution: the VM is currently running at a speed equivalent to a 233Mhz 603e PowerBook, and 64MB of memory use is pushing the Apple’s imposed safety limits right to the max, so developers may have to relearn all those optimisation techniques they may have forgotten in recent years!

Eliot Miranda has posted some exciting news – he is working at Qwaq to develop Cog, a fast Smalltalk VM for Croquet. The VM will dynamically compile Smalltalk bytecodes to machine code transparently to the programmer, and execute this machine code instead of interpreting bytecode. He expects to have an initial release within a year which should execute pure Smalltalk code some 10 to 20 times faster than the current Squeak VM. The new VM will be released under the Qwaq open source licence (MIT-compatible).

Eliot will be posting notes on his progress and design decisions on his blog, and notes that the VM is to be released under the Qwaq open source licence. He’s looking to maintain compatability with the existing Croquet VM, Hydra, and Slang plugins. His first post gives lots of interesting details of work done so far, and his future plans.

Eliot is a long-time Smalltalker, having worked on VisualWorks for many years with a focus on VM development, and has recently been working with Gilad Bracha at Cadence.

The German Squeak Association (Squeak e. V.) had its annual meeting on May 17. For the second time, the meeting was hosted by the Software Architecture Group at the Hasso-Plattner-Institut in Potsdam. Before the official part, attendees of the meeting were given the opportunity to demonstrate their Squeak projects.

First, Tobias Pape and Arian Treffer, students of HPI, demonstrated SwaLint, a source code checker for Squeak. SwaLint is intended as a successor to SmallLint and, thanks to its flexible plug-in architecture, supports running SmallLint checks seamlessly. SwaLint can be configured in great detail: thresholds for all kinds of values can be set, and output can be filtered. Users can easily implement their own plug-ins for the tool.

Next, Michael Haupt (HPI) gave a brief demonstration of SqueakFS, which was implemented by Johan Björk and Eskil Andréen from Stockholm University, Sweden. SqueakFS makes the contents of a running Squeak image available as part of the file system. Currently, it is limited to read-only access, but the image can already be viewed from three perspectives: all classes as a flat collection, assorted by category, and by class hierarchy.

Robert Krahn presented SqueakSVN, which is an ongoing development effort in the Software Architecture Group at HPI. The purpose of SqueakSVN is to make Subversion version control available to Squeak developers; it is able to import Monticello projects. SqueakSVN will be released in June.

Martin Beck is currently working on his MSc thesis in the HPI Software Architecture Group. His work is dedicated to implementing NXTalk, a Smalltalk virtual machine for the Lego Mindstorms NXT platform. Development of NXTalk application takes place in a Squeak image, and assembled NXTalk images are transferred to the NXT for execution by the dedicated NXTalk VM. In the current state, simple images can be assembled and run: Martin demonstrated a program that can be used to steer a simple NXT bestowed with two motors.

The popular introduction to the Seaside web application framework that was produced at HPI was briefly presented by David Tibbe, one of its co-authors.

Robert Krahn had another appearance presenting the collection of games for the XO laptop developed by HPI students. All of the games are available for download as project or SAR files.

Finally, Carl Friedrich Bolz (Düsseldorf University), Adrian Kuhn (University of Bern), and Toon Verwaest (University of Bern) presented SPy, their ongoing effort to implement the Squeak VM in Python using the sophisticated PyPy tool chain. SPy is currently lacking GUI  and other I/O support, but is able to load images and run the tinyBenchmarks. Right after the Squeak association meeting, a PyPy development sprint in Berlin will, amongst others, bring new improvements.

After the official part of the association meeting, special guest Dan Ingalls gave a demonstration of Lively, his current project at Sun Labs. It looks and feels, admittedly, a bit like Squeak in disguise, but in Dan’s opinion, there is nothing bad about building the “same” system several times if it’s cool. That is certainly true for Lively.