Older blog entries for deven (starting at number 31)

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.

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.

In any case, I'd better get back to this soon...

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...


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!

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.)

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 would be cleaner that way...

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.)

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.)

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*

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!


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!

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!

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...)

Well, I'll get there sooner or later here.

Lots of birthdays this week. Besides hacker 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!)

hacker: Happy birthday!
vab: Actually, the original name of the system was "conf", back when it was still a single-module C program. Now it's C++ in a number of modules, but I did change the name in the source when I decided to use "Phoenix" instead of "conf".

Anyway, I am going to just release it, but I'm not sure about exactly how I should package it, and what release number to give it. Plus, I'm not sure if it would be auspicious to release it today, being Friday the 13th. :-)

I think I'll make some sort of 0.9 release. I would call it 1.0, since the current codebase has been in production use (albeit very lightly!) for years now. However, there's probably enough rough edges that 0.9 makes more sense for the moment.

By the way, vab -- you're marked as an Observer, though you were listed as a Journeyer two days ago. You're not alone, either...

Here's everyone who's been downgraded since Wednesday:

ewan: Journeyer -> Observer
jbowman: Journeyer -> Apprentice
vab: Journeyer -> Observer
gmc333: Apprentice -> Observer
opiate: Journeyer -> Observer
jlf: Journeyer -> Observer
rao: Journeyer -> Observer
sphair: Journeyer -> Observer
zodiac: Journeyer -> Observer
mhatta: Journeyer -> Apprentice
larva: Journeyer -> Observer
philhunt: Journeyer -> Observer
mml: Journeyer -> Observer
PhOeNiX: Apprentice -> Observer
jamie: Journeyer -> Observer
andrewmuck: Journeyer -> Apprentice
jorrit: Journeyer -> Observer
hv: Journeyer -> Observer

I don't want to debate this again; I'm just presenting the information. (There were also 10 people who jumped from Observer to Journeyer during the same time period.)

dmerrill: Thanks for being fair. I'm still not sure how it helps anyone to spread an inconsequential vote thin. I know it doesn't count certs from non-Masters to determine who becomes a Master, but do those Master certs drain away "capacity" when calculating the lower levels? After all, the Masters will often be best-known and most-certified; if much of the voting power drifts back up to the Master level, does that explain why there are fewer Apprentices? (Just a guess...)

I think LDP is an important project, and I can write decent documentation, but it's draining and really not one of my favorite things to do. I have yet to write the full user documentation for my conferencing system, for example. If there's something particularly interesting that I know well where there's a vacuum, maybe I'll contribute some docs, but I'd be more likely to contribute on the code side usually.

As for what projects to volunteer for, I don't really know. I'm wary of overcommitting my time, but I'm also not sure how to pick a project -- what makes any given project more worthy of time and attention than the next? Unfortunately, it probably comes down to working on whatever captures your attention and "seems like a good idea at the time". The advantage of finding something sufficiently interesting to work on is that you might find more time to work on it, if it's fun...

