More Western Digital Icons

That’s right, I’m home for Christmas and I’ve added some new icons to the set. Just as I promised. The main additions to the set are icons for the WD My Book World line of drives, both vertical and horizontal as always. Unfortunately there are no Vista variants for now, because I don’t have Vista installed at the moment, but if anyone would like to donate copy of Parallels or Fusion to me, feel free.

There have been a few more requests for icons for the set, the obvious ones are the icons for the new style WD My Book drives, I will, all being well, have those added in the next week. I’ve also had a request for icons for the WD Passport drives, I will see what I can do.

You can download the new icons set from here. Check back soon for more improvements.

Setting Hard Drive Icons In OS X

Another day and I’m finally getting around to writing another tutorial. This time I thought I concentrate on something I’ve had quite a lot of emails about, ’you’ve given me the icons, how do I go about using them’. I suppose it’s quite an important thing, if your supplying people with something, to tell them how to use it. (Warning: this is a Mac only tutorial).

In previous version of Mac OS X, before Leopard you could get away with applying HD icons though copy and paste alone, and from that point on everything would work fine. Unfortunately, one of the first things I noticed about applying HD icons in Leopard is that copy and paste gives bad results, especially for the scaled down versions of the icon in the new Finder sidebar.

I eventually found the correct way to apply the icons, it involves a little bit of Terminal usage but don’t be afraid. (I have a sneaking suspicion you may also need the Apple Developer Tools installed, these should have been included on your Leopard DVD). I believe this tutorial also applies to setting HD icons on previous versions of Mac OS X.

The first command we will execute in the Terminal copies the icon resource (.icns file) to the correct place on the target HD. You will need to fill in the paths in a way suitable for your system but you can do this by dragging and dropping onto the terminal window.

sudo cp -f /Path_to_Icon/icon_file.icns /Path_to_Drive_Root/.VolumeIcon.icns

Not too difficult was it. The next line will tell the HD to accept a thrid-party icon.

sudo SetFile -a C /Path_to_Drive_Root

The final line will restart the Finder so you can see the changes.

killall Finder

And that’s it. You should see your new icon in the Finder and the correct scaled down version in the Finder sidebar.

Hope you get it working. Check back soon.

Update: After many emails I have written a small utility called Set Icon that automates this process, if you are not feeling confident with the Terminal commands you can download it here.

Update: I’ve just got my hands on a copy of Snow Leopard and the above instructions still seem to work correctly, happy icon changing.

A Change Of Direction...

A little bit of coding. That’s right I’m re-writing parts of the website yet again, I just can’t seem to keep away from my text editor. The main changes that will be coming are more personalization of the website to give you a feel for who I am. I bet you don’t even know my name, unless that is, you know me in real life.

The first changes will be the introduction of an ‘About’ page. I have already introduced a ‘Blog Roll’ into the sidebar, I also intend to improve the photography page, introduce a ‘Tutorials’ page and improve the general functionality of the rest of the website.

These changes will be implemented over the next few weeks so, check back soon.

Even More Server Issues [Updated]

I have just received an email from my hosting company stating that one of their servers is suffering from problems with faulty hardware. You’ll never guess which server it is, the one that my website is hosted on. They are replacing the hardware tomorrow at midday. Hopefully everything will be stable after this point, but we’ll see how it goes. Please bear with me whilst I sort the website out (in theory it will only be offline for an hour).

Update: I have just received an email stating that the hardware that my website is hosted on has been replaced and should now be stable, as a result of this my website should spend a lot longer online than offline.

Check back soon.

Issue with 1.3 [Updated x2]

I have received several bug reports about version 1.3 of iSyncIt closing after the sync has been completed. I have now narrowed down the cause of this problem and will rectify it ASAP. For the moment you can use the previous version of iSyncIt by downloading it from:

Update: The crash appears only to affect Intel Macs, I’m looking into the issue and hope to have a fix sooner rather than later.

Update: I have now (at least I think) fixed the bug that has been plaguing iSyncIt on Intel macs. The new version of iSyncIt is 1.3.1 and you can download it here.

Check back soon.

New Version Available

Version 1.3 of iSyncIt has been released, this release adds Growl support and will be the last release for Mac OS X Tiger. This is due to the fact I only have one machine for testing and it now runs Leopard. You can download the new version here.

