Archive for 2005

Feeder 1.1.1

Thursday, May 26th, 2005

Feeder IconFeeder 1.1.1 is released today and has a ton of fixes, tweaks and stuff. It’s been surprising to notice how many little bits and pieces have changed in Tiger and some of the problems fixed in Feeder were workarounds that no longer need working around. It also shows what happens when you try to do a release while aiming for a fixed deadline and moving home. 😀

At least the fixes are mostly to do with smaller things – the big and important changes: publishing, templates and enclosure uploading seem rock solid (fingers tightly crossed!).

Feeder 1.1 – Publishing

Wednesday, May 25th, 2005

Two of the most requested features following the release of Feeder 1.0 were .Mac publishing and Secure FTP.

Publishing to iDisk is now very easy to implement thanks to Apple’s DotMacKit framework, although it’s a shame they can’t make the currently private DAVKit framework available for developers to include WebDAV support.
It’s not always understood that Secure FTP is a completely different animal to regular FTP and if you’re not writing your own FTP client, you ideally need an Open Source library to do most of the hard work for you.

Originally I was going to use libssh, but it vanished from the web for a couple of months while I was developing Feeder, so instead I turned to the brand new libssh2 by Sara Golemon. Feeder isn’t using the latest version of this, but will be upgraded to do so in the future after some more thorough testing. This library is not only very good but also licensed under a preferable BSD-style license rather than a LGPL. I like BSD licenses because they pretty much say “do what you want.” I don’t like GPL because it’s too rigid and far too hostile to commercial applications. LGPL is easier on the latter point, but it becomes a matter of principle!

The challenge in Feeder was to make these things fit together. Behind the scenes, when you click Feeder’s Publish button, you invoke one of three completely different file transfer mechanisms, but Feeder behaves the same for them all, with its built in server browser, progress bar, etc.


Feeder Publishing Progress Bar


Also, Feeder 1.1 is much more helpful when you first set up publishing for a feed. I’m not usually keen on assistants because the user never gets to stand on their own two feet, but they have their place and in this case it is more a matter of workflow. Once set up, you see the same publishing panel as when you were setting it up but without having to go through the steps that led you there.

The other big publishing feature is enclosure uploading – a feature mostly useful for podcasters. Drag the file onto the enclosure section of the edit window and Feeder shows a sheet where you can amend and confirm the upload details. Feeder then gets the other attributes (MIME type and file size) and creates a file name for the enclosure based on the filename and upload settings.

Feeder keeps a record of the last time an enclosure file was successfully uploaded and will only automatically upload the file once, although this again can be changed when you come to publish should the file have changed. Another point of interest is when Feeder has enclosures to publish it uploads them first, followed by the feed. This ensures that by the time the updated feed is online, so too are the enclosures it references.

Expect to see more refinement, server integration and publishing options in the future.

Feeder 1.1 – Automation

Tuesday, May 24th, 2005

One irksome thing about creating RSS feeds, as opposed to having them generated by a content management system such as a blogging tool is the laborious text entry required, particularly with URLs. Another thing is repetition. For example, if you have a podcast called “Daily Source Code” and each item in your feed that announces a new show has the title “Daily Source Code for [date]”, it can be a pain to type all that every time.

With Feeder, the aim is to make editing items in your feed as painless as possible. Templates can hold default values and Feeder auto-completes fields from other entries in the feed, just like in a web browser. Feeder will also update publication dates when an item is saved and when the feed is published and Feeder 1.1 will automatically generate GUIDs (Unique IDs).

Unique identification for items in your feed is very important for aggregators (i.e. news-reader apps, browsers, iPodders, etc) to be able to tell when an item has been changed. If no GUID is present, many aggregators try to achieve this by other means. Feeder 1.1 also warns you when you try to change an item’s GUID, since that could cause an aggregator to think the item is completely new and show it as a duplicate. It was NetNewsWire’s Brent Simmons’ posts on his blog that prompted me to implement this.

Just as with autocompletion and automatic dates, Feeder doesn’t get in your way if you don’t want this automation. You can set every item in a feed to automatically generate a GUID when saved (or not) and override this setting on a per-item basis. Feeder can also generate a GUID on demand. To keep the interface sleek, I created a new control to do this (I call it an ActionTextField). Click the gear icon and you see a menu with the relevant commands.

Feeder's Action Text Field

