Prototype

April 27, 2007

Crossroads‘ upcoming website has a prototype.

As of today, the colors, layout, and layout graphics have not been finalized. This prototype will continue to evolve. You can watch it as it evolves.

Some of the design parameters we chose for this site are:

  • 16/9 aspect ratio
  • more picture than text
  • minimal use of flash (we use MooTools for effects)
  • not too many choices all at once
  • everything loads in a single page
  • standards compliant
  • well defined article structure

This is being generated by Bricolage on a server currently sitting in my basement. The files on the public site are flat files. We’re also planning to use Bricolage for our other publications including our newsletter. The goal is to have a single pipeline through which content flows.

Comments and suggestions are welcome.

By the way, it doesn’t work in Internet Explorer yet. Get Firefox.

Oh, and the lovely lady sledding is my wife Shari.

I told Shari the other day that I was soon going to announce Crossroads‘ official new operating system. I asked her to guess what that was. Her first guess was MacOS. I said nope. She gave up.

I said, what desktop applications do you actually run? She said that on rare occasions she runs OpenOffice and often uses the desktop calculator. Other than that she couldn’t think of anything else. Almost every application she uses runs in her browser. Off the top of my head that includes Basecamp, FellowshipOne, Google Documents, Vitalist, Gmail, Google Calendar, Backpack, and Google Reader.

In an environment like this, the desktop OS no longer matters. One of Sun’s marketing slogans back in the early ’90s was, “The Network is the Computer.” That is finally true. It is not by any authority that I do this. It is a simple admission of reality.

I hereby declare Crossroads’ official operating system to be Firefox.

Tech Snobbery

April 15, 2007

Oh dear. I’ve been declared a Tech Snob of the highest order by Jim Walton.

I’ll admit it. I’m a snob when it comes to tech, particularly operating systems. But I’d like to think of my comment on his blog as more of a confession than a proud boast. It’s a statement of my sinful nature.

I got to thinking. We, as ministers in “emerging” churches, are church snobs. We tend to think that the contemporary methods of doing church pioneered by the likes of Saddleback and Willow Creek are much better than the old ways. There may be some truth in that, but that doesn’t excuse the snobbery.

So how do you defeat snobbery?

screenshot-1.pngI’m really loving Bricolage. In Joomla I used a pluggable component to do this, but if I had needed to write my own it would have been a major hassle. In Bricolage I can do it with just a few lines of code and a custom document type.

Every miniscule subelement of the page is templatable. In Joomla you can only have a template for an entire page. The subelements are completely controlled by the components and modules. Allowing fine-grained control makes it much easier to create standards compliant sites.

With the following template, a Bricolage user can easily create an aggregate feed and assign as many feeds to it as they want. The user sees what’s in the screen-shot. I’m using Perl with HTML::Mason, but you can also use the PHP burner if you prefer PHP.

<%perl>
use XML::RSS::Aggregate;
use HTML::Entities;
use DateTime::Format::RSS;
my $fmt = DateTime::Format::RSS->new;
my $max = $element->get_value('maxentries') || 100;
my @feeds = map $_->get_value, $element->get_fields;

my $rss = XML::RSS::Aggregate->new(
    title => $story->get_title,
    link => $story->get_primary_uri,
    sources => @feeds,

    sort_by => sub {
        my $item = shift;
        $fmt->parse_datetime( $item->{pubDate} || $item->{dc}{date} )->epoch;
    }
);

</%perl>

<h1><% $story->get_name %></h1>
<p><% $story->get_description %></p>

<dl>
%for my $item ( @{$rss->{items}} ){
    <dt><a href="<% $item->{link} %>"><% $item->{title} %></a></dt>
    <dd><% decode_entities( $item->{description} ) %></dd>
%   last unless --$max;
%}
</dl>