afongen
Sam Buchanan's weblog.

Practical mod_perl

Here's the book I've really been waiting for: Practical mod_perl was just released. If the sample chapter, "Coding with mod_perl in Mind," is any indication of the quality of the rest of the book, I will be in heaven.

Amazon connections.

Customers who shopped for How Would You Move Mount Fuji? Microsoft's Cult of the Puzzle - How the World's Smartest Company Selects the Most Creative Thinkers also shopped for … Girls of Topless Volleyball.

Heh.

Checky 2.0

Checky 2.0 has been released.

And hey, it's been ported to IE: CheckIE.

Errant Architectures.

Errant Architectures, in which Martin Fowler explores some of the problems with distributed architectures: namely, there's a huge overhead to distributed objects. One solution he discusses is the Remote Façade, in which course-grained objects are used at the distribution boundaries to provide an interface to finer-grained objects. The benefit is that you can reduce network traffic overhead by making as few remote method invocations as possible. His preferred solution, though, is not to distribute objects in the first place.

By happenstance, I read this article a couple days before coming across the Remote Façade (aka Session Façade) in Rod Johnson's wonderful Expert One-on-One J2EE Design and Development. He derides the idea as not so much a design pattern as a workaround to problems introduced by distributed architecture. I really like the tone and practical stance taken in this book. I'm learning much even though I don't do anything with J2EE. Yet.

In a sidebar to his article, Fowler writes:

In this discussion, I've assumed a synchronous, RPC-based interface. However, although that's what I've described, I actually don't think it's always the best way of handling a distributed system. Increasingly, my preference is for a message-based approach that's inherently asynchronous. In particular, I think they're the best use of Web services, even though most of the examples published so far are synchronous.

He then points us to Enterprise Integration Patterns. Good stuff. Lots to take in. In particular, I'm suddenly very intrigued by asynchronous messaging. Quite different from how I usually think about things, although at first glance it seems that I may have already given it some thought through my dealings with Jabber.

So much to learn. So much fun to be had.

Chandler in Higher Education.

You may recall that the Open Source Application Foundation recently received a $98,000 grant to help extend Chandler (their first product, a personal information manager) to meet the needs of higher education. They've now released a report that outlines their plans: Chandler in Higher Education - "Westwood". Westwood will build on the first full, stable release of Chandler.

After working closely with representatives from a number of universities we concluded there were four key recommendations for incremental functionality in Westwood:

  1. Nomadic usage and central Repositories
  2. Standards based Calendar Access Protocol (CAP) Client
  3. Full interoperability with standards based infrastructure
  4. Robust security framework

The full report is actually fairly interesting.

MS bookmark purge.

Microsoft stuff that's caught my attention and that's cluttering my bookmarks:

Perl 6 Essentials

One more for my reading list this summer: Perl 6 Essentials.

The Selfish Class

The Selfish Class.

This paper takes a code's-eye view of software reuse and evolution. A code-level artifact must be able to attract programmers in order to survive and flourish. The paper addresses the question of what an object might do to encourage programmers to (re-)use it, as opposed to using some other object, or building new ones.

Whether despite or because of the code's-eye view, in the end these are worthwhile thoughts about writing re-usable software components.

Disney's self-destructing DVDs

Disney will start selling DVDs that self-destruct. Exposure to oxygen will render the DVDs unplayable after 48 hours.

I betcha they wish they'd done that when video tapes first appeared.

I wonder how these will play out in the marketplace. This scheme alone won't prevent duplication, of course, but I don't believe that was ever Disney's primary concern (they're worried about controlling how and when we view what they consider their property). The DVDs are being sold as "rentals," so consumers won't expect long-term access. Never mind that 48 hours is not long enough. If the DVDs are cheap enough, people might not honestly care about the time limit — unless the DVDs don't play at all, which is bound to be the case on some "unapproved" hardware like computers (viz. Macs, as we saw with copy-protected CDs).

Unfortunately, I don't expect this to completely backfire on Disney. If public reaction is poor, they can either quietly retire the idea or continue to put such a spin on it that it's eventually accepted. I mean, the RIAA and MPAA have successfully done this with filesharing, haven't they?

The Cognitive Style of PowerPoint

Edward Tufte: The Cognitive Style of PowerPoint. I might actually buy this.

Appopriate use of J2EE.

Annraí O'Toole: The Problem with J2EE. "…while J2EE is great, it isn't the answer to every problem, specifically it is overkill as an infrastructure to deploy Web Services."

Jon Udell: Appropriate use of J2EE/EJB.

Not that this has anything to do with web services, but… A few weeks back I heard some rumbling about requiring that any CMS we use be J2EE compliant. This pissed me off for a couple days.

  1. This criterion was being added by people who neither understand Java development nor are involved with any of the systems on which our web sites are deployed.
  2. We're not a Java shop.
  3. There's not a helluva lot of J2EE in the open source CMS world, obviously not in those written in languages other than Java. I'll resist any effort to needlessly exclude open source solutions at the outset.
  4. Requiring J2EE is a vendor-driven idea. It seemed pretty clear that this was being suggested to play nicely with Oracle, who have a portal to sell us. Call me crazy, but I'm a sucker for choosing software that meets an organization's needs rather than a vendor's.
  5. Isn't J2EE just a wee bit overkill?

