OSX 10.5, Time Machine and Linux shared drived

I’ve been playing with Leopard over the last couple of days and just now figured out how to get Time Machine to work with unsupported shared drives (such as those shared by netatalk).

defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1

What this seems to do is to create a sparse disk image on the shared drive, then mount it across the network. It’s not quite as nice as I would like, but it is a start.

Incidentally my inbox has been flooded with emails asking for a Leopard version of my httpmail plugin. I have been looking into it, but as to when I could have something I couldn’t really say.

I’m back :)

In the end I wasn’t offline for very long thanks to the great guys at Internode πŸ™‚
A total of 5 days in all off line.
In the mean time lots of interesting stuff has been happening.
Firstly I’m in the trailer for the Melbourne Internation Film Festival.

Secondly and more imporantly there is the birth of my second child πŸ˜€

Net access

I’m going to be off the net for the next couple of weeks πŸ™

<vader class=“starwars-episode-three, padme-is-dead”>NOOOOOOOOOOOO!</vader>

We’re moving into our new house in a couple of days and since the previous owners moved their phone to a rival phone provider it is going to take at least 10 days to get it all sorted out again.Β  The company in question uses a different technology to do their phone system, and they have a habit of cutting the old copper lines used by everybody else.Β  They’re not supposed to, but they do it anyway πŸ™

It’ll be good for me, so I’m told….Β  I’m yet to be convinced πŸ˜‰

Cocoa WebKit

I’ve been playing with the Cocoa WebKit over the last week or so and have rewritten my blogThing application to use it.Β  So far I’m quite pleased with the way things are coming along πŸ™‚

It lets me do some very interesting things such as paste in formatted text from XCode


//Β  DPKeychain.h

//Β  iSpeak


//Β  Created by Daniel Parnell on 26/07/04.

//Β  Copyright 2004 Daniel Parnell. All rights reserved.


#import <Cocoa/Cocoa.h>

#import <CoreFoundation/CoreFoundation.h>

#import <Security/Security.h>

#import <CoreServices/CoreServices.h>

@interface DPKeychain : NSObject {

Β  Β  SecKeychainRef keychain;


+ (DPKeychain*) defaultKeychain;

+ (DPKeychain*) keychainWithPath: (NSString*) aPath;

– (DPKeychain*) initWithPath: (NSString*) aPath;

– (void) setPassword: (NSString*)aPassword forName: (NSString*) aName andService: (NSString*) aService;

– (NSString*) getPasswordForName: (NSString*) aName andService: (NSString*) aService;

– (bool) containsPasswordForName: (NSString*) aName andService: (NSString*) aService;

– (void) removePasswordForName: (NSString*) aName andService: (NSString*) aService;


Inline image support is also working really nicely πŸ™‚
I still need to get things like automatic link creation working, but that’s pretty straight forward.

To top it all off I’ve also made use of CoreGraphics transitions to make things look a little prettier.Β  That’s been heaps of fun πŸ™‚

CruiseControlRb tray icon for Linux

We installed CruiseControlRb at work recently and we’re all really enjoying it πŸ™‚
The web interface works really nicely, but I wanted more. Under Windows there is a really neat little tool called cctray which shows the status of your build in the system tray. I did a bit of searching about the net and couldn’t find anything, so I built my own.

Here it is cctrayrb.tar.gz


ASP.Net blows chunks

Really big nasty chunks! I guess I’ve been spoilt by working with rails, and to be fair it’s not really ASP.Net I don’t like, it’s ADO.Net. I mean really, who wants to write 12 lines of code to fill a grid with data from a database! 
1. construct a new SqlConnection object 
2. construct a new SqlCommand object 
3. construct a new SqlParameter object 
4. set the parameter name 
5. set the parameter value 
6. add the parameter to the select command 
7. construct a new DataSource object 
8. construct a new SqlDataAdapter object 
9. fill the DataSource using the SqlDataAdapter 
10. connect the DataSource property of the grid to the DataSource object constructed earlier 
11. call the DataBind method of the grid to actually load the data 
12. close the database connection 
I guess it’s all supposed to be used via the GUI editing tools which should build a lot of that stuff for me automatically. I assume the GUI built data binding can handle parameters for the select. 
Another feature of Rails that I’m missing in ASP.Net is partials. I’m using master pages to give me some of the things that I would have used a layout for in Rails, but there doesn’t seem to be anything quite like partials in ASP.Net πŸ™ Fortunately for me it’s a simple application I have to build so there are only a couple of repeated sections of code. 
Also, what’s up with not allowing the TextBox control to be bound to a DataSource? I’ve got better things to do with my time than to write a line of code for each TextBox on my form to fill it with data and another to then put that data back into a DataTable so I can have it saved to a database. 
A word of advice to all ASP.Net developers who read this, don’t use Ruby on Rails. It will only make you realize how bad you’ve got it πŸ˜‰