From my preliminary tests iSyncIt appears to work in Leopard, but it will still be undergoing a re-write to take advantage of Objective-C 2.0 and the new Interface Builder palettes. The next release may be in development for a little longer than normal, but I promise I won’t forget about it.

That’s all for now, check back soon.

Server Changes

Well, it would appear I had forgotten a little snippet of information that has been forced to the forefront of my mind over the last few days. My web host had been bought out by another company, everything had been running fine till they initiated a server move a couple of days ago. At first my website disappeared from the internet completely, then it came back, with no content because my host had completely switched systems. If you are reading this then as you can probably tell I have finally managed to get everything working again.

To the users of the website and iSyncIt (Sparkle) I apologize for the last few hectic days. The website and appcasts should, all being well, remain online more permanently now. For the next few hours (possibly days) the photography page is being loaded purely from cache (due to some dependency issues) and changes in my Flickr account will not be reflected on the website.

Many apologies again, I’m hoping the madness will now stop, check back soon.

Hi, Again

After a flurry of activity over the summer it would appear that moving back to university has taken me out of my stride as far as developing and maintaining the website goes. However I am going to try and manage my time better in the coming weeks and increase the activity on the website. Hopefully what I write below will help to clarify this.

In regards to iSyncIt, the 1.3 release is moving on well, albeit a little slowly at the moment, I am aiming to release it within the next week if my workload and university commitments don’t pile up to quickly. In a sort of executive decision I have decided, with Leopard dropping onto my doorstep next Friday that 1.3 will be the last release for Tiger, assuming there are no major problems. My main reason for doing this is that I don’t really have the time to simultaneously maintain two versions of the software, nor do I wish to run two different OSs.

Again, workload permitting, I am hoping to update the Western Digital My Book icon set to incorporate the new style drives that have been announced by Western Digital. It would appear that my current set are quite popular and I don’t want to disappoint.

Finally, the website went through a short migration earlier this week, hence a small amount of downtime (yet again). Everything appears to be working fine, but if you notice some unusual glitches please contact me.

I think that’s about all I have to vent about for now. Check back soon and roll on Leopard.


I am aware that there were a few problems with the website earlier today and most visitors that weren’t downloading files received “HTTP 500” errors. The problem turned out to be a rouge FastCGI process that was created and wouldn’t shut down or handle requests, I have shut the process down manually now and all systems should be running fine.

On another note regarding problems, I have been made aware of a bug in iSyncIt that causes iSyncIt to crash under certain circumstances. I have only had one actual report of this but if you have also being experiencing problems please contact me through the website. Please include details of your system, language etc. in your bug report. I am working on a fix as you read this.

Thanks in advance, check back soon.

Small Update

iSyncIt has been updated yet again, just a few localization corrections, not much else. Download it here.

Check back soon.

New iSyncIt

Well, I’m posting this a little late, I had completely forgotten about posting information about the update on my own website, yet I’d posted on everyone else’s. That’s right iSyncIt 1.2 has been released and as always you can download it here. The main changes in this release are the introduction of German localization, to match this iSyncIt is now bundled with the localized version of the Sparkle update engine. As for interface enhancements the time of last sync is now shown in the menu, this time comes from iSyncIt’s own records rather than iSync’s records. I have also introduced a menu bar icon that changes depending on the current bluetooth status again this is a work in progress but works well if you use iSyncIt to control your bluetooth power.

That’s all for now, check back soon.

Back From My Holiday

Just in case you were wondering why the recently flurry of activity had ground to a halt, I was on holiday. Only for a week, but it was enough to make the website look dead. Anyway I’m now back and working on iSyncIt and another, secret, application. Just a quick update on iSyncIt, thanks to a gracious user there should be a complete German translation included with the next version of iSyncIt as well as some new snazzy menu bar icons / features, I also hope to be creating some manuals / help files relating to iSyncIt and the other items available for download.

Hope this keeps you interested for now, check back soon.

Another Update

I’m pushing them out as fast as I possibly can now. iSyncIt has been updated yet again (download here) to version 1.1. The main emphasis for this version was a revised scheduling system. I was happy with the previous system but after many emails I felt it was necessary to implement a time based system as well as the current timer based system. This new system makes the program much more useable and should cater for the needs of many more people. It may also have introduced a few bugs so feel free to email me with them using the contact form.

