Reflections of the Mirror API

Like my last post detailing the good, the bad and the celebrity of my first 6 months with Glass, this post will start with a little background for context. I’m also going to work on length because that last post was too darn long… sorry about that.

A quick note as well: This post is going to be a little more technical than some of my previous writing.  However, I’ll try to keep it meaningful and enjoyable for those without a technical background also.   If you haven’t seen this G+ post , my 7 year old nephew put me in my place when I thought something would be too technical for him, so maybe I should have left this caveat out anyway.

I work mainly as a project and program manager with a technical background.  I started out in the learning (technology-enhanced education) industry as a software engineer writing mostly web applications on several different platforms ranging from Cold Fusion (yup, I actually thought the fusebox architecture was awesome and would stay around forever), to Java (Applets, Servlets, JSP), to ASP.Net (C#).  Over time I found I had a knack for describing technical projects in layman’s terms and soon after I slowly began to have less and less time to dedicate to coding.  Also, I was never that great at it anyway… since I’m looking in the mirror (no “API” this time), let’s say I was adequate, at best.  Fast forward [jeez… I went to type this number, but it is bigger than I though it would be so… use your imagination] years and I spend more time in meetings and on the phone than I do behind a computer on most days.  The good news is that I’m a staunch advocate for those lucky enough to still be able to code daily, and I consider a big part of my job to form a bubble (force field, 10 foot high concrete fence with razor-wire at the top… you get the idea) around the technical folks so they can do their work without constant interference, requirements creep and every other programmer Kryptonite.

Climbing back out of that rabbit hole, I hope you get the picture.   I have tried to continue to read and keep up with the latest technologies, I understand how it all works but I haven’t been hands-on for quite a while.

Enter Glass…

Excitement, exhilaration, and every other energizing word you can think of dragged me back on the do-er side of things, and I’m loving it.  I’m taking a Programming Applications for Android Handheld Systems massively open online course (MOOC) to eventually start working with the Glass Development Kit (GDK), but for now I’m going to focus on development with the Mirror API because its based on web technologies I already know and understand.  I am in no way claiming to be a Mirror API expert but I may be able to point you to some valuable resources to get started quickly.  Google has all of this information on their Glass Development Site, but I found a way to skip most of it and dig in while not really understanding where I was going.  It was a  misstep.   I’ll include my thoughts on some of these resources, so you can get an appropriate introduction to the Mirror API while  avoiding a false start.

Quick Start

The Mirror API allows you to write code with just about any language on just about any platform. This makes it ideal for integrating with existing websites or services. Just look at quick and simple integrations like Evernote’s Send to Glass button. This is a quick push of information, formatted for Glass, while using an existing platform. Simple, quick and easy. So, how do you learn how to write tools and services with the Mirror API in a language familiar to you? If you’re like me, you want to see an example and that is exactly what the Quick Start demonstrations provide. Examples and code libraries are currently available in .Net, Java, PHP, Python, Ruby and Go.

Usage Stories

During my first glance at the Mirror API, I quickly looked at the Usage Stories page and prematurely decided it wasn’t necessary for me to dig into the details.   Don’t make the same mistake as me.  Even though your system may not be identical to Google’s Add a Cat to That example, the general flow of information can be valuable when deciding how to design your own Mirror API Glassware service.  The Usage Stories contain small diagrams illustrating the flow of data and division of responsibility.  These diagrams can help a novice understand how the Mirror API is used to tie together the different components of Glassware that runs as service.


When you look at the vast amount of information on the Design section of the Glassware development site, its easy to get overwhelmed and decide to skip it.  I did.  I thought I knew better.  I was wrong.  First things first: Use Glass.  See how other Glassware takes advantage of this new type of user interface. Decide what you like and decide what could be improved.  For example, a lot of early Glassware sends information to your Glass via cards in your timeline (the history side, to the right of the OK Glass screen).  I turned on a lot of these services initially and found that my timeline became useless quickly.  There was just way too much information.  Over time, Glassware like Winkfeed noticed this problem and started to work on solutions.  As a matter of fact there is a great conversation on a related topic on the most recent (at the time of publishing of this article) Wearables Weekly – Episode 29.

The point is, know what works well on Glass by using it. Also, look at Google’s Design pages.  They are extensive and intimidating, but valuable.  The folks at Google had a certain type of user interaction in mind when creating Glass.  Everything from the hardware to the user interface is created to support this new, short-duration, and focused user experience.  So, read those design documents and understand what Glass is intended to do.  If this is ignored, you could build the most thorough Mirror API service ever and still have something totally useless in the intended operating environment. I can’t recommend this enough.  Ask +Virginia Poltrack, who just got Word of the Day accepted as official Glassware. These, sometimes little, design considerations come up if you ever decide to submit your Glassware to Google so its available on the My Glass site/app.  Its worth taking the time to gain a complete understanding of what Google and what you, as a user, see as an optimal experience on Glass.


I’ll just say it.  The Playground is awesome, a huge time-saver, and an efficient way to fine-tune your user interface without hitting your API quota.  Oh yeah… for those not in the know, Google has a 1000 request API limit per day on the Mirror API for each one of your Glassware services.  If you use more than that, you will get an error and your API requests won’t work. So how do you get a set of beta testers using your software AND have enough API limit remaining to test and tweak, test and tweak, test and tweak your UI…  Answer: the Playground.

The Mirror API Playground contains common templates recommended by Google.  In fact, they *strongly* suggest you use a template if applicable.  I’m sure there are card formats that are not available in the current list, and in that case invent away.  If you can use a provided template, then do so.  First, these formats are tested and are known to work well on Glass.  Next, the templates provide a consistent user experience across unrelated Glassware making the entire ecosystem of Glassware easier to use.

Don’t miss this note: I used the Playground at first, only to copy template code into my environment and then sent cards to Glass to see what the results look like.  Totally unnecessary!  You can edit the HTML in the Playground and see the UI change real-time on the Playground website.  No API calls, no closer to the limit, no need to have the Mirror API implemented at all to design and try out your UI.  You can hook the Playground to your Glass and this is  indeed useful down the road when you want to see how it feels on the actual device, but for getting started, stick with the Playground website.  Its quick, simple and has no affect on your quota.  Play away!

Tools and Downloads – Assets

This will seem like common sense, but I missed it at first.  Google provides a series of Send to Glass and Get it on Glass buttons for you to use in your Glassware.  Again, its all about a consistent experience.  I worked on my own buttons to send to Glass and later realized all of these standard buttons are provided by Google.  Don’t make the same mistake.  They also provide a cascading style sheet (CSS) that is pre-loaded on Glass.  You can use their styles that are pre-made and fine-tuned to the Glass UI.  If you make your own styles, you better have a darn good reason for it.  Google has put a lot of thought into a consistent experience for end users.  There are and will be reasons to create your own styles, but be sure you can explain why your feature is a special snowflake, not accounted for in the standard Google Glass CSS file.

Help Desk

When all else fails, go to the community and/or go to Google.  There are a lot of options for help.  From the community, you can use Google+ or the Explorers community in My Glass.  I don’t know if this is still the case, but early Explorers got a phone number and special pin that can be used to talk to Google support directly.  This has been worth its weight in gold.

Don’t forget about Stack Overflow.  There is a Mirror API tag on Stack Overflow that often gets answered by Google staff.  In fact, even though I’m talking about it last, Stack Overflow is a great place to start when you’re having trouble.  Definitely check it out.


The summary for this post is short and simple.  When you’re diving into the Mirror API, its great to jump in and start coding.  However, when you’re ready to seriously write some Glassware that you one day hope will be official Google Glassware, don’t start until you read the documentation on Google’s site for Glass Developers.  The links above, and a lot more, are all available there.  Take the time to read everything, then read it again.  Its not fluff and is there for good reason.  Get to know all of the available resources and use standard templates, code libraries and design to make high quality Glassware consistent with the rest of the platform.

Happy Coding!


Posted in Google Glass, Mirror API, Technology

The good, the bad and the celebrity

6 Months with Glass

I’m one of the “use Glass several times a day” people.  I don’t know whether I’m a typical Glass user or not. So, I thought I would tell you what I use Glass for a lot, a little, what I think needs changing and an observation about being an explorer.

First, a little data about me and my family. We are nomads, not in the wander the arid lowlands following the food and water kind of way, but a nomad nonetheless.  We travel a lot. Every week. Because of this, certain features of Glass suit me better than others.  Let’s explore a few that make the good list.

the good

  1. Camera – the convenience of the camera is amazing. If you follow any Explorers on Google+, this won’t be a surprise. We, the Explorers, take a lot of pictures… some really great pictures. Hands covered with flour and mashed potatoes and cheese while making pierogi? No problem; just wink and Glass fires off a shot for you.  Share the pic with a quick caption on Google+, all with a few simple voice commands. It is true that Glass is best for short interactions and a quick photo fits the bill.

    Key Hint: If the wink for photo function doesn’t work well for you, re-calibrate.  When you wink, make sure you wink like you mean it and repeat this when taking a picture.  Once setup appropriately, you will get some great responsiveness.

  2. Messaging – Speaking of short interactions, how about when you are running to catch the metro (or insert your favorite public transportation here) and your significant other sends you a message.  It can be tedious (in a 1st world problem way) to dig out your phone, see who sent the message and type in a response all while running to catch a departing train.  With Glass, its simple to see the message and respond quickly.  This is particularly true once you get used to the voice commands associated.  OK Glass… Reply… I’ll be home in ten minutes (period) I’ll pick up the takeout on the way (period)

    Key Hint: If you communicate both with Hangouts and SMS, Glass will choose to send a message via Hangout instead of SMS.

  3. Navigation – I use navigation in two ways: 1) Glass navigation is great for short car rides like from an airport to a hotel.  I require less preparation than ever when leaving an airport in a rental car.  OK Glass…  Get Directions To… Hilton Garden Inn at UCF.  Easy. 2) I often have to find a building or address when walking through a city like Washington DC or NYC.  Glass is great at quickly finding an address or business and then getting you there.  I hear the public transportation features are also great, but I can’t provide a first-person account because I haven’t tried it yet.

    Key Hint: The navigation Glassware works by connecting to your phone or tablet via Bluetooth and uses your device’s GPS coordinates.  Remember this if you’re phone is buried in a bag somewhere.  You’ll get better directions when your paired device gets a good signal.  Also, the navigation Glassware can be battery-intensive.  If you are taking a long trip and want to use Glass when you get there, better stick with your phone unless you have a car charger or backup battery pack.

  4. Google Now – Google Now cards show up to the left of your Glass home screen with other now/future cards like the weather and upcoming calendar appointments.  If you’re already a Google Now user, you will see obvious benefits.  Your flight just arrived at JFK and you need to know, if you are delayed, what time your flight leaves or where to go for your connection to MCO. Google Now makes it easier than ever to get this info by placing your flight and detailed flight information in your timeline.

    Key Hint: Google Now works better when you take the time to set it up on your computer or mobile device.  You need to really consider what information will be helpful in your daily life and what information is just noise.  Tweak these settings as you learn more and help Google Now learn more about you…  Ya ya… I know… privacy privacy privacy.  There is a balance here between putting your life online and getting some real-time contextual information to make your life easier.  Find the balance.  You won’t regret it.

