Commitment: “This may sound too simple…”

Filed in 360iDev, Miscellaneous, iDevBlogADay, iPhone Development | Comments (1) |

One of my favorite quotes1 is from a book by Scottish mountain climber, W.H. Murray:2

‘But when I said that nothing had been done I erred in one important matter. We had definitely committed ourselves and were halfway out of our ruts. We had put down our passage money–booked a sailing to Bombay. This may sound too simple, but is great in consequence. Until one is committed, there is hesitancy, the chance to draw back, always ineffectiveness.3 Concerning all acts of initiative (and creation), there is one elementary truth the ignorance of which kills countless ideas and splendid plans: that the moment one definitely commits oneself, the providence moves too. A whole stream of events issues from the decision, raising in one’s favor all manner of unforeseen incidents, meetings and material assistance, which no man could have dreamt would have come his way. I learned a deep respect for one of Goethe’s couplets:

Whatever you can do or dream you can, begin it.
Boldness has genius, power and magic in it!’

Commitment is making a decision, then making choices that support that decision.

A personal example:

I made a commitment to my wife to have a healthy marriage for the rest of our lives. That means I will choose to do some things because they bring us together, and that I will forgo some things that I might want but are likely to push us apart. That also means I am very careful to reserve physical and emotional intimacy for her alone.

A professional example:

I made a commitment to make iOS development a major component of my work. That means even though I have many interests, I choose to spend much of my creative time growing as an iOS developer, keeping up with topics that advance that goal, and avoiding too much dabbling with cool things that do not.

Make a commitment you can keep

I believe there is a purpose to my life, and I have life goals built on that purpose. By having some fairly clear life goals, I can make better decisions about which commitments to make. If you don’t have any idea what you want from life, even short-term, then you will be hard pressed to make commitments that you can keep.

When you make a new commitment, it must compete with your existing commitments for time or money. If there is not enough to do it all, you will have to decide between them. The harder you work to convince yourself that you *can* do it all, the more likely that you are only deceiving yourself. Worthwhile endeavors should stretch you, but sometimes that means making the hard decision to drop something else.

Sometimes the conflict is more basic and a new commitment is at cross purposes to your other goals. If you try to do it anyway, you will pile up stress along an underground fault in your psyche. Eventually, something will trigger a quake, and your goals or your commitment will break, leaving you disheartened.

The answer to all of these conflicts is straightforward:

You need to choose–it is that simple.

But “simple” does not imply “easy”. If you are having difficulty choosing, enlist the help of those with experience and wisdom who know you well and care about you.

Once you make a commitment that is consistent with your other goals, you must weave it into the fabric of your life.

  • You will need to be deliberate about creating new habits that reinforce that commitment and breaking habits that deter from it.
  • If you are doing this alone, find others who will hold you accountable or check on your progress fairly regularly (I use Twitter for this).
  • Devote some of your most productive and clear-thinking time towards thinking, designing, and developing your project.
  • Be willing to sacrifice short-term comfort to achieve something that will last.
  • Take concrete steps to renew your vision when your passion wanes.
  • If constant comfort or instant gratification is your life goal, then almost any commitment you might want to make will be in conflict with it.

One last piece of advice. Do not become so focused on your project that you let your personal relationships break down, for people are far more important than things.


As an Indie, one of the best things you can do to find like-minded developers that will provide encouragement and motivation while pursuing a commitment. A great collection of indie iOS developers have helped me stay on track, most of them are either developers associated with iDevBlogADay, or those I have met through the 360iDev conferences. If you can make it to Austin in November, I highly recommend it for it’s content, the friendships you’ll develop, and the passion it will bring to your iOS development.

Also, here is a little more information about me, Doug Sjoquist, and how I came to my current place in life. You should follow me on twitter and subscribe to my blog. Have a great day!


1. Over the years, this quote has incorrectly been attributed to Goethe.
2. When you consider Murray’s life and the circumstances under which he wrote his book, this passage reveals much about the man’s character.
3. Emphasis mine.

My iOS development logjam is breaking up!

Filed in iPhone Development | Comments (2) |

Success!

I made excellent progress last week in breaking my iOS development block. I started with nothing but a simple game mechanic to explore, and turned it into a very simple, semi-playable game that I think has great potential. Most days with my client were very full, but it was productive and low-stress work, so fortunately I still had some energy left to get some iOS work done.

My Week