My plans for the next release of iSyncIt include a menu bar item that will change depending on the current bluetooth status, unfortunately this requires a re-write of my older, less well formed menu bar code so this release will take a little longer to push out than recent releases, but please bear with me.

Check back soon.

More Java & TextMate [Updated]

Update: Unfortunately this doesn’t seem to work any more.

A while ago I wrote a short post (here) about some additions that I had made to TextMate in order to improve its compiling of Java applications, I had made the changes because I had started programming in Java at university and wasn’t happy with the way that TextMate handled the files. In the post I promised a follow up post detailing some other improvements I had made to the Java bundle, finally, that post is here, sort of.

I’ve made so many changes to various bundles and themes it has become to difficult / long winded to document the changes in a post so instead, I have decided to release the changes as a small download from the website. You can find the files you will need on the relevant software page (this does not work anymore, read the update at the top of the page). The main changes are some slight tweaks of the Blackboard theme, the main theme I use and the addition of some new snippets, the compiling shortcuts from my previous post & some menu reordering in the Java bundle.

Make sure that you follow the instructions on the download page or in the README file when installing the files, I don’t want you to go breaking your computer now.

Sorry for the delay in this one, hope it satisfies you appetite, check back soon.

Using rFlickr

I said it was coming and here it is, my little tutorial on how to use the rFlickr Ruby on Rails gem to create a photography section like the one on my own website. The first thing to note is that pretty much all of the options available in the Flickr API (here) are available for use in rFlickr due to the fact it is all based around XML. There is a laborious process of configuration to go through, however, to make everything work, but once this is done you should have no problems.

Firstly install the rFlickr gem, I should at this juncture note the fact I am primarily a UNIX user so will aim these instructions at other UNIX users, mainly because I don’t know the specifics for Rails installations on Windows. So lets dive in ($ denotes the terminal prompt and \ denotes line continues below):

sudo gem install rflickr --include-dependencies

The second thing you will need to do is make sure you have a Flickr account with some photos on it then pay a visit to and sign yourself up for an API key, once you have generated the key make a note of the key itself and the ‘secret’ that you are given, you will be needing these quite a bit.

The next thing to do is to basically follow the tutorial here, albeit with a few modifications, I have re-written the tutorial in full below.

cd /your/rails/application

To make differences clear the Rails console prompt will be shown as >>, don’t forget to replace the x’s with your information.

>> require 'flickr'
>> API_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
>> SHARED_SECRET = "xxxxxxxxxxxxxxxx"
>> flickr ="/tmp/flickr.cache", API_KEY, SHARED_SECRET)
>> flickr.auth.token
=> nil

The above just sets up your rFlickr object and makes sure that you don’t already have a key.

>> flickr.auth.getFrob

This returns a value that you will need to save somewhere.

>> flickr.auth.login_link
=> ""

Click or copy the link you are given into a browser and authorize the API for usage, don’t worry, we’re almost there.

>> flickr.auth.getToken('that_frob_number_we_saved' )
>> flickr.auth.cache_token
>> exit

Right, this is as far as the tutorial online goes, but there are some other useful steps we need to take to make everything more useable, mainly the moving of the token as the /tmp directory may get cleared by our host.

cp /tmp/flickr.cache /your/rails/application/config/flickr.cache
rm /tmp/flickr.cache

Now we can get onto the actual programming and leave the authentication business behind.

We’re going to need a controller to use, for the purposes of this tutorial I will use a controller named Photography, it should save me some time as that’s what mine is called, the page to be rendered will be called view.

In the file photography_controller.rb we will need the following information, rename as necessary to your application.

class PhotographyController < ApplicationController
  API_KEY = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
  SHARED_SECRET = "xxxxxxxxxxxxxxxx"

  def index
    render :action => 'view'

  def view
    flickr = + "/config/flickr.cache", API_KEY, SHARED_SECRET)
    @photos = flickr.people.getPublicPhotos(flickr.people.findByUsername("YOUR_FLICKR_NAME"))

Then in the view.rhtml that you will have created in your views folder (or at least, are creating now) paste the following code.

