iPhone Exchange Support

June 20, 2007

The big blog news this week is Exchange email support on the iPhone. Financial analysts say the iPhone is doomed without it, Apple bloggers say you can enable IMAP on your Exchange server, and so on and so on.

There’s a few points I think people are missing though. First, email is only half the issue when you’re talking about Exchange. What makes Exchange impressive in the business world isn’t the fact that it gives you email, it’s how it integrates with calendars, your address book, public folders, and everything else in Outlook. It all tends to revolve around email, but when you’re talking about Exchange there’s simply a lot more to it then that.

Second, yes, you can enable IMAP on Exchange to give your iPhone users access to their email from outside the office. In my opinion though, that’s a terrible way to do it. Not just because it means extra configuration, documentation, changing firewall settings (and all the few select users at your company who might buy an iPhone), but because there’s a much easier and better way to handle this. Simply have the user create a free, web based email account and forward their Exchange email to it in addition to delivering it to their local mailbox. It take literally under a minute to do, and you can take advantage of push email on the iPhone if you use a free Yahoo! account. You could also just forward email to your user’s regular home email, but then you have to worry about them sorting the messages on their home email client, and you lose the push email features. I’ve been doing something similar with my email accounts for the past few months, and it works great; either from your cell phone, at home, or any other PC you may need to use.

In the end though, I don’t think it matters one way or another. Out of all of the users I work with that own an email capable phone, not one has ever expressed interest in using it with their office email account.

VMware Fusion release date announced

June 12, 2007

It looks like VMware Fusion should be available in August, and you can pre-order it now for $39; half off the normal price. Good news for me, since I recently ordered one of the new MacBook Pros and I’m looking forward to finally having some good virtualization options open to me.

VMware Fusion hasn’t really seemed to catch on yet, mainly (from what I’ve heard) because the beta has debugging commands turned on that incur a big performance penalty compared to Parallels. Hopefully this will be solved in the final release. Since I use VMware heavily at work, there’s never been much of a doubt I wouldn’t use it at home on my Mac as well. From what I’ve heard VMware Fusion virtual machines are (or will be) fully compatible with VMware Workstation 6, and that’s something I think will be great if it works well in practice.

WWDC ’07 Keynote Thoughts

June 11, 2007

Leopard: I have a feeling this will be a very significant OSX release. I’m looking forward to it in October.

Games: I admin, I’ve secretly been wanting to play C&C 3. Not that it’s much of an issue with Bootcamp and the new 3D acceleration in Parallels and VMware, but it’s still nice to see a native Mac app.

Safari 3 on Windows: I’ve heard a lot of complaints about it so far, mainly due to the non-Windows style UI. I tend to agree, and I can’t see Safari replacing Firefox on my Windows PCs anytime soon. I don’t think it really matters if it gains any marketshare on Windows though; what’s really important is that web developers can finally test sites in Safari, even if they don’t own a Mac.

The Safari 3 OSX beta, on the other hand, is great. Lots of neat new UI features, and the new WebKit is much faster, even on my aging PowerBook.

iPhone Web Apps: A little disappointing to Cocoa developers, but I guess at least it’s something. Web apps will be able to tie into the phone’s dialing and email features, so it should give potential developers basic capabilities.

I’ve heard some speculation that this is really a stopgap measure until Apple has the time to develop a set of stable iPhone APIs, create a working development environment and emulator, and take care of any hardware and software bugs in the rev A model. I tend to agree; you can’t assume anything about Apple’s long term plans for a device that’s not even in stores yet.

Displaying NSCell subclasses for different NSOutlineView levels

June 09, 2007

Say you have an NSOutlineView in your application that displays objects of a certain type in level 0, objects of another type in level 1, and so on. Although you can just use a standard text cell to display information about these objects, eventually you might want to make custom NSCell subclasses to gain more control over what’s being displayed. This is easy to do, but you will have to subclass one thing; NSTableColumn. The short code snippet below shows the only method you need to override.

- (id)dataCellForRow:(int)row;
	NSOutlineView *outlineView = (NSOutlineView *)[self tableView];
	int level = [outlineView levelForRow:row];

	return ( level == 0 ) ? (id)[self cellTypeA] : (id)[self cellTypeB];