If you have specific coding projects/tasks to suggest, I'll certainly listen. I'll tell you that my coding inclination tends to run more towards building solid infrastructure (often reinventing the wheel even if I don't need to) rather than worry about making things flashy. I'd rather have a no-nonsense piece of code that is rock-solid and robust than a fancy, pretty interface to unstable flaky code that may crash at any time, for little to no reason.

I often prefer to write new things from scratch, since I often find that I don't like a lot of the existing code out there. Much of it seems poorly designed and/or poorly implemented, and it often seems easier to toss it out and write it from scratch than to fix the myriad problems that are often found in existing code. (Like Mozilla had to throw things out and start over, for example.)

So, I'm more likely to be interested in implementing code where a small project would be created to solve something, or where some clearly-defined module in a larger project needs to be created from scratch or rewritten. I can also debug and enhance existing code, but it's often much more frustrating, because I'll keep running into things that bother me about the code...

dyork: Yes, let's drop it. At first, I was interested in discussing it on a theoretical basis, because it sets Advogato apart -- there are interesting questions about how well the system works and how it might be improved, but I'm tired of debating it.

Basically, I don't care about certification either; I'm interested in the certification system as an architectural feature of this site, and I'd like to see it work "correctly", whatever that ultimately means. I couldn't care less what level I'm certified at, but I would prefer to remain certified, given the restrictions when you're not. It's because I had been certified long ago that it seemed that something was amiss; if I was still waiting for certification, it wouldn't have concerned me. Oh well...

Thanks for the opinion about "gangplank". I still think it's an odd name, but that's not necessarily a bad thing. I think you're right; I've got the domain, I might as well just run with it. (And if a better name really does come along, I'll just have to decide at that point whether to rename the project...)

I think I'll just go ahead and release it under the name "gangplank" since I have no better ideas. It will take a little effort to prepare an initial release, but I'll post a note here when I release it...

lilo: Thanks for the certification. I still worry that there's something amiss with the system, but I'm tired of discussing it, and I think the issue is sufficiently "on the table" by now. If anyone wants to brainstorm about possible ways to improve the certification system, it would make a good article for discussion -- but I'm not going to post such an article myself. If Raph wants input, I'm sure he'll post one, and if he doesn't, that's fine too.

About a name, I agree that connotations (hopefully good ones!) will arise even from an irrelevant name. And a strange name sounds less strange as you get used to it. I'm just afraid that Murphy's Law will make me think of the perfect name after another on is entrenched instead! However, I'm getting tired of searching, so I may just run with "gangplank". It's not a perfect name, but it's distinctive at least. It does sound strange, but there are a LOT of worse names out there. Do you have any thoughts about this specific name? Do you have other suggestions?

mathieu: Happy birthday!

vab: I've got some code that's almost ready to release, but I'm still wavering about the name. Do you have any thoughts about it?

(Sorry about the length of this; I'm sick of it too. Jump to the last section for a new topic...)

You know, I really don't care what my "status" is. Certify me as a summer squash, it doesn't matter. I'm merely frustrated at being denied the ability to fully participate on this site, and there are times when an interesting article is posted where I'd like to join the discussion. But, because I'm not in the "in" crowd (not certified by someone close enough to the seeds to matter), I'm arbitrarily excluded, whether or not my contribution to the discussion might be worthwhile.

For example, I posted this diary entry because an article interested me enough to sit down and try playing with some code to come up with something that seemed interesting. Once I had something working, I wanted to post a reply so others in that discussion could see what I came up with. That's when I first discovered that I had become decertified. Having nowhere appropriate to post the message, I decided to post it as a diary entry so it wouldn't be a complete waste of time.

Nobody reading that article would have any reason to expect to see a reply in a diary entry, though it was relevant to the discussion there. I was arbitrarily barred from participating in that discussion because the certification system is now turning away the majority of people. I thought maybe it was a temporary glitch; I tried to send email to Raph (but no email address was on this site, so I had to guess), and I mentioned it in that diary entry. Then I left it alone for a month before trying to draw attention to the problem.

If it was just me, I would have dropped it much sooner. Indeed, after some people certified me and I was listed as an "Apprentice", I could have quietly gone about my business and it probably would have ended there. The only reason I continued to discuss certifications is that I believe the system isn't working as intended, and I was concerned that many people were being excluded that shouldn't have been. (The fact that there's more Masters than Apprentices and more uncertified accounts than certified seems to suggest that something is out of balance, doesn't it?)

Let's ignore any research goals Raph may have had for this site. Even taken solely as a site dedicated to serving the free software community, does it truly serve the community to be excluding most of the people who come along, people who might become more motivated to contribute to free software based on their participation on this site? Doesn't it make more sense to get as many people certified as Apprentice as possible, to encourage them to get more involved in free software?

As long as you don't throw open the gates so far as to let the spammers and trolls in, wouldn't having 3,000 Apprentices instead of 300 be better for the community? We want as many people as possible to involve themselves with free software, right? Exclusionary practices are great for a clique, but hardly form the basis of a welcoming community.

Could the certification system be improved? I don't know, maybe. Do I know how it should work? Not at all. I've got some ideas, but they're untested. Raph has put a lot of work into design and analyzing this system, and I don't want to second-guess his algorithm, since I don't completely understand it and can't promise to offer anything better.

It does seem counterintuitive to me that your vote is trusted less and less the more you use it; I should think that people who are trusted to make good decisions should have all those decisions considered equally good, not devalued for each additional one. Then again, Slashdot has a "meta moderation" system that doesn't seem to work as well in practice as it does in theory.

Discussion and brainstorming alternative algorithms would be interesting, but that sort of thing belongs in an article (where I can't participate right now), not in diary entries. However, other possible algorithms probably can't really be understood without testing them, which probably means someone would have to setup a new site for the purpose. (Wouldn't want to endanger the functioning of this site if the theory doesn't work out!) If I really cared that much about it, I'd make a new site to experiment with it myself, but I'm not sure I want to get into that just now.

So I wouldn't recommend that Raph throw out his algorithm, but I think some of the numbers could use some tuning. There are over 1,000 Masters and Journeyers, but only four seeds. Why not 50 or 100 seeds? Don't count Observers or Apprentices, and just take the top 50 or 100 strongest certifications, and use those people as new seeds. (Or just select from Masters; there's over 300 of them too.) Once you have the new seeds, play with the numbers for distance from the seed, the threshold for certification, etc. The current algorithm would probably work much better with some tuning.

hacker: I withdrew most of my certifications only after ncm knocked me back down to Observer by withdrawing his certification. So, as an Observer, presumably my votes were already worthless. Even if I become barely certified again, what's the point of spreading my meager voting power out so thin that it barely helps anyone? I might as well focus it on someone I know personally, who could be a worthwhile member of this site.

If certification was only a matter of what "status" tag is associated with you, and what color you're associated with, I really couldn't care less about it. People will judge you as they're going to, and obsessing over it helps nobody. However, on this site, certification is the dividing line between the "haves" and the "have-nots", where only the "haves" can fully participate on the site. This may be effective at keeping out the spammers and trolls, but it also relegates most of us to our little ghetto where we can post diary entries here, but that's all we can do.

I don't think that was the intent of the system, yet by raising the issue for debate, I get ostracized for it. Don't shoot the messenger! I didn't design this system, and I didn't create this artificial divide. While I could go elsewhere, I think this is a worthwhile community that I'd like to participate in. However, maybe I won't be allowed for daring to point out that the Emperor has no clothes. It's not my fault that things are the way they are, and blaming me for shining a light on the problems isn't going to make them go away. At best, it might make me go away, but the problems would remain if I left.

I'm not very familiar with Blogger. (Though I much prefer the term "weblog" in general -- "blogger" sounds strange to my ears.) Slashdot is a system with very little barrier to entry, and it's very active. It's also filled with spammers and trolls, though the moderation system doesn't do all that badly. I don't mind having a barrier to entry high enough to dissuade spammers and trolls, but the barrier here is much higher than that.

With more people turned away than accepted, it becomes more of an elitist clique than a welcoming community. If that's what Advogato's masters and/or denizens want, so be it. If the true goal is the avowed purpose of furthering free software, I don't believe that is achieved as well by being exclusionary as it would be by being inclusive. Yes, you want to exclude spammers and trolls because they deliberately harm the community by lowering the signal-to-noise ratio dramatically. But why exclude anyone else who is there to share in a common purpose?

And yes, people are being excluded. I didn't come here to post diary entries; I have a homepage which is really a better place for that. It's just a strange twist that "diary" entries have turned into a substitute for actual discussion forums, probably because so many people are prohibited from actually joining the discussion in the real forums under the articles. These "diary" entries have largely transformed into an unstructured free-for-all discussion forum, as evidenced by running threads of conversation between different people via their diary entries. Of course, this free-for-all has no protection at all against spammers and trolls, which is really ironic.

At the time I arbitrarily chose Master (I basically flipped a coin), I said that I haven't "visibly participated" much in the community. I didn't claim to be the author of an "important" free software project (who decides what's "important"?) and I didn't expect anyone else to certify me above Apprentice for a very long time. And I didn't care. I expected to have to wait a few weeks to find myself certified before i could really participate, and I was prepared for that.

As I've said before, I decided to arbitrarily certify myself as "Master" based on my skills, even though I didn't match the full description. I knew my visible contributions were meager, but I intended to remedy that over time. Since I never expected anyone else to certify me as a Master or even as a Journeyer, I figured it really didn't matter what I selected. None of the descriptions really fit, so what was the point?

Besides, haven't you ever had a teacher ask you to write down and turn what you think you deserve for your grade in the class? In those cases, you always say "A"! Even if you feel like you deserved a B, why sell yourself short? If the teacher thinks you deserve a B, that's what you'll get. Think of it as a "positive visualization" thing. I didn't expect to be certified as a Master, and didn't even want to be, but I think I have the skills to qualify and as for the rest, I was trying to "visualize" it, which was a large part of the reason I selected it. I would have selected Journeyer, but I'm better than "competent" and I do want to make significant contributions to free software. I just haven't figured out the best way to get from here to there, with all of life's obstacles.

Instead, I was certified as "Journeyer" almost immediately (quite to my surprise) and thereby became embroiled in a debate about the certification system, which I never wanted. Now here I am again, stuck in a similar controversy that I never wanted, for the heinous crime of wanting to be able to join the discussions around me. Forgive me!

Yes, I've heard that rms isn't really Richard Stallman, and it certainly doesn't ring true. RMS would probably never come to a site like this, but you can bet he'd have a lot more to say if he actually did! It feels like an imposter, but without asking RMS himself, I can't prove it isn't him. But I doubt it, and I know others do too. (Has anyone actually asked him?)

Do you think I want to spend all my time discussing certifications? Certainly not! I'm sick and tired of arguing about it also. If it was a primary interest of mine, I would have asked Raph if I could work on mod_virgule, or started my own site to test alternate theories. Maybe I will sometime, maybe I won't. For now, I have other things I'm more interested in.

The truth is, I don't care about certifications at all when it comes to the supposed "status" they may represent. I only care about being excluded from full participation on this site. I don't want to go to Badvogato, because I share Advogato's goal, to further free software. Honestly, part of the reason I want full access on this site is simply because I'm hoping that being active here might help motivate me to get out there and actually get more work done on free software projects. Being in the company of like-minded folks tends to help with that, which is exactly why I'm concerned that so many people are excluded just as I am. It just seems like a lost opportunity to get people motivated to work more on free software...

Let me try to change the subject here...

This whole debate has reminded me that I'm not making any progress towards releasing my conferencing system as open source. I decided many months ago that I want to go ahead and release it, but the name is a major stumbling block. As I mentioned before, the system is currently named "Phoenix", but I've been wanting to pick something new, with an available domain name to go with it. I'd prefer to change the name as part of the process of releasing a 1.0 version, just because it seems more confusing to change the name after it's released.

Unfortunately, almost all of the good names in the DNS are already taken, and even most of the bad ones too. If anyone has any bright ideas here, I'd love to hear them, and soon. I'm starting to believe that the search for a new name could stretch out indefinitely; I've already been on the lookout for a new name for years, literally.

The one candidate I have right now is "gangplank", and I was able to register "gangplank.org" for it. (I figured I may use it for something else if not this.) It's a strange name, but it's a real word, and easy to remember and spell -- even if it really has no relevance to the project. It's even harder to find a good name that's meaningful. (One of my favorite ideas was "Nexus", which I love as a name, but it's been used for many things and of course there's no domain available for it.)

So, hacker, do you have any thoughts for me about this? Should I just run with "gangplank" because I don't have anything better? Should I keep waiting for a better name to fall into my lap? Do you like the name or hate it? (I found it sounded truly bizarre at first, but it grew on me later...)

The sooner I figure out this name dilemma, the sooner the software will be released! :-)

22 older entries...

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!