Wayne Pan

tech | js | ui | ajax | life | mobile
Filed under:

Last year I was 50% accurate, let’s try for better this year. :)

  • Twitter will not be acquired. They’ll have their first revenue stream keeping them independent for a bit longer.
  • Digg will not be acquired. There’s still a ton of crazy things they can do to become the center of news. I just hope they figure out how to get rid of the nerd factor. Just look at this list, it’s not exactly the things your mom would read.
  • Apple will open up iTunes infrastructure to developers to start accepting micro-payments. The biggest hurdle for mobile (in the US more than others) is how do you get users to pay you without help from the carriers. If Apple opens this up the industry will take a huge leap in the right direction.
  • Android phones sales will not exceed iPhones, maybe in 2010. Apple still has too much momentum and good Android phones (read: good hardware) still haven’t launched.
  • Facebook connect will become more ubiquitous than OpenID as a way to login to websites. I’m guessing here but there are way more Facebook users and OpenID users. I, for one, won’t be using it but then again I’m more paranoid about my online privacy than others.
  • IE6 marketshare will fall under 10% by years end. Millions of web devs will implode as they are overcome with joy.

Comments (0) Posted by Wayne on Saturday, January 3rd, 2009


Filed under: , , ,

So 2008 is almost coming to an end and what a wild ride in the tech industry. In some cases we’re better off, no more start ups getting inflated valuations for putting a website (see crazy valuations of facebook apps). On the other hand the economy seems to be going to hell in a hand basket and most startups are going into survival mode.

In the beginning of the year I made some predictions. Lets see how those turned out….

Facebook will decline as people either go to the next hottest thing or advertisers realize their ROI on the FB ad platform isn’t the greatest. - 50% Wrong/50% Correct
I was wrong on the general consumer side as facebook.com has been increasing steadily on the one metric that matters these days, minutes spent. TC reported that Facebook is gaining on Google and passed MySpace back in March.

However, I wasn’t wrong on the ad platform side. Facebook’s ad platform has fallen flat on it’s face. Facebook Beacon hasn’t been relaunched since the original debacle. Most app developers have moved on as they realized their $0.10 eCPMs weren’t worth the headache. With it’s $15 billion valuation from the Microsoft round is a distant memory, they’re bleeding money.

Google will acquire at least two mobile companies to aid Android iPhone will continue to gain mobile browser market share stagnating the mobile web even more. Wrong
I couldn’t find an authoritative list of Google’s 2008 acquisitions but I don’t recall them making a single mobile one this year. Not surprising since nobody is in the M&A market these days.

Slide or RockYou will be acquired. If 07 was the year of widget, 08 will be the year they cash in. Wrong!
Nobody wanted to acquire these guys… low social network eCPMS with a bad economy equal no cash out.

Google or Microsoft will launch an Amazon AWS competitor Correct!
Google App engine was launched, with just a little fanfare. I think once they start supporting languages other than Python, it’ll do quite well.

Yahoo will close at least 4 more properties in an attempt to slim down. Correct!
I think the death count is somewhere north of 15 properties. This list used to be a LOT longer.

A web 2.0 company outside the US will eek out a new niche - Unknown
Honestly, I don’t know one “web 2.0″ company that I currently use that is based outside of the US except for last.fm. If you use one please leave a comment… Is it because startups can’t break into the US market?

At any rate, stay tuned for my 2009 Predictions. Obviously I’m Nostradamus when it comes to these things (/sarcasm)

Comments (1) Posted by Wayne on Tuesday, December 30th, 2008


Filed under:

Earlier this year, when I was developing the AdMob iPhone Ad Units, I ran into a curious bug involving iFrames and CSS Transforms. I didn’t think anything of the bug at the time other than it just seemed wrong. We abandoned some of our ideas because of this bug so I filed it away and moved on.

