Echo-7
ECHO-7: 01.2006

Echo-7: A Retrospective

I've had the Echo-7.com domain name since early 1999. It has been almost seven years since I first put up a website under that moniker. Over time it has turned into a place where I can play with new design and code ideas as well as a place to show the outside world what has been occupying our time.

The one thing Echo-7 has never been is important. It has never contributed to a greater world or aided in raising the human race to a higher mental plane. Nope. It's just another useless web site.

Before I lost this data for good (time may heal all wounds, but it has a tendency to lose all data), I thought I'd go back through the past five years and show a couple faces of Echo-7's past. Let's begin with the turn of the millennium...

2000
This was the longest-lived design for the site. We were watching a lot of anime at the time as you may gather from the imagery. It was my first use of XML to store data (the movie thoughts).

The recently seen movies section was borne from what my conversations involved with co-workers every day. They always revolved around movies for some reason so I figured I'd just write it down for site content. The recently heard section was inspired by our bathroom chalkboard on which people would write random movie and TV quotes.

By far, my favorite part of this design was the animated gif on this main page. The face was taken from the Star Wars manga (it's Obi-Wan).



2004
The next re-design was due to three reasons. I was feeling creative, I was tired of the old site, and I wanted to play around with XHTML.

This one was inspired by early sci-fi movies. It didn't come out as cool as I wanted, but it still had that flavor. This one was Strict XHTML and lots of CSS. By this time, all the data was in XML documents.

As you can see, I even tried a blog-like thing, but without the previous post and archive links, it just didn't work.

Viva la MST3K!

2005
Here's the previous design. This was a very conceptual thing. Again, I used Strict XHTML, CSS, and XML, but this time I made the XHTML extremely general. Lots of excessive DIVs and Ps with very uniform headers. The goal was to make a site that could have new stylesheets loaded in at any time and the data would work with every new layout. This layout has, if you look really close in the right light, the Steel Bridge in the background.

Unfortunately, I really don't have time to redesign the site all the time. I didn't even get through a second layout. I did start playing with pulling in external data, though. I pulled in the Netflix queue and other people's blogs.

The really crazy part of this was that it was only one page. Every link went to the same page and things are hidden or made visible depending on the querystring.

To see a cool site that has one page and a brand new layout depending on the CSS, check out CSS Zen Garden and click some "select a design" links on the right.

It is now 2006 and I have learned a lot over the years. I wish I still had screenshots of my "Kung-Fu Discotheque of Death" design where the whole site was a fake movie promotion site. Oh, well. Time loses all data...

Calling on the Newest Hogwarts Student


Each year Keiko, our good friend in Japan, sends us the cutest Japanese stuff at Christmas time. This year was no exception. By far, the best thing in the package was this Harry Potter cell phone carrying case. It's the full Hogwarts outfit...for your mobile phone! There's a little pouch inside where the phone sits and a tether to carry it with.

I wonder if there's a little Sorting Hat that helps you pick out your next phone...

Shibboleths of Puddle Town

Shibboleth is my new favorite word for two reasons. The first being that it's fun to say and the second being that it's the single word I have been searching for. The Oxford English Dictionary (the only dictionary that matters) defines it as:
"a word or sound which a person is unable to
pronounce correctly; a word used as a test for
detecting foreigners, or persons from another
district, by their pronounciation."
Basically it's a word that, when somebody says it incorrectly, other people can respond with, "You ain't from 'round these parts. Are ya?"

A lot of states are shibboleths. Louisiana (Loose-yan-a) and Missouri (Mi-zur-ah) come to mind. Now not being from either of those places, I could be typing the pronounciation incorrectly. And rightly so. Another victory for the shibboleth!

Portland is very simple to pronounce, but there are plenty of shibboleths in place here. Here's a short list I compiled of my favorites.

1) Willamette (will-a-met)
Very simple one, but some really-out-of-staters try to get all fancy with it. Will-a-metty or some such silliness.

2) Glisan St (glee-sun)
My favorite mis-pronounciation sounds an awful lot like glisten.

3) Couch St (cooch)
Yeah, it looks like couch (as in, "That couch looks mighty comfortable"), but it's not. This has to be my favorite because it looks like another word, is obscure enough that people don't hear it elsewhere, and important enough of a street to frequently come up in conversation.


photo taken by Travis Derouin

New Wave Toilet Seat

Possibly the ugliest toilet seat ever...

Stealing is Absolutely Wrong...For the Most Part

Part of the redesign of this site is to pull in the last movie watched. I modified it a little so I could also pull in the box cover image of the movie. Basically, Netflix has all their images in one place and each has a unique movie id number. That number is in the URL of the link so all I have to do is strip it out and put it into an image tag. Easy enough to do technically, but I ran into a small ethical speed bump.

