Older blog entries for gstein (starting at number 84)

Finished the setup of aprutil the other day. At the same time, the Apache CVS repository was revamped. With two big reorganizations, we've been spending the week getting things put back together the Right Way(tm). I think it has gone quite well, and we've got a much better structure as a result.

There have been a number of issues with the new aprutil library and some of its interaction when included in Apache, and how it references APR, and its layout and build system, etc. A good portion of this week has been working through those issues.

We have an Apache release on Monday/Tuesday next week, so there are some straggler issues with the new layout and APR (UTIL) to try and wrap up by then.

For people who haven't really taken a look at APR, it is similar in purpose to NSPR. Both libraries abstract a lot of platform-specific functionality so that you can write portable applications. Apache 2.0 uses APR as its portability layer, and much of APR's code came out of Apache's long history of extreme portability. We've taken a bit different focus in some areas (compared to NSPR), and worked harder for certain types of features and performance. It is an extremely useful library, and it is being used by both Apache 2.0 and the Subversion project. APR manages things like memory allocation and cleanup, sockets, locks, files and pipes, character set handling/recoding, memory-mapped files, shared memory, process and thread management, time, user handling, and dynamic library loading. (plus more) Its primary platforms are Unix-ish platforms (including things like Mac OS X and OS/390), BeOS, OS/2, and Win32.

On the Subversion front, the SVN filesystem (FS) has been going through a huge revamp. Some of the new APIs are finally coming out of that effort, so I spent a bit of time last night updating mod_dav_svn to compensate.

Getting ready to leave for Palm Springs tomorrow, too. Got a wedding to attend. Just a short visit, and I'll be back on Sunday afternoon.

Over the next few days, I want to wrap up the Apache, APR, and APRUTIL work, then get back to SVN coding.

Mostly email the past couple days, but have been doing various coding bits in Apache (sdbm, config, etc), and some client-side work in SVN. We just redesigned the API for the RA modules so that we can dynload the guys. That broke the build for a bit :-), but I got it sync'd back up tonite.

Also tonite I'm working on setting up the new APRUTIL library as part of the APR effort.

Dick Hardt has been in town again, and stayed at my place again. Always fun to have him as a houseguest. Last night, we went to dinner with Michael Tiemann, which was very cool. I had met him a long time ago, but never really got a chance to talk with him until last night. He was a lot of fun to talk with, and dinner was quite good (get the ribeye!). We went to the Blue Chalk here in Palo Alto, which was pretty darn busy for a Thursday night, but we got a table right away. Dinner ended up being a tad rushed because we had to take Michael to the airport.

Today has been mostly an email day (as I mentioned earlier). Got most of that out of the way, so I started on the aprutil stuff. Off to do more now...

Just noticed something interesting. Check out the lists of people working on Apache and APR. Both projects are based out of the ASF, and have a firmly established community and a solid culture.

Ok... so what? Many projects do. Yes, but what I found interesting was that not a single person on either of those projects have listed themselves as a "Lead Developer." It is kind of neat, in that the culture of the communities leads people to a very high sense of equality.

That's all. Interesting thing that I just saw and wanted to note...

g'night

