Not that I have $12K to spend, but let's just pretend. Since you are probably familiar with my level of geekiness, you have most likely realized, by now, that said hefty sum would go toward a sparkly new computer system.
For my part, knowing the eclectic circle reading this blog, I fully expect to be corrected in my errant ways in choosing the bits and pieces, which would potentially become a formidable space heater amidst my already tropical office climate.
CPU
I admit it, I'm a Dapper Dan man. Every single time I tried anything but Intel processors, I ran into system performance and/or stability problems. I may simply have been unlucky, but I'll forgo the angst of going against my instinct, thank you very much, and choose an Intel QX9770 CPU.
Motherboard
I have always had good luck with ASUS motherboards so like a good old boy, swearing by his trusty old Buick, I'll go for the P5E3 Premium motherboard, since it sports the nicely featured Intel X48 chipset.
I should probably interject that the above motherboard won't support nVidia's SLI technology - only ATI's CrossFire. In my opinion, Nvidia's 790i chipset is an immature technology, given the problems people are experiencing with 790i motherboards. The most stable 790i motherboard, I've heard of, is the ASUS P4N64 WS Pro, with a price tag of about $450.
Memory
I've had good experiences with Corsair memory as well, so that'll be two 4GB Dominator PC16000 kits, please.
Monitor
You can never get enough screen real estate; that's a fact of life. Since my Dell 24" UltraSharp monitor is still a beautiful thing to behold, I'll get another one. While we're at it, I'll opt for a 30" UltraSharp as well. That way, there could be a 24" monitor in portrait format on each side of the landscape format 30" monitor. Yeah, I could live with that; couldn't you?
$1399
Graphics Adapter
What on earth would drive two 24" and one 30" monitor? Why, two GeForce 9800 GX2 cards, of course. There simply is no bigger bang for this kind of money - at least not until the ATI Radeon HD 4870 X2 hits the streets. I'll go with the 700MHz XFX Black edition. You know - so my office will be nice and toasty during winter, also.
August 12, 2008 - UPDATE:
The Radeon HD 4870 X2 is out! This baby will set you back $560 - $90 more than the GeForce 9800 GX2. That leaves us with a total of $12,022 before shipping and miscellaneous odds and ends. This proves my theory that if you try hard enough, you can blow any budget!
RAID
SATA II is the way to go here, I believe, which means 3ware. The optimal card for this system would be the 9650SE-12ML, the smallest 8-lane PCI Express controller in the collection. Yeah, I think I might be able to cram that into the remaining PCI-E socket, next to the graphics cards. Note to self: Buy a rubber hammer, just to be on the safe side.
Hard Drives
For the system's 1.2TB RAID 6 array, the obvious choice is Western Digital's Velociraptor. That'll sound really cool as they spin up, one by one, won't it?
Optical Drives
Allegedly, Sony is the best choice when it cones to Blu-ray drives. It baffles me to learn, then, that Sony's Blu-ray burner lacks a 64-bit driver. The substantially cheaper GGW-H20L Blu-ray burner made by LG Electronics works perfectly on 64-bit Windows Vista and should even be slightly faster, so I'll go with that one instead. The BD-ROM drive, however, will be Sony's BDU-X10S model. I know, I know, I'm a brand snob.
Power Supply
Powering this amount of high-performance hardware isn't a job for your puny old 500W power supply. What's more, a PSU is not very effective at or near its maximum power capacity. Thinking big, I choose Cooler Master's Real Power Pro 1250W, which should be up to the job, and then some. Maybe it'll cause a brownout over at the Intel campus, instead of the other way around, for once.
Case
Lian Li is the master in this field. The noise-dampened PC-A20B midi tower is perfect, since it separates the hard drives and motherboard, preventing cooling problems in one area from affecting the other. It also fits snugly into the available space under my nice beechwood desk. Don't worry, I'll keep a fire extinguisher nearby.
Cooling
An important topic, especially with this configuration. I've heard good things about Zalman CPU coolers, so that job goes to the Zalman CNPS9700 NT. I did consider the blue LED model, but my progressed age got the better of me, sorry.
O/S
What fun is 8GB of memory if you can't use it? The only logical choice for an old Windows hacker in need of a 64-bit O/S is Windows Vista Ultimate. It'll be so much fun to figure out how much of my existing software will no longer work.
Let's see - that's $10,493, right there. You know, my old printer is getting run down, and I really like the Xerox Phaser 6360/DN. That'll be another $1,349, so now we're looking at a $11,842 total. That leaves $158 for shipping, necessary cables, and an additional case fan or two. Twelve grand for a computer system, isn't that something? Never mind that my driveway is caving in and the paint is flaking off the siding of the house. Geeks know their priorities!
After all this, if you've convinced yourself that I have had waaay too much free time on my hands, these last couple of days, you'd be right.
That's right, it's never too early to worry. We, the geeks of the world, all know that the Unix time stamp is represented as seconds since the Epoch, which was January 1st, 1970, at precisely midnight. Unfortunately, the time stamp is defined as a 32-bit signed integer, which will overflow on January 19th, 2038, at precisely 03:14:08. "Great Scott!" you'll undoubtedly say, and you're right, that is kinda heavy.
To solve this serious problem, some have suggested making the time stamp an unsigned integer. Of course, that would suddenly change my birth date to December 9th, 1973. As flattering as this might seem, it wouldn't be very practical in the long run.
Others have suggested using a signed 64-bit integer to represent the date, and that would be fine if everyone were feeling okay with a granularity of one second, which is not the case. Even those who are not satisfied with one second increments seem unable to agree on exactly which SI-prefix would be a fitting resolution.
After thinking about the problem for a while, I believe I have the perfect solution. Why not simply ask the universe for guidance, so we can settle the matter, once and for all?
No, you can relax, mom, I haven't joined a New Age cult. I'm talking about such things as the Planck Time, which is believed to be the shortest interval of time you can measure before quantum effects mess everything up. Hence, you could say that the Planck Time is the duration between quantum ticks - the intervals by which time itself progresses. If we made the time stamp resolution equal to the Planck Time, one second would consist of some 18.5487 quintillion septillion ticks. That's ten to the power of forty-two. Those familiar with Douglas Adams' writings will find this very fitting, indeed.
To determine how many seconds of time we need to represent, let's first talk about history on a universal scale. The furthest back in the past we'll need to represent time would be the Big Bang, obviously. The age of the universe is somewhere around 13.73 billion years, and since a year is usually 31,536,000 seconds, we get close to 433 Quadrillion seconds. That's around 8.0314 Trillion Septillion Septillion quantum ticks, or 8.0314 x 1060. There is still some uncertainty, however, about the exact number of years, so let's just make it an even 1061.
Alright, enough about the past; how far into the future do we need to go? Well, it depends on a lot of things, not least the nature of dark energy, since this will determine the kind of demise the universe will suffer, and consequently when. The most widely accepted theory currently predicts the heat death of the universe in about 100 Trillion, or 1014, years. This translates to some 58.5 x 1063 quantum ticks.
So far, so good. Now all we need to do is find a signed integer that will contain numbers from minus 1061 to, say, 1065. Below is a list of integer widths and their numeric ranges. The number of bits in the integer is always doubled.
| 32 bits: | ±2.147 x 109 |
|---|---|
| 64 bits: | ±9.223 x 1018 |
| 128 bits: | ±170.1 x 1036 |
| 256 bits: | ±57.90 x 1075 |
As is apparent above, a 256-bit signed integer would suit us nicely. It even allows for shorter quantum ticks eerily predicted by some string theory models. Should these turn out to be right, a simple left shift sequence should sufficiently handle the conversion.
Problem solved! Now we just have to wait for 256-bit processors to enter into production, so we'll have native support for time stamps.
Suppose the zero point of the new Unix time stamp was set at precisely midnight on the 1st of January, 1970, then as I'm writing this, the time stamp value would be approximately 22.6 x 1051. It so happens that 22.6 is the current temperature, measured in degrees centigrade, here in my office. Go figure.
I just got a letter from my cousin George. I had no idea whatsoever I had a cousin George, until now. You'll excuse me if I'm still a bit flabbergasted - I guarantee you would be too, if you had received this particular letter.
It seems that everyone and his dog is into genealogy, these days, and it appears that our elected representatives are no exceptions. As it turns out, I am apparently the fifth cousin to our very own George W. Bush. The one in the White House, yes. I'm sure you understand my perplexed state of mind at this point.
If that wasn't enough, I have now been cordially invited to a nice little Saturday barbecue, down at the ranch. The one in Crawford, Texas, yes. Although I do not exactly agree with the policies of George W. Bush and my common sense tells me to graciously decline, I am still intrigued by the opportunity to learn more about what must be considered the ultimate top brass in U.S. society. There is no RSVP deadline, and it seems you can just show up on the date in question and call for a ride, so at least I have plenty of time to decide.
On a more paranoid note, it is a bit unsettling to receive an invitation from the currently acting President, since that invariably means I've already been checked out by the men in long coats and dark glasses. In other words, The Department of Homeland Security is now aware that I've been surfing the internet for pictures of a scantily dressed Pamela Anderson and, no doubt, a large number of other things I'd rather they weren't.
So what should I do? Do I go to Texas in May or do I stay home? I'll need some time to think this over.
Update:
As you might have suspected, this is indeed just a hoax. Happy April Fool's Day, everyone! And just in case you were wondering, you can thank CNN for giving me this crazy idea.
I have been frustrated with the .NET framework's inadequacy when it comes to 2D graphics for quite a while. Instead of implementing the fundamental computational 2D geometry algorithms in .NET, Microsoft has chosen to simply port select GDI+ functions to the realm of managed code.
As a consequence, a System.Drawing.Region object does not consist of a collection of interrelated polygons, as most people would initially assume, but is instead represented as a bitmap (as far as I can tell). This makes boolean operations very fast, but it also means that the smaller geometries you're processing, the less accurate the result will be.
The neat thing about regions is that they can represent polygons with holes in them, which in turn can have islands in them, which may have holes, and so forth. They can represent very complex figures. If you want to know if the 'occupied area' of such a complex figure completely contains another complex figure, the Region class allows you to compute the boolean intersection of those two figures. By comparing the result with the second of the two operand figures, you can determine if that figure is completely contained by the first.
This is where the fun stops, because if the second figure is very small, the inaccuracies introduced by pixelation may cause the intersection function to return an empty result. Since an empty result won't be the same as the second operand figure, you will have to conclude that it is not contained by the first, even when that is indeed the case.
This problem (and others like it) in effect renders the Region class useless for anything but the most basic pixel-oriented operations. If you try to be creative, that will almost certainly get you into trouble.
Since computational geometry libraries are either insanely expensive or only available under GPL, I have spent the last several months writing my own, and it seems I am not done yet. It's been an educating journey, but also a very frustrating one, since, once again, a seemingly mundane detail has exploded into a task of mind-boggling proportions. If you're a software developer, you probably recognize this phenomenon - unless, of course, you've led a very sheltered life.
Anyway, Bill, if you want to spice up .NET with some genuine computational geometry, let me know.
When using a SpiltContainer, you may suddenly get a designer error:
"SplitterDistance must be between Panel1MinSize and Width - Panel2MinSize"
This bug is well documented, and a fix is available here.
Content © 2008 Torben K. Jensen. All rights reserved.
This website was made possible by Poseidon.
