Tue, 24 Jun 2008

Wall•e Review

Last night Christine and I caught a sneak preview of Wall•e at Pacific Place.

In summary, this is simply the best movie of the year, and the best Pixar movie ever made.

The story telling, the characters, the themes, the movie excels at all of these, and more. The visual quality of the movie is astounding. I had to keep reminding Christine that this wasn't a real scene, particularly during the beginning of the movie where the bulk of the animation is spent on characters named Wall•e, Eve, and a cockroach.

I don't know how they do it, but they make the lead characters endearing without any significant dialogue-- and they're robots!

I give it five stars... I suspect this will break ground in ways that no animated movie ever has.

Name/Blog: Maelyn
URL: mostlycoastal.com
Comment/Excerpt: We saw this today. Included in the posse were 2 three year olds,a six year old, a thirty year old and a thirty-three year old... and am not sure who enjoyed it more. Thanks for the recommendation! This is the first movie I have been to since Jan 2005.

Mon, 09 Jun 2008

Everything Old Is New Again (Server Push & no-parse headers)

In 1995, the rage on the Internet was Netscape. They had just released Netscape 1.1, and it shipped with a new feature called "server-push". The guys at Netscape applied a concept from email (MIME type: multipart/mixed from mail attachments) and created multipart/mixed-replace. The idea was that sometimes you don't want people to download your web page, and have it remain on the screen-- sometimes you want the content to be refreshed, when and if the server chooses, and replace what was pushed a moment before.

I recall opening up Photoshop, creating several layers, and exporting GIFs that would get refreshed, and writing some CGI programs that would use this new mime type to display, what were in effect, server-driven animated GIFs. On the server side, you had to convince httpd (now apache) not to server-parse the response to the client... Since you, the programmer, had to decide what content to push to the client, having the server compute the mime type (is it a JPEG? A GIF? A HTML document?) or the content length (is this GIF larger or smaller than the one before it?) by parsing the content wouldn't work. So, a convention was born to precede any such scripts with "nph-", meaning, "let me tell the client what kind of file and how big it is..."

I just finished a project that incorporates this technology, but didn't realize that I'd be brushing up on this technique I first learned 13 years ago.

With a baby on the way, I wanted a baby-monitor I could check even when I was back at work. Most off-the-shelf baby monitors use limited range 900Mhz wireless spectrum with no Internet capabilities. Instead, I got a couple of Panasonic pan/tilt/zoom webcams, and to save $80/unit, I also got some Panasonic powerline adapters so I didn't have to buy the more expensive 802.11g versions. The adapters allow me to avoid inconvenient wiring, and keep the video IP traffic off my wireless network.

The cameras have a live video feature, which I didn't really think much about how it worked... It worked just fine in Safari and Firefox, and that's all that mattered. But live video is limited-- you can't see what activity has taken place throughout the day. Well it turns out the cameras have security features, allowing me to upload JPG still captures from the cameras when their motion detectors are tripped.

But the problem was, each time the sensor is tripped several dozen images would get uploaded to a remote directory, and I'd have to manually go through them one at a time.

It was neat, however, to be out and about, and to be able to pull up my iPhone and see who's been at my front door, or if my cats have been jumping into the crib...

The first incarnation of this project was simply an apache directory-index. Click the file, see the still, click back, click another file... Repeat ad nauseam.

So I thought, hmm, perhaps I can build a file manager and use some software to seam the images into an mpeg movie, or motion-jpeg. Group the images by hour of day, and provide a "delete" function so that I don't have thousands of images piling up...

Then the thought hit me to use server-push (by now you probably saw this coming), and as I did a little tcpdump (network packet sniffing) analysis, I realized that this is the exact same thing that the camera's firmware is doing for any browsers monitoring the "video" feed...