<% for photo in @photos %>
  <a href="<%= %>"><img src="<%= photo.url('s') %>" /></a>
<% end %>

And that’s it, your basically done, all the thumbnails will link directly to your Flickr page, easy wasn’t it? The main problem occurs when you load your newly created page, it’s very, very slow, due to the speed of the Flickr API (I think). In order to improve the situation I would recommend using either page or fragment caching, but that will be covered in a future tutorial.

Hopefully this will have given you a few pointers in using the rFlickr gem, read through the Flickr API for more inspiration if you are feeling adventurous. Check back soon.

Update: If you are having problems with Rails 2.0, take a look at this fix.

Update: I have written a new tutorial on caching your photos page, that should speed it up a lot, assuming you are having problems.

Scheduling & Photos

Things appear to be moving along more quickly than expected this week, I posted my main application iSyncIt and the My Book Icons on a few forums and the Apple software website and suddenly the visits to my website have rocketed from 200 a day up to 700 hits or more a day. Not as massive as some websites but it’s certainly an incentive for me to do some more work.

After many requests I have started to implement a more suitable scheduling system in iSyncIt, I added the original system for people that change their calendar and contacts very often but it seems people want more flexibility so I am currently coding something more suitable and user programmable.

Also, partially as an experiment and partially due to me wanting to unify my websites into a single website I have today programmed and uploaded a photography section to the website. This portion of the website showcases some of the better photographs that I take, for other people to see. It has been created using the ‘rflickr’ gem and my Flickr Photostream. I had several problems creating the section due to the lack of documentation for the ‘rflickr’ gem, so I will be writing a tutorial in the coming days to help other people who want to create something similar.

Well, thats all for now, check back soon.

Quick Update

There has been a quick redesign of the caching system behind the website, this means that the cache has had to be cleared. Pages may be a little slow to load for the first time as the website cache is slowly regenerated, the search spiders help with most of the regeneration. Now the problem has been fixed you may also see slightly longer loading times on the AJAX page elements such as the archive, login and live search on the right hand side of the website.

Thanks for your patience, check back soon.

It's Almost Complete

Today I’ve added what I believe are the final touches to the website back end. The main change is that I have finally been able to enable caching fully so the website will run much, much faster and reduce the load on my hosts server.

I thought in this post I had also better explain the architecture of the website and its caching a little bit for other people that would like to write a Ruby on Rails system for themselves. The website structure is based primarily on the 4 sections you can see in the navigation bar at the top of the page plus separate administration and account sections.

Only the 4 sections in the navigation bar have any sort of caching applied to them, all areas of these sections use page caching rather than other forms of caching, as it is generally faster. However in setting up caching I came across the problem of aspects of pages that require regular, specific modification such as the login information on the right hand side of the website or comments in blog pages, remained unchanged due to the cache. I could have sorted this by continually cleaning the caches or using fragment caching, but I wanted the website to be as fast as possible. I got around this problem through the use of AJAX.

All dynamic items on all pages of the website are called using AJAX (with the help of the Prototype framework). When you load the website you may see loading symbols in the “Account” box to the right or where the comments section is at the bottom of blog pages. The information that is called by the AJAX is not cached and is generated dynamically for every user, because the AJAX calls are JavaScript in each page only the JavaScript is cached rather than the visible product of the JavaScript.

With all modern browsers supporting the JavaScript required to implement AJAX calls, I believe this to be a valid way of using Rails page caching to my advantage.

I will write something more in depth soon, for now try for all your caching needs.

Back soon.

The Dark Side

Today I have done the unexpected and moved to the dark side, well, for a few minutes anyway while I release version 0.4 of My Book Icons, the main change for this set of icons is the inclusion of Windows versions of all the icons, including resources for Vista. My main reason for doing this is to give people some consistency between their OS X and Boot Camp / virtualization installations of Windows. But I don’t object to pure Windows users using the icons either, so, anyone that wants them, feel free to download them here.

Now you have recovered from the shock of reading the above I can tell you about a couple of other changes, to the website mainly. In order to try any fund the website and my software / graphics development I have introduced Google Ads to the website, I’m not particularly fond of Google Adverts so I’ve tried to make them as minimal and tasteful as possible, you will only see adverts in the header above and at the bottom of blog and software pages in the form of text ads.

