Swansea was blanketed in snow overnight, and the sight that greeted me when I peeped out from the curtains at 7:30 this morning prompted me to brave the cold to take some photos.
Walking across the crisp and unmolested snow in the almost deserted park was a nice way to start the day, rather than the drudgery of having to haul myself onto campus for lectures.
Click a thumbnail for the full-size view:


The whole gallery is here (generated by the Rather Good f-spot). Comments and critique are both welcome!
I've had my energies focussed on entirely the wrong things recently, it's a habit that I'm finding increasingly difficult to break. I told myself that this year would be different, that I'd focus my time more effectively on the appropriate things (such as that not-so-insignificant entity, University), and here I am, in the third week of term and already struggling to find the motivation to knuckle down and get on with what's important rather than what's fun. It seems like a monumentous amount of effort to concentrate on the first, and only, piece of coursework for longer than 15 femtoseconds at a time. What's infuriating is that even if I don't get any work done, the end of the day rolls around and I've got absolutely nothing to show for all my time spent avoiding coursework. The cycle needs to be broken, I can't continue like this in my 3rd and final year. You'd have thought by now that I'd have the self-discipline to just get on with it, but seemingly I don't. I've become used to settling for second-best, and just floating along without really pushing myself. A 55% average for the past two years might not be considered 'bad', but I know I'm capable of so much more. Time to get my act together.
Readers who visit the actual blog rather than via RSS will notice the rather nice new-look blog theme. It's in keeping with the main site and was (mostly) done by Andy. Thanks Andy. Thandy.
I'm all settled in to the house and it's certainly come to life now that everyone has moved in. Fun times are ahead, I predict :). The kitchen is a little on the small side considering there's 6 of us, but nothing's perfect. The landlord/lady seem to be on the ball as well, which is nice. A few days after requesting a dining table, they arrived with a gigantic refectory-style beast, which has pride of place in the middle of our lounge.
The Great Job Hunt paid off, and I've been offered an evening job at Woolworths... It's only a temporary position, so I'll probably have to go through the whole process again in January, but whatever keeps the wolves from the door in the meantime. I had a group interview today which was a bit scary but I must have done a good enough job of impressing/deceiving (pick one ;)) the interviewers so no complaints there.
This year I'm going to try harder to give my bike the love and attention it deserves, and it's not a moment too soon. 12 months ago (when I started riding it with any degree of regularity) I was fairly routine with the maintenance - a weekly clean, oil and tweaking of the brakes - but it didn't last long and the poor thing has had nothing but maltreatment since last January. It all came to a head this week though, and I've replaced brake blocks, an inner tube, bearings, rear spindle and handlebar grips with about 15 trips to the bike shop. Nothing major, but it still needs work. On the TODO list as soon as the loan comes are the bottom bracket bearings, re-adjusting the gears and an overall clean and grease.
Jen's coming tomorrow, which is going to be good fun, and then on Monday it's Jo's Quarter of a Century Celebrations AKA the Mumbles Mile in wigs. Can't wait. :D
Oh what an exciting life I lead.
My holiday and the Google Summer of Code both ended on the 1st of September, and they were great fun.
I put together the final (as far as being accepted for my SoC submission) release of pyBackPack and it's the best yet.
Screenshots
Changes
- SSH Backups and restores
- When performing a backup, a progress indicator is shown.
- Increments on the restore page are listed most recent first.
Download
.tar.gz:
pybackpack-0.4.tar.gz
SRPM:
pybackpack-0.4-2.src.rpm
RPM:
pybackpack-0.4-2.noarch.rpm
deb:
pybackpack-0.4-all.deb
Update - The RPMs were re-rerolled with fixed dependencies, they should work OK now.
Bugs
If you come across any bugs or problems don't hesitate to get in touch, either by leaving a comment here, e-mailing me, or using the bug tracking system at
http://sucs.org/~davea/trac
Thanks
I'd like to say a huge thanks to Elliot Lee (my mentor from Red Hat) for all his help, guidance and invaluable advice.
Also to Graham Cole (
chckens) and Jeremy Katz for bug spotting, and pointing out some of my slightly weird interface design choices. :)
I almost forgot! My eternal gratitude goes to Jen for letting me take her laptop on holiday so I could work and for putting up with my hacking instead of relaxing by the pool. :D
Of course, it's not finished yet, and all you hundreds of faithful readers will be pleased to know that the future releases of pyBackPack will be documented right here. ;)
Here's the latest batch of updates, nothing too major - a more streamlined interface, better checks on overwriting files, etc.
Download
.tar.gz:
pybackpack-0.3.tar.gz
SRPM:
pybackpack-0.3-1.src.rpm
RPM: again, still on holiday so no RPM. Sorry!
Let me know how you like it :)
Fresh from the shores of Lesvos, I bring you
pyBackPack 0.2.999.
No screen shots this time (I don't think my wallet could handle the GPRS bill :)), but here's what's new:
- Editable backup sets
- Nicer interface for including and excluding files/folders in a backup set
- pyBackPack now uses nautilusburn to provide a much nicer way of writing CDs
- Single-click backup of your home directory to a CD from the main pyBackPack window
Download
.tar.gz:
pybackpack-0.2.999.tar.gz
SRPM:
pybackpack-0.2.999-1.src.rpm
RPM: I forgot to install the right packages on the laptop before I left, so no RPM this time unless someone else is able to build one... :)
Bugs
I've run into a frustrating bug with rdiff-backup - namely that it doesn't like restoring from directories with a '.' character in their name. It throws an AssertionError. This bug seems intermittent, so any feedback you can offer would be greatly appreciated.
Update - The problem disappeared when using pyBackPack on a different machine, so perhaps I screwed up rdiff-backup on the laptop. Ho hum.
The latest and greatest...
Screen shots
Changes
- User interface looks nicer and works a little more intuitively
- Can now restore from any increment, allowing the user to rollback to any point in time where a backup was made.
- Output logs now report something more meaningful
- CD backups/restores are now possible
This in particular needs lots of testing to see how it copes with different hardware combinations. - It's now possible to do multiple backups/restores in the same instance of pybackpack.
- lots of other small improvements
- nb. Network (SSH) code is not yet active, should be done for 0.3
Download
tar.gz:
pybackpack-0.2.tar.gz
RPM:
pybackpack-0.2-1.i386.rpm
SRPM:
pybackpack-0.2-1.src.rpm
As ever, if you've got any comments/questions/suggestions, don't hesitate to get in touch and let me know what you think about the tool. :)
pyBackPack is a user-level GUI tool to back up files.
It is written in Python, uses libglade and GTK+, and interfaces with rdiff-backup.
This is the first release so it's going to have at least 1 bug - your task is to help me find it. ;) I don't think it will chew up your home directory and trash everything, but if it does - sorry!
A few screen shots to whet your appetite:

