Stanford iPhone Course Resources

Stanford University’s iPhone course has finished, and the resources for the course have been posted online. Included are the lecture slides as PDFs and code examples.

They’re probably not much use to experienced iPhone developers but might be a good starting point for anyone new to Cocoa and Objective-C.

Twitterlicious 2.0

Its been a long road, taking almost six months of on-and-off work to complete, but now I feel comfortable in releasing the full release of Twitterlicious 2.0. No more betas or release candidates, this is the real deal!

Download Twitterlicious 2.0 final.

A brief recap about Twitterlicious:

Twitterlicious is a small app that makes using Twitter more fun. It handles all the hard work, leaving you to read and write tweets with the minimum fuss. Best of all, Twitterlicious is free!

Twitterlicious 2.0

Compare to how Twitterlicious 1.2 looked.

A big thanks to all the beta testers for all your feedback, you’ve made Twitterlicious into what it is today and its better for it. If I were more organised, I would have a list of all your name, but I think you all know who you are.

Make sure you subscribe to the feed (or a feed for posts only about Twitterlicious), but it would be nice to keep you as a regular reader on Ejecutive.)”: to keep up to date with developments with Twitterlicious and other projects, you can also follow me on Twitter.

After such a long time working on one side project, its left me a little jaded with Twitterlicious, so for now its just going to be minor features and bug fixes (keep those reports and requests coming in). I’m going to focus my attention on going back to my final year of university and some other side projects I have going. I’ve also neglected Ejecutive recently with the frequency of posts, and I have a plan to fix that too, and maybe spruce up the archives a little.

But don’t think for a second that Twitterlicious is dead, I’ve started to look at learning Windows Presentation Foundation, and Twitterlicious seems an ideal candidate to experiment with. So the future is bright.

Change Log

The major changes since Twitterlicious 1.2:

  • Each tweet is now shown in its entirety in the list instead of just showing the selected tweet at the top.
  • The read status of each individual tweet is remembered and displayed, even after you close the app!
  • You can follow people who’ve replied to you and direct messages, as well as the standard friends timeline.
  • Each tweet list is capable of holding the past 50 tweets.
  • You now get automatically notified if there is an update to Twitterlicious.
  • The update text box is resizable and multiline, as is the whole app window.
  • Support for authenticated proxy servers — for the people who are using Twitterlicious on work time!
  • Nifty context menus (right click) in the tweet lists.
  • Tweets now show up as from Twitterlicious on (example).
  • A bunch of shortcuts:
    • Ctrl + W: minimise the Twitterlicious main window.
    • Ctrl + R: manually refresh the lists.
    • Ctrl + K: mark all tweets in the current list as read.
    • Ctrl + Return: send update (same as clicking “Go”).
    • Ctrl + L: opens the link in the selected tweet in a browser window.
    • Ctrl + U: marks the current selected tweet as unread.
    • Ctrl + D: sends a direct text to the selected tweet’s user.
    • Ctrl + E: replys to the selected tweet (@username).
    • Ctrl + B: view the selected tweet in the browser.
    • Ctrl + T: view the selected tweet’s user’s website.

Changes since Twitterlicious 2.0 RC1:

  • Faster and more reliable connection to Twitter.
  • Option to improve friends list update speed by reducing the frequency of the replies and direct message updates.
  • Option to hide Twitterlicious from the Windows taskbar.
  • Option to hide the direct messages list (improves speed).
  • Spanking new about box.

Safari vs Mozilla

Safari with Gmail is just one frustration after another, so I moved to Camino and I never thought I’d look back. But now I use Mailplane to access my Gmail e-mail, and there’s no compelling reason for me to stay on Camino anymore, so I thought I’d give Safari another try as my main browser.


Camino is fast, much faster than Firefox, but Safari is still the fastest. In my unscientific and perceived tests, Safari seems to render pages just a fraction of a second faster than Camino, but its the frequency of the lock-ups I get from Camino — especially when I try to open multiple tabs — is my biggest annoyance with it.


Text rendering in Safari has historically been superior to Gecko, but the new 3.0.3 seems to have taken a turn for the worse. Originally, when faced with a typeface that didn’t have a natural italic, it substituted with an appropriate alternative, which is much superior to Firefox and Caminos method of faking the italics by slanting the roman text.

With the new 3.0.3 Safari, they have reversed this decision and are now faking the italic font. In my opinion this doesn’t look anywhere near as nice as replacing the font, but more importantly the slanted roman Lucida Sans is not as legible as using Lucida Grande Italic:

