MrCeri
Twitter Linked In Tumblr RSS Home Projects Blog About Contact

Backup forecast – still cloudy

It’s been barely a fortnight since I came up with my cloudy backup plan, and already I’ve been tinkering!

I’ve simplified things by removing one of the portable USB drives, making the remaining USB drive the central hub of my digital activity, and by ditching “Remember the Milk”. And if you stand back from your screen, and squint a bit, the diagram looks a bit like a robot with 4 arms and eyes popping out on stalks. No, really, it does!

 

Backup Plan

 

I was once warned that if you play with it too much it will fall off, but I think I’ve finally got it this time. For now. Until next time.

Cloudy with a chance of backups

Ah, personal digital data backup. The technology equivalent of home contents insurance. Pretty boring stuff – boring, that is, until your house burns down, destroying your valuable collection of Barry Manilow LPs, your precious bee keeping magazines, and that photo taken only seconds after you shot JFK from the grassy knoll. (I didn’t even know what a knoll was until JFK was assassinated, let alone a grassy one, but I digress).

I spend waaay too much time thinking about data backups. I have written before about the delight I take in a complex network diagram. Around this time of the year, as the nights draw in and the snow begins to fall, there’s nothing I enjoy more than gathering the family in front of the fireplace with a marker pen and whiteboard, planning our digital backup strategy for the year ahead.

“This year”, I began, “will be all about storage in the cloud”. The look of glee on the childrens’ faces – it was as though Santa Claus himself would be keeping their data safe and secure!

So without further ado, here’s how backups will happen in MrCeri’s world for the foreseeable future:

 

 

Notes

CrashPlan has its own desktop app. Most of the other backups are automated using robocopy in Windows batch scripts. A couple of the backups (such as offsite) are manual.

• Anything vaguely sensitive is stored within TrueCrypt containers (including stuff backed up to the cloud).

• Backups are worthless without a reliable restore process – one of the advantages of this plan is that photos and music are primarily viewed from the NAS drive, which handily verifies these backups. Validation of the other backups is carried out manually (and not all that often).

Remember the Milk seems somewhat superfluous considering I also use GMail (which has GTasks built in) and Evernote (which has good check list support), though it does sync nicely with my phone. I’ll probably ditch it soon.

• The sharp-eyed reader will notice that films are not being backed up. This is because the files are huge, and I wouldn’t lose much sleep if they were lost.

• I evaluated a number of cloud backup services, and eventually chose CrashPlan based on cost and unlimited storage. However, any cloud backup service is hampered by the sheer amount of time it takes to upload the initial backup set, and the corresponding amount of time needed to download any future restores. It will take many months to upload my initial backup set (I’m throttling the bandwidth used by the service to avoid antagonising my ISP!). I don’t expect to access my CrashPlan files often – I see it simply as an insurance policy against a complete disaster (e.g. my house burning down or all my computer hardware getting wiped out by an EMP attack).

• Much as I love a complex backup diagram, I am already planning to simplify this process by using just the one portable USB drive.

Latest freelance project: T&RS Engineering

Life’s been pretty manic lately, a hectic workload at the day-job, a new mini-human demanding perpetual nourishment and shelter, and 3 other hungry humans requiring clothing and feeding on practically a daily basis. What better time to take on some after-hours freelance work!?

The work in question was a brand new website for rail maintenance specialists T&RS Engineering. Phase 1 was a pretty standard brochureware site, but phase 2 will add data capture and reporting features.

The site is built using my old enemy PHP, for the simple and lazy reason that the client already had an existing hosting contract based on the LAMP stack. I did consider talking them into migrating to a .NET solution, but I figured it’s good to take a swim in a different technology pool once in a while. Even if that pool looks very old fashioned compared to where I normally swim, and the water has a stinky odour and unpleasant after taste.

Still, a good workman shouldn’t blame their tools n’ all that, and I’m sure there’s an equivalent saying about swimmers not blaming their murky pools. Probably. Besides, it’s all curly brackets and semi-colons, right? What could possibly go wrong…!?

Mini feed hypocrisy or: how I learned to stop worrying and love the micro-blog