Fast forward a few months to the iPhoneDevCamp where I met John Resig for the first time. We chatted a bit about the iPhone and mentioned off hand about the bug I ran across. He, excitedly, wanted to see the bug in action and I whipped up a small demo page and showed him. Later on that day he caught up with me and mentioned that he discovered that it was far more severe than he had originally thought and that he filed a bug against Apple.

That bug has now been fixed in iPhone 2.2 and Resig has a full write up here. (I don’t think Apple would’ve fixed this bug if I had been the one to report it so I’m happy that Resig was able to bring it to their attention.)

There was another bug I ran into regarding iFrames and touch events. Curiously enough, touchevents do not register properly in iFrames. This first test [http://waynepan.com/iphone/] demonstrates that you first must touch the parent document before touching the iFrame for the iFrame to register your touch event. The second test [http://waynepan.com/iphone/touchtest2.html] shows that touch events only register in an iFrame for the top ~100px of the entire page. The problem is best illustrated by visiting those links on your iPhone.

These bugs are not security showstoppers, like the click-jacking bug, but they do prevent web app developers from doing cool things in iFrames. We were originally going to use touch start, change, and end events to cycle through ads or give the user the ability to hide them. Ultimately, it was not possible because the iFrame was not receiving the proper events.

So far these have not been fixed in iPhone 2.2 and I still have bug into Apple for this (radar id: 6089245).

Comments (0) Posted by Wayne on Monday, November 24th, 2008


Filed under:

We (AdMob) are exploring Amazon’s new AWS service CloudFront which is a simple CDN. Amazon built this services as a true CDN that people could use instead of using S3 what it wasn’t meant for.

There’s a few things I’ve discovered about CloudFront that bear repeating here. These points are important if you’re attempting to use CloudFront to serve up static portions of your website.

  • CloudFront pulls from S3 only if the CF node doesn’t already have a local copy. This means that the only way to push out a new file is to change the filename. (style.v1.css, styles.v2.css, etc.) This means that your framework will have to take advantage of this. Without file versioning you’re at risk of serving stale files from different nodes on CloudFront.
  • CloudFront doesn’t automatically detect if a browser accepts gzip encoding. You will have to keep separate versions of gzip files (and upload them pre-gzipped). The easiest way to do this is to keep a separate CNAME, eg static.domain.com and staticu.domain.com (u for uncompressed). Your website will then detect the Accept-Encoding header from the client and serve up the appropriate file. Gzipping could decrease your static content by 75% which not only speeds things up for your users but decrease your CloudFront costs.
  • You should set the appropriate headers when uploading content to S3. That means setting a far futures Expires Header and a Cache-Control header. You can read more about these here. There are two GUI programs that allow you to do this, BucketExplorer and jets3t. If you want to write scripts, I would suggest ruby and the AWS::S3 gem.

Here is some ruby code to do what I’ve described above.

require 'rubygems'
require 'aws/s3'
require 'stringio'
require 'zlib'

AWS::S3::Base.establish_connection!(
  :access_key_id => '[key]',
  :secret_access_key => '[key]'
)

strio = StringIO.open('', 'w')
gz = Zlib::GzipWriter.new(strio)
gz.write(open('[file]').read)
gz.close
AWS::S3::S3Object.store('[s3 location]',
                        strio.string,
                        '[s3 bucket]',
                        :access => :public_read,
                        'Content-Encoding' => 'gzip',
                        'Content-Type' => 'application/x-javascript',
                        'Expires' => 'Fri, 16 Nov 2018 22:09:29 GMT') 

Comments (2) Posted by Wayne on Sunday, November 23rd, 2008


Filed under:

You know the green dot on the upper left of all OS X windows? This one: .

I have no clue what it does. I’ve even been afraid to hit it 99% of the time because I have no idea what it’s going to do. I just clicked it for one of my Firefox windows and look what happened:

For all the good things that OS X does well, there’s still so many that it does wrong (see the ironically named “Finder”).

Comments (3) Posted by Wayne on Monday, November 17th, 2008


Filed under:

We started using Yammer, the 2008 TC50 winner, at our company when they first launched.

Personally, I had high hopes for a work based private status updates. Open communication amongst your peers is never a bad thing. We actually had roughly the same idea back when I worked at SugarCRM. (What better pre-built network of colleagues than a CRM system that every worker already uses anyway?)

At AdMob, Yammer started out with some good status about actual work related items. I learned a bit about what everybody was working on and waited patiently for more and more people joined the network. About a week into the experiment the only active yammers were engineers. However, more disheartening was the fact that the core concept of Yammer (What are you working on?) completely went out the window. Soon it was a full blown chatroom.

What went wrong? It’s the stickiness of the app, more specifically the lack of stickiness. The number of active yammerers went down dramatically after ‘launch’ either due to lack of content or people simply forgetting about it.

I’m not sure how to fix that, perhaps it’s a problem that doesn’t need to be fixed. We’ve mostly resorted back to email.

Comments (0) Posted by Wayne on Wednesday, October 29th, 2008


Filed under:


The url for the above image is actually http://www.google.com/search?hl=en&client=firefox-a&rls=org.mozilla:en-US:official&hs=3AX&q=computers&start=360&sa=N. It’s supposed to be the 36th page of the query “computers”. You can test it yourself and if you happen to hit the same shard/bug as me, you can see the oddity too. (Keep refreshing if you don’t, roughly 1 in every 20 from my highly scientific test!) It definitely happens more often the deeper you go in the result set .

Interesting notes:

  • Obviously, should be displaying more than 1 result.
  • Wikipedia link some how survives what ever bug I ran into.
  • 59.6 million results and only shows results 1-4.
  • Supposed to be page 36, some how I’m back on page one.

A funny but harmless bug.

Comments (2) Posted by Wayne on Friday, October 24th, 2008


Filed under:


I just shifted half my portfolio into Apple (AAPL). I think it’s a bargain at this price, why? Simple…

It was $90 pre-iPhone.

That’s right, AAPL was hovering around $80 before MacWorld 2007, where the iPhone was announced. What’s happened since then? Apple has launched 2 versions of the iPhone in 50+ countries and essentially created an entirely new business for themselves with the AppStore.

They’ve also hit a record high in PC market share (~8%) and that will only continue to grow as the iPhone’s halo effect continues.

We’ll see how much of a fool I look like in a year…

Comments (1) Posted by Wayne on Wednesday, October 8th, 2008


I had it with bloglines.com and I’ve finally moved to Google Reader. Bloglines has been down a few times in the past month and I haven’t been able to log into the iPhone version of the site in a week. Also, I’m not sure when Google added the Expanded View to their interface (probably a long long time ago) but that was the one friction point for me when Reader first launched.

Along with my move, I reset my unread items to 0. There was no way I was going to catch up anyway.

It feels damn good to be at 0, now I just have to trim the fat on my RSS feeds.

Comments (0) Posted by Wayne on Monday, October 6th, 2008


Filed under:

Just came across the ajaxian post about smushit.com which was presented at The Ajax Experience by Stoyan Stefanov and Nicole Sullivan. It’s a nifty tool that optimizes images on any web page you pass it by using doing lossless compression or stripping out image meta tags.

I had a little fun with this tool running it on Google.com and Yahoo.com. (Just ignore any png compatibility issues and caching while you read the following… :) )

Google.com has 1 image and SmushIt reports it can be compressed 507 bytes (5.92% savings!) by converting it to a png. Assuming a very conservative 200 million requests a month on google.com alone that’s a savings of … if my math is correct … 100 gigs of bandwidth!

Yahoo.com could save even more, 8310 bytes (12.04% savings). Using the same numbers above that’s 1,547 gigs of bandwidth in the US alone!

Comments (0) Posted by Wayne on Tuesday, September 30th, 2008


mt