If you like the work I produce I would also like you to consider making a donation using the button to the right (on the website if you are viewing this through RSS), any amount you choose to donate would be helpful to me.

Any money raised through adverts / donations will go towards funding the website and my development of software / graphics. In terms of development the money will be used for my Intel Mac fund so I can develop Universal applications that I can test properly as at the moment all my development is completed on a 12” PowerBook.

Thanks for you time, check back soon.

So Many Changes

Well, it looks like I lied, the iSyncIt release took longer than expected, due in part to my own laziness when it comes to programming but I put the effort in and iSyncIt 1.0 has finally been released. You can download it here.

The main changes to iSyncIt are the removal of the function to remove files installed by versions less than 0.4, the introduction of a preference to change the menu bar icon to one with a little more colour – this is at the request of several people that have emailed me. The final and largest change is the introduction of scheduling for your syncs, this means that you can now tell your computer to sync with your devices every 15, 30, 60 or 120 minutes, it even takes into account your bluetooth control preference. Along with the release of iSyncIt I have also re-vamped some of my smaller applications.

Kill Dashboard, Web Server Management and Kill Front Row have all gone to version 0.2, the main changes to these applications are improved workflow and brand new icons so you can actually keep them in the dock. I’ve also had a little fun with the icons for Kill Dashboard & Kill Front Row.

To continue the theme of making new icons I have released the My Books icons I created for my own external drive to the internet. After very high demand for the icons and a large number of requests I have added the larger My Book drives, vertical versions of the icons and Leopard 512×512 resources to the icon package. You can download them here.

I don’t think I have any other news at the moment, I’m sure i’ll think of something though whilst trying to come up with my next project and more features for iSyncIt. Check back soon.

Brand New Website

It was about time that I got round to doing this and finally it is (nearly) complete. The website has been re-written from the ground up to make it faster and more consistent, my hope eventually being to release the source code for everyone to use.

The primary reason for the re-write of the website is that the previous ‘blue’ website was hashed together from online tutorials, code snippets and myself reading the Ruby on Rails API, it worked okay but was slow, produced frequent errors and filled up my hosting server with logs, I corrected some of this in the back end several week ago but I still wasn’t happy. Hence the re-write.

Techie Bit: Over the course of my coding I have made the website more OO in the background so it is easier to maintain and to add to, also I have added more features to the website, the primary features being better security and the ability for me to categorize my posts, more features will be added over the coming weeks. I have also correctly configured the Rails settings and started to use migrations to manage the database. All of this should serve to make the website faster.

Everything should be in the same link locations as they always were, I did this to make sure that links from other websites still work correctly, if you find something out of place, do not hesitate to contact me. Unfortunately as a side effect of the change, users that have previously signed up to post comments have had their accounts erased due to authentication changes. The website will not be re-written again so it is safe to signup.

Anyways, that’s all for now, hope you like the new website.

I'm Back

I know I haven’t posted for a while but I just got absorbed into Uni, seen as the year is almost over however I thought i’d make a come back, of sorts. Hopefully from now on I will be posting more often and about topics that aren’t limited to my applications and website downtime, which seems to be the only content in my previous posts recently.

Development on my application iSyncIt has started again and it shouldn’t be too long until the 1.0 release is out & working better than ever, unfortunately it do not know what will happen to iSyncIt when Leopard is released, mainly because I don’t know how the Bluetooth framework will work and I can’t afford to get a pre-release of Leopard.

Work on the new website has been continuing and it is almost ready. There is a new look that is not too distant from the current look, however it is a little more readable. Categories and user levels are also supported meaning I can write a support forum for the website.

I will most definitely be posting again soon, so check back.

Possible Outage

On January 28th the website might experience some downtime, the hosting company I use is upgrading its Ruby on Rails installation to the latest 1.2.1 release. The website should work correctly with this version but I thought a pre-warning was in order just in case it doesn’t.

Exams, Exams, Exams

I suppose i’d better start by saying happy new year to everyone that reads this blog. As you can probably tell development is very slow. I haven’t really had much time to do anything as I have had a few computer science exams, the majority of which are still on going. I need to think of something new and interesting to do, something that will hold my attention for more than ten minutes. As soon as I think of something I will give you a heads up, but for now I will sign off.