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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
Hey Janko, good job.
On 7/22/07, Janko Mivšek <[hidden email]> wrote: Hi Marteen, _______________________________________________ Seaside mailing list [hidden email] http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/seaside |
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 > 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 |
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? 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 |
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 |
Free forum by Nabble | Edit this page |