# Saturday, December 06, 2008
The onboard Atheros LAN (never heard of them) on my P5Q Pro motherboard was freezing if I transferred large files (a few gigs) over the network. My Windows Server 2008 Server x64 driver was WHQL and current according to the ASUS support site. I went directly to Atheros and found a more recent driver that was also WHQL. I thought that would fix it but the problem persisted!

So I opened up my box-o-old-PCI-cards and I had an Intel Pro/1000 MT Desktop LAN adapter in there. After uninstalling the Atheros driver and disabling it in the BIOS, I installed the Intel card and its most recent driver.

Now the server is solid again, and can transfer large files with ease. I moved a 5 gig rar at over 80 meg/sec! So I don't know if my Atheros experience is common or I just got a bad board, but I'd rather just use an old, reliable part than RMA this motherboard. The Intel Pro/1000 series rocks (I have several of them, single and dual port varieties, PCI and PCI-X varieties).

Saturday, December 06, 2008 5:19:16 PM (Central Standard Time, UTC-06:00)
So I upgraded a Virtual Machine Host to an ASUS P5Q Pro and 3Ghz Core 2 Duo. The installation went smoothly except for a couple things. One of them was that the Marvell BIOS would hang for over a minute with every bootup. This was pretty annoying but I eventually fixed it by changing the single optical drive that was on the IDE controller from Cable Select to Master. Now the BIOS takes only a couple seconds!

Saturday, December 06, 2008 5:11:44 PM (Central Standard Time, UTC-06:00)
I think this behavior is by design, where Windows Vista and Windows Server 2008 treat networks they do not understand as public ones, assuming they are more dangerous. This poses a problem with VMWare Workstation 6.5 and VMWare Server 2.0, whose networks never register as anything other than Unidentified Networks, as far as I know.

So, if I'd like a computer running VMWare (a host) to be available for Network Discovery and / or File Sharing, I need to configure these options every time I boot up that computer, which is pretty annoying. Since I don't use the NAT or DHCP features of VMWare (I use only network bridging), I found a way to get rid of the Unidentified Network entirely by disabling the VMWare options I don't use. I can always enable them later.
  1. Start the VMWare Network Editor as an Administrator
    1. Hit the windows key and start typing "Network" without the quotes.
    2. Right click "Virtual Network Editor" and select Run as Administrator.
  2. On the NAT tab, set the VMnet host to Disabled and hit Apply. The Service Status should now read "Stopped". If you don't have an apply button it's because you didn't run the Virtual Network Editor as an Administrator.
  3. On the DHCP tab, remove the two Virtual Networks called VMnet1 and VMnet8. Stop the DHCP Service, and hit Apply.
  4. On the Host Virtual Adapters tab, remove VMnet1 and VMnet8 again, and hit Apply. This should cause the unidentified network to disappear from the Network and Sharing Center.
With no Unidentified Networks, your system should properly persist the Network Discovery and File Sharing options.

VMWare adapter bridging still works, and resources previously occupied by unused NAT and DHCP features are now freed up. If you ever need all this stuff back, just restore your original settings. I'd just use an unmodified VMWare host for reference.

2008/12/07 Update: I found an alternative work-around. You CAN change Vista and Server 2008's default behavior for Unidentified Networks. Just run the Local Security Policy. You'll see the setting under Network List Manager Policies. It's simply called "Unidentified Networks". Change the Location Type to Private and you're all set. You can leave User Permissions unset because the default setting will allow you to change the location. Immediately, and upon further reboots, your VMWare Unidentified Network will show up as Private, which will allow your Discoverability and File Sharing settings to survive system restarts.

Security Warning: By changing this setting, you're saying you trust unidentified networks to an extent. For example, if you were to install a device or application that created a network windows could not identify, it would immediately become private, and take on the private profile of your firewall, which is generally less restrictive. I personally find this risk acceptable, because I doubt I will be creating many unidentified networks.

Saturday, December 06, 2008 3:22:28 PM (Central Standard Time, UTC-06:00)
# Friday, November 28, 2008
I had the weirdest problem. My Logitech G15 Programmable Keyboard's macros (assigned to the G Keys) were not running in Visual Studio. At first I thought they were not working at all, but then I noticed they worked fine in Notepad and just about every other app I had running. So why not Visual Studio? I could record them there, but not execute them. Weird!