In this example, you’re simply calling an accessor method for cellTypeA or cellTypeB depending on the level of the outline view. cellTypeA and cellTypeB can be whatever kind of NSCell you need, either one of the Cocoa types or a subclass you’ve defined. Since NSCell instances are typically re-used between rows, it’s safe to simply store these two cells as instance variables in your class. If you needed to though, you could create them on demand, or even get them from another part of your application.

When you’re done, drag the header into Interface Builder, click the table column in your nib so it shows up in the inspector, and choose your subclass under Custom Class. Remember to override initWithCoder or awakeFromNib if you’re setting any instance variables, since the default NSTableColumn initializer will never be called if it’s loaded from a nib.

NSTableView works exactly the same way, except you’ll need to invent your own way of determining which cell to return for a row.

Free reading: Missle Gap by Charles Stross

June 08, 2007

Who needs libraries or bookstores when you have the internet?

It’s 1976 again. Abba are on the charts, the Cold War is in full swing — and the Earth is flat. It’s been flat ever since the eve of the Cuban war of 1962; and the constellations overhead are all wrong. Beyond the Boreal ocean, strange new continents loom above tropical seas, offering a new start to colonists like newly-weds Maddy and Bob, and the hope of further glory to explorers like ex-cosmonaut Yuri Gagarin: but nobody knows why they exist, and outside the circle of exploration the universe is inexplicably warped.

I’m a big fan of both the cold war and science fiction, so in my opinion putting the two together can rarely do wrong.

John Gruber on iPhone Development

June 01, 2007

Daring Fireball:

Long-term, within the next two years, if not far sooner, I feel certain there will be various ways for developers to write iPhone software. (In fact, in Gizmodo’s transcript of the same Q&A session with Jobs from the D conference, they quote Jobs’s response to the question of third-party iPhone development as follows (emphasis added): “This is a very important trade-off between security and openness. We want both. We’ve got good ideas, and sometime later this year, we can open it up to third-party apps, and keep security.”)

I’m looking forward to seeing what sort of options start to spring up once the iPhone is officially released. I had a few neat ideas for possible applications back when it was first announced, and I’d still like to pursue those.


May 24, 2007

You’ve all seen CAPTCHAs before, where a form requires additional input from the user to protect itself from automated spam. Here’s a new project from Carnegie Mellon, made by Ben Maurer:

You might notice that reCAPTCHA has two words. Why? reCAPTCHA is more than a CAPTCHA, it also helps to digitize old books. One of the words in reCAPTCHA is a word that the computer knows what it is, much like a normal CAPTCHA. However, the other word is a word that the computer can't read. When you solve a reCAPTCHA, we not only check that you are a human, but use the result on the other word to help read the book!

This is a great idea in my opinion; it finds a use for what would otherwise be wasted effort, and turns it into something useful. Accessibility (which has always been a big problem for CAPTCHAs) seems to be taken into account here as well.

Another good one is on the ridiculous fish blog, which uses a homemade CAPTCHA to calculate pi.

Runner’s Log 1.0!

May 18, 2007

It’s with great pleasure that I announce the 1.0 release of my latest application; Runner’s Log. I started work on Runner’s Log late last fall, when I was looking for the best solution to record distances and times when I went running. Looking at my options at the time, I realized I had a few neat ideas I didn’t see anywhere else, and so I began work on Runner’s Log.

Before posting this I spent a few days trying to think of any advice I could offer other developers, but I think if you spend a little time reading mailing lists and sites like CocoaDev, there’s not much anyone needs to add. Definitely start with a few core requirements, rather than try to come up with a laundry list of features that probably aren’t that important. Even the smallest of applications is going to take a lot of your time, especially when you start thinking about things like designing a licensing scheme, or making a nice website and storefront. Pay attention to your customers, and respond to any questions, comments or complaints they might have. Also try to make sure that all of the features of your application fit and work together in a nice way. Even if it’s something small, like the design of a toolbar icon, if it’s not done correctly it might detract from the genuinely good aspects of your application.

Most of all though, have fun. Take a break from your office desk every now and then and spend some time working outdoors, from cafes, or listening to some live music. It’s how I ended up programming a lot of Runner’s Log, especially parts that were becoming tedious or boring. I genuinely enjoyed working on it, and I hope some of that shows through in the application itself.

With 1.0 out of the way, it’s time to go back and fix some of the minor bugs that still exist. After that, there’s a lot I plan to add in the near future, so definitely check back in the future and send me an email if there are any features you would like to see.

Salling Clicker and the Sony Ericsson w810i