I feel like I need to stop here on the good.  I could talk more about quick Google searches, Hangouts and the emerging 3rd-party Glassware ecosystem but I’m trying to keep this brief. I do need to say that there is some amazing 3rd-party Glassware created with the Mirror API and GDK. I’ll cover some of my favorites in another post.

Let’s talk a little about where Glass misses the mark.

the bad

In an attempt to have a catchy title, I used ‘bad‘, and in some cases that may be a good description.  I love my Glass, I feel lucky to have them and I understand that this whole thing is a big beta program, so if I were not to need a good blog title, I would have written ‘needs improving‘ as more accurate description of this section.  Let me dig into this for a second before I get to the list.

To the press:

First and foremost – Please use Glass, experiment and wear it everyday for a few months before you judge its eventual success.  While you are doing this remember that you are part of a beta test. If you wanted perfect hardware, no bugs and a large 3rd party app ecosystem, well then… you’re too early.  Just pack it in and wait a while to try it again at a later date.  On the other hand, if you are excited about the future of wearable technology, can visualize what is possible when such a technology becomes ubiquitous and want to provide meaningful feedback on what works and what doesn’t… then welcome aboard.  My list below details some features that don’t work well for me.  However, I want those features.  I want them to work.  In some cases, it pains me that they don’t work.  The good news is that I don’t think any of these are insurmountable… so lets take a look.

  1. Phone call over Bluetooth – I walk around with an earbud and mic dangling from my ear, plugged into my phone.  I do this while I have a $1500.00 device on my head with Bluetooth audio capability… so why the heck do I use a wired connection?  First, as well documented by others, the audio just isn’t loud enough without an earbud.  Glass v2 introduced an accompanying earbud to bring up the volume, but its uncomfortable, expensive and most importantly, the Bluetooth connection is horrendous anyway.  Even with the highest quality Bose earbuds and a volume that goes to 11 (nod to Spinal Tap), this feature is utterly unusable.  To me, this is a must-have in a commercial version.  Other Bluetooth headsets work well, provide high quality audio and a stable connection.  Glass must do the same.
  2. Battery – I think the less-than-ideal battery performance is blown way out of proportion, but it could be better.  You have to get used monitoring your battery life and adjusting your Glass use to just barely get through your day.  Or, you need to start carrying a backup battery pack just in case.  This type of monitoring and planning is not going to cut it during public release.  I’ve started carrying a backup battery pack, but its less than ideal and it won’t suit the general public.
  3. Contacts – 10 contacts total.  This is not enough.  Glass seems to be pretty darn intelligent.  Why can’t I place a call or Hangout to anyone in my phone contacts via voice command?  My phone can do this already…  Glass needs to be able to also.
  4. Cost – I demo Glass for a lot of people on a weekly basis.  One of their first questions is “how much do they cost”?  The answer is often followed by a “wow… that needs to be way cheaper for me to get mine” look.  Based on these conversations, I’d say an acceptable range is $300 to $600.  In fact, I feel like a lot of these people would have immediately gone to the store and bought a pair if they were available for $600 or less.  If Glass keeps the $1500 price tag, not to mention the REALLY expensive official accessories, they’ll miss some really eager potential users.   The price must come down.
  5. Photo and video organization – I like the timeline.  I like the Glass interface.  I think it needs some tweaking (not twerking… get your mind out of the gutter).  Glass is great for taking pictures and videos.  If you’re a Google+ user, you probably get these images via autobackup and that can be ultra-convenient.  However, sometimes I want to get to a video or image on my Glass.  Currently, I need to scroll through the timeline to find it.  If it was taken a week ago, that ends up to be a lot of scrolling.  Glass needs a shortcut to pics and videos.  This needs to be nothing more than a filter on the timeline to display images (or videos) in the DCIM folder.
  6. Warning… fragile – When you walk around with an expensive device on your face and you’re at Mother Nature’s mercy, you want the device to be pretty tough.  Maybe this is my perception, but I feel like Glass is really delicate.  I’m afraid to sweat too much, I’m afraid to wear them if there is any chance of rain, what about all of the problems in humidity (the dreaded foil peeling issue), why does the prism darken when its cold…  Yikes — one bullet-proof,  humidity controlled, shock absorbing and temperature controlled case please.