I’ve written before about how I’ve never gotten on with Twitter and its ilk. While I still feel much the same, there have been a number of occasions lately where I’ve thought it would be handy to post a quick link – perhaps to an interesting article or something I’m working on. It would hardly be worth writing a proper blog post for something so brief, and begrudgingly I have to confess that Twitter and its friends are perfectly suited to such a task. I’ve therefore started trialling a ‘micro-blog’ of my own so I can post links, etc, without cluttering up the main blog. These micro-updates can now be seen on the home page, and I’ve also set them up to auto-post to Twitter (like the big fat hypocrite that I am).

(I won’t be polluting the site’s main RSS feed with these updates, but if you’re desperate to subscribe you can do so via Tumblr)

http://twitter.com/MrCeri

SalaryTimer .NET released!

There’s a long and a short version of this blog post.

The short version is: new version of the Salary Timer released for the 2011/12 tax year! Yay! Head over to the Salary Timer page to download. I have also updated the Raise Calculator and Tax Calculator.

The longer version? Well, let’s talk about the Project Management Triangle…

The Project Management Triangle, illustrated to the right, describes the three constraints that affect a project. Just like you can’t change the sides of a triangle without affecting at least one of the other sides (or the area), you can’t change any of these project management constraints without affecting the other two (or the project quality). It’s an over-simplified model, but it still does a surprisingly good job at illustrating the reality of a typical software project.

Lets say you want to add extra features to your project (increase the scope) – that’s fine, but you’ll have to also increase the cost and/or the delivery date. Or, lets say you want to finish your project quicker than planned – that’s fine too, but you’ll also have to increase the cost or reduce the scope. You get the picture.

By now you’re probably wondering why I’m blathering on about triangles when I’m supposed to be discussing the new version of the Salary Timer? Good point.

Ages ago I talked about my plan to migrate the Salary Timer code-base from C++/Win32 to C#/WinForms. I assumed this would be a quick and pain-free task. Hmm…

It turns out there was more code in the Salary Timer project than I remembered. A lot more! And though the code conversion wasn’t all that difficult, it took much longer than I’d anticipated. And some features I simply didn’t want to migrate as they were, so I re-wrote some bits from scratch. Add to that a crazy busy couple of months at the office (working on a new project for Nokia), and suddenly my triangle was feeling the strain…

Now I’m not one for cutting quality, and I was already a month overdue – time to cut features. So unfortunately this new version of the Salary timer is missing the Tax Brackets and Mini-Mode features. I’ve also removed the ability to rename the “Other” break timer. Nothing too earth-shattering, but it’s still a shame to release a new version with less features than the previous one :o(

On the plus side, now that the project has been migrated to .NET it will be much easier to maintain. So adding those missing features, plus a few extra bells n’ whistles, should be child’s play…

Don Knuth and the age of programming

This week I attended the BCS/IET Annual Turing Lecture at Cardiff University, given by Computer Science legend Donald Knuth. Knuth literally wrote the book on computer programming, and, well, Wikipedia and his own website can tell you the rest. The man truly is a living legend.

I attended the lecture for a variety of reasons. Mainly for inspiration. I enjoy what I do for a living, but you can’t rely solely on your day job for influences and motivation. Also because speakers of this authority rarely make it this side of the Severn Bridge (or indeed the Atlantic), so it seemed criminal not to attend! And did I mention it was free?

Anyhow, I felt compelled to write a little note about the experience. Not because of the content (which took the form of a bland, but genial, Q&A session), and not out of any sense of hero worship – I haven’t even read TAOCP, and Knuth’s heyday was a little before my time. No, the main thing I took away from the event was something that wasn’t even discussed (directly). What I wondered was: “What does it mean to be old in this industry?”

Don Knuth is old. Proper old. 73 to be precise. And a fair few of the audience were closer to his age than mine. But he inhabits the academic world, where being old is tolerated (often celebrated) rather than seen as a crime. Is this true in the private sector?

I’ve been a professional software developer for just over a decade now, so assuming I work until I’m 65, this puts me about a quarter of the way through my career. What will the next three quarters hold? Will I be able to continue doing this work, which I love, or will I be forced to make way for a younger breed? Will I still be writing code (professionally) when I’m 60, or will I be forced into management, or another career altogether? How many 60 year old programmers do you know? Do carpenters and plumbers fear the same things? Surely not in their thirties/forties?

Perhaps the youthful nature of this industry is simply a product of the fact that it’s still in its relative infancy – maybe by the time I’m 60 it’ll be common to work with programmers who travel to work on their bus pass.

At the moment I have a pretty good balance of youth, skills and experience, but it’ll be interesting to see what the future holds. I can’t predict next year, let alone a decade from now, so it’s not worth losing any sleep over; this is just a bit of contemplative noodling. But it would be lovely to think I’m still writing code when I’m 73, and enjoying it as much as Don Knuth :o)

