Monday, March 31, 2008

The id pointer in Objective-C

I don't think I had fully understood what the id pointer declaration in Objective-C (and used everywhere in Cocoa) was until I read on the Unixjunkie's blog an article called id vs NSObject* vs id<NSObject>. If you are trying to become a Cocoa and Objective-C development rock star, required reading.

Friday, March 28, 2008

$100.39 in only 1,307 Days

$100 in only 1,307 days
The first milestone in my blog monetization experiment has been crossed, Google AdSense reports on March 27, 2008 I crossed the $100 threshold for payment and I should receive a check by April 30, 2008.

Thanks to anyone that has ever clicked on an ad on my blog!

Could they market this any better?

I don't think so...

Wednesday, March 26, 2008

Gold bikinis never go out of style: Episode III - Man's Best Friend

What to do when your HD movie rental on Apple TV expires before its time?

A couple days ago, I lost power to the Apple TV after I started watching an HD rental, but before I had finished it. A few hours after I restored power to Apple TV, I went to go watch my movie. The screen said there were 7 hours left until expiration, and I hit Play. A few seconds after I did that, I saw a message that said "media content has expired blah blah blah", and then like David Copperfield, the movie disappeared.

Is this a bug? A hole in Apple's DRM? Who knows. I filed a bug on it, but it's hard to debug because there is no clock on Apple TV, at least none that you can see. From an end-user standpoint, what are you suppose to do? If this had happened to my Dad, there is like nothing in the Apple TV UI to allow you to report problems, which is where it should be. There is probably some paper that offers a support number or something, but I shouldn't have to dig out a manual. I think to understand how this should be, you have to first understand how it currently is.

How it works...

  1. Open iTunes on your Mac or PC
  2. Click on iTunes Store
  3. Click on your account in the top right navigation bar of the iTunes Store
  4. Click on the button
  5. Click on the button
  6. This is the really subtle point, then click on the text next to the item in the Latest Purchase group, or click on the next to a Previous Purchase to you can then click on text
  7. Then you get to choose what type of problem you have and submit your issue

Once you go through this process, I had to wait under 24 hours for a response from iTunes support, which added the movie back into my download queue. From there, I checked downloads on the Apple TV and all was good again. I couldn't find a phone number to call. When I had problems with Microsoft's digital downloads on Xbox Live, at least I could call someone and get immediate help.

How it should work...
On Apple TV:

  1. Go to the Settings menu
  2. Click on Purchases (I just invented this)
  3. See a grouping/listing of different kinds of purchases (Rentals, TV Shows, etc)
  4. Click on the purchase that was problematic
  5. Click the big Report Problem button
  6. See a long list of reasonable problems
  7. Add some notes if you like
  8. Submit

Once you complete this process, you should be able to receive a notification on Apple TV that your problem was addressed, or its status. While you can rent from the couch, eventually at some point you are going to have problems, and while no digital media delivery system allows you to resolve problems from the couch, resolving them on the device is the way it should be.

Gold bikinis never go out of style: Episode II - One Huge Ad

Don't know how I missed this the first time...

Annoyance: Apple TV downloads purchased TV Season episodes in random order

I have talked a lot about Apple TV, and I have explored replacing cable/satellite with an Apple TV. Well, since the Apple TV 2.0 software update came out, the possibility has greatly increased with direct downloads. But so far, there is one very significant hitch, when you download a TV season you have downloaded, the episodes come down in random order! How did this get through QA? Did no one actually buy a TV Season on Apple TV, or think, gee, let's download the episodes in episode # order?!?!?!? The mind boggles...

You say this is just convenience? Try telling that to your wife after you just bought her 20 something episodes of a show she wants to watch. Worse, it messes up the caching. The files get timestamped in the wrong order, so if you use 5 least recent unwatched in iTunes to manage cached files, you get the last 5 episodes of the season. I'll be filing a bug on this in the morning...

Tuesday, March 25, 2008

In response to Ed Bott about the Safari install controversy

