Build there, check status everywhere

I've been using the iPhone SDK since its original release way back in March. Many frustrating moment in the beginning but the recent beta 7 and beta 8 release proved to be ready for prime time. Apple has added many helper classes or helper methods to classes to make it far easier to work with the UI components, which is by far the most frustrating things I encountered. I am still having problem wrapping my head around the idea of Interface Builder but since the apps that I am building do not involve very complex UI, I just hand coded all the UI instead.

To illustrate, the original iPhone app idea I had that I started developing using the original SDK is a mobile application for Mingle. The application would consist of a series of table views showing projects, cards, and card details, along with some network code to talk to the Mingle server through REST API. At that time, progress was slow because of many factors. First, learning Cocoa/Cocoa Touch API and Xcode at the same time was tough. Second, the Cocoa Touch API was a bit 'primitive' in the beginning. What I mean is that while the API provides all the necessary hooks for developers to create an iPhone app it does not provide many pre-build components, making it difficult and required lots more work from developers to re-create the look and feel of the built-in iPhone apps.

I was so put off by the initial experience that I skipped beta 4-6 and did not open up Xcode until last weekend. And what a refreshing change with beta 7! Now it is straightforward to make an app that looks and feels just like an Apple's one. I was so fired up that last Sunday evening I decided that I would try to create an app for an idea that one of my fellow ThoughtWorker suggested to me. Instead of days of tearing my hair out and got no where, I was able to create a almost features completed app within hours, using beta 8.
So what is this app? It checks the build status on the CruiseControl server. Just like CCTray (Windows) or CCMenu (OS X), it allows users to monitor their software build status. Following the convention, I am calling it CCPhone. The app isn't more complex than the Mingle app but the fact that I was able to almost match the productivity I normally get on my Windows development environment means that I was excited about working on the app rather than dreading it.
Now here are couple of screen shots:
ProjectProjectDetails

To-do:
  • Fix the build time being 1 hours off (probably day time saving bug)
  • Better status icons
  • Create application icon (currently it uses icon from CCMenu)
  • Finish coding the 'Force Build' functionality
  • Add startup screen bitmap (so it won't be just a black screen)
  • Add auto detect of CruiseControl server (Java, .Net, or Ruby)

Read and post comments |
Send to a friend

Advertisements

Mingle Proj-o-mati

Read and post comments |
Send to a friend

Come mingle with me

It has been a long time since I've worked on the ecto/Windows code in any serious manner. Sure, I've fixed a few bugs here and there as well as updating various libraries that ecto uses, but the last time a major feature was added to the code was at least 6 months ago, if not longer. That doesn't mean I have not given any thoughts to the development of ecto during that time. I had many ideas on and off on either new features or how I would code it now if I were to start from scratch.

Well, last week I officially started jolting down some of these ideas and tasks. I've tried recording my ideas down 'properly' and used it as project planning before but had never found a tool that worked well. I've tried the basic (text files) to complicate (bug tracking application like Mantis). This time I thought I would try Mingle, an Agile project planning tool developed by (yes, my employer) ThoughtWorks. *

So far, my experience is pretty positive. I've recorded my ideas on new features, improvements, and tasks down in Mingle. Each of these is stored as a 'story card' and Mingle allows me to tag it, set properties (which I can define my own), and add description. It is the description part that proves to be powerful to me. Mingle allows a kind of wiki style markup in the description so I can add URLs, format the text, or even link to another story card inside the description. This means I can record links that are relevant to the story (e.g. product page for new feature, API documentation for references, etc.) right there so I don't have to look for them in my bookmarks or google it every time I need them.

I can also record bugs or issues in Mingle and reference them back to ecto's support forum so I won't lose track of the bug as it gets push down the message board. It is not a full blown bug tracking application such as Trac or Bugzilla but I don't need those features anyway as I am working on my own.

The iteration planning aspect of Mingle is of less relevance to me since I won't be forcing myself into a strict weekly or bi-weekly schedule, likewise with the very nice and powerful graphing and reporting features of Mingle.

We'll see how well Mingle will hold up as a repository of ideas and knowledge when I slowly move into the actual coding phase.

* I've started using Mingle during their beta testing phase before I joined ThoughtWorks. But having the inside track on what's coming in the next few versions certainly helps me decide on trying it out!

Read and post comments

|

Send to a friend

Refreshing

It's been a week and a half since I've joined a ThoughtWorks project in London. It's been such a refreshing change. The whole team lives and breathes Agile. The code base is not the cleanest I've worked on but actually easier to work with because the team made sensible compromises and did not being stubborn about ideas or patterns. (Actually we still have some way to go on the Mingle front, but that's another story.) We are doing TDD, continuous integration, pair programming with regular rotation, 9-5:30 hours, everyone are treated as equal, basically the whole nine yards! I can foresee the next three months will just disappear quickly. You know what they say, time flies by when you are having fun…

As for London itself, I was pleasantly surprised by all the good/new stuff they have. But at the same time, the Tube still pisses me off, with the never ending tunnels and the asinine system of having to swipe your ticket/card on exit. At least the travel cost is paid for by my company!

I'm going up to Shropshire this weekend to visit my parents. Instead of taking a 2+ hours train ride, I'll be driving a rental car up. I know, it's not environmentally friendly but consider the total amount of driving I haven't done in the last 7 years, I think I can take this carbon emission hit.

Read and post comments

|

Send to a friend