Things to look out for in 2011

At the day job our “10 things to look out for in 2010” blog post was so successful that we’ve tried to re-create the magic with a “Things to look out for in 2011″ article (apparently there are more than 10 things to look out for this year). I’ve made another random mix of predictions, though this predicting business isn’t really my cup of tea. Here’s what I came up with:

iPad Clones

2010 was undoubtedly the year of the iPad, Apple managing to succeed with their touch screen tablet device in a market where numerous others had failed to make an impact. My prediction is that 2011 will be the year that iPad clones bring tablet computing to the wider (i.e. cheaper) consumer market, and in doing so, cement the iPad’s position at the top of the pile.

A note of caution though: the current interest in the tablet form factor is reminiscent of the popularity of netbooks a couple of years ago, a market which looks to be in decline. Will the tablet go the same way? Only time will tell. One thing is for sure though – web designers need to ensure their layouts are as flexible as possible to target the multitude of browsing form factors that now exist.

Location, Location, Location

Location aware computing (think Foursquare, Gowalla, Facebook Places, etc) has been around a while, but I predict that 2011 might be the year that it really takes off for mainstream users. In part due to the ever increasing ubiquity of smartphones and the spiralling use of mobile data networks; but also as a result of a more relaxed attitude (not welcomed by some) towards online privacy. I say might because there are many campaigners, vocal and powerful, who would like to see a reversal of this relaxed attitude towards privacy.

Watch this space…

Google Chrome OS

Chrome OS, Google’s new desktop operating system was one of my predictions for last year. Well 2010 is almost over, and still no sign of Chrome OS! It’s currently scheduled for release sometime early 2011, but the more interesting question is how will Google position Chrome OS now that their Android mobile operating system has proved so successful? Many believed that Chrome OS would target the netbook ecosystem, but with touch screen tablet devices proving so popular, doesn’t that make Android the natural choice? And with netbook popularity in decline, will Chrome OS’s market have disappeared before it has even arrived?

Read the full article here.

Not my finest work. I can tell when I’m fumbling around for something to say when I use the term “watch this space”. Urgh. Horrible word-smithery aside, I think these are pretty safe bets. But only time will tell.

Watch this space…

Merry Christmas from MrCeri!

They say a picture is worth a thousand words – I have no idea what this picture is trying to say, but Merry Christmas all the same!

2010 – Where did it all go right(ish)?

It’s been almost a year now since James asked everyone in the office to come up with predictions of “things to look out for in 2010“. We’ll be announcing our predictions for 2011 soon, but in the mean time Steph thought it would be interesting to take a retrospective look at what we got right (and not so right) last time. Here are my bits:

The Prediction: Google phone, Android and Windows Mobile 7

The rumours of the first Google mobile phone are no doubt causing mild palpitations at Apple HQ. Google’s Android operating system is already proving to be the hottest thing since sliced bread with dozens of new Android handsets promised in the first half of 2010. Microsoft will be hoping they can regain some ground with their long overdue operating system Windows Mobile 7, and I don’t expect Apple will be resting on its iPhone laurels either. 2010 promises to be an exciting year for smartphones and mobile web browsing.

What actually happened?

As predicted, Google launched their “Nexus One” mobile at the start of 2010, helping cement the runaway success of their Android mobile operating system. Android continues to go from strength to strength, though some analysts are starting to question whether Android could become a victim of its own success, already experiencing platform fragmentation issues due to its aggressive release frequency. One thing’s for sure, Android is unlikely to stagnate as we move into 2011.

