SqueakDBX news

7 October, 2009


The SqueakDBX team have been very busy recently working on their OpenDBX plugin which allows Squeak users to perform relational database operations (including DDL and DML as well as SQL) through an open source library.

Their new release, Version 1.1, now supports MySQL, PostgreSQL, Sqlite3, Oracle and MSSQL on Windows, Linux and Mac, as well as incorporating a number of performance refactorings.

They’ve also found time to build a new website for SqueakDBX, which contains lots of documentation and links to useful resources.

To get a better idea of the features of SqueakDBX, and of the work that the team have been doing, have a look at their ESUG 2009 presentation. You can also follow their work at http://lists.squeakfoundation.org/mailman/listinfo/squeakdbx

Squeak Etoys release candidate

30 September, 2009


Timothy Falconer wrote to the squeak-dev mailing list to announce the Squeak Etoys 4 release candidate, in preparation for final release on 21st October.

This release is the product of nine months of work by the Etoys software team, and several weeks of sprinting by Bert Freudenberg, Yoshiki Ohshima, Scott Wallace and Timothy.

The Etoys team are now looking for your input: Timothy says “Please help us test the new Etoys! We want to make sure that it’s rock solid before getting used in schools and homes throughout the world”.

You can download the Etoys 4 release candidate at http://squeakland.org/download under “Release Candidates”.

Highlights of Etoys 4 include:

  • loading and sharing projects directly to the central Squeakland Showcase
  • fully “license clean”, so that it can be included in Linux distros
  • improved toolbar and viewer
  • optional drop-down categories for the project info box
  • lots of fixes and new translations throughout

To learn more about what’s new in Etoys 4, you can watch an interview with Scott Wallace or an introduction to the new beta showcase.

If you find any problems in the release candidate, you can try the Etoys chat channel, or post in the forums, or if you’re able to reproduce the error, add a ticket to the issue tracker.

Timothy passes on special thanks to everyone who made suggestions or helped the team to test the betas, saying “We’d be nowhere without our community!”

Pier 1.2 now out

14 July, 2009

Pier logo

Lukas Renggli, Tudor Girba and colleagues have been working hard on their Pier web content management system for the past few months, and have now shared the product of their labours with the release of Pier 1.2. Pier is a lightweight web content management system, built on Seaside, and intended to be managed from the browser.

