You are currently browsing the category archive for the ‘Trips’ category.

… are available here. My presentation was Smalltalk in the Cloud and included a demo of pushing an Aida application (using Pharo/Cog) to a public cloud.

So, I’m in Argentina (for the fourth year in a row), attending Smalltalks 2010 and doing some consulting. During lunch I walked a couple blocks from the client’s office to get some lunch. The restaurant is nice, inexpensive, and has WiFi. Glancing around, I saw something that looked both familiar and unexpected: someone working in Squeak. Familiar, because I’ve just spent a an intense several day with other Smalltalkers discussing cool projects. But unexpected, because I don’t think I’ve ever gone to just a random cafe WiFi and found someone working on his Squeak project.

I introduced myself (yes, he spoke English), and found that he has been doing Smalltalk for 15 years and has an application in production. Adding to the surprise, he was not aware of the conference last week nor that a few blocks away a major corporation uses Smalltalk. Perhaps the Smalltalk prevalence is a bit larger than I thought, at least in Argentina!

“The Seaside Heresy” will be on tour in Southern California the third week of February. The schedule includes the following:

I have a couple other feelers out, but if you have suggestions or just want to visit about GemStone, Seaside, and/or Smalltalk, contact me at James dot Foster at GemStone dot com.

Following is the announcement:








The Seaside Heresy

Or, Will GLASS* Be Your Next Web Framework?


The explosive growth in Ruby popularity has demonstrated that dynamic languages are not just an academic curiosity, but have a real place in the professional developer’s toolset. Although Ruby has come a long way on Matz’s Ruby Interpreter (MRI), serious effort is being made to give Ruby a solid, industrial-strength virtual machine with JRuby (sponsored by Sun), Rubinius (“loosly based on the Smalltalk-80 architecture”), and IronRuby (sponsored by Microsoft). The latest news on this front is GemStone System’s announcement of MagLev, a Ruby environment based on GemStone’s dynamic language virtual machine for Smalltalk.

After coming to dynamic languages, a number of developers are not just waiting for Ruby to mature but are investigating the languages that inspired Ruby, particularly Smalltalk (Matz once characterized Ruby as “Smalltalk with a Perl syntax”). Smalltalk was developed in the 1970s at Xerox’s Palo Alto Research Center (PARC), where it provided the inspiration for the Macintosh and had a significant (but often quiet) influence on many aspects of software engineering-including Agile practices-over the past three decades. Although generally eclipsed in popularity by C++ and Java, Smalltalk has maintained a loyal following over the years and has a number of very solid (and fast) implementations and quite mature class libraries (some open-source and some vendor-supported). One of the discoveries Ruby developers find most interesting is Seaside, an open-source web framework created by Avi Bryant, an early Ruby developer, and others.

Seaside is a web development framework that turns the conventional wisdom on its head. Instead of “share nothing,” Seaside adopts a “share everything” approach. Instead of using RESTful URLs, Seaside encodes session keys and other data in most every URL. Instead of using templates, Seaside developers create web pages by sending messages to objects. And last, but not least, many Seaside applications avoid the use of relational databases thereby removing the object-to-relational mapping complexity.


In this presentation, James Foster will give a brief demo of MagLev, then introduce Smalltalk, GemStone/S (a Smalltalk implementation that has built-in persistence and multi-user, multi-machine scalability), and the web framework Seaside. We will see how Seaside handles the “Back button problem” and provides a rich, component-based approach to OO web development.


While in junior high in 1971, James Foster discovered computers at the local university and has delighted in building things and sharing his discoveries ever since. He learned Smalltalk in the mid-1990s, and became a passionate advocate for object technologies and agile methods. James is on the Smalltalk Engineering team at GemStone Systems, Inc., and travels widely to present on technical topics (including Europe and South America).

*”GLASS” is an acronym for GemStone, Linux, Apache, Seaside, and Smalltalk.

I’ve posted pictures from my recent trip to Buenos Aires. 

On a related note, I spent a good bit of time looking for decent on-line maps of Buenos Aires and was pretty much lost without Google Maps (which just left Argentina as a big blank area). It turns out that the day after I left, Google Maps came to Argentina (hat tip to Discover Buenos Aires). Even better, they have good satellite photos of the area where we had our picnic.

Day One of Smalltalks 2008 is over and Andres has a good write-up on the events of the day. Andres mentions “a nasty snafu” in which my laptop was left behind. It’s true. As part of my elaborate preparations, I packed most accessories and cables (including some video recording equipment) separately from the computer to minimize the progressively increasing weight of my carry-on backpack. I was initially pleased with how light the backpack was (given that it included books and magazines for the long flight), but when I got to the airport and prepared to send my computer through security separately I discovered that the computer was not in the backpack!

My long-suffering wife (who had gotten up at 3:30 AM to take me to the airport) spent much of that day trying to find a way to ship a laptop from Portland, Oregon, USA, to Buenos Aires, Argentina, in time for me to use it for the presentation (plus significant amount of last-minute finalizing of the material). When that proved impossible, we started discussing purchase of another machine. Monty had suggested that my wife jump on the next plane to Buenos Aires (another airline would be arriving a few hours after my flight), but my wife said that she would rather not chase me all over the Western Hemisphere and would prefer to end the week with a new computer if we were going to spend that much money.