I was looking through my Google Analytics logs because I read that Scott Hansleman had just discovered them and I hadn't looked for a while. Then I noticed that I was getting some referrals from Ed Bott and I thought what was that about, so I go to the blog, do some inline searching for references to me, and I see that Ed has called me out, saying I was "double wrong" about how Apple is installing Safari on Windows boxes in his post What Microsoft can teach Apple about software updates. Here's what he said about me:

Unfortunately, some people who spend most of their time in the Apple universe believe what they hear about the monster from Redmond, which leads even very smart people like the normally perceptive Dave Murdock, whose Inner Exception blog is on my must-read list, to get it absolutely backwards: Windows Update (now Microsoft Update) pushes new software on [users], Silverlight is the latest example. That’s wrong. Double wrong, in fact. Windows Update is not the same as Microsoft Update.

I posted this in response:

Ed, This is Dave Murdock @ Inner Exception. Thanks for saying I am on your must read list, but I think you misunderstood what I was saying a bit. Here is what I said (I corrected the typo you caught, thx): "...I think Apple has to more clearly label the two groups of software in that screenshot [the one I presented], upgrades and new installs. I don't care at all that the application itself is called Software Update, Windows Update (now Microsoft Update) pushes new software on users, Silverlight is the latest example." I could have been clearer on the relationship between Windows Update and Microsoft Update. I commented on this on my blog, the gist is I think Microsoft Update should be the default. It's optional right now, but I think that's the wrong behavior. If my mom was still running Windows, I don't think she would understand the nuance here and would want updates to everything from Microsoft right out of the box. Technically, it's just a flag to the Windows Update service that says give me updates for everything Microsoft. On my Windows boxes, one of the first things I do it enable Microsoft Update, so I haven't seen the non-Microsoft Update in years. Microsoft Update does obviously offer Silverlight (just an example) as an optional install. My point is, I think it makes total sense to offer users Updates and New Installs in an integrated place. I don't think, like Apple did in this case, you can just combine both updates and new install into one flat list, clearly that's wrong. I actually want both Microsoft and Apple to take it a step further, and integrate 3rd-party application update management into one combined UI. Why in 2008, do I have to have 42 (a scientific estimate) pieces of update software running on either OS? Why isn't this an API already? I am not looking for something as complicated and restricted as the App Store coming to the iPhone 2.0, but wouldn't an RSS feed do the job?

One more thing, I don't spend most of my time in the Apple universe. I blog a lot about Apple because there is a lot interesting going on with Apple, which may account for the misunderstanding, but I actually spend a large chunk of my time in the Microsoft universe. As for whether the beast from Redmond has mutated into a monster, that's a a topic for another post. I'll say this, both Microsoft and Apple are huge companies with lots of individuals making decisions. It seems like over the last few years, Apple has been making more correct decisions with regard to the markets they operate in and the products they build, and Microsoft not so much. Of course, like in this instance, a company as big as Apple is going to get stuff wrong. What amuses me is that whenever Apple messes up, bloggers in the Microsoft universe fall all over themselves to make sure they document their outrage, because this will be the Apple misstep that proves Apple is no better than Microsoft, as if Apple has to be perfect and if they are less than that, it's OK to stick with Microsoft Mediocrity Edition. The truth is, Microsoft has been messing up for so long and in so many ways, Apple would have to have a near total collapse to equal the ineptitude that Microsoft has been demonstrating over the last few years. I mean, you only have to look at the Xbox 360 Red Ring of Death fiasco to see how bad Apple would have to be to equal Microsoft. I am not saying that this is what Ed did here, I agree with most of what he says, but a lot of the coverage on this issue has been ridiculous.

Sunday, March 23, 2008

Daring Fireball on Paul Thurrott on the Safari for Windows Software Update Thing

John Gruber @ Daring Fireball links to Paul Thurrott on the Safari for Windows Software Update Thing and asks:

Honest question to those who think Apple is in the wrong here: Would it make a difference if the checkbox for Safari were off by default instead?

What I haven't seen mentioned in the sources I have read is how easy it is to ignore Safari 3.1:

That said, I think Apple has to more clearly label the two groups of software in that screenshot, upgrades and new installs. I don't care at all that the application itself is called Software Update, Windows Update (now Microsoft Update) pushes new software on users, Silverlight is the latest example. But I have to think that this has become a controversy simply because it is Apple. By them doing this, they will start to eat into Windows browser market share, even a little bit, and clearly the existing minority but significant Windows browser maker doesn't like that. These apps are free to end users, but that search revenue sure adds up fast. As Gruber correctly points out, during installs or upgrades, on Windows anything goes. You want to install Windows Live Messenger, you get a mess of IE toolbars and other products. Depending on how you get Firefox, get a bundled Google Toolbar. This is all par for the course on Windows.

Tuesday, March 18, 2008

Gold bikinis never go out of style: Episode I - Best Ad Ever

I am not quite sure what this Spike ad is selling, but I like it

Monday, March 17, 2008

How long until our robot overlords control us?

A friend of mine passed along this video of a robot called BigDog, walking like a well, dog, and it's pretty creepy:

(via Gizmodo)

iPhone SDK Thoughts

It's been a little over a week since the iPhone SDK announcement on March 6, and of course I downloaded the SDK. For a good general overview, I recommend reading Kevin Hoffman's take. I have started development on something I have wanted for the iPhone pretty much since it came out. With the economics of iPhone development and distribution through the App Store pretty good, if you have any idea, why wouldn't you?

As with all iPhone SDK developers, we are under NDA and not at liberty to discuss anything we know because of having the SDK. I want to address though once part of the conversation, that moving from .NET and Visual Studio to Ojective-C and Xcode hurts...bad. First, you can't go from a class library/runtime (.NET) to a language (Objective-C). You go from .NET to Cocoa. The language analogy is closest between C# and Objective-C, though of course you can be using any number of languages in .NET, you really only have Objective-C for OS X development in general (though there are some choices), and specifically on the iPhone that's all there is. But language syntax isn't that much of a switch right, the real pain is learning a new framework. That all said, does moving from .NET/C# to Cocoa/Objective-C hurt? Only a little bit, and I believe starting with the iPhone SDK actually makes it easier. How? Because by necessity Cocoa Touch has to be a subset of Cocoa for Mac OS X (Cocoa Click?). The footprint on what you have to know to get work done is greatly diminished. But it's more than that. Interface Builder for Cocoa Touch isn't available yet, so you have to wire up Views to Controllers completely manually. This sounds like a chore, but what I had previously found dabbling with Cocoa on Mac OS X and the whole Xcode tool chain was hooking up views to controllers was the possibly least intuitive bit of the whole experience. That's because with .NET and Visual Studio, you just double-click on a visual control and you end up with an event handler somewhere, no matter what. With Cocoa, nearly all frameworks, project templates, and the tools are built around the Model-View-Controller (MVC) pattern. This is a pretty decent mental departure for .NET developers because with either ASP.NET or WinForms to date (ASP.NET MVC is in beta), neither use a any kind of pattern other than "drop your controls on forms and handle events". Anything past that is really up to the developer to implement. With Cocoa, you really have to understand how the pieces work together before you can build even a crappy app :-).

So if you are a .NET developer and are interested in iPhone development (or Mac development for that matter), don't listen to the fear mongering and dive in. Even with someone that says they "tried OS X development, it was scary", they may not have looking at Leopard, Xcode 3.0, and Objective-C 2.0, when the whole stack saw monumental revisions. One word of caution though, on Mac OS X 10.5 with Objective-C 2.0 you get garbage collection for memory management, on the iPhone, it's the old style release/retain mechanism.

Sunday, March 16, 2008

Another Monetary Experiment: I added a Tip Jar/Donation button

I have advertising on the blog as an experiment in monetization. I write about stuff that interest me when I think I have something interesting to say. I never expected to make money off of it, and certainly didn't start with any way to make money from the blog, but I added Google Adsense ads to see if I would earn some coin for doing what I was going to do already, which was write. By the end of March 2008, or the beginning of April 2008, I will get my first revenue from Google. This is not earth shattering, it will not cover my costs for the blog so far, which are for:

I did some analysis of the posts vs. revenue from 2007, and the one interesting thing I found was that the # of posts did not necessarily correlate to ad revenue:



