Archive for July 2008

Dr. Horrible on Hulu

I don’t know for how long, but all of Dr. Horrible’s Sing-a-Long Blog is available to watch for free on Hulu. Hulu is a legit service from NBC, so you’re not doing anything illegal by watching it. So, go watch it and then buy it from iTunes. And then buy the soundtrack when it comes out. And then buy the DVD when it comes out… :-)

If It’s Part Of a Series, Tell Me!

I went to my local Barnes & Noble yesterday to pick up book 18 of the Aubrey–Maturin series, The Yellow Admiral. While there, I looked around just to see what else was available. I’m a sucker for great cover artwork and have bought many books based on my initial reaction of seeing the cover. And I’ve also gotten burned doing that. It happened with Every Which Way But Dead, which turned out to be the third book of a series. I went back and bought the first book, but didn’t like it, never tried the second one, and thus ended up with a pristine copy of book 3, that I’ll never use.

It happened again yesterday. I saw an excellent cover on Endgame by Kristine Smith, so I picked it up. I read the back cover and it sounded interesting. So I bought it. Later in the day, I looked it up on Amazon, just to see what people were saying about it. That’s when I found out that it’s actually the fifth book in a series. I picked the book up and read every single word on both covers and the spine and there is absolutely no indication that this book is part of a series. I’ve still got the receipt, so I’m going to take the book back and see if I can swap it for something else. There’s a chance I might swap it for the first book in the series, but more than likely I’ll go for the 19th Aubrey-Maturin book.

Note to publishers: I don’t like feeling tricked. I don’t know if this was an oversight or an attempt at deception, but it’s certainly cost you this sale, and it may have soured me against the entire series. Be honest with book buyers about when a book is part of a series. You know if it’s part of a series or not, so how about let us know before we buy. You’ll get more sales in the end.

Strange Seg Fault In Simple Cocoa App

I just got Aaron Hillegass’ 3rd edition of Cocoa(R) Programming for Mac(R) OS X (3rd Edition) and am working through it as if I never went through the 2nd edition. (It’s been so long since I did any Cocoa, that seemed like the smart thing to do.) Anyway, I’m in Chapter 4 on memory management and things were going fine. Until all of a sudden, the program started dying with a segmentation fault. After trying to figure out what I’d done wrong, I figured I’d mistyped something and just wasn’t seeing it, so I reverted my changes back to what I had in my Subversion repo. I then started making the changes again. And again the program died with a segfault. 

Any time I’m working through a programming book, I always type all the examples in by hand, rather than downloading pre-written code. I learn better that way. But in cases like this, I don’t have a problem with looking at the author-provided code to see where I went wrong. I downloaded the solutions from Aaron’s site and started comparing. I found the problem pretty quickly.

Originally, the code for creating the NSCalendarDate object for today’s date was

NSCalendarDate *now = [[NSCalendarDate alloc] init];

which, when you later add the code to release it, would have worked fine. But at some point between when I wrote that line of code and when I added the release, Aaron mentioned a convenience method on NSCalendarDate for getting back an autoreleased date object. That code looks like this

NSCalendarDate *now = [NSCalendarDate calendarDate];

I had changed my code to use that instead of the original version. That was in Chapter 3. So, when I hit Chapter 4 and added the call to release the date object, I ended up with my segfault. The chapter assumed that you still had the alloc & init calls, and so made no mention of the calamity that would ensue if you had switched to the other way of getting today’s date.

What made this difficult to find was when the segfault occurred. It didn’t happen when I called release on the date object. It happened on this line

[pool drain];

which is one line before the program ends. That’s boilerplate code there, so it was really strange that it was barfing. The reason this caused the problem is that this way of getting a date is autoreleased, which means that unless I retain it somewhere, it’s going to get deallocated when the NSAutoReleasePool is deallocated. But when I called release on it, I ended up setting it’s retain count to 0, so when the pool was drained, it ended up sending a release message to an object that had already been deallocated, which is a no-no.

