- Nov 27, 2007 by the_angry_angel
- Geek, Windows, Work and Mindless Hatred
During the course of work I often come across various Sage products, and usually this ends up with amplified ranting in various IRC channels. For those who are present in those channels I apologise as you've already heard this.
To those who don't know Sage, they're a self titled "leading supplier of business management software and services to 5.4 million customers worldwide". I wouldn't exactly agree.
Many of their programs ignore basic practises for Windows, ranging from demanding write access to system32, to installing 'unused' SQL engines. I say unused, in one or two products they only appear to be used as a network transport. Which is seemingly bonkers if you ask me, especially when the various installers, and "certified experts", create shares also.
In this respect Sage Line 50 HR 2007 is an improvement; to a certain degree.
One of our clients produced the media for Sage Line 50 HR 2007, so I apologise if there's a known problem with the current releases of CDs. However, I shall endeavour as this really pissed me off, and there doesn't appear to be any updates on the official website at all. Sage Support made no indication that any such fixes currently exist.
- If you select a "server" installation you are unable to customise any paths at all. This is one of the few circumstances where I might actually want to customise an installation path. Don't make me work harder.
- If you select a non-"server" installation then you can only customise some paths. Specifically you can only customise an installation path for the binaries.
- The documentation directory only contains an installer for Adobe Reader 5 (no actual documentation). I shouldn't need to explain myself here. It's wrong for so many reasons.
- It demands it must share C:\Documents and Settings\All Users\Application Data\Sage\HR, although you can specific the share name (this really pissed me off). Why on earth am I not allow to configure this path? This appears to be where data gets put (I don't know if this is strictly true at present, since is uses SQL (see below), but even so. That's just shit for data management. Any attempt to reshare another directory with the same share name and removing this one just upsets the Sage HR "server".
- It installs an "embedded" version of MySQL. Ok, so they've gone for a sort-of-open source product here, and that sort of pleases me. However, I am well and truely fed up with embedded SQL engines all over the network. Many of our customers have at least one system on the network with a full SQL engine. I know Sage is perfectly capable of talking to a non bundled SQL server. Look at Sage Line 200/MMS/etc. As a techy this would make me happy. Don't litter the network. Please.
- It fails to install on an Active Directory box with FSMO roles (aka Domain Controller), because it tries to create a local group, failing silently for obvious reasons. The installation then carries on blindly, despite the install log hidden away in the installation target directory stating that it rolled back.
In the end, after trying to manually add the Sage HR server service, and failing (for some reason that I didn't have time to determine), I made a "quick" call to Sage. Sage's advice? To install it on a non-DC box. They're fully aware of the problem and the support staff have to deal with it fairly often. Apparently there's a request in to change the behaviour. Surprisingly Sage Support were actually helpful in this instance, although I did throw "Barbara" off track slightly when I mentioned the install log. She also seemed to be a bit hazy on exactly what a Domain Controller is, but I guess that's not her thing to have to understand, it's mine and she at least made herself clear enough for me to understand what she meant.
In this instance it's rather lucky that the customer does have an additional server they can use for this, but it's not ideal. I'd rather keep on this stuff on the file server (which in this instance is a SBS box).
Perhaps had I more time to play with this I could've sorted it, but I was getting rather annoyed at this stage and just had to move on to other things.
In terms of getting that share somewhere that might not be "forgotten" (we document everything via our helpdesk software, but sometimes the importance of making things easy is useful in a tight spot - if the backup gets recreated, for whatever reason, can I bank on someone including that obscure directory?) a DFS replication to another location may be an option (this has worked for various other products they use that demand a directory in C:\Windows - not ideal on a clustered terminal server environment).
Would I recommend using Sage Line 50 HR? Personally, I wouldn't touch it with a barge pole, from a professional geek point of view. However, as a tool to help out with HR I honestly couldn't compare it with the various other products out there as I've not really touched any HR software since I parted ways from the MoD. However, I may be trying out OrangeHRM for the company at some point soon, so maybe I will have something to compare it with soon.
- Nov 12, 2007 by the_angry_angel
- Geek, Windows, Work and Mindless Hatred
Why is csccmd 1.1 *still* not publically available for download (yes, it is massively different from version 1.0)? I first required this excellent facility a little over 2 years ago now - having used it multiple times to extract files from the CSC since, without having any problems, I can only assume its because its been forgotten. This is a bit of a shame, especially given the amount of trouble I had to get that file officially then, apparently it's even worse now - unless you have no qualms with "other" resources.
Luckily I still had this stashed for such an eventuality that precipated my requirements today. But that's not the point.
- Nov 09, 2007 by the_angry_angel
- Geek, Windows and Work
A few days ago 'Centro' got renamed to the Essential Business Server (EBS). This seems like a bit of a cock up, to say the least.
Maybe I should step back. Not many people are familiar with Centro. I mean EBS. Once upon a time (way back in 1997) there was BackOffice Small Business Server, a product developed by Microsoft for the small business, bundling many of the commonly used features into a nice little product. Over time this became Windows Small Business Server (SBS)*, and all was good (subjective to opinion, of course - but lets not get political).
SBS is the bastard child of the "regular" windows domain, as it provides a single CAL for everything, and is effectively cheaper. Great, except that it has limits - 75 users or devices (dependant on CAL used), only one computer in a domain can be running SBS, SBS must be the root of the Active Directory forest, trusts cannot be setup with any other domains, it cannot have any child domains. Which is a good thing really as 75 users on a single server is getting a bit iffy, especially as companies of this size are starting to use SQL heavily, and you can't use the SBS SQL licence on another machine.
Enter EBS - a product designed to split the roles, much like you would in a "regular" windows domain, across multiple servers. In the case of EBS, it's actually 3. Now here's the problem Microsoft; Essential Business Server. This sounds like a single product, for a single server. Having spoken to some "lesser" technical guys online, who actually weren't aware of Centro, they came to that conclusion. If even average technical users make the assumption that it's a single product for a single server, not a bundle, then how are managers supposed to make this call? Granted Centro, I mean EBS, is still in the realm of having an external IT support team make decisions for you, and no dedicated internal IT roles, but how many SBS deployments are there around that have been deployed internally by someone who has inherited the "part time IT part time something-else" post? Quite a lot I'd imagine, since this is who SBS is aimed at.
Eventually the question will become "How do I transition from SBS to EBS?". Right now it doesn't look like there's been anything announced (or if there has then I've missed it), but I'd imagine that the SBS transition pack will be refactored into transitioning from SBS to EBS, and then we'll see a new transition pack that will take EBS to a standard domain licencing. Hopefully they'll retain a transition pack to go from SBS to a standard domain, but the pessimist in me thinks otherwise.
* There are infact 2 flavours to SBS; standard and premium. In most cases you'll find that people have premium.
- Oct 22, 2007 by the_angry_angel
- Geek, Windows and Work
At work we use Microsoft Virtual Server 2005 a fair bit. In some circumstances, particularly when running a Windows guest, the virtual hard disks can grow exceedingly quickly. Thankfully, there is a provided set of tools to help with this problem. A precompactor and a compactor. You run the precompactor to zero out the free diskspace, you then pause or shutdown the virtual machine and run the compactor.
This is all well and good, unless the virtual machines are running in a production environment and you need to do this at 2am in the morning. Like hell do I want to stay up for that, especially as each stage can take some time, depending on the load on the virtual server host.
Also thankfully it's possible to automate this behaviour (thanks to David Wang, this script is heavily based on his existing work)!
- Copy or make the precompactor available to each virtual guest that you wish to compact
- Schedule the precompact to run using Scheduled Tasks, within each virtual server guest. Allow for at least 2 hours, depending on the size of the disk(s). "precompact.exe -Silent -SetDisks:cde" would automatically, and silently, compact drives C, D and E. Ammend or script as appropriate.
- In the virtual server host you then setup a Scheduled Task to run the script below. "cscript path\to\server\filename.js", ensuring that you edit strServer and arrVMNames as appropriate, and that you leave enough time for all the precompacting to complete
Ensure that the script is run by a user account with the correct privileges.
// Automated VHD compacting
// Heavily based on a script by David Wang, http://blogs.msdn.com/david.wang/archive/2006/04/17/HOWTO-Perform-VHD-Maintenance-Automatically.aspx
// Usage:
// Edit the strServer and arrVMNames variables below, as appropriate
// Schedule "precompact.exe -Silent -SetDisks:cde", where "cde" are the drives to run the precompact against,
// to run a few hours before this script, inside the virtual machines
// Then on the host machine, schedule this script to run (command below), ensuring that there's enough
// time for the precompact to have finished
// "cscript automated-vhd-compact-custom-multiple.js"
// definitions
// amount of time, in milliseconds, that the script should sleep
var GUEST_OS_SLEEP_RESOLUTION = 250;
var ERROR_FILE_NOT_FOUND = 2;
var CLEAR_LINE = String.fromCharCode( 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8 );
var VM_STATE_OFF = 1;
var VM_STATE_SAVED = 2;
var VM_STATE_RUNNING = 5;
var VM_STATE_PAUSED = 6;
// Config
// server that Microsoft Virtual Server 2005 is running on
var strServer = "localhost";
// array of names - each virtual machine you wish to compact
var arrVMNames = ["Standalone - Xenon - XP", "Webserver - Tungsten - 2003 Std"];
var objVS = new ActiveXObject("VirtualServer.Application", strServer);
for (var i = 0; i arrVMNames.length; i++)
{
var objVM = objVS.FindVirtualMachine(arrVMNames[i]);
var task;
if (objVM == null)
{
LogEcho("Virtual Machine " + arrVMNames[i] + " was not found on server " + strServer);
Quit(ERROR_FILE_NOT_FOUND);
}
LogEcho("Selected Virtual Machine " + arrVMNames[i] + " on server " + strServer);
if (objVM.State != VM_STATE_RUNNING)
{
// if the VM wasn't running, then the precompact didn't run,
// therefore there is no point in even running the compact
LogEcho(arrVMNames[i] + " is not running");
continue;
}
LogEcho("Saving VM...");
task = objVM.Save();
WaitForTask(task);
LogEcho("Compacting VHDs");
var enumHardDiskConnection = new Enumerator(objVM.HardDiskConnections);
var objHardDiskConnection;
var objHardDisk;
while (!enumHardDiskConnection.atEnd())
{
try
{
objHardDiskConnection = enumHardDiskConnection.item();
objHardDisk = objHardDiskConnection.HardDisk;
LogEcho("Compacting " + objHardDisk.File);
task = objHardDisk.Compact();
WaitForTask( task );
}
catch (e)
{
LogEcho(FormatErrorString(e));
}
enumHardDiskConnection.moveNext();
}
LogEcho("Compact done!");
LogEcho("Starting up" + arrVMNames[i]);
task = objVM.StartUp();
WaitForTask(task);
LogEcho("Startup done!");
}
LogEcho("Done!");
function Quit(errorNumber)
{
WScript.Quit(errorNumber);
}
function LogEcho(str)
{
WScript.Echo(str);
}
function FormatErrorString(e)
{
return e.number + ": " + e.description;
}
function WaitForTask(task)
{
var complete;
var strLine = "";
var cchLine = 0;
while ((complete = task.PercentCompleted) <= 100)="" {="" strline="CLEAR_LINE.substring(" 0,="" cchline="strLine.length;" )="" +="" complete="" "%="" ";="" this="" should="" not="" exceed="" clear_line="" wscript.stdout.write(strline);="" if="" (complete="">= 100)
{
// delete the % display so that next line is clean.
WScript.Stdout.Write(CLEAR_LINE);
break;
}
WScript.Sleep(GUEST_OS_SLEEP_RESOLUTION);
}
}
- Oct 19, 2007 by the_angry_angel
- Geek, Personal and Work
I started typing this on one of Charles de Gaulle's (CDG) web terminals, only to find that they are the most repulsive device in history. What on earth were they thinking with those keyboards? No tabs? Poor web browser. They maybe designed for heavy use, but they're bollocks - if you're ever there, don't waste your money.
So. Rant over. The big day! I left home for Bristol airport at 4am this morning and got there in one piece to discover that there was a cock up / miscommunication with the booking. In short to even get a flight I had to buy another ticket. I shall be calling easyJet about this Monday. I arrived at CDG in France and picked up my car, a horrible little Peugeot 107 diesel with no grunt. I then proceeded to drive in the wrong direction. 2 hours later I was back at CDG and had come to the conclusion that there was no way I'd manage to do this by myself, with no satnav, in a country I've never been in before, where traffic was up to 10x heavier (thanks to the public transport strikes). I decided to get a taxi - I'm very, very pleased I made this decision as I barely made it in time, with someone who knew where they were going. By this point I'm about £300 up on my original expenses. This is not good and I'm really dreading looking at my bank account at the moment :(
I arrived at Blizzard's building at about 1:45pm and wasn't entirely sure it was the right place. There was a simple logo inside the ground floor. I went up anyway only to be presented by a pair of large, gray, metal doors. I got buzzed in and was slapped with a NDA which I was required to sign, so this unfortunately means that I can't really talk too much about what I saw :( Their offices are very, very nice in comparison to the rest of the building, and it was like walking into a bright sunny day, after months of rain and storm clouds. It was immaculately clean and well kept, and very modern. All locations off the main reception were electronically sealed, and yes as people have said, they do have trophies and statues in reception! The interview lasted about 2 hours, roughly, and was pretty informal and I met a range of people that the person who gets the position will be working with. They all seem like a really cool bunch of down-to-earth individuals, which is pretty cool :D I get to hear the news in a few days / weeks :)
I made my way back to CDG, again via taxi which the lovely Hotel Inn receptionist got for me (the French people are generally quite friendly it seems). Whilst I was waiting for the taxi I had the opportunity to have a wander around Velizy. It's not the greatest place in the world, to put it politely. The traffic on the way back was horrendous, but I was there in plenty of time and I just tried not to nod off in check-in and boarding. Thank you screaming kids. You really helped.
Do I think that all the extra cash was worth it? Hell yeah! I might never get this opportunity ever again - I've seen a small part of the internals of a prominent games company and I've driven through Paris. Plus it's only money at the end of the day; as long as I have enough to survive next month, whatever happens, then it was money well spent.