<?xml version="1.0"?>
<rss version="2.0.">
  <channel>
    <title>Advogato blog for deven</title>
    <link>http://www.advogato.org/person/deven/</link>
    <description>Advogato blog for deven</description>
    <language>en-us</language>
    <generator>mod_virgule</generator>
    <pubDate>Sat, 17 May 2008 10:28:04 GMT</pubDate>
    <item>
      <pubDate>Fri, 22 Nov 2002 22:13:50 GMT</pubDate>
      <title>22 Nov 2002</title>
      <link>http://www.advogato.org/person/deven/diary.html?start=36</link>
      <guid>http://www.advogato.org/person/deven/diary.html?start=36</guid>
      <description>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...</description>
    </item>
    <item>
      <pubDate>Fri, 22 Nov 2002 21:24:23 GMT</pubDate>
      <title>22 Nov 2002</title>
      <link>http://www.advogato.org/person/deven/diary.html?start=35</link>
      <guid>http://www.advogato.org/person/deven/diary.html?start=35</guid>
      <description>&lt;b&gt;Gangplank:&lt;/b&gt;

&lt;p&gt; 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.)

&lt;p&gt; 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.

&lt;p&gt; 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.

&lt;p&gt; 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...

&lt;p&gt; I'm still looking for beta sites, so if anyone is interested in running one, please email me!</description>
    </item>
    <item>
      <pubDate>Tue, 22 Oct 2002 21:14:30 GMT</pubDate>
      <title>22 Oct 2002</title>
      <link>http://www.advogato.org/person/deven/diary.html?start=34</link>
      <guid>http://www.advogato.org/person/deven/diary.html?start=34</guid>
      <description>I've not been keeping up with these diary entries, but that's hardly a surprise.  I never seem to find the time...

&lt;p&gt; &lt;b&gt;Gangplank:&lt;/b&gt;

&lt;p&gt; 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.

&lt;p&gt; 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.

&lt;p&gt; 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.

&lt;p&gt; 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.

&lt;p&gt; 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...</description>
    </item>
    <item>
      <pubDate>Sun, 2 Dec 2001 08:23:40 GMT</pubDate>
      <title>2 Dec 2001</title>
      <link>http://www.advogato.org/person/deven/diary.html?start=33</link>
      <guid>http://www.advogato.org/person/deven/diary.html?start=33</guid>
      <description>&lt;b&gt;Gangplank:&lt;/b&gt;

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

&lt;p&gt; 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*

&lt;p&gt; 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.

&lt;p&gt; 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-&amp;gt;Hash, etc.)
but obviously not completely immune to error.

&lt;p&gt; 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) &lt;i&gt;does&lt;/i&gt; compile and run
correctly.  I tested it this time.

&lt;p&gt; I still need to write more documentation, of course...</description>
    </item>
    <item>
      <pubDate>Sat, 1 Dec 2001 08:30:17 GMT</pubDate>
      <title>1 Dec 2001</title>
      <link>http://www.advogato.org/person/deven/diary.html?start=32</link>
      <guid>http://www.advogato.org/person/deven/diary.html?start=32</guid>
      <description>&lt;b&gt;Gangplank:&lt;/b&gt;

&lt;p&gt; Well, I &lt;i&gt;finally&lt;/i&gt; managed to put together the initial
release for Gangplank.  A &lt;a
href="http://www.gangplank.org"&gt;basic homepage&lt;/a&gt; is online
along with the initial tarball.  I've created an &lt;a
href="http://advogato.org/proj/gangplank/"&gt;Advogato project
page&lt;/a&gt;, and submitted the information for a &lt;a
href="http://freshmeat.net/projects/gangplank/"&gt;Freshmeat
project page&lt;/a&gt;, 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...

&lt;p&gt; 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!)

&lt;p&gt; 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
&lt;i&gt;stable&lt;/i&gt; 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.

&lt;p&gt; I still have a lot of documentation I need to write, but I
get tired just &lt;i&gt;thinking&lt;/i&gt; 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...

&lt;p&gt; &lt;b&gt;Layoffs:&lt;/b&gt;

&lt;p&gt; My former employer laid off 30 employees yesterday
(including most of &lt;i&gt;upper&lt;/i&gt; management!), including the
one (&lt;a href="http://www.advogato.org/person/geoffeg/" &gt;geoffeg&lt;/a&gt;) 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...</description>
    </item>
    <item>
      <pubDate>Mon, 10 Sep 2001 15:22:33 GMT</pubDate>
      <title>10 Sep 2001</title>
      <link>http://www.advogato.org/person/deven/diary.html?start=31</link>
      <guid>http://www.advogato.org/person/deven/diary.html?start=31</guid>
      <description>Egads.  My certification is back to "Journeyer".  How
confusing.  Oh well; as long as it's not "Observer", I don't
really care what it says.

&lt;p&gt; I've had a busy month for various reasons, and was out of
town for a while, so I haven't made any progress on getting
together an initial release of Gangplank.  I'm still a
little unsure how I'm going to handle the release version
numbering, and I hate the idea of changing the versions
after the initial release.  I'd much prefer to nail down the
scheme I'm going to use first, but I keep dithering on it.

