gabe is currently certified at Journeyer level.

Name: Gabriel Ricard
Member since: 2000-07-14 20:51:48
Last Login: N/A

FOAF RDF Share This



I'm just an ordinary average computer geek I suppose. By day I work for a real estate agent developing a extranet/web application for other real estate agents.

After office hours I'm either busy with my girlfriend, vegging out, or feeding my hungry brain with computer books and source code. I've been in a transitional period of my life for a while now and things are starting to settle down now so I'm finding myself with a bit of spare time which I am gladly volunteering to work on free software projects.

Mainly I'm interested in PHP. I'd like to see PHP more tightly integrated with Mac OS X. I'm a big OSX fan. It truely is what I would like to see Linux someday become. Other free software projects that have piqued my interest are Exim, AOLServer, Apache 2, Midgard, etc.

I'm also a member of the Marble Horse Free Software Group, some other members are roguemtl, snippy, fejj, khemicals, dexter, and fingolfin.


Recent blog entries by gabe

Syndication: RSS 2.0

woo. hm. been a while since i last posted.

well. i am beginning to understand more and more about OpenACS every day. and now, thanks to jadeforrest's suggestion (an individual in #openacs on freenode) i'm keeping a log of my learning process in order to better be able to help others in the future. i kinda wish i'd thought of that from the start. i may have a better idea of how to make others understand the system better.

regardless, OpenACS is a truely wonderful system. i was using Joel Aufrecht's excellent development tutorial for OpenACS to get started in figuring out how to produce packages for oacs. after going through that tutorial i was able to quickly add new functionality to that package. it's really quite easy to rapidly develop apps with oacs.

so now that i've pretty much decided to use OpenACS for my own projects, i need to change my hosting to one that provides OpenACS and PostgreSQL hosting. i haven't yet decided, but both and acorn hosting look like very nice, small, hosting companies. not as cheap as is, but i am getting a lot more out of it...

i've been discussing development of a sync application for the Zaurus on OSX on the zaurus-osx mailing list. seems like a few people are already at it, but they're writing the app in Python. personally, i don't really like the idea of forking/duplicating efforts, but i'd rather have a real app, written using cocoa to sync my zaurus and powerbook. that, and i want it to do more than others do, like maintaining a package feed locally on my pb and being able to transfer and install / remove packages on the zaurus.

BEN! in regards to AOLServer, you could setup filters to handle access to bugzilla. I don't know if you need it to work exactly the same way as a .htaccess, which it doesn't, but it may work well enough for you.

I moved my website over to so I can finally control everything myself. For $10/mo, it's a damn good deal. I get access to both MySQL and PostrgeSQL databases, neat. Now all I need to do is create a website. I think it's time to scrap the old one since it's been about two years since I touched it last. *sigh*

In other news, I've discovered a new toy I want: a SPARCStation 20 w/ quad Ross 200MHz hyperSparc cpus, a full 512MB (not very much for a server, but enough to play with) and a decent disk. I used to have a sparc 20 when I was working at Netscape and it was a nice little box. I kinda want an HP-UX box too. I think this has something to do with reading Phil's literature.

I'm beginning to think twice about using OpenACS for our new system at work. AOLServer & Tcl are still in, but OpenACS seems to be a little too much for our needs. Our current PHP-based code gets about 10 hits per second on a quicksilver g4 (db is on a dual 800 filled with ram and such). I'm not terribly happy with it. I wish there was more literature out there comparing different systems for servicing web applications and such. E.g., which hardware, OSes, configurations, software, etc. are the best for what and why. Google's definately a help, and there are a few o'reilly books that seem to be relative (Server Load Balancing and High Performance Computing) but not much else...


