Posts Tagged‘app’

Jawbone Up3: Good, But Still Missing Something.

I was always of the opinion that the health trackers on the market were little more than gimmicks. Most of them were glorified pedometers worn by people who wanted to look like they were fitness conscious people rather than actually using them to stay fit. The introduction of heart rate tracking however presented functionality that wasn’t available before and piqued my interest. However the lack of continuous passive heart rate monitoring meant that they weren’t particularly useful in that regard so I held off until that was available. The Jawbone Up3 was the first to offer that functionality and, whilst it’s still limited to non-active periods, was enough for me to purchase my first fitness tracker. After using it for a month or so I thought I’d report my findings on it as most of the reviews out there focus on it at launch, rather than how it is now.

IMG_20151111_095854

The device itself is small, lightweight and relatively easy to forget that it’s strapped to your wrist once you get it on. The band adjustment system is a little awkward, requiring you to take it off to adjust it and then put it back on, but once you get it to the right size it’s not much of an issue. The charging mechanism could be done better as it requires you to line up all the contacts perfectly or the band will simply not charge. It’d be far better to have an inductive charging system for it however given the device’s size and weight I’d hazard a guess that that was likely not an option. For the fashion conscious the Up3 seems to go unnoticed by most with only a few people I knew noticing it over the time I’ve had it. Overall as a piece of tech I like it however looks aren’t everything when it comes to fitness trackers.

The spec sheet for the Up3 has a laundry list of sensors in it however you really only get to see the data collected from two of them: the pedometer and the heart rate monitor. Whilst I understand that having all that data would be confusing for most users for someone like me it’d definitely be of interest. This means that, whilst the Up3 might be the most feature packed fitness tracker out there, in terms of actual, usable functionality it’s quite similar to a lot of bands already out there. For many that will make the rather high asking price a hard pill to swallow. There’s been promises of access to more data through the API for some time now but so far they have gone unfulfilled.

Jawbone Up3 App

What the Up3 really has going for it though is the app which is well designed and highly functional. Setting everything up took about 5 minutes and it instantly began tracking everything. The SmartCoach feature is interesting as it skirts around providing direct health advice but tries to encourage certain, well established healthy behaviours. All the functions work as expected with my favourite being the sleep alarm. Whilst it took a little tweaking to get right (it seemed to just go off at the time I set for the most part initially) once it’s done I definitely felt more awake when it buzzed me. It’s not a panacea to all your sleep woes though but it did give me insight into what behaviours might have been affecting my sleep patterns and what I could do to fix them.

The heart rate tracking seems relatively accurate from a trend point of view. I could definitely tell when I was exercising, sitting down or in a particularly heated meeting where my heart was racing. It’s definitely not 100% accurate as there were numerous spikes, dips and gaps in the readings which often meant that the daily average was not entirely reliable. Again it was more interesting to see the trending over time and linking deviations to certain behaviours. If accuracy is the name of the game however the Up3 is probably not for you as it simply can’t be used for more than averaging.

What’s really missing from the Up3 and it’s associated app is the integration and distillation of all the data it’s able to capture. Many have looked to heart rate monitoring as a way to get more accurate calorie burn rates but the Up3 only uses the pedometer input to do this. The various other sensor inputs could also prove valuable in determining passive calorie burn rate (I, for instance, tend to run “hotter” than most people, something the skin temperature sensor can pick up on) but again their data is unused. On a pure specification level the Up3 is the most advanced tracker out there but that means nothing if that technology isn’t put to good use.

Would I recommend buying one? I’m torn honestly. On the one hand it does do the basic functions very well and the app looks a lot better than anything the competition has put out so far. However you’re paying a lot for technology that you’re simply not going to use, hoping that it will become available sometime in the future. Unless the optical heartrate tracking of other fitness trackers isn’t cutting it for you then it’s hard to recommend the Up3 above them and other, simpler trackers will provide much of the same benefit for a lower price. Overall the Up3 has the potential to be something great, but paying for potential, rather than actual functionality, is something that only early adopters do. That was an easier sell 6 months ago but with only one major update since then I don’t think many are willing to buy something on spec.

Building And Deploying My First Windows Azure App.

