Friday coding

During my day job I am a product manager. This job does not encourage or provide time to write code. As I was getting ready to take some time off for the thanksgiving holiday, I worked to clear my calendar, clean my inbox and set a few actions in motion so I could really take some down time. Imagine my surprise when I had a few hours at the end of the day where I could do some coding on a demo we’ve been using for some time. The demo consists of a python application that emulates a car, a set of cloud services which process mqtt enabled devices, and an iOS app that represents a key fob that sends messages to the “car” simulator via the cloud. The initial iOS app was designed for one size screen and one orientation. I’ve always wanted the iOS app to be responsive to the orientation of the phone and to resize based on the various screen sizes, so I took the time late Friday to go back and add auto layout to the app.

I didn’t write the initial app, so completely redoing the interface was not an option. I had to go back and deal with auto layout within interface builder. I personally enjoy doing auto layout completely in code, so this was going to be a new experience for me.

After completing all the fixes, checking it into the repo for others on the team to take advantage of I discovered a new setting in Xcode for iOS8 – Adaptive Layout. I plan on doing some looking at that next!

Learning Swift

I’ve been a big fan of Ray Wenderlich’s site for getting up to speed on iOS programming, etc. For the last few weekends I’ve been spending my “free” time going thru his Swift by example book. While I’ve not gotten too far yet, I am enjoying the material. If you are interested in learning Swift, I can say it’ said good place to start. Go check it out!

MacWorld Expo 2015

By now, any reader of this blog already knows that IDC has cancelled MacWorld Expo.   While they didn’t say “cancelled,” they did put it on hiatus.  As someone who has gone to many different “user” focused conferences over the years, this means cancelle.  At least in any form we may recognize.  We may see a new “Mac Expo” come in to being, but I don’t think that we will ever see same type of conference.  I look back fondly at the friends I’ve made, the sessions I got to sit thru, and all the cool tech that I got to review.

Over the years, I have been trying to get time to go to WWDC, but my day job held a conference every year at the same time.  The good news, at least for me, is that my day job is combining multiple large conferences into one mega-conference.  The date for the new mega-conference is now in Febuary, and I have a chance to try and attend WWDC.

Given Apple’s registration process this is going to be tough, but at least  there’s a chancce.  So I think it’s time to go ahead and book my hotel room.

Review – Home Inventory for Mac and iOS

According to the makers of Home Inventory (Binary Formations, LLC. ), September was “National Preparedness Month” and as such they made their flagship product “Home Inventory” available for 50% off.  I got the opporuntity to do a review of the Mac product, along with both iOS companion products – Mobile Backup and Photo Remote.  Binary Formations was founded a little over four years ago, but the product shows a level of maturity of feature set, that comes from building a product that is truly needed by the developers themselves.  The Mac App has a PDF user manual that is over 150 pages, and I admit I had to go to refer to it a few times to understand how to access some of the features – but more on that later.

What is Home Inventory?  Well it’s name describes it perfectly, it is an inventory that any home owner should have, for insurance purposes, of the items in their home.  Most insurance policies require some sort of inventory in order to reimburse after a disaster, and Home Inventory puts the tools in your hands to make sure you have what you need.  Given the completeness of this application, I won’t be able to cover all aspects of the program, and will instead focus on data capture.

I have been meaning to do a home inventory for insurance purposes for some time, but I never really have had the time to do so.  Writing a review of the app is a perfect opportunity to give it shot. Being a realist, however, I knew I would never be able to do a full inventory in time to make a meaningful review, so I decided to do a much smaller inventory, i.e. the things on my desk in my home office.  This still became a bit of a daunting task.  Should I do everything, or only those things which are relevant and expensive.  I again took the shorter path.  I would only do electronics gadgets, and there are plenty of those!! My plan was to enter 10 items, and see how it goes.

First I needed to install the Mac App, not a problem as it is available on the AppStore, so a quick click got it going.  I created the initial data file during the launch, and was presented with a screen to define some basic home information, including a picture of the home, a Maintenance Schedule and Assessment History.  You can also include detailed information about when the house was built, the lot size, age of the home, and purchase price.  This level of information is great for an insurance assessment, probably not so much for a review on the web.  So I have blocked out most of that information and included a random house picture for this review.

