Withings Scale Gateway for Status Board

May 8th, 2013

My son is a Status Board fan.  I'm not sure why; he just loves adding and arranging panels.  

I recently picked up a Withings WS-50 scale, which has an API that you can use to query weight and other data from the scale.  Data from the scale and a status board to display it on. Seems like the perfect match.

I hacked together a simple gateway that will perform the OAuth authentication and provide a URL that you can use with Status Board to proxy the data from the Withings API to a format that Status Board can display in a simple graph table.  It's very limited - it just shows you the last 10 readings in a simple line graph - but still pretty cool.  You step on the scale, and the updated data shows up on your status board.

If you have Status Board, and a Withings account, then visit this page on your iPad to set it up.

 

BeeTrainer

May 3rd, 2013

I'm definitely a "scratch your own itch" kind of developer.  I like building apps that I plan to use myself - it's very rewarding to be using my own apps.

Earlier this year, my son was in a spelling bee, his first.  It was a fun experience.  And of course, after we signed up, one of the first things I looked for is apps that would help him learn the word list.

When you enter a spelling bee, that's how it works.  You're given a word list to study. For many of the first rounds, all the questions will be words from the word list.  At some point the bee moves to words that aren't on the word list, but nailing the words on the word list is a big part of training.

Icon for web

My son doesn't have a lot of focus.  Giving him a word list and saying "Learn this"?  Not going to happen.  I didn't mind working with him to help him learn the words, but keeping a piece of paper with me to read words from and a pen to mark them down as learned or words to work on wasn't going to fly.  I wanted an app to help with this.

I tried using Numbers; I tried using a simple text editor, but they were just awkward to work with.  What I wanted was something purpose-built I could use when we had a few minutes here and there, to practice a few words. 

I searched the app store and didn't find anything that seemed to fit this bill, so I built an app.  It's called BeeTrainer.

BeeTrainer lets you create one or more word list files.  You can paste in words from the clipboard (so copy them from an email you get with the word list, or from a website, or just type them in).  

Once you've entered the word list, practicing words is just a tap away.  You can go through words in random order, focus on problem words, or work through the list in order.  The app shows the word, can spell it out loud, and has buttons for "Correct" or "Incorrect".  I ask my son to spell the word, he does, and then we either move on to the next word, or we talk about ways he might help remember this word better. 

There are some extra features that I think people will find useful.  The app can generate a PDF version of the word list with boxes next to the words, in case you want to also work from paper.  You can view a pie-chart showing progress through the word list.  The app can spell any word out loud, and can take you to the wiktionary page for the word where you can view the definition and pronunciation guide.

In a nutshell, I think it's a valuable app for anyone with a child who's trying to learn a list of words, be it for school, or for an actual spelling bee.

I'm sure it's a small niche, but I'm glad I've built an app to fill it. 

BeeTrainer is available in the App Store, for $2.99.

 

Finding a Profitable Niche in the App Store

May 1st, 2013

Trevor McKendrick has a post, the first in his ten-part series on his first year in the App Store, on How to Choose a Profitable Niche within the App Store.

This is a great topic.  I submitted a blitz talk proposal for NSNorth this year on the same topic.  Didn't make the cut for NSNorth, but here are my thoughts on the topic.

The low hanging fruit in the app store are where customers aren't being well served by the existing choices.  It's really as simple as that.

I think looking at #25 in sales in a category, as Trevor does, isn't necessarily the best way here. Often what you'll find at #25 is a perfectly good app that's serving its customers well, but for which there isn't necessarily massive demand.  A newly released niche app might well rise to #25 and then sink down into obscurity.  What you need to find are niches where the existing apps are proving demand, but not serving the market well.

For example, right now, there's an app in the Business category - I'm not going to identify the app, since that's not the point here, and I don't want to make anyone feel bad - but this app is near the top of the category.  It has 250 reviews, and the average is 3 stars.  It's been in the App Store for a while.  What does this tell us?

  • People are looking for an app that matches how this one describes itself.
  • People are willing to pay $7.99 to buy an app that does what this one does.
  • People are not happy with this particular one.

Finding a niche is as simple as finding these gaps in satisfaction where users are proving they want an app, and are buying it, but aren't very happy with it.

Your goal is to build a great app to fill this gap.  You need two things:  the ability to build a better app, and the passion to see it through.