Bottom line is that had this been a big program, this could have been really hard to track down. Of course, turning on the Objective-C 2.0 garbage collector would have solved the problem too, but then you have a Leopard-only program.

A Few Things I Hate About iPhone OS 2.0

I love the new iPhone 2.0 OS, mostly, though I really think they should have let it bake for another couple of months before releasing it. There are parts of it that just don’t feel fully cooked. For instance, one application dying should not cause the entire phone to reboot. That doesn’t happen in OSX, nor does it happen in Linux. It does happen in Windows, but that’s another story. It’s happened to me at least six times with different apps, and that’s just not cool.

Next, it’s really difficult to actually delete an application from the phone. I’ve figured it out, but here’s what I went through. The first time, I deleted it from the Applications panel of iTunes and said “yes” when it said that they would be removed from the phone the next time I did a sync. Perfect. Except it wasn’t. The next time I did a sync, I got a dialog saying that there was purchased content detected on the phone and did I want to transfer it. A parenthetical note advised that failure to do so would result in the content being removed from the phone. I answered “transfer” because I wasn’t sure if I’d installed anything directly to the phone or not. Of course, the only content that was on the phone that wasn’t in iTunes was the apps I’d just deleted. Actually, the very first time I tried to delete apps this way, I didn’t get the “purchased content on phone” message, because I’d seen it once before and had checked “always transfer” as the default. That means that it would be impossible to ever remove apps this way, since iTunes would always transfer them from the phone back into iTunes.

So then I tried deleting the apps from the phone itself. I pressed the icon and held it down until the screen went “wiggly” and then pressed the ‘X’ on the icons I wanted to delete. They got removed just fine. Until I did a sync with iTunes again, at which time they were dutifully reinstalled.

What this means is that there is only one surefire way to delete apps: delete them from both the iPhone and iTunes before doing a sync. You could just delete them from iTunes and then answer “don’t transfer” from that dialog the next time you sync, but you have to make certain that the only “new” content on the phone is the deleted apps, and not something that you want to hold on to. Good luck with that.

Finally, I hate the fact that every time I do a sync, iTunes will gladly spend 20 minutes backing up the iPhone. It apparently goes brute force and just backs up everything on the phone, whether it needs to or not. Some of the installed apps, like Apple’s Texas Hold’Em, have tons of images and audio files, which take forever to backup. And once those files have been backed up, there’s no reason to ever back them up again; they won’t ever change! A little checksumming of files could go a long way towards solving this.

I still love my iPhone and the ability to install apps on it is awesome. I’ve paid my $99 to Apple to get into the developer program, and as soon as I come up with something decent that needs writing, I’m going to write it. So even though this post contained the word “hate,” I still love you, iPhone. XX OO XX

A day or so ago Apple began seeding iPhone OS 2.0.1 to developers, so I’m hoping that goes GA quickly and that it addresses some of these problems. Just like Leopard had problems at launch and a relatively quick point release solved them, that’s what I’m hoping for with the iPhone.

07-26-2008 16:20 Update: When I sat down to write this post, it was originally “Three Things I hate…” but at the end, I’d really only included two. So I changed the name. But a little while ago, I remembered the third thing, and that’s when you update apps with new versions, they don’t stay where I had them. For example, just this morning, UrbanSpoon had an update and when it was updated, it moved from page 2 to page 5. That’s very uncool, too.

My Church Was Robbed Last Night

I don’t have any details, but I just got an email from my church saying we were robbed last night. What sort of person robs a church?

My first thought upon hearing this was “Man, I hope this guy rots in hell for this” but upon further consideration, that’s probably not the Christian thing, is it? Anger and revenge seem to feel so much better than forgiveness, and that’s one of the things I struggle with. I’m quick to anger and quick to condemn, but a “proper” Christian response would be to condemn the act but not the one who did it. Unfortunately, it’s not as easy to separate the two as preachers make it sound.

Dr. Horrible, Act III

