Open Systems, Closed Systems, and Tinkering

Tinkering is one  of the many things that spark innovation. Take something apart, learn about it, make it better, and then repeat. It doesn’t even matter what your background is, be it a mechanic, geek, or even doctor. And the more you tinker, the more you learn. The more you teach what you have learned – the even more chances you have to learn.

This post is mostly in reference to the geeks – those of us who grew up opening up our computers, learning about the different components, upgrading them, finding their flaws, etc. I, like many geeks my age, grew up in a home that usually had at least one computer. My first computer was a Mac, the oh-so-wonderfull(ly crappy) Apple Performa 6200 (don’t get me wrong – I loved this computer, and loved that it was a Mac. But looking at the specs now – man was that a parts bin reject).

This computer was kept in my bedroom, and so I spent countless hours messing around with it. But (it being a Mac, and parts being rather expensive, for PC’s as well) – I really tinkered with the OS and the Mac experience – not with the machine itself. I had many friends in high school that built their own machines, and they shared this knowledge with me…but it was never anything I taught myself. As I learned more about programing (C++ to start with), I learned more and more about other systems, which actually started with *nix systems before Windows.

When I went off to college, Macs were a bit too expensive at the time for us to get a new one – so I got a Dell. After a month of Windows ME, I switched to Mandrake Linux (now Mandriva) through the rest of GMU, and then back to Windows at VCU. My years of previous tinkering around with machines helped me learn a lot about Linux myself – messing around with drivers, configs, and more.

But I remember – back in the day ( I say that like I am old and really want to remember the old days) – this wasn’t always fun. Most of the time – I did it out of necessity (finding what I could on audio/graphics drivers for my Dell, etc). I so wanted to stay on the cutting edge of Linux, but I would always have to wait (or suffer) for hardware support. It was a learning experience, and fun, but not something I would want to do all the time.

Many people I know have very similar experiences – and that’s what made them the geeks they are today. And this is good. Very good.

Now let me get to what this post is really about – smartphones and their OS’s – and those that you can’t tinker with.

You know which one I am talking about – I have talked about it numerous times before, and own 3 devices running this OS (my wife and I have iPhones, and we also have the 16GB iPad).

Since we have known about the iPad (and by that I mean the official product, not the chatter about it before), through its release, and then the announcement of iPhone OS 4.0 – many people complain about Apple continuing to be such a ‘closed platform’. And in many true cases – it is. Unless you ‘jailbreak’ it, unless you pay to be a part of the Developer connection, you can’t run your own apps for it, can’t do things many other phones may do, and can’t customize it all that much.

There has been this uprising of geeks complaining about these devices being so closed. That they are ‘the training wheels of smartphones’. That they are for rich people who have too much money. That you have to be an Apple fanboy to own these things. That they grew up tinkering with machines, and this you can’t do anything with (By the way, the post I just linked to is a good read, but very one-sided. Gizmodo’s follow-up was very good as well).

And the best comment – that Apple has redesigned the last 30 years of GUI interfaces, and this is the future of computing.

And that all of this means it is the end of tinkering.

Being a major geek, and the desire to mess with things like this – do I care? Not really. Should you – no.

Why? – Because I don’t think you tinker as much as you think you did. And if you really think you did (which you could have – remember, I didn’t mess with much hardware as a kid), it’s not like PC’s are going away any time soon – nor the ability to build your own (though, in today’s economy, it’s not as cost-effective to build your own as it used to be). These things will be around for plenty of time to come.

If you still think you are a true geek because you are still trying to increase the power of your parents 486 running Windows 95 or your custom build of Linux to prove your geekdom – you need to go outside, get a job, and get a life.

Why does all this matter? Because while I use these ‘closed’ devices – I don’t feel like I am missing much. Yes, it would be cool to have many of these features that other devices have, or be able to customize it to my heart’s content. I am not kidding – I would love to have the ability to do some of these things. But it comes down to two things. 1) I don’t have time anymore, and 2) It’s not worth it to me as much anymore. The payoff just isn’t there.

Many of us really tinkered out of need. Something didn’t work the way we wanted, and we wanted to fix that. But for me, these devices just work – and I don’t have to think about it, because someone REALLY thought this through for me. Yes – that may sound like I am submitting to the man – but that all just depends on your perspective. So, in this instance – I don’t have that need anymore. And if I do – I can easily write an app for this device to do what I want to do.

And that is where my ‘tinkering’ comes into play today. These devices provide me a platform to tinker, if you will. I don’t have to worry about the hardware or how it all works. I can just come up with an idea, code it, and have it do what I want to.

It somewhat surprises me with this ‘uprising’ of those wanting to tinker…and complaining about these systems. This goes back to what I said before – I really don’t think you did this as much as you think you did – but you would like too. If you really did – which I am sure many people did – then you probably aren’t wasting your time complaining about this.

