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

“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?

Background

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.

Presentation

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.

Bio

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.

OOPSLA 2008 is officially underway in Nashville, TN. Tutorials began on Sunday and we had a dozen or so attend at “Introduction to Web Technologies” where we looked at the technologies underlying the web and how the design made preserving session state a challenge.

On Wednesday morning there is a hands-on tutorial on Seaside. If you are at OOPSLA, please consider coming to this session.

On Thursday evening, I will present a seminar at Southern Adventist University near Chattanooga, TN. If you are in the area, stop by at 7:00 PM.

On Wednesday I had two presentations. First, a guest lecture for a graduate class at NCSU (where we talked about testing) and then in the evening a presentation on Maglev, GemStone’s persistence architecture, and Seaside. The attendees were about evenly divided between Smalltalkers (who did not have much experience with GemStone or Seaside) and Rubyists. With the questions and discussion, the entire session went almost four hours!

The next stop is Nashville, where I have two tutorials at OOPSLA–the first is Sunday morning on Web Technologies.

Tuesday evening the Central Virginia Ruby Enthusiasts’ Group met to get an introduction to MagLev (a new virtual machine for Ruby), the underlying multi-user persistence technology for dynamic objects, and how that technology supports Seaside, a “heretical” web framework. If you are in the Raleigh area on Wednesday, come hear the heresy!

 

Central Virginia Ruby Enthusiasts' Group

Central Virginia Ruby Enthusiasts

Follow

Get every new post delivered to your Inbox.