A Walk through Windows History

I freely admit, I’m a bit of a history nut. And I also admit I use Windows, and have used Windows for pretty much forever. I should also mention that I’ve personally owned just about every version of Windows to ever exist, at one time or another.

Finally, I should mention that I’m a bit of a pack rat – that is, I don’t get rid of old things. Sometimes this is annoying – other times, it can be very useful (or at least entertaining).

This is one of those times.

Thanks to the wonder of Microsoft Virtual PC 2007, I was able to resurrect both Windows 3.11 (for Workgroups) and Windows NT Workstation 4.0 – both of which are versions of Windows I haven’t personally seen in many, many years.

It may seem rather boring to some, but to me, it’s like a stroll down memory lane. Feel free to browse through these pictures I took (gotta love the new gallery feature of WordPress) and share your own memories of Windows long past!

  • Windows NT Workstation 4.0 Startup Screen
    Windows NT Workstation 4.0 Startup Screen
  • "Core Dump" in Internet Explorer 6 in Windows NT 4.0
    “Core Dump” in Internet Explorer 6 in Windows NT 4.0
  • "Core Dump" in Internet Explorer 4
    “Core Dump” in Internet Explorer 4
  • DOS Prompt
    DOS Prompt
  • Google in Internet Explorer 4
    Google in Internet Explorer 4
  • Log On to Windows 3.11
    Log On to Windows 3.11
  • Logon screen for Windows NT Workstation 4.0
    Logon screen for Windows NT Workstation 4.0
  • Microsoft.com in Internet Explorer 4
    Microsoft.com in Internet Explorer 4
  • My Virtual Machines
    My Virtual Machines
  • Program Manager - Internet Explorer
    Program Manager – Internet Explorer
  • Windows for Workgroups 3.11 Splash Screen
    Windows for Workgroups 3.11 Splash Screen
  • Windows NT 4.0 Desktop
    Windows NT 4.0 Desktop
  • Windows Program Manager
    Windows Program Manager

Computer Drama

So, my new 500 GB hard drive arrived the other day. Thus began the 3-part geek tragedy that accompanies any computer upgrade.

First off, let me say that it’s been a while since I’ve done this. The last time I installed a new hard drive in my computer, Ultra DMA was still pretty new – and every hard drive tended to ship with an IDE ribbon cable, just in case.

My first lesson was that this is no longer the case – or at least, it’s not the case with SATA drives, which is of course what my computer uses now. So, when I hunkered down Friday night to install my hard drive, I quickly hit the impasse of “no cable.” Silly me!

To be fair though, I must compliment modern PC designers – or maybe just Dell. This was the simplest hard drive install I’ve ever done. Say what you will about Dell (or mass-produced PCs in general), but they do have some good points. I just slipped out the plastic drive tray, popped the drive in, and slid it back into place. No tools needed. Sweet!

The next day, I hopped over to the nearest store where I could confirm that they had an SATA cable – which turned out to be Radio Shack. Of course they charged $10 for what should’ve been a $3 cable – but of course it was all shiny and colored and probably meant for more of the “case mod” crowd than people like me, but whatever. I got a really good deal on the hard drive to begin with, so I didn’t mind spending a few dollars more for the cable.

The First Signs of Trouble

I snapped the cable into place easily (I’m really liking SATA, BTW) and the drive came online easily. Now I just needed to boot from my GParted LiveCD and copy my partitions onto the new drive, resize them to take advantage of the new space, and I’d be done. Although the resizing would take a while, it should be pretty simple – just set it up, let it run, read a book while it churns, and come back when it’s done. How hard could it be?

Hard DriveThe answer, it turns out, is really hard. GParted (or more specifically, NTFSResize) kept saying that I had “bad sectors” on my drive, and because of this it refused to touch my main NTFS windows partition. Ugh.