After a little web coding (1455 bytes to be exact-- I'll post it if anyone is interested), I wrote a simple script that lets me browse all the events that my camera has captured and uploaded to the Internet, view them in equivalent video quality as the camera's built-in server, and when I'm done, delete the batch of files representing that video.

But best of all, MobileSafari.app (the browser on the iPhone) can handle multipart/mixed-replace content!

Sun, 01 Jun 2008

On Apple Rumors...

The rumor sites are agog about the forthcoming 3G iPhone. Some rumors suggest that the iPhone will come with built-in GPS, others suggesting larger capacity in a smaller form-factor.

Even if the new iPhone remains at 8GB and remains the same size, "3G is enough" because the biggest bottleneck of the current iPhone is the speed of the EDGE network. With broadband comes the ability to network the iPhone with computers in your home and work networks.

I think this is likely to be a cross-platform integration, meaning that so long as your computer is running Safari or iTunes (which means either Windows or OS X), broadband 3G access means ubiquitous access to your bookmarks and your music library anywhere you can get a 3G cell signal. This also opens up the potential to be able to browse the iTunes music store from your cell phone, even outside the range of WiFi.

But another bottleneck exists on the current iPhone, which could actually just be lifted with a firmware upgrade, no 3G iPhone necessary. I'm talking about the requirement of a USB cable to sync your phone when the wireless bandwidth is there today (at least with WiFi). How cool would it be to sync your phone not only without a cable, but from anywhere in the world?

But I think limiting the iPhone to syncing with a single device is rather limiting... A key strategy for nearly every business is to sell your customers a product, and then find a way to sell that same customer another product. This strategy is simply what is responsible for Apple's recent meteoric rise on Wall Street-- they went from selling computers to less than 5% of the overall market, to selling iPods to nearly every man woman and child, to selling music tracks to selling phones, and set-top boxes...

...Set top boxes... which is where I think there is a lot of potential for Apple to expand their growth. It's not a far cry to consider than the iPhone could very well be a sophisticated remote control for your Front Row software on your Mac, or for your AppleTV, for that matter. But the AppleTV hasn't seen the kind of success that the iPod, iPhone, or even the Mac has in recent years.

In a previous post I suggested that ubiquitous uber-broadband access that would allow streaming HD content is still quite a ways off, at least over the Internet. And so I think an opportunity exists for Apple to shift their strategy around the AppleTV in order to capture more of the set-top-box market.

But as my friend Gavin pointed out, people just don't want another box in their entertainment console. The AppleTV would have to displace something to make significant inroads, and I see two simple feature additions that Apple could provide to get there.

The first of which, and the least likely of the two by my estimation, is one or more CableCard slots and/or a coax slot. The AppleTV, with its built-in hard drive, could put many a DVR to shame. Clearly TiVo has some of the best software on the market, but providers like Comcast still have a shocking number of their DVRs in American homes, sadly, including mine. This could even be sold in such a way as "miss something on your DVR? Download it from iTunes.com with your AppleTV"...

The second way to break into the consumer set-top-box market would be to simply drop in a BluRay drive. Clearly, Sony has the lead in this area today with their PS3s leading the BluRay revolution, and the reason they can afford to do so is because of the upside to Sony if BluRay gets a good portion of the market from licensing, movies, games, and media. They also have a financial model to make up the hardware losses with software and licensing margins, but so, presumably, would Apple.

In particular, getting revenue from iTunes music store purchases, video downloads, and monthly DVR service, the extra cost of putting in a BluRay drive might not be that much of a stretch of the imagination.

How likely is this scenario? There's a lot of speculation in this post, and I think it's very unlikely that it'll all come true, but I leave you with this final thought:

If I'm right, and Apple is still executing its strategy to move from "Apple Computer Inc." to the ubiquitous stylish consumer technology company "Apple", then the branding of the glue that ties all of these consumer devices together as ".Mac" begins to seem quite "off-message"... What you'd need, if indeed the iPhone becomes the central "remote control" of your digital lifestyle, if it becomes the device that defines the way you come to interact with data and services on both your computer, and your media center, is a service that is branded around the fact that it gives you access to "all of your stuff" no matter where you are*.

Which is my long-winded way of explaining what I think is the reasoning behind the purported rumor that Apple is renaming "dotMac" to ".me.com"...

(* So long as you're in range of a 3G data network)

Tech Projects Update

I've been on a tech-projects update kick recently. Not only did I upgrade the disk in my laptop a couple days ago, I also ordered the parts I needed for two other tech projects.

First, my good friend Gavin was moving and he didn't have the time nor inclination to fix his Apple 20" display, so he generously offered it to me with the warning that it was potentially on its last legs.

Also, I have an "800Mhz G4 iMac (Flat Screen)" (that's precisely what Apple calls it) that I've been wanting to install OS X 10.5 "Leopard" onto. In particular, I want to dovetail that computer onto the network backup scheme I've got going between my laptop and my Drobo. This computer is essentially my home "server", which runs Apache, MySQL, and a few other open source tools and utilities. Problem is, Leopard only installs on computers that have 512MB of RAM and a 867Mhz G4 processor or better.

Apparently the failure rate of the 20" displays are high enough that there's a cottage industry of replacement parts you can buy from companies like lcdparts.net. And as far as the 800Mhz G4, there's a neat utility called Leopard Assist which overwrites your CPU settings stored in Open Firmware with 867Mhz to fool the Leopard Installer into thinking your computer is faster than it really is.

Sure enough Leopard Assist allowed Leopard to begin installing, except I was reminded that my G4 iMac only has 384MB of memory-- 64MB in the user-installable slot, and 256MB in the "factory installed" slot. Drat. So, I ordered 512MB of RAM from Buy.com for the user-installable slot.

Well I installed the lcdparts.net inverter board, and the 20" display went from half-dim and partially usable, to not usable at all, which was a painful discovery after putting in all 27 some screws back in and reassembling the whole thing.

Taking it all back apart and putting the old, broken board (incidentally you can see the capacitor that gave up the ghost which spewed all its guts on the circuit board) back in confirmed that in fact, lcdparts shipped me a defective inverter board. *sigh*

But my tech projects sense of accomplishment was not all for naught... I still had the RAM upgrade to perform... My 144-pin SO-DIMM (which stands for "Small Outline Double In-line Memory Module") had arrived from Buy.com, so I could still achieve one of my goals!

So I open up the Buy.com box, and what's inside?

A packing slip that shows two parts-- the one part I ordered, and another part, a 168-pin DIMM. And what's in the box is... yep-- a 168-pin full size DIMM. ("Small Outline" RAM chips are used in laptops and constrained volume computers like the iMac and Mac mini)


So back to the drawing board... Until I realized that the factory installed memory module takes the kind of RAM Buy.com wrongly sent me. So I pulled out my torx screwdriver set, took apart the iMac, pulled out the 256MB memory in the factory slot, and installed the mistakenly shipped product. I had hoped to have a 768MB Leopard box, but 576MB will do the trick too.

At least Other World Computing sent me the right hard drive and upgrade kit, as that's the only tech project that went off without a hitch this week.

Khan Klatt

Khan Klatt's photo