May 19, 2013

Google I/O 2013

Google I/O 2013 was my second I/O and it was as spectacular as the first. After a bit of a headache getting my hands on tickets the rest went flawless.

Android Track

There were fantastic announcements in the Android track, most impressive the switch from Eclipse to IntelliJ. Easier APIs for location - including using sensors like accelerometer, gyroscope for interior mapping - improve how developers can consume location updates from the phone.

The biggest eye-opener in the Android track were some fantastic talks about UI with fresh ideas to design for tablet with tips and tricks to utilize those bigger screens nicely. Another talk about Google Play Services API was incredible, as Google has a way to update APIs, regardless of OS version, s without having to wait for manufacturers. An example of this is the new location API, which is available as low as Android 2.0. I assume this is the same way that the GCM clients are updated on devices.

There were excellent talks about monetization and discovery. The short version is that free-to-use models seem to work best. Unlocking features with in-app purchases will create user retention (assuming your app is good). This is counter intuitive to me, being used to more traditional payment models from iOS, where an app costs X and remains free for its lifetime. Android users are apprehensive to spend cash without seeing the app first - odd considering they have a trial period on purchases and subscriptions.

An interesting library provided by Google is Volley. A networking library that provides caching (LRU, I believe) for resources of a variety of types, including images. It also provides a custom view for networked images. NetworkImageView - why Google (and Apple for that matter) don't provide these as part of the framework is beyond me. The library also provides an easy way to deal with view recycling while AsyncTasks are running. Generally appears to make life easier for networking.

Accessibility in Android 4.2 has taken a giant leap. While it's not quite VoiceOver it's a fantastic step in the right direction. I hope to implement some of the new accessibility items on some of our apps. I don't fully agree with the drawing of gestures or the confusing TalkBack menu.

The animation session was a nice deep-dive into how animations are scheduled and what can be done to properly animate views. There's too much information in my notes I still have to go over to get a proper handle on things.

Chrome Track

The Chrome track shed some light on the WebP format and how to better deal with high pixel density screens in efficient manners. I was disappointed nobody talked about the clown car method.

The PageSpeed Insight plugins were quite impressive, I hope I can give the nginx plugin a whirl soon. Currently our build processes do all this for us when we deploy. Having that automated by a company that specializes on optimizations like to seems an easy way to save development/configuration time.
While the module will rewrite HTML to reorder / defer loading of CSS and JavaScript, it was not mentioned if the module can rewrite inline data-url images to JPEG or WebP.

A repeating theme for the (mobile) web was ensuring something reaches the screen within 1000ms. Even with modern cellular networks the issue is latency, not bandwidth. The key is reducing the number of redirects (and thus DNS lookups) and generally trying to reduce round trip times. Something should be on the screen within the first second to keep the user's attention. I hope to blog more about this in the future as we have an increasing interest in hybrid applications at Labs.


The AfterHours party was impressive in usual Google-style. Musical performances provided by (the) Billy Idol and Steve Aoki. Both of whom told us to get paid, and that Google is awesome!

ArcAttack was there playing a variety of tracks. Despite offering they could not tell us more about the physics behind the musical Tesla coils. Nerd highlight, of course, was Vader's March.

A gargantuan, hydraulic forearm and hand provided entertainment lifting full-size oil barrels 20-plus feet into the air, crushing them, and dropping them with a floor-shaking, satisfying thud.

Automotive robots mixing drinks were a highlight. You could walk up, make an order of a variety of cocktails, and wait for the robots to create them. One robot would fill glasses with alcohol and mix, while two waited patiently for the beverage, mixed them gracefully and poured them back into a glass for final delivery by conveyor belt. The mixing had this near human-like agility to it that made the robots look quite odd indeed.

As always the catering of meals was delicious, and filling. Thanks Google, thanks to the Moscone staff, great event! I can't wait to be back in San Francisco.

May 18, 2013

I'm done with United

I used to love flying. It was magical, an occasion. Now, thanks to obnoxious security measures and increasingly incompetent staff of certain airlines it's a chore. Vacations no longer start at the airport, they start at the destination and end in the cab to the airport before departing home.

As a kid we always flew Star Alliance, they were/are the easiest way to get to Canada and back. The Air Canada / Lufthansa hubs in Frankfurt, Munich, and Toronto had the shortest flights and best connections. Star Alliance carried over into my adult life where I simply book Air Canada to get back to Germany, and around the world.

Sadly, using Star Alliance means I have to use United when I fly to the US, which always ends up with me being frustrated, today pissed. UA, consistently, is the airline that loses my luggage, overbooks flights and bumps me to standby, and sets the bar for airline staff incompetence and rudeness.

I'm prepared to avoid the entire Star Alliance if it means I don't have to fly a connection operated by UA (or its connection partners). I'm prepared to fly a UA code share if the flight is actually operated by Air Canada or Lufthansa.

After an awesome vacation and conference in San Francisco I got to the airport with plenty of time to spare to get checked in, through security, and hang out at the gate. I got to the check in counter and checked in - already frustrated I had to pay $25 USD to check one back. When a staff member came around to tag my bag I was asked if there was anything fragile in it. I answered there were two bottles of wine, so I'd appreciate a fragile sticker. I've flown with bottles or cans in my checked bag for years and have never had a problem. I was told that due to a new policy I can no longer transport bottles in my suit case (and thanks to the TSA I can no longer take them as carry on), and would have to go back to the main entrance to get the bottles properly packed - for a fee - return here and check them - for a fee.

Off I go back to the main entrance to find an airport-owned store, the "Airport Travel Agency", buy a $26 box, pack my wine, get the box taped and shrink wrapped, and head back to the UA counters to check it.

I got to the front of the line and asked an agent what to do to check a second bag into an existing check in. In response all I got was "Move it along, go to the machines, they're open. Keep the line moving, folks." And no response. As always when I'm frustrated I swore under my breath "Thanks for fucking listening." - not my best trait.

Oh goodie, that got the attention of the agent! A loud conversation at the front of the line started telling me to just use the machine, with my questions going unanswered - I have no idea how to use UAs check in machines to check an additional bag to my existing check in. Granted, I could've just tried, but good customer service, to me, is having my question answered rather than being ushered through a line to a machine like cattle.

I don't care if the agent has answered the same question a thousand times that day, as the face of UA it's an agent's responsibility to make me feel welcomed.

I finally got all my items checked - oh, the second bag costs $35 to check - and am now fuming at myself why I (by flying Star Alliance code shares, or having work book my flights) continually enable UA to receive money and business they simply don't deserve for their quality of service.

I'm hoping to use Delta for more US destinations, WestJet as a backup. Anything to avoid UA operated flights.