Chromecast

Example of Chromecast mirroring.

Of course I couldn’t pass up a $35 gadget that plugs into my TV and connects to the internet. This is my weakness.

Installation was painless, plugged right into my receiver and the client app you install on your computer found it ASAP. A few minutes (I use WPA2 + MAC filtering) and it was connected to my network and I was streaming video. It looks like it has too main operating modes: mirroring (Hulu seems to use this), and playing from the cloud (which is how YouTube seems to work).

There is a noticeable lag between the video on my laptop and the video on the TV, however the video on the TV is rather good. Sound quality is also pretty good. I went into the options and choose the higher bitrate. So far it’s smooth and runs well.

Google To Release iOS Maps

It sounds like it’s going to become a reality in a few hours: Google Maps for iOS 6.

My experience so far with Apple maps hasn’t been terrible. Data quality issues never actually affected me. I have missed the lack of public transit. That is the primary reason I plan to switch over. Public transit integration is critical in NYC.

I’m hoping it’s just a refreshed UI of what was in iOS 5 with as lean of a UI or leaner.

Inside Google’s Data Centers

Google Data Center Storm Trooper

Google’s opening up about their data centers in a pretty big way. From being secret to even the locations a few years ago they’ve now posted a street view tour, as well as some pretty great video. Facebook has also become a bit more open in terms of their data center operations.

Part of this openness is to make the “internet” seem more trustworthy and less intimidating. The other part is to show off the energy-saving improvements they are making in the wake of controversy data centers have faced over their power usage.

I think someone at Google or Facebook needs to get me a tour of their facility ;-) .

Washington Monument Prank

True story: For several years (2003-ish to 2009-ish) if you did a Google image search for “Washington Monument, one of the first search results you’d see came from me:

Washington Monument Search Results

Here’s the actual image:

Washington Monument

Needless to say it was slightly photoshopped and the fact that this showed up for so many years was quite amusing to me and many others. I’ve gotten a few emails, and quite a bit of traffic over time for it. It was completely unintentional that it SEO’d so well and for so long. Ran across the image today and figured it’s a good time to tell the tale.

QOTD “Facebook is the Microsoft of social media”

Quote of the day goes to Paul Saffo for his opinion piece on Facebook:

Facebook is the Microsoft of social media; used by everyone but truly loved by few.

I’m not sure I 100% agree with the quote, however it does make a valid point about what not to be as a tech company with a huge chunk of the market share. You really want to be the Apple of social media, used by many who absolutely adore you and highly value your product. I’m not sure there’s anyone in social media yet who has achieved that. The closest so far might be Instagram who is now owned by Facebook. Twitter has its loyal users, but many are grumbling over their recent changes and the ever changing app ecosystem.

Paul goes on to say:

Facebook resembles Microsoft in other ways as well. Facebook’s interface is nearly as clunky and inelegant as Windows, and like Microsoft, Facebook is struggling to migrate off the desktop and follow its users onto mobile platforms like smartphones and tablets. Unfortunately, Facebook’s revenue model depends on ample screen real estate in order to please advertisers without annoying users. Ads that can be tolerated on a laptop become a major annoyance when hogging scarce and valuable space on a smartphone.

Facebook can solve for these problems. Facebook will need to move beyond advertising no matter what. Google’s been trying to figure out that problem for a while now. Advertising only gets you so far. Google’s experimented with things like SaaS (Software as a service) via Google Apps. Facebook could potentially bundle up it’s collaboration, authentication, pieces as an alternative to products like SharePoint and Google Groups. Facebook users generally use these things for personal uses, but Facebook apparently utilizes its own features for it’s own purposes all along. There’s not terribly much blocking them from making that a product itself. Facebook also has vast amounts of data and could make itself into a research platform. Both would be viable options and quite frankly could be killer products.

It’s an amazing thing regardless for a company as young as Facebook to be compared to Microsoft. Lets just hope they can avoid the pitfalls that have hit Microsoft in the past decade.

Full SPDY Ahead

For those not keeping score, Twitter, and Facebook have both come out publicly in favor of SPDY. Twitter is already using it in production. It sounds like Facebook will be soon. Mozilla implemented it in Firefox. Opera has SPDY. Google, the author of SPDY is using it in production.