I talk a big game when it comes to cloud stuff and for quite a while it was just that: talk. I’ve had a lot of experience in enterprise IT with virtualization and the like, basically all the stuff that powers the cloud solutions we’re so familiar with today, but it wasn’t up until recently that I actually took the plunge and actually started using the cloud for what its good for. There were two factors at work here, the first being that cloud services usually require money to use them and I’m already spending enough on web hosting as it is (this has since been sorted by joining BizSpark) but mostly it was time constraints as learning to code for the cloud properly is no small feat.

My first foray into developing stuff for the cloud, specifically Windows Azure, was back sometime last year when I had an idea for a statistics website based around StarCraft 2 replays. After finding out that there was a library for parsing all the data I wanted (it’s PHP but thanks to Phalanger its only a few small modifications away from being .NET)  I thought it would be cool to see things like how your actions per minute changed over time and other stats that aren’t immediately visible through the various other sites that had similar ambitions. With that all in mind I set out to code myself up a web service and I actually got pretty far with it.

However due to the enormous amount of work required to get the site working the way I wanted to work it ultimately ended up falling flat long before I attempted to deploy it. Still I learnt all the valuable lessons of how to structure my data for cloud storage services, the different uses of worker and web roles and of course the introduction into ASP.NET MVC which is arguably the front end of choice for any new cloud application on the Windows Azure framework. I didn’t touch the cloud for a long time after that until just recently when I made the move to all things Windows 8 which comes hand in hand with Visual Studio 2012.

Visual Studio 2010 was a great IDE in its own right the cloud development experience on it wasn’t particularly great, requiring a fair bit of set up in order to get everything right. Visual Studio 2012 on the other hand is built with cloud development in mind and my most recent application, which I’m going to keep in stealth until it’s a bit more mature, was an absolute dream to build in comparison to my StarCraft stats application. The emulators remain largely the same but the SDK and tools available are far better than their previous incarnations. Best of all deploying the application can’t be much simpler.

In order to deploy my application onto the production fabric all I had to do was follow the bouncing ball after right clicking my solution and hitting “Publish”. I had already set up my Azure subscription (which Visual Studio picked up on and downloaded the profile file for me) but I hadn’t configured a single thing otherwise and the wizard did everything that was required to get my application running in the cloud. After that my storage accounts were available as a drop down option in the configuration settings for each of the cloud roles, no messing around with copying keys into service definition files or anything. After a few initial teething issues with a service that didn’t behave as expected when its table storage was empty I had the application up and running without incident and it’s been trucking along well ever since.

I really can’t overstate just how damn easy it was to go from idea to development to production using the full Microsoft suite. For all my other applications I’ve usually had to spend a good few days after I’ve reached a milestone configuring my production environment the same way as I had development and 90% of the time I won’t remember all the changes I made along the way. With Azure it’s pretty much a simple change to 2 settings files (via dropdowns), publishing and then waiting for the application to go live. Using WebDeploy I can also test code changes without the risk of breaking anything as a simple reboot to the instances will roll the code back to its previous version. It’s as fool proof as you can make it.

Now if Microsoft brought this kind of ease of development to traditional applications we’d start to see some real changes in the way developers build applications in the enterprise. Since the technology backing the Azure emulator is nothing more than a layer on top of SQL and general file storage I can’t envisage that wrapping that up to an enterprise level product would be too difficult and then you’d be able to develop real hybrid applications that were completely agnostic of their underlying platform. I won’t harp on about it again as I’ve done that enough already but suffice to say I really think that it needs to happen.

I’m really looking forward to developing more on the cloud as with the experience being so seamless it really reduces the friction I usually get when making something available to the public. I might be apprenhensive to release my application to the public right now but it’s no longer a case of whether it will work properly or not (I know it will since the emulator is pretty darn close to production) it’s now just a question of how many features I want to put in. I’m not denying that the latter could be a killer in its own right, as it has been in the past, but the less things I have to worry about the better and Windows Azure seems like a pretty good platform for alleviating a lot of my concerns.

Ideas, Execution and Achieving Your Goals.

Imagine a social gathering, you’re familiar with most of the people there but not all of them so you’ve been engaging with some small talk so you don’t spend the next 4 hours being that weird guy in the corner. Amongst the varying commentary about weather, local sports teams and what have you inevitably the conversation turns to what you all do for a living. Now for most people this is usually a one liner followed by a few back and forths over a few minor details and then it’s off to the other topic of conversation. There are some notable exceptions of course usually when your job is in an industry like IT, medical or (one of the more recent additions to this club) app development. If you dare mention you’re in one of these industries it’s highly likely that someone will launch into a description of their problems or start giving you ideas for their great iPhone app.