Ability means you've got some domain knowledge and the talent to do it better.  It might not be technically hard, but may require a different app design than the apps already in the niche you've found (for example). 

And passion simply means it's an area you're interested in.  If you identify that building fillable PDF forms as a niche that you could fill, ask yourself if you want to spend the next six months of your life dealing with building PDF forms.  If it's not something you can get excited about, move on to the next item on the list. 

My recommended level of market research is, essentially, none.  At least, not until you've thought hard about the problem you're trying to solve and have come up with the best design you can.  Imagine your target user, and why they're looking for an app in the first place.  They've got a problem that they want help with.  Figure out the problem they're trying to solve, and solve the heck out of it.  Once you're convinced that you've got a design that does this, then take a look at the competition.  Look for blind spots in your design or things you may have overlooked.

It's important to remember that the competitor's apps you're looking at aren't great (as indicated by the ratings).  You don't want to copy them.  You want to make something better.

That's it.  Find a niche, pick a target user persona, design and build an app that solves that person's problems better than the competition.  Ship it.

NSNorth Wrapup

April 21st, 2013

I spent the weekend at the new NSNorth conference in Ottawa. This was a small iOS developer conference in the spirit of Cingleton, and NSConference, put on my Dan Byers and Philippe Casgrain. It was a great weekend.

Working from home full-time, especially, in a small town, it was great to get to hang out with some other iOS developers. The talks were inspiring; now my problem is too much inspiration, not enough time.

Here are a few notes on some memorable bits from some of the talks

Guy English did a nice overview of SceneKit, including demos of exactly how much you can get and how much SceneKit gives you with small amounts of code. There are still some questions, I think, about what Apple intends for us to actually do with SceneKit: It seems unsuitable for games, but a bit too low-level for apps. My theory is there's still a framework to come that will bring it all together. I have a small SceneKit project I want to kick off.

Sam Vermette talked about the nuts and bolts of submitting projects to GitHub. Why you'd do it, what to expect in the way of draws on your time doing support and whatnot, but also what you'll get out of it. I have a list of various bits of code I've written for my own projects that I've been meaning to submit; I'm going to try to get that done while I'm inspired to do so.

Luc Vandal told us that if Apple calls, answer the phone. (And more, of course - Luc had a lot of good info on how to get noticed by Apple).

Gus Mueller took us deep into Core Image. Not sure that's going to be immediately useful to me, but I've filed the information away and I'll know when I run into a situation where I have a problem that Core Image can solve.

Jason Brennan talked about CortexKit, a framework he's building to help make software more aware of the context of what the user is doing beyond the scope of just the single application you're working with. Cool stuff; I'm looking forward to getting a drop to play with.

Justin Miller talked about maps on iOS. You can build some really beautiful maps based using the framework Justin works on for MapBox.

Caroline Sauve walked us through the design and development of an iOS adjunct to the Corel Painter app that ultimately wasn't received the way they expected. The lesson here is that you need to validate your product with some actual users as the product is developed, not just at the start and end.

Rick Fillion of Black Pixel talked about working with designers. I think I've always had a pretty good relationship with the designers I've worked with, but Rick's talking about taking it to a whole new level. He requires that the designers he works with drop assets into Xcode and check them into Git themselves. Sounds good, but I think this will take some designer training. He also suggested developers learn to think in HSL instead of RGB, which makes a ton of sense.

And Joe Cieplinski showed his company's teleprompter app running on an iPad in space (cool!) and talked about building a successful brand and reputation for the long term, not just a product for today. Great advice. And, measure success in terms of the number of days you get to not work in a cubicle.

 

Discoverability

April 12th, 2013

One thing I learned from having apps in the store is that users don't always get iOS UI conventions.

Resume Designer has a view that shows you your collection of documents.  Each document has a long-press menu with options like delete and duplicate.  I used to get support emails about once every couple days asking "How do I delete a resume?".  Easy enough to answer, but a pain to have to.  And then a reviewer for a magazine in Australia (who really should have known better) gave the app a review that knocked serious points off for the app not having a duplicate option.  Argh.  So I emailed the reviewer and said "but.. but.. it's right there" and her response was "well I'm a professional reviewer and I didn't find it, so don't expect customers to find it".
 
