Wednesday, March 25, 2009

Planning an iPhone Application

My first few attempts at iPhone apps kind of went like this:
  • Had great (to me at least) idea.
  • Fleshed out maybe a page worth of notes on it.
  • Started coding so I could learn Cocoa Touch, Objective-C and XCode.
  • Got some stuff working well, some stuff not working so well, and some stuff just plan not working.
  • Got to a point where I needed to drop in a lot of artwork and then the project stalled.
So, I still have those projects ready for another day when I sit down to plan them out a little more. With new ideas I am starting to put more thought (there's a novel idea) into the design of the application before I write any code. This time I have pages and pages of notes for the ideas including:
  • What purpose does it solve for the user?
  • For games, how do I build a sense of community around the game?
  • Rough sketches of the screen layout (this has helped me realize some of the layout ideas are bad and hence I am working that out on paper first instead of coding stuff that I then go and say, man that sucks, end up depressed at the lack of progress, and then the project stalls).
  • How would I test this? How can I break this into manageable chunks that allow me to a) learn the APIs, b) unit test the code?
  • Writing down features including a Narrative or Use Case for that feature. This has helped a ton to point out ideas that might need more thinking or maybe should just be dropped.
  • Figuring out feature sets for releases. Once I have Narratives for a feature this helps me see which Narratives group together into a useful set of features for a release. Some of the features, though sounding cool, are also more difficult to develop and test, so I want to group those into future releases which I would implement if the initial application does well. No sense in trying to build a city if all people wanted was a rest-stop on the side of the highway.
  • Allows me to keep track of ideas that might need more work but at least it is on paper so I can go back later and resurrect the idea if it has merit.
So, the work continues. What am I working on now? Like everyone and their dog, I have some game ideas. One of those I am actively working on (pen and papering it to work out the design) and it was something that would not have been possible (ok not easy) before the iPhone OS 3.0 release. Hence, with the release of the new OS in mid-summer and this idea having floated around for a while I am actively working on it so that I might be able to get something working for shortly after the 3.0 release.

The work continues...the learning continues...the journey continues.

Monday, March 23, 2009

Running With Jogging Stroller

My wife is out of town helping out her Brother and our Sister-in-law with their first baby. Baby ETA is tonight or tomorrow. Exciting stuff to have another baby in the family.

So I am on drop-off and pick-up duty this week with our 3 year old (our 8 month is with Mom). Since I missed my long run yesterday I was determined to get it in today. I had hoped to do it in the morning by running my son to Pre-School in the Jogging Stroller (a Chariot) and then continuing to get my total run in of 21.1 km (just a Half Marathon long run this week). The morning got away from me though and that was not going to work.

Not swayed by that I left work early, got home, changed, setup the Chariot and started the first part of the run without my son. I picked him up at the 14 km mark and he joined me for the last 7.1 km.

I am used to only taking one of the boys in the Chariot for a total run and I find that this is ok, though hard on the long runs of 20+ km. Pushing the stroller also makes the shorter, but faster pace runs, a much harder workout. Today's combination of 14 km without any child in the jogging stroller and then 7.1 km with a fully loaded 3 year old really drove home the point that "Man, it is a lot of work pushing the kids."

I never realized how difficult it was until today but needless to say, it was a hard 7.1k. I can only think it must me good for me since it is like an endurance strength work-out. It is a good upper body workout as well as you tip/lift the stroller over crubs/dumps and maneuver around obstacles so I tend to be a little sore/stiff in the arms/upper back the next day (especially after pushing my 3 year old).

I let my 3 year old know today that I appreciate him coming on my runs because he keeps me company, helps me work harder during my workout meaning Daddy gets stronger, and who would not love a companion that sings/tells me stories. Today's story was The Three Little Pigs; of which he would was the wolf and I played the pigs. We were going back and forth telling the story (mostly "let me come in," "not by the hair on my chinny chin chin," "I blew your house down Daddy," and repeat). You might be able to guess that my part was done a little out of breath. He enjoyed it though and it made the last 2 km fly by.

Friday, March 20, 2009

Nike iPod+ Application Locked Up