After checking into my hotel early Sunday afternoon, I was able to spend several hours setting up an empty game template project by starting with Ray Wenderlich’s Cocos2D example game, Tom the Turret and stripping out everything but the overall structure. I ended the evening with a bare-bones loading screen, start menu, and game scene to build on the rest of the week. Once I had the mostly empty game “running”, I setup a local git repository to protect me from myself.

I had a couple of hours available Monday evening, and did some more code cleanup and made some simple additions, but I had nothing that resembled gameplay. Tuesday through Thursday were very full days, but I did manage to add some basic game actors and the beginning of some gameplay those evenings.

Trips to this client normally end by noon on Friday so I can manage to get home by late that night. Often, the week has been long and exhausting and the only I thing I have energy for is a nap. But, since I had made it my goal to have something playable by the time I returned home, I was motivated to open my laptop on the first flight and implement some cleaner game play. During my two hour layover in Minneapolis, I made very visible progress and “almost” had a simple game working before boarding my second flight. But, it was getting pretty late, and the plane was really too small for my 17″ MBP, so I called it a night.

Saturday and a self-granted extension

I had not reached my goal of having a playable by the time I returned home, but I was motivated enough to spend Saturday afternoon and evening to get it to the point where I could show it to my family to get their opinions. I spent a few of those hours trying different combinations of game parameters and made notes about what to explore next.

Overall, I am very satisfied with what I accomplished last week. I believe I finally have a game idea that I can get polished enough soon enough in my current time constraints. I still think several other of my ideas have great potential, but they seem to be involved enough that progress stalls before I reach critical mass.

Underlying causes for my “success”

The fundamental reason I feel successful was because of my limited scope. I managed to beat back the scope creep each time I sat down and stuck with my original thought.

Also, these factors were great multipliers:

  • Cocos2D and it’s various example projects
  • I had dedicated time to jump start the project
  • I have had enough experience with tools and frameworks to make steady progress
  • I have played with enough game mechanics, ideas, and examples that I have some good code samples to pull from

What’s next

I have enough work commitments and family time scheduled the next two weeks that I do not anticipate any real progress–but I’m far enough along that I do not think I will be hit with iOS development block anytime soon. Once my kids head back to college in two weeks, I will be highly motivated to dive back in.

Watch for progress reports here!

Breaking my iOS development logjam

Filed in iPhone Development | Comments (0) |

Like most iOS developers that have client work or a job that is not primarily iOS related, my iOS development goes in spurts. I finished a iOS project for a client in June, since then it has come to a standstill because of family time and work commitments. But, this week I am working on-site at a client, so while I am away from home I plan to use my evenings to break my logjam. Shortly after returning home, all my kids will be back off to college, and I will have more time available to spend on iOS work, so hopefully I will be able to keep some momentum.

My first task was to pick something from my list of game ideas that has a small enough scope that I can have a playable game by the time I return home Friday.

I believe my best chance of getting something playable that is reasonably fun is to use a game mechanic I tried during the last 360iDev GameJam, but chose not to follow up. I have some working code to use as an example, and with some modifications I think there is potential for it to be fun. The graphics and sound will initially be very simple since they can chew up a lot of my time and leave me with yet another unfinished idea.

Since I had to take a morning flight, I still have several hours of design and development time available today, and I hope to have a few hours available most evenings this week without shortchanging my client work.

Off to XCode!

360iDev San Jose wrap up

Filed in 360iDev, iPhone Development | Comments (1) |

Last fall, I was invigorated and enthused by 360iDev in Denver, so I was excited to register for 360iDev in San Jose.

The short version is that I had high expectations, and they were exceeded.

I learned so much and met so many helpful and smart developers in those four days. By the time it was over on Wednesday, my mind was so full of ideas and enthusiasm that I had to spend several hours on Thursday and Friday just capturing my thoughts for future apps! My only regret is that I can’t dive into several of those ideas all at once.

I split my session time between sessions that helped improve my understanding and skills and some sessions that stretched me beyond what I was currently doing. 360iDev has an excellent balance between user experience, design and development discussions. It also covered a great mix of technical and business issues. There were so many times where I was able to just sit back and soak in knowledge, but also plenty of times for me to participate in discussions, both planned and informal.

I look forward to the videos of sessions that I missed — there were several times where it was very difficult to choose between two sessions. In almost every time slot, there was at least one session that interested me deeply.

The GameJam was great fun again, but also a great motivator for me. One skill I need to develop better is timeboxing a particular effort — constraints really help me focus, and the GameJam did that for me. My goal was to use Cocos2D, Box2D, and GameKit to build a game using an iPhone and an iPad where the game play was asymmetrical — I came close, but once again was trying too many new things (Box2D and GameKit) during the short (10 hour) time span. I was able to use what I had learned that night in my iPadDevCamp app, and now I have several variations of the basic gameplay to experiment with.

