Working on the ApacheCon Preso

ApacheCon presentation materials are due yesterday, so I’m setting this weekend aside to work on it. Except for the Cal-UCLA game, of course. Wave at us, we’re behind the north end zone…

I’m hoping to do a more even presentation this year. Last year I ran out of time which was a shame. This year some content will move to the paper, so I can pay better attention to the stuff that remains in the talk. One thing I found myself doing last year was to get stuck in slides: I would spend too much time about minute details, forgetting the overall flow of the presentation and undoubtedly losing part of my audience along the way. Hope to clean that up a little this year. Anything I should bring up? E-mail me.

Be Sociable, Share!

Why ZeroConf is Good

Just got a new printer, a little laser job that costs about one-twenty-fifth of the first LaserWriters. And it can do color, too. I now have it set up on our little home network, so that both the Macs and the Windows machines can print to it. Mac setup was done in five minutes, including the time it took to find an extra power strip for the JetDirect box. Windows setup took about two days….

As a long time Mac zealot, the five minutes doesn’t surprise me. Two days to get the Windows side running, however, is disappointing in a number of ways. First off, this product is targeted at the SOHO market: it will typically land in situations without a knowledgeable IT person. Secondly, I hate playing uncompensated IT guy. If I am to put up with this ****, I’d like to see some $$$$ out of it. Finally, there still those who will maintain that Windows has now caught up to the Mac and that Apple has no usability advantage anymore. Sorry folks, five minutes versus two days does not look caught up to me. And yes, I am a zealot.

OK, let’s do the full ESR on this. The network has a FreeBSD box with a DHCP and DNS server and a Win2k workstation that shared the old inkjet printer. There are two Windows XP Pro laptops, a Powermac G4 and a Powerbook. The JetDirect box gets its IP address from the BSD box, its configuration web page shows up immediately in Safari on the Powerbook and I give the printer a name (ShangriLaserJet), turn off IPX and AppleTalk, all that good stuff. Actually printing to the printer requires a driver install from CD, which does not present any problems.

Now, Windows. The CD has an installation wizard, which finds the printer on the network in about a minute. It probably does a MAC address search, or has a Rendezvous browser (although that wouldn’t take that long). Click, click, complete wizard and I now have a printer entry in my Windows. Great, except it can’t print. Turns out that it made one of those weird backwards Windows constructions where a TCP/IP connection to the printer is in fact at the same level as a direct parallel or USB port connection. In Windows-speak, a ‘network printer’ is one that’s accessible through one of those \\server\printername constructions. It also turns out that the installer used the printer’s name rather than its IP address for the port. Where did the installer get that name? Must be from the printer itself, not from the DNS because my DNS server doesn’t know about “ShangriLaserJet???. That’s a pity, because now the PC can’t find the printer.

So, I add a fixed address for the printer to the DHCP server on the BSD box, and an A record (and IN record) to the name server configuration. I power-cycle the JetDirect interface, and now the printer can be pinged by name from the Windows laptop and I can print to the printer. Rejoice!

Oh wait, not quite. On the other Windows XP machine, we’re running as a non-privileged user. This in itself causes no end of hassles, as numerous software packages (cough cough Autodesk cough) don’t really deal with running without administrative privileges. On the printing front, however, it turns out that an unprivileged user doesn’t have access to that strange looks-local-but-is-actually-a-network-port. I open up the port properties, Security tab and grant all possible privileges to every account on the box, then add specific blanket privileges to that non-privileged account. All this according to the first principle of Software Security Management: when it doesn’t work, open that bad boy up. Second principle also applies: totally forget to close the hole again when opening it doesn’t work. Which it doesn’t. Solution to this one: install the driver on the final, Windows 2000, PC and share it so the unprivileged user on the XP box can access the printer. We’re up and running.

So, could I have done this without knowing what I know about networking? No way. Must I run my own DHCP and DNS server on my five host home network? Not really: I can just use IP addresses to access the printer from each host. However, the fact that the printer installer uses the Rendezvous hostname of the printer when creating its Windows printer port is severely broken behaviour: it should at least do a reverse lookup on the IP address and figure out that (on most SOHO networks) the printer IP address won’t resolve. Using IP addresses in the local/network printer port would have made this work out of the box, but it would fail as soon as the DHCP address of the JetDirect changed… that’s why Zero Configuration Networking was invented and why this technology needs to come to Windows: otherwise, Fry’s Electronics is going to get a whole lot more printers back because their users couldn’t get them to work on the network.

As for the other problem, I actually hope I’m overlooking some feature in Windows that would allow that unprivileged user access to a local/network printer port. One should not have to run as Administrator in order to access a TCP/IP printer. What if the network doesn’t have a spare PC sitting around that can take the role of print server? This is another thing SOHO users shouldn’t have to put up with. Or maybe the average Windows user knows a heck of a lot more about security and access privileges than I do. Or they just run as Admin.

Be Sociable, Share!

mod_zeroconf

Updated mod_zeroconf to the latest version of howl last night. All the function names and some of the signatures have changed, but overall it was fairly painless. Extra bonus: got it to run on my Powerbook this morning. It turns out that the howl library that mod_zeroconf links against has some CoreFoundation stuff in it (on the Mac, presumably not on other platforms since those don’t have CoreFoundation), and neither my module nor Apache itself has any reason to link against the CoreFoundation Framework. The result is some undefined symbols when you start Apache.

I tried to force mod_zeroconf to link against CoreFoundation by defining some variables in the source, but that just seems a can of worms. The cheapest solution seems to be to simplyLoadFile /System/Library/Frameworks/CoreFoundation.framework/CoreFoundationin httpd.conf, before the LoadModule line for mod_zeroconf. This will be superfluous when I get the module to work with DNSDiscovery which would be the preferred interface on the Mac anyway. I hope to some day have the module work with either one as a configure option.

