You are currently browsing the monthly archive for October 2011.

Yellow & Green III[1]

GLASS 1.0-beta.8.7 has been released. I’ve been pretty busy since the last GLASS release in March: there are almost 50 bugfixes included in this release.

GLASS 1.0-beta.8.7 has been tested against GemStone/S 2.3.1GemStone/S and the forthcoming GemStone/S 3.0.1 release.

I plan a series of blog posts over the next few weeks to cover some of the more interesting changes and new features included in and enabled by GLASS 1.0-beta.8.7.

GemStone/S 2.3.1 Upgrade

If you’ve downloaded the GLASS appliance, you will be running on GemStone/S 64 Version 2.3 and GLASS.230-dkh.164. The good news is that you can upgrade from GLASS.230-dkh.164 to GLASS 1.0-beta.8.7:

  1. Update your GemTools image to GemTools 1.0-beta.8.5.
  2. Update GLASS to 1.0-beta.8 which gets you to the point where Metacello is installed. This step can take awhile, so be patient.
  3. Update GLASS to 1.0-beta.8.7.
  4. Update the rest of the projects that were part of  GLASS.230-dkh.164, most notably:
    • Seaside 2.8.5
    • Magritte
    • Pier

As always don’t forget to make a backup before and after the upgrade.

GemStone/S Upgrade

GemStone/S and the subsequent 2.4.x releases have all shipped with GLASS 1.0-beta.8.1 pre-installed in the seaside extent ($GEMSTONE/bin/extent0.seaside.dbf). The upcoming GemStone/S 2.4.5 release will be shipped with GLASS 1.0-beta.8.7 pre-installed.

To upgrade to GLASS 1.0-beta.8.7:

  1. Update your GemTools image to GemTools 1.0-beta.8.5.
  2. Update GLASS to 1.0-beta.8.7.
  3. Make a backup.

—– / CC BY-NC-SA 2.0

Auto Kit Wrench Set[1]

GemTools 1.0-beta.8.5 has been released. With this release there have been several bugfixes:

  • Issue 132 : Use System class>>#”cacheName:” to make session recognizable in vsd
  • Issue 250 : order and size of args asociated with #halt changed in Gci3xErrStype64 (GemStone 3.0)
  • Issue 280: GemTools login error: ”Network error – text follows”, does not follow with error message…
  • Issue 291: Maintenance Gem Topaz Exit 3.0 / GemStone 3.0

as well as some tweaks to the GLASS upgrade process.


I always recommend that you update GemTools before upgrading GLASS, because the GLASS upgrade process is driven by code included in GemTools. When you select the Update GLASS menu item, the class OGUpgradeJadeServer (included in the GemTools distribution) is compiled on the server and is then used to control the upgrade process.

Speaking of upgrading GLASS… If you are interested in doing a GLASS upgrade from a topaz script take a look at this page on the glassdb wiki has the most up-to-date instructions.


Don’t forget that when you load GemTools into Pharo and Squeak, a set of Help Browser pages are created to provide the most up-to-date information on getting started with GemStone and the GemTools image.


Before releasing 1.0-beta.8.5, I tried loading GemTools into some of the more recent Pharo releases, like Pharo 1.3 and Pharo 1.2, but unfortunately the OmniBrowser implementation in those images is incompatible with the OmniBrowser required for GemTools. The latest version of Pharo that I found that works with GemTools is Pharo1.1.2-11422.

Squeak VM versions

While we’re on the subject, you should also be aware that in order to connect to GemStone, you must use an older version of the Squeak vms (4.2.2 or older) to avoid an FFI bug. For more details, see Issue 258.

—– / CC BY-NC 2.0

Ready to surface![1]

Metacello 1.0-beta.31 has been released. The primary motivation for the release is support for GLASS 1.0-beta.8.7:

  • Use Gofer which addresses some GemStone problems.
  • GemStone  variant of the fix for Pharo Issue 4613: programmatic calculation of platform attributes.

and change that affects the sort order for branched Monticello packages:

In previous versions, the branch name took precedence over the version number when sorting Monticello packages. This had the effect of preventing branched Monticello packages from being loaded on top of a non-branched Monticello package which is not correct. Moving forward the version number takes precedence over the branch name and the branch name is only used to break a version number tie.


[1] Photo by / CC BY-NC-ND 2.0

Insect In Amber. From Kaliningrad, Russia.[1]

Kaliningrad oblast (sometimes called Yantarny krai which means “The amber region”) is located on the coast of the Baltic sea and is the site of the world’s largest amber deposits.

Kaliningrad Project

I created the Kaliningrad project because I want to use Monticello to manage the code that I write in Amber.

Kaliningrad automatically maps Amber package names to Monticello package names, so Kaliningrad is pretty easy to use.

Kaliningrad is based on Seaside 3.0 and uses the Seaside File Library and the Seaside-REST package to serve and store the Amber .js and .st files.

To load Kaliningrad execute the following expression:

Gofer new
    url: '';
    package: 'ConfigurationOfKaliningrad';
((Smalltalk at: #ConfigurationOfKaliningrad) project version: '0.1') load.

The Kaliningrad configuration loads only the most basic packages for Seaside 3.0, so you’ll need to load up one of the adaptors (Swazoo, Comanche, or Zinc) before you can connect.

Using Kaliningrad

Once you’ve got the Seaside server running, hit (user/password : admin/tool):


to bring up the Amber Browser:

If you want save your Amber code into a Monticello package follow these steps:

  1. Create an Amber package (‘tODE-AmberClient’) in the Amber Browser.
  2. Create a Monticello package with the same name (‘tODE-AmberClient’) using the Monticello Browser in your image.
  3. Register the Monticello package with the KOAmberBrowser class:
     KOAmberBrowser addMonticelloPackage: 'tODE-AmberClient'

Thereafter, when you hit the Commit package button for ‘tODE-AmberClient’ in the Amber Browser, the .js and .st source will be saved in the ‘tODE-AmberClient’ Monticello package.

Thats it!

The class KOAmberBrowser is also a good example for how to integrate Amber code into a Seaside component.

Importing classes into Amber

If you want to import a class from your Smalltalk image into Amber, you can evaluate an expression like the following in an Amber workspace:

KOImporter importClass: 'TOSession' intoModule: 'tODE-Amber'

Be aware that there are differences between Amber Smalltalk and other Smalltalk implementations (see the section entitled Differences with other Smalltalk implementations on the Amber documentation page). KOImporter does not check for correctness.


Kaliningrad 0.1 is based on Amber 0.9.

I’ve been using Kaliningrad with Pharo for a couple of weeks now, but the code should run in GemStone and Squeak.

If you run into problems, let me know.


[1] Photo by / CC BY-SA 2.0

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Join 446 other subscribers


RSS GLASS updates

  • An error has occurred; the feed is probably down. Try again later.

RSS Metacello Updates

  • An error has occurred; the feed is probably down. Try again later.

RSS Twitterings

  • An error has occurred; the feed is probably down. Try again later.
October 2011