Update on Seaside hosting

I deleted a post I wrote in the past on Seaside hosting, since it was out of date. I brought one I wrote on June 10, 2007 up to date with new information, and gave it a current posting date. There are 4 comments you’ll see on it that are dated from around June 10 last year.

=========================

It looks like Seaside Parasol, the Canadian commercial Seaside hosting service set up by Chris Cunnington is gone. Too bad. It would’ve been nice to see that take off. So we’re back to just having Seaside-Hosting, a free service based in Switzerland. They offer free hosting for non-commercial applications. This service does not host databases like MySQL or PostgreSQL. You can however store data inside your Squeak image. You can also store external files on the server filesystem, using them as support for your site (like graphics images), though they don’t want you using it for hosting files for download. From what I’ve heard, the people who set up Seaside-Hosting will try to accomodate you for a fee if you have requirements that go beyond what they typically offer. There’s an e-mail address you can use to contact them for this purpose on their home page.

A new feature they’ve added since I last looked is you can now set up your own domain name (using a domain registration service) and use that instead of their seasidehosting.st domain.

There are a couple of screencasts here and here by Lukas Renggli, on how to register and use the features of the Seaside-Hosting service.

Where can I get Seaside?

There are a couple Seaside developers who have created their own preconfigured Squeak images you can use:

  • Ramon Leon
  • Damien Cassou’s “Squeak web” image. Look for “squeak-web” on this page. There you will find the image, and information on how to use it.

If you go to Ramon’s page, you get the Squeak VM and his preconfigured image in one Zip file. Ramon’s image contains a bunch of extras. I’ve used his image in the past, though it’s been a while, so some of this may have changed. In addition to Seaside it may contain Monticello (a version control system for Squeak), Magritte (a meta language in Smalltalk for creating forms, reports, and graphs, and works with Seaside), Glorp (an object-relational framework for interfacing with an external database), SUnit (a unit testing framework), Albatross (a web app. testing framework, like Watir in Ruby), Mondrian (an app. that shows you graphically how classes are related, and their properties), Toothpick (a configurable logging library), SOAP-Client for interfacing with XML web services (including .Net), Scriptaculous (an AJAX framework for creating slick web UIs), VB-Regex (a regular expression pattern matching library), and some XML parsers/frameworks, among other things.

Damien Cassou’s image contains packages for syntax highlighting, code completion, different code browsers, Seaside, AIDA/Web (another web framework/application server), Magritte, and Pier (a content management system).

One thing about Ramon’s image is it has a few customizations for running on Windows. I think it’ll run on other platforms okay, but expect to get some error messages when you first load it up.

Storing data in the image

Since Seaside-Hosting does not offer database hosting, if you want to be able to store data, you should do it within the image. One possibility I’ve mentioned before is MinneStore, an object-oriented database written entirely in Smalltalk. I’m not sure how it works. It might just store data inside the image.

A simple way of storing read-only data is to create a class, and then create a class variable within it (equivalent to a static variable inside a class in languages like C++, C#, and Java). You can create your own data structure and put it in this variable using “class side” methods (again, equivalent to static methods in traditional languages). It will remain persistent. You do not need to instantiate an object to access it. It is globally available. If you want the data structure to be updateable and accessible from multiple Seaside sessions, then you’re going to have to use semaphores to make sure operations on the data structure are atomic. That’s when it can get hairy.

Another solution is SandstoneDB, a Smalltalk persistence framework Ramon Leon developed recently. It’s designed to make object persistence as easy as possible, getting around the limitations of many object databases.

Advertisements

4 thoughts on “Update on Seaside hosting

  1. Are you looking for someone to host Seaside for you? I would be happy to throw it up on my FreeBSD server for you. I support domain names as such, if you would want that, otherwise I could get it up there for you and give you access pro bono and such. I also have a DB there too (MySQL, can install PostgreSQL if you wanted it), if thatr is helpful to you. Let me know.

    J.Ja

  2. @Justin:

    Re: Are you looking for someone to host Seaside for you?

    I’m not looking to do that right at the moment, but it’s something I’m planning on doing. With the app. I’ve been working on, which I talked about a bit in my post called “Coding like writing”, I’m not planning on using a database. I’ll be able to store the data in the image since it’s pretty much read-only data. I’ll see how that goes. I might take you up on your offer anyway, because even though Seaside-Hosting offers free service for apps. like mine, they’re in Switzerland for crying out loud. One of the things I’ve wished for is that I could host my stuff domestically. I figure that will help with the bandwidth if people come to visit my site.

    The only reason I mentioned the stuff about the lack of database support is I’m sure that’s an issue for other people who are trying out Seaside. I think it’s a minus at this point that no Seaside-supporting ISP is offering database support right now. Maybe I don’t know what I’m talking about. Like I said in my post, there is in my mind the possibility that a database engine like MinneStore could work by storing data in the image (I don’t know if it does), since by its description it’s totally written in Smalltalk, Squeak’s programming language. Even so, a typical Squeak w/ Seaside image will probably take up about 32 MB of memory (unless I were to use one of the minimalist ones, which would take up less), and that doesn’t include my app. or its data. 31 MB is what Windows Task Manager shows me for Squeak without Seaside. Maybe it takes up less memory if I run it “headless” (without the GUI)? Anyone? Each web session takes an additional 2 MB of memory. That’s what I remember hearing from Avi Bryant, who wrote Seaside.

    Anyway, thanks for the kind offer. When I’m ready to put up my app., the option you propose will be something I’ll consider.

  3. Mark,
    Another alternative for persisting Seaside data that will be available for beta testing this summer is GemStone/S. GemStone/S provides transparent persistence for Smalltalk applications and should be a real plus for Seaside developers. We have ported Seaside to GemsStone/S along with Monticello to simplify the process of migrating applications to GemStone/S from Squeak.

    We are offering a free (for commercial use) version of GemStone/S (details are here: http://seaside.gemstone.com/docs/Announcement-StS2007.pdf). Keep an eye on http://seaside.gemstone.com for more information.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s