Erik's Thoughts and Musings

Apple, DevOps, Technology, and Reviews

iPhone and Mac Development

I am doing light posting this week I know. I don't really have any excuse. Work is really jam packed right now. We are getting into the crunch time of year so days are filled with work and nights are filled with my iPhone side project.

I have to say that I am really in love with iPhone development in the same way that I am in love with Mac development. That's not that much of a stretch considering they are the same foundations, but coding for both platforms really is a joy. I think the last time that I felt this good about programming UIs was when I was doing Borland Delphi way back in the late 90s. UI design really just does make sense. The convenience methods for strings, collections, bundles and data handling is so intuitive that I find myself not needing to go to the documentation. Most of the time I can just use code completion.

I am still struggling a bit with memory management. I still tend to over release objects and cause crashes, but I am slowly getting better.

The other thing I am coming to terms with is Objective-C 2.0's use of properties. I am getting so used to using properties doing iPhone development that when I go back to Mac development (that has to support Tiger) I seize up a bit. Properties are so convenient. It is a shame that you can't use Obj-C 2.0 with Tiger.

I Am Having A Windows Sucks Day Today

I am a week behind on finishing my expense report for work. My old HP All-In-One printer is hooked up directly to an old PC laptop because HP doesn't feel it has a need to support my model's scanner on Mac.

So I go open the lovely looking HP Director software (sarcasm) on this slow machine and wait, and wait, and wait. I didn't think much of it because it is a 3.5 year old machine "Why should it still be fast?" (sarcasm)

Nothing opens. So I am thinking that I didn't get my double-click in fast enough... Launch again. Nothing. No error, no crash dialog, absolutely nothing. I reboot the machine. Nothing. I plug in the network cable on the off chance it needs a connection. Nothing. Go to their website and try an do a "HP Software Update". Internet Explorer just hangs trying to load the Active X control. In the meantime, the fan is sounding like an afterburner. Crap. I look just for the latest HP All-in-one software download and can't find it anywhere... What do I do? I've already spent 45 minutes on trying to launch the program. Google Search time.

So I know it is a bad sign when I go to Google, I start typing "HP Director" and the second item on the Google Suggestions says "HP Director won't open". I start trolling through the forums. The forum mentions running some kind of Windows Scripting Host file. Nope. No beans.... More trolling. And then I hit pay dirt. People mentioning that if they uninstalled IE7, things started magically working. About 2 weeks ago I updated the PC from IE6 to IE8 thinking MS finally got all the kinks out of it.

In the meantime I am cussing up a storm, my wife comes in and tells me that there is another way to launch the scanning software through opening this other HP software. So yay! I finally launch it and of course it only scans to Tiff files! Tiff files? come on, what is this 1995? Luckily through this other save mechanism I was able to finally get the scan into a .pdf (thanks again to my wife), but it really was a bunch of wasted effort.

So who's fault is my over an hour of wasted time? HP? Microsoft? Both? Somewhere is a bad design. To not even give the user an error on launch is just dumb.

Yes, there are problems on Mac. Yes it is not the perfect OS. But these types of aggravations really just don't happen to me. My Mac Mini is 6 months younger than the PC laptop and it is quiet as the day I turned it on. Has an uptime average probably 3 or 4 times the PC. It doubles as a file server and an iTunes server and even is my wife's current email and browser machine.

Instead of trying to fix the HP software, maybe I should just ditch the printer/scanner all together and go get one that supports both Mac and Windows.

Griping About The iPhone App Store

A couple of days ago, I clicked on a blog post in my news aggregator from Marco Arment, lead developer of Tumblr and creator of Instapaper:

Trust, hostility, and the human side of Apple

The post was interesting to me because hopefully one day I hope to create an app for the App Store. However, one part really kind of irritated me:

