[Seaside] Re: What's the (technical) purpose of adding t/seaside/ to the path

Janko Mivšek janko.mivsek at eranova.si
Fri Jul 20 16:21:56 UTC 2007

Hi Jason,

Jason Johnson wrote:
> Janko Mivšek wrote:
>> Swazoo currently runs on Squeak, VW, Dolphin and it will soon on ST/X. 
>> It could soon also on VA Smalltalk (Sport port is on the way). Is 
>> there any more dialect to port Swazoo on?
>> It is also a goal of forthcoming Swazoo 2.0 to be as same as possible 
>> on all supported dialects and for sure on API level.
>> Swazoo is therefore definitively a right choice for all portable web 
>> frameworks.
> Cool.  Can it do all the things Commache can?  I come from an Apache 
> background, so the aliasing, installing modules to handle parts of the 
> URL and add functionality, etc. make sense to me.  How does Swazoo 
> handle things like this [1]?  When you announced it before I went and 
> tried to figure it out from the documentation, but I wasn't able to find 
> out.

Well, it doesn't have everything as Apache have, but goal of Swazoo is 
to stay simple and to delegate more demanding tasks to web frameworks.

Swazoo can serve one or many websites (virtual serving), each site have 
its hostname and can have aliases. About docs, yes, lacking, I know. I 
hope that with increased interest I would easily put together at least a 
FAQ. Maybe someone else is willing to help here?

> [1]  Some use cases:
> I want to install Seaside at the location: /seaside, and another 
> framework at the location  /notseaside

VW Seaside on Swazoo is already implemented that way. You have a 
SeasideSite to which a hierarchy of resources is added. Each such 
resource has an uriPattern. The last one is SeasideResource.

UriPattern determines part of url this resource resolves. For instance, 
for default url of VW Seaside:


you have following resource hierarchy and uri patterns:

	SeasideSite localhost:8008
	  CompositeResource  '/'
	    CompositeResource  'seaside'
	      SeasideResource    'go'

You can therefore easily add your own resource wherever you want in that 
hierarchy. Not to mention that you can run a site with one framework and 
another site with other one. For instance, it is already possible to run 
Seaside and Aida/Web together on the same Swazoo server.

> I want / to refer to a specific directory I specify and serve the files 
> there and all subdirectories of it, except /myapp which should be 
> forwarded to my Pier site (note: if there was a directory myapp under my 
> specific directory it can't be accessed from the web server anymore 
> since Pier is there)

This is maybe already possible with correct order of Resources 
(urlPattern search is ordered), otherwise it can be added easily.

> I want / to refer to a specific directory on my server, but /images 
> should be an alias that actually internally forwards to 
> http://some.server.com/resources/images

Same as above.

> I want to write a module (if the functionality isn't there already) to 
> allow me to password protect some links under my site

We had a big debate back in 2000 when developing Swazoo, how to do that. 
And we were too much apart to agree with a common solution of security 
and session management in Swazoo. There were some tries to have a 
wrapper resource for that but that is depreciated currently. It seems 
that best way is that web frameworks deal with security, because they 
know much more about it than Swazoo alone.

I hope I answered you a bit your questions

Best regards

Janko Mivšek
Smalltalk Web Application Server

More information about the Seaside mailing list