The First thing I entered was using the Photo Remote to take a picture of the DockIT Air case I reviewed recently (see that post).  The iPhone App requires that you are on the same wifi as the Mac running the software, that the Mac version of the application be running, and that you select the Menu options Inventory -> Photo Remote, or press Command-R.  You are walked thru either scanning a Barcode (which I did with another item) or taking a picture.  If you scan the barcode it will do a look up on Amazon (or perhaps other services) and pre-fill in much of the information about the object.  You are then walked through a series of items to select the location, make, model, serial number, price, etc.  If you don’t hit “save” you will lose the data you have entered.  Also, if you close the window on the Mac the connection will be broken and you will lose your information.  You cannot add all the information on the Remote Photo app, and will find yourself going back to your Mac to complete the process.  The good news is, that while some of the views have visual prompts to accept new value (for example – a Click to add receipt button), drag and drop seems to be working fine.

The following pictures show you how the iPhone App works, and include a few screen shots of the Mac App.

1) Define Inventory File

1) Define Inventory File

2) Define your home info

2) Define your home info

3) Add Picture and Address

3) Add Picture and Address

4) Add Assessment History and Maintenance

4) Add Assessment History and Maintenance

After getting your basics setup, the following screens show how I added a item via my iPhone using the Photo Remote app.

1) Connecting to Mac

1) Connecting to Mac

2) Choose how to add

2) Choose how to add

3) Add a Photo

3) Add a Photo

4) Add a Value

4) Add a Value

Given the goal of this application to make sure you are prepared in case of a catastrophic event, I like that they support storing the data on DropBox and for those who are a bit more worried about privacy and security (you will, after all want to include all of your policy and assessment data in the program), you can do a manual backup to your iPhone via wifi.  Having multiple ways and locations where you can store the data is critical for ensuring that your inventory is safe in case of an emergency.

Overall, this is a very complete, if somewhat complex, program.  I do not knock the complexity at this time, as the objective is to truly be ready for a complete inventory of your assets for an emergency, and that is a complex goal.  The program includes the ability to print many different reports, including a move report – which I thought was a great use of all the data you collect.  I hope that overtime they continue to simplify the interface and make it much more iOS and Mac like in its interface.  A single example of how this would work would be to allow the Photo Remote to be able to capture the pictures and basic information without having to connect to the mac.  Right now if you exit the app on the phone, before a “save” action, you lose the data you’ve been entering on that item to that point. iOS apps should be able to handle a loss of network communication without losing data.

I can’t say I am looking forward to completion of my Home Inventory, but I am certainly glad that this tool exists to ensure that I have captured all the things  I need to be prepared should I ever need it.

Local IoT Demo coming up

As I mentioned in my last post, I am focusing on the Internet of Things in my day job. I am going to be at a local meetup at the end of the month, the RIoT meetup. I love the name, and this is their second event. Unfortunately I missed the first meetup, due to a conference I was at in Orlando. RIoT stand for the Raleigh Internet of Things Meetup.

At the upcoming meetup I have seven minutes to present an IoT topic. My goal is to demonstrate a IoT app (a very simple one at that) which connected my cell phone to the IBM Bluemix cloud service and a Raspberry Pi (which in my demo will represent a car). The app will allow my cell phone to lock and unlock my car door. While the code will be trivial, what will be cool, assuming I can pull it off, will be that the cell phone will be near instantaneous in unlocking my car. I will also do a dynamic (yet trivial) code change to the mobile application which will change the message that is sent when the lock status changes.

The idea is to show off composable services on the cloud, continuous delivery for an application, and integration to a non-traditional end point. Come join me at the Meetup and let’s talk tech!

The Internet of Things and App Development

The Internet of Things has been a hot topic for the last 24 months, reaching a fevered pitch in the last few months.  When I was at CES earlier this year, you couldn’t find a company that didn’t have some perspective on the Internet of Things (IoT).  Car companies, consumer electronic companies, even clothing companies were showcasing their new connected products and how the IoT was going to improve the consumer’s experience with their brand.

I’ve been thinking about this and what makes the IoT different than prior versions of connected products.  To me it is two key factors, the level of connectivity and the quality of the software.  Let me explain

Level of connectivity