Been spending the past week hacking a ton of Apache and SVN code. The Apache stuff is mostly DAV infrastructure, cleaning, revising, etc. Also been working on APR stuff and (just tonite) the SDBM support in Apache. Oh, and I introduced some new DBM cover functions for Apache use, then spun mod_dav_fs to use those rather than hard-coding for SDBM. Basically, this means that a simple ./configure switch allows mod_dav to use GDBM now. (mod_dav 1.0 has a #define you can change, but no autoconf support; Apache 2.0 tossed that #define and just waited for these covers; well... they're done now).

Been watching various movies... Gladiator, M-I 2, and some crappy late night movies. Actually, the first two were rather mediocre, too. Gladiator had great scenery, character development, etc, but the plot line was just a bit too obvious and the movie seemd a bit too long (although I'll give it the benefit of the doubt since character dev was very important, and that simply takes time). M-I 2 was eye candy, but the whole romance thing was rather bogus. Like they're trying to turn Ethan in some 007 playboy or whatever. Sorry... just won't work.

Last weekend, O'co and I grabbed some new Playstation games and hung out for a while playing them. It'll be kickass to get a PS2... the graphics will be so much better. Of course, they simply don't exist right now, for all intents and purposes. I'm just going to wait until after xmas to get one, when the demand eases up relative to the supply. I doubt there will be any "after xmas specials" on the bad boys, but I can hope.

Spent the weekend working on an xmas list web app. The family can now enter their wish list online, and everybody can see it, mark the items off, etc. It even filters on families; I can be part of my family and Anni's family, but not worry about seeing my brother-in-law's family. It's pretty neat. I've been thinking about putting the stuff over on SourceForge as a "gift exchange" app. Hell, it is basically a neat gift registry.

Thanksgiving was kickass. Some friends were in town, and we all got together and filled ourselves till we nearly popped. What an insane ritual :-). Of course, drinking all of that wine was a definite bonus.

I gotta say that satellite TV just rules sometimes. Normally, I have a big conflict at 9pm between Angel and Dark Angel (heh; coincidence?). But wait! Angel comes on the WB, of which I have three channels from across the US. I get Angel at 6pm, 7pm, and 9pm. So... I watch Angel at 7pm, Buffy at 8pm, then Dark Angel at 9pm. It works out quite well!

And yah... it just has to be said: Jessica Alba is definitely hot. Of course, I still carry my official "Salma Hayek Groupie" badge, but Alba makes for a more interesting TV series. :-)

Speaking of sexism ;-) ... has anybody ever wondered why all the women on TV always where clingy tops? Seriously. Ever see an episode of Friends where the women don't have tight tops on? Pick a show, and take a look. Well, okay... maybe not all shows. But hell... I was noticing it on X-Files on Sunday. Even Sculley was where a tight top. Sure, a jacket over that for half the episode, but my point is... I believe the costuming department for these shows specifically provide clothes to (effectively) put the women on display.

Tomorrow will be kind of busy. Got the painter here, gonna have a nice meal at home with the woman. Gotta take the car for a smog check and then get plates for it. etc etc. Thursday, Anni takes off for a trip to Seattle for five days. Bummer, but that does mean that I'll be a little coding junkie for the weekend. Still have a ways to go on SVN to hit the Dec7 milestone...

Hi logic. :-)

And yah: PHP's lack of anything like the DBAPI kinda blows. Of course, I just always use MySQL with it, but the point stands. For a language that prides itself on DB integration, it is definitely a head-scratcher.

I'm somewhat amused by your comment on Zope. I tell ya... half the people that I talk to about Zope have a complaint about its size/complexity. I also tend to shy away from things that say, "stay within this framework and you're okay. leave? what do you mean?" Zope is a great system, but it also seems pretty all-or-nothing, which is unfortunate. And its footprint scares more people than I could count.

Got the first draft of the gift exchange app done. Ended up being a rather large PHP app. Gonna have Anni look at it tomorrow for some UI feedback.

Dropped the initial framework into mod_dav_svn for live property handling. Also cleaned up some of mod_dav's spec for liveprop handling a day or so ago.

Not as much email jockeying today, thankfully. The DeltaV stuff calmed down for now. But as soon as Geoff replies to my last post, I'm gonna have to dig back in. :-)

A revamped mod_include is on deck for Apache 2.0 finally (written by Paul Reder). Uses the new output filtering stuff. Pretty cool stuff. Gotta review the bugger tomorrow. Big module.

Dragonball Z has been quite cool lately. Cell is whooping ass, but the good guys are getting ready for the big fight. I'm probably gonna have to tape the sucker for the next few days cuz of the holidays. Got some friends in from Portland, and (as usual) we are all having T-day over at O'co's place.

21 Nov 2000 (updated 21 Nov 2000 at 08:38 UTC) »
ajv:
Um... dood. I know Basic auth is (typically) evil. I know how it works. yada yada yada. And yah, I know about mod_ntlm and the others. (mod_ntlm's existence is why I mentioned that auth scheme to jmg) I've been working on Apache for nearly two years now. I've been working with HTTP for twice that length. I'm an old fart :-), and I've been working with this stuff (or crap depending on your point of view :-) for quite a while now.

