GemStone has received a few requests for training classes and we are close to having enough students to offer classes (we must have at least 3 students per class).

If you are interested in GemStone training in the next 3 months or so, please contact Norm Green (send mail and Norm will get back to you). Course descriptions are shown below.

Read the rest of this entry »

I’ve just published GLASS-dkh.117 (2.2.5) and GLASS.230-dkh.140 (2.3.0). These two versions should be used with GemStone-dkh.276GemStone-dkh.278 (Squeak). All three of the versions can be found in the GLASS project on GemSource. If you decide to upgrade to these versions, first load the version on the GemStone-side, commit and logout. Then load GemStone-dkh.276 into your Squeak image and save your Squeak image.

I know, I know, just minutes after announcing the availability of a new version of the appliance I publish a set of new packages….So shoot me! Actually, I don’t anticipate that you’ll be that interested in this particular set of versions, since you might not be able to tell that I’ve made any changes at all: I’ve simply taken the first step in heading towards getting the OB-Enhancements packages and friends loaded into GLASS.

With these versions I have started using a branch of the OB-Standard package instead of the OG-Standard package, so only folks like Liliana and Otto from Finworks will really be interested.

I haven’t had a chance to try loading OB-Enhancements, yet - I’ll save that for next week!

[Updated 5/10/2008 - use version GemStone-dkh.278 (needed for 2.3) and load OG-AllTests-dkh.14 (in the GemStone Tools project) if you want to run the OmniBrowser tests in GemStone)].

After a few hitches in our giddyup, we are pleased to announce the availability of the 1.0Beta9 GLASS appliance. The appliance is based upon GemStone/S 64 Version 2.3 Beta 1. We have published the download instructions (join our Beta mailing list) or you can send mail to request download instructions. To make sure that your hardware can run VMWare, double check the hardware requirements.

In the future, when I announce the availability of a new GLASS package in a GLASS Beta Update post we plan on making a new version of the appliance available as well.

The fabled 2.3 beta release of GemStone/S 64 is finally available for download (contact Monty Williams or send mail for download instructions) .

The beta includes the following features:

  1. Primitive support for UTF8 encoding (100x faster than Smalltalk-based algorithm).
  2. Primitive support for HTML encoding.
  3. Thread local support for GsProcess and continuations. Thread locals are being used in Seaside2.9.
  4. Improved ProfMonitor output code moved from GLASS-only to base image.

The beta is shipped with GLASS.230-dkh.130 and GemStone-dkh.270 (both can be found in the GLASS project on GemSource). GLASS.230-dkh.130 is equivalent to GLASS-dkh.114, except for references to the UTF8 and HTML encoding primitives.

A version of the appliance based upon 2.3 beta 1 will be available shortly.

I’ll be giving a technical presentation at Smalltalk Solutions entitled “GLASS: Share Everything”:

Seaside has been characterized as a “heretical” framework because it breaks many of the widely-accepted “best practices” for web applications, including “share as little state as possible.” With GLASS (GemStone/S, Linux, Apache, Seaside, Smalltalk) GemStone takes this heresy to the next level where “everything is shared” - transparently and persistently….

According to the preliminary schedule, I will be talking on June 20th from 9:15am to 10:00am.

James Foster will be giving a tutorial entitled “Building a Seaside Application (with GLASS)”:

This hands-on tutorial will present Seaside and walk through the process of building an application using GLASS (GemStone, Linux, Apache, Seaside, and Smalltalk). Topics covered include handling user logins, where to put session data vs. application data, building reusable components, styling a web site with CSS, and an introduction to Javascript.

James’ tutorial is scheduled for June 19th from 1:30pm to 5:00pm.

The conference will be held June 18-21, 2008 in Reno, Nevada, so if you haven’t already signed up, get busy and register!

While the 2.3 beta for GemStone/S and the next version of the appliance are going through production, I’ve started working on my next project for GLASS which is to get to the point where one can load the OB-Enhancements package into GemStone/S.

When I first ported OmniBrowser to GemStone, I cloned the OB-Standard package and renamed all of the classes to use an ‘OG’ prefix (rather than ‘OB’). At the time I was concerned that I might need an implementation for the ‘OG’ classes in the Squeak (client) side and I wanted to avoid class name collisions.

In the end, custom client-side behavior wasn’t required, but I was stuck with the ‘OG’ prefix. The unique class names have gone from being an annoyance (manual merging of OB-Standard updates into OG-Standard) to a hindrance (OB-Enhancements and OB-Refactory rely on OB-Standard for their functionality).