The last session of WWDC ‘09 yesterday was about publishing on the App Store. The content of sessions is under NDA, so I can’t tell you what it was about. So I’ll tell you what wasn’t in it: the audience Q&A session that succeeded nearly every other WWDC session and usually provided invaluable access to Apple employees and useful additional knowledge to attendees. The session itself blew through its lightweight examples quickly, ending 45 minutes early. The majority of the audience was clearly there for the Q&A. As people lined up at the microphones around the room, the presenter abruptly showed a simple slide with only “WWDC” in plain lettering, thanked us for coming, and bolted off the stage. The Apple engineers, usually staying around the stage for one-on-one questions, were gone. The lights came up instantly, and it was the only session that didn’t end in music. The audience was stunned. It was a giant middle finger to iPhone developers. And that’s the closing impression that Apple gave us for WWDC. Clearly, they had absolutely no interest in fielding even a single question from the topic that we have the most questions about. This went far beyond reluctant tolerance. It’s hard to interpret it as anything else except blatant hostility. We could probably have a more open discussion with Kim Jong-il about North Korea’s nuclear policy.

First off, does he even realize that they probably weren't hostile and giving a "giant middle finger", but they were probably just ready to go home? In the first sentence he said it was the last session of WWDC. It was 2:45p on a Friday. I certainly didn't stick around for the last session block. In fact if I am not mistaken, none of the people in my company did. Maybe Apple scheduled it for the last session on Friday on purpose, but there were plenty of other opportunities earlier in the week to gripe.

I went to a session a day earlier called [REDACTED]. While I can't say for NDA reasons what was said in the session, I do know there was ample opportunity to gripe about the App Store process in that session's Q&A.

Besides, why does he have a need to gripe in such a public forum? For applause? For solidarity? Apple knows for crissakes. There are enough examples of people griping about it on the Internet. He himself said in the post that individual Apple employees knew of developer's frustration. One of the things I like about Apple is that some of the best new features have most likely come directly from gripes. GPS, MMS, Cut/Copy/Paste, and Tethering were all driven by customer demand (complaint). Apple isn't blind and deaf like Microsoft has a tendency to be.

WWDC is a developer's conference. The sessions are lead by developers, project managers and evangelists. What exactly could any of them have done to make these "hostile" session goers feel assuaged? You know all they would say is the typical Q&A response. "Thank you for the feedback, blah, blah, blah..." They do it in the Q&A at almost every session, usually multiple times.

One last minor quibble I have is the session he talked about wasn't the only session at WWDC this year that didn't have a Q&A. I went to a Cocoa Touch session and it didn't have Q&A there. Was Apple giving the "middle finger" in that session as well? I don't think so.

I for one am glad that Apple is trying to be more selective on who gets in the App Store. Yes, the rules are rather nebulous, unfair, and there have been some outliers when it comes to apps that have been denied... But frankly I don't want crap on my phone. And I don't think Apple really wants crappy or hacky software polluting the App Store, making people's iPhones unstable, and using up their own bandwidth. I am glad they are doing at least some due diligence. Imagine what kind of crap these reviewers are actually stopping from being published.

Don't get me wrong, besides that one section, the blogger's post was really interesting.

Furthermore, I also reserve the right to gripe on this blog about the App Store if I do ever have an app to publish, but I am not going out of my way to be "hostile" at a developer conference when I know it is a common complaint.

Taking A College Course (Sorta)

When I was at WWDC last week one of the presenters put in a plug for the college course he taught at Stanford in the Spring of 2009. The course is iPhone Application Programming and all the course work, lecture videos and slides are publicly available online (You need iTunes for the videos). So when I got home I started downloading all the course stuff.

Now don't get me wrong, I consider myself a pretty good coder and I have already written some apps for iPhone (or I should say iPhone Simulator -- nothing publishable), but seeing these lectures (given by two Apple employees) has helped fill in some blanks not just in iPhone development, but Mac OS X development as well. For example, I always wondered why Objective-C files were stored in files with a .m extension. In one of the lectures I found out that .m is supposed to make you think of iMplementation. Stupid I know, but that kind of trivia mentally puts a puzzle piece into the big picture.