As with the goodthe bad list could continue.  For the sake of brevity, I’ll leave it at that for now.

And now a quick thought on the Explorer program…

the celebrity

The Explorer program is awesome.  The Explorers are awesome.  Its great to be part of a community that is working together to use and test such a disruptive technology.  I truly feel honored to be part of it.

For those without Glass, a big part of being an Explorer is acting as an ambassador for Glass.  There is A LOT of interest in Glass and only a (relatively) small community of people that actually have Glass.  This results in a lot of attention when wearing Glass in public.  Most often, you hear whispers and murmurs behind you as you walk.  Although hard to make out, you’ll usually get a “… whisper whisper whisper Google Glass whisper whisper whisper…”.  Those more outgoing may walk up, ask questions, take pictures of you and even ask to try them.  Personally, I like to demo Glass.  I like to get people excited about Glass and  I like to change any negative perceptions they may have coming into the conversation.  I have my usual script down pat (this takes a while if you’re a new Explorer.  I’d actually take the time to prepare a little.  It will make the whole thing run more smoothly).

In total, this has been an overwhelmingly positive experience.

Enter xyz amusement park…  Recently at a mini-meetup in a park, three of us (self included) walked around sporting Glass.  This stuck out and got us some attention.  At first, no problem… answer question… give some quick demos… and move on.  Late in the day, in a large crowd, we started to get an uncomfortable amount of attention.  This too, at first was ok, but started to impede any movement (we actually had a place to be!).  Still, we grinned and moved on.

