July 2004 Archives

Infocus 4805 projector


infocus 4805Some weeks ago we got an Infocus 4805 projector. I picked that one because it got good reviews and at $1500 was one of the cheapest 16:9 DLP projectors I could find. Crutchfield have a 30 day return policy with no restocking fee or any such sillyness, so I thought I'd be worth to try out rather than ordering a more expensive one.

If you go higher you are mostly paying for higher resolution, which you can't use anyway if you just use it for DVDs and a PlayStation 2 (like me).

It's awesome. We don't even have a screen yet (those things are expensive...) and I'm super impressed. We can't easily make it dark in the day, but at night it's looks great.

We use the DVI connection on Vani's powerbook to watch DVDs (requiring the M1-DA cable). Digital connections rock, I keep saying "oooh, aaah" when I see it. I also got a cheap component cable for the playstation which was big upgrade from using the composite cable.

I couldn't get the VGA connection to work properly with my powerbook, but I didn't try very hard after seeing how nice the DVI connection makes it look.

As a side note, Crutchfield rocks. I can highly recommend them.

4805 product description on the infocus site.

Great Hackers


I've taken more notes both wednesday and today thursday but I'm way behind on putting them into MT. Maybe I should just write directly into the MT interface instead of taking notes in text files. Or use Blosxom and just publish text files.

Anyway, Paul Graham put up an article derived from his keynote talk yesterday: Great Hackers. I haven't read it yet, but I really enjoyed the talk.

If you are managing or hiring geeks, you should read it. :-)

DBI 2.0

Tuesday late afternoon Vani and I went to dinner with Tim at Veritable Quandary. Food was great, even if we ended up inhaling the desert to make it back to Tim's DBI Driver Developers BOF.

If DBDs are upgraded they can be made to work with both (new) 1.x DBI versions and with 2.x DBI.

DBI trace level will be a bitmask instead of just a number. 8 bits will be reserved for drivers. There'll also be "trace keywords" with levels independent from the general trace level.

dTHR will be mandated in the drivers for DBI 2 which will make DBI slightly faster in embedded and threaded eenvironments (mod_perl 2).

$sth->reset (name to be determined) method to reset the statement state (call finish, reset attributes etc). This is to allow passing in handler attributes when you run prepare and to be able to run prepare again on a $sth.

unicode: maybe there'll be some utility functions for the drivers to use, but essentially it'll still be up to the drivers to do the appropriate thing for the database. Matt suggested writing up strong guidelines for how the DBDs should work. He was then volunteered to do it. :-)

Preparse magic: makes it easier to move SQL from one database to another.

Improving the test suite so the same test suite can be used by all the different drivers. So if you start writing a new driver you'll have an instant test suite. It'll also help making sure the driver behaviors don't divert in subtle ways.

There's also the DBI TODO (username and password is guest).

Tuesday morning I stopped by a few minutes of Joe Celko's Advanced SQL Tutorial. Joe has an amazing knowledge of the SQL language, no doubt. Lots of arcane knowledge and references to "when we had the discussions in the SQL committee we did discuss that". But the tutorial was a bit too DBAish for me. By that I mean too much "this is how data should be neat" rather than "this is how you solve real business problems". While I was in there he was talking about not inventing new ids for something that already have standard IDs. For example vehicles have VINs, so you shouldn't invent your own primary keys. The pragmatic programmer in me screamed "but what when you need to add a record for a vehicle you don't have a VIN for yet" (insurance agent adding a new car to a quote so the customer can just call with the VIN to finish it up later or whatever). Anyway, so after seeing that kind of thing a few more times I left.

In the afternoon I stopped by Jeremy Zawodny's MySQL Performance Workshop. Lots of good, even great, tips and hints on things to do to test and improve MySQL performance. But alas, in the time I was in there I didn't pick up anything I didn't already know. (I've used MySQL for how many years now? 7? Is that even possible?)

iSight, OSCON day 1

I brought my iSight. I wish there was more bandwidth here so I could do something fun with it ... Hmn.

Yesterday we went to see Life of Brian with David Wheeler, his brother Alex (if I recall correctly), Casey and a bunch others. It was great, naturally. When we got there we thought we had lost Vani's stack of cards, so we rushed in a cab back to the hotel to find them and then get our rental out and drove back just a minute before the movie started.

Sitting in the last half of Matt's Anti Spam Tutorial now. I've already spent much too much time with that sort of thing, but it's good. And qpsmtpd is included. Yay. :-)

Powells Bookstore


Holy @#$%#, that place is big! And we weren't even in their technical bookstore or the travel bookstore.

I thought it'd just be yet another bookstore, but it is indeed very cool. Every topic I went to had an impressive selection. Not Amazon.com impressive, but very very nice. And it's a lot more fun flipping real pages than virtual ones at amazon.

And there's a Whole Foods around the corner from it.

Vani and I are thinking that maybe we should move here some day. Of course now we are also in the middle of the glorious summer here. And everyone seems very nice. Compared to L.A. we are missing a bit of diversity though, all afternoon we saw just one (1!) asian outside of the hotel.

