From: Wari W. <wa...@ho...> - 2003-08-25 05:27:07
|
On Sat, 2003-08-23 at 01:48, Aaron Held wrote: > Its actually very easy and I have done it a bunch of times, if you > scan the Webware email list you will see some examples posted. I've only one thing to say: Damn you! Aaron, you've sold me to webware!! :) I've been downloading, and reading webware materials (not enough of it though), joined the mailing list, and will probably try to sell this to my boss so that I can replace the annoying PHP version that we had (unfortunately, that's not likely to happen though, based on the R&D we've spent on PHP). Anything that's not PHP and can serve more than 10 requests per second on a Cyrix 200Mhz is ok in my book :) It is one of the solutions that I see as a good compromise between, say, twisted and PHP (yeah, my colleagues thinks PHP is the best thing since sliced bread). On one hand, twisted will force you to think of building non blocking scripts with their reactor, and woven is not something I'd call straight forward. PHP is too straight forward, and since it's script based, it is easy to think of your code as simple scripts that runs from top to bottom. WebKit and PSP allows you to code like PHP, yet you could add more thought to it and make (upgrade?) your scripts to live objects. I wished that I have known Python and Webware 2+ yrs ago, and I won't be in this mess I have right now, which is, bad code, workarounds, etc inherent in PHP. There are downsides to Webware too, though, * it is one of the systems that killed my 200Mhz box, freezing it, no clue why, not sure if it's webware, or python that freezes it. Running on a screen session is ok though. I'll have to investigate this, and goodbye to my almost 1 yr uptime :) * it needs a better startup model like twisted does, that is, fork off, detach from parent, produce a pid file, and logs should/may go to somefile, depending on settings. * tried to compile the documentation with epydoc (yeah I know it's not meant for that) does not produce the relevant docs I need (not really an issue, but epydoc is a nice doc tool IMO) * Is UserKit usable yet? Anyway, looks like I need to do a simple presentation and a sample wiz bang (but small) app to show how things work in a app server environment. Expect more questions from me :) |
From: Lothar S. <ll...@we...> - 2003-08-26 05:38:38
|
Hello Wari, Monday, August 25, 2003, 7:02:54 AM, you wrote: WW> On Sat, 2003-08-23 at 01:48, Aaron Held wrote: >> Its actually very easy and I have done it a bunch of times, if you >> scan the Webware email list you will see some examples posted. WW> I've only one thing to say: WW> Damn you! Aaron, you've sold me to webware!! :) WW> I've been downloading, and reading webware materials (not enough of it WW> though), joined the mailing list, and will probably try to sell this to WW> my boss so that I can replace the annoying PHP version that we had WW> (unfortunately, that's not likely to happen though, based on the R&D WW> we've spent on PHP). Anything that's not PHP and can serve more than 10 WW> requests per second on a Cyrix 200Mhz is ok in my book :) You mean empty requests ? Because otherwise your questing about completely useless. WW> WebKit and PSP allows you to code like PHP, yet you could add more WW> thought to it and make (upgrade?) your scripts to live objects. I wished WW> that I have known Python and Webware 2+ yrs ago, and I won't be in this WW> mess I have right now, which is, bad code, workarounds, etc inherent in WW> PHP. WW> There are downsides to Webware too, though, WW> * it is one of the systems that killed my 200Mhz box, freezing it, no WW> clue why, not sure if it's webware, or python that freezes it. Running WW> on a screen session is ok though. I'll have to investigate this, and WW> goodbye to my almost 1 yr uptime :) 200Mhz Cyrix (this is the 133PI speed) is really an out of date system, even embedded systems should have more power. Best regards, Lothar mailto:ll...@we... |
From: Wari W. <wa...@ho...> - 2003-08-26 00:09:37
|
Lothar Scholz wrote: >WW> will probably try to sell this to >WW> my boss so that I can replace the annoying PHP version that we had >WW> (unfortunately, that's not likely to happen though, based on the R&D >WW> we've spent on PHP) >You mean empty requests ? >Because otherwise your questing about completely useless. > > Not really, as we do look out for something better. It's all about proposals and how willing/fast I am at replacing the current stuff. >200Mhz Cyrix (this is the 133PI speed) is really an out of date >system, even embedded systems should have more power. > > Yes, it's been around for more than three years, as long as I have been in the company, still selling strong too. A decent file/web/mail server, the webui is not responsive as it runs on perl cgi, but it works. And I'm actually impressed on how responsive webware is, running on it. |
From: Wari W. <wa...@ho...> - 2003-08-25 05:35:12
|
On Mon, 2003-08-25 at 13:02, Wari Wahab wrote: > I've been downloading, and reading webware materials (not enough of it > though), joined the mailing list, and will probably try to sell this to > my boss so that I can replace the annoying PHP version that we had > (unfortunately, that's not likely to happen though, based on the R&D > we've spent on PHP). Anything that's not PHP and can serve more than 10 > requests per second on a Cyrix 200Mhz is ok in my book :) Sorry if the previous title is confusing, it was a reply to Aaron, and I cc'ed the list without changing the title. |
From: <rt...@sy...> - 2003-08-25 05:47:42
|
Wari, How would you compare Webware to Twisted? Is Twisted overkill for creating web applications? Would you say webware+PSP/Cheetah or Twisted is more efficient in creting web apps? Stability problems on either one? Thanks, Richard >-----Original Message----- >From: web...@li... >[mailto:web...@li...] On Behalf >Of Wari Wahab >Sent: Sunday, August 24, 2003 10:03 PM >To: Aaron Held >Cc: Webware discuss >Subject: [Webware-discuss] Running with mod_python > > >On Sat, 2003-08-23 at 01:48, Aaron Held wrote: >> Its actually very easy and I have done it a bunch of times, if you >> scan the Webware email list you will see some examples posted. > >I've only one thing to say: > >Damn you! Aaron, you've sold me to webware!! :) > >I've been downloading, and reading webware materials (not enough of it >though), joined the mailing list, and will probably try to sell this to >my boss so that I can replace the annoying PHP version that we had >(unfortunately, that's not likely to happen though, based on the R&D >we've spent on PHP). Anything that's not PHP and can serve more than 10 >requests per second on a Cyrix 200Mhz is ok in my book :) > >It is one of the solutions that I see as a good compromise >between, say, >twisted and PHP (yeah, my colleagues thinks PHP is the best thing since >sliced bread). On one hand, twisted will force you to think of building >non blocking scripts with their reactor, and woven is not something I'd >call straight forward. PHP is too straight forward, and since it's >script based, it is easy to think of your code as simple scripts that >runs from top to bottom. > >WebKit and PSP allows you to code like PHP, yet you could add more >thought to it and make (upgrade?) your scripts to live >objects. I wished >that I have known Python and Webware 2+ yrs ago, and I won't be in this >mess I have right now, which is, bad code, workarounds, etc inherent in >PHP. > >There are downsides to Webware too, though, > > * it is one of the systems that killed my 200Mhz box, freezing it, no >clue why, not sure if it's webware, or python that freezes it. Running >on a screen session is ok though. I'll have to investigate this, and >goodbye to my almost 1 yr uptime :) > * it needs a better startup model like twisted does, that is, >fork off, >detach from parent, produce a pid file, and logs should/may go to >somefile, depending on settings. > * tried to compile the documentation with epydoc (yeah I know it's not >meant for that) does not produce the relevant docs I need (not >really an >issue, but epydoc is a nice doc tool IMO) > * Is UserKit usable yet? > >Anyway, looks like I need to do a simple presentation and a sample wiz >bang (but small) app to show how things work in a app server >environment. > >Expect more questions from me :) > > >------------------------------------------------------- >This SF.net email is sponsored by: VM Ware >With VMware you can run multiple operating systems on a single machine. >WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines >at the same time. Free trial click >here:http://www.vmware.com/wl/offer/358/0 >_______________________________________________ >Webware-discuss mailing list >Web...@li... >https://lists.sourceforge.net/lists/listinfo/webware-discuss > > |
From: Wari W. <wa...@ho...> - 2003-08-25 11:15:09
|
Just to note, this is my three days assesments of WebWare (basically just a few hours), so what I noted may or may not be true :) I've also only played with twisted for a while (like 2-3 months) and I'm not on it full time, really. On Mon, 2003-08-25 at 13:47, rt...@sy... wrote: > How would you compare Webware to Twisted? Is Twisted overkill for creating > web applications? So far, I've just touch base on Twisted and will be creating an app with is. Twisted shines when what you need is to connect to other hosts/nodes with different protocols (web clients, snmp clients and servers, process scheduling, queuing, etc), and vice versa, and Web serving, is /not/ a big part of your app. > Would you say webware+PSP/Cheetah or Twisted is more > efficient in creting web apps? When you say efficiency, it can mean a few things, especially when it comes to developer efficiency. I believe webware is more developer friendly when it comes to building web centric apps. I'm able to get a hello world page up in no time with webware, because there's no code overheads to it. It does what I tell it to do. PSP (IMO it looks uglier than PHP) allows developers to build straight forward apps like PHP, and it's got the advantage that modules in python can be reused. And if I need more functionality than that, I can always use servlets. I like the fact that PSP code actually becomes a servlet after caching. I know what Cheetah is, but have not worked it with WebWare yet, but I think it's a cleaner templating engine than PSP, then again, PSP will make it easier for developers to get acquainted with Webware. In Twisted, you have Woven, which really separates the app, from the presentation logic, and woven templates are XML files, which you define the model, and the view of the model. That is you say, your dict could be the model, and the view converts the dict into something meaningful, and the template will use these to create a web page, all in a minidom style of coding. Bah, what am I saying, it is difficult for programmers to deal with MVC style of coding, and it can lead to developers being lazy, doing things manually as long as the results look right. Blocking code in your page rendering (say a recursive function, or using os.popen() with a long running process) can make the twisted server wait and it will make twisted seems that it hangs. It's easy to make blocking code, even if there are ways to make things not block, it's just that developers will take the easy way out, as, event driven programming (with callbacks) are a pain to deal with. It's still doesn't mean that I don't like twisted :) > Stability problems on either one? I have not done anything yet to break Webware (although that machine freezes that I got twice in a row, after running Webware for a few hours, I'm not sure what really happens though). With twisted, it is so much easier to make your app freeze (but in reality it's not) just because you have an exception that is not handled in an errBack (error callback). You can try it out your self, download quotient from divmod.org, run it (after reading the instructions) and point it to a mail server with lots of emails. After clicking on your site a few times, you'll find that the webserver is not responding to your clicks anymore, but the mail client is still downloading and processing your mails. Also, the app will take up to 100% of your CPU, not sure why it does, and at this point you will just download Zoe, and get productive with that instead :) And since quotient is done by a twisted developer, doing it the twisted way, showing off the capabilities of twisted, it really shows that doing a webapp is hard with twisted. Stability? Well, I'm not sure which on is more stable. Is such an app, say an RSS collector, and/or a mail reader that runs once in a while, which later indexes everything, with a web front end, possible with WebWare? I should think so, though I'm not sure where to start. |
From: Aaron H. <aaron@MetroNY.com> - 2003-08-25 17:53:28
|
>Is such an app, say an RSS collector, and/or a mail reader that runs >once in a while, which later indexes everything, with a web front end, >possible with WebWare? I should think so, though I'm not sure where to >start. > > 1) Build app login directly python ie = make a class that knows how to retrieve RSS feeds 2) build an presist class that knows how to set and get settings for the RSS class 3) build a minimal servlet that calls the RSS class, builds a data list, object, dict and renders a template. 4) build an XML-RPC wrapper for #1 5) use task kit to run on a scheldule |
From: Aaron H. <aaron@MetroNY.com> - 2003-08-26 14:23:47
|
I have not seen Python crash the server, I have managed to wedge a thread and get Webware stuck though. Documentation and in-code docs do lack. Its starts up like a normal python app, and the logging settings are all in conf files. You really should develop your own application level log as well. Its pretty easy, just setup some logging function in SiteServlet that reads servlet attributes and writes an entry at "Sleep" I also do a lot of PHP development and I have two tricks for you: 1) Use Webware to write out a PHP include file for non-dynamic data, then just include that file. Your designers stick to PHP for looks and you can code webware for the 'heavy lifting' 2) Also keep PHP as a front-end and get the data via xml-rpc I do not recommend or like UserKit. Others do. Its pretty easy to setup user management though. There are no decent large open source applications in webware that you can look at. I have some app specific code that I share, but unless you are anaylzing and reporting on millions of lines of telecom logs its pretty useless other then as an example. I am active on the list, so I'll look for your Q's -Aaron Wari Wahab wrote: >On Sat, 2003-08-23 at 01:48, Aaron Held wrote: > > >>Its actually very easy and I have done it a bunch of times, if you >>scan the Webware email list you will see some examples posted. >> >> > >I've only one thing to say: > >Damn you! Aaron, you've sold me to webware!! :) > >I've been downloading, and reading webware materials (not enough of it >though), joined the mailing list, and will probably try to sell this to >my boss so that I can replace the annoying PHP version that we had >(unfortunately, that's not likely to happen though, based on the R&D >we've spent on PHP). Anything that's not PHP and can serve more than 10 >requests per second on a Cyrix 200Mhz is ok in my book :) > >It is one of the solutions that I see as a good compromise between, say, >twisted and PHP (yeah, my colleagues thinks PHP is the best thing since >sliced bread). On one hand, twisted will force you to think of building >non blocking scripts with their reactor, and woven is not something I'd >call straight forward. PHP is too straight forward, and since it's >script based, it is easy to think of your code as simple scripts that >runs from top to bottom. > >WebKit and PSP allows you to code like PHP, yet you could add more >thought to it and make (upgrade?) your scripts to live objects. I wished >that I have known Python and Webware 2+ yrs ago, and I won't be in this >mess I have right now, which is, bad code, workarounds, etc inherent in >PHP. > >There are downsides to Webware too, though, > > * it is one of the systems that killed my 200Mhz box, freezing it, no >clue why, not sure if it's webware, or python that freezes it. Running >on a screen session is ok though. I'll have to investigate this, and >goodbye to my almost 1 yr uptime :) > * it needs a better startup model like twisted does, that is, fork off, >detach from parent, produce a pid file, and logs should/may go to >somefile, depending on settings. > * tried to compile the documentation with epydoc (yeah I know it's not >meant for that) does not produce the relevant docs I need (not really an >issue, but epydoc is a nice doc tool IMO) > * Is UserKit usable yet? > >Anyway, looks like I need to do a simple presentation and a sample wiz >bang (but small) app to show how things work in a app server >environment. > >Expect more questions from me :) > > -- -Aaron http://www.MetroNY.com/ "I don't know what's wrong with my television set. I was getting C-Span and the Home Shopping Network on the same station. I actually bought a congressman." - Bruce Baum |
From: Wari W. <wa...@ho...> - 2003-08-26 03:55:50
|
On Tue, 2003-08-26 at 01:41, Aaron Held wrote: > I have not seen Python crash the server, I have managed to wedge a > thread and get Webware stuck though. What does a wedged thread mean? > Documentation and in-code docs do lack. This I agree, almost the same situation I got with my project too :) > Its starts up like a normal python app, and the logging settings are > all in conf files. You really should develop your own application > level log as well. Its pretty easy, just setup some logging function > in SiteServlet that reads servlet attributes and writes an entry at > "Sleep" Which I'd like to know, would logging to a csv file slow down webware when it gets big? I see that it is what webware does by default. > 2) Also keep PHP as a front-end and get the data via xml-rpc Is there anything wrong with making webware the frontend? The way I see it, the less context switching (programming languages differences for example) the developer has to do, the better it is. It's bad enough that we have to deal with, perl, PHP, bash, and a multitute of unix types of annoyances we have to deal with, like escaping, different output from different programs, and dealing with unfriendly outputs that in the end you have to coerce into something useful in PHP. I bet python could help me (and my developers) in that area, and WebWare could then be the appserver of choice. Then, the list of stuff will just be: python, bash, and a multitute of unix types of annoyances :) > There are no decent large open source applications in webware that you > can look at. I have some app specific code that I share, but unless > you are anaylzing and reporting on millions of lines of telecom logs > its pretty useless other then as an example. Well, I'm doing a personal project and was thinking of doing it in Twisted, now Webware makes me think otherwise. It fits my brain, so that I don't have to go thru hoops getting things done. And who knows, if it seems worthy of a public release, I'd do it :) |
From: Aaron H. <aaron@MetroNY.com> - 2003-08-26 14:20:10
|
>What does a wedged thread mean? > > Sorry, Its a slang term there developers here use. Basically it means a hung thread. I was able to write python code that spawned threads and the threads got stuck. (I wrongly assumed the user would be logged in when the thread finished) >>Its starts up like a normal python app, and the logging settings are >>all in conf files. You really should develop your own application >>level log as well. Its pretty easy, just setup some logging function >>in SiteServlet that reads servlet attributes and writes an entry at >>"Sleep" >> >> > >Which I'd like to know, would logging to a csv file slow down webware >when it gets big? I see that it is what webware does by default. > > We have disabled the cvs log and capture the console output directly. That log was up to 147 Meg last time I checked. (Webware does not have file rotation either.) I did run another log where I used the CVS log w/o any problems. That log was rotated and never got above about 40 meg. (Checkout how you can add your own class attirbs right in the config file) For logging it is an easy matter to rewrite the log using SQL. I use the console log as a developer tool and the SQL log as a site analysis tool. >>2) Also keep PHP as a front-end and get the data via xml-rpc >> >> > >Is there anything wrong with making webware the frontend? The way I see >it, the less context switching (programming languages differences for >example) the developer has to do, the better it is. It's bad enough that >we have to deal with, perl, PHP, bash, and a multitute of unix types of >annoyances we have to deal with, like escaping, different output from >different programs, and dealing with unfriendly outputs that in the end >you have to coerce into something useful in PHP. > > I use Webware exclusivly as a front end, but I have used it in the past to generate content for PHP based sites. I was using PostNuke for a community site and it was easier to write some code in webware and do a PHP include rather then write the login in PHP. >I bet python could help me (and my developers) in that area, and WebWare >could then be the appserver of choice. Then, the list of stuff will just >be: python, bash, and a multitute of unix types of annoyances :) > > Yes. And you can even run on Windows to add COM and ActiveX problems to your load. >Well, I'm doing a personal project and was thinking of doing it in >Twisted, now Webware makes me think otherwise. It fits my brain, so that >I don't have to go thru hoops getting things done. And who knows, if it >seems worthy of a public release, I'd do it :) > > What is the idea? There is a webware powered RSS reader @ http://memigo.com/about -Aaron Held |
From: Wari W. <wa...@ho...> - 2003-08-27 03:51:08
|
On Tue, 2003-08-26 at 22:20, Aaron Held wrote: > Sorry, Its a slang term there developers here use. Basically it means > a hung thread. I was able to write python code that spawned threads > and the threads got stuck. (I wrongly assumed the user would be > logged in when the thread finished) I've never run threads before, so I'm not sure of what its implications can be. I think I should dive into this subject further, once I get my gears running in WebWare mode :) > For logging it is an easy matter to rewrite the log using SQL. I use > the console log as a developer tool and the SQL log as a site analysis > tool. When using your own logging engine, do you change the appserver program, of hook it somewhere (configuration files?) > I use Webware exclusivly as a front end, but I have used it in the > past to generate content for PHP based sites. I was using PostNuke > for a community site and it was easier to write some code in webware > and do a PHP include rather then write the login in PHP. Ah, the nuke :) How come there's no python equivalent of it? There's a few in perl, and PHP. Anyway, gave up on postnuke a long time ago, it likes to eat up my mysql connections. > > Well, I'm doing a personal project and was thinking of doing it in > > Twisted, now Webware makes me think otherwise. It fits my brain, so that > > I don't have to go thru hoops getting things done. And who knows, if it > > seems worthy of a public release, I'd do it :) > What is the idea? Nothing that ground breaking that no one has done it before. I'm gonna do a Zoe and Quotient like thingy, only friendlier (personally :) and works with an open storage backend that I can use real servers on. It's really a personal thing, and if I managed to do something release-able, it probably wont have any users using it (yeah, that's what I actually thought of pyblosxom initially :) > There is a webware powered RSS reader @ http://memigo.com/about Yeah, it feels reasonably fast, and usable, I like it :) Anyway, memigo seems to serve only news sites, not blogs. Who knows if this could change (users submitting blog urls?) |
From: Aaron H. <aaron@MetroNY.com> - 2003-08-27 14:09:48
|
>I've never run threads before, so I'm not sure of what its implications >can be. I think I should dive into this subject further, once I get my >gears running in WebWare mode :) > > You do not need threads. Each webware servlet instance runs in its own thread so you do not have to worry about it. That is why you can safely use self.xxxx to manager information about that page request. In Java you would have to be careful to bind any page variables to the Request object. If you need threads you just implement them as regular Python threads, just keep in mind that the user and session may no longer exists at the end of the run, and the AppServer may want to shutdown in the middle of your run as well. >>For logging it is an easy matter to rewrite the log using SQL. I use >>the console log as a developer tool and the SQL log as a site analysis >>tool. >> >> > >When using your own logging engine, do you change the appserver program, >of hook it somewhere (configuration files?) > For non-debug logging I simply setup some instance properties that I am interested in and the at sleep I write them to a SQL table; class SitePage(Page): ...... def setUpLog(self,actionCode,actionDesc): self._actionCode = actionCode self._actionDesc = actionDesc def sleep(self,trans): if (self._user): username = self._user.name else: username = 'Anonymous' myLog.writeLog(username,self._actionCode,self._actionDesc) Page.sleep(self,trans) and then in my main classes I have something like: class news(SecurePage): .... def prepareContent(self) category = self.request().value('category','None') .... self.setupLog('news','viewing news page, filtered by Category::%s' % category) This type of log will not log an entry if there was an error though, for that you should use the standard logging module in the usual way. Just put convience functions in SitePage so you do not have to think about it. -Aaron |