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.

Friday, August 27, 2010

Apple Co-Founder Crashes Airplane

A long time ago, Apple co-founder, Steve "Woz" Wozniak, almost killed himself while piloting a plane. This incident literally changed his life.


Click to enlarge



NTSB Identification: LAX81FA044
14 CFR Part 91 General Aviation
Event occurred Saturday, February 07, 1981 in SANTA CRUZ, CA
Aircraft: BEECH A36TC, registration: N2WZ

NAME OF AIRPORT - SKYPARK
DEPARTURE POINT INTENDED DESTINATION
SANTA CRUZ,CA SAN DIEGO,CA
TYPE OF ACCIDENT PHASE OF OPERATION
STALL: MUSH TAKEOFF: INITIAL CLIMB
PROBABLE CAUSE(S)
PILOT IN COMMAND - PREMATURE LIFT-OFF
FACTOR(S)
PILOT IN COMMAND - LACK OF FAMILIARITY WITH AIRCRAFT
MISCELLANEOUS - UNQUALIFIED PERSON OPERATED AIRCRAFT
REMARKS- AFT TKOF,ANGLED FM RWY HDG,MUSHED,HIT 12FT EMBANKMENT.NOT CERTD HI PERF ACFT IAW 14CFR61.31(E).

Monday, August 9, 2010

Fire Island Lighthouse

Today, we parked at Robert Moses parking lot #5 and walked over to the Fire Island Lighthouse. One-hundred-eighty-two steps later my wife, mother and I made it to the top to snap some photos and record a video.





Thursday, August 5, 2010

Wynne M. Trenholme at 96

August 2010: My lifelong neighbor, Wynne, came over tonight. He'll be 96 years old next week. He still drives everyday and lives by himself. Wynne's memory is as sharp as ever as he talks about his service in the Merchant Marines during WW II and the early days of computers.








Monday, July 26, 2010

Car and Life Insurance

It seems that we received a notice, this past weekend, that my term life insurance was cancelled. We first received a late payment notice - even though we paid on time - which we thought was resolved with a quick phone call. The CSR told us that the payment went into the "wrong" account. Today, after calling again, they seemed to have fixed the problem again - I hope for the last time.

On the flip side of the coin I feel that I should mention just how great the Aetna health insurance was, about 10 years ago, when I worked at Apple. In the days before the iPad, iPhone, and even the iPod, I came down with cancer right after I first started working at Apple Computer, Inc. - as it was called back then. The company's health insurance was phenomenal and, after six months of chemo, I was back to normal.

Saturday, July 3, 2010

How to get the customer service that you deserve

Summary: Tell the business what you expected from their point of view. Word it like this: "I was expecting you to say..."

Good Customer Service
Good customer service is a pet peeve of mine. When a mistake is made by a company, how they fix it can earn or lose a customer for life.

The battery for one of my server's UPS power supplies began flashing a warning that it needed to be replaced. The manufacture sold a replacement battery for $115. A quick search in Google turned up the same battery for $59 including tax and shipping.

Ok, the same part at almost half the price is a no brainer so I ordered it. I was intending to pay with my credit card until I saw a COD option. When I think of COD it reminds me of a time, before the Internet, when the world was filled with carbon paper and telegrams. You just don't see the COD shipping option any more.

I selected COD and I was surprised to see that there were no extra charges for using this option, plus they accepted personal checks. Perfect!

I placed my order and received a confirmation e-mail without any problems except that I didn't know when the order would be delivered. I went back to the company's website and used their customer service web chat to ask about the estimated delivery date. The customer service representative (CSR) told me that it would be delivered in about two or three days. But, he told me that they don't accept personal checks for orders over $50.

Hmm, I could have sworn that the checkout page said there was a $100 maximum for personal checks - not $50. With the CSR still on chat I placed another battery into my cart and went to the checkout page. Sure enough, there was a $100 maximum for COD orders just as I remembered it. Having never done business with this company, before, I was a little nervous, at this point, as I wondered if they were a fly by night operation since their web site didn't look too sophisticated.



When I pointed out $50/$100 discrepancy to the CSR, he asked me where I saw that message; then he told me that it was a mistake and that the website should have been updated due to a recent rash of bounced checks. After sending him the screenshot, he said that it didn't matter since he'd need a certified check in order to release the order.

At this point I was a tad irritated and the abrasive New Yorker inside me wanted to type, "You're kidding me? Do you really think that I'm going to do business with you after this? No thank you!"

If I had actually sent that message it would put the CSR on the defensive by backing him into a corner with little chance of escaping and keeping his ego intact.

But, a cooler head prevailed and I told the CSR exactly what I expected:
I want to make sure we're on the same sheet of music. I was expecting you to say this to me...
Joe,
We no longer accept personal checks for CODs unless the order is less than
$50. It should have been updated on our website, but we missed the page where you saw it. Thanks for sending us the screenshot and pointing this out to us. Again, we don't take personal checks for orders over $50, but I'll make an exception since you spent your time helping us out.
Thanks,
Fallon



I'm not sure if this technique has a name. Verbal judo? Getting to Yes? Winning friends and influencing people? But, if your request for compensation is reasonable and disarming then it makes it hard for the CSR to say, "No."

Right after I sent this comment, the supervisor, Megan, jumped into the chat and said, "Fallon doesn't have the authority to do what you're asking. Let me check into this, one moment please."

Megan turned out to be extremely friendly. She told me that I "checked out" when she did a 411.com background check (meaning that my name, address, and phone number matched my billing information). I never heard of 411.com before today, but, after looking at their website, it seems like a great way to look someone up.

The key to getting the customer service that you deserve is to never make it a power struggle, even if you don't get what you want. Give the CSR a way out and make sure that your request is reasonable. If you don't do this, then the company will be doing themselves a favor by "firing" you as a customer.

How Google Works

Click for the full size graphic.

How Does Google Work?

Infographic by PPC Blog