One of my personal goals was to completely set aside my client work at home, both physically and mentally, and immerse myself in new ideas and learning. So, I decided to also hang around San Jose for the iPadDevCamp held the following weekend. I was able to spend 8 days in a row without interruption really growing as an iPhone designer and developer. iPadDevCamp has a different style than 360iDev, it reminded me very much of a weekend long version of the 360iDev GameJam. iPadDevCamp was good and I had more stimulating discussions with more great designers and developers. But, I think without the earlier focused, intense time at 360iDev, I would not have benefitted nearly as much.

I would love to do a 360iDev and a DevCamp together again in the future, but if I had to choose only one event to attend, it would be 360iDev. I look forward to the next one!

Cocos2D version of Owen Goss’s BaconFarmer prototype session

Filed in 360iDev, iPhone Development | Comments (0) |

On Monday afternoon at 360iDev I sat in on Rod Strougo’s Cocos2D session, and then watched the prototype master Owen Goss develop a game prototype with input from the crowd live in roughly 60 minutes (very brave, very cool, very fast).

Since I wanted to spend some time getting comfortable with Cocos2D before the 360iDev Game Jam Tuesday night, I decided to see how quickly I could reproduce Owen’s end result, “BaconFarmer”, using Cocos2D.

I finished the first (and probably *only*) version this morning, and you can now download a zip file with the full Xcode project.

I didn’t finish in 60 minutes, nor was my accomplishment anything like Owen’s, but it was fun.

I took about 4 hours, roughly broken down like this:

  • Graphics — 15 minutes
  • Setting up and acquainting myself with Cocos2D project — 30 minutes
  • Getting bacon to show up on screen (Cocos2D sprites) — 60 minutes
  • Added game play, changing state, touches, etc. — 60 minutes
  • Add scoring — 30 minutes

I borrowed a couple of files from Rod’s sample project for background and scoring (Thanks Rod).

Overall, Cocos2D was very easy to get started with — I don’t know it’s long term potential, both Rod and Owen spoke highly of it, so I will probably be using it in the Game Jam tonight.

Many

T-0 360iDev gets off to a great start

Filed in 360iDev, 90days, iPhone Development | Comments (1) |

The official conference sessions have not yet begun, but I am already invigorated by 360iDev in San Jose. It is good to see friends and acquaintances I met in Denver last fall, and to meet new developers as well. I spent the morning in Kendall Gelner’s Advanced Debugging session and gained some useful new tools for app development. I split the rest of the day between the beginning stages working through some iPad app ideas and getting to know other developers a little better.

The energy level certainly picked up at the welcome reception this evening, and will probably continue long into the night without me. I’m lousy at Rock Band, but had a good time trying anyway, and it was fun watching other groups pretending to be musicians tonight!

I am looking forward to a very full three days of learning cool new stuff, meeting great people, and building on relationships already begun.

Doug’s iPad mini-review

Filed in Reviews, iPad | Comments (0) |

I can’t type on it very well, but…

  • I’m a touch typist, and nothing short of physical edges and full size keys will satisfy me enough to use anything for lots of typing
  • I think I will end up being as proficient on it’s keyboard as on the iPhone using the two index finger method
  • I bought a bluetooth keyboard that works well, so I’m satisfied

Typing conclusion: I’d rather have the full touch surface like it is, than squeeze in some dinky physical keyboard.

I don’t know if it’s a game-changer, but…

  • I can’t set it down without someone else in the house snarfing it up thus requiring me to pry it out of their hands when I need it
  • It won’t replace my MacBook Pro or my iPhone, but after only a few days, I think it’s a keeper
  • It is highly likely that I will be purchasing a second unit for *my* exclusive use in app development plans

Game changer conclusion: No one really knows, but I think it might be.

I have never owned a Kindle, but…

  • I copied over all my PragProd ebooks, and I think I like it better than the paper version here at my desk
  • If I’m on the beach reading a book, I’m pretty sure I want a throwaway paperback book anyway…too much sand and salt
  • I think it will work on my hammock :-)

Reading conclusion: It’s a winner for me.

I’m not a hard core gamer, nor a consistent casual gamer, but…

  • Games on the iPad seem more fun for me, perhaps it’s just the newness
  • Interacting directly with the game on a reasonable size screen really draws me in (fat fingers and bad eyes here :-) )

