• Review: River of News (Google Reader app for iPad)

    The other day I was listening to MacBreak Weekly and during their "Picks" Leo Laporte recommended River of News, a Google Reader app for the iPad. About a year ago, I wrote that I was done with RSS readers that had to synchronize with Google Reader and was satisfied with the web interface. However, I decided to take a look at River of News. It was only $2.99, so buying it didn't break the bank.

    When I first started it up, I was amazed at how well it worked. After playing with it for awhile, I started wanting to read my RSS feeds on it instead of on the desktop; now that's saying a lot! I'm not sure how it is talking to Google Reader, but it didn't seem that there was a "sync" process to mark feeds read/unread and the flagged of articles worked flawlessly. It makes reading my feeds (OK, maybe information overload) a pleasure.

    The only issue I have with the app is that it's a bit slow when you scroll down and it has to retrieve a few more articles. While I realize that the trigger for fetching new articles is when the user hits the end of the page while scrolling, it would be nice if the developer changed it so that when you were done with a few articles, it would go fetch the next batch in the background so that there is no waiting.

    Pros

    • Inexpensive
    • Easy to use interface
    • Integrates well with Google Reader

    Cons

    • A little slow at loading new articles

    Summary

    If you read RSS feeds, this is currently my reader of choice. It's a no brainer to spend the $2.99 on this, even just to see how it works. Now if the developer addressed (fixed is highly subjective), the slow loading, I'd be in reader heaven.

  • Review: Charles Proxy - Useful development tool; ugly interface

    During the testing of one of my projects, our QA folks mentioned a tool called Charles Proxy that they used to throttle the connection speed down to 3G speed as some issues can only be reproduced on slow connections. I pretty much ignored the product as I wasn't assigned any bugs related to this. A few weeks later, I was assigned a bug dealing with 3G. As I really didn't want to try to reproduce the issue on a device over 3G (the iPhone simulator makes it easy to reproduce issues, but as Apple points out, there is nothing like testing on a real device), I downloaded Charles Proxy and gave it a whirl. Unfortunately the limitations in the demo quickly required me to cough up the $50. As much as I was reluctant to cough up the money for an app that doesn't look like a Mac app, it has already paid for itself.

    Throttling down the connection speed seems to be one of the small features of Charles Proxy. It is a full tool for analyzing web traffic. When developing iPhone applications that talk to web services (which is pretty much everything these days), being able to look at the packets, headers, responses, XML results, and JSON results. In addition, it gives timing results for the requests so that I can see where slowdowns exist.

    I've used it to determine that a client's server was slow (they reported poor performance), that a different client's web server wasn't doing compression on text/plain files, and to see where I made incorrect requests to the server.

    The major downside of the software is that the interface doesn't look like a Mac app. As I've written before, I really dislike apps on the Mac that don't look like Mac apps. Cross platform apps just aren't my cup of tea.

     

    Pros

    • Extremely useful for iPhone app development involving web services.
    • Lots of information about web requests; requests, responses, headers, etc.
    • Easy setup; it auto-configures the Mac proxy settings when it starts and changes it back when it quits.
    • Ability to throttle down the connection speed.
    • Lots of settings.

    Cons

    • Ugly Mac interface.
    • A bit costly. (Maybe not for a developer tool.)

    Summary

    If you're developing iPhone (or even Mac apps) that involve web services, Charles Proxy is an absolute necessity. If you ignore the ugly interface (I'm not talking about the layout, just the interface elements don't look very Mac like), the app works well and gets the job done. It could be prettier, but the tool is extremely useful.

  • Review: PixelSkin HD Case for iPhone 4

    Today I received the PixelSkin HD case for my iPhone 4 through the Apple case program. I had been using a $0.99 case I purchased off eBay and was relatively happen with it. It's really hard to review a case as it does so little, so I'll mostly compare it to the $0.99 cases I bought off eBay.

    First off, this is a hard plastic case (the one I was using was rubberized). This makes the phone feel more solid and it has a slight lip that may prevent the phone from being scratched if I put it face down on a surface. Second, the case is pretty tight fighting and doesn't add much bulk to the phone. Next, the fancy pattern on the back definitely helps with gripping it as the plastic as a little slippery. Finally, the case is rigid enough that the small piece of plastic on the bottom connecting the sides near the dock connector doesn't feel flimsy.

    When I started looking for cases, I thought that since all the cases are made in China anyway, what was the difference between one off eBay direct from China and a name brand. Well, there are plenty of differences and the PixelSkin HD case feels like a solid case. If I didn't get the case for free, however, I wouldn't have known there was a difference (not that $20 is a lot of money to spend on a case, but cheaper seemed better).

    Pros

    • Solid feel
    • Pattern on back makes it easier to grip
    • May offer some protection to the iPhone

    Cons

    • On/off button feels hard to press

    Summary

    If you didn't already receive your free iPhone 4 case from Apple, this could be a good case. I'd goto the Apple Store and give it a try. Cases are very personal and some like this type of plastic while others like rubbery cases. Some people just are too upscale for plastic cases and go for leather or some other material; in that case, this is definitely not for you.

  • The art of billing

    It seems like such a simple task for a contractor; bill for the hours you worked. In my profession and how my brain operates, defining "work" is not easy. My brain doesn't have an on/off switch so at the end of the day, if I was working on something, even if I walk away from the computer, I may still be thinking about it. Same goes for when I run, especially if I'm working on a hard problem.

    Tonight as I was giving my son a bath, I realized that code that I had written today (based on other code in the project) could potentially crash in some race conditions. Do I bill the client for only the time that I'm typing? Do I bill the client for 24 hours a day just to make things easy? What is considered work and what isn't? I don't really have the answers to those questions; I look at things on a case by case basis. I've been doing contract work for a long time now and so far no one has ever questioned by time as I'm very honest and provide a detailed invoice with all of my hours and tasks recorded.

    The next part of billing that doesn't seem clear cut is during the day when I am at my computer, when do I start and stop billing? Do I round to the nearest 15 minutes? Do I bill for every minute? I've seen invoices from some contractors that recorded time down to the minute and even one with a fraction of a minute. Do they sit there with a timer and start and stop every time they read and email message? If they get a phone call, do they start billing when they see the caller ID? These just are far too extreme for me. I do reasonable billing and round my billing.

    Finally, one area that I still haven't figured out the best practices is handling interruptions and emergencies. If I get interrupted to work on something else (email, phone call, or instant message), it can take time for me to get back into the thought I had before I got interrupted. Best case it takes me few minutes, worst case, it can take me hours. Who do I bill for this? Do I bill the client that interrupted me or the project  was working on before the interruption? I don't have a clue.

    Luckily all these billing issues are minor and as long as I'm honest and ethical, no one has a problem with my billing practices. It also doesn't hurt that I get the job done!