Wednesday, December 14, 2016

AWS re:Invent 2016


From 27 November until 4 December 2016 I headed to Las Vegas to attend Amazon Web Services' re:Invent conference - my third trip out since the conference began in 2012 ('13, '15, '16). I have enjoyed attending these conferences in recent years, both for the technical talks that come out of it, and for the change in atmosphere compared to the DC area.

AWS Lego Logo: every year different Lego scuptures get built up
during the length of the conference. [flickr]
With a background more focused on programming and application development, my job over the last year required a shift to include more infrastructure setup and system configuration. The project I'm working on already uses AWS some, but it wasn't built keeping up with modern techniques/practices, so it gave me a focal point this year for picking up AWS primary concepts like S3, EC2, better IAM practices, and CloudFormation setup. It also moved me down the path reviewing other [non-AWS] automation tools for infrastructure, like Vagrant, Docker, and Ansible. Generally our project's AWS environment is only for build and development purposes, though I've been slowly expanding the AWS role wherever I've been able.

A photo posted by Tom Olson (@spelchec) on
I had a few goals for this conference. First was to get a clearer direction of where to go with infrastructure automation within AWS; I've worked with several different tools that provide different benefits, and there are several more like Puppet, Chef or OpsWorks that I haven't investigated yet for various reasons. Second was to get a better grasp of what things are coming down the road for AWS, since keeping up with the new technology is best for taking in some cost-cutting measures down the road, and for keeping up within a fast-paced industry. Lastly I hoped to get more AWS certificated, to reinforce and legitimize my understanding of these tools.


I signed up for several sessions relating to simplifying infrastructure, both in reducing complexity (with AWS built-in tooling) and simplifying design (microservices). The sessions varied in how beneficial they were, but some were great to pick up. Some of these talks included the following:
  • Born in the Cloud; Built like a Startup (ARC205)
    talks about architecture patterns from conventional to serverless structures.
  • Simplifying Microsoft Architectures with AWS Services (WIN201)
    offers an overview of Microsoft product inclusion and support in AWS.
  • How I learned to embrace DevOps and Configure Infrastructure at Scale (WIN402)
    gives a good presentation about better EC2 tooling and management materials (focusing on Powershell CLI tools).
All the sessions I attended are available through this YouTube playlist (and all sessions can be found on the AWS YouTube page). I don't recommend all of them (for instance, NET302 was too dry for my tastes), but a majority of the sessions were ones that caught my attention.

A photo posted by Tom Olson (@spelchec) on
The vendor hall (re:Invent Central) offered some good groups to speak with as well. I was able to talk with the Red Hat people about Ansible and Ansible Tower a little; Github about their version control tool (though this visit was more about the stickers); Nginx about their application delivery platform, seeing if it's something worth suggesting to customers in the future.