Most of the early lectures I have breezed through so far. And the early assignment apps are very easy for someone who has been doing Mac development for a little over a year, but I am going to soldier through. I can't wait to get to the more advanced topics. I am hoping for some other trivia.

"Taking" the class (even for no grade) also makes me realize how different college courses now must be from the time when I was in college. When I was finishing college (Dec 1995), the Internet was just about to spark in the mainstream. I used the Internet for research and help with programming, but not in the same vein as this class. For this class, in one of the assignment notes it mentioned going to Wikipedia to get some information when it would have been just as easy to post the info in the assignment notes. Also, the class wants you to write an iPhone app and submit it to the App Store if you think it is good enough. Some students actually did publish their apps.

iPhone 3.0 OS First Thoughts

So I just got iPhone 3.0 installed on my first gen iPhone. Here are some first thoughts:

  • Mail actually feels much snappier to me. Heck the whole OS feels snappier.
  • I am loving how intuitive Cut, Copy and Paste feels, even the little bars to increase the selection area is smart.
  • Portrait AND Landscape for most of the apps is a welcome change.
  • Renaming SMS to Messages is a bit of a pain because it is more generic, but I can understand the reasoning since there is now SMS and MMS capability.
  • Voice Memos is pretty dang awesome. I love the simple UI.
  • I didn't heed the advice of a friend and make sure there was one open spot free on my main home page. One of my icons got bumped to a second page of its own. I had to reshuffle a some icons. Not a big deal in the grand scheme of things though.

Can you tell I am a fan boy? :)

Coincidentally I was also able to get the developer provisioning working from my company, so I can actually run apps that I personally created on my phone. That's probably cooler than I make it sound since it is relatively trivial on other mobile devices. But considering how long the phone has been closed off to me as a developer, it is a good feeling. Even seeing my personalized "Hello, World" app running on the phone made me crack a big smile.

Home Sweet Home

Ah. It feels good to be home.

I got in about 12:30 am last night after about a 30 minute delay in Atlanta. The flight crew was late. I was trying to calculate it and I think the last 4 times I left Atlanta airport I was delayed.

My daughter has seemed to change a lot since I have been gone. It was great that my wife kept up the blogging a couple times. More about that soon in her blog.

I started back up with Twitter after about a month away and I come back to the Twitpocolypse. My favorite client on the Mac, Nambu, has this weird threading issue where every reply tweet is showing up as a reply to a tweet. Tweetie is also supposed to be having problems on the iPhone, but I haven't noticed it yet.

Hopefully I am back to posting regular updates on both this site and my daughter’s site. We will see. I feel like I am still underwater in chores, work, and research tasks with all that has happened in the last week.

At Atlanta Airport

As always, my flight out of Atlanta is delayed. I think that is 4 for 4 on flight delays from here in the last year.

At SFO

I'm at the airport. Plugged in and looking over some iPhone documentation.

Flying Home Today

I am heading to the airport in about an hour to fly home. Hopefully there will not be any delays getting out like their were delays getting in. I don't want to spend the night in an airport.

Terminator Salvation Review

I just got back from seeing Terminator Salvation with my buddy from work.

The night started with dinner at a French Restaurant called Cafe De Le Presse. It wasn't bad. I had a Salmon, Salad, Wine and a Chocolate Mousse.

Afterward it was still pretty early so we wandered over to the movie theater that is on the top floor of this shopping area. It was like a maze to get into. We got there about 10 minutes before the movie started.

The movie was a little strange. Again a movie (just like Star Trek) where parts of it feel like the earlier films, just there is some spark that is missing. The action was fantastic of course. Those building size and motorcycle Terminators were pretty dang cool.

I was amazed at how little Christian Bale was in the flick. He seemed to only be in about half the movie. Interesting though that they kept up the Terminator 3 timeline, even including the character Kate (even though she was recast).

Anyway, I guess I need to see it again on disc after I have digested the movie. It probably will be a film to own, but we will see.