One of the unwritten rules (although I'm sure it's written somewhere...hell, I'm about to write it now) of the internet is that is very rude and in bad form to use an image that's hosted somewhere else. This is because it uses that company's bandwidth instead of yours. Bandwidth costs money. Therefore, the logic goes, if you use an image on your site that's hosted elsewhere, you are stealing money from them.

For this, I can't host the image locally if I have it automated. That means I'd actually have to do some work. That is very counter-productive to my goal of this site. Hence the dilemma.

You can obviously see what my decision was. Here's how I rationalize it. The image is less than 2K and my traffic is probably less than 2 people a day. That's barely anything bandwidth-wise for a company of Netflix's size. Also, it's good advertising. Hey, if a classy geek like myself enjoys Netflix, then why shouldn't everyone? Amazon does it for Typepad blogs. It makes good business sense.

In reality, I'm doing them a service. Seriously, use Netflix.

The Circle is Now Complete

I have decided that the re-creation of Echo-7 has concluded. The final part was stylizing the code. As you can see, I went for an urban raven motif. Simple, modern, and not too blog-like.

The sidebar navigation is in place. Recent thoughts and monthly archive links. Yeah, very blogg-y, but also very useful.

I still might add stuff or move elements around, but this is the core of the new easily-updated Echo-7. Enjoy...

On Being Assimilated

In my continued effort to redesign Echo-7 to be A) easy-to-update and B) constantly updated with new content, I have succumbed to the pressure and given in to The Blog. But, in my defiance, I am not going to go gentle into that proverbial good night. The phrase "tooth and nail" springs to mind.

Instead of having my site hosted on some blog site, Wise Travis suggested using Blogger's free service and, instead of having it post to their servers, FTP it up to Echo-7. I didn't believe such a thing was possible and scoffed at his suggestion. But, lo and behold, it freakin' works. Brilliant! Brava, Travis!

This is a post I created on Blogger and it's hosted here on Echo-7. I made a custom, bare-bones template that I can easily format. For now I've commented out the Archive links, but they'll appear soon enough.

Here are a couple workarounds I've had to do:

1) Since I want a lot of other custom stuff on the page (including server-side processing) I am publishing to a sub-directory and then pulling in the file to display on my pages. That means, that I'm using Microsoft's FileSystemObject to open the .htm file and ReadAll of the text into the current page.

2) That brings me to my next workaround. Since Blogger only allows absolute links (and those links aren't accurate since I'm pulling info into a different page on a different path), when I pull in the data, I replace every local link to go to a page of my choosing. This page knows how to display the content.

It might sound boring, but it's working and I'm stoked (to use the parlance of my youth).

Foam...

The perfect foam on a great cup of coffee as seen from the lens of my camera phone.


Imbibed at Stumptown Coffee on Belmont in Portland, OR.

But Who Will Watch the Watchers?

Viva the evolution! Or should I say Echo-lution? No, I probably shouldn't.

In an ongoing, and quite transparent, effort to update my site with one simple goal (having an easy-to-update site that has constantly updated content) I bring to you, the faithful reader, the latest addition...

CHANGE O' THE DAY:
An automatically updated display of which DVD we last watched.

While this may sound easy enough to do by hand, you have to remember my lazy goal. I want this site simple to update. That means pulling in as much stuff from other sites so I don't have to do the work.

Netflix has RSS feeds to one's personal account info. Fortunately, they don't have a Credit Card Info RSS feed, but they do have a Most Recent Rental Activity feed.

I wrote the following function to grab the last DVD we sent back (presumably, the last one we watched) and display the result on the page. Simple and it requires no updating from me. Rock!


function LastWatched()
dim objXML, objNodeList, objNode, node
dim tempBlog, tempTitle, tempLink

tempBlog = ""

set objXML = Server.CreateObject("MSXML2.DOMDocument")
objXML.async = false
objXML.setProperty "ServerHTTPRequest", True

if objXML.Load([insert my personalized Netflix RSS feed URL here]) then
set objNodeList = objXML.getElementsByTagName("item")

'loop through until we get
'the most recently "Received" movie
for each node in objNodeList
tempTitle = node.childNodes(0).text

if inStr(tempTitle,"Received: ") > 0 then
tempTitle = Replace(tempTitle,"Received: ","")
tempLink = Server.HTMLEncode(node.childNodes(1).text)
exit for
end if
next

tempBlog = "<a href=""" & tempLink & """>" & tempTitle & "</a>"

set objNodeList = nothing

end if

set objXML = nothing

LastWatched = tempBlog
end function

The Audience is Watching What I'm Listening To...

Here's the deal. Amidst the chaos of a nearly-two-year-old and a busy work schedule, I'm recreating Echo-7 (yet again). My goals are to make it easy for me to update, but to have constantly updated content.

Instead of working behind closed doors, I'm going to put a piece up at a time (when I have time) until it's done. During which, I'll keep you, the faithful reader, up-to-date with the most current change.

Today's change is...
A real-time window into what's playing through my computer speakers.

I'm using Lauri Nevala's Now Playing plug-in for WinAmp. I set it up to FTP a code snippet to my server every time a new song is played. Here's the snippet:



<div id="track">
[np:IsPlaying]<p id="nowplaying">LISTENING TO:</p>[/np:IsPlaying]
[np:NotPlaying]<p id="nowplaying">LAST HEARD:</p>[/np:NotPlaying]
<p>
<span id="artist">[np:Artist1]</span>

<span id="title">[np:Title1]</span>
</p>
</div>


On this page, I use a server-side include to pull that snippet into the flow of the page. The site's CSS formats it.

The good part is that it keeps Echo-7 constantly updating without me having to do any extra work. The bad part is that everybody will know when I've been listening to Journey again.