John Sequeira

Amped::Technology
John Sequeira's weblog: enterprise application development, typed weakly.

Wednesday, January 22, 2003


LEO

I love LEO. I've tried to use it several times in the past, but the learning curve was such that I couldn't justify the time commitment. This time, for some reason, it just clicked and a few days into it I'm using it on 4 different projects (it handles perl, tcl, html, and just plain documentation equally well). I love it. You will too. More later.

That and perldoc.el for emacs are two things I'm having difficulty figuring out how I lived without.
8:20:55 AM      comment []  trackback []



Making Open Source Connections

I received two emails about some of my open source work recently. One was from a technical journal publisher hoping to use my peer review application for their journal.

Hi John,

I located your case-study, Extending Workflow, an OpenACS Case Study ( http://home.attbi.com/~jseq/projects/peerreview/wfnotes.html ) via Google. By any chance, is this package available for download? I understand that you don't consider it to be a 1.0 release, but it's as you said "a working prototype" from which I'd be more than willing to extend.

We have a need for a web application to handle submissions to journals and to facilitate reviews and edits of those submitted articles. Now that OpenACS has reached a stable release with 4.6, I'm considering it to be the framework for this application, in addition to adding new features and improving existing ones of the corporate web site. So having your codebase would certainly give us a leg-up.

Thanks.

Brian

I did an OpenACS package for academic peer review but never got to finish it - I was hoping my (unfinished) write-up would inspire someone to run with it. My fingers are crossed.

I also received an email from a company writing a CMS product on top of OpenACS. They're interested in my project to allow OpenACS to run under Apache/FastCGI/IIS.

I research opportunities to run our CMS application based on OpenACS on Apache (that is requirement from one of our clients).

I found your page about Portable.NSD

http://home.attbi.com/~jseq/projects/portable.nsd/

From what I see this project is based on nstcl. I would like to take a look into your current codebase which probably is newer then nstcl.

I've just started but have very short deadline - aprox. a week to make a prototype.

I've already have Apache 2.0.43 with mod_tcl/1.0 with Tcl Thread 2.5 and libnsd.so, libnsdb.so, libnsthread.so from AOLserver 4.0 CVS. So a lot of usefull mechanism and api is already there. I would like to import some procs from your codebase. Where can I find it? As you see I don't need pure TCL implementation, but probably I will do most of wrappers in TCL and that may be usefull for you as well.

... Tomaz

Tomaz really knows his stuff. Grabbing the unbundled AOLServer DLLs will make what I'm trying to accomplish a lot simpler, but he followed up that Apache's thread support is not really compatible with AOLServers, at least on Unix.

I compiled Apache 2.0.43 with worker mpm (multiplexing module) to make Apache server threaded rather than preforking. Anyway to make it realley threded you have to allow only one worker process with worker threads by setting MaxClients=ThreadsPerChild. Having one process was crucial for me to utilize ns_cache (from libnsd.so + nscache.so) and nsv_* procs (from libnsd.so or implemented as tsv: : * from Tcl Thread package). This way I planed to have the same architecture as AOLserver but in Apache.

But the problem is mod_tcl which is not suited to run with worker mpm (after short code review and simple tests I suspect that there is only one Tcl interpreter per process so when many threads try to use that intepreter the worker process segfaults). I belive that this can be quite easilly fixed by using separete interpreters in every thread as AOLserver does. Adding interpreter initialization and cleanup is another missing feature from mod_tcl, but this can be stolen from AOLserver 4.0 (it's done in pure TCL).

Anyway after making these fixes the result is not very useful because other Apache modules would probably also have problems with worker mpm. So there will be no point to use Apache for our client. So as it turned out this is the wrong way to go until most of Apache modules become worker-mpm-aware (and it can never happen because Apache guys belive that being multiprocess is quite good for server stability).

The other tcl modules from tcl.apache.org/ are for preforking Apache 1.3.x. With multiple processes to cache information in memory you have to use shared memory. This is the way that mod_aolserver module was implemented by ArsDigita. In release notes for mod_aolserver version 1.1 (found by Google) there is information about poor performance of shared memory implementation. Because in-memory cache is the most important feature used by our CMS and our application framework we probably cancel the project or at least give Apache integration lower priority.

I'm hoping that my approach of using FastCGI avoids these threading issues. It certainly introduces it's own problems, but as long as they're scripting-solvable problems I think it's eminently more do-able.

Portable.NSD Status

I'm actually speaking with an LMS company about getting their OpenACS product to run on Apache using the portable.nsd framework. And I've gotten several other emails from people interested in helping. Since I've passed the point at which more things are working than are not, I'm going to write up some release notes, and clean up the code so that I can release a bonafide version. It's very encouraging to see this level of interest in the project before it's complete.
8:13:14 AM      comment []  trackback []


© Copyright 2005 John Sequeira.
 
January 2003
Sun Mon Tue Wed Thu Fri Sat
      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 31  
Dec   Feb

Click to see the XML version of this web page.
Click here to send an email to the editor of this weblog.
Yahoo: johnseq2
MSN: john_seq@hotmail.com
AIM: amped02139
Skype: johnjulian