Download: pybackpack-0.1.tar.gz
If you have any feedback/bug reports, you can either e-mail me or leave a comment here.
Enjoy :)
I just discovered a minor bug in pyBackPack (as it's now called):
- A user wants to backup her Firefox settings - so creates a backup set that just contains ~/.mozilla, and does a backup.
- Something screws up Firefox's settings, so the user restores her latest .mozilla backup to her home directory.
- The user then wonders where the hell the entire contents of her home directory have gone, and why only ~/.mozilla is left.
Whoops. Might need to fix that one before I release ;)
The Summer of Code is turning out to be pretty exciting stuff, and my project is progressing rather nicely. So far I've got a nice GUI written that can actually perform backups although there are a few major bugs that need fixing before I do a release (not to mention that being able to restore data might be nice ;)).
Integrating with rdiff-backup has been easier than I'd imagined, however its tendency to spew a fatal error and shutdown Python rather than raise an exception is frustrating.
Note to self: When messing around inside the PC case, try not to get cables jammed in the CPU fan. If they do get caught up in the blades, it's generally a good idea to notice and rectify it.
Several issues I've been meaning to blog recently:
Death
A work colleague of mine died on Monday. He was driving back from delivering something to a customer and suffered a heart attack. He was 46. As far as he (and the rest of us) was aware, Tim was in reasonably good health, so it's a big shock to everyone. I wasn't at work on Monday, but I can only imagine how difficult it must be to have been laughing and joking with him in the morning and to have lost him just a few hours later. His wife is only 33. It's a sad event when anyone dies, but for such a young family to be left behind is tragic. Needless to say, there's been a sad atmosphere at work, but the attitude of some customers is unbelievable. A man on Tuesday couldn't believe that we were unable to deliver a couple of items on Wednesday. Even when he the circumstances were explained to him he insisted that he needed them for a gift. Much to his chagrin and our relief the idiot left empty handed.
Music
Impulse buying is fantastic - I heard Plump DJs for the first time in FOPP on Monday and bought the CD while I was in the shop. Dance/Electronica is fairly far removed from my usual listening habits but the funk grabbed me and I've not stopped bouncing since. What is mildly annoying is that my brothers have latched on to it (as they seem to with most new music I pick up) and insist on playing the damn album on repeat. Also worth a mention is the new Finch album - I love how they've stuck to their guns and moved away from the mainstream sound and stayed true to what they want to do rather than bow to the record company's wishes. At the very least, they give a good impression of being able to do just that. :) Going in the opposite direction, Funeral for a Friend's new stuff doesn't have anywhere near the same kick as their last disc (which in itself was a step down from the raw hardcore sound they had before they signed to a major). Trivium and Avenged Sevenfold have also been assaulting my aural passageways and inspiring me to get a proper handle on how to use the double bass drum pedal properly - I swear some of these guys have 8 legs or something.
Games
I've been getting into Grand Theft Auto: San Andreas and it's brilliant. Rock Star have really outdone themselves this time; the game is a thing of beauty. The story, the city, everything (so far) screams with attention to detail that I've not seen for a long time. Top notch stuff.
Code
I've been hacking on the SUCS Blog on and off since the exams have finished, it's progressing nicely. I read a few articles on AJAX which all seemed to be Ruby-related so I decided to pick that up. However I soon dropped it onto the backburner when I realised that the backend language was pretty much irrelevant. Javascript seems to get quite a bad rap, but it's actually damn useful. I've been careful to include backwards compatibility for browsers with disabled/absent JS support. The more I use AJAX, the more I think I'd find a custom library to handle it all generically quite handy, so that'll be something to code up at some point. The hyperbole has slowly been building up over the course of this entry, so here's the big one: I've been accepted on to Google's
Summer of Code program! W00t! They had some 8700 applicants and 400 spaces, so I'm dead chuffed that they picked me. The application I wrote is
here. There's a crap load of paperwork to wade through in an attempt to pay the least amount of tax possible, but either way it's going to be an amazing experience and will no doubt put me in good standing for 'real world' programming.
Planet SUCS to the rescue! I screwed up and forgot to back up my blog from the server in Swansea before Steve pulled the plug, oops!
I've moved Dave's Grumblings permanently(ish) from Wordpress to the new SUCS Blog system we're working on, hence the new layout. I managed to salvage the majority of the old entries from Planet SUCS though, which was rather lucky.
Please test everything and try and break it :)
Post comments too! I've added all sorts of
AJAX niceties, so knock yourself out with it.