I just finished watching Act III of Dr. Horrible’s Sing-a-Long Blog and it was very powerful. The end was not what I was expecting, I can tell you that. I don’t want to spoil anything, but don’t look for the cliché; it’s not there. The writing and acting in this short were both top-notch. As I said before, I really wish it weren’t just a three-part special. I’d like to see more episodes.

They should also make the soundtrack available as a download from iTunes. There was some good music in there.

Two New Monitors For Me! W00T!

I just bought two, count ‘em, two new 22″ Samsung 2232BW+ LCD monitors for my office. That’s them in the photo below. I am replacing two 21″ CRT’s that weigh about 100 pounds each; one was a Sony and the other was a Nokia. They were both good, but they were starting to get old, they took up way too much space on my desk, and they generated enough heat to keep a small family warm in the winter. Needless to say, they kept my office extremely hot in the summer, no matter how many fans I kept running. Hopefully these new monitors will not give off so much heat, and my office will stay at a reasonable temperature.

“Prize Notification” From “Microsoft”

I just checked my email and found this oh-so-exciting email from MICROSOFT EMAIL PROMOTIONS:

MICROSOFT EMAIL PROMO:OFFICIAL PRIZE NOTIFICATION

The MICROSOFT EMAIL PROMO TEAM is glad to announce that after a successful completion of the PROMO DRAWS on the 17th July 2008, your e-mail address,attached to winning numbers:(55) (73) (14) (41) (36) (29) won in the Tenth lottery category.

You have therefore been approved to claim a total sum of £150,000,00(One Hundred and Fifty Thousand British Pounds Sterling) in cash credited to file REF NO:MSW-L/008-28793, BATCH NO:2008MJL-05, this is from a total prize money of £3,750,000 (Three Million,Seven hundred and Fifty Thousand British Pounds Sterling),shared among the Twenty five (25) international
winners in this category.

All participants were selected through our Microsoft computer ballot system drawn form 167,000 Names,as part of our International \”E-MAIL”\ Promotion Program for our prominent MS-WORD users all over the world and for the continuous use of the internet. You are adviced to contact the claims processor with the details below via his e-mail address :

NAME:  Marvin Cunningham
EMAIL: mrmarvcunn@yahoo.com.hk
TEL:   +44 703 5902789

PLEASE NOTE THAT YOU ARE TO SEND THE FOLLOWING INFORMATION TO CLAIM  YOUR WINNINGS:

1.Full Name………………………………
2.Address:………………………………
3.Phone:……………Fax:……………….
4.Country:………………………………
5.Sex/Gender……………………………..

In order to avoid unnecessary delay and complications,please remember to quote your reference and winning ticket number in all correspondence with  your claims officer.Your secret pin code is ML0757985.Be warned that cases of double claims and unwarranted abuse of this program  will be legally pursued.

YOURS FAITHFULLY,
MRS. MARTHA TAYLOR

There are so many spam dead giveaways in that email that I can hardly count them. There’s the all caps subject, the three different email addresses associated with the “prize,” the fact that the “prize” is to be awarded in pounds instead of dollars, the fact that the coordinator is using a Yahoo account from Hong Kong and the fact that there are numerous spelling errors that just scream ”Nigerian scumbag.” I love that they have quotes around E-Mail, which makes me think of Dr. Evil saying “laser” from Austin Powers: The Spy Who Shagged Me. I also love the fact that the prize is given to those in “our prominent MS-WORD users all over the world and for the continuous use of the internet.” Riiiiight. I’m a “prominent” user of Word and the intertubes, so now I’m eligible. Suuuuure…

Yeah, I’ll be responding to this one.

Burn Notice

Several months ago a friend recommended a show on the USA network called Burn Notice. I didn’t get around to watching it until about two weeks ago. I wish I’d taken his advice sooner, since this show is great. It’s about a former spy who gets burned by his agency. He is trying to find out who burned him, while he and his friend Sam take on various jobs and good deeds to pay the bills. It’s sort of like a miniature A-Team. Sam, by the way, is played by Bruce Campbell, of Evil Dead, Army of Darkness and Bubba Ho-Tep fame. If you like spy shows with bits of humor, definitely check it out.