So, following the advice of the tool, I rebooted and ran CHKDSK… and it found nothing. I booted to the Windows Recovery Console (following advice found online) and ran CHKDSK from there… and it found nothing. I booted into the “utility partition” that came with my Dell and ran the HDD diagnostic tools there – they all said the drive was A-OK. I rebooted, tried GParted again – no luck, it STILL insisted that there were bad sectors. I even ran Seagate’s own “SeaTools” disk diagnostic program – on both drives, with each scan taking several hours – and both drives “passed” the tests, no errors detected. But still, I couldn’t use GParted because NTFSResize kept saying there were bad sectors.

By this point, it was Saturday night and I was getting impatient. “OK,” I said, “screw you, GParted – I’ll just use some other tool to copy the partition, and then resize.” Oh ho ho ho ho, how naive I was to think that I could get away with this!

Trying to Outwit Fate

I used a disk cloning tool to make a copy of my hard drive on the new drive. Naturally, since the new drive was bigger, it didn’t use up all the available space after the copy. I figured that since the new drive was, well, new, it wouldn’t have bad sectors and once the data was copied I’d be able to resize the partitions easily.

This, of course, was not the case.

8 hours later and the copy was complete. I fire up GParted and… NTFSResize stubbornly refused to resize my partition, even though I had made a complete copy a new disk. It still said I had bad sectors.

At this point, I was beginning to wonder exactly how NTFSResize detected these bad sectors. It took over an hour for CHKDSK to do a complete scan, how was NTFSResize, which booted up in just a few seconds, detecting these bad sectors? And did the disk clone really copy the bad sectors as well, or just some partition table information that labeled certain sectors as “bad?”

The Compromise

By this point it was late Sunday afternoon, and my weekend of spare time was quickly running out. So I decided to compromise by using option 2 from my original post – the feature of NTFS “junction” points. It wasn’t ideal, but it would work – mostly.

I booted into Safe Mode and logged in under my seldom-used Administrator account. From there, I copied my entire user profile directory to a temporary location so I had an empty directory to junction with (for obvious reasons, you can only junction to an empty directory).

While I was at this stage, I thought “perhaps 500 GB just for my personal user profile is a bit much – surely I can junction another large folder and split the space into two partitions, perhaps 250 GB for my user profile and 250 GB for, say, “Program Files?” Well, no, actually, you can’t do that, as it turns out. Windows won’t let you rename the Program Files folder (even in Safe Mode), so you can’t use that trick to junction it to a different partition.

This wasn’t a huge setback – my user profile takes up some 60% of the space on my drive, what with movies & music & other such things – but while not ideal, it would work.

So after waiting an hour or so for the new partition to format, I had it linked to my user profile directory. Now to just copy my data back into the folder – which is now a “hard link” to a partition on a different drive. :-)

A few hours later (hey, it’s a lot of data!) and my profile had been moved to the new junction – effectively, the new drive. I rebooted and everything came up A-OK.

Now, my user profile directory (all of it, not just the “My Documents” folder mind you) is actually located on a physically different hard drive (although it could have been any other partition).

As you can see (click the image for the full-sized picture), my user-profile folder “Keith” even has a distinct icon to show that it is linked to a different hard drive.

What was once a rather cramped 144 GB drive is now 79% free space – plenty of room for growth (new programs, Windows updates, etc.). And my bulky user profile, with its massive music & movie collections, now has plenty of room to grow on that new partition (named “HAL” for personal historical reasons – before Windows introduced the “My Documents” folder, I used to keep documents in a folder called “HAL”).

Those other FAT and FAT32 partitions, in case you are curious, are the utility partitions for Dell – where it has the “recovery & diagnostic tools.” They don’t take up too much space, so I leave them around – and they may come in handy someday.

Conclusion

I would have much preferred to be able to do what I originally set out to do. I’ve used GParted before, and I’ve had nothing but good experiences prior to this. The new drive is (presumably) slightly faster than my old one (bigger cache), and I would have liked to have that slight speed advantage for some of my, you know, programs, or maybe even for Windows itself.

