
My last day at The Walt Disney Company will be Monday, April 12, 2010. The 99 magical days will comprise the shortest period that I have ever had full time employment and the largest company that I have ever been employed by. I am excited, scared, and excited about my next career move: software engineer at Snowball Factory.
I am moving to San Francisco the day after my last day at Disney. Arthur will be staying in Los Angeles for a few months while we find an apartment and make moving arrangements. I’ll be commuting home to LA on the weekends. Being away from Arthur will be the most difficult part of this big decision.
Snowball Factory makes Awe.sm, a powerful social sharing analytics platform. I learned of it through Jonathan Strauss‘s presentation at BarCamp LA and immediately signed up Digital Dandelion to try it. It’s an impressive product that provides insights on how content is shared. I can’t wait to work on what’s next.
Of course, I might not have met Jonathan or learned of Awe.sm had it not been for its other cofounder, Laurie. He blogged about me in the Apple Switch commercial in 2002. We kept in touch online and finally met in real life in 2009. He’s smart, sassy, and awesome in general.
Attending Twitter’s developer conference, Chirp, will be one of my first acts of startup glory. Snowball Factory will also be throwing a Chirp preparty. Not a bad way to kick off an intense position!
(Snowball Factory is also seeking an incredible backend engineer who wants to work with emerging technologies like Hadoop, Hive, Redis, and Cassandra. More…)
With this job, I will be bidding farewell to Los Angeles. I recently wrote a best friend that I always seem to discover a fondness for the place that I’m leaving as I’m leaving. This is oddly true for Los Angeles, a place that I never particularly liked and had no intention of staying in when I arrived. It grew comfortable over the last three years. Arthur and I have the most incredible condo-partment that we’d buy if we could. We have our favorite coffee shop, butcher, farmers’ market, and hikes. Most importantly, we have amazing friends in Los Angeles. I can’t put into words how I feel about leaving them. It’s too difficult.
Something about San Francisco stole both of our hearts on our first trip there. I hope that the charm we’ve felt on our last five trips there welcomes us when we become residents. Certainly, San Francisco offers the career opportunities that both of us haven’t found in Los Angeles. We’re picking the opportunity to grow over the comfortable certainty the start of the new year blessed us with. I hope it’s the right decision. I know it is. Regardless, it’s going to be an adventure.
Photo credit: San Francisco Bay Panorama by Kevin Collins CC BY 2.0
Bejeweled is one of the world’s most downloaded mobile game, but it didn’t come to Facebook until December 2008. Its simple and fast level design allowed for satisfying discontiguous and solitary play. The combination proved addictive for mobile users desiring a quick distraction. When Pop Cap brought Bejeweled Blitz to Facebook, it embraced the Facebook Platform and turned its solitary game into a team sport.
To earn points in Bejeweled, a player must swap jewels on a grid to form a sequence of three or more similar colors. Players have one minute to earn as many points as possible. Gameplay for Bejeweled on Facebook is the same as it is on other platforms. However, access to a player’s friend list on Facebook increases the competitive motivation for continued play. Players not only desire to beat their own high scores, but those of their friends.

Bejeweled Blitz goes further into the social graph by pitting friend groups against each other and awarding real world prizes to top scoring teams. Beyond the social graph, a player’s score is ranked globally.
Bejeweled Blitz for Facebook effectively utilizes the news feed by prompting players to post stories of high scores. To decrease monotony in the news feed, particularly for Facebook users who have many active friends playing Bejeweled, news feed stories vary when posting the same story type. They’re also seasonally adjusted.




A new high score triggers a Facebook notification to be sent to a player’s friends who were overtaken in the leader board, further encouraging repeat play.

For more feisty players, the Facebook publisher interface allowed direct challenges to be brought from a friend’s wall.

Pop Cap’s enhancement of Bejeweled Blitz for Facebook is an excellent example of how a classic game can become more engaging by becoming more social.

