Friday, May 29, 2009

iPhone Friday - May 29, 2009

Happy (iPhone) Friday to you all! Today's set of eight iPhone and iPod touch wallpapers come from Able Pear Software's corporate color pallet. There are four colors (red, green, yellow and brown) in both a lighter and darker shade. Enjoy!

Friday, May 22, 2009

iPhone Friday - May 22, 2009

Hello and happy (iPhone) Friday! It's a beautiful day in the neighborhood, how about yours? Since it's so nice, I have urge to post wallpapers of the photographic variety. Enjoy!

Thursday, May 21, 2009

Make your iPhone application famous

Recently Don turned me onto Stack Overflow a social network site designed for programmers to ask questions or to answer previously posted questions about (mostly) programming. Since I've been on it for some 21 days, I have enjoyed it greatly. I've asked questions and have had answers posted quickly, most of which concisely answering my question. I think I'm hooked.  As well as asking questions I do like to scour the site looking for newly posted questions that I can answer. One such question was "How to make a program you developed get famous?" Not only did I answer it, but it was both flagged as being the correct answer as well as the highest voted answer. Here is the excerpt from that posting:

Before I start with my points I'd like to say that your application needs to have a compelling story, a value add, a niche and that it fulfills a function that is necessary. If you have just an application that is like all of the others (like your competition) with no value add, ease of use, great user experience, etc... then it will be very hard for you to be heard above the noise.

First, you need to find what sites are talking about your competition. Once that is known approach them and see if they would do a review.

Second, if you have not already, contact a PR company and do a press release, be sure to focus on the applications target audience.

Third, send out samples or request to have your application reviewed by the same people who are reviewing the competitions applications. I find that when developing applications if I can ping reviewers in the technology section of some of the popular print and online magazines and the review is published you'll get great exposure.

Fourth, once you get the ball - run with it. Consider the feature list and upgrade path and try to time it with events that are near your applications market space. When updating (significantly) contact all of the same people who you contacted before and ping them again with why the new version deserves some notoriety or at least a review.

Fifth, once you do start getting press, use it to push it into the hands of others to review and talk about. If you can work the right angle and have a good story you can create a snowball effect and have some great press in a short amount of time.

Lastly, you'll need to have media available for people to see what it is that you are offering. If you have not already set up a channel on YouTube or one of the many other video hosting sites. Post at least one video of the application featuring some of the highlights. If you want to maximize your exposure and you have a significant feature list consider making multipule videos with two or three features with better coverage. But remember people have short attention spans and want to know as much as they can about something in the shortest amount of time.

Now there are many more thing that you can do to get your app, your company, and yourself noticed but I only had enough time to go into as much detail as I did.

I hope this information helps you in your promotion of your app and please feel free to comment if you can think of any other good tips. Cheers!

Saturday, May 16, 2009

Wolfram|Alpha error message

I'm sorry Dave, I'm afraid I can't do that... Wolfram|Alpha has temporarily exceeded its current maximum test load.
I guess Wolfram|Alpha is using one of those surplus HAL 9000 supercomputers NASA has lying around.

Friday, May 15, 2009

iPhone Friday - May 15, 2009

Hello and happy Friday to you all. Today's set of ten iPhone and iPod touch wallpapers were inspired by simple kanji characters. These are simple, elegant and rather popular as artwork, prints and tattoos. I hope you enjoy them. Cheers! (^_^)

Thursday, May 14, 2009

Clang Checker: Making your development and debugging life easier.

In one of the more recent iTunes U - iPhone Application Programming lectures offered from Stanford (blog entry), Evan mentioned Clang, a cross-platform compiler written in C++ designed for the C family of programming languages including C, C++ and Objective-C and the Clang Checker, a static code analysis tool built on Clang. At Able Pear Software Don is the technical lead in the software side of things and it's easy for him to navigate around and squash bugs, plug leaks, and solve issues that are more often than not introduced by me. But I would like to pull my own weight around in helping with this process.

As someone who is relatively new to Objective-C and to hard-core OOP in general, I find that Xcode's debug tools are more than a little confusing to me. With vague or rather non-informative hints as to where a problem is or exactly what the issue pertains to, it does not help me fix the issues at hand and I find myself asking Don for more pair-programming time - or in this case pair-debugging.

As I have very much enjoyed Evan and Alan's lectures thus far and when Evan mentioned Clang I thought I should at least take a look at it and try to understand what it is and if it can help us with developing and debugging our suite of iPhone applications.

Clang is designed to be compatible with code that can be compiled today with GCC. That's very exciting for the open source software community, because it means that Clang and LLVM could some day be used as a complete replacement for the entire GCC stack.
-- Ryan Paul, Ars Technica, Things that go Clang in the night (Article)

So what does all this mean and how can I use it were my initial thought followed by and how hard will it be for me to install and implement such a tool? The answers I found were easier than I thought. But to provide you with a snapshot of our current state of things I should walk you thought the steps in which brought me to this current point.

