C and Building a B0x3n
Whoa! What a crazy freakin' weekend. I hate to blog about "regular life" because I find it to be incredibly mundane, but nobody reads this blog anyway so what the heck. Several things occurred to me over the weekend.
The first thing I realized was that with a little dedication and patience you can do pretty incredible things, like read 'Practical C Programming, Third Edition' by Steve Oualline cover to cover in one day. It's a pretty amazing book. I've taken a C programming course before and can do simple programs in C, but I have a midterm in my computer security class that will involve spotting subtle errors in C programs and I needed to brush up. Overall the book is incredibly well written, but I'm already a fairly experienced programmer so I'm not sure if the book read easily for me because I was already familiar with most of the concepts presented in the book. I will say, however, that despite the coverage of C programming there was relatively little attention given to debugging or an IDE. I've poked around for a little bit and other than some proprietary products I haven't really found a good C IDE, which is odd given the age and popularity of the language.
The other thing I did over the weekend was build a computer - and take it apart again. I'm having mysterious problems with my hardware so I decided to head out and buy some new parts. Boy, things have changed a lot in the five years since I last purchased a motherboard. I have to say, there was a time when you could buy parts cheap and learn a lot by building your own machine. I think those days might be over. Dell sells computers so cheap now that there really isn't any financial reason to build your own machine. It's almost cheaper to buy a new computer than it is to upgrade your processor. I guess the big vendors get a huge volume discount.
The changes to the actual hardware were staggering. AGP, which used to be _the_ standard for graphics cards doesn't really exist any more. PCI Express (x16) is the new standard for graphics cards. IDE is being replaced by SATA as well. It's to the point that the new motherboard that I bought doesn't even have enough IDE hook ups to attach both my CD burner, DVD burner and two hard drives. I can only attach two of the devices to the one IDE slot, but strangely the board has _six_ hook ups for SATA. I guess the idea is you'll have a lot more SATA devices.
Even the board form factors are shifting. It used to be that ATX was the standard, and Mini or Micro ATX were expensive and rare. Now it's difficult to find the larger ATX boards. I have a monstrous case and putting a mini ATX inside packs all the components close together right under the power supply, totally defeating any heat saving attributes of the larger case. I don't understand the shift to small cases at all. If people want small computers then they're going to buy laptops. One of the advantages of a large case is you can fit more components in it and it cools better. That is if you can find a motherboard big enough to allow for that sort of thing. If you take a MiniATX board and put it into a huge case you're limited by the space allowed by the motherboard hook ups, and MiniATX is much smaller than standard ATX. Also with MiniATX you have fewer slots for things like your PCI or even RAM, and thus fewer components. Even with maximum components you're asking for trouble on a MiniATX. Because computers today are still air cooled, without proper room for air flow your components will overheat, melt and destroy themselves. MiniATX crams your super hot processor right next to your super hot graphics card and smashes them all under the motherload of heat production - your power supply.
Speaking of the power supply, even that has changed. My new board has a 24 pin power hook up, whereas all my old power supplies have 20 pin motherboard power adapters. It's crazy how even the small things have changed so much. In the end, getting a new motherboard meant I also had to buy a new processor, new RAM, a new power supply and a new hard drive. Not to mention my old AGP graphics card is no good, but luckily the PCI graphics card I have should still work.
The jury is out as to whether or not Linux will run smoothly on the new rig. I'm betting it will, but I'll probably look forward to dual booting for at least a little while as I work the kinks out. All said and told it was an expensive upgrade - it'll probably be the last time I upgrade on my own. Seems I may have witnessed the passing of another trend in computing.