Be Sociable, Share!

ZeroConf BOF at LinuxWorld

My BOF at LinuxWorld was last night and I think it went pretty well.

About ten people showed up, which justifies that I wasn’t the only person who cared. The LinuxWorld organization doesn’t provide audiovisual equipment for BOFs, but the guys at Covalent lent me a projector so I was able to show my slides anyway. Thanks! Scott Herscher was there and talked a little bit about Howl. Apple’s Stuart Cheshire showed up and answered a lot of questions. He’s one of the main architects of the technology and works on Rendezvous for Apple. He brought a bunch of small devices that use the technology, including an Axis webcam that runs Linux and advertises a web page with the camera stream on it through Rendezvous. On a whim, we set up an iTunes music share by starting an ad-hoc wireless network, and the other iTunes playlist showed up in my iTunes on the big screen almost immediately. Note: no one configured any IP networking, I chose a wireless network name and the rest Just Worked.

Stuart posed the question why more Linux distributions don’t include Zeroconf Networking, and someone responded that there are license and patent implications. For instance, the zcip link-local IP autoconfigurator has been removed from Sourceforge because the author is afraid to get sued for patent violations. The effect of a move like this is that it turns a software project into a political statement, and stifles adoption of this technology in a quagmire of fear. This may be caused by the impression that Apple sues people willy-nilly, which I don’t think they do. Have the authors of zcip received a cease-and-desist notice? Or are they just messing? Fortunately, none of the attendees at the BOF were lawyers. Oh, and an alternative IPv4 Link-local autoconfigurator is available .

I hope this session has attracted some attention to this cool technology. Adopting it on Linux can help making the platform easier to use in a networking situation… network printing on Linux still needs to be way easier (right, Eric?) and Zeroconf can help.

Be Sociable, Share!

Woof Woof!

Watching one of those Animal Cop shows tonight… an item about some neglected dogs: from neighbors, the cops learn that “the owner has spent the past several weeks in the hospital due to health problems.???

Someone wrote this. Then, an editor failed to catch it. Gotta love cable.

Be Sociable, Share!

Lost In Translation

We saw Lost in Translation the other day. Minor spoilers for the five people who haven’t seen it yet.

I liked it. My first impression is ’empty’. There’s a lot of space in this movie, which nicely contrasts the whole Japanese craziness. I haven’t been to Tokyo yet: someone needs to pay me to go there some day.

Bill Murray’s portrayal of the burnt-out movie star reminds me of my Douglas Adams encounter: my former company (when they had money) had Douglas Adams give a keynote speech at ApacheCon 2000 in London. One would think, hey, great, get the local boy for the keynote, but it turned out that he had moved to Santa Barbara a few years back and the rider on his contract specified a First Class ticket on British Airways… he flew in that same day, and was totally jet lagged at the book-signing that followed the speech. I had found a first edition of Dirk Gently’s Holistic Detective Agency at an online rare bookstore that I had signed, and he acted a lot like Bill Murray did in the movie.

Having Bob not boink Charlotte is IMHO a very good move and makes the movie stronger. Bob does get to sleep with the lounge singer, but who are we to judge his character?

Be Sociable, Share!

Fun with the Perl Framework

Installed the perl-framework today on my Panther G4. Couple of observations about the modules that back it up.

This morning, I’m installing the httpd-test/perl-framework on my G4 tower in anticipation of the second release candidate of httpd-2.0.49. If I am done earlier than the RC, I may start on RC1 anyway.

As many know, running the perl-framework test suite for httpd requires installation of a bunch of Perl modules. The framework tends to gracefully skip tests if the corresponding Perl modules aren’t installed, but that is not the purpose oft he framework, is it?

br /Turns out that perl-framework/Apache-Test/lib/Bundle/ApacheTest.pm has the entire list, so you can just follow that in the CPAN shell. I usually do not install the entire bundle at once, because I have seen installations fail and my attitude towards the Perl module installation base is one of respectful fear.

the (newishly added, from my point of view) module IPC::Run3 fails one test. I force installed it anyway.

The HTTP::DAV module is not listed, probably for good reason. As the name implies, it is necessary to run the tests against mod_dav. It turns out that HTTP::DAV depends on XML::DOM, which lists as prereqs XML::Parser::PerlSAX, XML::Parser and XML::RegExp. XML::Parser::PerlSAX depends on XML::Parser, so it would make sense to install the latter first. Everything depends on Expat.

Expat is obtained from Sourceforge and installed in /usr/local. It spews a ton of warnings during compilation, and its DejaGNU tests bomb out spectacularlly, but its presence makes XML::Parser build and satisfies its tests, so I’m happy. Subsequently, XML::Parser::PerlSAX fails one test, which makes me 97.78% happy. The other packages install without a hitch.

Oh, let me record the following for posterity, so that when I forget, again, I can go back to this Blog: to open the hood of a 1966 Ford Mustang, grab under the radiator grille, below the galloping horse icon, and pull the lever forward. Oil (a lot of oil) goes into the top of the block, where the hose from the carburator attaches.

Be Sociable, Share!

First Day

So, I guess this really is the first day of the rest of my life. Covalent has made the fuckedcompany.com Hall of Fame! And man are those commentators vile. These are, like, people that Slashdot wouldn’t have.

So, what’s next? Well, while this is all very sad, and I’ll miss my coworkers very much, it also means I’m Freeeeee… Just got the greencard (what timing), so I can work for anyone I like. Of course the Freeeeee sentiment does not apply to the mortgage, so I’ll have to generate some revenue in the near future. I will work for food, guys. And mortgage moolah.

Be Sociable, Share!