Jun 21

I hit a really odd bug last night. I mean, really, really odd. One of those bugs that keeps you up until 4am and you go to bed defeated. I came into the office today and had another engineer sit with me as I went through my code explaining what I was doing hoping that a second set eyes and another brain could bring some clarity.

No luck.

Everything looked good, but this very odd crash was still occurring. We were both scratching our heads. The weird part was that the program ran perfectly on the iPhone and in the simulator, as long as I didn’t have the debugger attached. The other engineer tried the build on his machine and everything worked as it should and he was able to run the Xcode debugger.

I decided to completely remove and reinstall Xcode and the iPhone SDK. Normally, you just drag a Mac application to the Trash Can and you’re good. Xcode is a little different. There’s a ton of different folders, tools, SDKs, simulators, etc scattered around the Hard Drive.

So how do you remove everything?

Fire up Terminal and type:

sudo /Developer/Library/uninstall-devtools -mode=all

Type in your password and go grab a coffee. The Uninstall process takes quite a bit of time as it analyzes every package on your machine. However, it will find and remove all Xcode and iPhone SDK components. I highly recommend you to restart your Mac before re-installing Xcode.

Written by Terry Blanchard \\ tags: , , , ,

Jun 21

WordPress for iPhoneI use WordPress as my blogging platform and I absolutely love it. It’s so well done and makes blogging a joy. I’ve tried other platforms and spent more time fixing it, fretting over why the upgrade brought my site down, traversing database tables, and wishing it would do something that it doesn’t.

As most of you know, I’m also a Mac Boy. Me loves me the Apple products. WordPress has an iPhone application that allows me to write posts, upload photos, edit pages, and manage comments on my blog right from my iPhone. I use it for quick posts or to start a draft post with bullet points of high-level ideas so I can flush it out later. One of the coolest features I expected to use the iPhone application for was comments. What a perfect way to constantly monitor and reply to comments from my phone whenever I get a chance. I download the application and I like it. But it’s missing one major feature. Yup, the one I want the most. Replying to comments! I can delete comments, mark them as spam, but I can’t reply to them. Say, what!

I go to their website to request this feature and notice that this is an Open Source project with links to their development section. I’ve been developing software for close to 25 years and I have never participated in an Open Source project. As a professional software engineer, I’ve been very fortunate to work for some of the finest software companies around and their source code is fiercely guarded intellectual property kept under strict lock and key.

Open Source projects take a completely different approach. Instead of hiding the source code, they make it freely available. Anyone can download and build the source code. Anyone. The spirit behind this approach has a few key points. One in particular applied to me in this case. Opening up the source code and allowing anyone to work on it invites other with a desire to help and improve the product simply because you can, and you care. This described my situation to the letter and I decided to do something about it.

Why fill out a form asking the developers to add my reply to comments feature when I could contribute and make it happen myself? I’ve decided that I’m going to do exactly that. I’m not going to bitch and complain, I’m going to contribute.

I have lots of questions, lessons to learn, and I hope this turns out to be a great learning experience. I’m going to write about the contrast in experience as it happens. Things that immediately spring to mind:

  • In a corporate environment you typically have technical leads or architects that are responsible for the structure of the code. They understand all aspects of the code at the lowest level and as well as why it was designed the way it was at a high level. They typically do the code reviews before an engineer checks in their code. Who does this in an Open Source project? Who owns it? Does it just evolve organically?
  • How does the code/product get qualified or verified for integrity and quality? Who does this?
  • I can understand how bugs or defects are handled. The product is suppose to do X and it doesn’t or it crashes. That’s pretty defined so I can understand how this can happen in a community environment. How are new features defined and implemented?

If you use the WordPress for iPhone application and you’ve got a hankerin’ for the Reply to Comment feature, post a comment. I’m working on it.

Written by Terry Blanchard \\ tags: , , ,