OSCON Network


Eeek. The OSCON network seems to be misbehaving in new and interesting ways this year.

First, port 5222 and 5223 (jabber) seems to be blocked. At least I can't connect to my jabber server from the wireless network. Other ports on the same box are working. We have our jabber server setup with SSL so we can have our secret IMs encrypted to the server.

Second, the reverse dns is spectacularly messed up. The executive summary:

  • the servers who are delegated the reverse lookup zone don't know that and give a confused answer rather than just "don't know about that, go away".
  • queried from the outside they are just dropping requests.

It looks like they are recursive servers for their customers only and they shouldn't have real zones delegated to them.

OSCON key signing

With Module::Signature it would make more sense than ever if the Perl community got a good web of trust built.

The most productive thing, of course, would be if someone organized a keysigning event, but I suspect it's too late for that this year. (There's a keysigning page on the OSCON wiki).

But even then I'd like to sign some keys and get my key signed. If you are going to be at OSCON and want to try, then do this:

  1. Email me your fingerprint and your public key
  2. Write down my key fingerprint on a piece of paper or your laptop
  3. Find me at the conference and we'll confirm identify and key finger print and make a note of it
  4. Later we'll sign each others keys and email them back.

If you don't already have a key, you can generate one like this

gpg --gen-key

If you have to be ready to keep this key, and keep it safe for years! You might want to add an expiration date to your key so it will expire in a couple of years.

To export your key data and your public key:

gpg --fingerprint  KEYID/userid
gpg --export -a KEYID/userid</tt> 

Further reading: ApacheCon 2003 keysigning.GnuPG Keysigning Party HOWTO.

This is my key:

pub  1024R/62C48B29 1996-01-22 Ask Bjoern Hansen <ask@develooper.com>
     Key fingerprint = DE E6 00 0E B2 45 44 5C  1F FB 38 94 06 3A 0E B4
uid                            Ask Bjoern Hansen <ask@netcetera.dk>
uid                            Ask Bjoern Hansen <ask@plys.net>
uid                            Ask Bjoern Hansen <ask@perl.org>
uid                            Ask Bjoern Hansen <ask@apache.org>

Lounges at OSCON


Some time ago I got a mail from O'Reilly about OSCON, saying that the speaker registration / lounge will be at 16th floor. I think that's the top floor with the suites. I thought it was great. I was thinking that hopefully it'll be EMPTY and the big room that was the speakers lounge last year will be used as a general lounge area. (But alas, no - see below). The speakers lounge should be TINY. With "no talking!!" signs everywhere.

Yes, of course the lounge is great. Lounge areas are great. It's one of the best things about the conference. But having everyone with a speakers badge hide in the "speakers lounge" is just silly. And sad. Having a smaller room far away to be used as the speakers lounge is great. Next year just make it a regular hotel room!

But darn, I see on the convention map that last years speaker lounge is now being used as a session room. Are there more simultaneous sessions this year? I don't remember the exact layout from last year. Are all the small rooms downstairs still being used?

So still no big general lounge area ... Where are we supposed to hang out in between sessions exactly?

As a cool sidenote: This year all the presentation boxes are OS X (powermacs or powerbooks) rather than dual-boot Linux/Windows things. Go Apple!

Like Geoffrey Young I only recently discovered the wonder that is Devel::Cover. I used it today to "check the tests" for a new Perl module I was writing. In the process of writing more tests to get better coverage I managed to uncover a few bugs. Yay.

It also had another interesting effect on my code writing. Seeing all the conditionals and occasionally branches I couldn't get my tests to reach made me simplify a lot of my "defensive" statements.

I am using Module::Build to build, test and so on. When running "perl Build test" to get the coverage metrics I'd get metrics for the Build script as well, which I wasn't interested in. It took me some trial and error to figure out how to pass the proper parameters to Devel::Cover. A comma between parameter and argument did the trick.

PERL5OPT=-MDevel::Cover=-ignore,Build perl Build test;
cover -report html -outputdir /home/ask/public_html/tmp/coverage

On a related note, Pod::Coverage via Test::Pod::Coverage is brilliant to check if you got all your public methods and functions documented. Too bad it can't parse if the documentation makes any sense. :-)

update: see also How to misuse Code Coverage (PDF).

Roomba customer support


roomba proWe have a Roomba at home to sweep our floor while we're out (it's really noisy). Yes, from iRobot makers of the "next step in unmanned tactical mobile robots". In other words: They are makers of robotic killing machines!

For Roomba Customer support, go to iRobot Service / Support.

Anyway, one of the evil cats ate the power supply some time ago, so it hasn't gotten much use lately. (Her cats, I usually say when they do things like that)

I sent them an email through their online email form on monday and today they got back to me that they've sent us a new one. Woohoo. 2 stars for response time, 5 stars for resolution.

About this Archive

This page is an archive of entries from July 2004 listed from newest to oldest.

June 2004 is the previous archive.

August 2004 is the next archive.

Find recent content on the main index or look in the archives to find all content.


OpenID accepted here Learn more about OpenID
Powered by Movable Type 4.38
/* bf */