The System Rebuild – Phase 5 – Utilities and Finishing Touches
December 31, 2004
I’ve finished installing my developer tools (phase four) so now its just the finishing touches like search tools (MSN Search BETA), NewsGator, iPodder, WinZip, BlogJet as well as a whole host of other little bits and pieces that make the machine feel like home. Thanks for tuning in!
The System Rebuild – Phase 4 – Developer Tools
December 31, 2004
The productivity applications are all on and all patched up, so thats phase three over. So the next thing that I need to look at is getting my usual stock of development tools installed. This includes things like Visual Studio 2003, BizTalk, and ofcourse SQL Server. I am also investigating Host Integration Server at the moment and noticed that it had a developer addition so I will check that out too. In this phase (phase four) I usually remember that I forgot to install MSMQ, although this time I remembered and did it in phase two.
Yay for me. Don’t you find you install stories riviting reading? No? I don’t care
The System Rebuild – Phase 3 – Productivity Applications
December 31, 2004
I’ve now got my offline files all synced up and I am logged into the domain at work, so thats phase two over and phase three starting up. In phase three I basically install all my productivity applications, this includes things like Office, Project and OneNote. That’ll let me hook up to my various e-mail accounts so I am contactable again (via something other than web-mail).
The System Rebuild – Phase 1 – OS Installation
December 31, 2004
I’ve just finished phase zero of the system rebuild. I’m now entering phase one which involves installing the operating system. I’ll be installing Windows XP, and in order to get back to a usable state I will need my Windows XP CD (in MSDN wallet – check), the product key from MSDN Subscriber Downloads (printed – check), my video and network interface drives (on thumb drive – check) and the Windows XP SP2 CD (in MSDN wallet – check).
I’ll report back here when I am up and running again.
The System Rebuild – Phase 2 – Remote Access
December 30, 2004
OK, so I have the OS on and SP2 on, and automatic updates are pulling down the latest patches right now – so thats phase one over. In phase two I typically set about connecting myself up to the company network so that I can log in using my domain credentials. This involves establishing a VPN connection whilst I am logged in as the local administrator and adding the laptop to the domain.
Once I have done that I give my domain user account system administrator rights on the local machine (just temporarily while I set things up). This is also the time that I download and install any anti-virus software and set up my offline-files. I’ll check back here once that is done – it could be later tonight.
The System Rebuild – Phase 0 – Backup
December 30, 2004
I’ve started preparing for some work that is coming up early next year (next year starts tomorrow – happy new year!). Unfortunately that means I need to ditch my VS2005B1/Avalon CTP build in favor of a VS2003 build.
Of course, after Cameron’s recent experience I’m going to be very careful and ensure I grab everything I need to get up and running by tonight. I break my re-install up into phases – phase zero, which I am in now involves hunting down every piece of information that I want to keep. Here is the list I have so far.
- E-mail archives.
- Source code.
- OneNote notes.
- Podcasts.
- OPML files.
- Drivers.
I typically don’t bother backing up my favorites since I hardly use them anyway (isn’t that what Google is for?). This screenshot should give you some indication of my current progress. I’m still copying across my e-mail archives, I’m adding and commiting my source code snippets to the CVS repository at work. My OneNote’s are already backed up via offline files (just finished syncing up), my podcasts are being copied, my OPML files are on the server at work (via offline files again), and the drives just finished copying over to my wifes machine where I can get easy access via a thumb-drive.
Phase one should commence in about an hour and a half. I’ll report in then.
How to recover from an oh-shit hard disk moment
December 30, 2004
I’ve been reading all about Cameron’s saga with his PC rebuild. In the latest installment Cameron needs to contact some old Microsoft buddies because the MBR of his backup disk has been trashed. Unfortunately they couldn’t help him and have given him a bet either way. But maybe I can help, here’s why (Cameron, skip to the end and grab the link).
Earlier this year (yes, its still this year), I was rebuilding my laptop and I was using an external firewire drive to backup some data. Firewire is 100% reliable on my Dell laptop, and to almost all operating systems it just looks like a standard drive. The problem started when I finished the backup and rebooted with the Windows XP CD in ready to do the re-install.
Unfortunately the external disk also mounted and when I was trashing the old partition on the built-in disk I also trashed the partition on the external drive. About one micro-second after it happened I realised my mistake and had a sinking feeling – you know, that feeling you have when you have lost four years worth of e-mail archives.
I find its best not to panic in these situations, especially if you know how the technology works – actually, if you don’t know how the technology works, feel free to panic . . .
What I had done under the covers was delete the partition table, the file allocation table should have still be intact so all I had to do was re-create the partition table and I should have access to my data. The trick is – while I understand in theory what has happened, in practice I had no idea how to fix it myself. So if I went surfing the web and searching newsgroups.
I ended up finding this tool. I purchased it and downloaded the files and then spent three hours trying to get it running off a bootable CD (my Dell doesn’t have a floppy disk drive). Once I had it up and running it was able to find the disk and restore the partition table. I’m fairly confident that it could recover the MBR too.
ParameterisedThreadStart
December 28, 2004
Just to prove that I am a true geek I thought I would tackle Brad Abrams latest C# quiz. The simple answer is that it won’t compile because the Thread classes constructor can now take two different delegates, ThreadStart, and ParameterizedThreadStart, and because the code uses anonymous methods – the compiler can’t figure out which delegate you mean – its ambiguious, you’ve just got to love the compiler error though.
“ Error 1 The call is ambiguous between the following methods or properties: ‘System.Threading.Thread.Thread(System.Threading.ThreadStart)’ and ‘System.Threading.Thread.Thread(System.Threading.ParameterizedThreadStart)’”
There are a couple of ways that you can change the code to solve the problem:
-
new Thread(delegate() { Console.WriteLine(”On another thread”); }).Start();
-
new Thread(new ThreadStart(delegate { Console.WriteLine(”On another thread”); })).Start();
- new Thread(delegate(object foo) { Console.WriteLine(”On another thread”); }).Start();
- new Thread(new ParameterizedThreadStart(delegate { Console.WriteLine(”On another thread”); })).Start();
There are four options because there are two different delegates, and two different ways to create them without ambiguity. But hang on a sec – Brad listed FIVE solutions, and more than one of them is different to mine. Sure Brad – you go right ahead and declare another explaining variable – you hippie!
The fifth one was interesting though, and I think it was supposed to be a hook that brought up some discussion, there are two to be had.
- When are anonymous methods good, when are they bad?
- How cool is new kid on the block, ParameterizedThreadStart?
I think the jury is still out on number one, but I have seen some interesting usages. However, I do have an opinion on ParameterizedThreadStart. The framework needs this, especially if you want to quickly dispatch a method on another thread with some reference data without using up a thread on the system thread pool, however I’m not going to be so quick to give up the job dispatch patterns just yet – why? Telemetry in a multi-threaded environment.
When you build an abstraction over multi-threading libraries you can allow the code executing on those threads to publish information out about their progress and activities. It also helps highlight code that operates in a multi-threaded environment because you slap them into some kind of job class.
Earthquake Kills 10,020
December 26, 2004
There was an 8.5 earthquake last night with an epi centre near Banda Aceh in Sumatra (BBC News Coverage). Because of the locations proximity to water it caused a massive Tsunami (Wikipedia Coverage).
The areas affected include Indonesia (Sumatra is part of Indonesia), Sri Lanka, India, Thailand, Malaysia, Maldives and Bangladesh. Sri Lanka, Indonesia and India were hardest hit with 3538, 4185 and 2000 respectively.
Update #1: The death toll has now risen to 22,000 (Source: azcentral.com, AP). From the article it says that the waves created raced across the 2,800 miles of the Indian Ocean and hit Africa. So the already suffering citizens of those regions have been dealt a double blow. With so many impacted I wonder what can be done to help.
How much is an idea worth?
December 26, 2004
Sounds like a bit of a dot-com question doesn’t it? But its something that has been on my mind lately because I have some business ideas based around technology that I want to work on, but unfortunately I don’t have the capital to execute. So, if I was to work with a VC how much would my idea be worth if they put up the cash?