What I am saying – the people complaining are the people who have this grand vision that they tinkered with stuff before, that’s what made them the geek they are today – have really stopped learning if you will. If they wanted to continue to tinker, they would be doing it elsewhere still.

Those that want control get Andriod phones. Those who want something useful, well though out, and rock solid, get iPhones. But remember – geeks are usually the smallest market these companies are focusing on. I have plenty of family members and non-geek friends buying every type of smart phone, just to be connected. In the end – they don’t care about the OS. They just want a phone they can make calls on, check the web, and play games.

The take away from this – just because you use a closed system never means you have to stop tinkering and stop learning. You just need to change your perspective.

XP ntoskrnl.exe not found and Registry woes…

Well, for the first time in a LONG time, I have had the awesome opportunity to try to ‘fix’ a Windows computer. Day in and day out, I work on Macs and Linux, and touch a windows machine here or there. But real break/fix on a consumer Window’s laptop? Im a newbie.

Earlier this week, Debs handed me her laptop (its a 1-2 year old lower end Toshiba she got for Christmas from her mom), and said ‘Its broke’. No fault of her own, this laptop has had its quirks anyways. While we have all her music on her iPod (and I could get it off), she wants to get off some of her pictures, etc. Once I get the laptop running again, I plan to poss. wipe it and reinstall Windows (and possibly dual boot it with linux), to give her a fresh start. So back to the current task…

Somehow, it could no longer find the ‘ntoskrnl.exe’ file…uh oh. Using my XP Home Retail disk…I booted her laptop with the Windows Recovery Console, and using ‘copy’ moved the ntoskrnl.exe file she had out of the way, and then copied another copy from the backups Windows makes (cd C:\windows\system32; copy ..\driver cache\i386\ntoskrnl.exe). Reboot.

Now its telling me that start because Windows can not find ‘\Windows\system32\config\system’. Well, thats great…it happens to be part of the system registry. I decided in the meantime to do a ‘chkdsk -r’ that ran overnight…to make sure everything was ok.

This morning, I pick back up on the issue. It looks like windows keeps a copy of the registry it installs with in the c:\windows\repair\ directory. By booting into the recovery console again, you can copy the old registry away (in c:\windows\system32\config\, there is system, security, sam, default, and software). I would move these all to a temp directory somewhere. Then, you can copy the 5 files from c:\windows\repair into your c:\windows\system32\config\ folder, and reboot.

Rebooting got me into windows. I started windows in safe mode, and then started following some of the directions in this MS Knowledge Base article. Basically, working with these steps, one can recover a copy of their registry that was made durring a System Restore, copy that into the location where the registry files go, reboot, get a working system they can log into again, and then restore FULLY to a previous restore point, and should be good to go.

Following those directions, I moved over some of the more recent registry files (but not the ones of that date), and rebooted. Windows is starting! But before Windows fully starts and asks me to log in, a message pops up that Isass.exe (the process that manages some of the authentication for Windows) is getting invalid parameters. Great…I guess ill use the recovery console to go back to even older System Restore files, and copy them over.

After a reboot into the Recovery console, I try to login. Her admin account actually had one of our standard passwords, but its not letting me login! It looks that the reason Isass.exe could not log in is that the registry I copied over was a ‘bad’ one, and part of the authentication stuff is what was corrupt! So now I can no longer use the Recovery console, because I can not log in to it!

So, now im stuck. I tried using a Ubuntu 6.06 install CD, but it can not WRITE to NTFS volumes. This afternoon I plan on downloading the newest Knopix Live CD (which does have support for writing to NTFS volumes) and seeing how that goes.

Update: Downloaded Knoppix 5.0.1 and burnt it to a CD when I got home. Booted from the CD, which worked perfectly. It even mounted her Windows disk as a read only disk in /mnt/hda1. I switched to root (sudo -s), unmounted that device (umount /mnt/hda1), made a new folder for the mount (mkdir /mnt/windows), and then mounted the windows partition in RW mode (mount /dev/hda1 /mnt/windows -t ntfs -o rw). Next I made sure I could write to the volume.

Following the directions in the KB entry above, I copied the NEXT oldest registry files (which were dated sept 29th on her laptop) to the c:\windows\system32\config directory. After a reboot, Windows booted right up and let her log in. The only other problem I had was that it said my copy had been activated to many times, where I then had to call Microsoft and go through their process to activate this copy again.

After I was able to get in, I started a backup of her laptop to our server, just copying her user directory over. I plan to wipe the laptop clean, do a disk check (I think this may be whats causing some of her laptops slowness and this event), and then reinstall Windows and all the updates, etc.