You are currently browsing the monthly archive for December 2009.


The big news with GLASS 1.0-beta.5 is the support of Swazoo2 as a web server option in GLASS for Seaside 3.0. I ported the Swazoo2 server from Squeak to GemStone and there is ConfigurationOfSwazoo2 (a Metacello configuration) in the Metacello Repository which can be used to load Swazoo2 into Squeak, Pharo, or GLASS.

As part of the effort, I created Metacello configurations for Kom (ConfigurationOfKomHttpServer) and SPort2 (ConfigurationOfSPort2) also located in the Metacello Repository. These two configurations should load into Squeak or Pharo (Kom has not been ported to GemStone).

Seaside 3.0.0-alpha5.2

  • pick up recent changes from Seaside developers (12/9/2009 11:16)
  • fix a GemStone compile error in JSStream class>>initializeEncoding [Javascript-Core]
  • merge changes from JQuery-Core-lr.90 into JQuery-Core.gemstone-dkh.91
  • move Kom, Sport and Swazoo packages to their own configurations

Seaside 3.0.0-alpha5.3

GLASS 1.0-beta.5 features

  • pick up version 3.0.0-alpha5.3 of Seaside 3.0
  • porting Swazoo2 to GemStone for Seaside 3.0, Seaside2.8 (possibly), and Aida
  • better version of SpFilename>>delete [Core/Sport]
  • additional FileDirectory methods needed by Swazoo2 [Core/Bootstrap]
  • pick up fix for FastCGI so we persist an Exception description
  • use Metacello 1.0-beta.17

Bootstrapping Instructions

Follow the 1.0-beta.4 instructions through Step 8 (i.e., start by bootstrapping 1.0-beta.4). Load the latest version of the ConfigurationOfGLASS package from the GLASS Project repository and follow the instructions in Step 9 replacing ‘1.0-beta.4’ with ‘1.0-beta.5’.

Updating Instructions

If you have previously bootstrapped 1.0-beta4, then you can update to to 1.0-beta.5 by loading the latest version of the ConfigurationOfGLASS package from the GLASS Project repository and executing the expression in Step 9 that you used in your original bootstrap, replacing ‘1.0-beta.4’ with ‘1.0-beta.5’. The newer packages will be loaded.

Don’t forget to make a backup before and after updating!

[1] / CC BY-NC 2.0

In a comment to the 1 Session per VM: Another Scaling Alternative post, Ken Treis shared the following:

This particular application started life as a LAMP app, then became a Rails app, then a Seaside+GLORP app… and now it’s in GLASS. It’s much, much faster than any of its predecessors (some pages that used to take 10+ seconds to generate come up in about 100 ms), and users have already commented on how much more responsive it is.


Since the 1.0-beta.0 bootstrapping post I’ve released a handful of minor beta versions. 1.0-beta.4 release is targeted at providing an early alpha release of Seaside 3.0 for GLASS. If you are interested in dancing on the absolute bleeding edge of Seaside 3.0.0-alpha5.1 in GLASS, let me know (join the GLASS Beta Mailing list) and I’ll provide you with installation instructions. BTW, those of you who have already expressed interest will be hearing from me tomorrow:)

Seaside 3.0.0-alpha5.1

The 1.0-beta.4 release, marks the point at which the initial phase of the Seaside 3.0 port is complete. All of the unit tests for Seaside 3.0.0-alpha5.1 are passing and most of the functional tests are passing. The remaining functional test problems are not GemStone-specific (Seaside 3.0 is still in alpha:).

At this moment, the GemStone-specific remote debugger, object log tool and profiler have not been ported to Seaside 3.0. I have written an adaptor for FastCGI and the adaptor does a commit per request, but I have not tried running Seaside 3.0 against multiple gems and there are no start* scripts.

There is a Seaside 3.0 workspace that has an expression for starting the FastCGI adaptor (blocking) and an expression for installing breakpoints in useful spots (internal error methods).

If you’re going to work with Seaside 3.0.0-alpha5.1, then you should review this section and this section. It isn’t necessary to manually kill the FastCGI listener every time you restart the server, but if you have trouble starting the server, then it’s worth looking for and killing off any spare FastCGI threads that my be lurking around.

Seaside 3.0.0-alpha5.1 is not yet usable with GemStone/S 2.3. While I have split out the packages (using Metacello) that rely on partial continuations, there are a couple of other issues that cause problems in 2.3.

The early alpha will be based upon GemStone/S 2.4.

Release Features

GLASS 1.0-beta.1 features:

  • fix a bug in ExceptionA class>>raiseSignal
  • need a commit in server update code
  • tweak PRDistribution class>>workspaceText with GLASS info

GLASS 1.0-beta.2 features:

  • pick up improved #currentVersion algorithm from Metacello 1.0-beta.13
  • fix update server logic to use #lastMetacelloVersionLoad
  • add in Seaside 3.0.0-alpha5

