updateRoot: Weirdness

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
53 messages Options
123
Reply | Threaded
Open this post in threaded view
|

Re: updateRoot: Weirdness

Jason Johnson-3
sig wrote:
> Hey, lets look to the roots: Seaside serving http requests. And i can
> assure you, that for 99% of the users in the world, thing which
> serving http requests called web-server.

Except that this isn't what Seaside does.  Not exactly anyway.  If you
are familiar with apache, then Seaside is what apache would call an
"apache module".  You hook it into your Smalltalk web server, and it
gets a chance to do things with the HTTP request, but no one would
consider mod_python, mod_alias, mod_rewrite or any of those web
servers.  They are just modules that will handle certain HTTP requests,
if the web server is configured to forward the request to them.  Same as
Seaside.

> And you saying 'standalone web server'.. It looks like you insist that
> seaside in 90% cases in not complete solution for _BASIC_ web
> solutions?
> Why it must force developer to use third party tools to be complete?
> Its better to be slow, as hog but be COMPLETE rather than flexible,
> complex, but incomplete...

And this I agree with.  We all chant the phrase "premature optimization
is the root of all evil", but the "use apache" suggestions are exactly
that.  Everyone should use an in-image solution (use Commanche/Swazoo to
serve files as I do, or maybe this FileLibrary solution I saw someone
mention) until they see the speed actually be a problem.  Then they can
worry about more complicated things like a stand alone file server, load
balancing and so on.  But most of us wont ever need that, so there is no
reason to get side tracked for it.
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: updateRoot: Weirdness

Jason Johnson-3
In reply to this post by Philippe Marschall
Philippe Marschall wrote:

> Attached you will find FilesystemLink
>
> What does it do:
> Make a certain entry point point to a certain place on the file
> system. Very simple, very inefficient, very inflexible, very untested,
> very immature, very "reinvent-the-wheel". But half way portable to
> different dialects and webservers and integrates nicely into the
> Seaside environment without a single code change. So you're not forced
> to use Squeak and Kom.
>
> How does it work?
> - go to /seaside/config
> - add an entry point of type Filesystem Link
> - enter the directory to which the
> - save
> - go to your entry point
>
> Given all these issues I'd be surprised if anyone seriously considers
> using this. It's more proof on concept what an acceptable file serving
> solution for Seaside might look like once it has matured and acquired
> enough users and we agree that this in needed for Seaside.
>
> Philippe

I still don't understand why it is even being considered adding file
serving to *Seaside*.  Seaside is a "module" to be plugged into a
Smalltalk *web server*.  Adding file serving there would be like adding
it to mod_python.  Why?  The web server is already doing it in a much
more flexible way.  IMO what could be added to make things easier is a
web front-end for each of the web servers to allow them to be configured
(this should be provided by the web servers themselves IMO).  Then the
Seaside config page could just point back to this for web server
configuration.
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Swazoo web server (was updateRoot: Weirdness)

Janko Mivšek
In reply to this post by Janko Mivšek
Maarten Mostert wrote:
> The first thing would just be that it would load without errors in a
> clean image.
> If there is a specific seaside version to select distributed or
> published just indicate so on the parcel.

I just loaded it in VW7.5 (by loading parcel SeasideForSwazoo in
Contributed/Seaside) and it loads without a problem, but it don't start
on a provided address http://localhost:8080/seaside/go/browse.

After inspecting SwazooServer singleton, a site (aSeasideSite) and its
uriPattern where aSiteIdentifier resists, I found it incorrectly set.
This site identifier is somehow set by name of my local machine and
external IP, but both should be 'localhost'. Or even better:

        host:'locahost', ip:'127.0.0.1' port:8008

If you change that site identifier manually and restart SwazooServer
(SwazooServer stop; start), it will work correctly.

Best regards
Janko

PS: Michel, would you correct that until next VW release?


