Re: [AOLSERVER] Dossy's nsopenssl 3 beta testing
Dossy Shiobara wrote: .. Janine and others: do you have SSLv2 in the list of protocols configured in your server context for the nsopenssl module? yes If you do have SSLv2 in the protocols list and are still seeing the problem, then I don't know what's wrong. Once I set up the certificate and key .pem files so that nsopenssl could load them, and added SSLv2 to the list, and configure the maxinput parameter correctly, I haven't been able to reproduce the error. hem. I Didn't have maxinput and recvwait configured for the /ssldriver Now those have been added, aolserver4.0.7 nsopenssl3b21 boots without crashing (usually during load of nssock.so). However, instability still exists with CPU demand excessive and often leading to a crash. For example, on this VM on a Dual-Xeon 2.4Ghz 4Gig ram server running freebsd-4.10-stable with 2 nsd: aolserver3.4.2 using nsopenssl2.x production on port 80/443: circa 2% cpu aolserver4.0.7 using nsopenssl3b21 testonly on port 8000/8443: circa 95% cpu duey# ps -auxww | grep aolserver nobody 20804 91.8 1.8 91288 75020 ?? RsJ 4:35AM 23:09.00 /usr/local/aolserver4.0.7/bin/nsd8x -t /var/lib/aolserver/service1/etc/config4.tcl -u nobody -g nobody -b w.x.y.z:8000,w.x.y.z:8443 (nsd) nobody 27056 0.4 6.0 255840 249272 ?? SsJ Tue06AM 67:45.57 /usr/local/aolserver3.4.2/bin/nsd8x -t /var/lib/aolserver/service1/etc/config.tcl -u nobody -g nobody duey# grep 'GET /' service1-4.0.7-error.log | wc -l 69 That's about 18 mainly ssl page requests in 20 min Some of the CPU is probably from having $debug true. Here's a repeat with $debug set false: Ha! It crashed on startup without error msg. Last line in error.log: [13/Aug/2004:05:34:46][26008.134533120][-main-] Notice: Loading packages/acs-tcl/tcl/utilities-init.tcl... Trying 1 more time.. listening on ports, no page requests yet on 4.0.7: duey# ps -auxww | grep aol nobody 35052 0.0 6.0 255840 249272 ?? SsJ Tue06AM 68:25.46 /usr/local/aolserver3.4.2/bin/nsd8x -t /var/lib/aolserver/service1/etc/config.tcl -u nobody -g nobody nobody 65412 0.0 0.7 37064 28948 ?? SsJ 5:58AM 1:46.86 /usr/local/aolserver4.0.7/bin/nsd8x -t /var/lib/aolserver/service1/etc/config4.tcl -u nobody -g nobody -b w.x.y.z:8000,w.x.y.z:8443 (nsd) a few mins and http+https page requests later: duey# ps -auxww | grep aol nobody 35052 0.0 6.0 255840 249300 ?? SsJ Tue06AM 68:38.59 /usr/local/aolserver3.4.2/bin/nsd8x -t /var/lib/aolserver/service1/etc/config.tcl -u nobody -g nobody nobody 65412 0.0 1.5 73888 60096 ?? SsJ 5:58AM 1:50.19 /usr/local/aolserver4.0.7/bin/nsd8x -t /var/lib/aolserver/service1/etc/config4.tcl -u nobody -g nobody -b w.x.y.z:8000,w.x.y.z:8443 (nsd) It is staying within optimal limits. I will try it on the LAN for awhile. Thanks, Dossy. -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to [EMAIL PROTECTED] with the body of SIGNOFF AOLSERVER in the email message. You can leave the Subject: field of your email blank.
Re: [AOLSERVER] ADP/Javascript issue
Did my test code work for you and if so what difference is there between your code and my test? Have you confirmed that your value is actually loaded into the form data before you post? Steve On Fri, 2004-08-13 at 01:20, Nishant Asthana wrote: Steve, I know the difference between GET and POST. My actual problem is that POST is not posting form to the server, so I am unable to extract hidden fields from the request. Because of limitations on URL length, I dont want to implement it using GET, but POST is not working. GET works fine, I have no clue were is my code going wrong (or is it adp that is the problem ?) A form submission with JS submit() function should submit user data to the server, which I can get either by ns_queryget or by ns_getform, but my problem is, if I use POST, I get null value for the query string using both methods :-(( Steve wrote on 8/12/2004, 3:20 PM: There is a fundamental difference between GET and POST in that the former encodes your data into the URL whilst the latter incorporates the data into the message and posts it. If your submitting a lot of data then you could run into problems of url length with GET. The following self-posting test page work for me with the method set to post or get: test1.adp html head titletest1/title script language=_javascript_ type=text/_javascript_ function saveSelected(inMethod) { document.forms.theForm.rid.value = TESTING TESTING 123; document.forms.theForm.action=""> document.forms.theForm.method=inMethod; document.forms.theForm.submit(); } /script /head body form name=theForm input type=hidden name=rid value= /form a href="">_javascript_:saveSelected('post');Post/anbsp; a href="">_javascript_:saveSelected('get');Get/a hr % set form_data [ns_getform] if ![string equal $form_data {}] { set rid [ns_set get $form_data rid] } % Method: %=[ns_conn method]%br Query: %=[ns_conn query]%br RID Value: [%=$rid%]br /body /html Hope that helps. Steve On Thu, 2004-08-12 at 19:09, Nishant Asthana wrote: Hi, I thought I would send my problem on this list and see if someone can help me out. I am working on Address Book on the Web (webmail.aol.com), and it has a UI where you can select addresses to send mail to. Its a paged UI in the sense that addresses are grouped into alpha buckets, ABC, DEF etc. So if you click on ABC bucket, you see addresses whose last names begin with A or B or C. User can select addresses on one page and can then go to another bucket and select addresses there, then can go back to previous page, select/deselect address, or go to other page etc. What we need to do is to save all user's selections till he clicks on send mail button. ADP page has an HTML form with POST and hidden fields. I use a hidden fld to pass list of selected records to other buckets. I am using the following code in the page for links to alphabets (main.adp) ns_adp_puts ahref=\\>_javascript_:saveSelectedAndSubmitForm();return false;\ABC/anbsp\; The _javascript_ method saveSelectedAndSubmitForm() iterates over selected checkboxes and adds it to the hidden variable, and finally calls document.submit() In the adp file, I try to get the value of hidden form field and here is what happens. When I use GET, I am able to see that hidden form fld, however, when I use POST, it seems no form data is submitted to the server. Here is the sample code (main.adp) % set theformdata [ns_getform] set rid if {$theformdata != } { set rididx [ns_set find $theformdata rid] if {$rididx != -1} { set rid [ns_set value $theformdata $rididx] } } % form input type=hidden name=rid value=%=$rid% /form $theformdata is null when POST is used. Is there a difference between the way data is posted with GET and POST ? I think not, but then how can one explain such behavior. I think I am using the correct JS code. Heres a snapshot. function saveSelected..() { document.forms.theForm.rid.value = prevList; // rid is the hidden form fld. prevList is the value assigned to this fld document.forms.theForm.action=""> document.forms.theForm.submit(); } -- Software Engineer America Online Inc
Re: [AOLSERVER] AOLSERVER Digest - 10 Aug 2004 to 11 Aug 2004 (#2004-171)
IRA said: It's just this sort of problem that makes me wonder if the people building aolserver ever actually USE aolserver to build web applications. It seems like not that big of a deal . . . until you realize that we do this ALL THE TIME. I could get as nasty and you and wonder why you are writing AOLserver apps when you don't actualy know Tcl. ns_puts a href=\$link\link/a Can be written without the quotes simply by doing this: ns_puts [subst {a href=$linklink/a}];# No escapes required! Secondly: % if ($condition) { % This html % } else { % This other html % } % Makes for the most hideous, unreadable and unmaintainable code ever concieved and should be avoided at all cost if you have any interest in writing quality code. Tcl is called a procedural language, best to use it that way and create loads of nice little procedure to create html. Surely, set table_list [list 1 [link http://aol.com AOL]] lappend table_list 2 [link http://genie.com Genie] lappend table_list 3 [link http://msn.com MSN] ns_puts [create_table -cols 2 -style linktable $table_list] is a lot more elegant and maintainable than writing all the tags yourself? (let alone using ASP style tags) Just my $0.02... Bas. -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to [EMAIL PROTECTED] with the body of SIGNOFF AOLSERVER in the email message. You can leave the Subject: field of your email blank.
Re: [AOLSERVER] Dossy's nsopenssl 3 beta testing
On Thu, 2004-08-12 at 22:20, Dossy Shiobara wrote: Janine and others: do you have SSLv2 in the list of protocols configured in your server context for the nsopenssl module? Yes ns_param Protocols SSLv2, SSLv3, TLSv1 ns_param CipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP If you do have SSLv2 in the protocols list and are still seeing the problem, then I don't know what's wrong. Oh dear :-( Once I set up the certificate and key .pem files so that nsopenssl could load them, and added SSLv2 to the list, and configure the maxinput parameter correctly, I haven't been able to reproduce the error. I believe the default without maxinput set is 1024k which should be fine on this server as its just running eCommerce so doesn't upload anything approaching this limit. I'm just wondering if not having maxinput explicitly set is having any detrimental effect? Steve -- Steve Manning [EMAIL PROTECTED] -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to [EMAIL PROTECTED] with the body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: field of your email blank.
Re: [AOLSERVER] AOLSERVER Digest - 10 Aug 2004 to 11 Aug 2004 (#2004-171)
Comments below: Bas Scheffers wrote on 8/13/2004, 3:45 AM: IRA said: It's just this sort of problem that makes me wonder if the people building aolserver ever actually USE aolserver to build web applications. It seems like not that big of a deal . . . until you realize that we do this ALL THE TIME. I could get as nasty and you and wonder why you are writing AOLserver apps when you don't actualy know Tcl. People get grumpy when something is a continuous hassle to them. I'd rather work with the assumption that it was grumpy humour, rather than nastiness. :) ns_puts a href=\$link\link/a Can be written without the quotes simply by doing this: ns_puts [subst {a href=$linklink/a}];# No escapes required! True, but subst does still require an amount of escaping in various situations. For example: # Lets output some financial data # We need to escape the $ for the monetary units ns_puts [subst { tr tda ref=link[set $i]Item $i/a/td td\$$amount($i)/td /tr } # We need to escape the [ and ] for negative amounts ns_puts [subst { tr tda ref=link[set $i]Item $i/a/td td\$\[$amount($i)\]\$/td /tr } # {} need to be escaped too, if they come up So, its not as simple as not needing to escape things. There's just less to escape. Secondly: % if ($condition) { % This html % } else { % This other html % } % Makes for the most hideous, unreadable and unmaintainable code ever concieved and should be avoided at all cost if you have any interest in writing quality code. For that type of output, yes its not the best choice. However, there are situations where doing it inside an ns_adp_puts is the more hideous of the choices. For example: table % foreach row $rows { foreach { item1 item2 item3 item4 item5 item6 item7 } $row {break} ### Output a lot of html for each row of data % tr !-- 30 lines of html here that output the items -- and the form elements involved with them -- /tr % ### Done with row } % /table Tcl is called a procedural language, best to use it that way and create loads of nice little procedure to create html. Surely, set table_list [list 1 [link http://aol.com AOL]] lappend table_list 2 [link http://genie.com Genie] lappend table_list 3 [link http://msn.com MSN] ns_puts [create_table -cols 2 -style linktable $table_list] is a lot more elegant and maintainable than writing all the tags yourself? (let alone using ASP style tags) Very much so, at least for links. Do we actually have a nice, robust library of procedures that can produce complex html with a simple syntax? If so, thats great and I'd be happy to hear about it. If not, then every single person who uses the server to create pages making their own helper procs is just a source of server bloat. Even with a good library, there are still some things that are better written in plain html. Its all about making the resulting page easily readable and maintainable, in my opinion. Rob Seeger -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to [EMAIL PROTECTED] with the body of SIGNOFF AOLSERVER in the email message. You can leave the Subject: field of your email blank.
Re: [AOLSERVER] AOLSERVER Digest - 10 Aug 2004 to 11 Aug 2004 (#2004-171)
On Fri, 2004-08-13 at 14:40, Robert Seeger wrote: % if ($condition) { % This html % } else { % This other html % } % I like the OpenACS way of having a contract between a tcl page and an adp page where the procedural stuff lives in the tcl page and values are passed across to the adp as variables. Where control is required in the adp, OACS uses custom tags like if and multiple which keeps the pages readable. -- Steve Manning [EMAIL PROTECTED] -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to [EMAIL PROTECTED] with the body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: field of your email blank.
Re: [AOLSERVER] AOLSERVER Digest - 10 Aug 2004 to 11 Aug 2004 (#2004-171)
I think everyone would benefit if AOLserver includes some kind templating solution without installing whole OpenACS system. Strip down templating with several usefull tags like if include multirow list and etc would put AOLServer on the same level as PHP/Perl with Apache systems regarding templating. I can provide small version of my templating system which is kind of similar to OpenACS, it can work without any external dependencies. No documentation but good examples will be a good start. Robert Seeger wrote: Comments below: Bas Scheffers wrote on 8/13/2004, 3:45 AM: IRA said: It's just this sort of problem that makes me wonder if the people building aolserver ever actually USE aolserver to build web applications. It seems like not that big of a deal . . . until you realize that we do this ALL THE TIME. I could get as nasty and you and wonder why you are writing AOLserver apps when you don't actualy know Tcl. People get grumpy when something is a continuous hassle to them. I'd rather work with the assumption that it was grumpy humour, rather than nastiness. :) ns_puts a href=\$link\link/a Can be written without the quotes simply by doing this: ns_puts [subst {a href=$linklink/a}];# No escapes required! True, but subst does still require an amount of escaping in various situations. For example: # Lets output some financial data # We need to escape the $ for the monetary units ns_puts [subst { tr tda ref=link[set $i]Item $i/a/td td\$$amount($i)/td /tr } # We need to escape the [ and ] for negative amounts ns_puts [subst { tr tda ref=link[set $i]Item $i/a/td td\$\[$amount($i)\]\$/td /tr } # {} need to be escaped too, if they come up So, its not as simple as not needing to escape things. There's just less to escape. Secondly: % if ($condition) { % This html % } else { % This other html % } % Makes for the most hideous, unreadable and unmaintainable code ever concieved and should be avoided at all cost if you have any interest in writing quality code. For that type of output, yes its not the best choice. However, there are situations where doing it inside an ns_adp_puts is the more hideous of the choices. For example: table % foreach row $rows { foreach { item1 item2 item3 item4 item5 item6 item7 } $row {break} ### Output a lot of html for each row of data % tr !-- 30 lines of html here that output the items -- and the form elements involved with them -- /tr % ### Done with row } % /table Tcl is called a procedural language, best to use it that way and create loads of nice little procedure to create html. Surely, set table_list [list 1 [link http://aol.com AOL]] lappend table_list 2 [link http://genie.com Genie] lappend table_list 3 [link http://msn.com MSN] ns_puts [create_table -cols 2 -style linktable $table_list] is a lot more elegant and maintainable than writing all the tags yourself? (let alone using ASP style tags) Very much so, at least for links. Do we actually have a nice, robust library of procedures that can produce complex html with a simple syntax? If so, thats great and I'd be happy to hear about it. If not, then every single person who uses the server to create pages making their own helper procs is just a source of server bloat. Even with a good library, there are still some things that are better written in plain html. Its all about making the resulting page easily readable and maintainable, in my opinion. Rob Seeger -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to [EMAIL PROTECTED] with the body of SIGNOFF AOLSERVER in the email message. You can leave the Subject: field of your email blank. -- Vlad Seryakov 703 488-2173 office [EMAIL PROTECTED] http://www.crystalballinc.com/vlad/ -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to [EMAIL PROTECTED] with the body of SIGNOFF AOLSERVER in the email message. You can leave the Subject: field of your email blank.
Re: [AOLSERVER] AOLSERVER Digest - 10 Aug 2004 to 11 Aug 2004 (#2004-171)
On 2004.08.13, Robert Seeger [EMAIL PROTECTED] wrote: # Lets output some financial data # We need to escape the $ for the monetary units ns_puts [subst { tr tda ref=link[set $i]Item $i/a/td td\$$amount($i)/td /tr } Compare that to: % tr tda ref=link%= [set $i] %Item %= $i %/a/td td$%= $amount($i) %/td /tr % There's a LOT more escaping going on in the ASP-style version -- %= and % are used instead of just one \ ... For that type of output, yes its not the best choice. However, there are situations where doing it inside an ns_adp_puts is the more hideous of the choices. For example: table % foreach row $rows { foreach { item1 item2 item3 item4 item5 item6 item7 } $row {break} ### Output a lot of html for each row of data % tr !-- 30 lines of html here that output the items -- and the form elements involved with them -- /tr % ### Done with row } % /table I fail to see why the following is more hideous than your version above: table % foreach row $rows { foreach { item1 item2 item3 item4 item5 item6 item7 } $row {break} ### Output a lot of html for each row of data ns_adp_puts [subst { tr !-- 30 lines of html here that output the items -- and the form elements involved with them -- /tr }] ### Done with row } % /table Instead of % and %, my version uses ns_adp_puts [subst { and }]. The difference is, the actual 30 lines of HTML that would be where the HTML comment is in your version will have much more escaping using %= and % than in mine where I only need to escape $ and [ and only IF they actually appear in the HTML. In your version, every single time you want to interpolate some Tcl chunk, you'll need to escape it with %= and %. Regardless, there's too many folks out there who cut their teeth on web scripting on VBScript and ASP to not at least support this style, but the less ASP-style ADP code that's out there, the better. Just because it's a popular doesn't mean it's better, and most people just think it's better because that's what they learned first. It's just resistance to change ... Unless, people really want to debate that Microsoft's known for inventing things that really ARE best practices ... as opposed to just creating a lot of inertia. I mean, all of those enhancements to the HTTP protocol and JavaScript and CSS that are in MSIE that aren't supported by other browsers ... everyone should do it that way, the pages just LOOK better with those extra features ... -- Dossy -- Dossy Shiobara mail: [EMAIL PROTECTED] Panoptic Computer Network web: http://www.panoptic.com/ He realized the fastest way to change is to laugh at your own folly -- then you can let go and quickly move on. (p. 70) -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to [EMAIL PROTECTED] with the body of SIGNOFF AOLSERVER in the email message. You can leave the Subject: field of your email blank.
Re: [AOLSERVER] AOLSERVER Digest - 10 Aug 2004 to 11 Aug 2004 (#2004-171)
On 2004.08.13, Vlad Seryakov [EMAIL PROTECTED] wrote: I think everyone would benefit if AOLserver includes some kind templating solution without installing whole OpenACS system. Strip down templating with several usefull tags like if include multirow list and etc would put AOLServer on the same level as PHP/Perl with Apache systems regarding templating. I can provide small version of my templating system which is kind of similar to OpenACS, it can work without any external dependencies. No documentation but good examples will be a good start. I think just an off-the-shelf taglib via ns_adp_registertag would be great, like you suggest. Can we come up with a list of tags and what they should do, then we can discuss the pro's and con's of the behaviors, then once we're agreed on a sane set of tags, folks can implement them. -- Dossy -- Dossy Shiobara mail: [EMAIL PROTECTED] Panoptic Computer Network web: http://www.panoptic.com/ He realized the fastest way to change is to laugh at your own folly -- then you can let go and quickly move on. (p. 70) -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to [EMAIL PROTECTED] with the body of SIGNOFF AOLSERVER in the email message. You can leave the Subject: field of your email blank.
Re: [AOLSERVER] AOLSERVER Digest - 10 Aug 2004 to 11 Aug 2004 (#2004-171)
http://www.tcl.tk/man/tcl8.4/TclCmd/subst.htm The Tcl subst command takes a few optional args that should make things a little easier for you: subst ?-nobackslashes? ?-nocommands? ?-novariables? string This will save you form having to escape $ and [ ] sequences. You can also make things a little easier on yourself here: Before: tda ref=link[set $i]Item $i/a/td After: tda ref=link$iItem $i/a/td Better still, start using single quotes instead of double quotes for your HTML and JavaScript where possible: a href='foo' height='1' width='1'/a As you can see, there are many options. [EMAIL PROTECTED] wrote: Comments below: Bas Scheffers wrote on 8/13/2004, 3:45 AM: IRA said: It's just this sort of problem that makes me wonder if the people building aolserver ever actually USE aolserver to build web applications. It seems like not that big of a deal . . . until you realize that we do this ALL THE TIME. I could get as nasty and you and wonder why you are writing AOLserver apps when you don't actualy know Tcl. People get grumpy when something is a continuous hassle to them. I'd rather work with the assumption that it was grumpy humour, rather than nastiness. :) ns_puts a href=\$link\link/a Can be written without the quotes simply by doing this: ns_puts [subst {a href=$linklink/a}];# No escapes required! True, but subst does still require an amount of escaping in various situations. For example: # Lets output some financial data # We need to escape the $ for the monetary units ns_puts [subst { tr tda ref=link[set $i]Item $i/a/td td\$$amount($i)/td /tr } # We need to escape the [ and ] for negative amounts ns_puts [subst { tr tda ref=link[set $i]Item $i/a/td td\$\[$amount($i)\]\$/td /tr } # {} need to be escaped too, if they come up So, its not as simple as not needing to escape things. There's just less to escape. Secondly: % if ($condition) { % This html % } else { % This other html % } % Makes for the most hideous, unreadable and unmaintainable code ever concieved and should be avoided at all cost if you have any interest in writing quality code. For that type of output, yes its not the best choice. However, there are situations where doing it inside an ns_adp_puts is the more hideous of the choices. For example: table % foreach row $rows { foreach { item1 item2 item3 item4 item5 item6 item7 } $row {break} ### Output a lot of html for each row of data % tr !-- 30 lines of html here that output the items -- and the form elements involved with them -- /tr % ### Done with row } % /table Tcl is called a procedural language, best to use it that way and create loads of nice little procedure to create html. Surely, set table_list [list 1 [link http://aol.com AOL]] lappend table_list 2 [link http://genie.com Genie] lappend table_list 3 [link http://msn.com MSN] ns_puts [create_table -cols 2 -style linktable $table_list] is a lot more elegant and maintainable than writing all the tags yourself? (let alone using ASP style tags) Very much so, at least for links. Do we actually have a nice, robust library of procedures that can produce complex html with a simple syntax? If so, thats great and I'd be happy to hear about it. If not, then every single person who uses the server to create pages making their own helper procs is just a source of server bloat. Even with a good library, there are still some things that are better written in plain html. Its all about making the resulting page easily readable and maintainable, in my opinion. Rob Seeger -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to [EMAIL PROTECTED] with the body of SIGNOFF AOLSERVER in the email message. You can leave the Subject: field of your email blank. -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to [EMAIL PROTECTED] with the body of SIGNOFF AOLSERVER in the email message. You can leave the Subject: field of your email blank.
Re: [AOLSERVER] AOLSERVER Digest - 10 Aug 2004 to 11 Aug 2004 (#2004-171)
The two code snippets you show aren't the same. Admittedly though, my code was supposed to be: tda ref=[set link$i]Item $i/a/td Rob Seeger Before: tda ref=link[set $i]Item $i/a/td After: tda ref=link$iItem $i/a/td -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to [EMAIL PROTECTED] with the body of SIGNOFF AOLSERVER in the email message. You can leave the Subject: field of your email blank.
Re: [AOLSERVER] AOLSERVER Digest - 10 Aug 2004 to 11 Aug 2004 (#2004-171)
I disagree with your opinion on whats more readable and what looks better. Admittedly, its a matter of personal choice... but it so happens thatthe choice I prefer isn't currently available. I, and others, would like it to be. Rob Seeger Dossy Shiobara wrote on 8/13/2004, 10:23 AM: On 2004.08.13, Robert Seeger [EMAIL PROTECTED] wrote: # Lets output some financial data # We need to escape the $ for the monetary units ns_puts [subst { tr tda ref=link[set $i]Item $i/a/td td\$$amount($i)/td /tr } Compare that to: % tr tda ref=link%= [set $i] %Item %= $i %/a/td td$%= $amount($i) %/td /tr % There's a LOT more escaping going on in the ASP-style version -- %= and % are used instead of just one \ ... For that type of output, yes its not the best choice. However, there are situations where doing it inside an ns_adp_puts is the more hideous of the choices. For example: table % foreach row $rows { foreach { item1 item2 item3 item4 item5 item6 item7 } $row {break} ### Output a lot of html for each row of data % tr !-- 30 lines of html here that output the items -- and the form elements involved with them -- /tr % ### Done with row } % /table I fail to see why the following is more hideous than your version above: table % foreach row $rows { foreach { item1 item2 item3 item4 item5 item6 item7 } $row {break} ### Output a lot of html for each row of data ns_adp_puts [subst { tr !-- 30 lines of html here that output the items -- and the form elements involved with them -- /tr }] ### Done with row } % /table Instead of % and %, my version uses ns_adp_puts [subst { and }]. The difference is, the actual 30 lines of HTML that would be where the HTML comment is in your version will have much more escaping using %= and % than in mine where I only need to escape $ and [ and only IF they actually appear in the HTML. In your version, every single time you want to interpolate some Tcl chunk, you'll need to escape it with %= and %. Regardless, there's too many folks out there who cut their teeth on web scripting on VBScript and ASP to not at least support this style, but the less ASP-style ADP code that's out there, the better. Just because it's a popular doesn't mean it's better, and most people just think it's better because that's what they learned first. It's just resistance to change ... Unless, people really want to debate that Microsoft's known for inventing things that really ARE best practices ... as opposed to just creating a lot of inertia. I mean, all of those enhancements to the HTTP protocol and JavaScript and CSS that are in MSIE that aren't supported by other browsers ... everyone should do it that way, the pages just LOOK better with those extra features ... -- Dossy -- Dossy Shiobara mail: [EMAIL PROTECTED] Panoptic Computer Network web: http://www.panoptic.com/ He realized the fastest way to change is to laugh at your own folly -- then you can let go and quickly move on. (p. 70) -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to [EMAIL PROTECTED] with the body of SIGNOFF AOLSERVER in the email message. You can leave the Subject: field of your email blank. -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to [EMAIL PROTECTED] with the body of SIGNOFF AOLSERVER in the email message. You can leave the Subject: field of your email blank.
Re: [AOLSERVER] AOLSERVER Digest - 10 Aug 2004 to 11 Aug 2004 (#2004-171)
Here is the list of general purpose tags that do not need additional Tcl procs/packages: master slave include list return continue exit if else All db related tags (multirow,multipage,group) are very usefull but they will need db procs to be included as well. Dossy Shiobara wrote: On 2004.08.13, Vlad Seryakov [EMAIL PROTECTED] wrote: I think everyone would benefit if AOLserver includes some kind templating solution without installing whole OpenACS system. Strip down templating with several usefull tags like if include multirow list and etc would put AOLServer on the same level as PHP/Perl with Apache systems regarding templating. I can provide small version of my templating system which is kind of similar to OpenACS, it can work without any external dependencies. No documentation but good examples will be a good start. I think just an off-the-shelf taglib via ns_adp_registertag would be great, like you suggest. Can we come up with a list of tags and what they should do, then we can discuss the pro's and con's of the behaviors, then once we're agreed on a sane set of tags, folks can implement them. -- Dossy -- Dossy Shiobara mail: [EMAIL PROTECTED] Panoptic Computer Network web: http://www.panoptic.com/ He realized the fastest way to change is to laugh at your own folly -- then you can let go and quickly move on. (p. 70) -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to [EMAIL PROTECTED] with the body of SIGNOFF AOLSERVER in the email message. You can leave the Subject: field of your email blank. -- Vlad Seryakov 703 488-2173 office [EMAIL PROTECTED] http://www.crystalballinc.com/vlad/ -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to [EMAIL PROTECTED] with the body of SIGNOFF AOLSERVER in the email message. You can leave the Subject: field of your email blank.
Re: [AOLSERVER] AOLSERVER Digest - 10 Aug 2004 to 11 Aug 2004 (#2004-171)
On 2004.08.13, Nathan Folkman [EMAIL PROTECTED] wrote: Before: tda ref=link[set $i]Item $i/a/td After: tda ref=link$iItem $i/a/td These do not do the same thing, but I also think Rob's example is incorrect. What I *think* he meant to do was: set i 1 set link1 /page.adp ns_adp_puts [subst {tda ref=[set link$i]Item $i/a/td}] # outputs: tda ref=/page.adpItem 0/a/td}] as opposed to: ns_adp_puts [subst {tda ref=link$iItem $i/a/td}] # outputs: tda ref=link1Item 1/a/td -- Dossy -- Dossy Shiobara mail: [EMAIL PROTECTED] Panoptic Computer Network web: http://www.panoptic.com/ He realized the fastest way to change is to laugh at your own folly -- then you can let go and quickly move on. (p. 70) -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to [EMAIL PROTECTED] with the body of SIGNOFF AOLSERVER in the email message. You can leave the Subject: field of your email blank.
Re: [AOLSERVER] AOLSERVER Digest - 10 Aug 2004 to 11 Aug 2004 (#2004-171)
On Fri, 2004-08-13 at 15:32, Dossy Shiobara wrote: I think just an off-the-shelf taglib via ns_adp_registertag would be great, like you suggest. Can we come up with a list of tags and what they should do, then we can discuss the pro's and con's of the behaviors, then once we're agreed on a sane set of tags, folks can implement them. -- Dossy Dossy As well as the tags what about OACS style pairing of the adp with a tcl page to do the processing and prepare the output. I like the demarkation especially if your processing a query or validating form data - the tcl page does the work and the adp displays the results. Steve -- Steve Manning [EMAIL PROTECTED] -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to [EMAIL PROTECTED] with the body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: field of your email blank.
Re: [AOLSERVER] AOLSERVER Digest - 10 Aug 2004 to 11 Aug 2004 (#2004-171)
On 2004.08.13, Steve Manning [EMAIL PROTECTED] wrote: As well as the tags what about OACS style pairing of the adp with a tcl page to do the processing and prepare the output. I like the demarkation especially if your processing a query or validating form data - the tcl page does the work and the adp displays the results. Too cumbersome. Just write Tcl procs and have them loaded into the server, and just call them from your ADPs. We're talking web applications here that consist of a collection of web pages. That's so simple, why overcomplicate things with a whole templating system? If folks want to punish themselves by requiring an ADP and Tcl page, that's fine. I certainly wouldn't encourage that behavior ... unless someone can give me a real example with code why it's actually superior, as opposed to the way ACS has always done it. -- Dossy -- Dossy Shiobara mail: [EMAIL PROTECTED] Panoptic Computer Network web: http://www.panoptic.com/ He realized the fastest way to change is to laugh at your own folly -- then you can let go and quickly move on. (p. 70) -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to [EMAIL PROTECTED] with the body of SIGNOFF AOLSERVER in the email message. You can leave the Subject: field of your email blank.
Re: [AOLSERVER] AOLSERVER Digest - 10 Aug 2004 to 11 Aug 2004 (#2004-171)
Personally, I agree. I really think it would be over complicating things. I am not sure why OpenACS was so gungho (sp?) about the templating system, in the first place. BUT, that's just my opinion. I am sure there are people that want this behavior...but, most likely it is something that can just be added as an extension anyways...no reason to put it in the core...correct? --- Dossy Shiobara [EMAIL PROTECTED] wrote: On 2004.08.13, Steve Manning [EMAIL PROTECTED] wrote: As well as the tags what about OACS style pairing of the adp with a tcl page to do the processing and prepare the output. I like the demarkation especially if your processing a query or validating form data - the tcl page does the work and the adp displays the results. Too cumbersome. Just write Tcl procs and have them loaded into the server, and just call them from your ADPs. We're talking web applications here that consist of a collection of web pages. That's so simple, why overcomplicate things with a whole templating system? If folks want to punish themselves by requiring an ADP and Tcl page, that's fine. I certainly wouldn't encourage that behavior ... unless someone can give me a real example with code why it's actually superior, as opposed to the way ACS has always done it. -- Dossy -- Dossy Shiobara mail: [EMAIL PROTECTED] Panoptic Computer Network web: http://www.panoptic.com/ He realized the fastest way to change is to laugh at your own folly -- then you can let go and quickly move on. (p. 70) -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to [EMAIL PROTECTED] with the body of SIGNOFF AOLSERVER in the email message. You can leave the Subject: field of your email blank. -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to [EMAIL PROTECTED] with the body of SIGNOFF AOLSERVER in the email message. You can leave the Subject: field of your email blank.
Re: [AOLSERVER] AOLSERVER Digest - 10 Aug 2004 to 11 Aug 2004 (#2004-171)
On Friday 13 August 2004 09:22 am, Dossy Shiobara wrote: We're talking web applications here that consist of a collection of web pages. That's so simple, why overcomplicate things with a whole templating system? If folks want to punish themselves by requiring an ADP and Tcl page, that's fine. I certainly wouldn't encourage that behavior ... unless someone can give me a real example with code why it's actually superior, as opposed to the way ACS has always done it. You've got it backwards, that's NOT the way ACS has always done it. Previous versions of the ACS intermingled logic and presentation. Experience working with client non-programmer designers that led ArsDigita to decide to write a templating system that allows for the separation of logic and presentation. We're not the only people in the world who see value in this. You write all your web pages by hand. Fine. When I want to change the look and feel of every form in an OpenACS site, to meet the design criteria of a client, I change one file and the templating system takes care of the rest. It's a bit less work than visiting every .adp page in the system looking for form tags... -- Don Baccus Portland, OR http://donb.furfly.net, http://birdnotes.net, http://openacs.org -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to [EMAIL PROTECTED] with the body of SIGNOFF AOLSERVER in the email message. You can leave the Subject: field of your email blank.
Re: [AOLSERVER] AOLSERVER Digest - 10 Aug 2004 to 11 Aug 2004 (#2004-171)
On 2004.08.13, Don Baccus [EMAIL PROTECTED] wrote: You write all your web pages by hand. Fine. When I want to change the look and feel of every form in an OpenACS site, to meet the design criteria of a client, I change one file and the templating system takes care of the rest. In my world, you would just change one file named something like site-style.tcl that just defines procs which return HTML chunks that are used to build the overall site presentation. What I thought was being said was some pairing of .adp and .tcl meaning for each page there would be an .adp file AND a .tcl file that gets sourced when the .adp is requested -- yikes. If you're saying have procs defined in your server's tcl lib dir that get loaded at start-up and then call those procs from ADP pages, yes, that's *definitely* the way to go. -- Dossy -- Dossy Shiobara mail: [EMAIL PROTECTED] Panoptic Computer Network web: http://www.panoptic.com/ He realized the fastest way to change is to laugh at your own folly -- then you can let go and quickly move on. (p. 70) -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to [EMAIL PROTECTED] with the body of SIGNOFF AOLSERVER in the email message. You can leave the Subject: field of your email blank.
Re: [AOLSERVER] AOLSERVER Digest - 10 Aug 2004 to 11 Aug 2004 (#2004-171)
On Fri, Aug 13, 2004 at 01:10:43PM -0400, Dossy Shiobara wrote: was being said was some pairing of .adp and .tcl meaning for each page there would be an .adp file AND a .tcl file that gets sourced when the .adp is requested -- yikes. You may or may not prefer it, but there's no yikes about it, it works quite well, and efficiently too. In AOLserver, Tcl code can be defined in a .tcl page, or it can be defined in a server-wide Tcl proc. These two locations for defining Tcl code aren't exactly all that different from each other. In the case of the OpenACS Templating System (and in all versions of ACS back to somewhere around ACS 3.4 or so), the .tcl pages are in fact compiled to Tcl procs and cached on first use, which eliminates any performance difference between the two places Tcl code can live. It would be nice if some of the really handy page-oriented OpenACS procs, like ad_page_contract, ALSO worked the same way for procedures. It would also be nice if the Templating System implemenation could be cleaned up a bit and made easier to hack on. These are, however, quite minor complaints, and never bothered me much back when I was using the Templating System on a regular basis. Also, some of them have even been partially addressed already, e.g.: http://openacs.org/forums/message-view?message_id=197740 -- Andrew Piskorski [EMAIL PROTECTED] http://www.piskorski.com/ -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to [EMAIL PROTECTED] with the body of SIGNOFF AOLSERVER in the email message. You can leave the Subject: field of your email blank.
Re: [AOLSERVER] AOLSERVER Digest - 10 Aug 2004 to 11 Aug 2004 (#2004-171)
On Fri, Aug 13, 2004 at 10:12:20AM -0400, Vlad Seryakov wrote: I think everyone would benefit if AOLserver includes some kind templating solution without installing whole OpenACS system. It should be feasible to refactor the OpenACS Templating System to work equally well both with and without the rest of OpenACS, as AFAIK, no part of the Templating System depends on the OpenACS data model in any way. The work is non-trivial though, as it probably also means at least some amount of refactoring the OpenACS request processor, etc. Some people have already expressed some in that sort of refactoring for the acs-tcl package in the thread below, so extending that to acs-templating as well might be a natural next step: http://openacs.org/forums/message-view?message_id=195578 -- Andrew Piskorski [EMAIL PROTECTED] http://www.piskorski.com/ -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to [EMAIL PROTECTED] with the body of SIGNOFF AOLSERVER in the email message. You can leave the Subject: field of your email blank.
Re: [AOLSERVER] AOLSERVER Digest - 10 Aug 2004 to 11 Aug 2004 (#2004-171)
On Thu, Aug 12, 2004 at 04:36:20PM -0400, Andrew Piskorski wrote: I don't even know what they call it, but I've long heard that the AOL guys (the Digital City team?) have their own internally developed toolkit to do more or less the same sort of stuff as OpenACS. Don't you AOL folks use it? I'm actually most interested in this bit. Do AOL's developers all re-use this internal AOL toolkit for use with AOLserver, whatever it's called? Or do different projects really start entirely from scratch each time rolling their own? -- Andrew Piskorski [EMAIL PROTECTED] http://www.piskorski.com/ -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to [EMAIL PROTECTED] with the body of SIGNOFF AOLSERVER in the email message. You can leave the Subject: field of your email blank.
Re: [AOLSERVER] AOLSERVER Digest - 10 Aug 2004 to 11 Aug 2004 (#2004-171)
In a message dated 8/12/2004 3:02:14 PM Eastern Daylight Time, [EMAIL PROTECTED] writes: Has anyone tried to get the asp style ADP parser originally written in like 1999 or 2000 by some guys at AM Computers working with Aolserver 4? The source file was nsAspStyleAdps.c. It allowed conditional code throughout the file separated by the % % sequence, in the manner of ASP.This has always been one of my biggest complaints with aolserver. Whenyou have to output html conditionally in adp pages, you have tobackslash everything to keep tcl from choking on it.It's just this sort of problem that makes me wonder if the peoplebuilding aolserver ever actually USE aolserver to build webapplications. It seems like not that big of a deal . . . until yourealize that we do this ALL THE TIME. Howdy, I wrote the ADP parser and I made the decision to not support the sequence above. I'm aware folks use such techniques in .Net and JSP. In fact, the original, never releasedADP parser did support this as it "compiled" the entire page into a single Tcl script, with all the text areas replaced with "ns_puts text..." -- this is similar to how a JSP parser works. And, versions of AOLserver used to support the parser plugin as described stuff so folks could implement their own as in ACS. We didn't stay with this model forthree reasons: - As a single script, any error on the page would result in the entire script failing and no output being generated. We assumed folks would prefer some result with small errors passed over instead of creating ugly error messages. Today it seems folks would prefer the other behavior similar to JSP. - For efficiency, we assumed the tight ADP evaluation engine would be faster at just copying the text chunks directly to the output buffer instead of calling ns_puts repeatedly. It would also do a better job and sharing memory between threads as a page-compiled-to-script model would require each thread to have it's own script text and byte codes. Neither of these optimizations have been fully explored and verified although they "feel good". - The parser plugin model was a bit clunky in it's interface. It was used internally to support a simple, presumably fast parser, and a "fancy" parser which handled the registered tag stuff. In AOLserver 4.0, there is only one parser which supports all the fancy features and appears to be fast enough. Having said all that, it wouldn't be too hard to modify the existing parser to output essentially "single script" style code which could support the conditional model above. It would then potentially be slower and/or require more memory as described above but folks who are ok with that could choose that option. I'll take a look at the code and see if it would be hard to drop in. -Jim -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to [EMAIL PROTECTED] with the body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: field of your email blank.
Re: [AOLSERVER] AOLSERVER Digest - 10 Aug 2004 to 11 Aug 2004 (#2004-171)
On Friday 13 August 2004 12:43 pm, Andrew Piskorski wrote: In the case of the OpenACS Templating System (and in all versions of ACS back to somewhere around ACS 3.4 or so), the .tcl pages are in fact compiled to Tcl procs and cached on first use, which eliminates any performance difference between the two places Tcl code can live. Actually the .adp page is compiled to Tcl, appended to the script in the .tcl file, compiled, and the bytecode cached. There's a one-time compile penalty per interpreter. It would be nice if some of the really handy page-oriented OpenACS procs, like ad_page_contract, ALSO worked the same way for procedures. It would also be nice if the Templating System implemenation could be cleaned up a bit and made easier to hack on. These are, however, quite minor complaints, and never bothered me much back when I was using the Templating System on a regular basis. Also, some of them have even been partially addressed already, e.g.: Originally the templating system was standalone... -- Don Baccus Portland, OR http://donb.furfly.net, http://birdnotes.net, http://openacs.org -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to [EMAIL PROTECTED] with the body of SIGNOFF AOLSERVER in the email message. You can leave the Subject: field of your email blank.
Re: [AOLSERVER] AOLSERVER Digest - 10 Aug 2004 to 11 Aug 2004 (#2004-171)
On Fri, 2004-08-13 at 18:10, Dossy Shiobara wrote: What I thought was being said was some pairing of .adp and .tcl meaning for each page there would be an .adp file AND a .tcl file that gets sourced when the .adp is requested -- yikes. Eeek I wasn't looking to start a flame war :-( Twas just a suggestion thats all. Having started in plain AOLserver then moved on to OACS I find that the tcl/adp templating system is very productive and the results are very clean. What I was suggesting was as an option rather than compulsory. I just like the fact that I can write a /foo/bar/index.tcl page containing a db query, and write a corresponding /foo/bar/index.adp page which displays the results of the query using the custom tags Vlad mentioned and call it with /foo/bar/index. I don't have to escape anything, I don't have to find the file containing the proc which is registered to that url, I can look in /foo/bar and know that the logic is in the tcl and the presentation is in the adp. However, even with the OACS toolkit loaded I can still write a single tcl page, and adp page containing tcl code, a registered tcl procedure returning html or a tcl/adp pair - no options are lost its just an alternative. Steve -- AOLserver - http://www.aolserver.com/ To Remove yourself from this list, simply send an email to [EMAIL PROTECTED] with the body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: field of your email blank.