Download and Installation
The first thing I had to do was go to the LLVM website and find the correct files to download. As the link was in Evan’s presentation I simply clicked myself to the page; I will provide the link for you here. There are additional ways to download the current build of Clang Checker via outlined here; as the project is under heavy and constant development you may find new updates posted daily.

Once I downloaded the tar ball I moved it to it’s new home, in my case Documents>Xcode, where I then expanded the file and renamed the folder to ClangChecker.

Creating the Path Shortcut
Now that I have the file I could follow the instructions and run it with the long command line instruction in Terminal, but since I have to use Terminal I would like the experience to be easy as possible. Evan commented on adding a “shortcut” into the .bash_profile and demonstrated his version using emacs. That was fine but I prefer pico, and you may prefer vi or any other text editor.  Here is what I added to the .bash_profile file:

export PATH=~/Documents/Xcode/ClangChecker/:$PATH

Here I’m telling the terminal to look for the script to run in the directory where I unpacked the tar ball I uninstalled and renamed. This allows you to avoid typing in the path each time you’d like to run Clang Checker. Great, but to use Clang Checker I still have to “clean” the Xcode project I’m working on and navigate to the root folder in Terminal, then type the command... At this point I showed Don what I had done.

Running Clang Checker
I showed Don Clang Checker, ran the script and we immediately watched Clang Checker spew output to the Terminal window. Moments later the compiling and checking was done and Clang Checker launched Safari with our report: four errors, two ‘retain/release’ issues and two leaks.  We click on the view link and it opened a formatted version of the source with annotations of the issues in the file. Don started to walk me through the report but I asked him to allow me to walk him through it as this was a test to see how I could use it.

Debugging Code
After walking thought the colored messages for a few minutes I had solved the issues at hand, opened Xcode and fixed the problematic code then progressed to the next issue.  Within six minutes I had corrected the code and ran Clang Checker again. This time no Safari, no report, and no information. What did I do wrong I started to wonder.  I looked at Clang Checker’s output in Terminal and saw that no reports were generate because there were no errors in the code. I did it -- I had debugged code all by myself with the help of Clang Checker. A feeling of accomplishment washed over me for being able to download, install, run, debug and compile without error.  Thank you Clang Checker... Now about that long command...

Simplifying the Running of the Script
I asked Don if there was something I could do to reduce the footprint of the command that I had to enter as it’s was the same command and I was not using all of Clang Checker’s switches. I wanted a alias, much like the shortcut to the path were the compiler now lives. Don suggested creating a shell script.  This did not sound good, easy or fun. But it was simple. I opened pico again and typed the following:


scan-build -k -V xcodebuild -configuration Debug -sdk iphonesimulator2.2

I then saved the file as “clang” in the current directory.  To run clang I just need to have that file in the current build directory, have a clean project, open Terminal to that folder and type “./clang” to run the build script.

Final Thoughts
I’ve only been using it for the past few days but I’ve already developed a fondness for it. Remember that Clang Checker is in it’s infancy and is still being developed and as such is prone to erroneous message such as false positives. I have only heard this and have not experienced this but I assume that this in working on complex code implementations of the language your working on or having a very large code base for it to process.

I hope you found this information as informative as I have and that you try Clang Checker. I’d be happy to hear your thoughts or experiences on this matter so please, comment bellow. Cheers!

Friday, May 8, 2009

iPhone Friday - May 8, 2009

Chinese Design (Dover Pictura)
Hello and happy Friday.  Todays set of wallpapers come from Chinese Design (Dover Pictura) which is part of a collection of various books including Japanese Design and Art Deco just to name a few. I highly recommend them as they are beautiful, inspiration and (within their terms) royalty-free. Have a great weekend!

Tuesday, May 5, 2009

OCUnit: Integrated Unit Testing In Xcode

Kailoa Kadano posted a good article on Mobile Orchard showing how to write unit tests for iPhone projects using the built in version of OCUnit in Xcode. This wasn't originally supported in the iPhone SDK, but Apple quietly enabled this in iPhone SDK 2.2.

Kailoa's article shows you the steps to get a unit test target up and running. While it requires a couple of manual changes to the build settings, it's nearly identical to using OCUnit with plain old Cocoa. One gotcha I found was that you must build your application with Active SDK 2.2 or later -- the unit test target will fail when built for earlier iPhone OS versions. Given that the number of users still on 2.0 or 2.1 is probably very small at this point, and sure to get smaller when 3.0 is released, this isn't that bad of a limitation.

I had previously used Google Toolbox for Mac to write iPhone unit tests and that works just fine, but it's nice to find out that it's now built in to the SDK.

Friday, May 1, 2009

iPhone Friday - May 1, 2009

It's Friday, time to start the celebration. And what better way then with some beautiful wallpapers for your iPhone or iPod touch. This collection of 14 wallpapers are from last weekend while staying at The Sea Ranch on the coast of California. I was going to post a series of wallpapers continuing the Space series like last week but I wanted to do something special for you all. So here you are. I hope you enjoy the beautiful images as much as I enjoyed taking them. Cheers!

Also, I've found that if you want the full-size image you need to click on the image to load the original image, then follow the instructions to save the image for use on your iPhone or iPod touch.