May 17, 2007

I’ve owned a license to Salling Clicker for years, so when I recently bought a new Sony Ericsson w810i phone I decided to see how the two worked together (especially since I can finally use phone events, that control iTunes and other applications when I walk away from the computer or make a call).

There’s a small trick to actually get it working though. At least on my phone (purchased through Cingular), I kept getting a Java security exception when I tried to connect to my PowerBook over bluetooth. After finding a few threads in the support forum, it turns out you can’t send the Salling Clicker application to your phone through bluetooth. Instead, you need to open http://www.salling.com/wap from your phone, and download the application directly from the web. After that, it should work fine.

Coda Release Notes

May 01, 2007

Given the amount of talk about Coda since it was released last week, there’s not much more I can add except be sure you take a look at the 1.0 release notes. Panic is a great company, and they have a great sense of humor as well.

Update: Looks like they’ve been replaced by 1.0.1.

Sony Ericsson w810i Mini Review

April 21, 2007

Last week I bought a new cell phone; a Sony Ericsson w810i from Cingular AT&T. My last phone was purchased years ago, back when even having a color screen was a high-end luxury option, so I’ve been having fun with all the new features on the w810i. In case anyone else is considering using this phone with a Macintosh, here’s a short summary of my experience so far.

Bluetooth Internet

Internet access works great from my PowerBook. Once I paired the phone with my laptop, all I had to do was click the bluetooth menu icon and select ‘Join Network on W810i’. That’s much easier than I would have expected. It’s going to be great the next time I go on vacation; no more trips to the public library just to check my email over the wireless network.

iSync Compatibility

Address Book syncing works, but in a kind of poor way. It’s all done through iSync, and while names, phone numbers and email addresses all seem to transfer fine, the phone itself doesn’t always know how to parse these fields. The biggest issue is with extensions. If I have a phone number in Address Book formatted as (555)555-5555 x555, the phone tries to dial 555 555 5555 555. With the extra three digits at the end, the call doesn’t go through and I receive a recorded error message instead. I guess if I want to sync with Address Book I have to remove any extensions, which is very disappointing.

Although Address Book lets you dial numbers and send SMS messages through bluetooth, these features don’t work with the w810i. I’ve read that there’s an unofficial work-around, but I haven’t bothered with it yet.

iCal syncing also goes through iSync, and although I haven’t used it much it seems to work fine.

File Transfers

File transfers work great using bluetooth. I’ve tested it by sending and receiving a few photos and songs, and I haven’t run into any issues. The phone also comes with a USB cable, but I haven’t found a need for it yet. If you’re going to be transferring a large number of files, I’d suggest buying a card reader for the memory stick (the phone includes a 256MB card). Bluetooth works great, but it’s still a little slow.

Camera Capability

As a camera, the phone is fine. 2MP, autofocus, and it even has a very powerful LED light that works as a decent flash. The shots are a little grainy, but it is a camera phone after all. I took some shots of a band playing in a dark nightclub last week, and they turned out surprisingly good.

Media Player

The FM radio is neat, even though I didn’t buy the phone for it’s media capabilities. The best feature is that when you’re browsing stations, the phone shows you the name of the station along with the frequency. Very useful if you’re traveling and not familiar with the local radio stations.

The music player itself seems decent enough, but I doubt it will ever replace my iPod.


The built-in email application is extremely disappointing. It only supports a few providers (Yahoo!, MSN, and AOL basically), and even if I did use one of them I doubt I’d care too much for the client application. I know you can download GMail and other java clients, but you still lose push email and you can’t replace the big email icon on the main menu with your preferred application.

I’ve also been playing around with Google Maps and a few other java applications, but that’s really getting off the topic of the phone itself.

Feel free to leave a comment if there are any other features I should look into.

Internet Radio Royalties

April 18, 2007

Pandora.com on the new royalty fees:

I'm writing today to ask for your help. The survival of Pandora and all of Internet radio is in jeopardy because of a recent decision by the Copyright Royalty Board in Washington, DC to almost triple the licensing fees for Internet radio sites like Pandora. The new royalty rates are irrationally high, more than four times what satellite radio pays and broadcast radio doesn't pay these at all. Left unchanged, these new royalties will kill every Internet radio site, including Pandora.

It’s bad news if sites like Pandora and Last.FM are forced to shut down because of this; I’ve always thought the concept behind them is great for both listeners and artists.