Being someone who fits into 2 of these categories (IT and a budding app developer) I get this kind of thing all the time, especially when I’m visiting a friend of a friend who I haven’t met before. Mostly it’s pretty harmless and I don’t mind taking some time out to help people as long as it doesn’t become a recurring theme. Of course IT problems don’t usually exist in isolation so more often than not I’ll be called upon again to come back at which point I usually tell people my going rate and watch the problem evaporate rather quickly. What a lot of people fail to realise is that whilst we might do something for a living we don’t necessarily enjoy doing it out of work, especially if we’ve just spent our whole day doing it.

It’s for that reason alone that I don’t bother people with questions about their professions in a social setting, kind of a common courtesy from someone who knows what they’re going through. I’ll admit it’s not easy sometimes, especially if I have an idea for a project that I want someone to work with me on, but there are much better ways to approach someone than accosting them the second you find out that they could be useful to you.

New app ideas are probably the worst out of the lot as many people are convinced their ideas are fantastic and all they need is you for a couple hours to just bang it out for them. Luckily for me I can tell them that the last app I tried to develop took about a year and barely lead anywhere but even that doesn’t deter some of the more enthusiastic punters. It’s even worse that I completely understand their motivations too as I tried hard to get other people excited about the idea but inevitably you can only talk about something for so long before people just don’t want to hear about it anymore.

It’s for that exact reason that I haven’t been talking at all about my most recent project, except in the most general terms. There’s also a multitude of other factors as well (like first mover advantage, which I believe I have in this case) but it also comes down to a the fact that talking about your goals triggers the same neurological response as actually completing them. Thus I feel those who are approaching me to develop an idea for them have already got what they needed (that feeling of completion) and attempting to follow the idea to its conclusion is usually an exercise in futility. 

Even though we’re all familiar with the old adage of “Genius is: 1% inspiration, 99% perspiration” the opposite seems to hold true for commonly held opinions about ideas. The notion that all it takes is an amazing idea to realize your dreams (made worse by the fact that people think iPhone apps are just so damn easy to make) and so the second they get something they think is novel suddenly the hard part is over. Being someone who’s had 50+ of those “amazing” ideas and only been able to execute a couple of them I can tell you the easy part is getting an idea, the hard part is tuning out everything else and working solidly on that idea for months on end. So you should really ask yourself “Would I be willing to work on this day in day out in order for it to succeed?” and if you’re answer is anything but an unconditional yes then you should wonder why others would bother to work on it with you.

Is Tethered Internet Usage So Different?

I remember getting my first ever phone with a data plan. It was 3 years ago and I remember looking through nearly every carrier’s offerings to see where I could get the best deal. I wasn’t going to get a contract since I change my phone at least once a year (thank you FBT exemption) and I was going to buy the handset outright, so many of the bundle deals going at the time weren’t available to me. I eventually settled on 3 mobile as they had the best of both worlds in terms of plan cost and data, totaling a mere $40/month for $150 worth of calls and 1GB of data. Still when I was talking to them about how the usage was calculated I seemed to hit a nerve over certain use cases.

Now I’m not a big user of mobile data despite my daily consumption of web services on my mobile devices, usually averaging about 200MB/month. Still there have been times that I’ve really needed the extra capacity like when I’m away and need an Internet connection for my laptop. Of course tethering the two devices together doesn’t take much effort at all, my first phone only needed a driver for it to work, and as far as I could tell the requests would look like they were coming directly from my phone. However the sales representatives told me in no uncertain terms that I’d have to get a separate data plan if I wanted to tether my handset or if I dared to plug my sim card into a 3G modem.

Of course upon testing these restrictions I found them to be patently false.

Now it could’ve just been misinformed sales people who got mixed up when I told them what I was planning to do with my new data enabled phone but the idea that tethered Internet usage is somehow different to normal Internet usage wasn’t a new idea to me. In the USA pretty much every carrier will charge you a premium on top of whatever plan you’ve got if you want to tether it to another device, usually providing a special application that enables the functionality. Of course this has spurred people to develop applications that circumvent these restrictions on all the major smart phone platforms (iOS users will have to jailbreak unfortunately) and the carriers aren’t able to tell the difference. But that hasn’t stopped them from taking action against those who would thwart their juicy revenue streams.