Now — where I got uncomfortable.  I don’t mind demonstrating Glass.  I don’t mind letting people try them.  But… please give them back when the demo is done, and I’ll hand them to the next person, with instructions and a careful steady hand.  During this demo, my Glass went to person a, then was handed directly to person b, then c and so on.  So what’s the problem.  First, they don’t know where to hold them.  They grabbed the prism, smudged the camera lens and really just carelessly moved them from person to person like a cheap $5 pair of convenience store sun glasses.  This is where I really started to get seriously worried for my device.  My wife and friends noticed (I think) and moved in to help break up the crowd and get out of there.

I’ve always felt like real celebrities were overreacting when they complained about the attention.  You make a gazillion dollars… and all you have to do is deal with some pics and autographs.  Big deal.  Well, I’m thinking I’ll change my opinion on that.  For me, I just removed Glass from my face.  They can’t remove their likeness.  It was my first real distressing situation with Glass.  

So – for those people I have yet to run into.  I’d love to give you a demo.  I know you’re excited.  So am I!  Keep in mind these things are expensive.  I’ll show them to all of your friends.  Please just hand them back to me so I can show the next person how to use them.

With that, I’ll wrap up.

the good – Glass has huge potential and does a lot of things right.  Pictures, video, message, awesome 3rd party Glassware… all very exciting and immensely useful.