&lt;p&gt; In any case, I'd better get back to this soon...</description>
    </item>
    <item>
      <pubDate>Fri, 3 Aug 2001 03:49:56 GMT</pubDate>
      <title>3 Aug 2001</title>
      <link>http://www.advogato.org/person/deven/diary.html?start=30</link>
      <guid>http://www.advogato.org/person/deven/diary.html?start=30</guid>
      <description>A long day, and no progress today.  Had to take the dog to
the vet, which took a couple hours, then the search for food
even took another hour.  No time to do anything useful
tonight...</description>
    </item>
    <item>
      <pubDate>Thu, 2 Aug 2001 04:41:59 GMT</pubDate>
      <title>2 Aug 2001</title>
      <link>http://www.advogato.org/person/deven/diary.html?start=29</link>
      <guid>http://www.advogato.org/person/deven/diary.html?start=29</guid>
      <description>&lt;b&gt;Gangplank:&lt;/b&gt;

&lt;p&gt; Well, I was hoping to get a release together in time for the
nice simple release date of August 1, but it didn't work out
that way.
It's taken more effort than I expected.  Oh well, so much
for nice simple dates!

&lt;p&gt; I've wasted too much time contemplating version numbering
schemes, for one thing.  I've come up with a scheme that I
think would be neat for the Linux kernel, but it's serious
overkill for my project.  Nevertheless, I'm gonna use it
anyway.  Something's gotta be the guinea pig!  I've got a
good description written up for it now; it's amazing how
many hours this part alone took...  (I'm sure it's too
complex for my own good, but I wanted to give it a try.)

&lt;p&gt; I still need to review the code to make sure I don't release
anything overly brain-damaged to the world.  I have a couple
known kludges that I'm considering trying to clean up before
the release, such as having the help text hardcoded into
strings in the executable!  There was a good reason for
this; I've been extremely wary of the possibility of
blocking file I/O, since the server is single-threaded. 
However, there's nothing to stop me from reading it in
during the server initialization code (except lack of Round
Tuits).  It &lt;i&gt;would&lt;/i&gt; be cleaner that way...

&lt;p&gt; And there are the more mundane things, like renaming the
system internally, stripping old RCS log messages from the
source code (should I keep using $Log$, I wonder?) and
applying the QPL license to each module.  (Yes, I'm starting
with the QPL, at least for now.)

&lt;p&gt; Then there's documentation, of course.  The only
documentation that I have at the moment is the description
of the versioning system, which turned out to be fairly
difficult to write up in any sort of comprehensible
fashion.  (It's hard enough to read now, but the earlier
drafts were much worse.)  I still need to write at least
some basic documentation.  (A code overview would be nice
too.)

&lt;p&gt; And I haven't even gotten as far as worrying about things
like CVS, a web site, mailing lists, or any other auxiliary
things.  I'm just trying to come up with the initial
tarball!  *sigh*

&lt;p&gt; I suppose this was inevitable; the project is nearly nine
years old, and I never really expected it to be easy to put
together a clean release archive.  But I wish it were easy,
all the same!</description>
    </item>
    <item>
      <pubDate>Mon, 23 Jul 2001 02:03:06 GMT</pubDate>
      <title>23 Jul 2001</title>
      <link>http://www.advogato.org/person/deven/diary.html?start=28</link>
      <guid>http://www.advogato.org/person/deven/diary.html?start=28</guid>
      <description>&lt;b&gt;Gangplank:&lt;/b&gt;

&lt;p&gt; I still haven't had a chance to work on this initial
release, largely because my grandmother is here from out of
town.  Besides, I've concluded that I shouldn't post it
today, even if I had it ready by now.  I'm going to be out
of town from Monday morning through Friday afternoon, and I
may not have Internet access.  To be on the safe side, I'd
rather not release it until I'm back, since I wouldn't want
to appear unresponsive to anyone that might try to contact
me about it!</description>
    </item>
    <item>
      <pubDate>Fri, 20 Jul 2001 02:24:44 GMT</pubDate>
      <title>20 Jul 2001</title>
      <link>http://www.advogato.org/person/deven/diary.html?start=27</link>
      <guid>http://www.advogato.org/person/deven/diary.html?start=27</guid>
      <description>I've been trying to get an initial release of "Gangplank"
together for close to a week now, but it's been more complex
than I expected.  I need to review all the source files
briefly to check for anything that shouldn't go out as is,
change the name throughout the program, decide whether to
fix a couple kludges before it's seen, try to write some
basic documentation, etc.  What a mess!

&lt;p&gt; I'll probably try to minimize the initial work by making a
pre-1.0 release first, and add documentation from there in
later releases.  Of course, I've got to decide even how to
number the releases!  While I could punt and do something
typical, I've been thinking of ideas for
complex-yet-informative version numbering.  I was originally
thinking in terms of the Linux kernel, but I figure it could
be used for any project, so I might as well experiment on
mine!  (Of course, the numbering scheme I'm coming up with
is so terribly complex that it's really only appropriate for
a large, complex project, but what the hey...)

&lt;p&gt; Well, I'll get there sooner or later here.

&lt;p&gt; Lots of birthdays this week.  Besides
&lt;a href="http://www.advogato.org/person/hacker/" &gt;hacker&lt;/a&gt; on Monday, one of my best friends
hada birthday on Tuesday, my wife's birthday was yesterday,
and my brother's birthday is tomorrow!  (Nobody that I can
think of for today, though!)</description>
    </item>
  </channel>
</rss>
