More Maps

December 6th, 2007

I’ve mentioned my addiction to Google Maps before.  Recently, they’ve added 2 new features that are pretty neat.

First, in major downtown cities (for example San Francisco and Los Angeles), they’ve added 3D outlines of the buildings in the area.  It’s really quite neat, and offers a great way to orient yourself with landmarks when the satellite view offers sometimes too much info.

Second is the Terrain view.  I’ve wanted a topographical map for a while, and this one looks pretty sharp.

Love it!

Getting a real File Server

December 4th, 2007

I just purchased a file server.  Before I get into the specs, this is why I purchased it.

  • I wanted a backup solution.  Taking a cue from Scott Hanselman (here and more recently here), I needed a Family Backup Strategy.  I really hate the idea of all of my personal information stored on a single hard drive that can fail at any time.  I’ve heard too many horror stories.  This backup server will be in addition to an off-site backup of my most important data (via Mozy).
  • I wanted a central media server.  I’m playing around with Vista Media Center, and I really like it.  It’s every bit as good as Tivo, plus the flexibility of a full PC.  However, it’s currently limited to a single machine.  This is especially bad when I Tivo a show in the bedroom, but want to watch it in the living room.  I want a central server that contains all of my media, and have satellite clients spread throughout the house that can access that content.
  • I wanted more hard drive space.  Nobody can have enough hard drive space.   Pictures, home movies, games, downloads …  it all adds up!  Plus, I wanted it in a centralized location so that everything can be accessed from one machine.

——–

I had a few options to weigh before purchase time.  The most important option had to do with the case:

  • My initial thought was to go whole-hog and buy the rackmount case w/ redundant power supplies (for example here).  This is the ultimate piece-of-mind, both in terms of redundancy, and scalability.  Even if the power supply dies (which usually is the first to go), the second power supply will keep it going.  And with that many drive bays, it can handle upgrading whenever the need arises.
  • I also considered the Dell approach.  Dell’s servers are way too expensive, and their desktop cases don’t have room for a RAID storage solution.  But I did vow to myself that I would never build a PC ever again.  It’s always easier to just get a Dell.
  • My final choice was a regular PC case and build it from scratch.  I had to find a case that had enough drive bays, and not frustrate me completely when it came down to building it  (poorly designed cases usually makes building a PC the worst chore).

I choose building the PC from scratch.  I did this for two reasons.  The server will have to live in our bedroom for some time while I figure out how to make a server closet.  So a relatively quiet PC is preferred.  This rules out the rackmount.  Also, I’d prefer to keep the price down as much as possible.  I definitely don’t want to go cheap since reliability is my #1 concern, however the rackmount prices were starting to get excessive.

——–

How much storage should I buy?

This was an interesting excersize.  How do you balance the price versus how many terabytes do you need?  Notice I say the word “need”.  If it was how much I “want,” that’s a completely different question!  Probably the most important thing to note, is that with a RAID 5 setup, 6 x 500gb drives is both cheaper and offers more storage than 4 x 750gb drives (~$720 vs ~$850, Raid Calculator).  The trade off here is more physical drives equals more noise and more chance for failure.  And at the time of this writing, 1tb drives are just now appearing, and priced way above normal.

——–

Requirements

These were my own requirements for the file server that I created:

  • Intel quad core
  • Gigabit ethernet
  • Dedicated RAID 5 card (no motherboard solutions)
  • At least 4 drives
  • Seperate boot drive

——–

Purchasing

I took a lot of ideas from Jeff Atwood’s series where he custom built Scott Hanselman’s PC.  This post has links to the entire series.  In fact, I really liked the case he chose.  It offered both relatively quiet operation, plus room for all the hard drives I wanted to put in it.  In fact, the main hard drive bay contained room for 4 drives in a little pull out cage.  So everything’s nice and together.  Neat!

For the RAID, I’m fond of 3Ware’s cards, and since the case can hold 4 drives (plus boot), I’m going with the 9650SE-4LPML.  I’ve heard too many horror stories about motherboard or software raid, etc.  I want reliability, and from what I can tell these cards are the ones to get.

——–