>
> I know nothing about webservers so I cannot give you a lot of feedback.
> I just try to make some easy to develop and to deploy website using the
> smalltalk. I'll try to get some further with the documentation as
> indicated.
>
> @+Maarten,
>
>
> Janko Mivšek a écrit :
>> Hi Marteen,
>>
>> Maarten MOSTERT wrote:
>>
>>> I happened to load the Seaside Swazoo parcels this moring but
>>> hm....not so easy to start off. (some more parcel comment maybe)
>>
>> For Swazoo 1.0 there is a one page tutorial on a website, while for
>> forthcoming Swazoo 2.0 (currently in beta) there is already a bit more
>> comments on most important classes.
>>
>> And here you can help me a bit: what was your questions when you
>> loaded that parcel in the morning? What was your intentions on the
>> start? What did you want to achieve? Just look at it or maybe serve
>> some static web pages, make another virtual web site?
>>
>> By answering you will direct me to prepare a bit more docs on a web
>> site...
>>
>>> If Swazoo Seaside is the preferred configuration would it not be more
>>> cool that VW Seaside loads with Swazoo from the start and adds some
>>> Tool extension to get configured ? If I can rent like any dedicated
>>> server, upload a VW image and start business that would be really
>>> Cool . (Oké James I agree I' have to get a Licence in the mean time).
>>
>> Don't forget that Swazoo supports virtual websites, which enables web
>> hosting very easily...
>>
>> Best regards
>> Janko
>>
>>> Notice that now having some real Seaside tests in VW is really
>>> boosting understanding how things work excellent !
>>>
>>> @+Maarten,
>>>
>>>
>>>      > Message du 19/07/07 11:16
>>>      > De : "Janko Mivšek"
>>>      > A : "Seaside - general discussion"
>>>      > Copie à :
>>>      > Objet : [Seaside] Swazoo web server (was updateRoot: Weirdness)
>>>      >
>>>      > Dear Seasiders,
>>>      >
>>>      > Let me remind you that there is a web server in Smalltalk named
>>>     Swazoo
>>>      > (http://www.swazoo.org) and that it was recently ported to Squeak
>>>     too.
>>>      > All you need is to connect it to a Seaside. This can be done
>>> easily
>>>      > because it is already done by Michel Bany on VW Seaside.
>>>      >
>>>      > That way you get a nicely packed web app server, with easy, out
>>>     of the
>>>      > box installation. And from experience so far I can say that
>>>     Swazoo is
>>>      > capable to serve small to medium sized public web sites and all
>>>      > intranets. So, only for really big websites you need to start
>>>     thinking
>>>      > to go Apache or lighthttp way ...
>>>      >
>>>      > Best regards
>>>      > Janko
>>>      > Maintainer of Swazoo
>>>      >
>>>      >
>>>      > sig wrote:
>>>      > > On 19/07/07, Philippe Marschall wrote:
>>>      > >> 2007/7/19, sig :
>>>      > >> > As people says: don't put all of eggs in one basket.
>>>      > >> >
>>>      > >> > Serving all content from single image is nice, but its not
>>>     always
>>>      > >> achievable.
>>>      > >> >
>>>      > >> > As web server, Seaside must serve as front-end for
>>>     delivering content
>>>      > >> > on the web, but not dictate, the original source of content.
>>>      > >>
>>>      > >> Seaside is not a webserver and not a database layer. It is
>>> a web
>>>      > >> application development framework. Webservers live Apache for
>>>     lighttpd
>>>      > >> are preferable for serving static files because this is the
>>>     job they
>>>      > >> are really good at and optimized for. They are written in C
>>>     they use
>>>      > >> epoll/sendfile and multiple processors and caching and what
>>>     not. It is
>>>      > >> a simple one time investment that takes off load of your
>>>      > >> Squeak/Seaside image and gives it more time and resources to
>>>     do what
>>>      > >> it is good and optimized for: dynamic content. That doesn't
>>>     mean there
>>>      > >> is no place for a simple solution for simple problems. But at
>>>     the end
>>>      > >> of the day for any serious application you will need a
>>> standalone
>>>      > >> webserver.
>>>      > >>
>>>      > >
>>>      > > Hey, lets look to the roots: Seaside serving http requests. And
>>>     i can
>>>      > > assure you, that for 99% of the users in the world, thing which
>>>      > > serving http requests called web-server.
>>>      > > You may call it web application development framework or
>>>     anything you
>>>      > > want, but this will not makes any difference unless you stop
>>>     handling
>>>      > > http requests.
>>>      > > Its a layer, which delivers content to browsers using standard
>>>      > > protocol and from this point of view, it must be flexible
>>>     enough to be
>>>      > > able to deliver any content which developer wants to.
>>>      > >
>>>      > > And you saying 'standalone web server'.. It looks like you
>>>     insist that
>>>      > > seaside in 90% cases in not complete solution for _BASIC_ web
>>>      > > solutions?
>>>      > > Why it must force developer to use third party tools to be
>>>     complete?
>>>      > > Its better to be slow, as hog but be COMPLETE rather than
>>> flexible,
>>>      > > complex, but incomplete...
>>>      > >
>>>      > >
>>>      > >> Philippe
>>>      > >>
>>>      > >> > Is there something wrong with this concept?
>>
>
>
>

--
Janko Mivšek
AIDA/Web
Smalltalk Web Application Server
http://www.aidaweb.si
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Swazoo web server (was updateRoot: Weirdness)

Janko Mivšek
Janko Mivšek wrote:
> Maarten Mostert wrote:
>> The first thing would just be that it would load without errors in a
>> clean image.
>> If there is a specific seaside version to select distributed or
>> published just indicate so on the parcel.
>
> I just loaded it in VW7.5 (by loading parcel SeasideForSwazoo in
> Contributed/Seaside) and it loads without a problem, but it don't start
> on a provided address http://localhost:8080/seaside/go/browse.

Ops, default url is on port 8008:  

        http://localhost:8008/seaside/go/browse.

> After inspecting SwazooServer singleton, a site (aSeasideSite) and its
> uriPattern where aSiteIdentifier resists, I found it incorrectly set.
> This site identifier is somehow set by name of my local machine and
> external IP, but both should be 'localhost'. Or even better:
>
>     host:'locahost', ip:'127.0.0.1' port:8008
>
> If you change that site identifier manually and restart SwazooServer
> (SwazooServer stop; start), it will work correctly.
>
> Best regards
> Janko
>
> PS: Michel, would you correct that until next VW release?
>
>
>>
>> I know nothing about webservers so I cannot give you a lot of
>> feedback. I just try to make some easy to develop and to deploy
>> website using the smalltalk. I'll try to get some further with the
>> documentation as indicated.
>>
>> @+Maarten,
>>
>>
>> Janko Mivšek a écrit :
>>> Hi Marteen,
>>>
>>> Maarten MOSTERT wrote:
>>>
>>>> I happened to load the Seaside Swazoo parcels this moring but
>>>> hm....not so easy to start off. (some more parcel comment maybe)
>>>
>>> For Swazoo 1.0 there is a one page tutorial on a website, while for
>>> forthcoming Swazoo 2.0 (currently in beta) there is already a bit
>>> more comments on most important classes.
>>>
>>> And here you can help me a bit: what was your questions when you
>>> loaded that parcel in the morning? What was your intentions on the
>>> start? What did you want to achieve? Just look at it or maybe serve
>>> some static web pages, make another virtual web site?
>>>
>>> By answering you will direct me to prepare a bit more docs on a web
>>> site...
>>>
>>>> If Swazoo Seaside is the preferred configuration would it not be
>>>> more cool that VW Seaside loads with Swazoo from the start and adds
>>>> some Tool extension to get configured ? If I can rent like any
>>>> dedicated server, upload a VW image and start business that would be
>>>> really Cool . (Oké James I agree I' have to get a Licence in the
>>>> mean time).
>>>
>>> Don't forget that Swazoo supports virtual websites, which enables web
>>> hosting very easily...
>>>
>>> Best regards
>>> Janko
>>>
>>>> Notice that now having some real Seaside tests in VW is really
>>>> boosting understanding how things work excellent !
>>>>
>>>> @+Maarten,
>>>>
>>>>
>>>>      > Message du 19/07/07 11:16
>>>>      > De : "Janko Mivšek"
>>>>      > A : "Seaside - general discussion"
>>>>      > Copie à :
>>>>      > Objet : [Seaside] Swazoo web server (was updateRoot: Weirdness)
>>>>      >
>>>>      > Dear Seasiders,
>>>>      >
>>>>      > Let me remind you that there is a web server in Smalltalk named
>>>>     Swazoo
>>>>      > (http://www.swazoo.org) and that it was recently ported to
>>>> Squeak
>>>>     too.
>>>>      > All you need is to connect it to a Seaside. This can be done
>>>> easily
>>>>      > because it is already done by Michel Bany on VW Seaside.
>>>>      >
>>>>      > That way you get a nicely packed web app server, with easy, out
>>>>     of the
>>>>      > box installation. And from experience so far I can say that
>>>>     Swazoo is
>>>>      > capable to serve small to medium sized public web sites and all
>>>>      > intranets. So, only for really big websites you need to start
>>>>     thinking
>>>>      > to go Apache or lighthttp way ...
>>>>      >
>>>>      > Best regards
>>>>      > Janko
>>>>      > Maintainer of Swazoo
>>>>      >
>>>>      >
>>>>      > sig wrote:
>>>>      > > On 19/07/07, Philippe Marschall wrote:
>>>>      > >> 2007/7/19, sig :
>>>>      > >> > As people says: don't put all of eggs in one basket.
>>>>      > >> >
>>>>      > >> > Serving all content from single image is nice, but its not
>>>>     always
>>>>      > >> achievable.
>>>>      > >> >
>>>>      > >> > As web server, Seaside must serve as front-end for
>>>>     delivering content
>>>>      > >> > on the web, but not dictate, the original source of
>>>> content.
>>>>      > >>
>>>>      > >> Seaside is not a webserver and not a database layer. It is
>>>> a web
>>>>      > >> application development framework. Webservers live Apache for
>>>>     lighttpd
>>>>      > >> are preferable for serving static files because this is the
>>>>     job they
>>>>      > >> are really good at and optimized for. They are written in C
>>>>     they use
>>>>      > >> epoll/sendfile and multiple processors and caching and what
>>>>     not. It is
>>>>      > >> a simple one time investment that takes off load of your
>>>>      > >> Squeak/Seaside image and gives it more time and resources to
>>>>     do what
>>>>      > >> it is good and optimized for: dynamic content. That doesn't
>>>>     mean there
>>>>      > >> is no place for a simple solution for simple problems. But at
>>>>     the end
>>>>      > >> of the day for any serious application you will need a
>>>> standalone
>>>>      > >> webserver.
>>>>      > >>
>>>>      > >
>>>>      > > Hey, lets look to the roots: Seaside serving http requests.
>>>> And
>>>>     i can
>>>>      > > assure you, that for 99% of the users in the world, thing
>>>> which
>>>>      > > serving http requests called web-server.
>>>>      > > You may call it web application development framework or
>>>>     anything you
>>>>      > > want, but this will not makes any difference unless you stop
>>>>     handling
>>>>      > > http requests.
>>>>      > > Its a layer, which delivers content to browsers using standard
>>>>      > > protocol and from this point of view, it must be flexible
>>>>     enough to be
>>>>      > > able to deliver any content which developer wants to.
>>>>      > >
>>>>      > > And you saying 'standalone web server'.. It looks like you
>>>>     insist that
>>>>      > > seaside in 90% cases in not complete solution for _BASIC_ web
>>>>      > > solutions?
>>>>      > > Why it must force developer to use third party tools to be
>>>>     complete?
>>>>      > > Its better to be slow, as hog but be COMPLETE rather than
>>>> flexible,
>>>>      > > complex, but incomplete...
>>>>      > >
>>>>      > >
>>>>      > >> Philippe
>>>>      > >>
>>>>      > >> > Is there something wrong with this concept?
>>>
>>
>>
>>
>

--
Janko Mivšek
AIDA/Web
Smalltalk Web Application Server
http://www.aidaweb.si
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: updateRoot: Weirdness

keith1y
In reply to this post by Jason Johnson-3
 Dear Jason,
> Keith, I have never said this to you before (or thought it about you
> as far as I recall) but you are off-base here.  Seaside doesn't serve
> files because it isn't a web server.  It can't even serve itself, it
> relies on a web server to do
We are talking about 2 different things. There is 'seaside' the html
generator with bells on. And 'Seaside' the solution. These are two
different things.

I am complaining that 'Seaside the solution', doesn't have some basics,
and you are indicating that my criticism is unfounded because 'seaside'
the the html generator is not a file serving web server.

So to some extent we are talking at cross purposes here, but I am not
sure you are getting my overall point which is deeper than that.

Indeed 'Seaside' the solution, if you look closely at the (as far as I
know undocumented) api WAKom probably does have all the pieces that are
needed but, it appears that you are on your own when it comes to pulling
all of these pieces together coherently.

My overall point is that 'seaside' exists as part of bigger solution and
so needs integrating with other things. It is not apparent to me that
'seaside' the code is being developed with 'Seaside the solution' in
mind. I think we lack vision as to what 'seaside the solution actually
(should) consists of.'

A worked example to try and explain exactly what I mean.  I have some
resources being served by MyFileLibrary,
In my html generation code I use

html image url: (MyFileLibrary / #logoPng)

This appears to be the most concise mechanism of referencing a served
resource.

So now I configure uncle bobs webserver, comanche whatever to serve my
files instead... and the mechanism for switching to this better solution is?

a) write my own class to generate urls which target the new server.
UBFileLibrary-#/
Replace all references to MyFileLibrary / fileSelector with
UBFileLibrary, or perhaps put the hard wired urls in instead.

Thats not really a solution (user/author/builder level) thats coding
(programmer/architect level).

Ok, so I want to write UBFileLibrary to reference my externally served
files, where do I start. How much help do I have from 'seaside' itself.
Is there an object somewhere I can simply change a configuration setting
on to point to my new file server, or is some coding necessary? Ok if I
am going to code something up who do I subclass. WAFileLibrary, or
WALibrary, or in worst case start from scratch from Object?

Ok if I subclass WAFileLibrary... the urls generated are hardwired to
the class name! I have no choice my files have to be served at
http://samehost/<entryPoint>/UBFileLibrary/logo.gif etc. This seems a
little restrictive, if I want to change it, I would have to change the
whole WALibrary implementation not to use the class name everywhere.

Lets say I am at a university and they have a set up where I can put all
my own website stuff on the public servers at
myuniversity.ac.uk/~myaccount/logo.gif etc ? In that case I am
definitely beyond the remit of any of the WALibrary classes, I have to
start from scratch using Object, or put hard wired urls in my code.

This leads me to my conclusion, apart from WAFileLibrary which is
extremely limited in scope.

'Seaside the solution'  does not have any configurable solution for
serving files/resources, and neither does 'seaside' the html generator
have any solution for integrating with such a solution should it exist.

So yes I stand by my observation that 'Seaside' lacks some basics of
which file serving is the primary example, and 'seaside' is not
providing any configurable hooks that could lead me to conclude it
supports serving files either.

best regards

Keith
 














_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: updateRoot: Weirdness

Jason Johnson-3
Keith Hodges wrote:
> Dear Jason,
>> Keith, I have never said this to you before (or thought it about you
>> as far as I recall) but you are off-base here.  Seaside doesn't serve
>> files because it isn't a web server.  It can't even serve itself, it
>> relies on a web server to do
> We are talking about 2 different things. There is 'seaside' the html
> generator with bells on. And 'Seaside' the solution. These are two
> different things.

Well, Seaside the "module" or "component" has, itself, two parts: the
HTML generator API you describe, and the machinery to make the HTTP
protocol more transparent.  I think I know what you mean though; there
is also what you call the "Seaside Solution" which includes which ever
HTTP Server you happen to be using.  Sorry I didn't get that from your
first email.

And I do think myself that it would be helpful to add some pages for
setting up the different configurations.

> I am complaining that 'Seaside the solution', doesn't have some
> basics, and you are indicating that my criticism is unfounded because
> 'seaside' the the html generator is not a file serving web server.

No, I see Seaside as more then "an HTML generator", that's just one
piece of it.  But it is true that I did not understand you meant the
over all solution which includes the web server.  For me, coming from an
Apache background, the two things (Seaside and the web server that
actually serves it) are two different things.
> Indeed 'Seaside' the solution, if you look closely at the (as far as I
> know undocumented) api WAKom probably does have all the pieces that
> are needed but, it appears that you are on your own when it comes to
> pulling all of these pieces together coherently.

Yes, this part could certainly use work.  Dave has done some work in
this direction, and I have suggested going "whole hog" and putting an
HTML configuration page in each server like Seaside itself has, so that
the configuration is easier for everyone.


> My overall point is that 'seaside' exists as part of bigger solution
> and so needs integrating with other things. It is not apparent to me
> that 'seaside' the code is being developed with 'Seaside the solution'
> in mind. I think we lack vision as to what 'seaside the solution
> actually (should) consists of.'

There is also something to be said for loose coupling. :)  IMO, any
Smalltalk web server should have a way to configure it from the web
pages it serves, because it can.  Apache shows up a welcome page and
points you at documentation for configuring the server.  They do this
because it would be difficult to do anything more.  But since the ST web
servers aren't shackled by configuration files we can (and should IMO)
do more.

And I think that Seaside's "integration" should simply be to provide a
link to where this configuration location would be.  Note that while you
consider the web servers part of the "Seaside solution", they themselves
are more then that.  They could be used to just have an easy to set up
and "I can watch/learn how it works" web server that only serves static
pages, create your own little applications that have nothing to do with
Seaside, or serve some other framework.

>
> A worked example to try and explain exactly what I mean.  I have some
> resources being served by MyFileLibrary,
> In my html generation code I use
>
> html image url: (MyFileLibrary / #logoPng)
>
> This appears to be the most concise mechanism of referencing a served
> resource.

Personally what I do is, I have my Commanche web server set up so that /
is the website directory and /myapp is where my seaside/pier application
lives.  In my code the above would look like:

html image url: '/images/logo.png'

I like this solution because I don't have to touch code anymore if
things change.  If the directory moves to another location I can change
the directory that Commanche has for / or /images, and if it is on a
totally other server then I just have to put an alias in to say that
/images actually means e.g. http://some.other.server/resources/images.  
For me this feels like a powerful, as well as quick/simple for me to set
up, way of running my site.

This is what I was talking about with having more flexibility using the
web server, then making code in (what I call) Seaside.  If you write the
code you are describing below, won't you just end up duplicating this
functionality?


> So now I configure uncle bobs webserver, comanche whatever to serve my
> files instead... and the mechanism for switching to this better
> solution is?
>
> a) write my own class to generate urls which target the new server.
> UBFileLibrary-#/
> Replace all references to MyFileLibrary / fileSelector with
> UBFileLibrary, or perhaps put the hard wired urls in instead.
>
> Thats not really a solution (user/author/builder level) thats coding
> (programmer/architect level).
>
> Ok, so I want to write UBFileLibrary to reference my externally served
> files, where do I start. How much help do I have from 'seaside'
> itself. Is there an object somewhere I can simply change a
> configuration setting on to point to my new file server, or is some
> coding necessary? Ok if I am going to code something up who do I
> subclass. WAFileLibrary, or WALibrary, or in worst case start from
> scratch from Object?
>
> Ok if I subclass WAFileLibrary... the urls generated are hardwired to
> the class name! I have no choice my files have to be served at
> http://samehost/<entryPoint>/UBFileLibrary/logo.gif etc. This seems a
> little restrictive, if I want to change it, I would have to change the
> whole WALibrary implementation not to use the class name everywhere.
>
> Lets say I am at a university and they have a set up where I can put
> all my own website stuff on the public servers at
> myuniversity.ac.uk/~myaccount/logo.gif etc ? In that case I am
> definitely beyond the remit of any of the WALibrary classes, I have to
> start from scratch using Object, or put hard wired urls in my code.
>
> This leads me to my conclusion, apart from WAFileLibrary which is
> extremely limited in scope.
>
> 'Seaside the solution'  does not have any configurable solution for
> serving files/resources, and neither does 'seaside' the html generator
> have any solution for integrating with such a solution should it exist.
> So yes I stand by my observation that 'Seaside' lacks some basics of
> which file serving is the primary example, and 'seaside' is not
> providing any configurable hooks that could lead me to conclude it
> supports serving files either.

Based on what I said above, it appears we disagree on this. :)  But
certainly it could use some work so that the interface is a nice web
page instead of the ST workspace like it is now (though I think there is
a morphic interface for Commanche).


> best regards
>
> Keith
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Swazoo web server (was updateRoot: Weirdness)

Maarten Mostert-2
In reply to this post by Janko Mivšek
Hi Janko,

I just reloaded SeasideForSwazoo from the VW repository
(2.8a1.399,mbany) 9/7/2007.

At the end it gives the following error:

SeasideForSwazoo:Error (Subscripts out of bounds:)
evaluating postLoadBlock

I have another question in another threat to which you can maybe be of
some light.
Can Swazoo handle 20MB downloads at the same time as continuing serving
my seaside application ?

Thanks,
 
@+Maarten,

2007/7/21, Maarten MOSTERT <[hidden email]>:
> Hi,
> I am trying to add a download button to my application to serve a 20MB
> application file.

The best way is to configure your webserver to serve files of this
size. Ideally something like Apache or lighty that supports streaming,
ideally sendfile. Your Squeak webserver might or might not be up to
the job.

> I don't manage figure out how to make button that triggers a download
> dialog ?

Buttons are not really well suited for this, anchors work way better.
What probably is the most reliable thing is:

renderContentOn: html
    html form
        with: [
            html submitButton
                callback: [ self session redirectTo:
'http://url.to/my.file ];
                text: 'download' ]


> I also wonder if MyFileLibrary is the right way to do so ?

No, don't even think about it.

Cheers
Philippe

Thanks in adavance,
@+Maarten,



Janko Mivšek a écrit :

> Hi Marteen,
>
> Maarten MOSTERT wrote:
>
>> I happened to load the Seaside Swazoo parcels this moring but
>> hm....not so easy to start off. (some more parcel comment maybe)
>
> For Swazoo 1.0 there is a one page tutorial on a website, while for
> forthcoming Swazoo 2.0 (currently in beta) there is already a bit more
> comments on most important classes.
>
> And here you can help me a bit: what was your questions when you
> loaded that parcel in the morning? What was your intentions on the
> start? What did you want to achieve? Just look at it or maybe serve
> some static web pages, make another virtual web site?
>
> By answering you will direct me to prepare a bit more docs on a web
> site...
>
>> If Swazoo Seaside is the preferred configuration would it not be more
>> cool that VW Seaside loads with Swazoo from the start and adds some
>> Tool extension to get configured ? If I can rent like any dedicated
>> server, upload a VW image and start business that would be really
>> Cool . (Oké James I agree I' have to get a Licence in the mean time).
>
> Don't forget that Swazoo supports virtual websites, which enables web
> hosting very easily...
>
> Best regards
> Janko
>
>> Notice that now having some real Seaside tests in VW is really
>> boosting understanding how things work excellent !
>>
>> @+Maarten,
>>
>>
>>      > Message du 19/07/07 11:16
>>      > De : "Janko Mivšek"
>>      > A : "Seaside - general discussion"
>>      > Copie à :
>>      > Objet : [Seaside] Swazoo web server (was updateRoot: Weirdness)
>>      >
>>      > Dear Seasiders,
>>      >
>>      > Let me remind you that there is a web server in Smalltalk named
>>     Swazoo
>>      > (http://www.swazoo.org) and that it was recently ported to Squeak
>>     too.
>>      > All you need is to connect it to a Seaside. This can be done
>> easily
>>      > because it is already done by Michel Bany on VW Seaside.
>>      >
>>      > That way you get a nicely packed web app server, with easy, out
>>     of the
>>      > box installation. And from experience so far I can say that
>>     Swazoo is
>>      > capable to serve small to medium sized public web sites and all
>>      > intranets. So, only for really big websites you need to start
>>     thinking
>>      > to go Apache or lighthttp way ...
>>      >
>>      > Best regards
>>      > Janko
>>      > Maintainer of Swazoo
>>      >
>>      >
>>      > sig wrote:
>>      > > On 19/07/07, Philippe Marschall wrote:
>>      > >> 2007/7/19, sig :
>>      > >> > As people says: don't put all of eggs in one basket.
>>      > >> >
>>      > >> > Serving all content from single image is nice, but its not
>>     always
>>      > >> achievable.
>>      > >> >
>>      > >> > As web server, Seaside must serve as front-end for
>>     delivering content
>>      > >> > on the web, but not dictate, the original source of content.
>>      > >>
>>      > >> Seaside is not a webserver and not a database layer. It is
>> a web
>>      > >> application development framework. Webservers live Apache for
>>     lighttpd
>>      > >> are preferable for serving static files because this is the
>>     job they
>>      > >> are really good at and optimized for. They are written in C
>>     they use
>>      > >> epoll/sendfile and multiple processors and caching and what
>>     not. It is
>>      > >> a simple one time investment that takes off load of your
>>      > >> Squeak/Seaside image and gives it more time and resources to
>>     do what
>>      > >> it is good and optimized for: dynamic content. That doesn't
>>     mean there
>>      > >> is no place for a simple solution for simple problems. But at
>>     the end
>>      > >> of the day for any serious application you will need a
>> standalone
>>      > >> webserver.
>>      > >>
>>      > >
>>      > > Hey, lets look to the roots: Seaside serving http requests. And
>>     i can
>>      > > assure you, that for 99% of the users in the world, thing which
>>      > > serving http requests called web-server.
>>      > > You may call it web application development framework or
>>     anything you
>>      > > want, but this will not makes any difference unless you stop
>>     handling
>>      > > http requests.
>>      > > Its a layer, which delivers content to browsers using standard
>>      > > protocol and from this point of view, it must be flexible
>>     enough to be
>>      > > able to deliver any content which developer wants to.
>>      > >
>>      > > And you saying 'standalone web server'.. It looks like you
>>     insist that
>>      > > seaside in 90% cases in not complete solution for _BASIC_ web
>>      > > solutions?
>>      > > Why it must force developer to use third party tools to be
>>     complete?
>>      > > Its better to be slow, as hog but be COMPLETE rather than
>> flexible,
>>      > > complex, but incomplete...
>>      > >
>>      > >
>>      > >> Philippe
>>      > >>
>>      > >> > Is there something wrong with this concept?
>


_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Swazoo web server

Janko Mivšek
Hi Marteen,

Maarten Mostert wrote:

> I just reloaded SeasideForSwazoo from the VW repository
> (2.8a1.399,mbany) 9/7/2007.

Be sure to load Swazoo 1.0 (released) from nov2005 and not more recent
development ones.

> I have another question in another threat to which you can maybe be of
> some light.
> Can Swazoo handle 20MB downloads at the same time as continuing serving
> my seaside application ?

Currently not very efficient. I just tried and it managed to download
20M file with 56KB/sec (on 100MB optical line) but CPU was 100% and with
excessive garbage generation. Parallel wget was blocked during that
time. That wget otherwise got 11KB HTML file in avg 120ms (about
100KB/sec) on 4M DSL line.

Problem seems to be in current implementation of response sending, which
generates a lot of small short living arrays to send segments of data to
TCP socket. Not to mention that all file is read in memory and copied
there several times!

I'm currently working on streaming support and just finished input
streaming (for file uploads). Idea is to stream files directly from/to
TCP sockets, without intermediate buffering in memory. After that and
after careful GC avoidance optimizations I'm confident that Swazoo will
be capable to serve such large files in parallel to serve other requests.

Input streaming will be released in few days as Swazoo 2.0 beta2, while
I expect to finish output streaming soon after that too.

Best regards
Janko

>
> Thanks,
>
> @+Maarten,
>
> 2007/7/21, Maarten MOSTERT <[hidden email]>:
>> Hi,
>> I am trying to add a download button to my application to serve a 20MB
>> application file.
>
> The best way is to configure your webserver to serve files of this
> size. Ideally something like Apache or lighty that supports streaming,
> ideally sendfile. Your Squeak webserver might or might not be up to
> the job.
>
>> I don't manage figure out how to make button that triggers a download
>> dialog ?
>
> Buttons are not really well suited for this, anchors work way better.
> What probably is the most reliable thing is:
>
> renderContentOn: html
>    html form
>        with: [
>            html submitButton
>                callback: [ self session redirectTo:
> 'http://url.to/my.file ];
>                text: 'download' ]
>
>
>> I also wonder if MyFileLibrary is the right way to do so ?
>
> No, don't even think about it.
>
> Cheers
> Philippe
>
> Thanks in adavance,
> @+Maarten,
>
>
>
> Janko Mivšek a écrit :
>> Hi Marteen,
>>
>> Maarten MOSTERT wrote:
>>
>>> I happened to load the Seaside Swazoo parcels this moring but
>>> hm....not so easy to start off. (some more parcel comment maybe)
>>
>> For Swazoo 1.0 there is a one page tutorial on a website, while for
>> forthcoming Swazoo 2.0 (currently in beta) there is already a bit more
>> comments on most important classes.
>>
>> And here you can help me a bit: what was your questions when you
>> loaded that parcel in the morning? What was your intentions on the
>> start? What did you want to achieve? Just look at it or maybe serve
>> some static web pages, make another virtual web site?
>>
>> By answering you will direct me to prepare a bit more docs on a web
>> site...
>>
>>> If Swazoo Seaside is the preferred configuration would it not be more
>>> cool that VW Seaside loads with Swazoo from the start and adds some
>>> Tool extension to get configured ? If I can rent like any dedicated
>>> server, upload a VW image and start business that would be really
>>> Cool . (Oké James I agree I' have to get a Licence in the mean time).
>>
>> Don't forget that Swazoo supports virtual websites, which enables web
>> hosting very easily...
>>
>> Best regards
>> Janko
>>
>>> Notice that now having some real Seaside tests in VW is really
>>> boosting understanding how things work excellent !
>>>
>>> @+Maarten,
>>>
>>>
>>>      > Message du 19/07/07 11:16
>>>      > De : "Janko Mivšek"
>>>      > A : "Seaside - general discussion"
>>>      > Copie à :
>>>      > Objet : [Seaside] Swazoo web server (was updateRoot: Weirdness)
>>>      >
>>>      > Dear Seasiders,
>>>      >
>>>      > Let me remind you that there is a web server in Smalltalk named
>>>     Swazoo
>>>      > (http://www.swazoo.org) and that it was recently ported to Squeak
>>>     too.
>>>      > All you need is to connect it to a Seaside. This can be done
>>> easily
>>>      > because it is already done by Michel Bany on VW Seaside.
>>>      >
>>>      > That way you get a nicely packed web app server, with easy, out
>>>     of the
>>>      > box installation. And from experience so far I can say that
>>>     Swazoo is
>>>      > capable to serve small to medium sized public web sites and all
>>>      > intranets. So, only for really big websites you need to start
>>>     thinking
>>>      > to go Apache or lighthttp way ...
>>>      >
>>>      > Best regards
>>>      > Janko
>>>      > Maintainer of Swazoo
>>>      >


--
Janko Mivšek
AIDA/Web
Smalltalk Web Application Server
http://www.aidaweb.si
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Swazoo web server

Janko Mivšek
Hi Marteen,

Janko Mivšek wrote:

>> Can Swazoo handle 20MB downloads at the same time as continuing
>> serving my seaside application ?
>
> Currently not very efficient. I just tried and it managed to download
> 20M file with 56KB/sec (on 100MB optical line) but CPU was 100% and with
> excessive garbage generation. Parallel wget was blocked during that
> time. That wget otherwise got 11KB HTML file in avg 120ms (about
> 100KB/sec) on 4M DSL line.

Well, I just made that optimization and now Swazoo can serve long files
while serving others too. Problem was in very badly done flush to TCP
socket, which copied a whole file everytime it sends a small chunk to
socket. This wasn't obvious at small responses but became obvious at
large files.

Now a 20MB file is served with about 4MB/sec on 100Mb line while 11KB
requests are just slightly slower, about 160ms instead of 120 on 4Mb line.

But it still takes about 10s reading that file to memory and copying
there several times and during that time server is blocked. Streaming
will solve that problem too.

You can try by yourself: download
http://esug2003.esug.org/vrh-oktober.tar.gz while requesting first page
http://esug2003.esug.org.

This website is served by Aida/Web static web serving but I think same
results would be with Swazoo's own one.

This optimization will be already included in forthcoming 2.0 beta2.

Best regards
Janko


> Problem seems to be in current implementation of response sending, which
> generates a lot of small short living arrays to send segments of data to
> TCP socket. Not to mention that all file is read in memory and copied
> there several times!
>
> I'm currently working on streaming support and just finished input
> streaming (for file uploads). Idea is to stream files directly from/to
> TCP sockets, without intermediate buffering in memory. After that and
> after careful GC avoidance optimizations I'm confident that Swazoo will
> be capable to serve such large files in parallel to serve other requests.
>
> Input streaming will be released in few days as Swazoo 2.0 beta2, while
> I expect to finish output streaming soon after that too.
>
> Best regards
> Janko
>

--
Janko Mivšek
AIDA/Web
Smalltalk Web Application Server
http://www.aidaweb.si
_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Swazoo web server

Conrad Taylor
Hey Janko, good job.

On 7/22/07, Janko Mivšek <[hidden email]> wrote:
Hi Marteen,

Janko Mivšek wrote:

>> Can Swazoo handle 20MB downloads at the same time as continuing
>> serving my seaside application ?
>
> Currently not very efficient. I just tried and it managed to download
> 20M file with 56KB/sec (on 100MB optical line) but CPU was 100% and with
> excessive garbage generation. Parallel wget was blocked during that
> time. That wget otherwise got 11KB HTML file in avg 120ms (about
> 100KB/sec) on 4M DSL line.

Well, I just made that optimization and now Swazoo can serve long files
while serving others too. Problem was in very badly done flush to TCP
socket, which copied a whole file everytime it sends a small chunk to
socket. This wasn't obvious at small responses but became obvious at
large files.

Now a 20MB file is served with about 4MB/sec on 100Mb line while 11KB
requests are just slightly slower, about 160ms instead of 120 on 4Mb line.

But it still takes about 10s reading that file to memory and copying
there several times and during that time server is blocked. Streaming
will solve that problem too.

You can try by yourself: download
http://esug2003.esug.org/vrh-oktober.tar.gz while requesting first page
http://esug2003.esug.org.

This website is served by Aida/Web static web serving but I think same
results would be with Swazoo's own one.

This optimization will be already included in forthcoming 2.0 beta2.

Best regards

Janko


> Problem seems to be in current implementation of response sending, which
> generates a lot of small short living arrays to send segments of data to
> TCP socket. Not to mention that all file is read in memory and copied
> there several times!
>
> I'm currently working on streaming support and just finished input
> streaming (for file uploads). Idea is to stream files directly from/to
> TCP sockets, without intermediate buffering in memory. After that and
> after careful GC avoidance optimizations I'm confident that Swazoo will
> be capable to serve such large files in parallel to serve other requests.
>
> Input streaming will be released in few days as Swazoo 2.0 beta2, while
> I expect to finish output streaming soon after that too.
>
> Best regards
> Janko
>

--
Janko Mivšek
AIDA/Web
Smalltalk Web Application Server
http://www.aidaweb.si
_______________________________________________
Seaside mailing list
[hidden email].org
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside


_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Swazoo web server (was updateRoot: Weirdness)

Michel Bany-3
In reply to this post by Maarten Mostert-2
Maarten Mostert a écrit :

> Hi Janko,
>
> I just reloaded SeasideForSwazoo from the VW repository
> (2.8a1.399,mbany) 9/7/2007.
>
> At the end it gives the following error:
>
> SeasideForSwazoo:Error (Subscripts out of bounds:)
> evaluating postLoadBlock
>
Hi Maarten,
I just tried to load SeasideForSwazoo in Windows and it was OK.
I recall someone had a problem loading SeasideForSwazoo in mac os.
I vaguely remember that the problem could be fixed by defining some host
name somewhere.
Maybe some good soul on this list may have a better memory.
Michel.

_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Swazoo web server (was updateRoot: Weirdness)

Michel Bany-3
In reply to this post by Janko Mivšek
Janko Mivšek a écrit :

>
> After inspecting SwazooServer singleton, a site (aSeasideSite) and its
> uriPattern where aSiteIdentifier resists, I found it incorrectly set.
> This site identifier is somehow set by name of my local machine and
> external IP, but both should be 'localhost'. Or even better:
>
>     host:'locahost', ip:'127.0.0.1' port:8008
>
> If you change that site identifier manually and restart SwazooServer
> (SwazooServer stop; start), it will work correctly.
>
> Best regards
> Janko
>
> PS: Michel, would you correct that until next VW release?
Hi Janko,

It's already more or less done like this, I think.
The problem is that in some cases
    host: 'localhost' ip: '127.0.0.1' port: 8008
does not always work in mac os.
Could you please try to load it and have a look?
To see how it's done, debug the following
    AAADocumentation new createSwazooServer
I'm interested in your comments regarding method #useLocalhost

TIA,
Michel.




_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
Reply | Threaded
Open this post in threaded view
|

Re: Swazoo web server (was updateRoot: Weirdness)

Rick Flower
On Mon, July 23, 2007 1:04 pm, Michel Bany wrote:
> Janko Mivšek a écrit :
>>
>> After inspecting SwazooServer singleton, a site (aSeasideSite) and its
>> uriPattern where aSiteIdentifier resists, I found it incorrectly set.
>> This site identifier is somehow set by name of my local machine and
>> external IP, but both should be 'localhost'. Or even better:
>>
>>     host:'locahost', ip:'127.0.0.1' port:8008

I *think* I've seen some installations of MacOSX that don't seem to
initially like "localhost" references -- at least I've had cases if I
recall where sometimes web references to http://localhost... didn't seem
to work but http://127.0.0.1 did..  Perhaps I'm mistaken, but that's what
I recall -- YMMV!

_______________________________________________
Seaside mailing list
[hidden email]
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside
123