No Regrets
This is just a brief follow-up to my previous post on the keyboard I bought.
I've now had the chance to use it a fair bit, and I thought I'd give you a small summary based on my experience.
- It rocks.
- It's better than I had hoped.
- It is sex on a stick.
Buy one. Now.
That is all.
Another New Keyboard
A little while ago I posted about some new hardware that I bought. In that update I mentioned that I'd bought a new keyboard because my old one was a bit shaky and had the old UK layout which was no longer valid since I have now returned to Australia.
A Hardware Update
As I mentioned in a previous post, I have been getting tired of the keyboard that I have at home. I've had it since December 2004, and it's well past its use-by date. I bought it while living in the UK and hence it has the UK keyboard layout. This was fine while I lived in the UK, but has been a nuisance since being back in Australia. Every other keyboard that I use has the US layout. So every time I come home I end up making mistakes while typing because keys aren't where my head thinks they are! Aside from the layout issue, some keys were starting to get a bit dodgey and were failing to recognise keypresses.
Reactivate? AGAIN!?
This is just a quick post to say how much Microsoft and their draconian OS licensing mechanism are pissing me off right now.
Last week my computer stopped booting. I didn't get around to looking at it until a few days ago because I had visitors over from the UK. Not just that, it is Christmas, and the last thing you want to be doing on your Christmas break is to be fixing computers.
A Quiet Purchase
Yesterday I bought something that I know I should have bought a long time ago. In fact, I should have bought it at the same time that I bought my video card. In case you didn't know, the stock fan that comes with this video card is by far the noisiest ever. It's the loudest in their line of video cards, and I think it might even be the loudest across all cards. I admit that I didn't know that it was going to be that noisy when I first bought the card, and I was disappointed to find that it made all my other efforts to make a quiet case pointless
Without the video card, it was hard to tell if the PC was on! With the card, it sounded like a jet engine waiting to take off.
The solution: Zalman VF900-cu.
When I installed it last night I was beyond happy. The quiet HSF, quiet case, and the quiet case fans were in blissful silence alongside this masterpiece. My case was silent again! This piece of kit is fantastic. Go get one if you need peace
Is it Becoming Illegal to do Anything?
I can't help but feel that over time the world is getting harder to live in. To be a bit more precise, it's becoming very difficult to do anything at all for fear of putting yourself in the firing line, or on the receiving end of a law suit. Two things that have caught my attention over the last couple of weeks which have really annoyed me. One of them is down to the frustration I feel when people are trying to get something for nothing, and the other is down to annoyance at regulations that are put in place which are just totally ridiculous
The first thing was the news that there's a class action lawsuit against Nintendo due to the apparently insufficient quality of the straps that hold the Wiimote on the wrist. After I first read this I decided to do a bit of research into the cases where people had lost their grip, snapped the band and witnessed the Wiimote flying through the end and breaking either something expensive, or someone's face (or both!). In every case, the person's actions have been incredibly excessive. Sure, the Wiimote no doubt gets you going. It's easy to get caught up in the moment and let excitement get the better of you. But to swing that controller that hard while expecting it to stay in your hand makes you (the user) a complete tool. Instead of just easing up a little bit and admitting that they've gone over the top, the users are now saying that it's Nintendos fault, and in the classic American tradition, they're suing.
The second thing that's got to me is the new Aussie rule that states that you're no longer allowed to link to copyrighted material. I'm not sure how broad that rule actually is, but it does sound like you could end up with someone suing you for linking to their blog post, their home-made video, or whatever it is that they've put online - even if you've helped increase the traffic to the site. I'd have sent you a link to the original SMH article, but I wasn't sure if that was legal. Let's be honest, if the rule is that broad and you can't even point people at a newspaper article, the world is going nuts. The original idea of hypertext linking is now being threatened - as you're no longer allowed to use them! Sure, link to pages in your own site, link to Google, and tell them what to search for. That should be ok. But direct linking looks to be a no-no.
Total and utter crap. The world is going nuts! If we keep going at this rate it's going to become illegal to do anything other than read emails - and considering the amount of SPAM that's buzzing around the Internet the value of that doesn't look too good. We're going to have to nip this shit in the bud before it goes too far. Not only will it stop the open communication and information sharing mechanism that the world is, but the threat of being sued will prevent people from innovating - that's not the kind of world I want to live in.
Dual-Screen Development
As it tends to be with many things in life, I just didn't see the need for multiple monitors until I had the experience myself. Up until my time at the game dev studio in the U.K. (which will remain anonymous :)), I had no idea what it was like to work on a machine that had more than one monitor. Within a week, there was no going back!
Those of you who use at least two monitors for day to day work will know what I'm going to say in this post - those of you who don't (and in particular, never have done) should listen and listen good! Because the joy and productivity increases are just awesome.
Here's a shot of my current desktop - including the newly purchased Samsung 204B LCD monitor which is this years Christmas present to me from Amy, aren't I lucky!
One of the good things about this is that it's forced me to clean my desk up, but that's only a small win compared to the others
So what is it about having more than one monitor that makes working a joy? The first thing for me is screen real-estate. Now some of you guys who have one extremely large monitor as opposed to two smaller ones will be saying "we get that too", and yes you do, the stuff that you don't get I'll be talking about in a minute
When you're developing any form of application being able to see lots of information on screen at once makes your life a lot easier, particularly when you're debugging code. The amount of information you need and have available vary depending on the language that you use, but for my example I'm going to use my language of preference, C++, writing my software of preference, games.
If you're debugging games, you may (or may not) want to have the following information available:
- Call Stack
- Watch Window(s)
- Memory Windows
- Registers
- Source Code
- Machine Code (ASM)
- Solution Explorers
- Breakpoint Listings
- ...etc
You get the point. There's a LOT of information you can have on screen at any given time, and being able to see what you need at any given time is great. Try fitting even half of that stuff onto a single monitor! It's a tough job. If you have a massive monitor, then it's a bit easier, and easier again if it's widescreen.
So, that just caters for your dev environment. What about the software itself!? You need to see that running while you're debugging - if you're writing PC games, you don't want to have to debug in windowed mode as it's not really a great reflection of how things will run when you're running fullscreen - so you should really debug fullscreen. With a single monitor, not possible. With dual, totally possible.
Bear in mind that most other people have lots of other stuff running too - all fighting to get a piece of that hard-core on screen action:
- Web Browser(s)
- Instant Messenger(s)
- File Explorers
- Terminal Windows
- ...etc
Another thing that I consider to be tres bon is the ability to have what appears to be multiple OSes running at the same time but on different monitors. I am, of course, talking about sticking an install of *choose your operating system* running inside a Virtual Machine. Fire up your virtual machine, drag it onto the other monitor and maximise - viola! You have two computers running at once (effectively ;)) and they each have their own totally viewable desktop (without the pain of having to switch). It's a joy to behold!
Once you've experienced multi-monitor dev, you'll never want to go back to a single monitor. To me it's like going back to dial-up when you've had broadband - it's just not possible!
What do you guys think?
All joking aside, I have to have a Wii
I've been a gamer for a very long time. My interest in games is what launched my programming career, and as a young kid I used to spend hours trying to figure out how those games worked on my Commodore Vic 20. Peeking and Poking was as far as I got in those days, but the interest has been around since. For many years I worked hard to try and get a job in the games industry, and with the industry here in Australia being quite hard to get into I decided to head to the U.K. where there are more developers and a bit more opportunity to get the foot in the door. After contracting for a year to build up some funds (Australian dollars don't do so well against the Pound) I ended up working for a game company in Guildford. I don't think I've ever had so much fun at work, and just between you (the rest of the world) and me, there are quite a few things I miss about that job. I have talked in the past about finding people who are good, and one of the things I failed to mention (because my list was far from exhaustive) was passion. While there are people in any industry that lack passion for what they do, you can't help but feel that the greatest concentration of passionate developers lies in the realms of games development.
That little blurb isn't really necessary reading for the purpose of this article, I guess I just wanted to let you know that I have a bit of a background in playing, and building, games. I'm sure that many gamers out there will agree with me when I say that it's getting to the point now where there are so few titles being released that really push the boundaries of gameplay. There are a s**tload of games released all the time, most of which suck (either fully or partially). To be honest, I don't think there's a game on the planet that doesn't suck in some way. The thing is, in my opinion, the amount of suckiness (let's call it suckage to keep with the gaming theme) in games is going up and up. Suckage is increasing rapidly, and I've been finding it hard to get excited about new gaming technology (such as the next-gen consoles) and the games that will be running on them ...
... until today!
Well that's not 100% true, I have in some ways been excited, but not to the same extent as the excitement I felt today. The reason is because of the shower of gold that is known as the Nintendo Wii. I have been keeping tabs on the situation surrounding the Wii ever since Nintendo first announced that they were going to be making a next-generation games console, which back then was codenamed the Revolution (which, in my opinion, they should have stuck with - but I'm no marketing genius :)). There's been quite a bit of speculation about how good or bad this console is going to be, and lately it has really been under fire - not just because of it's name.
The first thing geeks do when they hear about new hardware is look at the tech specs and compare to either what's on the market already or what the product is going to be competing with. I'm not going to list all the specifications of the Wii (or it's competitors) but at first glance it does look like the Wii lacks grunt compared to the consoles it's going to be taking on. So already the naysayers are stating that the console will choke because it just "can't keep up". Add on to this the new controller, which is quite out of the ordinary, and you've got most of the gaming population pointing, laughing and saying that the console will "... suck due its lack of power, pissy name and TV-remote-style controller."
I think they're wrong. Very very wrong. There's something about this console and it's features that I find very compelling. The new remote controller initially seems wierd when you first look at it, but when you take a bit of time to think about how it might work, you come to realise that it's actually quite natural. I think that this style of control is going to unlock an element of fun that the other consoles, with their standard games and standard controllers, will fail to unlock. Let's face it, games aren't about the whizzbang graphics, or about how many rocks there are flying about on screen at once - they're about FUN! Nintendo cottoned on to this notion from the very start. Not one person who has played Nintendo games from the start can say that they've not had fun consistently on most (if not all) Nintendo hardware. These guys have mastered the art of producing technology which allow people to enjoy themselves.
The link that kicked this feeling to the front of my mind was one I stumbled on (and I don't even know how) earlier today - it's called the Nintendo Wii Preview. Nine pages of Wii goodness that really need to be checked out. If you don't know what the Wii is, then you should read this and have a look at the official homepage. It's going to be a blast.
In short, I think this console will win the next-generation console wars. It captures an element of fun that the other consoles can't capture. It adds a style of gameplay that the other consoles can't add. It'll make old games replayable purely because of the way you interact with it. It'll get more people involved because you don't have to be a grandmaster with a "normal" gamepad controller any more, you just need to time you natural movements properly.
I think there are so many possibilities for this console that it's going to last for a very long time. I think there might even be a chance for me to get Amy playing some games in front of the TV with me, which would be great fun - especially when we're throwing ourselves around the room because of the nature of the controls.
Come on Wii! I may have laughed at you in the early days, but I'll take your low specs and fun games over the shiny, spaceship-style Xbox360/PS3 with great looking but poor gaming titles any day.
Thank you Nintendo. You've given an old gamer a glimmer of hope that the next generation of console gaming has the chance of being enjoyable, and not just packed with suckage!
Wiedererlangen von einem toten Computer
Computer failures. We've all been bitten by them, and I'm pretty sure we'll all be bitten by them again. Good quality HDD storage is becoming more common, but despite the advances in technology, our drives still only have a reliable lifetime of a few years. Power supplies are becoming more solid, but they still blow up. Motherboards, while having more features than you poke a stick at, are still susceptable to being killed by something as simple as static electricity at the slightest touch.
The result of losing any part of your computer half-way through a project is pretty devastating, especially if it's the HDD. This isn't just because of the loss of information, but also because of the loss of time that it takes to get things up to speed again. That time includes redoing all the work that was lost and getting a new machine built and ready to go so that development work can recommence.
The purpose of this post is to explore the options reducing the impact of hardware failures on our geek lives. The reason I thought I'd rant was because Danny Ireland recently experienced an event like this.
From this point on I'll be using the term Virtual Machine (VM) as a meaning for having an operating system running inside a window
So this might be using VMWare, Microsoft VirtualPC, Bochs or something similar.
To start off with, I'm one of those guys who likes to have his computer running at a blistering/optimum speed even if he's not going to be doing anything that requires it
I know I'm not alone in this world either. As a result, the idea of doing my daily activities inside a VM isn't that appealing. Not just that, but VMs tend to always have some form of refresh and response issues which just frustrate me.
On the flip side of the coin, I don't like the idea of having to reboot every time I want to fire up a new operating system, which is one of the things that VMs nail on the head. Another things is being able to have them all running at once if you really want.
The argument for dual-booting vs VMs has no affect on the issues surrounding a hardware failure, I just thought I'd mention a couple issues surrounding the use of VMs.
The main issue that needs to be covered is the minimal recovery time. Minimal recovery time relies on backups, and backups are always in short supply regardless of how good your backup scheme is, because you simply can't back up real-time (well, you can, but is it something that you want to do given the overheads?). Let's look at the areas of hardware failure and the impact it can have on your work.
Video Card / Monitor
Easy peasy. This has little do no impact on you as neither of these items are responsbile for retaining state. If either one of these kitties dies on you, replacing them should be a doddle. Most companies would (should?) have spares, and getting going again should take no more than a few minutes. If you're good enough, you should still be able to save your work before shutting your PC down to make the changes required
Motherboard / CPU
Depending on the method of demise, this may or may not affect your work. Sure, it's going to ditch whatever work you've done that's volatile (ie. stuff you haven't saved yet) as most CPU/motherboard failures result in the computer blue-screening, freezing, or totally shutting down. The time it takes to get the motherboard replaced varies greatly. This is due to the fact that figuring out that the motherboard is the problem is what takes the time. Replacing the mobo isn't a huge task, but it does take a bit of time. CPUs are, again, a doddle to replace, and the time to replace is minimal - as soon as you know it's the CPU that's gone.
Power Supply Unit (PSU)
PSUs die in a similar way to what most drunk drivers do. That is, they waver around and end up crashing, and there's always a chance that they're going to take something else with them! The surges in power can kill any or all of the other bits that are unfortunate enough to be connected to the computer at the time. There's no rule of thumb, you're either luck or you're not. Just pray that it doesn't manage to take your HDD with it when it goes, as it's the only thing in the machine that really hurts when it dies. Dan's post contains some information on his PSU woes
Hard Disk Drive (HDD)
This is the real killer. Not only is it capable of bringing your system down, resulting in the loss of all your W.I.P, but it will probably end up taking a stack of other data with it that has already been persisted. This is where things should be put in place to reduce the impact of a failure.
One way of doing this is to use RAID to store your information on multiple drives so that if one of the breaks you still have other copies lying around. This works well, and you'd be very unlucky to lose all your disks in one go. That doesn't mean to say that it won't happen (just ask my father-in-law who's literally had a blast during a thunderstorm resulting in the loss of not just data, but his entire PC).
Another way is to have all your work stored on a network drive, and have that network drive RAIDed and backed up. This at least puts the focus on the system administrator who should be responsible for a strong backup plan which will allow you to get to the data from the day before at the very least. There's stacks of funky network storage solutions out there (check out Paul's purchase of a 2TB NAS as an example). This will increase your network traffic a lot so you'd want to make sure that your network infrastructure can deal with it, especially if you deal in massive amounts of content (eg. like source-art for a computer game). If you deal with GBs of data on a daily basis you'd want to have a SAN or something similar to handle the load.
Hardware aside - there's more to worry about
If you lose your HDD, you're going to have to rebuild your machine whether you like it or not. To some people this is exciting
But those people are sick, and are usually recaptured very quickly. To most people, this is a dull and mundane task that they just don't want to undertake. In the case of recovering from a hardware failure, I fit firmly into the latter category. Rebuilding a machine is painfully slow, but there are ways to help get back up to speed quickly:
- Imaging/Ghosting - When you first build your machine, get the OS installed and kill a day installing all the other bits and pieces that you need to do your work (Office, Visual Studio, Firefox, etc), you can use a utility such as Ghost to take a snapshop of your set up and store it to disk. This image can be used to quickly create replica installations on other machines with the same hardware - which is exactly what you want to do when you rebuild your machine. Of course, this comes with the proviso that you have the same hardware when you rebuild. If there's a consistant set of hardware across the organisation, this kind of utility really is a time saver. Unfortunately it's not so fruitful when you have a mixture of hardware set ups.
- Oursourcing - I'm not a huge advocate of this, but it's still an option. By this I mean either hire another company to make sure that there's a replacement machine ready to rock in the case where something goes horribly wrong, or get a deal going with a company like DELL to just get another machine under warranty within 24 hours.
There are other options too.
The common problem across all these solutions is that you generally can't your environment back up to exactly how it was before the total dismemberment of your machine. It'd be lovely if snapshots of machines can be taken at arbitrary points through the day (without the pain of doing it through Ghost) and restored on arbitrary hardware at the drop of a hat, resulting in, not just your environment but your data, being restored. Yes, this is where those VMs come to the party. You can store your VM anywhere, and run it up on any machine that can boot (and that has a VM player on it).
This sounds so fine and so dandy that it's almost too good to be true - and to a point it is. You have to have some plan of managing the backups of the VM snapshots, and you need to cater for when they need to be copied. Most VM images are quite large due to the amount of software that needs to be installed (imagine how bad it's going to be having to copy a VM of Vista, which without any extra software weighs in at a hefty 9GB!?).
Conclusion
I like the idea of having my own VM that can follow me from machine to machine. I like the thought of being able to boot multiple operating systems at any time, and interact with them all at once. I also like the idea of getting the most out of my hardware with an installation that only has what it needs installed and running. The problem is that I don't think given the current set of tools available, that you can have both of these at the same time. I'm not saying that the performance of a VM is woeful (far from it), but until I can't notice a difference between playing a game in or out of a VM, I'll probably end up sticking with a normal install.
VMs are great for test environments (reverting to a pre-test state is a two-click process), they're great for persistance of entire operating system state for easy use on multiple machines, and they're even free now thanks to VMware!
Even with all those positives, I think I'd still prefer to stick to a standard OS install for the main operating system and development environment, with VMs as test environments. I would have RAID in each of my machines with shared drives that are backed up over night so that data and more than a day old isn't lost.
At the end of the day, it's down to the user or the copmany to choose what they think fits best for their scenario. I think in Dan's case, he was particularly unlucky. Even if I was in his shoes, I'd stick to what I've just described in the previous paragraph.
What would you guys do? Do you think your company has a strategy that gives you good coverage? I'd like to hear what procedures you guys have in place to cover for this - and I'm sure Dan would like to as well!
PS. For those who care, the title of this blog post should translate to "Recovering from a dead computer".