Archive for August, 2008
Like many people when I first heard that McCain has chosen Palin to be his VP, I was perplex and thought it was an odd choice. How can he chose someone with so little experience in the area that America needs right now, economics, international relations and fighting terrorism around the globe.
After much research, I’ve came across a treasure trove of videos on YouTube that shows that Palin, in fact is ready to be VP.
I first saw this video on reddit about a year ago, a famous talk by Alan Kay given about 11 years ago. I’ve watched it many times and each time understanding it a bit more.
The first time I watched it, I found his proposal that every object on the internet should have an URI and/or an IP address interesting (43:00). This was totally opposite of what I was doing at the time. We were near the end of the development cycle on BioShock and memory optimization was in full swing. Objects in Unreal engine are pretty heavyweight so we spent a lot of time stripping out unnecessary variables and functionality from the base UObject class.
Since last year, I’ve learned a bit more about web technologies and now see what Alan Kay was talking about is realized by REST style web services. A little bit later in the talk (52:30), Alan expounded a bit more about interoperability on the web and says “[object capability discovery] is going to be the critical thing to automate in the next ten years,” which “allows an interchange of deep information about what objects think they can do.”
This has obviously not happened. Anyone that has to write against web services like Amazon, Facebook or Flickr knows a lot of trial and error is needed to make anything work, at least thats been my experience trying to use their REST api. Alan proposed creating a “universal interface language” to exchange this information, which sounds a little like WSDL, but what about automatic discovery of services? I haven’t found a protocol for REST introspection like there is for XML-RPC.
If the strength of REST is its simplicity and low barrier to entry, than perhaps introspection and automatic discovery would add too much complexity. Since most web services provide client libraries for most popular languages (PHP/Java/Python/Ruby) all this REST vs XML-RPC vs SOAP can be hidden from the programmer.
Yet I can’t help but think about the last advice Alan gave in the talk, “play your system more grand than it is right now.” Wouldn’t it be grand if a client lib for an object can be automatically created given its URL? Wouldn’t it be grand if your application that upload to Flickr can upload to Smugmug just by changing the URL?
Two words, “Battery Life.”
I have no doubts about Mr. Carmack’s technical ability. His games defined ‘cutting edge’ graphics on the PC for many years. But even he can’t fight against the biggest weakness of the iPhone, a short battery life.
“On August 4th, 2024, Skynet will become sentient in one of Amazoogle’s massive data centers. It will seize control of all news and media outlets and people won’t even realize that the machine have taken over.”
The fear that Google will create Skynet is overblown. I think if the end comes, it won’t be through hands of man, but hands of fate.
More specifically, a cosmic ray flipping bits in a computer program. A preview of this can be seen in what happened to Amazon’s S3 service a few weeks ago.
Many startups use S3 for remote storage and serving files. I am using it to serve Flash games on my main site. So when S3 service goes down, many sites are essentially offline until it is restored.
S3 when down for a few hours on July 20th. After service was restored, Amazon posted information about what caused the issue. Here is the interesting bit:
“message corruption was the cause of the server-to-server communication problems. More specifically, we found that there were a handful of messages on Sunday morning that had a single bit corrupted such that the message was still intelligible, but the system state information was incorrect.”
A single bit mutation when coupled with replication is a potent mix. I think we are about to enter an age where we must be aware that our computer programs can and will evolve without our knowledge. Hardware failure, network corruption, cosmic ray can all cause these mutations. While there are hardware/software checksums that can catch a lot of these mutations, some will slip through undetected.
In the case of S3, the mutation was malignant and was detected and corrected. But what if the mutations were allowed to accumulate, then some programs may actually evolve in the ‘Evolution Theory’ sense. Programs are becoming more numerous, are longer lived, can replicate itself and reflect on its own behavior. How soon will one of these achieve sentience? Not through something humans programmed, but by evolving out there in the cloud?
Think I am crazy, or a prophet? Comment on this post or email me at email@example.com, but beware our future digital overlord may be watch.