Showing posts with label tips. Show all posts
Showing posts with label tips. Show all posts

Saturday, January 2, 2010

Problems with NVIDIA GT220 and Windows 7 64-bit

Sorry about the extremely narrow focus of this post, but I wanted to make sure that anyone out there suffering from the same problems as mine knows that they're not alone.

I recently built a computer from parts (more on that another time – I'm not sure how many people would be interested in the details) to use as my primary development machine.  The last time I built a machine was in 1999 or 2000.  A lot has changed in the past ten years.  Fortunately, the assembly/setup process went relatively smoothly, except for problems with one part.  I bought the ASUS-branded version of the NVIDIA GT220 (ENGT220) graphics card from NewEgg.  I'd happily link to their product listing, but that would be rather silly, given that I can't currently recommend it as a purchase.  The card slid nicely into the PCI Express 2.0 x16 slot and my DVI cable attached happily to the appropriate port (this version of the card comes with D-SUB/VGA, DVI, and HDMI ports).  However, when it came time to install Windows 7 64-bit, the problems began.

At first, it was recognized as merely a generic video card – no big surprise, still a bit of a disappointment for a mainstream card that is by no means on the bleeding edge.  My next idea was to download drivers from ASUS's website.  I installed the newest version and rebooted.  Up came the the login screen at full resolution and I thought I was done.  Unfortunately, after I logged in, my screen went totally blank/black.  After much experimenting and many installs/uninstalls, I managed to get the card to work with a slightly older version of the drivers provided by ASUS.  The story would end there, but sadly the problem returned shortly after.  This time, I first did a search on Google for gt220 screen blank, which revealed that others were having similar problems, and not just with the ASUS version.  After reading a blog post and some forum questions and trying several other driver versions, I finally found something promising.  A user on the NVIDIA forums complained that his DVI port had stopped working.  Inspired by that, I tried connecting my monitor via the D-SUB/VGA port instead of DVI.  That worked!  Since then, I've been running for two weeks without a problem.  I can't say I find the solution very satisfying, but at least it worked.

By the way, I'd love to get feedback from other GT220 owners as to whether the solution I described (or something different) works for you.  Please let me know in the comments.

Update (Dec. 10, 2010): I'm a bit embarrassed to admit that I finally gave up and bought a new graphics card with an ATI Radeon HD 5570.  I'd link to the actual card, but I got a great deal on it because it was just about to be discontinued.  So far, it's been great.  It's slightly faster than my GT220 card, consumes less power, has a quieter fan, and (best of all) works on both the D-SUB and DVI ports.  Good luck to everyone who sticks with their GT220!

Monday, December 28, 2009

Handy But Hidden: Collections.newSetFromMap()

I was reminded again today of how much the core Java libraries have grown over the years.  It can be really hard to keep track of all the nice little features that get added in each release.  Today, I was wishing that there was a ConcurrentHashSet class or some other HashSet-style concurrent collection.  Before implementing something myself, I did some searching on Google and found a nice way to solve the problem.  In Java 6 (a.k.a. JDK 1.6), Sun added the utility method Collections.newSetFromMap(), which allows you to pass in an empty backing Map and get out a Set with behavior based on the underlying Map.  So, here is all I needed to do to build a concurrent HashSet:

Set<Observer> observers = Collections.newSetFromMap(new ConcurrentHashMap<Observer, Boolean>());

I also found a bug/enhancement request in Sun's bug database suggesting that this feature should be documented in any core Map for which there is no corresponding Set implementation, such as WeakHashMap and IdentityHashMap.  Given how long I went without knowing the method existed, I wish they'd done it.

Thursday, September 17, 2009

Subversion – Odd Problems and Funny Solutions

I've been using Subversion and TortoiseSVN since 2005.  They're both great technologies and I'm very happy they exist.  However, I think anyone who's been using them for a while has periodically encountered some weird problems and has had to come up with a few strange (and even funny) solutions.  I certainly have.  In this post, I describe one example.

Earlier this week, a developer I work with saw the following in a TortoiseSVN window when he ran update on a working copy:

Error: Couldn't do property merge 
Error: Unable to make name for 'C:\tempfile'

Not knowing how to proceed, he asked me for help.  We tried my typical first approach: running cleanup via Tortoise on the working copy.  That didn't fix it, so we ran a "Check for modifications" and discovered that there were a few temp files scattered through the directory tree.  We deleted those and tried again.  Still the same message, so on to Google.  I searched for various permutations of the error messages, but was unable to find anything other than code check-in comments for Subversion itself, which appropriately enough uses a Subversion repository.  For some reason, I wish I remember why, we next tried updating just one child directory within the working copy.  It worked!  We tried updating all the other child directories and those worked as well.  So, that suggested that there was something wrong with the Subversion metadata, but only at the top level.  We went into the .svn directory and started browsing through the files.  When we looked at the entries file, we noticed a few lines starting with "incomplete".  I tried moving the entries file out of the .svn directory to a totally different location in the file system, hoping that when we updated or ran another cleanup, the file would simply be recreated.  Unfortunately, with that file missing, the directory was no longer considered by Subversion to be a working copy.  Disappointed, I moved the entries file back into .svn and started thinking about what to do next.  On a whim, the guy I was helping tried updating again and it worked!  Somehow, changing the directory from a valid working copy to an invalid one and back again was enough to fix everything.  Who knew?!

Have any good Subversion/TortoiseSVN troubleshooting stories or troubleshooting tips of your own?  Please leave them in the comments.

Tuesday, August 25, 2009

Curious Concept's Excellent JSON Pretty Formatter and Validator

I just wrote a bit of code using Groovy HTTPBuilder to fetch and parse some JSON content to help answer someone's question on StackOverflow.  When trying to pull some interesting data out of the JSON to display, I realized that it would be much easier for me to understand the structure of the JSON if it were pretty-printed (or pretty-formatted).  When I googled for "JSON pretty format", I found a helpful blog entry pointing me to Curious Concept's JSON Formatter (& Validator).  It's a simple online tool that allows you to paste in either a URL pointing to JSON content or the content itself and display it in either compressed or readable form.  It might not have been very hard to code, but it's extremely useful.  Thanks Curious Concept!

Update: I'm trying out the JSONView Firefox plug-in.  So far it seems to work pretty well.  Even so, I expect I'll continue to use Curious Concept's tool for a while, since I spend a fair amount of time in Chrome.