Older blog entries for Rich (starting at number 17)

Folks on #apache (irc.openprojects.net) have frequently asked a question that goes something like this:

I know how to make the url http://foo.com/~user go to the user's home directory, but how do I make that happen without the ~, which looks unprofessional?

There are two standard answers to this. One, you tell them that it can't be done without creating an Alias for every user, which is technically correct. The other answer is to tell them to write some sort of magic handler that knows what users are out there, and maps requests to the correct directory. Perhaps in mod_perl?

Well, over the last few weeks, I have been doing a number of the things that I have been telling folks on #apache to do, or things that I have long claimed were trivial, and I just had not gotten around to them yet. For example, I keep saying that you can write an Apache access control thingy that would restrict access based on the phase of the moon. So last week I wrote one.

So, anyways, here is the mod_perl thing that creates magic user alises for users so that http://foo.com/user/ goes to that user's home directory. It was depressingly easy.

<Perl>
# Folks you don't want to have this privelege
my %forbid = map { $_ => 1 } qw(root postgres bob);
opendir H, '/home/';
my @dir = readdir(H);
closedir H;
foreach my $u (@dir) {
    next if $u =~ m/^\./;
    next if $forbid{$u};
    warn "$u/public_html";
    if (-e "/home/$u/public_html") {
        push @Alias, "/$u/", "/home/$u/public_html/";
    }
}
</Perl>

Yeah, that's all there is to it.

Due to screwing up the training schedule (I scheduled a training class for the week containing Thanksgiving) I have a total of one person coming to training next week. Three people signed up for the Thanksgiving week training. I, being a moron, did not realize that it was Thanksgiving week. The gentlemen that signed up for the class, not being US citizens (or at least so I suspect, given their names, and, in one case, the fact that the return address was Canada) did not know that it was Thanksgiving week. They, at least, had an excuse.

So, after asking them to reschedule, I ended up with just one of them coming next week. At a discount. Because I'm an idiot.

With any luck, I won't ever do that again. It's about time to schedule another month or two of classes, so that the training schedule does not abruptly end at the end of January. Of course, not knowing for sure when ApacheCon Europe is going to be, it is a little hard to schedule March and April with any degree of certainty. I don't think I will end up going to YAPC this year (yes, I know, it is sad, but I've got to have my priorities) so that is not going to be an issue.

Please, folks, sign up for my training classes, so that I don't have to spend my days grinding out boring web applications. You know, every person that wants to put dynamic stuff on their web sites *thinks* that they are having a unique idea, but (sssshhhh, this will be our little secret) every one of them is *exactly the same thing* with different window dressing. And while it really is fun the first 18 times, after then it sort of goes downhill. Yes, code reuse and all that. And they are *just* enough different that you end up tinkering for days on the picky details.

OK, I'm done complaining. I have a good job, and I can pay the bills most months. I'd just like the 80/20 to be 80% training, rather than the other way around. Shameless self-promotion is ok here, right? http://www.coopermcgregor.com/training/ Come one, come all. OK, so it was tacky. Bah.

DAV is everything I hoped, and more. In addition to being really easy to install and enable, it is really really easy to use. I'm using the 'cadaver' client, which acts like a command-line ftp program, except that it launches $EDITOR when you 'edit foo.html'.

DreamWeaver, on the other hand, lets you edit files, and appears to keep some kind of local copy of the modified files, only putting them up when you are satisfied with them.

This will, it seems, let me ditch FTP once and for all. And it fixes all the annoying permission problems that I always have with multi-developer web sites. Using some form of http auth, rather than user logins, allows me to create "logins" very easily, withouth having to create system accounts and hand *those* out like candy.

So, I sent out a company-wide email telling folks that they need to experiment with this, and that we'll be moving off FTP RSN. Yay.

Having attended Greg Stein's tutorial on Dav, I came back determined to get FTP turned off on my servers for good, and replace it with DAV. Yes, I still have FTP enabled, although I suppose I should not tell you that in such a public forum. Why do I? Well, because I host web sites, and people like to create content in Dreamweaver, and then get it to the server somehow. And they are Windows and Mac users. And getting them to use ssh/scp has proved to be impossible. I've tried, for going on 3 years now, and just gotten nowhere.