So it it was more scientific curiosity on blog monetization that I add a Tip Jar via PayPal Donation:

If you would like to give me a, well, tip because you liked what I wrote or it helped you in some way, that would be fantastic. I'll share how that goes at some point in the future.

Thursday, March 13, 2008

Amusing anneceote

I'm in a Microsoft Developer Days event in NYC and watching a recap
slide on MIX '08. We got to the point when PowePoint is supposed to
show an example of silverlight's adaptive video steaming, and is just
doesn't work. Presenter blames it on PowerPoint, not confidence
inspiring...

Wednesday, March 05, 2008

Annoyance: Windows SharePoint Services 3.0 doesn't uninstall SQL Server 2005 Embedded Edition, and how to remove it

I went to SharePoint developer training a few weeks ago, which was a good experience. The class had everything setup to go in VMs to save time, and it wasn't an admin course, but when I went to install Windows SharePoint Services (WSS) 3.0, either I made a mistake or the dialog didn't ask, but somehow SQL Server 2005 Embedded Edition got installed, even though I had an install of SQL Server 2005 installed. So I wanted to take another crack at getting this right. I uninstalled WSS 3.0, and much to my surprise, SQL Embedded was still installed, and with no entry in Add/Remove Programs. I started running through the SQL 2005 Installer, but I got to the confirm dialog without being presented an instance to select, so I bailed on that. Hit Google, and found this by way of James Green's Blog. Here's the command you have to run (on 32-bit systems:
msiexec /x {CEB5780F-1A70-44A9-850F-DE6C4F6AA8FB} callerid=ocsetup.exe
. Jérémie says that was simple, yeah real simple ;-).

Tip: Upgrade to Safari 3.1 Beta to fix NTLM issue

Safari 3.0.4, the latest stable release for OS X 10.4 and 10.5, has a very annoying bug when asked for NTLM credentials. Basically, it sits in a loop and either hangs the browser, or eventually times out with an (I think) 401.1 error. I could reproduce this on 10.5.0, 10.5.1, and 10.5.2. I can't reproduce this now though since I just upgraded to the Safari 3.1 Beta (Seed 9B4021), and the issue has been solved. This has been causing me pain at work because the SharePoint and LiveMeeting sites uses NTLM by default with my Active Directory credentials.

I have no problems with it so far with the beta, actually one less problem than the stable release, and the browser is smoking fast. The WebKit team (rendering engine in Safari on both Mac OS X and iPhone OS X) have been doing an amazing job. The only way I know to get the beta is to signup for an Apple Developer account (entry level is free) and download the bits.

Update:
I spoke too soon. This must be a timing component to the NTLM bug I haven't figured out yet because I saw the issue again today on 3.1 Beta.

Updatex2
The NTLM issue was fixed in either the Mac OS X 10.5.3 or Mac OS X 10.5.4 software update, I can't remember which for sure, but i definitely don't have the issue on 10.5.4.

Tuesday, March 04, 2008

Got AN Xbox 360 back

2 weeks ago (Saturday February 23, 2008) I got AN Xbox 360 back, but it wasn't mine. I got my original Xbox 360 in April 2006, reviewed it on June 21, 2006 and updated my original review on August 03, 2006. I just got back an Xbox 360 with a manufacture date of July 2006! How is this going to solve the Red Ring of Death problem for me long term? Since the manufacturing problems didn't become public until June 2007 (I blogged about a recall in July 2007), how is a 3-4 month newer manufactured console going to solve this problem permanently for me? I think the obvious answer is that it is not, or MS knew long before they said that boxes were breaking. I know people with boxes that died which were made in the timeframe I just got mine from. Unless of course the manufacture date is misleading and the internals are new, but aren't there laws for this sort of thing? I will say this, it is certainly quieter than my original box, like this one is like a jet sitting at the gate, and my original is like a jet at takeoff. Complaints aside, and the reason it took me a couple weeks to post, was that I hadn't seriously exercised the machine until today with a 2 hour Half-Life 2 play session. The box seems fine, and I didn't lose any of my content, I can still access all of it. So no more horror stories, for now, with my Xbox 360.