Dr. Horrible, Act II

Act II of Dr. Horrible’s Sing-a-Long Blog was release today, and it’s just as funny as Act I. Once again, the music is great and the story is getting very interesting. I was talking with a friend about it, and we both wish it were going to last longer than three episodes. Maybe if Joss makes enough money from people buying it from iTunes, as my friend and I both did, he’ll extend it. Maybe.

Not to spoil anything, but be sure to keep an eye on Moist during his scene with Dr. Horrible. It’s subtle, but funny.

I Just Watched Act I of Dr. Horrible’s Sing-a-Long Blog!

I just finished watching Act I of Dr. Horrible’s Sing-a-Long Blog and it’s hilarious. It’s a web-only musical, created by Joss Whedon, the creator of the bodacious show Firefly (and Buffy and Angel). It stars Neil Patrick Harris as Dr. Horrible and Nathan Fillion (Mal from Firefly) as Captain Hammer. Dr. Horrible is trying to get into the Evil League of Evil, and talk to the girl of his dreams, all the while being thwarted by the good yet goofy, Captain Hammer. 

Apparently you can stream each episode for free on the day it comes out until midnight (that’s what I heard) but after that, you have to get it from iTunes. I bought the “season pass” for $3.99, which gets me all three episodes as they are released. Go watch it.

Did I mention that it’s a musical. The songs are great and very funny.

New A&E Show “The Cleaner” - Meh.

I just finished watching the series premiere of The Cleaner on the A&E network and about the only thing I can say is, “meh.” Part of my indifference comes from the fact that when I heard the name of the show, I assumed it was going to be something similar to Harvey Keitel’s “Mr. Wolfe” from Pulp Fiction; “I’m Winston Wolfe. I solve problems.” But that’s not what it was about. The other part is due to the excessive use of “the ’s’ word.” In this one-hour show, there were at least 12 occurrences of the word. That’s a lot. One single conversation in one scene contained 5 of those uses. That’s just absurd, and shows a lack of skill in the writers.

Anyway, the show revolves around an ex-junkie who believes he talks to God, and his network of  ex-junkie associates who try to help people with drug problems. Get it? He’s the “clean”er? Of course, while he’s helping other people, he’s neglecting his own family, and strife ensues. The acting was pretty good and the characters were fairly interesting, but the show just didn’t do it for me.

I Paid My $99 To Apple

As I said yesterday, I finally got my acceptance letter from Apple that essentially allows me to pay them $99 in order to develop iPhone software. I have just now paid the $99, so now it’s just a matter of waiting for the license or whatever it is that they will send out. Let’s hope it doesn’t take as long as it did for the acceptance letter.

As I write this, I am downloading the iPhone SDK. I played around with the first beta Apple released, but I haven’t really done anything with it since then. That was before they got Interface Builder going, so it should be a lot better now than it was then. I’m looking forward to getting started; now I just need to think of something that needs writing.

07/13/2008 00:37 Update: About 20 minutes after posting this, my Activation Code email arrived from Apple. Fun times ahead.

So *Now* Apple Will Let Me In…

After months of waiting, I received this email from Apple just a few minutes ago:

Thank you for applying to the iPhone Developer Program.

We have reviewed the information you submitted when you initiated your program enrollment request and we are ready to instruct you on the steps required to complete the enrollment process.

Please click here to review and agree to the Standard License Agreement. You must execute this agreement prior to completing the purchase and activation process for the iPhone Developer Program.

Once you complete and activate your purchase, your enrollment will be complete.

Thank you,

iPhone Developer Program

I guess now that the App Store is live, they can let more people into the program. Now I guess I’ll have to re-download the SDK and pony up.

WordPress To Release An iPhone Blogging Client