But it seems to me that DAV will actually solve this problem. They can continue to use Dreamweaver, and then then can upload the content via DAV. I think that this will make me happy. I think that I will feel better about my servers, as well as the simple fact that I'll be using very cool technology.

So far I've gotten DAV running on a couple test servers, and I'm tinkering with cadaver as a client. This seems to be working remarkably well, and I should have this stuff happily in place before the end of the week.

OK, and I also wanted to mention something about the Apache Town Hall meeting. When I decided to go to it, it was really out of a sense of obligation. You see, I've been to a number of things that were called "Perl Town Hall Meeting" and they were, without exception, a chance for uninformed people to complain about things that they did not understand well enough to look up, let alone express opinions on. You'd get perhaps one useful remark in 10, if you were lucky, and the other 9 were people demanding strong typing in Perl, saying that Perl should support some kind of OO syntax, asking for some kind of respository of Perl modules ... that sort of thing.

So I was less then enthused by this event from the start.

Wow. Was I wrong.

Almost all of the people in attendance were Apache committers. Almost all of the current ASF members were there. And comments were all relevant, educated, eloquent, and informed. We talked about the structure of the ASF, the growing pains of an 8-member group becoming a several-hundred member foundation with thousands of participants. We talked mostly about why someone would want to become a member in the first place, what the benefits and responsibilities are, and how we have failed to adequately educate the committers about the benefits of membership, leading to a real disconnect between members and those that are not (yet) members, a feeling that there's a deal of elitism, and other harsh feelings.

The conversation was of such high quality, it was darned hard to believe that it was really going on under such a frequently-misused name.

Also important to note was that people were remarkably civil. Even when expressing rather unpleasant things, even personal remarks about individuals, when they had to be made, were kept civil and uninflamatory. It would be nice if people could carry this same attitude back to the mailing list.

26 Nov 2002 (updated 26 Nov 2002 at 19:03 UTC) »

No matter how many times I say that I'm going to write about these conferences as I'm attending them, I never do. I don't know why this is a hard thing for me to do. And then I always regret, after the fact, that I have not done it, and the insights that I gained in the experience are gone forever. This sucks. Perhaps this is a new years resolution or something.

So, I'm going to make an attempt to write some of the things that happened during ApacheCon (www.apachecon.com) so that I don't forget them. This will be very disjointed, because it is after the fact, but hopefully I'll capture some of the important moments.

Plus, I'm not real thrilled about how this particular mechanism works (advogato.org, that is) but until I get something else installed on my own server, I'll just deal with it.

OK, so here goes.

ApacheCon was in Las Vegas, Nov 17-21. Actually, the conference started on the 18th, but the the 17th and 18th were the Hackathon. The Hackathon is an event where ASF members get together in a big room and hack on code. It was much less organized than I had expected, with very little clear idea of what people were trying to accomplish. Or, stated more positively, different people had different ideas of what they wanted to accomplish.

Nathan Torkington was working on an article about the Hackathon, and asked me how many people were there, what the goals were, and if they had been met. I said that it was hard to judge how many people were there, because due to wireless networking, many folks were scattered around. And that the goals were somewhat unstated, so hard to quantify. So he could pretty much make up whatever he wanted, and I would back him up.

<gnat> "Between five and six hundred hackers joined in the ApacheCon Hackathon over the weekend. Projects ranging from AI ("Build a Better Giant Silver Robot to Do My Bidding") to pornography ("Build a Better Giant Silver Robot to Do My Bidding") kept hackers such as Bill Gates and Scott McNealy working through the night.

I love gnat.

Personally, I wanted to work on the virtual hosts documentation, which I did very little of, and I wanted to work on the mod_rewrite docs, which I did absolutely none of. And I wanted to backport some of the Apache 2.0 documentation enhancements to the 1.3 documentation. Which I did some of, but not so that anyone could really notice. I think that the event was a great success.

