Sunday, August 27, 2006

Documentation

I like Microsoft's SDK documentation.

Partially, anyway. I don't like the fact that the navigation doesn't work properly on msdn.microsoft.com/library unless you're using Internet Explorer. And often it's difficult to find which section they've hidden something in this week. And often the documentation is just plain wrong. But I do like being able to have everything in one place. And I like that there are overviews, tutorials and examples alongside the technical reference. So you don't just know what classes and methods are available, you also know how to use them. And I know it's not fashionable to like documentation to look nice when you're a linux developer, but I do find that if class documentation is layed out nicely, it makes it so much easier to find what I'm looking for.

I don't know where I'm going with this. But while I'm blogging about stuff, I thought I'd blog this too.

Features appearing overnight

This morning I booted* my machine, and when I pressed Alt-Tab to switch windows, black frames were drawn on the screen so I could see which window would be selected. Which is a really nice feature, and it looks really nice too. But yesterday it didn't do that. I did put a patch on my machine yesterday from SUSE, but it was a minor release so I wasn't expecting any new features.

(* My machine has taken to crashing regularly, so I've stopped using the NVIDIA drivers and switched to the open source nv drivers. But they don't switch my screen off, and I want to save my laptop's backlight - I'm on the third so far - so I'm switching off at night these days.)

The 'amazing' new app

Ok, so I was exaggerating a little yesterday. It's basically some ideas for a backup utility, for which I've started coding the UI a little. At the moment it's in the very early stages of development, and to make it more interesting, I've not done much Qt coding before, although I'm finding that Qt 4 is making software development in C++ much easier and more fun than before.

However, I do have a good idea of what I want the software to do, which is often half the battle won. And here is what I want it to be:

  • A personal backup tool, rather than a system backup tool. That is, it will backup files, but isn't designed to be able to restore a system to working from scratch. It's supposed to be run by a user rather than scripted to run as root.
  • Backup to CD and DVD. Although it might be nice in future to add other backup media to my programme, it won't have any ability to use anything other than CD and DVD media at the moment, and there won't be any kind of plugin interface for other media. I want to get the software doing one job well before I start extending it.
  • GUI based. There are plenty of scripted backup tools around, but I want something which is so easy to use that it encourages people to backup their date regularly. ('People' meaning me.)
  • Robust. If a disc gets scratched, it mustn't make the entire backup set unusable. Only the part which is scratched should stop working.
  • Easy to restore. Now, this is one part of the design I'm not too sure of yet. I'd like to be able to restore backups using standard unix tools. However, I haven't thought of a way to store my backups in a sensible way and still be able to get the data back with standard tools. I might instead write a very simple restore tool which could be used to restore backups when my app isn't available, and include it and its source code on the backup disc.
  • Must backup files straight to CD/DVD without making a local ISO first. I want it to be fast, and work on machines that don't have much disk space. Like some of mine.
  • Needs to make compressed backups.

The programme will keep a record of what files have been backed up, and on which discs they are stored. So when you try to restore a file, it will show you all the copies of that file which are available. You can then choose which version you want (probably the most recent most of the time), and it will tell you which disc to insert. If the disc is damaged and that file is unreadable, it will offer to let you restore a different version of the file, if it is available. It will also mark its local records to say that file is damaged.

I expect I have other requirements too, filed away somewhere at the back of my brain. Hopefully, blogging about it like this will help me to codify what I want.

I am aware of many backup tools out there at the moment, but so far none of them do what I want. If you know of something which does fit the bill, I'll happily stop developing and use it instead. And if you've got any good ideas about how I could progress with this project, I'd also like to hear from you. Once I've got it just a little further I'll put it in KDE's playground.

Friday, August 25, 2006

Amazing New KDE App

So, I've just been out at the pub with Aaron, and I told him about my amazing new KDE app which I've been developing, and he said I should put it in KDE playground and blog about it to get people interested. So I will. Except my wife just got home and I'd rather go out and enjoy the nice sunny day at the moment, so you'll have to wait with baited breath to find out just how awesome and fanatastic my programme is.

Thursday, August 10, 2006

Why I love Calgary

No, scratch that. Make it, 'Why I don't mind Calgary so much at the moment'. And it's basically because I now live in an apartment just a couple of minutes walk away from Tim Hortons, Pizza Hut, Boston Pizza, and lots of other places to get food and anything else in 'uptown' Calgary. I don't know if 'uptown' is a proper term. The only other place I can think of it being used is in 'Uptown Girl'. Anyway, it's what they call 16th Avenue here, which is downtown really. I like being able to walk to the shops instead of driving. Since being in Calgary I've spent far too much of my life driving - and not the fun kind of driving I like to do on winding country roads back in England, but the stuck in traffic in straight city roads kind. So now I can walk down the road, get lunch and sit by the street watching life go by. I don't know if they have wireless, otherwise I could go and work there too. Although I need new batteries - despite having two in my laptop I only get about half an hour out of them combined now.

In other, much more important news: I'm married! I had a great honeymoon on Vancouver Island, and also got to see where my wife grew up near Vancouver, which is about a million times nicer than Calgary, so when we move back here in ten years time maybe we'll go and live over there instead.