Thursday, July 23, 2009

The cloud as a computer memory tier

Is it time we stop thinking about the web as an external entity, and instead start thinking of it as a new layer of computer data storage?

What kind of doors does it open if we assume a persistent, reliable connection and treat 'disk' as more of a caching layer for the vast amounts of data available on the web.

Just as RAM and hard disk have their own performance considerations, I think this new layer could be characterized via the following set of properties:
  • Read-only (or maybe read-write on servers you own or limited write capability on sites offering some kind of web services)
  • Volatile (really depends on which sites are hosting the data, but in general probably don't want to assume that whats there today will also be there tomorrow)
  • Virtually unlimited storage (and ever-expanding),
  • Extremely cheap (free, subscription, or pay-per-byte)
  • Very slow (but getting faster)
  • And finally: intermittent failure
There's an emerging set of internet services popping up that are making a more read-right flavor of this cloud-based storage tier which would probably also address the volatility aspect.  Will be interesting to see where this goes...

Wednesday, April 29, 2009

JMS is not a protocol!

I can't tell you how many times I've heard senior folks (even technical ones) refer to JMS (the Java Messaging Service) as a standard for passing messages between disparate systems.

Don't let comments like this fool you.
JMS is an API, not a protocol.

Wednesday, March 4, 2009

How Do I Live Without You: Google Notebook Edition

Like so many others using the Google Notebook service, I was totally bummed when they discontinued support a few months ago. I searched and I searched but I could not find a suitable replacement which provided all the various features I've come to know and love in notebook:

1) Grabbing quick excerpts from webpages and letting me add comments.
2) Tracking interesting Quotes (both from webpages and user-entered) and providing it as a feed which I then used at the bottom of this blog.
3) Organizing notes by both hierarchy (notebook/section) and more importantly by tagging.
4) Providing a killer search feature which scours my notebook for all the relevant notes I've left myself which mention that search topic.

Tuesday, March 3, 2009

Please Don't Use Port 80 (Unless You Are My Web Server)

I recently went to run a sample app which used port 80 for its web UI. Despite the fact that this strikes me as a horrible default(1. port 80 is the default for a web server so if you have one you can expect conflicts, 2. linux users can't touch port 80 unless they are root), I was shocked to find that something on my Windows XP laptop was already using that port. No web server was up and I only had a few programs running. I decided to go the old-fashioned route and popped open a command prompt:


> netstat -ao
ProtoLocal AddressForeign AddressStatePID
...
TCPLEELAPTOP:httpLEELAPTOP:0LISTENING5108
...

> tasklist /?
...
> tasklist /FI "PID eq 5108"
Image NamePIDSession NameSession#Mem Usage
Skype.exe5108Console043,008 K


http://hasin.wordpress.com/2007/06/28/damn-why-the-hell-skype-is-blocking-port-80/
!?

So it turns out this has been a "feature" of skype for a very long time. To their credit, this was insanely easy to turn off (Tools->Advanced->Connection and uncheck "Use port 80 and 443 as alternatives for incoming connection"). But I'm still shocked/amazed that this would be on by default.

Friday, January 30, 2009

Discovering ASN.1

As part of my work for the Continua Health Alliance I've had to learn a messaging-related telecommunications standard called ASN.1

The ASN.1 standard contains two logical parts
  1. A way to define messages in abstract normal form
  2. FooProtocol DEFINITIONS ::= BEGIN
    
        FooQuestion ::= SEQUENCE {
            trackingNumber INTEGER,
            question       IA5String
        }
    
        FooAnswer ::= SEQUENCE {
            questionNumber INTEGER,
            answer         BOOLEAN
        }
    
    END
    
  3. A series of platform-agnostic encoding and decoding rules that normalize the transimission of said messages
  4. Encoding rules range from simple encodings like the Basic Encoding Rules (BER) to ultra-compact binary representations.
My understanding is that just about everyone uses ASN.1, they just don't realize it. For instance, when you navigate to any page using 'https' your browser uses a set of signed/trusted Certificates to know your browser is talking to a trusted endpoint.  These certificates are expressed in ASN.1
But it seems to me that this is a very niche usage...a small subset of what ASN.1 is capable of.

In Continua, the "Personal Area Network" standards which define how personal/consumer-level medical devices (like a weight scale) should talk to a controller/management program/device (like a cell phone) are all based on this standard, only with a special set of encoding/decoding rules called the Medical Device Encoding Rules (MDER).

When implementing a prototype with my IBM colleague Randy Carroll, we had trouble finding an ASN.1 library with an appropriate license and support for the special encoding. Luckily for us, the IEEE 11073 "personal health" standards which defined the messages used a limited subset of the full ASN.1 so we began our own implementation at https://www.projects.openhealthtools.org/sf/projects/stepstone (more on this in a future post).

Just recently I learned about a new messaging standard being release by Google called Protocol Buffers. Boy does it sounds similar. Only, being Google, I'm sure this new protocol technology will be touted as revolutionary and quickly beat out ASN.1 in terms of adoption level.  One thing is for sure, Google will make it a lot more accessible than the pages and pages of spec that make up the "X.680 family of specifications".

I wonder, if ITU/ISO/IEC had embraced a more open, spent some time making it easy to read and get started with ASN.1, if it could have really taken off and seen widespread adoption across the IT landscape.

Thursday, January 1, 2009

State of Internet TV

Watching television over the internet seems to be a hot new area.  Aside from youtube, there's a ton of smaller sites popping up in this area. Here are the rough notes I put together while trying to piece it together:

The Contenders

hulu.com

Seems to have content from NBC, FOX, Sony, MGM

tv.com

CBS has announced a large content deal with MGM, PBS, Showtime, Sony and Endemol USA to broadcast popular television shows on its TV.com website.

joost

From the guys that brought you Skype.  Lineup includes:
CBS
Comedy Central
Beginning with the N.C.A.A. basketball tournament this spring, Joost plans to carry live programming. That's a technological nightmare, but Joost's software may make it the first company that can send live shows to millions of users. Imagine Florida retirees from Chicago watching Cubs games live over Joost. Or soccer-crazed kids in U.S. suburbs tuning in to European soccer matches.

ABC.com

ABC (obviously)

brightcove

Showtime

zattoo



.tv as a domain extension

Just like .com, .org, or .net. But unlike those extensions, .tv is catchy and memorable. A .tv tells users that a site is a rich media website. And you don’t need to be a television network to get a .tv extension -- .tv domains are unrestricted, meaning that anyone can get one.

ustream.tv
DNAStream.tv
justin.tv
boxee.tv


Aggregators:
veoh
AOL
beebo

Technology:

Everything seems to use Adobe Flash or Microsoft Silverlight.
HTML5 coming sometime with support for video?