This leaves Microsoft and Apple as the holdouts. Microsoft’s HTTP + Mobility is SPDY at it’s core. Microsoft hasn’t started supporting SPDY in any products, but it seems inevitable at some point. They are a holdout in implementation but not opposed to SPDY it seems.

Apple is the last major holdout. SPDY hasn’t been announced for iOS 6 or Mac OS X 10.8. As far as I’m aware Apple hasn’t made any statement suggesting support or opposition to SPDY. However I can’t see why they would oppose it. There’s nothing for them to disapprove of, other than it’s not using their IP. I’d be surprised if they don’t want to implement it.

However given SPDY is a rather backwards compatible thing to support, I don’t see this holding back adoption. Nginx is adding support for SPDY (thanks to WordPress creator Automattic), and Google is working on mod_spdy for Apache. That makes adoption for lots of large websites possible.

While the details of SPDY and the direction it will go are still in flux, it seems nearly certain that SPDY is the future of the web. Time to start digging into how to adopt it and ease the transition. The primary concerns I see are as follow:

  1. TLS Required – While not explicitly required, SPDY essentially builds on TLS and virtually any real world application needs it. This means purchasing SSL certificates for any website you wish to use SPDY with. Some have argued performance and scalability, but Google, Facebook and Twitter use SSL extensively on commodity hardware.
  2. IP Address – Unless you use Server Name Indication (SNI), which almost no websites do because of compatibility, you need an IP address for every hostname that you use TLS with. That means until IPv6 is widely adopted, it will be putting further strain on the remaining IPv4 pool.

Both of the above concerns increase complexity and cost of building websites at scale and for those who are on a very tight budget (the rest of us will manage). Because of this, I don’t think we’ll see a 100% SPDY or HTTP 2.0 web for quite some time. Don’t expect SPDY for shared hosting sites anytime soon.

In a world of increasing surveillance and user data being integrated into everything, the benefits of TLS will be realized. Both Facebook and Twitter acknowledge it’s importance in preventing user data from getting into the wrong hands.

I, For One, Welcome Our New SPDY overlord.

Perception Of Performance

Google is pervasive about associating Chrome with being fast. It’s was their primary pitch when they first announced it. Back when Firefox went 1.0, it wasn’t so much about speed but “not sucking” as all the geeks liked to say. Given IE 6 was the competition, that was likely the best marketing on earth. Sure it was faster, but sucking fast wasn’t nearly as good as not sucking. Not sucking encompassed the missing features, broken rendering, crashing, constant parade of security problems. It summarized the product surprisingly well for not being an official slogan by any means.

Google now launched Chrome for iOS. On the desktop Chrome and Safari both use WebKit, Chrome applies it’s own touches to make things faster. Notably they have their own JS engine. Safari also has it’s own JS engine. This is the secret sauce of performance. In the iOS world however Apple being the totalitarian dictator decided that iOS will provide WebKit and JS. If your app has any web browser functionality it will utilize these API’s and not implement it’s own engine. Verbatim:

2.17 Apps that browse the web must use the iOS WebKit framework and WebKit Javascript

Google Chrome for iOS however is Google integration into a reskinned experience of Safari. It’s the same browser. Just a new UI bolted on with some Google features integrated in. It’s not a separate browser. It’s a UI.

That however doesn’t stop Google’s marketing machine (I’d argue Apple marketing’s top rival) from putting “fast” as the second word:

Browse fast with Chrome, now available on your iPhone, iPod touch and iPad. Sign in to sync your personalized Chrome experience from your computer, and bring it with you anywhere you go.

It goes on to clarify:

  • Search and navigate fast, directly from the same box. Choose from results that appear as you type.

So Google isn’t truly misleading. It’s just very strategic wording.

The truth of the matter however is that Google Chrome on iOS is substantially slower than Safari. Safari uses Nitro to accelerate JavaScript, which powers most of the complicated websites that will slow down a browser on any modern device. Apple however restricts Nitro to Safari, and doesn’t let third party apps like Google Chrome use it. This is still the case as of iOS 5, and I believe is the case in iOS 6, though I haven’t personally verified that.

How much slower is Google Chrome on iOS in comparison to Safari? Well Here’s a SunSpider test I did on my iPad 3:

Safari

============================================
RESULTS (means and 95% confidence intervals)
--------------------------------------------
Total: 1817.9ms +/- 0.2%
--------------------------------------------

