> On a side note, I've been wondering how easy it is to catch extra URL
> information (either path or CGI parameters) and setting up state based
> on it. I'd like to be able to send people to somewhat specified URLs
> and bypassing the Main.html. I.e. giving them something like
>  /iowa/myapp/username/ or /iowa/myapp?username=username
> I'm sure its pretty straightforward to hack it into IOWA, but I was
> hoping someone had a cleaner, neater approach. This sounds like it
> might make the Ruby FAQ URLs prettier too, atleast as an access point.

Two things:

On the version of Iowa that I use for my production work, and that I'm
(_still_, ugh) trying to get all committed to the CVS tree for Iowa so
that I can do a new release, I have added the ability to easily access the
CGI parameters from within an Iowa app so that they can be used to
influence behavior.
This lets me do things like this:

params = session.context.request
if (params['id'].to_s != '')
  #take one course of action
else
  #take another course of action
end

One place that I use this is in a small application that displays, if it
does not receive an id= in the cgi parameters, a list of news/current
event items, and if it does receive that id= parameter, the specific news
item that id refers to.
Along the lines of what you are asking for is something else that I am
working on.  I have a lot of things that I use Iowa for that are less than
an "Application".  They are a standalone page with some dynamic content in
them.  For example, a mutual fund company has a set of pages that list
various pieces of performance data about their funds.  It was really
trivial to use Iowa to make an "Application" to show the page with the
relevant data queried from the database.  However, it's really overkill to
have a bunch of seperate "application" running on the server for each of
these pages, just so each can be referenced directly by a seperate URL.
So, what I am developing is a system that lets me establish a mapping of
URL to Iowa component.  Request the URL, and the page rendered by the
mapped component is what actually gets displayed.  That way one can easily
put together a Foo.html or a Foo.iwa/Foo.html pair, and map a URL to it so
that when the URL is hit, the page defined in Foo.html is what is actually
displayed.  That way it'll be really easy to put together things like sets
of related pages that all display information about mutual funds, but are
accessed with different URLs or have some other slight variations, without
having to have a bunch of completely seperate Iowa applciation daemons
running for each.  The code is not ready for even a prerelease, yet, but
I'd be interested in hearing any thoughts people may have about this.

Thanks,

Kirk Haines