Most recently it seems that the carriers have been putting pressure on Google to remove tethering applications from the Android app store:

It seems a few American carriers have started working with Google to disable access to tethering apps in the Android Market in recent weeks, ostensibly because they make it easier for users to circumvent the official tethering capabilities offered on many recent smartphones — capabilities that carry a plan surcharge. Sure, it’s a shame that they’re doing it, but from Verizon’s perspective, it’s all about protecting revenue — business as usual. It’s Google’s role in this soap opera that’s a cause for greater concern.

Whilst this is another unfortunate sign that no matter how hard Google tries to be “open” it will still be at the mercy of the carriers their banning of tethering apps sets a worrying precedent for carriers looking to control the Android platform. Sure they already had a pretty good level of control over it since they all release their own custom versions of Android for handsets on their network but now they’re also exerting pressure over the one part that was ostensibly never meant to be influenced by them. I can understand that they’re just trying to protect their bottom line but the question has to be asked: is tethering really that much of a big deal for them?

It could be that my view is skewed by the Australian way of doing things, where data caps are the norm and the term “unlimited” is either a scam or at dial-up level speeds. Still from what I’ve seen of the USA market many wireless data plans come with caps anyway so the bandwidth argument is out the window. Tethering to a device requires no intervention from the carrier and there are free applications available on nearly every platform that provide the required functionality. In essence the carriers are charging you for a feature that should be free and are now strong-arming Google into protecting their bottom lines.

I’m thankful that this isn’t the norm here in Australia yet but we have an unhealthy habit of imitating our friends in the USA so you can see why this kind of behavior concerns me. Since I’m also a firm believer in the idea that once I’ve bought the hardware its mine to do with as I please and tethering falls under that realm. Tethering is one of those things that really shouldn’t be an issue and Google capitulating to the carriers just shows how difficult it is to operate in the mobile space, especially if you’re striving to make it as open as you possibly can.

Focused Simplicity.

It’s really easy to fall into the trap of trying to build something you think is simple that ends up being a complicated mess. Us engineers are amongst the most common offenders in this regard, often taking a simple idea and letting the feature creep run out of hand until the original idea is coated in 10 layers of additional functionality. I’d say that this is partly due to our training as modular design and implementation was one of the core engineering principles that was drill into me from day 1 although to be fair they also taught us how quickly the modular idea fell apart if you took it too far. There’s also the innate desire to cram as much functionality as you can into your product or service as that would make it appear more appealing to the end user, however that’s not always the case.

When Geon was starting out I had a rough idea of what I wanted to do: see what was going on in a certain location. That in itself is a pretty simple idea and the first revisions reflected that, although that was probably due to my lack of coding experience more than anything else. As time went on I got distracted by other things that forced me away from my pet project and upon return I had one of those brainwaves for improving Geon in ways I had not yet considered. This lead to the first version that actually had a login and a whole host of other features, something I was quite proud of. However it lacked focus, was confusing to use and ultimately whilst it satisfied some of the core vision it wasn’t anything more than a few RSS feeds tied together in a silverlight front end with a badly coded login and messaging framework hidden under the deluge of other features.

Something needed to change and thus Lobaco was born.

Increasingly I’m seeing that simplicity is the key to creating an application that users will want to use. On a recent trip to Adelaide my group of friends decided to use Beluga to co-ordinate various aspects of the trip. Beluga really only does one thing, group messaging, but it does it so well and in such a simple way that we constantly found ourselves coming back to it. Sure many of the functions are already covered off by say SMS or an online forum but having a consistent view for all group members that just plain worked made organizing our band of bros that much easier. It’s this kind of simplicity that keeps me coming back to Instagr.am as well, even though there’s similar levels of functionality included in the Twitter client (apart from the filters).

Keeping an idea simple all sounds like it would be easy enough but the fact that so many fail to do so show how hard it is to refine a project down to its fundamental base in order to develop a minimum viable product. Indeed this is why I find time away from developing my projects to be nearly as valuable as the time I spend with them as often it will get me out of the problem space I’ve been operating in and allow me to refine the core idea. I’ve also found myself wanting simple products in lieu of those that do much more just because the simple ones tend to do it better. This has started to lead me down the interesting path of finding things I think I can do better by removing the cruft from a competing product and I have one to test out once I get the first iteration of the Lobaco client out of the way.

I guess that will be the true test to see if simplicity and focus are things customers desire, and not just geeks like me.