They announced some of the key features of the 1.2 release as:

  • An improved system for including dynamic content in pages (see http://www.piercms.com/doc/syntax for more details)
  • No need to have the _s and _k Seaside parameters in the url (it uses cookies to record state by default)
  • Pier can remember last login information
  • Smaller javascript code for faster page loading
  • Better default CSS (including a style for events)
  • Halos for enhanced editing
  • Available as a one-click install (based on Pharo 0.1-10374)

The one-click image is available for download at the Pier web site, where Tudor has also produced a brief video to get you started with Pier. There are plenty more resources including more videos on the documentation section of the site.


Chris Muller has released a thoroughly updated and documented version of his user interface framework Maui. Chris has described Maui as a “naked objects” Morphic-based UI builder that allows rapid UI creation based on object-message composition.

Maui includes a number of light satellite frameworks that supply various application services like documents, object-search, background process management with progress monitoring. It also provides a number of tools which allow applications to be synthesized quickly, without the need to write any user-interface code.

Chris has written a fifty page document describing Maui and giving examples of how to use it to build user interfaces for complex applications. In this document he also discusses future work for Maui, including the tantalising possibility of extending it to support the development of web applications.

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.

All new Monticello 2

15 August, 2008

Colin Putney has announced the release of Monticello 2.0, a ground-up rewrite, using a new, more flexible and more performant versioning engine. Monticello is a distributed optimistic concurrent versioning system for Squeak code written by Avi Bryant and Colin Putney with contributions from many members of the Squeak community.

The new version has a number of changes that Colin believes address problems uncovered while developing and using the first version. The new release manages versioning at a finer level: individual program elements – classes, methods, instance variables, etc. This means that Monticello 2 can be used to version arbitrary snippets of code. These might correspond to packages, change sets, or any other method a programmer chooses to separate “interesting” code from the rest of the image.

According to the discussion that followed the announcement, the new code also manages updates more quickly and with less network and disc traffic, is more extensible, and has better separation of core and UI elements (which will ease porting to other Smalltalks).

Older versions of the code are available on SqueakMap and SqueakSource, as well as the wiresong site, but in his email Colin says that the latest version should always be available at http://www.wiresong.ca/static/releases/Monticello-current.zip (I assume that requires a manual download and file-in – please let me know in the comments if there’s an easier way to do this). The zip file also has step-by-step instructions on how to use the (very different) user interface.

Janko Mivšek has announced that Swazoo 2.2 is ready for beta testing, with much improved upload (input streaming) performance as a main new feature. Swazoo is an open source, vendor agnostic, dialect neutral, highly performant Smalltalk web server with resource and web request resolution framework, born on a first Camp Smalltalk 2000 in San Diego. It is used as standalone web server for static content or for running web frameworks like Seaside and Aida/Web.

On Squeak it uploads 15 times faster than before, achieving 1.5MB/s throughput locally on a Linux 3.2GHz PC. On VisualWorks it is even more impressive: 30 times better, achieving 15MB/s throughput. This means only 20s for 300MB file upload. In both cases upload performance is about half of the download one due to additional MIME parsing needed.

Janko believes that in Swazoo we now have a Smalltalk web server with comparable performance to others in terms of upload performance, meaning that Swazoo is ready for demanding upload tasks like video uploading as well as video-serving (eg for screencasts) which has been possible for a while.

Currently running on Squeak, GNU Smalltalk, Gemstone, Dolphin and VisualWorks, Swazoo appears well on its way to meeting its goal, defined in a manifesto back in 2000: “to join forces and make a really good web server in Smalltalk, open source and for all Smalltalk dialects”.

Ramon Leon has released a tool he uses to simplify the development of Squeak applications. Called SandstoneDb, it’s a simple MIT-licensed object database that uses SmartRefStreams to serialize clusters of objects to disk.

Ramon needed “a simple, fast, configuration-free, crash-proof, easy-to-use object database that doesn’t require heavy thinking to use …[and] that allows me to build and iterate prototypes and small applications quickly without having to keep a schema in sync, or stop to figure out why something isn’t working, or why it’s too slow to be usable.”

By combining ideas from ActiveRecord and Prevayler, he’s certainly made it simple to use: define any objects that you want to persist as subclasses of SDActiveRecord and save your image to ensure the proper directories are created. To persist changes to your objects, call #commit on them. All data is written to disc when committed, and loaded into memory on startup.

There is a cost to this: Ramon notes that the object graph is rebuilt on startup, leading to an impact on startup times; holding all the data in RAM also means that there are practical limits on how much data you can manage in this fashion. He’s happy that this solution meets his needs when developing and deploying applications for his customers, but he’s leaving open the option of a future implementation being disc-based.

There’s a lot more information, including the philosophy behind SandstoneDb, a guide to the API, and usage notes at Ramon’s blog.

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.

Maus multimedia in Sophie

Great news from the Sophie team – they’ve now released Sophie 1.0, available now from the Sophie website.

Sophie is software for writing and reading rich media documents in a networked environment. The team’s goal is to open up the world of multimedia authoring to a wide range of people and institutions and in so doing to redefine the notion of a book or “academic paper” to include both rich media and mechanisms for reader feedback and conversation in dynamic margins.

The team has produced lots of tutorial and documentation information, including some screencasts showing how easy multimedia authoring can be. Download Sophie to find out for yourself!

Sophie is based on Squeak, and so runs on Mac, Windows and Linux operating systems.