I participated in “the survey for people who make websites.” Take it.
Safari doesn’t allow you to change the search provider without resorting to hacks. If you’d like to use something other than Google or have additional search providers available in Safari, try my bookmarklet tip.
A bookmarklet is a special bookmark that uses JavaScript to add functionality. When you click on a bookmarklet from your Bookmarks Bar, a prompt will appear. Type your search, hit return, and the search results will be loaded in the browser window. If your Bookmarks Bar is not visible, go to View > Show Bookmarks Bar in Safari.
I made some bookmarklets of popular searches. Simply drag the links below to your Bookmarks Bar to use.
Note: the above bookmarklet includes my Amazon Associates referral code that gives me a small kickback if you use it and purchase something.
Bookmarks in Safari’s Bookmarks Bar can be accessed through a keyboard shortcut. Press command (⌘) and 1 to load the first bookmark in the Bookmarks Bar. Press 2 for the second, 3 for the third and so on.
Here’s the base JavaScript for the bookmarklet:
var q = prompt('Search for','');
if (q != null) {
window.location = 'http://example.com/search?query=' + q;
}
When merged to a single line and URL escaped, it looks like:
javascript:var%20q=prompt('Search%20for','');if(q!=null){window.location='http://example.com/search?query='+q;}
To create your own, replace http://example.com/search?query= with the actual search provider’s query URI. Copy the URL escaped single line of JavaScript with the javascript: prefix. Open a blank Safari window and paste the line. Drag the site icon (the blue sphere in the Address Bar) to your Bookmarks Bar to save.
This is an easy and flexible way to have different and multiple search providers in Safari.
Here is my encore presentation introducing PhoneGap and the Sony Ericsson WebSDK from the Web 2.0 Expo. Also, be sure to check out my sample application.
Source: YouTube, transcript

I’m organizing the Los Angeles meet up of the third annual Blue Beanie Day on Monday, November 30th, 2009. The blue beanie is homage to Jeffrey Zeldman, who led the web standards revolution six years ago with his book Designing with Web Standards.
Join fellow Los Angeles Standardistas (people who support web standards) at The Cat & Fiddle from 8-11 PM. Happy Hour with $3.50 wine and cocktails is 10-11 PM! There is street parking around the area and a $6 valet. The bar also has a great food menu if you’d like to have dinner.
Don’t forget to wear a blue beanie to show your support for accessible, semantic web content.
Microsoft previewed Internet Explorer 9 at its Professional Developer Conference in Los Angeles yesterday. The new features for IE 9 read more like confessions of past wrong doings. Better JavaScript performance and uncommitted partial support for HTML 5 just aren’t good enough. Web developers can’t effectively utilize any standard Internet Explorer doesn’t support because Internet Explorer’s market share negates Firefox’s and Safari’s swift innovation.
At Web 2.0 Expo in NYC this week, I tried to convince a Microsoft IE Product Marketer to get his company to acquire Opera. He laughed. The Opera guys loved the idea.
The Opera web browser is a feature rich product by an truly innovative company. While the company started developing its browser long before Safari and Firefox, it hasn’t been widely adopted.1 This makes it perfect for acquisition. The portable design of the Opera rendering engine would give Microsoft a speedy desktop and mobile browser with better standards compliance than is planned for Internet Explorer 9.
Microsoft would accomplish more on day one of its acquisition than in the last five years of renewed Internet Explorer development.2 It would then be free to concentrate on building a product that leverages Windows and continues the implementation of emerging web standards. The hybrid rendering engine model of Internet Explorer 8 could still be available to render improperly coded websites when needed for compatibility. Everyone else would benefit from Internet Explorer behaving similarly to Firefox and Safari.
Tim O’Reilly predicted that Microsoft will become the champion of the open web. That can’t happen until Microsoft fixes the application most people use to get online. I don’t like or use Internet Explorer, but Internet Explorer is the most important application in the world. We all need it to succeed to build a better web.
2: Gates Highlights Progress on Security, Outlines Next Steps for Continued Innovation
Edit: The Dilbert strip that came out three weeks later was perfect.

