60,273 Lines And Counting

May 29th, 2006 by Steve Harris

Apparently, Feeder 1.3.3 has 1,843 more lines of code than RapidWeaver – 60,273 in total. That doesn’t include any third-party frameworks or my own Reinvented.framework, which is generic between my applications (mostly handles software registration and some other stuff, maybe not all used). That framework contains 3,043 lines of code.

Who’d have thunk? OK, maybe nobody but me!

In reality, that sort of difference is negligible. Actually, in reality it’s a completely meaningless figure and subject to many variables, but it is good, clean, pointless fun to find out about this stuff.

For example, such a count could depend on how you do your brackets. I do them on one line unless it’s a method definition, a condition that spans two lines or I simply don’t feel like it:

    if ([name length]) {
        return name;
    }
    else {
        return [[[self localFilename] lastPathComponent] 
                   stringByDeletingPathExtension];
    }

But many people do them like this:

    if ([name length]) 
    {
        return name;
    }
    else 
    {
        return [[[self localFilename] lastPathComponent] 
                   stringByDeletingPathExtension];
    }

So that could add a few thousand lines to my count. 😉

Perhaps more telling is this: Feeder 1.0 was 24,679 lines. How it’s grown!

Appcasting, Sparkle and Feeder

May 26th, 2006 by Steve Harris

A neat use of RSS that I completely forgot to mention in my CocoaRadio interview is appcasting (and I am absolutely kicking myself).

Appcasting is a term coined by Fraser Speirs to describe the delivery of software via RSS. It works the same as podcasting: the RSS enclosure tag is used to point to the downloadable file but instead of an audio file, this is an application.

I’ve been running an appcasting feed for Reinvented Software since releasing Feeder in February 2005. However, the coolest implementation of appcasting in the whole world is Sparkle.

Sparkle is a Cocoa framework by Andy Matuschak that can make applications self-updating, uses appcasting to discover new updates, displays release notes and plenty more. It is made available under a MIT license. Even better, Feeder is recommended in the documentation. 😀

I have been planning to switch my apps over to Sparkle for some time now and it’s next on my list, honest.

Creating an Appcasting Feed with Feeder

To create an appcasting feed you will need to tweak Feeder’s default template a little. Here’s how to create a new feed, whether or not you are using Sparkle:

  • Choose File > New Feed from the menu.
    • Enter the name of the feed (e.g. “Feeder Updates”).
    • Put the URL of your software’s product page in the Link field.
    • Put something appropriate in the Description.
  • Click Continue.
    • With the Default template selected, click the Customize button.
    • Check the checkbox next to the Enclosure fields.
    • Click Save.
  • Click Continue.
    • Check the filename and location of the feed is right for you and click Finish. A new item window will open.

Tip: if you keep a copy of your site on disk, and would prefer to save the feed in the structure of that site rather than in Feeder’s library, use Choose Another Location and select the folder where you want the feed kept. You should also enter a web-friendly filename in this case.

Editing a New Version

Each item in the feed refers to a new version of your software. You can create new items in your feed by clicking New Item in the toolbar.

  • Enter the name of update in the Title field (e.g. “Feeder 1.3.4 Released”).
  • Enter a link to your software’s product page or wherever in the Link field – you need to enter some sort of link or the feed won’t work in Firefox’s Live Bookmarks or OmniWeb.
  • Click the disclosure arrow next to Enclosure field to show the enclosure fields.
    • Enclosure editor in FeederDrag and drop your downloadable file (Sparkle supports zip, tar, tbz, tgz, or dmg) onto the enclosure area to have Feeder upload it when you publish your feed.
    • Alternatively you can enter the URL, click the action menu to the right of the URL field and choose Fetch Attributes from Web (or Fetch Attributes from File if it’s not yet online) to get the type and the length.
  • Enter the release notes in HTML in the Description field.
  • Close the item window to save the item.

You can then either click Publish in the toolbar to upload your feed or if you don’t want to publish your feed with Feeder, the XML file is always up to date on disk – you can just drag the feed from Feeder to your FTP client, command line or wherever to upload.

And if you’re a developer and using Feeder, or thinking of using it, I’d love to hear from you. Leave a comment or email steve at this domain. Thanks!

CocoaRadio Interview

May 24th, 2006 by Steve Harris

Cocoa RadioBlake Burris interviewed me for CocoaRadio and this is now available on the CocoaRadio site. CocoaRadio is a podcast that features interviews with Mac OS X developers from around the world.

During the interview I talk about how I got into Mac development, what I did before Reinvented Software, tell a little of the story behind my apps and all sorts of other things besides.

So, if you want to all hear that plus me laughing nervously, check it out at cocoaradio.com. If you need me, I’ll be hiding behind the sofa.

Join the Podcast Revolution

May 10th, 2006 by Steve Harris
Join the Podcast Revolution

I write podcasting software, listen to podcasts, go to podcasting meetups and all that, but for a while it has seemed like something was missing. I didn’t have the t-shirt!

Well now my life is complete, because I’ve got a “Join the Podcast Revolution” t-shirt from podcastersunite.com. Podcasters Unite is run by John Ong from Ongline Podcast and its mission is to spread the podcasting word.

To help that along, when you check out you can choose to donate $1 to your favourite podcast. In the future John is also hoping to offer t-shirts customised for each podcast.

Check it all out at the Podcasters Unite website.

Voice Candy 1.0

May 4th, 2006 by Steve Harris

Here is something new and different. Voice Candy by Potion Factory is a fun and useful audio recorder with a number of tricks up its sleeve.

Voice Candy by Potion Factory

With Voice Candy you can record your own voice, enhanced with up to 8 different built-in effects, and then use that recording in a number of ways: you can set a reminder, attach it to an email, send it to iTunes and put it on your iPod or just save it to your desktop. You can also extend Voice Candy’s built-in actions with AppleScripts, so the possibilities become endless.

What makes Voice Candy really special is its implementation. It looks amazing, is simple to use and is just dripping in thoughtful touches. Recording can be started and stopped instantly from within any application using a global hot key, reminders can be recurring and Voice Candy can even wake your Mac from sleep to show a reminder.

More than anything, it’s just lots of fun. I know, because I’ve been lucky enough to beta test it for the last few weeks. Go to the Potion Factory website to see for yourself.

Congratulations to Andy and Jin at Potion Factory for such an excellent new release!