You are currently browsing the daily archive for March 25, 2009.


As much fun as round trips can be, when those roundtrips are over the WAN using GemTools, it can get a bit tiring.

A little over a month ago (GLASS.230-dkh.194) I added the class OBUpdateConcentrator to GLASS. The job of the concentrator is to collect OB-related #update: messages sent to Morphic widgets on the client from the server and ship them across the wire in one roundtrip instead of n roundtrips (see this section for more info). The net effect is that the number of roundtrips for browser interactions is reduced by about 50%.

I didn’t turn on the concentrator for the latest preview, because there were some apparent update problems (they may have been transient Pharo problems). After announcing the preview, I realized that folks who need to connect over the WAN probably wouldn’t mind a few update problems in return for better UI performance. So I decided to make another preview drop primarily aimed at providing relief for roundtrip sufferers.

In order to turn on the concentrator, the method ClientForwarder>>_asOop needs to be implemented. the method contains a primitive call and you need to be SystemUser to compile the method, so you need to use topaz (your input highlighted in gray):

foos:c_gss64bit_230>topaz -l
|                             Configuration Files                             |
|                                                                             |
topaz> set user SystemUser pass swordfish
Warning: GemStone is clearing the previous GemStone password.
topaz> login
[Info]: LNK client/gem GCI levels = 830/830
[Info]: User ID: SystemUser
[Info]: Repository: c_gs64stone_230
[Info]: Session ID: 2
[Info]: GCI Client Host: <Linked>
[Info]: Page server PID: -1
[Info]: Login Time: 03/25/09 13:46:51.706 PDT
gci login: currSession 1 rpc gem processId -1
successful login
topaz 1> method: ClientForwarder
<primitive: 86>
self _primitiveFailed: #asOop

topaz 1> commit
Successful commit
topaz 1> logout

After defining the method and committing, it is  worth turning off some of the optional UI features (in the Preferences Browser under the browsing category), namely: annotationPanels, mercuryPanel, optionalButtons, and syntaxHighlightingAsYouType. These OB options, while useful, consume additional roundtrips for each refresh of the browser. Yes, the preferences you set in your client (either Squeak or Pharo) will be propogated to the server…

Last night I ran some tests from home running against a stone on my office desktop machine and got a 3x performance boost (3 seconds per click versuse 10 seconds per click). I  started doing some development tasks to make sure that all of the browsers were functional when  optionalButtons is disabled (it turned out that the Test Runner wasn’t the first time around) and while I wasn’t doing intense development (I was keeping an eye on the Utah/Rockets game), the performance was good enough that I forgot that I was working on a stone in the office.


There have been no major changes in the GemTools since the last preview release other than a new Find… Menu command was added called Case Sensitive String…, which searches through all method source doing a case sensitive search.

Take a look at the GemTools change log for a complete history of changes since GemStone-dkh.441.


In addition to the roundtrip performance improvements, a number of bugs have been fixed:

  • fix Bug39828 – fastcgi and uploadfile problems
  • fix Bug39766 – WAGsWalkbackErrorHandler is not subclassable
  • fix Bug39778 – Collection should include #ifNotEmpty:ifEmpty:
  • fix Bug39810 – Can’t use DateTimes in SIXX
  • fix Bug39869 – Unicode and debugging
  • fix Bug38428 – a collection of glass shards in the browser
  • fix Bug38458 – Monticello Browser – Viewing history has impact on repository pane
  • fix Bug39369 – MCReader(C)>>readerClassForFileNamed: needs more error checks
  • fix Bug39552 – case-sensitive methods containing search
  • fix Bug38320 – SystemBrowser update problem
  • fix Bug38389 – WB, trying to load a package that had it’s working copy deleted
  • fix Bug38436 – Nothing happens on Repository Browser:”refresh”
  • fix Bug38438 – Browse Monticello package needed
  • fix Bug39756 – need to implment String>>restoreFromSnapshot:
  • fix Bug39763 – Date>>+ has bugs
  • fix Bug39579 – confusing warning from Monticello save after a merge
  • fix Bug38424 – Need way to propogate compiler warnings to tools
  • fix Bug39755 – MC1 should raise errors when there are unloaded classes methods
  • fix Bug39767 – possible stack overflow during FileDirectory>>forceNewDirectoryNamed:
  • fix Bug38550 – Confirmation for Monticello unl;oad package

Take a look at the GLASS change log for a complete history of changes since GLASS.230-dkh.209.


If you are already using a preview GemTools client, you only need to follow these instructions. If you are using a version of the GemTools Client earlier than GemStone-dkh.441, then you should follow these instructions.

[1] Photo by BenJTsunami (Creative Commons).


Announcement from theComplex:

Building sophisticated multi-media, intensely interactive, Web applications is a significant challenge requiring mastery of multiple technologies. The Complex’s own Prof. West hosts a hands-on seminar for anyone with basic programming and web skill who wants to develop that mastery. From March 30 – April 3.

GLASS referes to Gemstone, Linux, Apache, Seaside and Smalltalk, a suite of software applications that provides a single environment, and language, for developing desktop-like Web applications. This workshop will provide a GLASS overview and tutorial followed by a combination of hands-on projects and in-depth coverage of special topics (e.g. the incorporation of Sun’s Lively Kernel technology into GLASS). Informal discussions, explorations, and hacking are likely to take place each evening

James Foster of Gemstone will lead the workshop. You will also have the opportunity to work with prominent members of the Santa Fe Complex on projects. Sessions run from 8:30 – 4:00 from Monday, March 30 – Thursday, April 2 and from 8:30 – noon on Friday, April 3. Lunch and breaks are included in the $375 fee. For more information, e-mail Dr. Dave West at or phone him at 505-231-7233.

[1] Photo by Sister72 (Creative Commons).

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

Join 446 other followers


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