I also went to the AWS Hands-On Labs area at re:Invent, provided by the folks at Qwiklabs and took a class on CloudFormation. Although I find their demos a little too guiding at times (I've done several of them between conferences), I do like that it provides a platform to experiment under. I do recommend Qwiklabs if you want orientation and experience with the AWS interface, though it has very limited depth.

Keeping Ahead

Although I'm not very sociable at conferences, there's something comforting in attending the talks at re:Invent - I think in no large part because of the fresh discussions about new technology, and the thinkers behind those ideas. I like to try and keep up with all the technologies and capabilities that AWS is continuously adding to their stack, at re:Invent gives me a way to focus and dedicate time to those technologies.

One of my favorite talks was Amazon s2n: Cryptography and Open Source at AWS (NET405), which described the development process behind building an alternate solution to OpenSSL. One reason that I'm highlighting this session separately from the list above is that I appreciated how it highlighted the fallibility of code used so ubiquitously in technology. Not only that, but it showed how the technological community came together to address the problem, and although you start to get some fragmentation after that, it makes for a nice window showing how the tech community is continually getting better.

Beyond that, re:Invent had a lot of sessions about serverless technologies - the extension of lambda functions to build functional websites and enterprises. The Operating Your Production API (SVR402) talk was a decent overview of the technology. While I think it'll definitely lead to a fascinating sea change in system development (removing middleware will be nice), I wonder if this change can extend fast enough, or if some other lambda-like application mesh will catch up (maybe Google AppEngine will adapt, or some open source alternative like Apache Felix / OSGi will expand its grid computing concept further).


As part of educating myself in the AWS environment I chose to take some of the certifications offered. At the time of this writing there are 5 base certifications (3 associate, 2 professional), of which I took the Developer Associate exam over the summer. In addition to the base exams, three specialty exams are being offered in beta in the topics of Advanced Networking, Security and Big Data.

A photo posted by Tom Olson (@spelchec) on
I attempted the two associate exams remaining for me: Solutions Architect and SysOps. Pretty much every day I had down time I was studying for the exams, utilizing the blueprints and A Cloud Guru study material from a Udemy Black Friday sale the week before. Currently preparation for these certifications are tricky, with AWS recommending a lot of hands-on experience and a lot of practice through their training classes and practice exams... but not much material beyond that. I tried one of the AWS Professional DevOps bootcamps at last year's re:Invent and found it only so-so at the time, but they're constantly looking to improve. They started releasing official study guides in October (Solution Architect associate), which is a great step forward.

Both of the exams are difficult, although there is some repetitiveness in the material between each of the associate exams. I've heard Developer is easiest, then Solutions Architect, then SysOps, and based on my test experiences and results I can agree with that assessment.

By the end of the conference I passed the Solution Architect associate exam, but failed the SysOps one. I kinda expected the SysOps failure, because I haven't done a lot of monitoring setup or OpsWorks work, and the weakest section of my exam reflected that with low scores in monitoring and metrics. In the breakdown for the SysOps I was happy to get 100% in one section (Data Management) though, because it's the first perfect score I'd ever received in an AWS section - and it means it is possible. 🙂

In any case, I'm hoping to get past the SysOps exam in the future, and move onto the professional exams in the next year or two. These exams have been a good way for me to focus on the features of AWS, and get better at understanding how to use these tools overall.


I was very happy I attended re:Invent this year: I was able to breathe in the experiences of modern development; I could engage in technical sessions and discussions with my peers; I managed to get another AWS certification and reinforce my resume a bit more for the future. Though I didn't get to do everything I wanted - there are only so many hours in a day - I greatly enjoyed the firehose of AWS information that blasted me through the week, I look forward to the next one, and hope I'll be able to make it there.

Monday, July 29, 2013

Google Glass: A Second Look

I ended up getting Google Glass on 15 May, and have used it for a while now. I had some mixed first impressions the first time I sat down to write about Glass, but I wanted to come back to it again after a month or two. I got an email yesterday from a coworker asking me for my impressions of the device, so I thought that was a good sign for writing this up now. I wrote this prior to rereading my first post to in if my opinions changed much, so sorry for some repetition between the two posts.


I've found it relatively cumbersome to carry Glass around with me at times, since they don't really fold up like glasses into a smaller form factor. The Glass case is a fairly durable bag with a glasses case reinforcing the bottom of it to protect the screen portion of the device. Generally it fits on the head well, but in inclement weather electronics and heavy rain seem like a bad mix - especially while it's on your head.

I've read that some folks have had durability issues even with the case though, often through the frame snapping outside of the reinforced part of the bag. I haven't had this issue yet. A smaller number of users have had atmosphere related problems that resulted in the foil in front of the view melting or burning away. It should also be noted that Google has been replacing devices with these issues under warranty.

Battery life is good if you aren't using it heavily (after getting used to it I generally doubt you'll use it actively); it can last the better part of a day with occasional use, but maybe only about 3ish hours if you're really using it for things.

I will say though that as a person that alternates wearing glasses and contacts, I have a lot of problems with the framed form factor behind Glass. When I wear Glass as a user, it's on days that I have to wear contacts, so for me seems like a bit of a nuisance - like I'm going through extra work to put on glasses in the morning. It's a little thing, but something I definitely notice each day.