For decades, large industrial plants and manufacturing facilities have been using real-time and near real-time data to improve the efficiency of their business.  The did this via ethernet connectivity and sometimes expensive satellite and microwave connectivity.  These systems were affordable because the cost of unplanned downtime was so high, that almost any connectivity costs were acceptable.  Additionally, cognitive computing algorithms  were developed around very specific use cases, i.e. pump maintenance schedules, which had to be custom developed based on the specifics of a plant or facility. These finely tuned systems of systems were built around the connectivity and proprietary standards of the hardware in place.

Now the cost of connectivity and level of penetration of simple protocols like TCP/IP are cheap and near ubiquitous.  You can added a wifi or 2G/3G/4G radio into a product very inexpensively, while transmission costs are now bore by most of the end consumers as part of their day to day life.  This is very different than the last few decades, and means that much of the value of a IoT solution, will be in the software’s implementation of the data and consumer’s usage of the device.

Quality of the software

With the mobile revolution over the last 7 years (I go back to June 29th, 2007 when the iPhone was first available – even though had been very happy with a Palm  Treo for years before this), consumers have become used to higher quality of software.  Why do I call it higher quality?  Is it bug free? NO! Is it more functional? No! Is it more atheistically pleasing?  no. What I mean by quality of software is that it is doing what you need when you need it.  Some of the most popular fitness tools in the last few years, are applications on a smart phone – apps like Moves which tracks your walking, biking, and running based on the accelerometer on your phone.  They take advantage of many of the capabilities of the phone, and given that most people keep their phone with them at all times, it becomes the de facto fitness device.  We see the same phenomena with pictures,  the majority of pictures on Flickr, are taken with smart phones.  The same with games, the majority of time spent gaming is spent on smart phones (I made this one up, but I would bet it’s true).

So the software that is running when you need it, on the data that you have with you, and provides you with the insights you need to change your behavior, improve your process, or just better engage in a situation is higher in quality in my opinion.

So why do these matter in the Internet of Things?

In the IoT, devices and software have to work hand in hand to improve processes and a person’s environment.  As developers, we need to understand this aspect of the internet of things.  It’s easy to get consumed by the cool factor, but cool without value isn’t that cool.  So we need to improve our software to better serve our users / customers. And the Internet of Things provides us with a great way of doing this.

Internet of Things applications and things have the ability to provide us as developers with real-time and near real-time feedback on how consumers are using our product.  We should take this information and quickly improve our product to increase its value.  This means letting a consumer know what data we can and do capture, and providing no nonsense, easy to understand terms on how we will use this data to improve the consumer’s experience.

We then have the ability to take this feedback and improve the product or create new ones.  This faster time to feedback is a principle foundation of the ideas behind DevOps.  Another key aspect of DevOps is scale, and the Internet of Things is all about scale for the product/application developer.  While any individual using a IoT device or application is potentially a single node, much more value is gained in the larger scale system where patterns and other insights may be gained to improve a product or application.  And peeling back the insight requires analytics.

So what can I do as a Developer?

First, make sure you are open to your customers on what data you do collect and how it will be used.  Where it makes sense, expose APIs so your customers can extend your application and product, trust me they will come up with even more cool things to do with your application/product than you can image.  And three, take advantage of the faster time to feedback to make your product better.  Remember once you release a product or application, the engagement with your customer is just beginning.  It’s not about the initial sale, but about increasing the value over time.

An Enterprise iPad case/keyboard Review

I recently was approached to write a review of the PI DOCK iT Air iPad case with bluetooth keyboard. Given that I have had a keyboard case for every iPad I’ve owned (except my current one) I was willing to give it a try. I find that using a case can certainly increase my productivity when traveling, and as a touch typist I’ve always found that the iPad’s touch screen keyboard is a bit lacking. I also don’t feel comfortable talking out my emails or documents, so no matter how good a speech to text translator is, I tend not to use them.

Damaged Box

When the box arrived it had a gash in it, but it didn’t impact the case at all. Like all cases, it has a little bit of a delay in the typing especially when it first pairs with the Bluetooth, but that is normal. I can certainly type faster with the keyboard then the onscreen keyboard. I am sure that the tactile feedback makes a big difference for a touch typist. Similar to the other cases, the keyboard is slightly smaller than a normal Mac keyboard, which can cause a few typos.