Nine Inch Nails releases Ghosts I-IV on web, experiment in direct sales doesn't go so well at first

I have made it through one listen to Ghosts I-IV, the new album from Nine Inch Nails. This release is noteworthy for a number of reasons:

  • The first fully instrumental release from the band
  • Their first release without a record label
  • Their first release made available nearly exclusively through their web site (though Trent Reznor has dabbled with direct content releases before
  • Each album is 9 tracks long, so the full release is 4 albums, 36 tracks, for just $5.00 if you want to pay, because...
  • It's also officially available on BitTorrent (at least the first 9 tracks, though it's only a matter of time before the whole thing is up anyway) and the Amazon MP3 Store (though you don't get the extras from Amazon that you do from the band's site for the same $5.00, it's just the music and only 256 kbps MP3s, not even the 320 kbps on the band's site)
  • Ghosts I-IV is not available on iTunes
I have been a NIN fan since high school and I have wanted a purely instrumental release from the Trent Reznor since at least The Downward Spiral (Wikipedia). It usually takes me multiple listens to get into a new NIN album, but Ghosts on one listen is obviously great. If you have ever liked music like this, then you should go get it, especially since it's so cheap or free depending on your disposition.

That said, yesterday when I went to download Ghosts from NIN's site, which was released on March 2nd, the site was crushed. It took a long time to complete the order and checkout process, then when I went to download the album at 8 PM March 3, this is what I saw:

Later, about 9 PM, the server error was replaced with a more friendly message (which I forgot to screenshot), and finally this morning I was able to download the release and the NIN homepage has the following message from Trent Reznor:

Choose your format, and why not on iTunes?
Ghosts is offered in a number of formats:


I really don't understand why anyone would choose the MP3 option here, other than possibly convenience, even that I think is kinda silly. If you get Apple Lossless, you get audio mathematically identical to a CD with no DRM. Once you add the songs to iTunes, you can convert them to either AAC or MP3 by right-clicking on the songs and picking convert, its like 2 clicks to get to either of the lossy formats. Pictured left is the AAC option, the convert choice is dictated by the format you have set to Import music as in iTunes (Preferences -> Advanced -> Importing). Apple Lossless (ALAC for Apple Lossless Audio Codec) is the best possible format to buy in since the tool to convert, iTunes, is so easy to use and a lot of people have it installed. I am sure people could make freedom arguments for FLAC, since ALAC is an Apple proprietary format even though Apple is using the MP4 container format, just not a licensable codec like AAC. But ALAC is the right mix of features/convenience, and since ALAC is DRM free lossless, you can even get the tools to convert to FLAC if you really wanted to. I actually just loaded the ALAC files onto the iPhone, the total was 582 MB and I had the space.

So why not on iTunes? There is literally no music label involved, is Apple holding Trent Reznor and company back from releasing Ghosts I-IV + extras on iTunes for $5.00? Did Apple want more of a cut than Amazon? Did Reznor want to release first on his site before giving iTunes the goods, like Radiohead did with In Rainbows? Would Apple only allowed release in 256 kbps MP4 AAC branded as iTunes Plus? Would Apple offer ALAC too? NIN sure could have used the iTunes distribution network yesterday...

Monday, March 03, 2008

If I were going to buy a gaming PC, this might be the one...

I haven't owned a gaming PC in over 3 years, instead using my iMac, then PowerBook, and finally MacBook Pro, to play World of WarCraft (which I haven't played since May 2007), but if I was going to buy a new gaming PC, this would be it (since it looks like a BattleStar Galactica Cylon):
Asus Gaming PC
Courtesy of Engadget

Tip: See the full description of a movie or TV show on Apple TV 2.0

Apple TV Rental DetailsIn Apple TV 1.0, if a description for a piece of content was longer than the about 8 lines of text the UI would display, you couldn't read the full thing. In Apple TV 2.0, when you get to what I call the detail page on a piece of content (pictured left, courtesy of Apple), then hit the + button, you can see the full description. Pressing the button again cycles to the full credit list, and a third time brings you back to the default combo view. Too bad they didn't add a shortcut like this in the 1.0 style lists. Now if only you could actually read reviews from the detail page...