3d: 214.7ms +/- 1.1%
cube: 72.3ms +/- 0.7%
morph: 57.9ms +/- 0.9%
raytrace: 84.5ms +/- 2.2%

access: 224.9ms +/- 0.6%
binary-trees: 44.4ms +/- 1.7%
fannkuch: 96.2ms +/- 0.6%
nbody: 56.0ms +/- 0.0%
nsieve: 28.3ms +/- 2.7%

bitops: 141.0ms +/- 0.4%
3bit-bits-in-byte: 23.4ms +/- 1.6%
bits-in-byte: 29.5ms +/- 1.3%
bitwise-and: 37.8ms +/- 1.5%
nsieve-bits: 50.3ms +/- 0.7%

controlflow: 15.7ms +/- 2.2%
recursive: 15.7ms +/- 2.2%

crypto: 123.3ms +/- 0.6%
aes: 70.5ms +/- 0.5%
md5: 29.4ms +/- 1.3%
sha1: 23.4ms +/- 1.6%

date: 274.4ms +/- 0.7%
format-tofte: 139.8ms +/- 1.1%
format-xparb: 134.6ms +/- 0.7%

math: 175.1ms +/- 0.3%
cordic: 61.5ms +/- 0.8%
partial-sums: 74.4ms +/- 0.7%
spectral-norm: 39.2ms +/- 0.8%

regexp: 70.8ms +/- 0.6%
dna: 70.8ms +/- 0.6%

string: 578.0ms +/- 0.5%
base64: 78.3ms +/- 1.9%
fasta: 68.1ms +/- 0.9%
tagcloud: 109.5ms +/- 1.2%
unpack-code: 207.5ms +/- 1.2%
validate-input: 114.6ms +/- 0.7%

Google Chrome

============================================
RESULTS (means and 95% confidence intervals)
--------------------------------------------
Total: 7221.0ms +/- 0.1%
--------------------------------------------

3d: 802.7ms +/- 0.2%
cube: 230.9ms +/- 0.6%
morph: 297.3ms +/- 0.5%
raytrace: 274.5ms +/- 0.1%

access: 1112.0ms +/- 0.2%
binary-trees: 98.4ms +/- 1.1%
fannkuch: 609.6ms +/- 0.2%
nbody: 247.9ms +/- 0.2%
nsieve: 156.1ms +/- 0.4%

bitops: 957.2ms +/- 0.2%
3bit-bits-in-byte: 210.4ms +/- 0.6%
bits-in-byte: 232.9ms +/- 0.2%
bitwise-and: 188.5ms +/- 0.4%
nsieve-bits: 325.4ms +/- 0.2%

controlflow: 129.5ms +/- 0.3%
recursive: 129.5ms +/- 0.3%

crypto: 493.3ms +/- 0.2%
aes: 214.3ms +/- 0.4%
md5: 140.2ms +/- 0.3%
sha1: 138.8ms +/- 0.5%

date: 381.1ms +/- 0.3%
format-tofte: 214.2ms +/- 0.2%
format-xparb: 166.9ms +/- 0.5%

math: 770.7ms +/- 0.2%
cordic: 316.6ms +/- 0.2%
partial-sums: 243.2ms +/- 0.3%
spectral-norm: 210.9ms +/- 0.4%

regexp: 1340.2ms +/- 0.2%
dna: 1340.2ms +/- 0.2%

string: 1234.3ms +/- 0.6%
base64: 175.7ms +/- 0.5%
fasta: 205.6ms +/- 0.2%
tagcloud: 284.0ms +/- 2.3%
unpack-code: 370.1ms +/- 0.9%
validate-input: 198.9ms +/- 0.6%

Quite a bit slower.

So really, if you’re using Chrome on iOS, it’s because you absolutely love the design and integration with Google’s services, and are willing to trade off considerable JavaScript performance for those perks.

That however doesn’t stop many people from thinking it’s fast. Just in the past few minutes I’m able to find these Tweets among the thousands streaming across the web. I won’t mention or link to them directly (you could find them however if you wanted):

“Chrome for iOS is FAST, takes the mobile browsing experience to a new level.”

“I like it! It’s fast and can sync with Chrome desktop, which I use all of the time.”

“Liking #chrome on #iOS very slick, fast and clean looking”