Safari 2.0: Safari 2.0 Italic Text Rendering

Safari 3.0.3: Safari 3.0.3 Italic Text Rendering

The next version of Camino is supposed to use the cairo graphics library, which in turn can use the newer Core Image instead of the current Quickdraw. This gives all Gecko based browsers — including the next version of Camino — a much better “italic font faker”. In general cairo renders text very well indeed, and a more in-depth look is needed once more stable browsers are released — the latest trunk build of Camino renders all italic text as roman, so currently I’m unable to test it.


After using Firefox with Tab Mix Plus and Safari 3.0.3, Camino tabs feel old and tired. You can’t rearrange them, a huge downer for me as I like to organise my tabs into my own little groups, and there’s no way to configure it to open new tabs to the right of the currently open tab, instead of at the far right.

This isn’t to say Safari tabs are perfect, infact without the add-ons mentioned below it would be almost impossible to use Safari. But with the add-ons I much prefer Safari tabs to Camino or Firefox1 especially with the new feature in 3.0.3 where its possible to drag a tab off into a new window.


Unfortunately for Safari it has a lot of quirks that can’t be solved without third-party software. Fortunately though, there are a lot of add-ons for Safari that makes it — in my eye — bringing Safari to a useable state for my browsing method.

I prefer to have everything in one window, sometimes if you click a link in Gmail, it opens in a new window, even if you Command-click the link. With Saft, you can force Safari to open new links and windows in the browser. For me, this makes it worth its $12 price alone.

Safari has no built-in ad-blocking capability, beside using a custom stylesheet. However PithHelmet makes it a much easier process to add your own blocking rules, and the set of included rules block 95% of the adverts I come across. Its a bargain at $10.

SafariStand is the exception in this list of Safari add-ons, being the only free one. But for me it offers little for me except for syntax colouring in the view source window. However this doesn’t work in Safari 3.0.3 even with the beta version of SafariStand thats compatible with it.

Safari As Your Main Browser

For web designing, you can’t beat Firefox with Firebug, this combination of free software has saved me countless hours, although Safari has something similar, they’ve yet to implement live CSS and HTML editing, which is invaluable when you’re working with complex layouts.

But Safari is an incredibly refined browser compared to the oafish Firefox and, certain circumstances, ungainly Camino, and that is why I use it as my main browser.

  1. They look ugly and the close button is on the right side of the tab, also known as the wrong side.


Twitterlicious is a small Windows app that makes Twitter much easier to use.

Twitterlicious UI

I was impressed by Twitterific, and when working on my MacBook I used it exclusively for reading Twitter updates and writing. But when I’m at work I have to use a Windows machine, and looking around I couldn’t find a Windows Twitter client that worked the way I wanted it to, so I made one myself.

It tries to be as un-obtrusive as possible, hiding itself in the system tray until needed and it’s multi-threaded which allows multiple requests to be sent and received from Twitter at the same time to increase responsiveness.

You can find out more about Twitterlicious and download it for free on it’s project page, and by all means do give me a shout if you have any questions or suggestions.

URL Rewriting with IIS

Scott Guthrie explains the methods currently available to IIS and ASP .NET for URL Rewriting and notes that IIS7 will allow full, extension-less URL Rewriting without a complex ISAPI Filter.

The good news, though, is that IIS 7.0 makes handling these types of scenarios super easy. You can now have an HttpModule execute anywhere within the IIS request pipeline – which means you can use the URLRewriter module above to process and rewrite extension-less URLs (or even URLs with a .asp, .php, or .jsp extension).

Where are the menu bars in Vista?

Shell Blog has the lowdown on how to incorporate new Vista UI designs into your own applications, with the slow death of the menu bar, and the rise of the command module.

One of the first things people notice when they start using Vista is the absence of menu bars. Explorer, photo gallery, media player, and IE all don’t show menus by default and just use the so-called “command module.â€? What is up with that? Do we hate menu bars? And more importantly — what is the guidance that third-party developers are supposed to follow?