And one thing that you forgot: Basic auth can be perfectly fine. Just use it with SSL. (some people could also argue that it is fine on a firewalled LAN)

That said: I'm totally happy that you posted that info in your diary entry. There is a lot of stuff in there that other people don't know, but should. :-)

Back to our regularly scheduled program...

Boy, you'd think that I'm doing nothing but responding to jmg lately :-)

I think pretty much all of today was spent dealing with mail. In particular, the DeltaV group has been discussing what happens when you check out a "collection version". Oy... details details. It is this specification stuff, down to the nitty details, that I dislike about RFCs :-)

The APR split happened today. APR is now its own project at the ASF. This is quite cool, since it means that more than just Apache HTTP Server people can work on the thing. Hopefully, it will also mean that more people will use it, too. Conceptually, it is very similar to the NSPR (used in Mozilla), but it focuses on some slightly different things, it has the years of testing based on its origins in Apache, and it has the much nicer (less restrictive) Apache license.

I think I'm off to update some of the APR web site and main docs. After that, it is time to do a bit of SVN coding. Live properties are on deck.

Oh. Wait a sec... I gotta code a PHP app tonite for dealing with gift exchanges. Ah well, so much for SVN tonite :-)

jmg:
I think you need to review your HTTP security :-) Digest auth does not send the password in the clear. Please refer to RFC 2617 for more information. And client-side certificates for HTTP does have an RFC. Please refer to RFC 2246. (I haven't looked to see if Kerberos or NTLM have RFCs, but they are certainly implemented (and I presume doc'd somewhere))

Sorry about future.texi; I thought it was on the website and easily found (and thus: you had seen it). Distributed repositories are definitely in the works for post-1.0 release. It is a common request :-). And yes, I knew about future.texi (I'm one of four initial/core developers for SVN).

You mention being able to do "sc update" to fetch multiple projects. CVS can do that today. A working copy can refer to multiple repositories. However, this does mean that the user must set this up by prepping their working copy to refer to each of those disparate repositories. But once set up, it will work fine after that (as if everything in the working copy came from the same repo). With SVN, a repository can create logical links to other repositories. When the client fetches the main repository, it will automatically be redirected to the others and they will all be fetched as if they were one. Summary: CVS has can refer to multi repositories in a working copy, but the user must set it up; in SVN, the same is possible, but a repository maintainer (rather than the users) can set it all up.

When you say "inter-repository communication", I think more on the lines of a distributed/replicated repository that can automatically synchronize changes between each other. That is a bit more difficult, which why it is post-1.0. Few systems do this well; ClearCase does it, and BitKeeper might.

SVN 1.0 will probably be released around end of Q1 2001. We'll have a basic, networking-capable version which supports basic ops (add/update/commit/delete) within a couple weeks.

jmg:
Just a few hilites, as this isn't a good mechanism for discussion, and I'm not interested in being defensive.

DAV is an HTTP extension. That means that it is HTTP at heart, with some new methods, headers, etc. Since is uses HTTP, it can use all of the authentication mechanisms available to HTTP. This can be as simple as Basic or Digest auth, or as complicated as client-side certificates, NTLM, or Kerberos. Encryption is handled using SSL. ACLs are handled as part of standard HTTP authorization mechanisms.

Yes, I read your design document, but it felt more like a wish list or a requirements doc than a design.

The SVN design document was written entirely before implementation began. It is actually quite a bit out of date :-). Ben did some work a couple weeks ago to update a few of the more egregious errors.

Inter-repository communication (and replicated or distributed repositories) are going to happen after the 1.0 release. We want something that can be used sooner rather than later; something that is at least as capable as CVS and can fulfill all the roles where CVS is used today.

And are we doing something new? Yup :-) We're building a version control system that kicks butt. Sure, maybe some commercial packages such as P4 or ClearCase have done this before. But they haven't released it as Open Source. Now that is something new, and quite cool.

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