Eventually I calmed down. We'll need some sort of interoperability, I reasoned, and as long as it's not set in stone as a requirement, J2EE might be useful. Too, it turns out that it's just a suggestion. But still. It should not surprise me, but it sure as hell bothers me, the way these ideas are just tossed around as if they're givens.

Tradeoffs

Blast it, I missed yet another TCPHP meeting on Wednesday. Looks like it was a good one, too. I'm just going to have to give up deluding myself that I'll ever make it to one.

On the other side, that night I got to see The Matrix. That makes up for it, I suppose.

And then last night I got to spend a few hours with Owen walking along the Mississippi River. He's started to be ticklish, which is just so much fun. There is no sweeter sound to my ears than my son's laughter. He got tired after a while and dozed off on my shoulder as we walked, but occasionally would raise his head to stare wide-eyed at the trees. He is so damn adorable it breaks my heart.

Later that evening, I surprised myself by remembering to watch the lunar eclipse. Can't remember the last time I saw an eclipse.

It's strange, though. Normally when I look at the moon, I get a vivid sense of being a very small part of a very large planet, which is itself a tiny speck in the universe. This is at once humbling and enthralling. It's the only time I ever even come close to imagining how truly vast and miraculous the universe is. I would have expected the eclipse to be even more awe-inspiring, but instead my reaction was very cold and analytical. "Oh look, the earth is casting a shadow on the moon, isn't that unusual. Er, pretty." I didn't feel it in any way. Bit of a let-down, that.

Now I have a sudden urge to reread The Soul of the Night.

Matrix

Kiara surprised me last night by taking me to see the Matrix. I didn't expect to be there opening night; since Owen was born we haven't been so gung-ho about seeing movies early on. So wow, what a surprise!

Very, very cool. Maybe not quite as cool as the first — if this movie stood alone I'm not sure that I'd be hyped up for a sequel — but I am already looking forward to seeing it again. I have a lot of questions, most of them having to do with Neo's conversation with the Architect.

Here's a tip: stay through the credits. You'll be treated to a preview of The Matrix: Revolutions.

Update: I forgot to mention: the Matrix runs on Unix! Unpatched Unix, too, as these screenshots demonstrate. Note how she's able to get root.

State Accessibility Laws

Via Bob Regan's Macromedia accessibility weblog, a list of (US) state accessibility laws and policies.

Minnesota's done some good work with laws, but our web accessibility guidelines are pathetic. A group of state agency webmasters spent a few months reviewing and editing standards and had a decent document, but for reasons that I still don't understand the version that was forwarded for approval was a watered-down, error-riddled, piss-poor excuse for a set of guidelines. It was as if someone whined, "hey, this is too hard," and ripped out everything that was good, correct, and meaningful.

Not that I feel strongly about it or anything.

And really, reading through it again, it's not a completely useless document. But I strongly believe that it needs to be reviewed and updated.

I'm quite impressed by Illinois's standards and, now that I have a list to work with, plan too spend some time looking at other states' standards and guidelines. I'm curious how many have created their own rather than just adopt Section 508 or the W3C's guidelines.

Happy Birthday, Robert.

I can't believe that you're two years old already.

Open Source Digest

I just stumbled into this: the Open Source Digest, now in its second issue. I can't tell anything about it from the web site, but the articles are informative.

Not-So-Quick Links

Bookmark cleaning time.

The World as a Blog.

This is nifty. Combining weblogs.com, RSS, and GeoURL, Mikel Maron does a sort of real-time geographical display of weblog updates. Every minute or so one or more new dots appear on the map, along with an excerpt from the RSS feed. Click on the dot to visit the updated site. If you use GeoURL, you can log in with your geocoded URL and see who else is watching the world update.

Nothing pisses me off like a software package that ignores --prefix.

So says Nat Torkington, and ye gods I'm with him.

I'd like to quote the gem of a last paragraph but then this site might be blocked the filters at Kiara's school. Then the kids couldn't see pictures of Owen. So just read it yourself. I'm still laughing a day later.

No, I don't mean "Mumble grumble," which I suppose is actually the last paragraph. Sheesh.

And he included a pointer to where he's got a .dmg of Perl 5.8.0 build for Max OS X. Thanks, I've been meaning to look for that, just in case I didn't feel like building it.

U.S. says Canada cares too much about liberties

Those damn freedom-loving Canadians:

The State Department report on global terrorism for 2002 suggests that while Canada has been helpful in the fight against terrorism, it doesn't spend enough on policing and places too much emphasis on civil liberties.

That's right, "too much emphasis on civil liberties." Of course, that article is from Canada.com, and you know how those Canadians are hell-bent on world domination.

Here's the US State Department's Patterns of Global Terrorism report, by the way. Should make for interesting reading. I, for one, am interested in why concern for civil liberties has become a threat to freedom.