Thursday 22 January 2009

Anti Virus...

Greetings from Hamburg, Germany...
Over here on business; meeting tomorrow and flying back on Friday.

The good news? I flew from Edinburgh (EDI) to Heathrow (LHR) T5 and from there to Hamburg but, because I still have a BA gold card I got to visit the "First Lounge" for the (ahem) first time. All in all, it was a similar experience to the old T4 First experience but they have a separate area for the champagne bar. And so, this morning, I was relaxing with the Times (GoBama being very appropriate) and some canadian bacon, some scrambled eggs and a glass of Krug.

Where was I? Oh yeah; anti virus products...
A while ago (two years and five days to be exact) I bought a Kaspkersky Protection for Three PCs bundle from PC World. I had my main PC plus the ancillaries so I would easily use the three licences, right?
So, here we are, two years on and my Kaspersky rollout is precisely one. In the meantime, I moved my backend services to Linux, and I installed Clam and AVG and all was good...

Then, yesterday, I got a message that my main PCs AV (Kaspersky) was out of date and that updates were no longer possible.
WHAT? No Warning?
What about my three licences? OK, this is my fault; if I never installed it anywhere else, what do I expect?

I'll tell you what I expect; goddarn warning! I don't expect to go from 100% one day to 0% the next...

So, here's where I'm at...

Clamshell is doing great at protecting my mail server.
AVG does fine protecting my "throwaway" laptops
And I just installed Avira Free on the workstations I care about.

My question to you is this; why should I install anything above Avira for my main workstations?
(Kaspersky fans need not apply)

Saturday 17 January 2009

Blogger.com is not programmer friendly (Updated)

I've been trying to squeeze my ponderings into the blogger.com space and I'm just so....... frustrated....

1) There is no generic code format. I tried to use the quotes but they are just unfathomable.
2) The HTML editor is infathomable. I end up with tiny, tiny, tiny text because I'm not closing quotes correctly. Now, My Google, if I was in charge of the content and I could place my quotes wherever I fancied, then I would buy into that. However, I am at the mercy of your formatting engine (even when I switch to HTML mode) and you still make it unpredictable and unusable...

Update; A workaround has been posted at http://hype-free.blogspot.com/2006/12/how-to-publish-good-looking-code-on.html - I'm not keen on the suggestion that I host the source outside the blog and line to that, but it's still a much better solution that Google's Blogger.com provides out of the box.

Update again; a much better solution is to use Live Writer and a Source Code Formatter plugin - see here for step by step

Sunday 11 January 2009

MythTV and some very old EPIA 800's

A couple of years ago, I thought it would be a wizard idea to buy a bunch of Epia Mini-ITX boards, shoe-horn them into a single chassis, and then set each one to a specific task (file server, uPnP media server, mail server, apache server).
Needless to say, the project never really got off the ground and I'm now running all of these applications on an HP ML110, bought for £95, which is running VMWare Server 2.0 64bit.

So, now, I'm left with four Epia boards that I must be able to find a use for, right?

The plan is... use them as dumbish media front-ends. One in the study, one in the living room and one on the kitchen, all able to surf the web, play MP3s and the odd video. Playing BBC iPlayer and youTube would be a bonus.

Easy, huh? Just download one of the many Linux media front ends and off we go? Nope, because most of them seem to need a 686 level CPU and these old Epias are resolutely 586.
MythDora (based on RedHat) refused to boot, because we were missing some important instruction.
I managed to install MythBuntu, but trying to start the MythTv front-end fails with an "illegal instruction" message. Further investigation shows that the MythBuntu distrib (and most MythTv binaries) have been compiled to require a 686 level CPU.
Not to be beaten, I am now going through the relatively tortuous process of recompiling MythTv for a 586 class processor. I'll let you know how I get on ;-)

Update – now working! Details at Compiling and installing MythTV on a VIA EPIA 800 (586) system

Thursday 8 January 2009

#Architecture

My vote of support for my hobby project is to Billy McCafferty's Sharp Architecture.

The code is at http://code.google.com/p/sharp-architecture/ and the newsgroups are at http://groups.google.com/group/sharp-architecture

If you want to create a project with ASP.NET MVC or NHibernate, then start here!

Backing up VMs

A lot of my production systems (web, email, dev) are now running on VMs.

I've been worried about my belts and braces approach to these VMs and I have now combined a mix of scripting (DOS) and syncing (SyncToy 2.0) to ensure that I have local copies of the VMs that I can restore at a few moments notice.

I'm still working on a few points, most notably the unpredictable nature of PLink, and will post a how to shortly...

Finding duplicate files

At work we have a problem. We've got an expensive Storage Area Network (SAN) which isn't expensive purely because of the servers and disks, but also because we back up a lot of that data every single night.
Now, imagine that (like us) you are an ISV. So, we have a nightly build which results in a code base of around 900MB. Some of these make it to testing. Some of these make it to release candidate and some of these actually become a release.
Our main file server has it's storage on the SAN so even taking into account the fact that most releases never hit the customers, we have issues with duplicate files on the server /SAN. Consider an overnight build...

We end up with a build (21390) in the build area. Good for the Devs....
Testers then copy it to their own area...
It gets released so we maintain a "gold" copy of the released code.
The Service Desk have their own library of released code.

With a typical release, we end up with at least four copies of the 900MB code; auto-build, test, gold-release, support-library.

SAN is one of the most expensive resources that I need to account for, so I looked around for a utility that could help me. I was hampered on a number of fronts;

  1. Vitally, most of the dup utilities did not expect to run against shares with ~100,000 folders and millions of files
  2. They seemed to be aimed at people who wanted to delete dups. I don't want to do that; I want to investigate failures in process and fix that
  3. Their view of a duplicate did not match mine, which is; Suffix, Size, MD5 hash

So, I decided to write my own!

The app searches a folder or share, and then breaks down files into the following sets;

  • All large files (as defined by you, when you run the program)
  • Sets of files that have the same suffix, and are the same length
  • Sets of files that have the same suffix, length and md5 signature

These sets are then displayed in to the user, where you have the option to save the details to a CSV file.

Using this, we have been able to discover duplicate files (obviously) but also failures in process. For example, when files are sent to us as part of a support incident, we were copying them to several different folders. We were also storing builds in one folder and then testing by copying to another. This app identified where people were not following the correct process and were copying files to secondary folders.

You can download the app from here. I'll be posting the source to CodeProject shortly.

S.