Anyway, the layover in Atlanta was long enough for me to leave the airport, take the subway to the Apple Store (45 minutes from the airport), and buy a new MacBook. My wife delivered the other computer to my office, where my helpful colleague connected it to the network and worked with me to get it set up for remote access. I was able to VPN to the office, and copy the work-in-progress material to the new computer. 

Unfortunately, that was not the end of the struggle. Unknown to me, Apple does not include the external video adapter cable in the box with the MacBook (it is included in the MacBook Pro), so I was not going to be able to project from my new laptop. I went to the Apple store here in Buenos Aires, and discovered that each Mac has a different plug for the external video, and my version of the MacBook (along with the accessories) was not yet available in Argentina. So, for the half-day tutorial I used someone else’s PC (running Vista) to present my PowerPoint slides and for the final 45-minute presentation (described by Andres) I used Monty’s MacBook Pro. Since I was doing a demo in addition to slides, it was a bit more complex to set up his machine but things turned out just fine.

The following pictures are of Monty’s Keynote, the local support team configuring the network to allow me to VPN to my office (avoiding their outgoing firewall), and a picture Andres took of the group at Thursday night’s social. I’ve put all of the pictures Andres took with my camera on PicasaWeb.

One of the exciting things about being a tools vendor is seeing what people build with your tools. Of course, when there are a combination of excellent tools out there, including Seaside and Magritte, the possibilities become even more interesting.

Gerhard Obermann, a Smalltalker with Nokia Siemens Networks in Vienna, Austria, is building a Service Desk application in Seaside to enhance a mature client/server system (built with Cincom Smalltalk and GemStone).

Gerhard has created “Scaffolding for GemStone” and I’m scheduled to give a demo of it at the end of the day on Thursday at Smalltalks 2008 in Buenos Aires. I’ve created a 7-1/2 minute screencast of what I plan to show since I think some of you won’t want to wait for the post conference videos (if any).

“Scaffolding” usually describes a simple “skeleton” user interface (UI) that is created quickly by tools in response to your domain model. What is interesting to me is how much of the complexity that remains in even the slickest of tools is related to the persistence model (generally an Object/Relational Mapping layer). Probably one of the most popular (or talked about) scaffolding frameworks is Rails, where the 15-minute demo involves repeated interactions with the SQL model. Demos of other tools simply wave their hands and present you with a relational schema already created and then go on to use nice tools to build the UI (it makes you wonder how complex the part is that you don’t see).

What Gerhard has done is used Magritte to model a domain, GemStone to save the objects, and Seaside to display them. In addition, Gerhard has created a web-based UI to interact with the Magritte data. Thus, after loading his package into GemStone, everything else is handled through a web browser. The tools build a basic “CRUD” user interface (that handles Create/Retrieve/Update/Delete for the domain data). 

Take a look at the demo and leave us your comments! Better yet, load the code into your GLASS environment and contribute to the open source project…

The Second Annual Smalltalks Conference will be starting in a few hours here in sunny Buenos Aires. I understand that over 200 people are registered for at least some part of the three days.

I have a tutorial first thing after lunch, and then I follow Alan Knight with the last session of the day.

For those who are not able to fly to Argintina, I’ve prepared a brief summary of the demo. But, so as not to spoil the surprise, I’ll post it just after the presentation. I’ll give you a hint, however. It isn’t something from GemStone, but a tool built by someone in the community using Seaside and GemStone. Dale and I only saw it last week and we hope you will be as excited as we were with it.

Stay tuned!

I left OOPSLA shortly before the closing party (and ice cream social) and drove to Chattanooga for an evening seminar at Southern Adventist University’s School of Computing. We discussed Seaside, Smalltalk, and GemStone. It was a nice wrap-up for the week’s events.

Monday I’ll be back in Beaverton and start teaching “Advanced Configuration and Tuning” for GemStone/S systems.

Wednesday morning we had the Seaside tutorial. There were 10-12 attendees, of whom only one or two had experience with Smalltalk. It was exciting to see their interest in Smalltalk and Seaside. We gave them the Squeak one-click image and worked through a sample application there. Then we had a demo of WebVelocity and tried a more complex application on GLASS. 

A couple amusing Smalltalk experiences… At the welcome reception there are “Posters” where researchers stand by a bulletin board with a poster showing their work. People wander around and ask questions. One fellow was proposing a new syntax for function calls in which you have named parameters. He seemed to be unaware that Smalltalk showed this approach decades ago. Next, I went to a Ruby/Rails tutorial where the instructor asked people to introduce themselves and give their background. Of course, I mentioned Smalltalk/Seaside, and so for the rest of the three hours he kept making reference to how Ruby/Rails was better than everything else out there, “except for Smalltalk that does this even better.” It almost got embarrassing since I was there to learn not to intimidate.