I know you shouldn’t create new controls on a whim but Apple seems to do it all the time and nothing else seemed to fit, apart from a drop-down arrow, which I felt was more appropriate for a combo box (list of values) than for doing this sort of thing. I also considered something like Address Book’s rollover fields, but I know so many people don’t realise what these are for until it’s pointed out I felt something more visually obvious was appropriate in this case.

Another area of automation introduced in Feeder 1.1 is to do with enclosure uploading, but there’ll be more about that in the next post.

Yet Another Reason to Use Feeds

Tuesday, May 24th, 2005

Moving home is a pain and one of the most annoying things at the moment is that I don’t have broadband internet or even a phone line in the new place until the end of this week, so currently I’m borrowing my friends’ internet connection during the daytime and in return I do things like wash dishes, random bits of shopping and, er, provide the entertainment.

Anyway, being completely cut off from the world is not exactly ideal when you run an online business, so I have a backup plan – I use the WAP GPRS connection on my Bluetooth phone as a modem. The downside to this is I get roughly dial-up speeds (48 Kbps) and it costs 0.5 pence per kilobyte. I don’t use it often but I do check emails to make sure there are no crises and hit the refresh button in NetNewsWire.

This gives me much of my dose of daily news and blogs, especially with the feeds that have all the content and not just a summary. It’s also largely a graphics-free, advert-free experience, which saves on those costly KBs.

Feeder 1.1 – Price Hike

Monday, May 23rd, 2005

Feeder 1.0 was $24.95 and Feeder 1.1 is $29.95. There are a number of reasons for this hike, and since there is always a VersionTracker who thinks that software should be cheaper (not that anyone has written in to complain) let me say a few things on this.

Firstly, $29.95 is not much money for something with as many features so well implemented as Feeder; features only possible because someone has dedicated around 6 months of their lives to designing, developing, marketing, supporting and refining it. If anyone out there thinks you release something like this and become instantly rich, you must be joking. I often work about 60 hours a week and earn only half the British minimum wage, but I love what I do and don’t mind being poor as long as I can survive.

Besides, if you run a business, Feeder can pay for itself in no time. RSS feeds almost automatically propagate around the web. My web site alone gets 10 times as many daily visits now as it did before it used an RSS feed for product news.

Another more important reason is the weakness of the dollar. Since the Federal Reserve has flooded the world with greenbacks it’s become much more difficult for foreigners who need to trade in dollars to make a living. I am around 15% worse off now than when I started selling software and some 25% worse off than when I was planning to sell software. I have been trying to bear the brunt of this and do cunning things like have all my web hosting in the US so when my business’s income goes down so do my expenses. However, I can’t make the cost of living in the UK any cheaper – it’s often more expensive that the US and it’s rising all the time.

One answer to this problem would be to move to the West Coast, but unfortunately that’s not going to happen. Another alternative would be to set my prices in Pounds Sterling, but that would upset even more people as the amount moved up and down. Like it or not, the US Dollar is the world currency and one most people are most likely to understand.

And then there is the price the market will bear. Even Feeder 1.1 is cheaper than its nearest competitors on Windows by some $10 to $20, and in balance those applications don’t particularly do anything more for the money and overall, probably less.

The final and most significant aspect of the price hike comes down to support. I work hard to try and answer everyone’s support and feedback emails as quickly as possible – these are my first priority every day – and I will work with people until the problem is resolved. Feeder users get this support for free, whether or nor not they’ve already paid for the software. You’d never get this responsiveness with more commercial applications and while this level of service is customary in the shareware world the rub is that so much of the support I get for Feeder is not actually about the application itself, but RSS in general, recalcitrant iPodder applications and sometimes people’s understanding of HTML amongst a host of other things. I try to minimise this support through Help files and more frequently updated online FAQs all available through Feeder’s Help menu, but not everyone reads these things before they get in touch and not every problem is obvious at the outset.

I’m not complaining – I enjoy all this, but it all takes time and time is money. After releasing Feeder 1.0 I ended up spending most of the first two months doing just such support work full-time, along with a few minor fixes and tweaks. In order to create quality software and provide great support, you’ve got to be able to do it full-time and in order to do that, you need to make a living. One thing feeds the other.

So I want to thank everyone who’s purchased Feeder and for supporting the creation and further development of this great little app. I love you all 😀