deven is currently certified at Journeyer level.

Name: Deven Corzine
Member since: 2000-07-27 21:47:46
Last Login: 2012-07-31 13:46:51

FOAF RDF Share This



My email address is


Articles Posted by deven

Recent blog entries by deven

Syndication: RSS 2.0

Okay, I decided it was probably time to re-certify myself again, given that Gangplank is a tangible contribution of thousands of lines of code which is now free software. I'm not "requesting" anyone else to certify me at all. I'm just putting this back in because I'm no longer in a position of having nothing tangible to point to in terms of my contributions to free software...


While it's still beta, I'm getting closer to a stable 1.0.0 release, which is my goal before adding any big new features. I hope to have 0-2 more beta releases followed by 1-2 release candidates before declaring a "stable" release. (On general principle, my plan is to have the stable release be identical to the last release candidate.)

We're fast approaching November 30, which will be the 10-year anniversary of the codebase, and the 1-year anniversary of the public release of the code. I'd love to be able to release 1.0.0 on that date, but I'll have to hurry if I want to do that. (It would also require releases almost daily...) Maybe it's too late to make that deadline, but I can try.

For the most part, the autoconf/automake integration is done. I still need to make a few little adjustments, but it's coming along nicely. I released 1.0.0.beta.6 early yesterday morning (late Wednesday night) with the autoconf support, and early this morning (late last night), I released 1.0.0.beta.7 to clean up GCC-specific options, and to automatically use -DFD_SETSIZE=256 on Cygwin.

I still need to work on an RPM spec file, so I can distribute an RPM of the server for easy installation. Maybe I'll look into other binary packaging possibilities, but I'm not sure how far I want to go in that direction...

I'm still looking for beta sites, so if anyone is interested in running one, please email me!

I've not been keeping up with these diary entries, but that's hardly a surprise. I never seem to find the time...


I've had several beta releases so far, each of which causes a surge of mild interest from the Freshmeat announcement, but I'm still looking for people to run Gangplank sites and use them, or at least help refine the process of getting the system up and running.

I've improved the portability of the system in the last few releases, and the last release works on most Linux systems, several BSD variants (including Mac OS X), Solaris and Cygwin under Win32. Generally, porting to a new Unix variant has been fairly straightforward.

Currently, I'm in the process of integrating autoconf into Gangplank. This should improve portability even more, and simplify compile-time configuration of the default port number and guest access, which previously required the adminstrator to modify the relevant source code. I still need to work on installation-path issues, and consider whether to add code to support setuid operation. I'm also trying to clean up the build process and simplify the release process.

I figure I'm about 80-90% done with this release, but I've probably still got 3-5 hours of work left to do, when I can find the time. I'd also like to create an RPM spec file, but that may end up waiting for the next release.

Gangplank isn't ready for a "stable" release yet, but adding autoconf support was one of the milestones I wanted to reach first. I hope the releases will move from betas to release candidates within the next few releases, but I still need to improve the documentation and try to clean up a few more loose ends first...


I was so focused on getting the initial release out the door that I plum forgot the most important thing! I forgot to test the release! Damn thing didn't even compile. D'oh!

The reason is simple; there was a class named Assoc which implemented hashes (which used to be better known as "associative arrays", hence the Assoc name). Before the release, I decided I should rename the class to Hash to avoid confusion in terminology. I fixed all occurences of "Assoc" of course -- but I failed to notice that there was a Hash() function in the class. It was a private class method used for the hash function, but of course the C++ compiler thought it was a constructor, since I inadvertantly created that collision. I've fixed it now, renaming the Hash() method to HashFunction() to remove the conflict. Unfortunately, this makes the initial release a "brown paper bag" release -- not an auspicious start. *sigh*

This underscores the exact reason why I released it as a beta version (1.0.0.beta.1) instead of as a stable release (1.0.0) -- I didn't want any stable release to ever have a dumb mistake like this in it, so I decided that by policy, a stable release would always be identical to a development release, except for the version number.

There have been several serious bugs in the Linux kernel "stable" series which slipped through because untested code was added to the "stable" release. I wanted to avoid that. And I did -- even though the basic codebase is very stable, there were changes in the released version from the tested-but-unreleased version. Most of the changes were in the comments at the start of the files, but some involved actual code changes. Simple ones (like renaming some source files, occurrences of the system name, Assoc->Hash, etc.) but obviously not completely immune to error.

I guess I've proven the value of my stable release policy, but I wish I had been alert enough to remember to build and test the server before posting the release. Oh well. The new release (1.0.0.beta.2) does compile and run correctly. I tested it this time.

I still need to write more documentation, of course...


Well, I finally managed to put together the initial release for Gangplank. A basic homepage is online along with the initial tarball. I've created an Advogato project page, and submitted the information for a Freshmeat project page, but that hasn't been processed just yet. If anyone gives it a try, please let me know in email, since I may not notice diary entries...

Life is always so busy, but the driving impetus to finish it today (well, yesterday now that it's past midnight) was because original development of the code started 9 years ago today, on November 30, 1992. (Well, I released it on November 30; I didn't get around to dealing with Advogato and Freshmeat until after midnight, so nobody heard of it on the day of release!)

In the end, I decided to abandon the complex versioning scheme that I worked so hard on -- it was all-numeric, and required too much knowledge of what significance different numbers had. I've discussed this with others, and came to the conclusion that I'll use all-numeric version numbers for stable releases only, and always have alpha characters in development/test releases to differentiate them and allow for complex yet comprehensible information in the version number (ok, string). The initial release is 1.0.0.beta.1 -- eventually, 1.0.0 will follow (a stable release) as a re-release of a 1.0.0.beta.x release.

I still have a lot of documentation I need to write, but I get tired just thinking about the scope of that task! I'll have to get to it before I'll be willing to declare a 1.0.0 stable release, however...


My former employer laid off 30 employees yesterday (including most of upper management!), including the one (geoffeg) who I've kept most in contact with since I left in March 2000. He's now looking for a job at a time when they're much harder to find than they used to be...

32 older entries...


deven certified others as follows:

  • deven certified deven as Journeyer
  • deven certified geoffeg as Journeyer

Others have certified deven as follows:

  • deven certified deven as Journeyer
  • miniver certified deven as Journeyer
  • nixnut certified deven as Journeyer
  • matt certified deven as Apprentice
  • edw certified deven as Apprentice
  • cbbrowne certified deven as Apprentice
  • jLoki certified deven as Apprentice
  • mobius certified deven as Apprentice
  • khoerling certified deven as Journeyer
  • lerdsuwa certified deven as Apprentice
  • sad certified deven as Apprentice
  • johnnyb certified deven as Apprentice
  • dmerrill certified deven as Apprentice
  • xcyber certified deven as Apprentice
  • fxn certified deven as Apprentice

[ 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