Tuesday, September 21, 2010

Flash


Flash is great in that it is ubiquitous. There is not a single, decent, desktop web browser that doesn't have Flash installed.

But, the problem is that Flash is a CPU/memory hog.

The Java VM, which runs applets inside web browsers is also a hog, but few websites that run Java applets will run more than a single instance. Flash, on the other hand, is everywhere.

Nearly every single ad on a professional website is Flash so there are multiple instances of the Flash plug-in running on a single page and they're all sucking up CPU cycles to process video which can result in your web browser crashing. This can render a web page painful to load and watch on a web browser that's more than a few years old.

Flash was originally designed to provide an interactive user experience, similar to Java, and it later became the de facto standard for displaying video. Unfortunately, it can only display video, effectively, on the newest of desktop web browsers.

Twitter Search Engines

It seems that there is no shortage of search engines combing tweets for links. Whenever a tweet is sent, that contains a link, within a few seconds search engines start to spider the tweet. In the first two minutes each link in a tweet has been hit by a bot 12-20 times.

Here are the first ten hits on a link within three seconds:

Click to enlarge

Thursday, September 16, 2010

Catfish Movie

I saw a screening of Catfish, last night, courtesy of a San Diego TweetUp organized by @JBruin and @ThePegIsIn.



Catfish is a raw documentary that was all the talk at this year's Sundance Film Festival. The movie follows a 24 year old New York photographer as he establishes a relationship, on Facebook, with a family whose eight year old daughter is a prodigy artist. The family lives in rural Michigan and the film takes an interesting twist when the photographer makes a surprise visit to see the family since he's established a romantic, online, relationship with the older sister.

It's a good movie and I particularly enjoyed the cinematography as they filmed a laptop display for the movie credits and used Google Earth to show different locations.

I don't want to give away anything, but think: Walter Mitty meets Facebook.

Wednesday, September 1, 2010

Using S3 to Serve Up an Entire Web Site: The 100% Solution

Ever since Amazon launched AWS four years ago I've been yearning for a way to use it to serve up an entire static website, including the index.html. Last month, Amazon made that possible by allowing a default root object to be assigned to a CloudFront distribution, which, in turn, can point to an index.html file in one of your S3 buckets.

Here's an example of it in action:
http://bio.joemoreno.com

Phase I
1. Create a bucket named web.yourdomain.com and load your static web pages into it. (Note that's web not www.)

2. Configure your domain's DNS so that the CNAME for web.yourdomain.com points to web.yourdomain.com.s3.amazonaws.com.

If you've configured the bucket correctly and the DNS has propagated then you should see your static website when visiting:
http://web.yourdomain.com/index.html

Phase II
1. Create a bucket named www.yourdomain.com.

2. Put a single object into the www.yourdomain.com bucket named index.html. This index.html object will be a static HTML web page that's a meta-refesh. It'll look something like this:

<html>
<head>
<meta HTTP-EQUIV="Refresh" CONTENT="0;URL=http://web.yourdomain.com/index.html">
<title></title>
</head>
<body bgcolor=#FFFFFF>
</body>
</html>


3. Configure a CloudFront distribution pointing to www.yourdomain.com.
Although you can use the web browser based AWS Management Console to set up the CloudFront distribution, you'll probably need a third party tool, such as Bucket Explorer, to configure the root object in step 5.

4. Configure your domain's DNS so that the CNAME for www.yourdomain.com points to your CloudFront distribution host name. (A CloudFront host name looks something like this: d1jlm9avypcmdg.cloudfront.net.)

5. Set the CloudFront distribution's root object to index.html which will be served up from the www.yourdomain.com bucket. (I used Bucket Explorer for this step.)

That's it!

It can take up to 15 minutes to create the CloudFront distribution and set its default root object. Your website should work fine once CloudFront reports that the distribution is Deployed and the DNS has propagated. How long it takes your domain's DNS to propagate depends on its TTL and negative caching time out. I recommend setting these as short as possible until everything is working correctly (I set mine to 60 seconds and then upped it to 24 hours once everything was up and running.)

Remember that you must set all of your objects in your S3 buckets to Public Read so that anyone can view your website.