Here’s the entire parts list:

  • (amazon) Intel Core 2 Quad Q6600 quad-core
  • (newegg) EVGA 122-CK-NF63-TR LGA 775 NVIDIA nForce 680i SLI ATX Intel Motherboard
  • (newegg) Crucial Ballistix 2GB (2 x 1GB) 240-Pin DDR2 SDRAM DDR2 800 (PC2 6400)
  • (newegg) BIOSTAR V8402GL26 GeForce 8400GS 256MB
  • (newegg) Antec P182 Gun Metal Black 0.8mm cold rolled steel ATX Mid Tower Computer Case
  • (newegg) Antec True Power Trio TP3-550 ATX12V 550W Power Supply
  • (newegg) Sony NEC Optiarc 18X DVD±R DVD Burner
  • (newegg) Western Digital Raptor WD360ADFD 36GB 10,000 RPM
  • (amazon) 3WARE Pci-e Sataraid  9650SE-4LPML
  • (amazon) 4  x  Seagate Barracuda ST3750640AS 750GB 7200 RPM

——–

Putting it together was fairly easy.  Granted, it’s been years since I actually built my own PC.  Coding Horror’s step-by-step pictures were a lot of help.  It’s always nice to have someone show you how to do it, rather than blazing a trail yourself.  The typical stuff was always a pain …  installing the CPU heatsink, cable lengths that are almost too short, hooking up all the LEDs and USB headers to the motherboard, trying not to lose any motherboard screws underneath the motherboard, etc.  And all without accidently short circuiting or breaking off anything.

——–

Looking back at the purchase, I have a tinge of buyer’s remorse.  In the end, I got a really fast PC, with about 2.5tb of storage for about $2000+.   What’s the alternative here?  Well, the obvious thing is an external hard drive.   Yes, there are 2TB external hard drives available (essentially 2 x 1TB drives mashed together).  But, I wouldn’t trust this solution as a primary back up solution.  The drives themselves are just as reliable as the desktop counterparts.  However, I worry about the cheap controllers and connectors they attach too.  If that connector breaks, access to your data is no longer possible, even if the drive itself is working just fine.

But what about other solutions?  After buying the machine, I was wondering about buying *2* external hard drives.  2 x 2tb external hard drives is still cheaper than the machine I bought.  Wouldn’t the reliability concerns be moot, considering that the data is being copied to both external drives?  I suppose that I wouldn’t get anywhere near the performance throughput out of those external drives, plus I would still need a machine to plug them in to.  But I suppose it is a valid alternative, and probably one I should have considered.

Oh well, I can enjoy my server now.  Now, I just have to find a place to put it!

Registry vs INI files

November 29th, 2007

Raymond has a good article listing the reasons why INI files aren’t good enough, and so Microsoft invented the registry.

Why are INI files deprecated in favor of the registry?

I think it’s a good summary, although it is very one-sided.  He leaves out all the disadvantages the registry has introduced.

There are a few good comments after the article, but they get lost with all the spam and trolls Raymond’s blog attracts.

“… the possibility to migrate 100% of an application and all of its settings intact, from one Windows PC to another Windows PC”

“Well, ini files (meaning .ini, .xml, etc.) obviously have disadvantages. But they also have advantages.  You can easily fit all program + configuration into a single directory, which allows:
- “an application on a memory stick”,
- “an application without installer”,
- “an application with very limited rights” (write and write only one directory, no registry access allowed),
- multiple versions to exist peacefully
- modify a config file by hand, quick and dirty style.”

“I have found the registry to be unreliable due to corruption.”

“…[a tool that] tracks which applications touched what registry entries and could strip unneeded ones on an app uninstall”

“No sane user-visible tool for manipulating registry entries.  That is — manipulating the registry is foremost a programming interface.  Regedit is not even 1/10 of what is needed for even a knowledgeable person to make edits easily”

“XCOPY + INI solves 99% of the problems:
1)Application failure -> XCOPY (whole app or ini only)
2)Uninstall -> DELETE
3)Backup -> COPY *.ini d:\myappbackup\, zip it if needed.”

“I *do* think the migration problems are real. If I want to back up my program settings and reinstall, I know how to do that on Unix for the most part. Backing up /home/evan does most of the trick, and backing up /etc does pretty much all of the rest.”

And Raymond’s snarky reply:  [HKCU backs up your user, HKLM backs up your system. Restoring it is a big more problematic, because you have to merge changes, but this too can be done. -Raymond]
Problematic indeed…

A long comment here, but very good, plus Raymond’s snarky reply:

“The Registry is, for all its other benefits, a proprietary solution … And by that, I mean that there’s a fairly short, finite list of tools that can work with it, and pretty much all of them depend on the Windows kernel.