I still wonder what those “bad sectors” were. I suspect that they may have been found long ago, and CHKDSK found them and dutifully marked them as “bad” after recovering data from them. They certainly don’t cause me any trouble – my computer is (knock on wood) quite reliable. Why NTFSResize refused to run is beyond me – perhaps being a little too paranoid about data integrity? And why there isn’t an option to just ignore the errors and continue I’ll never know – these are Linux-based programs, after all. Isn’t that kind of power/option the whole spirit of Linux? (I suppose I could have downloaded the source code to NTFSResize and re-compiled it myself to do what I wanted, but seriously, who has the time?)

I’m not knocking GParted – it’s still my favorite tool for this kind of work. But it was rather frustrating – it did, after all, eat up my entire weekend.

What do you think – was I just unlucky, or is this common when resizing NTFS partitions?

(Image credit to geerlingguy for the Creative Commons licensed image.)

A Computer Conundrum

Once again, I’ve filled up my hard drive. It’s inevitable, really – I tend to keep everything, and my music, picture, and video collections are quite… extensive.

What’s sad is that I bought my computer a little over a year ago, and I distinctly remember remaking that its 160 GB hard drive should be “big enough to last quite a while.”

Ha!

But that’s not the question I’m struggling with. I’ve bought a new 500 GB SATA Seagate hard drive, and it will arrive in a few days. The question is, what do I do once I get it? The way I see it, I have two basic options:

  1. Use a tool like GParted to copy my existing partition onto the new drive, expand it to fill the available extra space, and set the new drive to be the primary drive and boot of of it. This has the benefit of duplicating my data – effectively making a backup of it – and when I’m done and satisfied, I can wipe the old drive and use it for extra storage. The downside is that Windows partitions don’t like to be resized – and the process takes a long time, especially on bigger drives. Switching the drives around will also take some time as well.
  2. Use Windows’ built-in support for “directory junctions” to basically “junction” the new hard drive to an empty folder on my computer. I would probably do some finagling and “junction” the “My Documents” folder to the new drive. The effect of this would be that anything in the “My Documents” folder would actually be on the new drive, although from my point of view it would just be a normal folder on my C: drive. (As you may have suspected, it’s the “My Documents” folder that takes up most of my hard drive space.) This has the benefit of being relatively straightforward to do (although I’ll have to move things around temporarily, as you must junction to an empty folder) and it won’t mess up my existing file/folder hierarchy (no having to switch to a new drive letter or anything). The downside is that I’ll be devoting an entire 500 GB hard drive to just my “My Documents” folder, which seems somehow… wasteful.

So, basically, the decision is – copy the entire Windows partition (the “C:” drive) and fiddle around with re-sizing partitions (can be risky), or just devote the entire new hard drive to just one folder through directory junctions.

Although, I suppose I could split the new hard drive into different sized partitions, and junction them to key places on the old hard drive where space is tight.

If you have any suggestions for me, or if you’d like to share what you’ve done under similar circumstances, feel free to post in the comments.

Speech Recognition and Artificial Intelligence

Every so often, I’ll get a little pissed off and start wondering aloud, “where the hell are my talking computers?”

Seriously, though – it’s 2008. Ten years ago, we were sure that by now, speech recognition would have surpassed the keyboard as the primary means of input. Hell, we’ve been predicting it for so long, it’s become somewhat of a hollow prediction – a lot like the “flying cars” argument.

But really, why aren’t we all talking to our computers? The answer, in my opinion, is that we haven’t developed artificial intelligence enough yet.

Why is artificial intelligence important for speech recognition, you ask? Let me explain.

We’ve had “basic” speech recognition for some time now. I have personally heard of “Dragon Naturally Speaking” as the be-all, end-all of speech recognition software since somewhere around 1998 – and I’m still not using it. Nor is anyone else – at least not on any large scale. And there’s a very, very good reason for that – it’s simply not good enough.