Well, because I do web development on IIS, I need to run Visual Studio as an Administrator. Since I run the Logitech G-series Keyboard Profiler under my normal, limited user context, it was Vista's security that was preventing my G keys from working. The amount of interaction between limited-user-run apps and administrator-run apps is severely limited, so that limited user apps cannot inherit the administrative rights of administrator-run apps. Makes sense.

The solution: Run the Logitech G-series Keyboard Profiler as an administrator. It will now have the permissions to inject keystrokes into applications run by an administrator account!

Security Warning: By doing this, you're trusting the keyboard profiler. You're trusting that it won't accidentally mess up your system, and you're trusting that it doesn't have any exploits that malicious users could use to get to the rest of your system. I personally do not think this is a significant risk. It's a risk you probably wouldn't even think about if you were using Windows XP. If you keep your system clean, this should be a "hole" you can live with. Just my opinion.

Friday, November 28, 2008 2:53:57 PM (Central Standard Time, UTC-06:00)
# Tuesday, November 25, 2008
My displays were getting pretty dusty and had a few fingerprints (don't you hate it when people touch your monitor?!). It was time to clean them. I did a thorough search to find out all the facts on properly cleaning LCDs. So here's what I found, and I think that you will find it's pretty reasonable. Don't listen to anyone that tells you stuff without backing it up with reason. There is a surprising amount of misinformation out there!

Obviously, LCD screens are sensitive equipment, so the least invasive approach is the best. Do the minimum required to achieve the necessary results.
  • If your LCD contains an anti-glare coating (has a purplish or blue hue -- most do), then be extra careful. I'll explain below.
  • If your screen is the glossy kind (reflects lots of light and looks more like glass) you have a little less to worry about when it comes to scratches, simply because this surface is harder.
Start by turning off the display. Aside from the obvious safety reasons, it's often easier to see dust this way.
  1. The first step in actual cleaning is the safest and least invasive: Blast the screen with compressed air. This will get some dust off, and is the best way to get up in the corners of the bezel (my personal experience). The compressed air will get rid of the larger particles of dust, reducing the possibility that you will scratch your screen.
  2. Often, compressed air alone will not be enough. If it's not, try wiping the screen with a dry microfiber cloth. You can get these at a camera store. Microfiber cloth is ultra-high density, so its weave will not scratch your screen. Don't use paper towel or a kitchen / bath towel as they can scratch your screen. A few sources I've found say that if you don't have microfiber laying around (heh, who does?) you can get away with using a soft, plain white 100% cotton t-shirt. This makes sense to me because 100% cotton shirts have tight weaves and a certain texture that is not nearly as coarse as a bath towel or paper towel.
  3. Most of the time, a dry cloth won't even cut it, especially if you have finger prints to deal with. Apply distilled water to the cloth (not directly to the screen, because don't want it dripping into the frame) and wipe on gently. Some sources I found say a circular motion is the best, while others say to go in just one direction, top-to-bottom, for example. I went with gentle circles and that seemed fine. I think the most important part here is just to be gentle. About the type of water: Whenever any one of the sites I've found actually specified the kind of water to use, they recommended distilled water. One site said that tap water or mineral water could leave a mineral residue. I'm not sure if that's true but distilled water is easy enough to find so that is what I went with.
  4. Finally, if water alone is not cutting it, use a 50/50 mix of distilled water and isopropyl alcohol (which is usually already a 70% mixture).  All sites I found that explicitly mention the type of alcohol mention isopropyl alcohol, and some go so far as to say ethyl alcohol-based rubbing alcohol is bad because it contains oils. Do NOT use glass cleaners like 409 or Windex, because they contain ammonia, which can damage the display's protective coating.
That's everything I found and it's been working really well for me. Most of the time the microfiber and distilled water is all I need! My displays cost over $2000 combined so you can bet I take this seriously :)

Tuesday, November 25, 2008 12:38:43 PM (Central Standard Time, UTC-06:00)
# Monday, November 24, 2008
So I decided to go with DasBlog. It's built with C# and ASP.NET. It's taking a while to get the skinning done, but I am getting there. FireBug sure makes it easy to troubleshoot CSS debugging.

Monday, November 24, 2008 8:55:09 PM (Central Standard Time, UTC-06:00)
# Friday, November 21, 2008
I've been developing web apps for a decade now and I am finally getting around to creating a journal of my experiences. I hope I can help other developers by sharing stories about what I've run into and how I resolved it.

Friday, November 21, 2008 9:18:42 AM (Central Standard Time, UTC-06:00)