Then again, maybe its best to just cache at the database level. That is generally going to be the greatest bottleneck in an OpenACS system. The code that renders the template usually runs very quickly, and the round trip to the database is almost always the right place to improve peroformance.
One thing that would make sense is that caching decision could be made at the page level. So if one page were slow, and it had a number of included parts, it could just be cached by changing the template without diving into the underlying code.
To make it work it would be nice to finally allow a page contract for includable elements that is similar to ad_page_contract.
After writing that, I realized that the include caching is very similar to the partial rendering idea that the content repository and old aD-CMS supported. That is, a datasource could be combined with a template and written to the filesystem. Maybe that is another way to explore caching of includable content the old-fashioned way.
06:10 PM, 30 Jun 2004
by dave bauer
Permalink
| Comments (1)
categories:
OpenACS
,
Open Source Content Management
02:24 PM, 29 Jun 2004
by dave bauer
Permalink
| Comments (0)
categories:
Learning
Weblogs, Schools, LDAP? [tuttlesvc.teacherhosting.com]
That said, I really do appreciate the simple tools loosely joined concept that Tom is thinking about when he mentions Blosjom and OS X. This is a great thing if you can web enable a users directory and get a nice weblog editing tool. You get file sharing for free then, although, I'd throw WebDAV support in there as well.
We will have to see what schools adopt. Right now I think .LRN definitely meets needs of many big schools, espcially with privacy and other rules the institutions need to follow. I'd really like it to be much easier to install and user .LRN and OpenACS, but the tools the applications use just are not part of common operating system distributions. Of course, one of the options for data storage with .LRN/OpenACS is Oracle, which isn't preinstalled with any operating system at all.
08:51 PM, 28 Jun 2004
by dave bauer
Permalink
| Comments (0)
categories:
OpenACS
,
Technology and Education
Weblogs, Wikis, Schools and Scale - .LRN Steps In [tuttlesvc.teacherhosting.com]
I think this is where something like .LRN really can fill a gap. It is designed for managing course and school wide collaboration for universities. It is built for thousands of users and hundreds of course. .LRN is by a high performance web application server and RDBMS and provides fine-grained permissions, security, and privacy controls. Centralized install of software is not necessarily a bad thing. The central install can provide all the tools students need to collaborate.
09:39 AM, 25 Jun 2004
by dave bauer
Permalink
| Comments (0)
categories:
OpenACS
,
Open Source Content Management
,
Technology and Education
,
Open Source
,
Learning
mod_dav, the apache WebDAV module has been pretty well tested and they seem to have discovered most of the pitfalls. One of which is quite irritating. Passing perfectly valid XML, some of the WebDAV properties will be parsed incorrectly if there is whitespace, such as a newline, in between the XML elements. For example:
<D:resourcetype>
<D:collection/>
</D:resourcetype>
is not correct according to WebDAV Miniredir, but
<D:resourcetype><D:collection/></D:resourcetype>
is just fine. Whitespace within other nested XML properties is fine. For example:
<D:lockscope>
<D:exclusive/>
</D:lockscope>
is just fine.
Oh well. I document it here (and liberally comment the code) for posterity.
Using the tDOM parser $d asXML -indent none will do the trick.
06:07 PM, 20 Jun 2004 by dave bauer Permalink | Comments (0)
After all that, it seems you must have a proper domain name, no IP addresses can by mounted as a Web Folder.
That is all I have figured out so far.
Thanks to the wonderful MS client bug tracking page at http://greenbytes.de/tech/webdav/webfolder-client-list.html
I'll post some more tomorrow as I learn more about this. I think I'll be rereading the w3c-dist-auth mailing list to see if anyone else has ideas.
11:15 PM, 17 Jun 2004 by dave bauer Permalink | Comments (0)
maxkeepalive $maxconnections; # should be equal to maxconnections
keepalivetimeout 30; # in seconds I suspect
keepaliveallmethods true; # enables keepalive for all methods
Now this is all nice but on line 260 it checks for status code 200 before setting keepalive. There is a lovely comment telling exactly what is going on:
/*
* Output a connection keep-alive header only on
* any HTTP status 200 response which included
* a valid and correctly set content-length header.
*/
Did I mention AOLserver is some of the best C code around? I don't know C but I can read it.
I am writing a WebDAV server and a very common result is a 207 Multi-status response. I am trying to mimic the mod_dav behavior as close as possible to figure out how to properly support MS Web Folders and I wanted to eliminate that variable.
So on line 260 I changed it from:
((connPtr->responseStatus == 200 &&
to (((connPtr->responseStatus == 200 || connPtr->responseStatus == 207) &&
This works and Keep-Alive is enabled for status code 207.
Update: I don't think it affects the Web Folders support after all (see the next post about XML and whitesapce for the definitive answer) but it might improve folder thumbnail view displays where the client has to do a GET for each image. Windows Explorer keeps track of the last time it downloaded the image and passes an If-Modified-Since header, so hopefully the server will return a 304 Not Modified response and everyone will be happy.
Update2: This has been fixed for AOLserver 4.0.7, and their code is better than mine.
09:50 PM, 17 Jun 2004 by dave bauer Permalink | Comments (2)
Using Bash shell scripts for function testing [www-106.ibm.com]
04:40 AM, 13 Jun 2004 by dave bauer Permalink | Comments (0)
I have it running on this site, and it seems fast enough. There are not that many documents though, only around 4000.
The driver is very basic. It doesn't yet support OR or NOT queries, but the query parser does, so it will be straightforward to add it. In addition tsearch2 supports multiple dictionaries, so it might be possible to index content based on the language it is written in.
References:
http://www.sai.msu.su/~megera/daveb/gist/tsearch/V2/
01:10 AM, 06 Jun 2004
by dave bauer
Permalink
| Comments (0)
categories:
OpenACS
Papert on Project Based Learning [www.ultralab.org.nz]
It is part of http://www.ultralab.org.nz/textpattern/index.php and related to http://slartibartfast.ultralab.net/tomsmith/?q=import which I found from a link on http://dev11.otherworks.com/theotherblog/Articles/2004/05/28/quUxhHqfYd from http://careo.elearning.ubc.ca/cgi-bin/wiki.pl?SmallPiecesLooselyJoined/FenceSitter which is part of the session on collaboration "Fast, Cheap, and Out of Control" using available technology such as weblogs, wikis and IM. It seems there will be a "discussion" on the centralized vs. decentralized model, but most people seem to realzie there will be a bit of both.
OpenACS and .LRN are a centralized system in that the toolkit can provide all those collaborative tools, and tie them together in interesting ways. I'd like to see how seperate tools can be intergrated with each other and with OpenACS and .LRN as well.
08:57 AM, 02 Jun 2004
by dave bauer
Permalink
| Comments (0)
categories:
Technology and Education
,
Learning
| June 2004 | ||||||
| S | M | T | W | T | F | S |
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 | |||