Thursday, March 31, 2005

I See Penguins

Please note: This post is a duplicate. The original can be found here. I am posting it on this blog for continuity.
Okay, okay, you've all been clamoring for a post. I give. So here goes. I am going to build a computer. I've wanted to do this for quite some time, but lately, it's all been coming together, and I've gathered enough momentum to see it through. The first event on the chain was my acquisition of a monitor. Slickdeals had a 17" flat screen CRT for $30 after rebates and I bit. I wasn't exactly sure what I wanted to do with the monitor at the time, but I figured I could always find a good use for it. It's a pretty good monitor0, and I've thought of a use for it. This all fits into my larger scheme of building a Linux1 box that provides all the good functionality of a TiVo, but without the annoying parts (like the ads, the fact that they disabled the 30-second skip and don't delete commercials, and the fact that your recorded shows are stuck on your TiVo, and you can't really do anything useful with them). I don't just want a TiVo replacement or a Media Center PC. I want a server. I want to play with utilize Linux (because it will help me in my career/hobby), which brings me to the next event on the chain. I spoke with my sister Sazzly on the phone the other day and I mentioned that I was considering building a Linux box. I remembered that her roommate had one, and I asked what distro she was running. I use Red Hat at work, but really I didn't know that much about what the different distrobutions had to offer, or for that matter how to go about setting up a system. I know and use a lot of the every-day commands, but I don't know the ins and outs of administrating a Linux system. She said her roommate ran Gentoo2, and then mentioned that it was really easy to install programs "because there's this one command that you type followed by the name of the program, and it installs automagically [paraphrase]." So naturally I had to do some research. Among other distro sites, I went to gentoo.org and looked around a bit. Apparently, Gentoo is the ultimate roll-your-own distro. And get this: when you install a program, you do it by downloading the source code and compiling it yourself! Oh, sure, this is possible on every Linux distro, and sure, you don't have to do it this way: you can also install from binaries, but the minute I read this, my jaw hit the floor and I began to salavate. Okay, not literally, but I was instantly hooked. This, you see, my young grashopper, is the path to ultimate optimization and customization. Processors can only be as efficient as the compiler that built the programs they're running tell them to be (this isn't 100% true, but bear with me), so if I bought a 64-bit processor and ran programs compiled for a 32-bit perocessor, it would still work, (because the 64-bit processor is backwards compatible) but aside from a few optimizations built into the processor, there wouldn't be nearly as much of a jump in performance as if the program were compiled for a 64-bit system. It gets even better than that. Suppose you had a Pentium 4, in fact, you probably do have a Pentium 4 if you bought your computer in the last couple of years. Most of the software that you run on your computer does not take advantage of all the bells and whistles that come with the P4 processor. This is because not everyone has one, and when you distribute your program in binary form, you don't want to tell everyone without a particular processor that they can't use your software unless they upgrade your system, so you go with the lowest common denominator, which is x86 (Remember those 386 machines? Running DOS? Yeah, I didn't think so. That's how old this technology is.), or you stipulate a set of system requirements for a more recent processor (The Pentium II is common nowadays), but you can't use the latest hardware enhancements, because you want your product to be useable for "most people" on their current system. You see, this is even better than having my operating system and most of my programs compiled for my "generation" of processors. They will be optimized to take advantage of features and optimizations unique to my specific processor (and even system configuration). Then he got an idea! An aweful idea! THE GEEK GOT A WONDERFUL, AWEFUL IDEA! "I know just what I'll do!" The Geek laughed in his throat. And he made a quick download, and boot disc he wrote. And he chuckled and chuckled, "What a great Geeky trick! With this chip and this board, my system'll be slick!" My plan, naturally, is to buy an AMD64 processor and build a system, piece by piece, around it. I'll need a motherboard, video card, memory, and a case, as well as all the other usual stuff. I also plan on getting a TV tuner and running MythTV. My goal is to configure it to run MythTV on my projector as a second monitor, while using my CRT as a primary monitor. That's why the keyboard I got is wireless, with an integrated pointing device (ideally suited for sitting on a couch, not at a desk). This is all subject to change, but I've already ordered a keyboard, so I'm pretty much committed. Lately I've been running lots of Open Source software on my laptop (Firefox, Gaim, Azurus, Vim, OOo, GIMP), and it's partially because of this that I've had enough faith in the quality of Linux to do this.
0 I recently paid a visit to my company's surplus outlet, of which I was previously unaware. If anyone wants a used 15" - 19" CRT (non-flat) for about $10, let me know. The flat-screens are $50. Actually, it's open to the public, but as an employee I get a discount. 1 If you're wondering what Linux is, it's an operating system. "Umm..., what exactly is that?" you were probably going to ask. Windows XP is an operating system. You may have heard of OSX, which is an operating system that runs on Macs. Linux is just another way to run a computer. If you don't know all about it, it's because you're probably not geeky enough. 2 In case you're wondering what it looks like (or rather, a few of the ways it can look), here are some screen shots.