For the last month or so since the International Smalltalk Developers Conference, I have been busy working on the Single Session per VM project trying to get to the point were I can validate the approach. It was straightforward to make the necessary changes to Seaside, but I literally spent more time trying to figure out how to get session affinity to work with FastCGI in lighttpd.
Once I had the basic prototype working I needed to really hammer the server, but neither siege nor jcrawler does a good enough job (siege doesn’t crawl a site and jcrawler sends concurrent requests for the same Seaside session) so I started work on a Seaside-aware load testing tool called scrawler. Scrawler needs a a real good HTTP client and the HTTP client (HyHTTPClient) in the latest version of Hyper from Bruce Badger is perfect – which explains why I was porting the latest versions of Sport and Hyper to GLASS last week.
Over the weekend Dario Trussardi reported a problem with MAFileDescription which turned into Bug39648 and a few other GemStone-specific issues related to MAExternalFile model. By Monday, I’d resolved Dario’s problem and I figured what the heck, while I was in the neighborhood I might as well merge in the latest Magritte code from Lukas. And while I’m merging code from Lukas, I might as well pick up the latest code for Scriptaculous and Pier.
The ink wasn’t even dry on my Pier merge, when I received mail from Doru, announcing Pier 1.0.17. Talk about synchronicity. Had events (spanning the globe) been conspiring all month long to converge at this moment in time?….Nope, but we do have a pending final release for GemStone/S 64 version 2.3, so I got my giddy up on and updated to Pier 1.0.17.
After the smoke cleared, I ended up including a number of new packages in the GLASS package:
- Pier-Design-tg.5, Pier-Documents-lr.7, Pier-Google-lr.5, Pier-LightBox-dc.6, Pier-Randomizer-lr.4, Pier-TagCloud-lr.11, Pier-Titles-tg.1, Pier-Twitter-lr.7 Pier-Setup-tg.30 to conform with Pier 1.0.17.
- XML-Parser.g-dkh.14 for Pier-Twitter support.
The following bug fixes are also included in this update:
- Bug39648 – FileDirectory>>forceNewFileNamed: doesn’t ensure creation of subdirectories.
- Bug39357 – appliance 1.0 beta10 gems get commit conflicts on first startup.
- Bug39413 – ‘Magritte implements #description: which interferes with subclass creation’.
- fixed duration string generation (RSRSS2) from Philippe Marschall.
- MAFileDescription upload problem reported by Dario Trussardi.
The update is published as GLASS-dkh.122 (2.2.5) and GLASS.230-dkh.162 (2.3 beta 2 or 1.0beta10). These two versions can be used with GemStone-jgf.291 (Squeak client) or later. All of the versions can be found in the GLASS project on GemSource. If you are running with a version of the GLASS package that is earlier than GLASS-dkh.118 or GLASS.230-dkh.146, then you need to follow these instructions first. After loading the GLASS package you should evaluate the following two expressions in a workspace:
- MADescriptionBuilder initialize.
- PRDistribution new register.
The first expression picks up some new initialization code and the second expression installs Pier 1.0.17 as a Seaside application.
In GemStone-obi.293 Gerhard Obermann changed the layout of the Transcript Window to allow more buttons, added a Find Substring button, and arranaged for SHIFT-click on the Debug button to empty the Object Log. Personally, I’ve moved to this version of the Squeak client as I think it is an improvement.
If you are running in a 2.2.5 repository then you have a couple of options:
- Download the single-click Squeak client for 2.2 (download) from GLASS downloads and then load GemStone-obi.293. RECOMMENDED.
- Update your existing Squeak image (presumably using GemStone-dkh.283)
- start the Squeak client image.
- load GemStone-obi.293.
- save the image and exit.
- copy (or use a symbolic link) the GCI library (location in top pane of the Login Window) to a file named gciForLinux.so, gciForMacintosh.so or gciForWindows.dll, depending upon your client platform.
- restart the image and log in to GLASS.