the bad – Glass is currently a beta project and as such, it needs some work.  Have suggestions for improvement?  Send them to Google and get your voice heard.

the celebrity – Soon to fade and won’t necessarily be missed.  However… Alec Baldwin… I sort-of get it now… maybe a little longer fuse would do you some good… but I get it.

Thanks for reading.


Posted in Gadgets, Google Glass, Technology

Introducing… me

Hi there.  Lately, I’ve been reading a lot of press about Google Glass and other technology.  Some of these articles are well thought out and written by individuals that obviously took their time to do a thorough, well-formed review.

Others… well… after I finished yelling at my monitor I kept trying to think of a way to respond.  My gut reaction was to lash out in comments on their posts but I know that makes me just like them.  Here’s an example: I was talking with someone yesterday who was nervous that I was wearing Glass.  When I inquired about it, they said they were cautious because they read an article about Google’s “always on, always recording” technology.  I quickly explained that if I was always recording, that I’d have to charge the battery every 30 minutes.  The nervousness faded and was replaced with curiosity and excitement.

So… what can I do to get the word out?

Enter this blog… I can’t promise that I won’t shoot from the hip sometimes, but I’ll try to be thoughtful and honest.  I’ll respond to others, especially folks that I feel are uninformed or even dead wrong.  I’ll do some of my own articles when inspired to do so and when I figure out this space-time continuum stuff so I can add more hours to a day.  I’m passionate about technology especially technology to enhance learning, so I’m sure there will be a rant or two about that.

Thanks for reading. Hang in there while I finish up my WordPress customizations.  I’ll start writing more regularly soon.


Posted in Google Glass, Technology