Elsewhere, Windows 7 was generally well received, though it may be a case of too little, too late for Microsoft. Perhaps deals with major hardware suppliers will improve this in 2011. And Apple shows no signs of being left behind, releasing version 4 of their ubiquitous iPhone.

All of this has reinforced the trend away from desktop browsing and towards mobile web browsing devices, be they phones, tablets, or who knows what next!

The Prediction: Silverlight 4

We’re already up to version 4 of Microsoft’s take on Flash (though I don’t think the folks at Redmond like to hear Silverlight described that way!) Until now there’s been no sign of Silverlight upsetting Flash’s position as the ubiquitous technology in this space, but with the hotly anticipated version 4 just around the corner, 2010 might just be the year that Silverlight comes of age.

What actually happened?

2010 saw the final version of Silverlight 4 released to market, and its impact on the wider web has been minimal. Certainly not the Flash killer many were predicting. More interestingly, towards the end of 2010 Microsoft announced that they would be changing the focus of Silverlight development away from the web – an area where they see HTML5 dominating – and will instead be pushing Silverlight in the direction of mobile and embedded operating systems. So while your favourite website may not be using Silverlight today, don’t be surprised to see it popping up tomorrow on your phone, games console, media server, etc.

The Prediction: Chrome OS

Web browser as operating system? For me personally this feels like a step backwards in time, not forward. Anyone remember dumb terminals and mainframes? No? Anyone? Ok, just me then. But if anyone can pull it off its Google, so I’ll be keeping my eye on this. If nothing else it might result in increased usage of Google’s Chrome web browser – yet another platform to test against!

What actually happened?

No sign of the Chrome OS in 2010. Though Google’s Chrome web browser has had a bigger impact than many predicted. Chrome OS is still in development, and promised for 2011, so watch this space…

Read the full article here.

Restore quarantined ClamWin files

Anyone who uses the usually reliable ClamWin virus scanner may have noticed that poor ClamWin threw a bit of a wobbly this week. Our last scan of the office server threw up 657 infected files, some of which belonging to ClamWin itself! Here’s a snippet from the log file:


C:\Program Files\ClamWin\bin\clamscan.exe: Heuristic.Trojan.SusPacked.TMS FOUND
C:\Program Files\ClamWin\bin\clamscan.exe: moved to ‘C:\Program Files\ClamWin\infected\clamscan.exe.infected’
C:\Program Files\ClamWin\bin\ClamTray.exe: Heuristic.Trojan.SusPacked.TMS FOUND
C:\Program Files\ClamWin\bin\ClamTray.exe: moved to ‘C:\Program Files\ClamWin\infected\ClamTray.exe.infected’

Those 657 files were renamed by ClamWin and moved to the quarantine folder. Oh dear.

It turns out this was caused by a mismatch between the virus database produced by the ClamAV team and the scanning software supplied by the ClamWin team (more details here).

So, important question – how to rename those files and restore them to where they belong? Well, hopefully you keep a log file of your ClamWin scans, and if you do, the C# code below will parse the log file and copy the files back to whence they came (if you’re not a fan of C#, this code can be pretty easily adapted to most other languages).

string fileMovedString = ": moved to '";
string logFile = @"C:\ClamWin.log";

// Parse the log file, renaming quarantined files and restoring
// them to their original location.

using(StreamReader reader = new StreamReader(logFile))
{
    string line;

    while((line = reader.ReadLine()) != null)
    {
        if(line.Contains(fileMovedString))
        {
            string originalPath = line.Remove(line.IndexOf(fileMovedString));
            string quarantinedPath = line.Substring(line.IndexOf(fileMovedString) + fileMovedString.Length);

            // Remove the trailing "'" from the quarantined path

            quarantinedPath = quarantinedPath.Remove(quarantinedPath.Length - 1);

            File.Copy(quarantinedPath, originalPath);
        }
    }
}

This worked a treat on our server, but as with any other code you find on the internet, USE AT YOUR OWN RISK!