My last long run on Sunday was my longest run so far this season at 32 km. As those that read this often probably know, I use the Nike + iPod system to track my mileage and to help with training. I also use the results which are uploaded to the Nike+ site to track my progress and create neat graphs of my distance completed. I find that this tool is a great motivator, which we all need sometimes.

Well, I was pretty disappointed last Sunday when the Nike+ software locked up when I hit the End Workout button. I waited and it did not respond, it just sat there. Now, to complete the workout and have it save to the Touch's memory you have to hit a Done button after you review the workout. I never got a chance to hit the Done button. The Touch just froze.

I gave it 20 mins while I changed and drove to meet my running partner for a post run meal. But nothing, it was just hung there doing nothing. So a hard reset later and my workout data was lost. Bummer, since that workout is now lost and means my totals for March are impressive but not as a impressive with the missing 32 km.

This is the first time this has happened to me after a run such that I lost my workout. I have seen the app lock up before but not during a run. Applications locking up seem to be a problem occasionally on the iPhone/Touch (I have a Touch) due to memory leaks I am assuming. I have heard some antidocial reports to reboot your device every couple days or after a download of a large app. Some games (apps) use so much memory that it is suggested you reboot before playing them to make sure all resources are cleaned up.

Funny, how even the most user friendly devices still require a fair bit of know-how of what is going on inside the device to get the best user experience from it. I get this being a developer myself and into gadgets but I wonder how many people out there just find their gadgets an annoyance?

What ticks you off about technology?

Sunday, March 15, 2009

Longest Run This Year

I had my longest training run of the year today, 32 km, and it went well.  Just 1 second off my goal pace so that was pretty good.

Joining me for 1/3 of the run was Hiking Man which made that hour fly by.  We talked about upcoming races and unless something intercedes we will be running the two 5 Peaks Trail races coming up in September and October.  There are 5 races over the summer/fall in our region but only one is in the spring, the rest are late August, September and October.  The two races we will do are near by (45 min drive at most), while the other 3 are 2-3 hours away which is more than I can work into a busy family schedule.

Today's run went well, but I did develop a pretty big blister (larger than a toonie) on my right foot behind the big toe.  This was disappointing since it slowed down my last about 5 km.  My big hope right now is that this blister will toughen up that section of my foot and be ready for the extra 10.2 km that race day will bring.

3 weeks to race day and I am getting excited.

I've probably said it here before but a Marathon has 2 halves, the first 32 km and the last 10.2 km.  The first half (32 km) is really about training, your training gets you here and you know you can do it.  The last half (10.2 km) is about the mental game, especially if you develop something like a blister on the first half.

So, with 3 weeks to go, I am now into taper mode.  Which means lower distance running but with higher speed to simulate race day.  Looking at the next 3 weeks I have a 13km, 8km, 21.1km, 13km, 10km, 16km, 10km, 5km, and Race Day (42.195 km).  So another 96.2 km until race day with 390 completed so far this year.

Sunday, March 8, 2009

A Running Partner Helps A Long Run Fly By

I had great luck today, I had 2 running partners. First, my 3 year old asked to come on my run and since I was only running 24 km I said ok. (Next week I will have to pass since I have a 32 km run coming up.) So, we went to his swimming lesson, arrived home at noon, had a bit to eat and then packed the car with our gear (running gear, water, toys, food for both of us, and the chariot).

Since I was taking my son in the running stroller I figured the best route for least water, bumps, and maximum side walk space would be along the canal. So we headed down to Dow's Lake and parked. We began the run, my son quickly breaking out his food supplies since he mostly skipped lunch, and started from Dow's Lake towards Laurier.

At about the 4 km mark, I ran into Steve Mahood who ran on the 2007 CBC Ottawa Gotta Run team with me. He had about 16 km to go and was running near my pace so we joined up for our run. My son had passed out at about the 2 km mark and stayed sleeping until about kilometre 16.

Steve and I caught up, ran a little too fast, slowed down often to keep from blowing out but kept up a steady chat for most of the run. Things got a little quiet around the 18 km mark when we were both pushing it. It was good to catch up with an past running friend and it made the kilometres just slip by.

Makes me think I should run with someone more often, it was a good time and I still achieved my goal (while pushing the running stroller no less).