Box Case and ManualCase in Wrapper

I found that it has an interesting design for changing angle of the screen. They call it a slideway, and it allows you to extend the hinge so that the screen can go either vertical or horizontal, and at a comfortable angle for your eyes. As someone who reads a lot of magazines and books on the iPad, the ability for a case to support vertical orientation is a nice touch.

Unboxed Case and Cable Unboxed Case Flat Side view reclining Side view no recline

Given that it is a case and keyboard, it doesn’t need much of a manual, and the simple manual (1 page back and front) does a good job of explaining all the features. I guess you don’t really need much more than that.

I wrote the rough draft of this review in Word for iPad so that I could test out the keyboard in a meaningful way. (Given that I took pictures with my SLR the final part of the review was done on my Macbook Pro.) The targeted user of the Dock iT is an enterprise iPad user, I feel this made the most sense. A little secret that the team at DOCK iT doesn’t mention is that the slideway’s ability to swivel the screen direction around, also makes it ideal for some games. I use Real Racing 3 on my iPad, and it works great for that game! Providing me with a stable enough base and a solid steering wheel feel. Very cool!

The keyboard is a bit small, but no smaller than other iPad keyboards I’ve used in the past. The plastic keys tactile enough, to allow for most touch typing, providing a nice little raised area on the F and J keys so that you can easily home your hands. There are a set of rubber feet and rubber nubs around the keyboard (I’ve lost one of the rubber feet, not sure where but after a week of traveling it got lost some point during my travels). The rubber feet keep the keyboard in place nicely on a desk (even after loosing one of them it feels stable and doesn’t wobble). While the nubs around the screen are designed to protect your screen from touching the plastic. This is good, but as a touch typist they do get in the way at times.

Like most cases, they include special keys for cut, copy, paste, volume controls, brightness, home button, and screen lock. These keys really increase the productivity on the iPad once you get used to them. One minor thing, the Home button seemed a bit finicky (not sure if this was a Bluetooth syncing issue or an iOS8 Beta issue). The reason I believe it may be beta related is that it appears to be app dependent.   They also a Caps Lock Indicator light, I’ve not seen this on the other keyboard cases I’ve used in the past – nice touch.

On day three of playing with the DOCK iT I discovered how to lay it flat. You can slide the screen on top of the keyboard. (Don’t forget to turn off the Bluetooth before doing this.) This is great for drawing programs and some games. It does, however, make the iPad much thicker than the Apple case, which I use at times, allowing me to hold the iPad like a book.

There’s one feature that is both a plus and a minus, and that is how well the DOCK iT holds the iPad is the shell.   I wanted to take the iPad out of the case to put it in a dock I have for charging. After prying the iPad out of the case with a letter opener, I ended up scratching my iPad’s back a bit. I’ve always prided myself in selling my old iPad while it still looks like new. I guess I won’t be able to do that with this one.

Another point on build quality. I was putting the case in my back pack and my employee badge got itself between the screen and keyboard, popping off a key. On a normal keyboard that would be the end of it, but on the DOCK iT Air I was able to just pop the key back in to place and it works. Nice.

Overall I am pleased with the build quality of the DOCK iT, it held up in my few weeks of testing.  Battery life appears good, I’ve only charged it once and so far have used it for two weeks with no required recharging.  The lip where the iPad sits is great for horizontal positioning, but in vertical positioning it can be a bit unstable, based on the screen angle. This is a basic physics problem due to the weight of the iPad Air and the rounded corners of the slot where the iPad sits. It works fine for a sturdy desk, but for not so much when reading a magazine in bed.

The team at PI also provided me with a cool sticker for the case – check it out.

Back of Case with Skin Screen with Skin

My continuing experience with glass

It’s been a few months with Google glass, and while it is interesting, I am still not overly impressed with the tech.  The idea is fantastic, but the implementation of applications so far is less than impressive.  Given that it is beta, I know things can only get better; however, I am starting to feel that Google is using this as a test platform for their android wear solutions.  The Google Now cards, that show up in glass, are starting to be THE way to program for android wear.

Photo on 7-2-14 at 3.58 PM