I am currently in the process of rectifying that problem. I am porting OB-Standard to GemStone (again) and backporting the changes from OG-Standard into OB-Standard. I’ve been able to load OB-Standard into GemStone alongside OG-Standard and there are about 200 methods that I will have to reconcile to complete the port. Shouldn’t be too bad.

Once I’ve got OB-Standard running under GemStone/S I will take a run at OB-SUnitIntegration, OB-Enhancements, OB-regex, and OB-Refactory so that the GLASS tools will be equivalent to the tools that are running in the current Squeak development image.

Wish me luck:)

I’ve just published GLASS-dkh.114 which should be used with GemStone-dkh.270 (both can be found in the GLASS project on GemSource). Here are some of the highlights:

  1. AutoCommit and AutoMigrate features added to GLASS tools. If you ever do something that is truly experimental, you can turn off AutoCommit, but in the majority of cases you should be using AutoCommit. With AutoCommit turned on, the system will perform a commit after every UI action that can change state. In the Code and Monticello browsers that means there are commits after virtually every operation. In a workspace, a commit is performed after the expression is evaluated (doIt, printIt, inspectIt, etc.).
  2. Seaside2.8.1 merged in (Seaside2.8a1-lr.541).
  3. Refactored the Exception hierarchy for GemStone-specific exceptions.

You can get more information by reading the comments in the package history.

GLASS-dkh.114 can be loaded into version 2.2.5 of GemStone/S 64 (including the just annouced version 2.2.5.1). It can also be loaded into version 1.0beta6 of the appliance.

The 2.2.5.1 release of GemStone/S delayed the work towards releasing a new version of the appliance based on 2.3 beta, but we should have a 2.3 beta build done later today and the new version of appliance should be available early next week.

We just announced the release of GemStone/S 64 version 2.2.5.1.

2.2.5.1 includes a Seaside extent based on GLASS-dkh.114. For our Seaside users we fixed a bug related to remote breakpoints, so that with 2.2.5.1, you can set/debug/resume remote breakpoints.

As I mentioned for 2.2.5, most Seaside users should wait for the 2.3 beta appliance. 2.2.5.1 was created primarily for those Seaside users that need a production release for development as well as deployment.

Yesterday we announced the release of GemStone/S 64 version 2.2.5. Check out the Release Notes for more information.

From a GLASS perspective we fixed only a hand full of bugs. The 2.2.5 release primarily contains features and bugfixes for a commercial customer.

For GLASS users, I recommend that you wait for the 2.3 beta that is scheduled to be available at the end of this week.

If you’ve been keeping score, you are probably wondering what happened to the new version of the appliance that I promised at the beginning of the month.

The primary rationale for releasing a new version of the appliance is to make base image code and new primitives available. I did have a hand full of interesting changes queued up awaiting the release of 2.2.5, but the release of 2.2.5 has been held open for bugfixes that might be required by a commercial customer who is taking 2.2.5 into production. While my changes are interesting, they aren’t interesting enough to warrant a release on their own.

Our current plan is to target 2.3 as a Seaside release. 2.3 will include:

  1. support for remote breakpoints
  2. a handful of base image bugfixes
  3. primitive support for UTF8 encoding
  4. any other low hanging fruit

I plan on tackling the UTF8 primitives this week, so we can get a 2.3 beta release including a new appliance drop sooner rather than later.

Based on my past prognostications you should know that for me, “Planning is a form of dreaming.”

I’ve just published GLASS-dkh.108 which should be used with GemStone-dkh.258 (both can be found in the GLASS project on GemSource). Here are some of the highlights:

  1. Arranged for GemStone-based Transcript messages to be routed to the Squeak-based Transcript.
  2. Added GemToGemAnnouncement based on Announcement package from Lukas for handling Gem to Gem signals.
  3. Parallel debugging is feature complete:
    1. Debugged continuations can be ‘resumed’.
    2. Remote breakpoints available (need 2.2.5 final and startup script changes).
    3. Profiling works in mulit-vm environment.
    4. Object log improvements (rewrite and ui adjustments).
    5. Object log integrated with Transcript. Transcript used when development vm attached, Object log used otherwise.
  4. Several bugfixes (see package history for more details).

In earlier posts, I have talked about remote debugging. I have decided (for now at least) that Parallel debugging is a better name for what we’re doing.

In a nutshell, Parallel debugging is about providing a set of tools for doing debugging that spans multiple vms that are operating in concert. The goal is to make debugging/development in a system that may be composed of hundreds of vms as easy as doing debugging/development in a single vm. Debugging continuations, remote breakpoints and the object log are all components of Parallel debugging support.

I plan on writing a post that will go into more detail about Parallel Development/Debugging with GLASS.