Now, I’m not saying that speech recognition isn’t getting better at recognizing words and so forth, but at this point, using your computer via voice commands is a bit like trying to operate your computer through the same interface as the original Altair 8800. Oh sure, each individual switch works quite well – but try teaching your grandmother to check her email by just flicking 8 switches on the front of a panel with a few lights on it. That’s about where voice recognition is right now.

You see, there’s a very important “missing piece,” which is context. Or, to put it another way, consciousness.

In order for a speech recognition system to understand instructions given by a human being in plain speech, that system needs to be able to understand plain human speech – which, more often than not, requires a lot of understanding of the context in which it’s used. And to understand context like that, you need a rudimentary consciousness – something that has awareness – not necessarily of itself, but of what it’s working with. And we simply don’t have that yet.

Take an example.

Imagine you’re composing a message. You’re going to send it to your friend, “Bob.” Here’s how you’d use voice commands today:

Command mode. Open Email. Compose message. Dictation mode. “Hi Bob comma how are you doing today question mark capital I am doing just fine comma we enjoyed dinner with you last week period command mode backspace word backspace word command mode” Alt, File, S, Tab, Tab, Tab, Enter. Close Program.

And that’s with minimal errors – in reality, you’d be using the “backspace” or “undo” command quite often. And because speech recognition has no context, no consciousness, you need to tell it explicitly when you move from giving commands about what to do with the computer (basically, using voice commands as a slow and unreliable mouse pointer) to “dictation mode,” where it just writes what you say – basically acting like a bad transcriber. It’s slow, cumbersome, and unreliable. And until it becomes faster and easier (and, to a certain extent, cheaper) than using a keyboard and a mouse, it will remain a fringe method of input.

Contrast this with a voice command session with a computer equipped with speech recognition and a rudimentary AI:

Computer, begin new email to Bob. “Hey Bob, how are you doing today? I am doing just fine, we enjoyed dinner with you last week.” Send message.

Which one do you think most people could adapt to quicker – the first one, or the second one?

Remember also that we haven’t even touched upon corrections. With AI, you could say “no, wait, make that ‘I’m doing just fine'” and the computer would know (based partly on your emphasis on “I’m,” and partly due to its awareness of the sentence structure itself and the context in which it was used) which phrase to replace. Just you try that with today’s speech recognition!

I’m not sure if AI research is being pursued as much as it should be – I have a sinking suspicion it’s not (probably due to fear of runaway AI and other ethical concerns). And maybe that’s a good thing, in the long run. But I’d like to see this sort of thing happen, and happen soon. Because I’m tired of typing – I want to talk to my computer.

I mean, seriously… it’s 2008! Wasn’t this sort of thing supposed to happen like 7 years ago, at least? What ever happened to “life imitating art?”

I’m waiting…

The Evolution of the Desktop

My computer sure has come a long way.

Keith’s Desktop 2000

This is what my desktop looked like somewhere around April 13, 2000. I imagine it was either Windows 98 or Windows ME I was using at the time.

Note the Netscape icons – ah, the heady days of Netscape Communicator version 4!

Keith’s Desktop 2003

Then I upgraded to Windows 2000 – what a difference! And just look at all the icons I had in my system tray (sorry, the taskbar notification area).

Astute readers will notice I have a fondness for WinAmp that runs a long way back.

Keith’s Desktop 2007

And here we are today. The number of icons has gone down a lot, but that’s because I’ve learned the beauty of minimalism. And the option to “hide notification icons.”

There are a few more icons in my quick-launch area, but all in all not much has changed. I still use WinAmp (it’s semi-transparent at the top of the screen) and I still pretty much work the same way – often with the same programs – and my desktop reflects that. (Except now my desktop background changes every 15 minutes thanks to John’s Background Switcher. And of course I now use Firefox and Thunderbird instead of Netscape Communicator.)

I wish I had pictures from before this, but graphics (and screen captures) were kind of hard back then. Still, it’s interesting to see how far I’ve come.