Lala.com is iTunes, only better. It allows you to take your entire music library anywhere you have an internet connection. It shows you everything your friends are listening to and allows you to selectively share songs on Facebook and Twitter. It lets you listen to any song in its entirety for free once, buy unlimited plays of any song for 10 cents, and gives you access to any songs you have already purchased elsewhere.
I often identify songs by searching for lyrics on Google. Song lyric sites are a mess with trashy ads, text selection blockers, and (ironically) inaccurate lyrics or song titles. Also, Google search results are not specialized. Google returns multiple lyric sites with the same song instead of multiple songs that might be matches. Having lyric search integrated into a music store would save me a step.
Pandora and iTunes Genius Mixes are amazing for days when I just want a never ending playlist. Pandora introduces me to new songs and iTunes Genius Mixes remind me of great music I’d forgotten. A tangental recommendation from aggregated behavioral data is my generation’s DJ.
Add an audible notification when playing a song not in my playlist so that I know to buy it if I like it.
My iPhone, PS3, and Squeezebox can’t connect to Lala. I know that Flash is the problem here, but I’m not always at my computer when I’m listening to music. More so, there’s a huge market opportunity to bring the power of Lala to devices that Apple won’t allow to sync with iTunes. There are millions of Palm Pre and Google Android phone owners who want iPod like functionality.
I’m sure someone has created a playlist on Lala for jogging in the rain and missing Boston, but I’d never be able to find it without search capability. Playlist search by mix name and description are a must for a music sharing community. Bonus points for adding the ability to find playlists with a particular song in it.
Question: What color should your iPhone app icon be?
Answer: Not blue.
Digital Dandelion wanted to provide OpenID accounts for its staff. (I’ll explain why later.) It could have setup its own OpenID server, but it already used Google Apps for Your Domain. Google recently announced that the Google OpenID Federated Login API had been extended to Google Apps accounts: “Individuals in these organizations can now sign in to third party websites using their Google Apps account, without sharing their credentials with third parties.” Brilliant.
Note: The Federated Login Service is disabled by default for Google Apps Premier and Education Editions. The domain admin can enable it from the Control Panel at http://www.google.com/a/cpanel/<your-domain>/SetupIdp. The Federated Login Service cannot be disabled in the Standard Edition, which is to say that it’s already turned on for freeloading Google Apps customers.
openid file on your server.Create a file accessible on your site as http://example.com/openid with this inside of it:
<?xml version="1.0" encoding="UTF-8"?> <xrds:XRDS xmlns:xrds="xri://$xrds" xmlns="xri://$xrd*($v*2.0)"> <XRD> <Service priority="0"> <Type>http://specs.openid.net/auth/2.0/signon</Type> <URI>https://www.google.com/a/example.com/o8/ud?be=o8</URI> </Service> <Service priority="0"> <Type>http://specs.openid.net/auth/2.0/server</Type> <URI>https://www.google.com/a/example.com/o8/ud?be=o8</URI> </Service> </XRD> </xrds:XRDS>
Be sure to replace example.com with your domain.
openid file with the correct MIME type.You can do this by modifying your .htaccess file. If this file does not exist in your web root directory, create it. Add these lines:
<Files openid> ForceType application/xrds+xml </Files>
host-meta file on your server.Create a file accessible on your site as http://example.com/.well-known/host-meta with this inside of it:
Link: <https://www.google.com/accounts/o8/site-xrds?hd=example.com>; rel="describedby http://reltype.google.com/openid/xrd-op"; type="application/xrds+xml"
Again, be sure to replace example.com with your domain.
http://example.com/openidYou’ll be redirected to Google Accounts, asked to login, asked to approve the site for authentication, and on your way to enjoying the many benefits of OpenID.
Bingo.
|