GLASS 1.0-beta.3 features:

  • Seaside 3.0.0-alpha5.1 (2.4 only)
  • add #clickIconAt: support [OB]
  • fix an XMLTokenizer bug [Misc/XML-Parser]
  • add #should:raise:withExceptionDo: to TestCase [Core/Bootstrap]
  • eliminate use of #_class for 3.0 compatibility [Core/GemStone-Indexing-Extensions]

GLASS 1.0-beta.4 features:

  • fix a ChangeList>>parseSelector: bug (from Hernan Wilkinson) [Monticello/Monticello]
  • fix for a problem when HyURI has a space or quote in the URL [Hyper/Hyper]
  • use version 1.0-beta.16 of Metacello
  • pick up Gofer package from Metacello repository

Bootstrapping Instructions

See the discussion on the 1.0-beta Configuration Structure, so you can decide which packages/groups you would like to load after bootstrapping 1.0-beta.4.

Please comment to this post or send mail to the GLASS Beta Mailing List if you have trouble. The bootstrap should work for the appliance or any version of GemStone/S 2.3 or greater.

  1. Start a stone using a virgin extent copied from $GEMSTONE/bin/extent0.dbf into $GEMSTONE/seaside/data. Don’t forget to shut the stone down before copying extents around and don’t forget to make the extent writable using ‘chmod +w extent0.dbf’.
  2. Download and unzip
  3. cd to the bootstrap_1.0-beta.4 directory
  4. Edit the .topazini file to match your stone.
  5. Launch topaz: ‘topaz -l -T50000′
  6. ‘login’ and ‘input installMaster.topaz’
  7. Exit topaz. The ‘installMaster.topaz’ script installs the Dev Group which includes the GemTools.
  8. Launch a GemTools Client 1.0-beta.2 image (see the instructions for creating a 1.0-beta.2 GemTools Client image) and login.
  9. Choose a configuration to load by executing one of the following expressions:
    (ConfigurationOfGLASS project version: '1.0-beta.4')
        load: 'Magritte Dev'.
    (ConfigurationOfGLASS project version: '1.0-beta.4')
        load: 'SOAP Dev'.
    (ConfigurationOfGLASS project version: '1.0-beta.4')
        load: 'Seaside Dev'.
    (ConfigurationOfGLASS project version: '1.0-beta.4')
        load: 'Seaside Testing Dev'.
    (ConfigurationOfGLASS project version: '1.0-beta.4')
        load: 'Scaffolding Dev'.
    (ConfigurationOfGLASS project version: '1.0-beta.4')
        load: 'Pier Dev'.
    (ConfigurationOfGLASS project version: '1.0-beta.4')
        load: 'Pier Testing Dev'.
    "use 'topaz -l -T100000' to load 'ALL', since the load
     requires more temp memory"
    (ConfigurationOfGLASS project version: '1.0-beta.4')
        load: 'ALL'.
    "in GemStone/S 2.4 only"
    (ConfigurationOfGLASS project version: '1.0-beta.4')
        load: 'Seaside3.0 Dev'.
  10. Make a backup and have fun!

[1] / CC BY-NC-SA 2.0


GemTools 1.0-beta.2 features:

  • fix update client logic to use #lastMetacelloVersionLoad
  • change annotation pane and make more room for useful info
  • inspect undefined and inspect sent but not implemented menu items available only when tests are installed
  • clean up preferences problems
  • Admin>>Seaside submenu available only when Seaside2.8 installed
  • improve session window label (include the session name) when working with multiple stones


To install the GemTools Client in a virgin Squeak or Pharo image jump to the Install instructions.


For version 1.0-beta.0 of the GemTools Client,  follow these Update instructions.

For version 1.0-beta.1:

  1. Logout of your GemStone session(s).
  2. Click on the Update Client button and select ‘1.0-beta.2’.
  3. Save your client image.

[1] / CC BY-NC 2.0


Version 1.0-beta.16 of Metacello was released yesterday.

The Gofer repository has been off-line for the last couple of days, so I moved a copy of the Gofer package to the Metacello repository and changed the #ensureMetacello method of ConfigurationOfMetacello to point to the Metacello repository. I also updated the MetacelloConfigTemplate class>>ensureMetacello method.

I suggest that you update the #ensureMetacello method in your Metacello configurations. You can copy the #ensureMetacello method from the (updated) MetacelloConfigTemplate class.

If you’re curious, install Metacello into your image and take the tutorial!

[1] / CC BY-ND 2.0

James Foster just published a collection of videos from his ‘Introduction to GemStone’ presentation at Smalltalks 2009:

This year (my third) I presented an Introduction to GemStone and I was able to capture the session on video. I’ve made a series of six movies, each less than 10 minutes, and posted them to YouTube.

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