Is it the idea that is intriguing, or the actual tech?  I keep wondering if this is because of the requirement for tethering when I am out and about. However, even around the house, or at my favorite coffee shop, when I have full wifi access, I am not finding that the existing apps are that useful.

What do you think?  Are you going to get glass as an explorer?  Do you think it will EVER come out of beta?  Or is this all just a test bed?

Technology and Politics

I try not to talk politics in my public comments, but those of you who know me, know that I have an opinion.  Recently I saw two decisions from our Supreme Court which taken together left me a bit perplexed.  The first one is Aereo, in this ruling I believe that the Supreme Court has decided to cave to the money of the cable lobby.  If you are not familiar with Aereo this startup company tried to address the problems with rebroadcasting rules, but providing a rental charge for a small HD antenna in a city and then letting a consumer get access to the over the air broadcasts that the antenna captures.  In order to address concerns about rebroadcasting content, there was a one for one ratio between antennas and subscribers.  You would then receive the content over the internet from your antenna on the device of your choice.  Given the minimal cost of the antennas I felt this was a very creative approach to let consumers who are cord cutters to get access to the content they want without requiring them to get special permission to put an antenna on their apartment buildings in big cities.  A few years ago, I was on an assignment with my day job and lived in a highrise apartment building with an exclusive monopoly for access to TV.  Basically the windows didn’t open and you couldn’t put out your own antenna, so if you wanted TV you had to pay for cable.  So my read on this ruling is that the Supreme court is trying to reinforce an existing de facto monopoly.

Years ago, as an undergrad in Journalism, I had a professor who was an expert testifying to congress on matters of cable law.  It was one of my favorite classes, and it was in this class that I learned how our open broadcast system was being turned into private monopolies thru local deals between cable companies and local governments.  Originally, cable was setup to give people in remote areas access to the broadcast signals which were economically not viable for building towers.  Similar to Aereo, early cable companies used new technology to reach consumers who could not access broadcast signals. They would use public right of ways (the area where they laid their cables in the ground) as a means for extending the reach of those signals. Today our public right of way is the Internet.  I find it disappointing that the Supreme Court didn’t see it this way.

The second ruling which surprised me was the cell phone warrant ruling.  In a 9-0 ruling the supreme court ruled that the police can’t search your smart phone without a warrant (I am sure it is not that simple, but let’s start with that assumption).  The current court has a history of taking away civil liberties and siding on the side of police.  I feel that standing up for the right of unwarranted search is a major victory to keep from eroding more of our civil liberties.  I hope that we quickly get more details on this ruling and that it warrants the faith I have in our system.

May 12th Triangle Mac users group meeting.

Meeting for a computer group at an Irish pub is a great idea… Unless you want to hear. The over all noise in the pub wouldn’t be bad for all speakers, but some of the presenters were not loud enough, and many of the attendees could not hear.

The topics are office in the cloud. Ms office, google docs iWork, and quip. Basic discussion in the benefits of cloud based solution, collaboration, offsite data, etc.

Given the price of ms office’s new office 365, between $70-$100 per year, many people may not want to deal with paying that subscription. Google Docs is free for most individual users, but costs $50 per year, per person for businesses.

A set of YouTube videos were also demonstrated that took people thru google docs. Again it was too hard to hear clearly, but it was a good idea to help people understand how google docs works. The link was shared with attendees and I will add it here.

One demo was a copy of open office that runs as a web app on any device. But you are actually running on someone else’s hardware. At 7pm the bar started trivia night, which made it even harder to hear.

rollapp is a new service that for $0.99 per month will provide you access to open office, and for $6.99 month they will make it add free.

While the topic was interesting between the noise level and the speakers inability to repeat questions and speak loudly and clearly, I was very disappointed.

Ms office $99 per year for 5 Computers and 5 mobile devices. With 20gb of storage per user on the 5 machines.

iWork, free on macs and iOS devices purchased after sept, 2013. While apple went to functional parity and removed a bunch of features, they have had three updates already adding more code and features back in.

Quip – this was a new one for me. This is Basically another office clone but focus on sharing and collaboration. Think of documents as lists of conversations. There is an iPad app.

Great news, the group is moving to TenPlus – an authorized apple repair shop, but the sound quality should be much better.