Why is this bad?  Maybe if you’ve never had to fix a broken Windows box, you wouldn’t know.  When you have a Windows box that is currently unbootable because some random program ate the Registry, your main option, in most cases, is to reformat the machine and start over, not because of the lack of logs, not because of the lack of audits, but because there’s no way to get into the system, manually fix the damage in the Registry, and continue life normally.

Contrast this with Un*x’s .conf files, where you can boot off a CD or even via a network and use any of ten thousand different text editors to edit the .conf files until the system is functional again.”

Raymonds comment - [Said clue was caught years ago. Boot Windows off a CD (use WinPE) and then run regedit from the CD. -Raymond]

Oh how frustrating to get a reply like that!  The Raymond haters have just increased.

Fortunately, the commenter had some backbone and replied:

“I’m sure that’s just ducky if you’re in a corporate environment and have access to a Volume License that includes WinPE.  So what do you have to tell those of us who are asked to repair aunt Sally’s desktop PC while we’re visiting her on vacation?

Actually, okay, WinPE 2.0 is available to the public now … but prior to THIS YEAR, you really did have to have a corporate Volume License …  Hence the existence of third-party solutions, each more hacky than the next.  I wouldn’t exactly call that a viable solution “years ago.”

Would it really have killed you guys to include even a marginally-functional RegEdit on the Windows XP Install CD?”

Also in reply to his comment:

“Does that contain a tool to fix any structural damage to the registry? Like fsck or scandisk for filesystems? Damaged .conf files can be repaired easily, worst case you could rewrite the whole file from scratch with the help of a man page. How do you fix a mutilated registry file?”

Personally, I think the biggest problem is the lack of tools.  A huge proprietary database, with no elegant tools for:
- modification
- clean up
- backup/restore/merge
- defrag
- damage recovery
which just makes it a big black box, that continues to increase in size for the life of the machine, continues to slow down until the system is completely useless, at which point your only choice is to re-install the OS from scratch.  I’ve seen this scenario more times than I can count.  It’s what gives Windows a bad name.

It really needs the tools to combat this problem.

Visual Studio Help

November 9th, 2007

I have a post on the Visual C++ forums that isn’t getting a lot of attention.  So I’m soliciting more comments.

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2390510&SiteID=1&mode=1

I want to create a “lib of libs”  (what’s the technical term for this?) with Visual Studio and it’s not letting me set this up in a way I want to.

Any ideas?

Gamefest 2007

November 7th, 2007

The audio and slides from Gamefest 2007 are available here:

http://xnagamefest.com/presentations.htm

This is Microsoft’s game developer conference held in August.  A lot of the material you see here is similar to what you will see at GDC, so might as well pick it up now.

Hannah Montana and friends

November 2nd, 2007

Halloween was fun, here’s some pictures of the troops:

img_2815a.jpg

img_2814a.jpg

img_2816a.jpg

(sad thing is, I’ll probably get a million hits to this blog because of the title)

Running managed .exe from a network share

October 29th, 2007

I’ve been bitten by this at work many times.

For reasons of “security,” Microsoft makes all managed .exes crash when run from a network share.

Initially, this causes major confusion.  What’s the problem?  It works fine on my machine.  Other .exes on the network work just fine.  Permissions problem?  Network lag?  Many many google searches later do you find the problem.

The end-user experience is awful.  What’s this wierd crash dialog that is showing up?  I’ve never seen this before…

If you get a chance, help me out and voice a comment supporting this change.

Poll: Allowing .NET EXEs to run off a network share

 (I’ve said my piece)

Typing test

October 2nd, 2007

It’s a 3minute test, come on, you know you want to:

http://www.typequick.com/ttest/testyourskills.html

My score:

Number of words typed: 213
Test duration: 3 min
Speed: 71.0 words/min. (355 keystrokes/min.)
Error penalty: 6
Accuracy: 97.2%

Nehalem

September 18th, 2007

Intel’s Nehalem

This is the chip to get.  Look at that, Hyperthreading is back!  16 logical processors, wow!

Consolas

September 4th, 2007

Because this came up last week.  Consolas is a ClearType only monospaced font.  Ships with Vista, can also be downloaded separately for Visual Studio users.

http://en.wikipedia.org/wiki/Consolas

Consolas Font Pack for Microsoft Visual Studio 2005

And while you’re at it, make sure your ClearType is turned on, and you’ve configured it properly using the ClearType tuner (for XP and Vista).