“using chrome on my iphone right now.. cant believe how fast it is”

“That chrome for iOS is freaking fast but so basic. No tweet button, no add-on. Man I kinda disappointed. I give ‘em 1 ‘fore the update”

“Chrome for iOS? Hell yes!! So fast! #chrome”

“Google Chrome for iOS is fast.”

“Holy hell Chrome is fast on the iPad.”

The most touted feature isn’t actually a feature. It’s technically not even there. The numbers and the technology insist that it’s not (they prove it’s actually slower). But that’s what everyone is ranting and raving about. You could argue Google’s UI is faster, but I’d be highly skeptical that Google’s found Cocoa tricks Apple engineers haven’t. Perhaps a UI transition or two makes you think it’s faster or more responsive, however even that I can’t find any evidence of.

All the hard work the Google engineers did squeezing their services into a compact simple to use UI are ignored in favor of this non-existent feature. And as a developer who can’t ignore such a thing, I will say they did a great job with their UI.

I present to you, the power of marketing!

On Google’s Made In In The U.S.A. Experiment

Google is reportedly building the Nexus Q in the USA. It’s almost assumed these days that electronics are made in China, with a few notable exceptions in Japan or South Korea. However when you think about it, it makes sense. Consumer technology has come full circle.

Open up some electronics made before 1985. With rare exception, they look almost foreign by todays standards. They are spartan in design. Big circuit boards with a few components, some wires to peripheral lights, motors, whatever the device needs to do it’s thing. It’s almost elementary to figure out how it works. Even fixing it is well within reason.

Now open up a modern device like a modern cell phone. It’s generally a single highly concentrated circuit board with a mess of finely placed parts on and around it. Every year they get smaller and more complicated. Until recently.

A curious thing started to happen. Electronics in an attempt to use less power, become cheaper to manufacture, started simplifying their designs. Kind of. They consolidated many of their parts. For example the complex set of layers in a cell phones screen that separated the backlight from LCD panel from the digitizer were made into one slim component. Multiple chips were combined into a system on chip (SoC). Common things like WiFi a Bluetooth which are almost never exclusive were on one chip. Devices became simpler.

Most of these individual components are manufactured through highly automated means. For example those LCD panels are not made by hand, they are made by machines because a high level of precision is needed. No human etches a CPU or any other chip. Even soldering is increasingly machine driven as most use surface mount techniques like ball grid array which would be nearly impossible to do by hand with anywhere near the accuracy or speed needed.

The result is that these components are made increasingly by machines. These components are assembled increasingly by machines. This changes the equation when it comes to deciding where to manufacturer. The biggest advantage to China was very cheap skilled labor. This is changing. First of all China is starting to become more expensive as affluence builds in China. More notably, the need for labor is able to decrease as designs become more machine centric. While the iPhone is very labor intensive today, but don’t expect it to stay that way. It’s increasingly simplifying it’s design despite pushing the limits. Energy costs and shipping costs are also changing.

Google’s bet is that they’ve simplified the human part of manufacturing to the point where the labor costs are becoming minimal. It’s a reasonable bet. If you look closely at the photos in the NY Times piece, you’ll see lots of humans posing, and a few doing actual tasks related to assembling. Of those assembling, there’s no mention on if they are working on prototypes, or if they are in full scale production (which may involve less humans and more automation).

Factory automation will increasingly bring hardware manufacturing back to the US. But don’t expect to see the jobs of the 1980′s coming back with it. These will be highly automated facilities run by engineers and supervised by increasingly limited staff. They may one day operate like data centers.

The Best Of April Fools Day 2012

Unlike many of my peers I’m not really a curmudgeon when it comes to Internet pranks on April Fools. Some are cool, others aren’t very well done. Get on with it. There wasn’t that much this year, presumably because April 1 falls on a weekend this year. Two however were pretty awesome:

Google Maps 8 Bit “Quest”

April Fools Google Quest

This is just outright awesome. It’s a fully “usable” 8-bit version of their map. This wasn’t just a quickie hack, it’s actually well implemented and complete. It’s very NES.

XKCD’s Targeted Comics

Everyone’s favorite comic XKCD went over the top by creating a bunch of targeted comics based on several aspects including browser, ISP, and location. The folks at reddit have been working to break it down. It’s quite complicated and clearly took some time. A lot of comics were drawn to make this work.