The highlight of this conference, as most of the other conferences that I attend, is the people that I got to meet. These included (I'm sure to miss someone out) Thom May, Mads Toftum, and David Welton, Cliff Wooley, and Thomas Wouters who I mention in particular because they are folks that hang out on the #apache IRC channel on openprojects.net. The ongoing conversations on #apache and #apachecon during the conference were an important part of the conference itself, imho. My IRC logs will certainly provide much amusing reading as I remember things that happened. I also talked with several other people who I had met before, but only get to see at these things. It's always a pleasure. And just as notably, I failed to meet Rob McCool, who was at the conference. I managed to miss his talk, as I was busy doing something else, and did not get to speak to him about the history of the NSCA/Apache/Netscape servers, as I had wanted to. That was very disappointing, and I hope I get a chance to meet him again some day.

Ok, here's another brief snapshot of the conference. One of the talks was about waka, which is, apparently, a protocol thingy. Roy Fielding talked about it, and I did not go to the talk. However, I was on IRC at the time, and participated in a very amusing discussion about why the heck it was called waka. Here's a (somewhat edited) snippet.

<proyal> you can run over to the waka presentation.. he's just getting onto waka itself now..
<jwoolley> "why 'waka': because it's one of the few four-letter words that could be used as a protocol name". i dunno, roy, i kind of like "content-ready authoring protocol". crap://www.foo.com/ etc
* fitz snickers
<quasi> lol
<proyal> hahaha
<DrBacchus> There are a number of 4-letter words that I have used to refer to protocols.
<proyal> or the 'fast underlying content karrier'
<DrBacchusi> Of course, Roy is responsible for the unpronounceable "http" as well, isn't he.
<jwoolley> yes
<DrBacchus> At least waka does not sound like you're choking on a hairball.
<DrBacchus> http aka Bill The Cat protocol.
<thom> i prefer "simple hypertext integration technique"
<jwoolley> dammit boys, i swear i'm gonna burst out laughing in the middle of roy's nap^H^H^Htalk
<fitz> "Hypertext Under Multiplexing Protocol"
<DrBacchus> Hypertext User Retrieval Lingo
<fitz> I will die laughing
<thom> if it goes faster, they'll be early adopters
<proyal> if it makes pr0n go faster, it'll get adopted
<DrBacchus> waka chika
<fitz> bop bop
<fitz> DrBacchus: shake it baby!
* jwoolley tries to gasp for breath without laughing his ass off
<fitz> XML slam bam!

If you can imagine it, it kinda degenerated from there.

Jars of Clay

As I attend these conferences, a single phrase keeps coming to mind. That phrase is "Jars of Clay." For those that did not grow up in a home where the Bible was part of your literature, I'll clarify the context of that phrase:

"We have this treasure in jars of clay to show that this all-surpassing power is from God and not from us." 2 Cor 4:7

In this context, here's what this thought tends to mean.

The entire time one is at one of these conferences, one is surrounded by brilliant men and women who have contributed many thousands of hours of their time to produce ideas that have put billions of dollars into the economy. Geniuses, really.

But as I look around, I am struck by the frailty and mortality of these geniuses. They are jars of clay, which will one day be broken. Last year, this was brought to mind by Guido being called away for a family medical emergency. This year, ironically, it was brought to mind by a picture titled "Schwern in 30 years." Several years ago, a well-known and highly respected member of the Perl community was involved in a terrible car accident, making many of us think about our priorities.

We are enormously fortunate to live in a time when we are surrounded by these folks. The things that they have accomplished have, simply stated, made the world a better place. But they are jars of clay. It is rather humbling.

OK, enough being depressing.

In that same vein, of course, there are new people entering the community all the time that are just as brilliant, and our future depends on how the old treat the young.

In my ongoing quest to find some way to pay the bills, now that training seems to be a slough of despond (please, go to http://www.coopermcgregor.com/training/ and prove me wrong!) I am entertaining the notion of actually doing something with BoxOfClue.com. Could be a fun mod_perl project, if nothing else. And I might actually get an order or two. Because there are a lot of really strange people out there. One might consider it an important untapped market.

YAPC is as much (and for some folks, more!) about the social aspects as about the technical aspects. It is a community conference as much as it is a technical conference. It is therefore appropriate that I tell you about YAPC by telling you about the meals that I had while there.

Tuesday evening, I had dinner at The Olympia, a nice Greek place a few block from campus. I had a wonderful gyro and some retsina. We talked about software testing, the origins of retsina (no, it does *NOT* taste like pine sol, thank you very much) and the business practices of ISPs. In attendance were Deven Corzine and his brother Scott, Amagosa, Geoffeg, and Ken Rietz, all of whom, with the exception of Deven, had driven down together from Louisville. We also had some of the specialty of the house, fried cheese, presented at the table with great ceremony by setting it on fire. Flaming food is a Good Thing.

On Wednesday, I had dinner with a group of authors from the various subsidiaries of Pearson Education - formerly known as Macmillan Publishing. Why companies throw away name recognition has always been beyond me. Even when I did it myself. Among several other people, one of those present was Geoffrey Young, the author of mod_perl Developers' Cookbook. Now, I have been teaching mod_perl classes for some time. And I have been developing mod_perl applications for a while also. Geoff made me feel like I did not know much - which is to say, he was so completely knowledgeable about mod_perl that, by comparison, I felt like a beginner. His talk on Thursday was a great success in opening my eyes to some of the things that are possible with mod_perl.

Also present was Andy Lester, who talked about his ideas for a new book. This sparked a number of very interesting side-discussions, but I don't really think that I ever got a good idea of what he wanted to write about. We'll need to talk about that some day. Anyways, Andy wanted my module Apache::Perldoc to do something that seemed rather obvious in hindsite - rather than just generating the docs for any installed Perl module, it now is able to act as a content filter of sorts, converting .pod files to HTML on their way out to the client. Get the newest version!

Thursday evening, we headed out to Brent Michalski's house, where he grilled what seemed like a ENORMOUS amount of hamburgers for the 30 or so people that showed up, including the majority of the Perl 6 development team - Larry Wall, Damian Conway, Simon Cozens, Jarkko Hietaniemi, and many others. As the sun went down, we were treated to a show of the musical talent in the Perl community, with guitar, banjo, and electric guitar, and various people singing late into the night.

On Friday, about 20 of us went out for Thai food for lunch. This was really wonderful. Ordering for that many would have been a problem, so we just asked them to bring us a bunch of food. Which they did. And we ate, and ate, and ate, getting back just shortly before Damian's closing talk. Mmmmm. Thai::Food.

Then, Friday evening, I persuaded some folks to go with me to an Ethiopian restaraunt, which later got changed to a Vietnamese place, and, by the time we actually go there, a Welsh Pub. Um. OK. Quite a shift. But it was very good, and the company was fascinating. I sat by Nathan Torkington, Jon Orwant, Simon Cozens, and a plethora of other folks.

No summary of YAPC would be complete without mentioning Sarah Burcham, who did most of the work to pull it all together. Sarah is wonderful, and did an awesome job pulling this conference together. As she observed today, the most important thing is that the conference happens, not where, or how far apart the rooms are, or whether there are meals provided, but just that there is the meeting of minds.

26 Jun 2002 (updated 26 Jun 2002 at 11:27 UTC) »

5am, first morning of YAPC

Sarah Burcham, the wonderful person that organized YAPC this year, got us in contact with an employee of the University who offered to have us crash at his place. Expecting something a little more ... well ... little, we discovered that it is a *beautiful* home just a few blocks from campus. Our host is very generous, making us feel very much at home, and even made us cookies (with his daughter) with our names on them!

Well, I'm awake because I'm on Eastern time, and also because one of our fellow-lodgers is snoring resoundingly from the next room. How can someone snore that loudly and still be able to talk the next day? Wow.

Today should be a good day. Some interesting talks lined up. I'll probably wait to a slightly more decent hour before getting up and getting a shower.

Photos at http://buglet.rcbowen.com/photos/2002/yapc/

8 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!