Can someone please modify reality so that days consist of 48 hours instead of 24? Thanks! (or maybe some day Modafinil will be declared 100% safe w/out side effects and i'll only have to sleep 8 hours out of every 48, haha)

Where does all of my time go? I get up, go to work, come home, sleep, get up, go to work... On occasion I have some time to read, program, play games.

I managed to actually have a weekend. TWO DAYS without doing anything but messing around on the computer, playing GTA3, and reading The Stand (the uncut version). I did manage to get PostgreSQL / AOLServer and OpenACS playing nicely on my iMac at the office. (Gosh it's nice to have Mac & unix together in one machine so I can remotely login and get stuff done) I had to tweak the sysctl settings in the startup scripts to allow programs to use more than 4MB of shared memory (this made PostgreSQL much happier). I managed to get AOLServer 3.3.1ad13 all setup and such. And I managed to get OpenACS cvs (4.6 beta?) up and running to. But I'm not sure what to think of it yet. It's a neat system, but it's way complex. AOLserver is an incredible webserver.

My only issue with it all is performance. AOLServer itself manages about 560 pages per second with a static html document of 8KB. I benchmarked that using 'ab' from another machine on the LAN. I think I had to set AOLServer to startup 200 threads and keep constantly alive. I don't know what the default is, but I used that and got about 5 hits / second with OpenACS. I tried running it with 50 threads and got about 1 hit per second. I think that was killing the CPU though. ;) Interestingly enough, when I started AOLServer with OpenACS and 200 threads, it was the first time I got my load avg over 100 (700Mhz iMac G4 w/768MB ram). Fun!


Ok, I'm back. Moved into a new apartment, finally sold my iBook and got a Pismo. When I've got some money I'll upgrade it to a G4. I got an iMac G4 at the office to play with now too.

Got some good work done on my import code for SRM recently. I added an additional function to the SRM server, srm_user_function_list(), so that the import code won't have to pick the user defined functions out of the list returned by srm_function_list(). The import code, in general, works. Right now it's just hooked up to a simple handler function that just prints the name of the function that was called. Adding the entries to the executor's function_table works fine, and I've added a HashTable to the SRM PHP extension's thread-safe globals to keep track of the imported functions and which connection they were imported from.

I have to add code to the module initialization call to alloc and init the HashTable and then more code to the request shutdown and module shutdown calls to handle the removal of the imported functions from the executor's function table. Probably have a bit more stuff to clean up too. Then it will be ready to really test it.

I've been learning a bit about using GDB throughout my diddling with SRM. I have to say that it's neat. I've also been learning about trying to deal with the Zend Engine's memory management and such. It's nice that it informs you of memory leaks when it shuts down. (well, I'm just testing it with the CLI SAPI, I wonder what happens when you leak with the apache SAPI or others?)

I've also changed the import interface too. It now works like this:

$srm = new SRM('/tmp/srm.socket');

$srm->import_library(); // import all library functions

$srm->import_library("my_func"); // import function "my_func"

$srm->import_library(array("func1", "func2")); // import a few select functions

13 Jul 2002 (updated 13 Jul 2002 at 15:18 UTC) »
12 Jul 2002

Ok, so this is for last night, I wasn't able to connect to write...

So I finalized my ideas / proposal for a feature for SRM to be able to import library functions into the running script's function table. It turned out that the import function was the best method to use. Much thanks to Derick again, for answering all of my questions about the inner workings of SRM and PHP. So, I started working on adding this to the SRM extension. Basically, this is all there is to it from the PHP side:

$srm = new SRM('/tmp/srm.socket');

$srm->import_library(); // import functions // OR $srm->import_library(true); // import functions, and overwrite functions that may already exist

And that's pretty much all there is to it. I've got the code to handle the method call now, and I just have to clone and slightly modify the SRM class's method handler.

3 older entries...


gabe certified others as follows:

  • gabe certified roguemtl as Journeyer
  • gabe certified gabe as Apprentice
  • gabe certified snippy as Apprentice
  • gabe certified khemicals as Apprentice
  • gabe certified dexter as Apprentice
  • gabe certified fejj as Journeyer
  • gabe certified fingolfin as Journeyer
  • gabe certified octobrx as Journeyer
  • gabe certified RyanMuldoon as Apprentice
  • gabe certified fusion94 as Journeyer
  • gabe certified rasmus as Master
  • gabe certified thies as Master
  • gabe certified sascha as Master
  • gabe certified ssb as Master
  • gabe certified jimw as Master
  • gabe certified andrei as Master
  • gabe certified miguel as Master
  • gabe certified alan as Master
  • gabe certified andi as Master
  • gabe certified zeev as Master
  • gabe certified derick as Journeyer
  • gabe certified BenFrantzDale as Journeyer
  • gabe certified lilo as Master
  • gabe certified sniper as Journeyer

Others have certified gabe as follows:

[ Certification disabled because you're not logged in. ]

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

Share this page