Gaming: I might end up playing more games on the iPad than I ever did on my pc, mac, iPhone, XBox360, or Wii.

T-10 Getting fired up for 360iDev in San Jose!

Filed in 90days, iPhone Development | Comments (0) |

My original 90 day project plan has faded without completely failing or succeeding. I don’t know if I will do any more 90days posts before 360iDev or not, but I know I will be able to spend more time each day between now and the conference focusing on iPhone development.

Since I set my own goals, I get to define success — so I’m declaring success for my 90 day project, regardless of the details. :)

My general goal was to spend steady and regular time working on my skill set, knowledge, and comfort level with the tools.

  • I am very comfortable with the tool set, and most sessions I get into the “flow” fairly quickly.
  • I am pleased with my knowledge and understanding of key APIs, and look forward to expanding that over the coming weeks.
  • I wish I could have spent more time on app development, but I am reasonably happy with what I was able to do.
  • I am definitely learning what it takes to carve out time regardless of other projects.

I am disappointed that I do not have an app ready for the app store. A combination of things kept me from getting close on my initial idea, and the app I am pursuing now languished for almost two weeks with no activity. I have been working to get ahead of the game on other commitments so I could focus more time on iPhone work in general and my app in particular.

I am very pleased that I lined up some contract work for iPhone development this past week. Some of my non-iPhone work commitments are coming to a close, so I can be more aggressive in pursing iPhone contract work in the coming weeks.

I am really getting fired up about the 360iDev conference, only 10 days away!

  • I don’t know how well I will “perform” at this year’s GameJam, but I have high hopes.
  • I am completely immersing myself in iPhone/iPad development by spending the following weekend at iPadDevCamp, I hope to be able to pass some new threshold of comfort and flow with the tools and APIs before it’s over.
  • My lofty goal is to have the solid core of an app working after the 9 day trip.

I do know I will be renewing old friendships, making new ones, and exploring new opportunities while in San Jose.

T-10!

T-32 to T-28 Time to pivot

Filed in 90days, iPhone Development | Comments (0) |

Over the last several days while visiting my daughter and son-in-law, I have done some reading and playing with alternative ideas and decided to put my game idea on hold for the time being. Even though I won’t be using OpenGL or very much of the code I’ve developed recently, I know I am more proficient in Xcode, GHUnit, and other frameworks and tools because of the time I’ve spent on my game — so I view it as time well spent.

I am pursuing an idea from a friend, and I will be working with him to develop the idea and app further. It is an entertainment/information app, and uses frameworks and patterns that I am much more comfortable with. I know I can execute better and faster on this idea than my game idea and I believe I will be able have an app ready much sooner.

Also, like most every iPhone or mac developer I follow on twitter or whose blogs I read, I too pre-ordered my 64GB (no 3g) iPad Friday morning, along with a wireless keyboard, docking station, and holder. When I’m not using it for development, my wife will be trying it out as a replacement computer. If she takes to it, I will probably be ordering a second one for myself.

Day T-32 to T-28 Accomplishments (Wednesday-Sunday, March 10-14, 2010)

  • Evaluating my current level in various iPhone related frameworks and skills
  • Brainstorming and sketching ideas and UI elements for app
  • Pre-ordered an iPad!

T-33 Thinking about putting game idea on back burner to work on idea with a colleague

Filed in 90days, iPhone Development | Comments (0) |

I had a conversation today with a friend that I work with regularly in my day job. We had talked a couple of months ago about an iPhone app idea that we both believed had merit. After our conversation today, I am beginning to think it is the right time to at least build a prototype.

My thought process has been something like this:

  • By continuing with my idea, I will keep my focus and steady progress will eventually produce a product I am pleased with. But even with overly optimistic estimates of available time, I will not have something ready for the app store in the next month
  • Some of my game ideas could benefit from a few weeks of gestation
  • I still have much to learn about OpenGL game development, and what I learn at 360iDev in San Jose will be good leverage in further development
  • I am much more comfortable with UIKit development (non-OpenGL), and could produce a workable prototype for the joint idea much more quickly
  • My game (so far) is a solo endeavor, the other app would be a joint effort which should help keep me on track
  • The scope of the joint idea is narrow enough that we can have something in the app store much sooner than I could on my own

I haven’t lost interest or hope in my game idea, but tonight I will spend my development time playing around with the other idea.

Day T-33 Accomplishments (Tuesday, March 9, 2010)

  • Consider options for how to spend my limited iPhone development time