After using a computer every day for the past few years, you start developing your own way of doing things, and then it goes from being your own way, to the only way to use a computer. So here are the applications that you have to use to be able to use a computer. Got it?


  1. TextMate. I’ve been moving away from Macromedia Dreamweaver for my HTML and CSS editing, and started to use text editors for a more lightweight experience. I do miss the auto-complete and intellisense though. This is also pretty much the best editor for writing Ruby on Rails apps.
  2. Safari. Nothing really competes it for its speed, and its heavy itegration with OS X. Firefox is too slow, Camino doesn’t really offer any features over Safari, Opera isn’t OS X optimised enough and I’m not really interested in other niche browsers at the moment.
  3. Mail. I love it’s interface and searching ability, but I hate some parts of its IMAP support (like its insistance to use its own deleted messages folder instead of the default one on the server), so I’m considering a move to Thunderbird which has excellent IMAP support.
  4. Adium X. There is no competition to it, in any platform. The 1.0 betas have problems logging back on from standby though, but apart from that a slick application.
  5. Seashore. It’s GIMP for OS X, kinda. I only use it occasinally for some resizing and cropping so I can’t really justify a Photoshop license. Not until a Universal Binary is out anyway.
  6. VLC. It works with many formats, it plays any region DVDs. It just works, and it doesn’t suck like Quicktime. I do have quite a large collections of videos now though, something like iTunes for videos would be nice.
  7. iTunes. I have an iPod, enough said? No? Well it has an excellent library system, and organises my files well. But why doesn’t it get lyrics or album art from the internet when I import a CD? It also constantly ask me to authorise my computer to play the one song I bought from the iTunes Music Store, which promptly led me to delete it. iPod integration is crucial though, I can listen partly to a podcast on my iPod, sync it with iTunes, and then iTunes knows where I listened to and I can continue listening at home. Slick.
  8. Quicksilver. An excellent launcher, but it’s so much more than that. I’ve only gotten around to using it as a glorified launcher though.
  9. Witch. I can finally alt-tab between windows instead of applications.
  10. Azureus. I can’t get Transmission working damnit, but Azureus is probably the best featured BitTorrent client so I’m not complaining. Actually I will: double clicking torrent files doesn’t work, its ugly and a slow piece of crap. I wish I could get Transmission working…
  11. Transmit. It’s numerous awards give testimant to the quality of this application, with FTP and SFTP support (no more command line hell with SFTP), it’s my client of choice. It simply has no competition, even with it’s $30 price tag.


  1. Visual Studio 2005. Nothing comes close to it for .NET development. It has auto-completion, excellent intellisense, code folding, code refactoring and the list goes on. It doesn’t have any testing (unless you plump out for the Team Architect edition, which is worth more than my car), so for that I use NUnit.
  2. Adobe Dreamweaver 8. I’ve still yet to let go of my IDE fetish on Windows, simply because of the quality of the IDEs is staggering (take Dreamweaver and Visual Studio), and the quality of text editors lower than OS X.
  3. µTorrent. A pure Win32 BitTorrent client that runs very smoothly. I didn’t really mind Azureus’ bloat, but the extra polish µTorrent and it’s strong feature set had me sold.
  4. VLC. It beat my previous favourite of BSPlayer as I don’t need to install any damn codecs, and it plays any region DVDs. The interface could do with a revamp though, and it could also do with a library feature.
  5. SmartFTP. Not as good as Transmit, and it crashes more often than I’d like, but it works the best out of all the FTP clients I use. It has a slicker interface than FileZilla.
  6. Notepad++. When I have to use a text-editor, Notepad++ is my one of choice. It’s interface is very dated, and the default font and colours are disgusting. It uses Comic Sans for christs sake! But it has code-folding and proper tabbing support so I’m not really bothered.

Ruby for .NET

RubyCLR is ruby for the .NET framework. You can now create full .NET applications with ruby.

I think it’ll take a lot for me to give up on C# with .NET, but you just have to love ruby.

Music makes good developers

Dave Thomas gives an interesting answer to what he thinks makes a good programmer:

I have seen a strong correlation between people who have some music in their background and programming skills. I have no idea why, but I suspect that some of the areas of the brain that make someone musical also make them good at software development. #

Getting good answers

Mark Ash has some tips on how to get good answers to questions posted on forums and chat rooms.

Warning: require_once(/nfs/c02/h05/mnt/20370/domains/ [function.require-once]: failed to open stream: No such file or directory in /nfs/c02/h09/mnt/20370/domains/ on line 22

Fatal error: require_once() [function.require]: Failed opening required '/nfs/c02/h05/mnt/20370/domains/' (include_path='.:/usr/local/php-5.3.29/share/pear') in /nfs/c02/h09/mnt/20370/domains/ on line 22