As a user I really love the interface that Google made for Glass. I think its effortlessness in use between voice commands and simple swipe controls makes this product as simple to pick up and use as the iPod with its wheel controls. Although it's still not fully flushed out for application installation and customization, it's still getting updates pushed out (I started with their XE4 updates and they've pushed updates to XE7 at the time of this writing). The timeline setup of glass was very functional for the basic capabilities, but they've been adding features over time too (in XE7 they incorporated web browsing to a light degree). There's still no concept of a Google Play Store like in other Android devices, but with their updates it's not too far away.

Living in suburban Maryland, I haven't had much occasion to use the Navigation features of Glass (driving with it would probably be considered illegal), but with the walking tests I've done it's been pretty convenient. I think it would actually be a less distracting way to drive than my phone running GPS directly, but c'est la vie.


Glass runs off of Android 4.0.4 [Ice Cream Sandwich] and the Mirror API is a subset of Google's web services. The sample Java project available was originally written with Google App Engine, although it was later generalized to a set of Java Servlets (haven't downloaded that one; I kept using the GAE version). The Mirror API I downloaded used OAuth2, and has some usage restrictions right now (it's been a pretty generous limit; I'd really think if you were bumping up to the limit you're probably going to annoy your users). I played around with it and some of Google's other services - mainly Calendar and Drive - and got a little annoyed with the OAuth2 and 3 support differences (The Mirror API available for download was an earlier version than the other APIs at the time), but I got around it without too much trouble.

I loaded a different launcher onto Glass (learned about this via the Google I/O YouTube video), and hooked up a mini wireless Bluetooth keyboard, which was fun although the constant Launcher asking of Android really reduces the experience of Glass. I do look forward to a future XE firmware update making this a little less bothersome. However, I will also say that Glass's custom launcher has really given me a new appreciation for what launchers can do. It's the next thing I really want to try tackling with Glass/Android when time allows (A lot of the API stuff I did for Glass was in June; July I didn't have as much free time).

I haven't rooted my device yet - to be honest I don't really know what it'd offer me. I get some people hack Glass and stick Ubuntu on it or something else, but to me it seems like you're doing it more because you can rather than because it's practical. Or, maybe it is practical for some, but that brings me to the last section of this write-up.


When I first got it I tried wearing it every day at work to see if I could get comfortable with having it on. I'd say nowadays if I have it on, probably about 60% of the time I forget about it. However, the other 40% of the time I'm acutely aware that it's on my face, and it seems fairly distracting all around. Now, I got the "Sky" color so it does stand out more, but I notice that when I talk to people and it's on, it distracts me by lighting up, or distracts the other person just for being on my head. It's gotten to a point that when I talk to people I usually perch Glass on top of my head to have a conversation. Because for a conversation I prefer a mutually comfortable conversation.

This perception of Glass may change in the future with consumer saturation, but it's a really distracting factor - at least for me.

I'll say I also don't have it on nearly as often nowadays. Partly because it didn't have much to offer me in everyday use - though I get email it's usually nothing I need to read, and when I'm at work or home I get a toast notification anyways off my desktop. Otherwise I'm either driving (again illegal) or running errands or hanging out with people. There's a level of convenience in that I suppose, and the quick hands-free photo/video taking is a really powerful feature, but it doesn't fill a huge void for me. Weekends it usually sees some more practical use, but there's never the "need" to wear it.

The other reason I use Glass less is that I recently purchased the Pebble at Best Buy. It's a "Smartwatch" that I think can be compared to Glass fairly powerfully:

Google GlassPebble Watch
Cost: ??? ($1500 dev preview)
Notifications: Yes
Camera/Video: Yes
Speaker/Microphone: Yes (can answer calls)
Convenience to Access: Yes (Head)
Discreet: Varies (much on the size of the crowd)
Connectivity:  Bluetooth, Wifi
Direct Interactivity: Voice, Gestures, Accelerometer
Offline capabilities: Camera/Video, Watch
Battery: 3 hrs-1 day
Cost: $150
Notifications: Yes
Camera/Video: No
Speaker/Microphone: No (But with Call Notifications)
Convenience to Access: Yes (Wrist)
Discreet: Yes
Connectivity: Bluetooth
Direct Interactivity: Button Controls, Accelerometer
Offline capabilities: Watch
Battery: 4-7 days

To me Glass and Pebble are very similar devices - personally I think Google could easily and effectively map Glass's interface onto things like a watch or car console and bury Pebble as a company if they wanted to (and if they aren't looking into right now I would be shocked). But right now Pebble has won the short term battle for me as far as usage goes. Its price point is low, its battery life is never an issue in daily use, and it doesn't offer anywhere near the same level of distraction in conversation during day to day activities.

That being said I should also underscore that Glass is a beautiful idea, and it does shine in use cases like events and city environments. Glass's navigation while walking was a great way to not look lost and to pay attention around you, and for recording things while doing things (like enjoying fireworks or a concert) is an absolute delight that cannot be understated.


While I still think Glass in its current form is a niche device, I by no means believe that will last for much longer. By the time Glass reaches stores, I seriously believe it and its derivative devices will capture the eyes of consumers in droves in a way unlike anything since Apple's iPod and iPhone. However, I think if they are aiming for this, they need final products soon - because other companies have to see Google's storm coming.

Friday, May 31, 2013

Google Glass: Some First Impressions

"ok glass, pose for the camera."
Last year at Google I/O 2012 I signed up to be a Glass Explorer. It was a possibility for developers to get to the "bleeding edge" of some new technology, and even helping to guide the Glass team to product improvements. Such a product came with a couple costs: a $1500 (+ tax, thanks gov) price tag, and a very long wait time for them to reach production (just in time for I/O 2013!). Google alleviated some of the waiting pains providing a subset of "Glass Pioneers" with the change to go to New York or California and test out the hardware and software a little bit in advance.

There's a lot I feel I could write about this experience so far, but I'll save that for later posts. I started writing this particular post in part because of a New York Times article about the concerns over wearable computing, and thought a reaction to it was appropriate. I got my order of Glass on 15 May, an between the price tag and all the buzz around the device I've been very self-conscious of what's on my head. Over the first few days, I kept to wearing Glass only at home or at work, because I was still learning how to best explain/show the basic function and features to people (of varying technology backgrounds) that were asking.

Glass initially comes in Cotton, Shale, Charcoal, Sky and Tangerine.
(or: White, Gray, Black, Light Blue, and Orange)
The worst response I think I got was someone covering their face and avoiding interacting with me altogether (I'm still uncertain if this reaction was just in jest or not), but that's their prerogative, even if I feel is a misguided view. If they ever talk to me again, hopefully they'll just ask me to take Glass off or something if it does bother them. Although I feel many of Glass' greatest critics have done some of the least research, I get the general unease about a camera being right in front of you.

I've liked using Glass in more casual environments, where it's
noninvasive and I don't feel like I'm instantly being judged for using it :P

After about two weeks I've gotten more bold with where I wear Glass, although I still impose some personal caveats on bringing it with me. I don't wear it driving (Maryland cell phone laws are ambiguous on the legality of driving with Glass), and I don't wear it in theaters or restrooms. Since I need to wear contacts in order to put them on decently I only wear them at home sometimes.When I was out and about D.C. people were mainly inquisitive about the device, if they noticed it at all - though I'd think the Sky color is kinda noticeable.

Not as noticeable as a guy in a Superman cape I suppose.
I've noticed that I'm most comfortable treating them as sunglasses (esp with the shade accessory attached) - The awareness during conversation that there's a camera in your face is an intimidating thing that just feels inappropriate to subject friends or coworkers to sometimes for the sake of getting messages. That being said, I do think the close form factor to glasses makes them socially acceptable in fairly short order, but I still feel having a window pane in the middle of a conversation could be a bit of an insult to who you're talking to - like when you're speaking in a meeting and the audience is reading their email instead.

I've fielded a fair number of basic questions about the device, and have finally gotten a little time this week to start looking at aspects of developing for the device, so in a few weeks I hope to have some more opinions as a developer of the device. But for now I thought a little general commentary was appropriate.

[Followed up in Google Glass: A Second Look]

Monday, June 25, 2012

Musing about Google I/O 2012

There are a lot of guesses what lies ahead for Google I/O 2012, so I thought I'd toss my two cents into the mix. I love the speculation, and I like to try and guess what's coming down the pipes a little in advance, just in case I get something right. I also see it as a good point to throw out totally unfounded predictions, because I think the obvious rumors are set in stone at this point.

Just to get them out of the way, the biggest rumors getting thrown around include the Nexus 7 tablet produced by Asus and distributed by Google for $200 or less, and an Android 4.1: Jelly Bean release - but seriously what's the fun in regurgitating "obvious" rumors? There are a couple other rumors that are a little vaguer or seemingly less significant, like another push for Google TV, release of some Google+ APIs. I'll start off from there, and journey from the reasonable speculations to the crazier ideas as I write.

Google Drive Living Documents

One thing I was a little surprised about with the Google Drive push was a lack of integration across documents and other Google services. Seeing how Google's services have been getting standardized over the last few months is definitely exciting, yet the cross-application capabilities are lacking. Within Google Documents you can't seem to include anything - Spreadsheets, Maps, or any of the things that make online documents different from Office. Drawings are the closest thing you kinda get, but even that seems like an experiment rather than integration. If Google wants to compete, they not only need to match Office, but beat it. Current unique features of Drive include cross-service scripting (through Google Apps Script) and integrated social collaboration tools (like chat and hangouts). However, some things are still notably missing like customizable document web publishing (see Wave Embeds) and embedded gadgets like polls.

To include these missing features of Google Drive, I'm specifically hoping Google merges Blogger's (tagging, location, and web publishing) capabilities into Google docs, and uses Google Documents as the only way to publish articles. They discussed rebranding Blogger and Picasa a while back, and with the updated UI and even more recent retirement of Blogger in Draft, I've be surprised if it wasn't soon. Blogger and Docs repeat a lot of functionality, and none of the seasonal cleanups have obliterated any major tools so far - so maybe they are saving it for something big like a developer conference.

Google Dis-Play (or what Google Learned from the Kindle)

There's been a lot of speculation about Google's upcoming tablet, and I think rumors are making it pretty clear that we'll have a cheaper Google Tablet running Android 4.1 and being relatively inexpensive. But I still don't think that's as important as what it's running. To that run end, I think it's worth noting that the best selling Android tablet was in fact the Kindle Fire. I don't think Google missed the lesson that having a simplified and focused user experience on a tablet is a good way to go. So to that end it's important to compare the Kindle Fire's UI to Google Play.
Android's more defined and
focused on Google products.

Google Play has sections for Music, Movies, Books and Apps much like the Kindle Fire (and the iPad), but it's worth pointing out that the Kindle Fire did a few things differently and with much success. Kindle offered a simplified interface - they had a media shelf to make it easy to get what you wanted quickly and easily. Kindle's main page was a storefront with a search button that searches Amazon's products first. The Kindle lastly sacrificed features like the camera to lower price point to appeal to a broader market.

Based on recent history it seems Google is making strides to match Kindle's success. News articles relevant to this include work on the "infinite scrolling" WebGL bookcase chrome experiment. As a Chrome experiment, the project's been untouched since last year, so maybe the work related to it is being applied elsewhere. Google Play replaced the Android Market to cover Movies, Music, Apps, Books and Devices, with Android icons available for each. Play's main page still looks a lot like Android market still. Lastly, the Nexus 7 and Android 4.1 set the rumor mill on fire. I suspect 4.1 provides more UI and cross-service improvements, although there is an impressive drought of information about this release.

As a result of these thoughts, I think Google's next tablet will have a more consumer-friendly "shelf" interface when initially purchased, similar to that of the Nook or Kindle. I also think there will be an option to exit out into the "file system" mode, and used more conventionally for current Android users.

Hanging out with Google TV

I think at this point it's safe to say that Google TV hasn't taken off in the real world. Although I do think adoption is quietly happening, it doesn't seem to be a product anyone is particularly excited about. I think Google has some real opportunities to change that though, especially with the introduction of Google+ hangouts.

Back in Google I/O 2011, Mike Cleron presented Google's "virtual camera operator" (18m in) which allowed a video camera to detect a person talking and focus on that speaker. It was a neat demo, but they didn't have Google+ at the time, so at the time its application was unclear. Now, if we imagine hangouts on a Google TV, this camera operator has greater appeal for a casual chat with friends or family off your television. So I think future Google TVs will come with a camera accessory. With that also comes the assumption a some sort of "leanback" mode to Google+, because if you have Hangouts through the TV, you want to be able to get to them - and start your own - easily. 

Chrome Emulation

My wild prediction for Chrome OS is that Google will begin selling or giving the operating system away on CDs or USBs for average users. Unofficial ISOs have been around for a while now, but that only has a niche market, and 3rd party builds don't necessarily imply the same official or secure qualities users trust. Offering CDs would allow installations on old desktops, or people that want to move off Windows but want a dead simple alternative. This wouldn't discourage the sale of Chromebooks or Chromeboxes, because their selling points are of compactness and/or long battery life.

Taking a page from Ubuntu, bootable USBs would be even better adoption technique. Since with Chrome OS everything you need is on the web, a bootable USB makes any computer your Google Chrome platform (* network setup required though ) Again, people are already doing this, but if Google produces and distributes these for free, it'd be a powerful marketing tool. Remember the AOL floppy disks? Same thing, except with Google and 4GB USB drives.

You can already make your own bootable USB drive with Chrome OS,
but imagine it coming in the mail instead.

For a wilder prediction, I also think with Chrome OS's new desktop-like functionality, a fascinating next step Chrome could take is to emulate its desktop within other operating systems (Like with Virtual PC for Windows, or Parallels for OS X). For example, opening Chrome in Windows could open up Chrome OS fullscreen, and take you out of the Windows experience altogether. I don't know if Google would see much value in this, but it's an interesting alternative.

Project Glass Crashing Through

It took Apple 6 months to get from the initial announcement of the first iPhone (9 January 2007, Wikipedia) to retail outlets (29 June 2007, Wikipedia). Project Glass was announced in a "prototype phase" in early April of this year. If we pretend Google's announcement was similar to Apple's, then a release date could be obtained in September of this year. This could go in line with the 722 demo units being requested just before I/O - so maybe Google will announce a product to sell before the holidays after all.

Though it'll probably be another year or two before it works like their promo video.

Pairing Google Wallet with Social Identity

With the rebranding of Google Checkout to Google Wallet late last year, I wondered what changes may've been in store. Google Play came out, but that wasn't really helping merchants. I've seen Google Wallet accepted in a few places in the D.C. area like Macy's and the Container Store, but accessibility has been difficult with only a handful of NFC-supporting phones on the market. So how would Google address this issue?

First thought is that you get some sort of thin credit-card-like device with NFC and some handshake that can transmit off of 3G (like the Kindle's Whispernet service). It works, but it's not great. So what's another approach? Maybe a one-time pad QR code that can be created for a financial transaction, but that still requires some knowledge and a smartphone, so again not so great. Google I/O offered a hint when it required to things for registration: financial information through Google Wallet and a real identity through Google+. With Google+ able to link a real identity to Google Wallet, Google has the building blocks of producing their own type of credit card.

Some people already made their own Google+ "identity cards."
With the supporting Android app Google is distributing for I/O 2012, the prominence of Google Wallet is seen in their event map. At first impression it hints cross-product integration between Wallet and Maps, but Android apps have been showing more of that. The Google I/O 2012 app posts events to Google Calendar for us, and the Google Maps app got Places recently added in as well.


I believe it's only a matter of time until a technology company purchases a telecommunications company. Tech companies want to offer the best products they can, but it seems telecommunication companies don't have the infrastructure to support it. Last year it was reported that Steve Jobs wanted the iPhone to work on WiFi and dodge the phone carriers altogether, probably out of Apple's desire to have more control over distribution channels and their vertical stack. However, I think it this thought has greater appeal for addressing Google's problems working with many OEMs and carriers.

I think it'd be a brilliant, crazy idea if Google acquired T-Mobile. At the very least, I do think there's some quiet discussion about something going on between the two of them, and here are a few of the things that lead me to speculate:
  • T-Mobile was first to Android
  • T-Mobile's the only US carrier without the iPhone still.
  • T-Mobile has been prominent in recent Google announcements, notably the Google Music announcement late last year.
  • T-Mobile's Galaxy S III recent announcement that the release date is now split between the 21st and 27th.
  • The San Francisco 3g network update that's been in the news recently.
At the least, I do expect the close relationship with T-Mobile and Google to continue, though I couldn't tell you to what end. But we'll see where things go.


Google is tackling more and more fields, and they're covering a lot of territory. In the end, my thoughts are only a drop in the bucket, but I am hopeful at least one or two things work their way into Google I/O this year (personally I'm hopeful my Chrome speculations have legs). In the end though, Google has a way of taking their influence and steering the industry toward a better place. Whatever Google has in store for us all this year, I hope they continue to take us down this road.

Sunday, June 17, 2012

Playing Well With Others

Let me first say I liked the WWDC Apple Keynote this year. Previous years I've found the Keynotes - from both Apple and Google -  alienating and divisive, and to me it's brought the entire ecosystem down a couple notches. Now this Keynote did throw a couple punches (Forstall calling out 7% Ice Cream Sandwich was a justifiable statistic, but Safari being the "best and most popular web browser on the planet" was manipulative and shameful marketing). However I thought Apple expressed three things in their Keynote that Google should be keeping in mind: that Apple dominates the mobile computing world right now, Apple works well with other companies, and Apple is truly concerned about the user's experience.

Apple Triumphant

Every year the WWDC Keynote has been a way for Apple to show its increasing dominance in the computing world. Media outlets over-saturate the Internet with all the Apple stories and rumors, whether the news is big or small, because they know that when Apple events occur, the tech world watches. This year Apple expressed its dominance by announcing a replacement for Google Maps throughout their products. It was enough for Google to schedule a press event a few days beforehand, to remind everyone that Google Maps still offers powerful features like walking directions, map layering, offline map storage and a robust and tested API in the wild for 7 years.

Apple's maps certainly won't have the robustness Google Maps has, but that isn't really the point of Apple's solution. Apple focused on providing the minimal features that make their Maps comparable to Google's, and that's about it: terrain, road navigation, place discoverability. From there though, they offloaded the content to other tools - for the time being Yelp. In a way, Apple's saying taking Google on is doable at a basic level, and that you can make a comparable product if you provide a good user experience (via Siri). It's a good message, that a lot of companies should listen to, or Google will make them irrelevant.

Apple Communicates

It's important to notice that the Keynote referenced Apple products that integrated with a lot of different software partners. Yelp, Facebook, Twitter. These software partners are all known and provide reliable services to users. Additionally they showed off Passbook, which is encouraging a way of using paperless tickets that has been painfully lacking through a lot of retail outlets. That these tools are developing shows a will and drive from Apple to provide a solution through its partners to have something easy to use that "just works."

Let's contrast this with Google. Google has been trying to get Google Wallet off the ground, but carriers have been working on their own digital wallet solution called Isis instead, while OEMs have been dragging their feet with adding NFC technology on a wide scale into their phones over this past year. Another example is Android 4, Ice Cream Sandwich, which was released 19 October 2011, and as of the Keynote only had 7% adoption.

Now Google understood they had a problem with OS updates last year, and at Google I/O 2011 formed the Android Alliance to produce timely updates to Android devices - as Scott Forstall's chart shows, it hasn't really been a success. The other thing Google did more recently was acquire Motorola Mobility. Everyone wrote off the purchase for Motorola's patent portfolio, but if Google has direct control over an OEM in the Android Alliance, maybe Motorola can encourage others to follow a better schedule. I don't know about you, but if Motorola had the "Google Promise" of having the latest OS version within a week of a release, I think I'd think twice about getting another Samsung (By the way, still waiting on that ICS update for my Epic 4G Touch, Samsung...)

Apple Cares

The final point is that Apple sincerely does want to provide the best products and experiences to their users. At the end of the day, Tim Cook addressed the audience toward the end, saying "The products we make, combined with the apps that you create, can fundamentally change the world." I like Cook's attitude, but also think his words may've been a little intentionally poignant. Google's employees have 20% time, have games in Google products, and create some really offbeat products to the average user. I get the impression that older companies think Google doesn't take being a tech company seriously enough.

I don't think this perspective is justified, personally. I do think Google has grown a lot in offering better experiences to users. For a while I did hear they were a little too metrics-driven, relying on A/B testing and data processing over UX, in the last few years I think they've moved beyond that. I do think Google still rubs a lot of companies the wrong way with their youth and cockiness at times. Additionally, I think it's also worth pointing out that Google's humanitarian efforts are commendable.


When the Keynote completed and everyone was chattering about the new Macbook Pro with the retina display, I was eyeing Passbook. As a user, Passbook offers a solution to paper coupons that hasn't been tackled very well on a massive scale. It shows a willingness of Apple to collaborate with different companies on creating a solution that their partners all buy into upon release. Since Apple has the benefit of being labeled a hardware company, maybe Google is seen too much as a competitor for other companies to work with them. Or maybe Google is overreaching by jumping into everything from deal sites (Goggle Offers), social media (Google+), to publishing (Currents and Catalogs), and doesn't feel like it needs to work with others. Either way, in the end I felt Apple's Keynote confronted Google with the fact that although Google's presence is huge and powerful, it can easily be uprooted with the right tools, the right partners, and the right user base.

Sunday, April 29, 2012

Fun with Fusion Tables

I've been playing around with Google Docs features a lot in my spare time. For instance, playing with the different document types (Documents, Presentations, Spreadsheets, Forms, Drawings), as well as Google Apps Scripts. One tool I hadn't done much with, but had heard some about, are Google Fusion Tables. At Google I/O 2011 there was a presentation I sat through on Fusion Tables, and although it looked really cool, I got the impression that it was best with large amounts of data to aggregate through - not really what I was using Google Docs for at the time.

A walkthrough of some Google Fusion Tables features.

Fast forward to today, and I've been using Google Docs a lot more. I've collected Wii Fit metrics to help lose weight. I went to a Google Hackathon in D.C. and discovered some of the conveniences of Google Apps Scripts. So the other day when I saw Tables available in my Google Docs, I figured I'd finally try it out.

Finding a Data Set

I took part in the AFCEA 5k in the Baltimore/Washington area, but was underwhelmed with the text file of results that they provided on their site. So I did what any rational person with a computer and a bit of free time would do: I dropped it into a Spreadsheet (in this case, courtesy of Google Docs). Let me take a moment to mention that the importing the data provided through AFCEA was less than perfect - some participants excluded hometown information or age data, and others didn't finish the race (probably because they lost their timing chips). So importing isn't super smart yet, but after moderate Google Spreadsheet editing I persevered.

Now this Spreadsheet has information for 762 participants. If you're used to Google Spreadsheets, you may know that working with a somewhat sizable data set sometimes isn't so great - sorting and searching data is sometimes slow and a bit of a nuisance. The most interesting part of this data however, was that it included hometown information. In Spreadsheets you can't do much with that, but I remembered from the demo last year that plotting data to a map was easy with Fusion Tables.

Initial Impressions of Fusion Tables

Fusion Tables are a little hidden under the Create button of Google Docs.

From there, you get a friendly little prompt asking you what data set you'd care to import from. Options include spreadsheets and text files, Google Spreadsheets, or creating an empty table. I imported from the Google Spreadsheet, although I found editing batches of data from Fusion Tables was somewhat tricky (and also a feature request). So I got the data established after re-importing the same data multiple times, and imported in this Table format. If you view the data set, you'll notice a few things: it renders fast (I assume because of there's no Spreadsheets bloat of loading full/large amounts of data or Apps Scripts), it sorts fast, and it has a few other different options.

One new option is to merge data sets, which is good if you're combining data from multiple sources. Another is to import more rows, which should be good if you want to work with very large amounts of fixed data - something I've found inconvenient through Spreadsheets.

The Neat Stuff

Filters and Aggregators are another tool that's new, and by far one of the more interesting tools. The AFCEA data had a few typos in it, and although I caught most of them in Spreadsheets, there were a few imported into the Table. Finding the discrepancies by filtering down was really slick, as I could filter for the typo in a particular field, and the matches came up instantly. Aggregation was also easy in Tables. For example, the graph below displays the time (in seconds) it took the max, min and average runner to complete the 5k. It's a lot slower a process to represent this data in Spreadsheets.

What really was neat in Tables though is that you can also map the data, and you don't need coordinates to go it. Fusion Tables can derive locations from record data and "geocode" it, giving you a cool way of presenting table data. A little spooky that it's so easy to process, but impressive. Also I hear there's a limit to the amount of data you can freely geocode (like 2500 records/day), but that's pretty decent for personal use.


So there's some neat things that Fusion Tables have to offer. I'm still toying around with this, but so far it's been pretty awesome to work with. If you're looking to compare this tool to something in the Office suite, your closest bet is Access, but with data sharing courtesy of the Internet, and visualization tools courtesy of Google gadgets that make the experience 500 times better. So think of Fusion Tables as Access, but much, much more awesome.

Thursday, January 12, 2012

Book Review: HTML5 Step by Step

Good if Starting from Scratch
By Tom O from Baltimore, MD on 1/12/2012


Pros: Easy to understand, Helpful examples, Well-written
Cons: Omits some details, Too basic
Best Uses: Novice, Student
Describe Yourself: Designer, Developer
This is a well structured and clear book about how to write articles and code using HTML5. If you are looking to create or adjust content for the web and don't really have much experience, this provides good introductory material to get you on your feet.

If you have decent HTML knowledge you will want to avoid reading the book cover to cover, because much of the basics are covered here. Particular newer topics you should look at include the newer tags (like article and nav) and the newer input types (like the slider, date picker or spin box). The color picker input type wasn't mentioned, but it only really works in Opera so it's a very minor omission.

One slight disappointment about this book was that it didn't discuss some of the other aspects of HTML5, such as offline storage or location services. I understand those capabilities do assume JavaScript knowledge beyond the neophyte level, but mentioning these aspects of HTML5 in passing would've been nice. I did like the introduction to the canvas tag, and how it gave a brief introduction to JavaScript and jQuery to make the first experience fairly simple.

Disclosure: I received a free review copy of this through O'Reilly Media.