Sigh.  But she's probably right, as evidenced by the support emails.  So I added a button on the toolbar that does nothing but pop up an alert that says "Hold your finger down on a document for more options." and the emails stopped.  Literally -  nobody has emailed me about this since I made the change, probably close to a year ago.
 
This is an ugly design compromise, but if your app is going to be commonly used by people who are new to iOS, be careful about hiding functionality.  If there's a breadcrumb users can follow, they will find functionality, but if it depends on a long-press or a swipe at the right spot, you'll be dealing with support questions and confused users.
 

Explaining the PC Market Decline

April 11th, 2013

Market watchers and analysts seem baffled by the fact that the PC market is collapsing.  

Sales have dropped, but is that really surprising?  Take a look around your own office.  Does your computer seem too slow to get your job done?  I'll bet it doesn't.

I'm usually on the cutting edge of technology, but in my own life, my main desktop computer is 3 years old (a 2010 Mac Pro), and even if there were a new one released tomorrow, I don't think I'd have a compelling reason to upgrade. 

I'm a software developer, usually an occupation that needs cutting edge "workstation class" hardware.  Back when I worked at Corel, we'd get new PCs every 2 years, and that upgrade would have a significant impact on my productivity.  Build times would drop from 30 minutes to 15 minutes.  

But these days, I can do a clean and rebuild (which I don't do often) in about 15 seconds, and a typical build-and-run cycle takes just a couple of seconds.  This computer is fast enough for now, and for the foreseeable future.  

For me, the "my code's compiling" excuse from this xkcd comic is obsolete.  And I'm a software developer!  Imagine the millions of people who use their computers for things like email, word processing, spreadsheets and presentations.

The main reason people upgrade their computer is because it slowed down.  The slowdown of a typical Windows PC is mostly related to disk latency.  Sit in front of a slow PC and listen to the hard disk - it's seeking like mad, because the files it needs are scattered all over the place.

Bigger disks go a long way towards eliminating that.  Files don't get fragmented when you're working on your few hundred megabytes of documents on a 2 terabyte disk.  And SSDs take latency mostly out of the equation.  

Even my gaming PC from 2 years ago runs Bioshock Infinite at high enough graphics settings that I wouldn't consider spending money to make it better.  

The days of needing a new computer every 2 or 3 years are over, and the PC market had better get used to it.

 

Facebook Home

April 5th, 2013

Facebook Home is a bold move by Facebook to essentially take over the home screen on Android.

This is made possible by the fact that Google gives applications all the access they need to do this.  But how is this going to play out?

Years ago I was a Windows developer, and one of the blogs I used to follow, and continue following to this day, is Raymond Chen's excellent blog, The Old New Thing.  One of the themes that he's posted on over the years is the problem of "What if two programs did this?".  

An example Raymond uses is developers asking the question, how can I make my window topmost so that no other window can obscure it.  It's an interesting question and you can come up with various ways that a window can try to remain on top, but in the end, only one window can really be on top. In some cases it has turned into an arms race.  Whichever program finds the most effective way to do it wins.

So what happens on Android when someone else wants to do what Facebook just did?  What happens when Twitter wants to create a new home screen for Android?  

Facebook has just started an arms race.

The carriers will want to own the home screen, of course.  They always do.  Facebook seems like the kind of company that would give the carriers what they want in exchange for access to the home screen, so I'll bet your Facebook Home will have Rogers or AT&T "stuff" in it as well.  Either that or the carriers are going to be working on their own home screen.

Twitter's not going to be happy about this.  How long before Twitter Home?

And so on.  I'll bet we see a half dozen home screen replacements before the end of the year.

Google, of course, wants to own the home screen as well.  And Google has the power to shut this down, by taking away the access necessary to become the home screen.

It's going to be interesting to see how this plays out.

Kevin Lynch at Apple

March 20th, 2013

Kevin Lynch just left Adobe and joined Apple.

I worked for Adobe for 6 years, from 2006 to 2012, so I was there when Kevin joined through the Macromedia acquisition. I was always very impressed with Kevin; he's a smart guy, and a good speaker.

Unfortunately, Kevin was the public face of Flash for a long time, and now that's coming back to haunt him as he moves to a company that obviously doesn't like Flash.

There are a couple of angles from which one could look at this, and I'm a bit conflicted about whether he will ultimately be a good fit for Apple or not.

The Flash player is a pretty incredible thing. It gets a lot of razzing these days, but there were years where Flash was the only way to do some great things on the web. YouTube wouldn't have existed or grown as quickly as it did without Flash. I think people have forgotten what a mess web video was back in the early 2000s. Flash ran ahead of the browsers and supported things that the browsers didn't, and motivated the browser vendors to come up with standard ways of doing the things that Flash did.

Just after I started with Adobe, I went to the AdobeMAX conference where Adobe first talked about the new AVM2 virtual machine in the Flash player, and about the improvements to ActionScript to make it into a solid language. It was good stuff. For what was ultimately a web media player, it was a very advanced runtime and you could do some amazing things with it.

But it was ultimately a web media player. The problem that Kevin ran into at Adobe, and I don't know how much of this was Kevin's doing or how much was pressure from above, but Adobe tried to push Flash way beyond that. Adobe moved Flash in all kinds of directions that it was never designed to go.

AIR, for example. It was convenient being able to take a Flash game and turn it into a native desktop app or an Android or iOS app, but that's about as far as this should have gone. Flash is inherently a single-threaded runtime that takes a lowest common denominator approach to the platform. It does use threads itself to get work done internally, but it provides no way for a developer to execute their own code on a background thread. (This may be true now, I haven't checked in a couple of years, but it wasn't back when I left Adobe).

Adobe was pushing AIR as a solution for building enterprise applications, and while the Flex language was actually quite nice to work with, the runtime just wasn't up to the task. It was a poor architecture use as the base for a platform that Adobe was trying to build so much of the company's future on.

I don't know how much of this is Kevin's fault, or if he could have stopped it. He was the CTO, so he probably should have.

Sometimes you have to play the cards you're given. Could Flash have evolved into a modern, mature runtime suitable for building general purpose desktop and mobile applications? Probably, with time. It's hard to say.

But, Adobe's also done some great stuff under Kevin's CTO leadership.

Adobe Revel is a photo sharing app that really is great. It scales: You can upload tens of thousands of photos, and then browse them on any device.

When I was at Adobe and working remotely I spent a lot of time using the Adobe Connect conferencing service. It worked so much better than the things I've been using since (Skype and GoToMeeting).

The Creative Cloud subscription, where you're paying $49/month for access to all of Adobe's best applications, streamed to your desktop via an application manager that takes care of downloading and updating them, is a great service that in my experience has worked very well. Creative Cloud's file sharing is basically DropBox. Adobe's cloud offerings, in my opinion, work a lot better than what Apple's been offering.

So, ultimately what do I think of Kevin's move to Apple? I'm cautiously optimistic. Apple's got a very solid foundation everywhere but with iCloud, and that's the area that I think Kevin's shown the most strength with. We'll have to wait and see what role Kevin takes on at Apple.

I do think he's a smart guy, with a real love of technology. I wish him well

Yahoo and Remote Employees

March 7th, 2013

For the last three and a half years I've been working from home, so the news that Yahoo is bringing all remote employees back into their offices is of particular interest and concern to me.

Yahoo has been foundering for years. They seem to have too many employees for what they do, and extended themselves into all kinds of businesses that didn't advance their core business and then just parked them. And I'm not even sure what their core business is anymore. But I believe they still have potential. They know how to scale, know how to run big web properties, and I think with the right direction, could be great again. And I think Marissa Mayer is that great direction. I've been very impressed with everything she's done with Yahoo so far.

There is some value to having employees on a team together in the same building, no doubt. But there is also value to the benefits that having employees working from home bring. Working from home is great for morale, great for work-life balance, and in my case anyway, makes it much easier to get some work done in the evening once the kids are in bed. I don't lose an hour or more a day to a commute, spend less on gas, and just enjoy the flexibility. The end result is I'm a happier and more productive employee.

Business Insider has an article that talks about the reasons behind Yahoo's move. It says many of the remote employees weren't productive and weren't valuable employees - essentially insinuating that the remote employees who quit because of the required move back into the office are folks worth getting rid of.

The people that quit when you make this sort of move are the people who won't have a problem finding a job elsewhere. Those are the people you don't want to quit. You might get some slackers who move back into the office and suddenly become valuable employees, but I bet that's a pretty small minority.

But here's the thing. A remote employee is still an employee, and should be managed and evaluated the same as everyone else. If you have remote employees that are getting away with being unproductive, you have a management problem. Employees in cubicles can be unproductive too, and if your team managers aren't aware of what every employee is doing and how well they're doing at it, then that's your problem. It's not about where they sit.

The argument that face time is important and fosters collaboration is valid, but in a big company, it's quite common for teams to be spread out geographically already, through different campuses. At Adobe, my immediate team members consisted of folks from Ireland, India, San Jose and Ottawa. Unless Mayer is talking about also migrating all the members of a team to the same campus, I think that may be a bit of a red herring.

What concerns me, and what prompted me to write this post, is John Gruber's take on this over at Daring Fireball:

Yahoo needs a kick in the ass. Mayer is not merely trying to keep Yahoo limping along; she’s trying to lead Yahoo to kick some ass. Same old, same old isn’t going to get them there.

You could say this about any change. Making everyone at Yahoo switch to Windows Phone smartphones would be a change too, but IMHO wouldn't be a good one. Problem is, if Mayer does succeed in turning Yahoo around, I'm afraid this move will be regarded as one of the reasons for the success.

This is a tactical move that Mayer believes will help with a corporate culture problem that's specific to Yahoo, but I'm afraid it could turn into a trend.

Update: It looks like Best Buy has used Yahoo's announcement as a cover to make the same announcement themselves. Best Buy is another company that seems to be foundering and may be looking for ways to cut costs, but still, I don't think this will get them the outcome they want.

The Future of Podcasts

February 9th, 2013

There's been some interesting activity around podcasts lately.

Apple has been giving podcasts some added attention. Rather than simply ignoring podcasts, they've moved them out of iTunes and into their own app. The iOS Podcasts app had a rocky start but it's turned into a decent app, and it's got a great radio-dial metaphor for podcast discovery.

The 5by5 network, one of the biggest tech podcast networks, has been going through some changes. I don't know Dan's business model but I do know he's been losing some of his top podcasters. John Gruber left and immediately continued his podcast with a different network, Mule Radio Syndicate, so there was obviously something going on behind the scenes here. And Marco Arment and John Siracusa both ended their regular podcasts recently, but have continued appearing on other shows (both on 5by5 and other networks).

There has been a proliferation of tech podcasts all using the advertising sponsorship model. Core Intuition, Debug, all the Mule Radio shows, 5by5's shows .. When I started listening to 5by5 podcasts, there was one ad per show. Now in some shows there are 3 or 4 ads.

But not everyone wants ads in their podcasts.

Think about the Mac tech community. The people that are producing these podcasts. Do you think they watch ad-supported TV or listen to ad-supported radio? I'll bet they don't.

Radio is ad-supported. People that don't want to listen to ads can subscribe to one of the many ad-free commercial radio services.

The web is mostly ad-supported, but we've been seeing a trend of sites moving behind paywalls.

TV is ad-supported, but there's the option of buying seasons on iTunes.

In almost every way we consume media, there's the ad-supported option, and the for-pay option. But not with audio. We pay for subscriptions to magazines, to newspapers, to TV, to all kinds of things. But there's no periodical audio subscription.

This was initially where I expected iTunes to go with the new Podcasts app. Open up the option to sell podcasts, and let major radio shows like the Howard Stern show sell their content through it.

And Marco Arment has been talking about building a podcast app, and has recently been tweeting about experiment with payment services. He's disrupting the textual periodical model with The Magazine, so it's possible he's going to go the same direction with audio.

I've floated this idea with a few people and the reaction has been universally negative. It seems nobody I've spoken with is willing to pay money to subscribe to podcasts. I don't understand that myself - $0.99/month for 4 hours of entertainment (4 episodes of a weekly podcast) a month seems like a pretty good deal to me, and a podcaster with 20,000 listeners goes from making peanuts off the ads to making some serious money (and the entity running the podcast network does all right as well).

Would you pay a few dollars per month to have high quality ad-free content to listen to on your commute? Is this really an unserved market? I don't know for sure, but I think so. And if it is, who will get there first? Apple? Mule? 5by5? Marco?

I hope it's Apple. As much as I'd like to see Marco succeed with yet another venture, Apple has the pull to bring in the really great content and really take this model mainstream.