Oh man, this is just too cool. I switched to WordPress just a few days ago and today I see that they have an iPhone blogging client that should be released “soon.” Just one more thing telling me that I made the right decision picking WordPress.

My iPhone Apps

After spending way too much time last night going through the App Store, I finally went to bed. But not before I took some screenshots of everything installed on my iPhone. (That’s another cool feature of iPhone 2.0: screenshots. To take one, hold down the round button on the front, and then press the power button. The screen will flash white, and then the image shows up in your photos. Very nice.)

I will most likely uninstall at least a few of the apps, as they either aren’t that great, or they require registration at some website that I’m not sure about. Anyway, have a look.

iPhone Launcher Page 1iPhone Launcher Page 2
iPhone Launcher Page 3iPhone Launcher Page 4

 

You can click on each one to see a larger version. I still can’t install apps from within iTunes, though. All of those apps I installed from the iPhone itself. The standout apps, so far, include
  • Mobile Flickr
  • Box Office
  • Twitterific (though I wish it had separate tabs for replies and direct messages)
  • Facebook
  • Band
  • PhoneSaber (Thomas especially likes this one)

iPhone Password Entry Is Now 600% Better

One of the most frustrating things about the previous version of the iPhone software was password entry. Apple used a masked entry field, which means that instead of seeing what you type, you see a splat. On a computer with a big monitor, that’s understandable; you don’t want someone stealing your password by looking over your shoulder. But on the iPhone, it seemed a bit silly, and it was incredibly hard to know if you’d typed your password properly.

But with iPhone 2.0, things have changed. It still uses a masked entry field, but now the most-recently typed letter is visible until you type the next character, or for about 2 seconds if that’s the last letter. Oh, mama, that’s an awesome improvement. I will make far fewer errors now! :-)

Why Can’t I Install iPhone Apps Via iTunes?

09/15/2008 Update: I wrote this article back in July, right after iPhone OS 2.0 was released. You’ll notice from the update on 08/01/2008 that I figured out what was going on. But since so many people keep asking, let’s establish something once and for all:

YOU CANNOT RUN APPSTORE APPS ON iPHONE 1.1.x!!!

It doesn’t work. It can’t work, since the 1.1.x version of the OS doesn’t support applications. You must install the 2.x version of the OS. 

Now, if you still want to read the original story, here it is:

OK, so I’ve got iPhone 2.0 loaded, and I successfully installed an app from the App Store from the device itself, but I can’t seem to get app installing working from within iTunes. I have downloaded three apps via iTunes and they all came down successfully, but they don’t show up on my iPhone. All three show up in the Applications pane of iTunes, so they successfully downloaded to my Mac, but even after manually syncing and unplugging and re-plugging the iPhone in, they never show up on the device. Going into the App Store on the iPhone itself and installing from there works, but I do get a message saying that I’ve already purchased that app, and would I like to re-download it for free. After that, the app is installed, but something is wrong. Or maybe I missed something.

08/01/2008 17:38 Update: I discovered the trick a day or so after I wrote this, but since someone else is still having the problem, I’m updating the post with the answer. Follow these steps

  1. Click on your iPhone in the Devices section of iTunes
  2. Click on the Applications tab
  3. Check the “Sync applications” checkbox
  4. Select either “All applications” or “Selected applications” and then check the ones you want synced.
  5. Click the “Sync” button.

That’s it.

iPhone 2.0, Installed. First App, Installed.

My download of the iPhone 2.0 kit finished successfully. I then installed it a restored my settings and such. Now, about 25 minutes later, I’ve installed my first app. I’m going to be digging through the App Store for a while tonight, looking for cool things to install.

 

iPhone 2.0 Is Downloading

I can’t wait until tomorrow to get the new iPhone 2.0 software. I’m downloading it now at a rate of 715.47K/s and once it’s downloaded, I’m gonna slap it on my phone. I’m using the instructions found here for the procedure.

Ooh! Only 2:24 until it’s finished downloading.