Neverwinter Nights 2 Crash on Windows 7

I’ve had Neverwinter Nights 2 pretty much since it was released, but I never bought the expansion packs. I installed it on my new machine, and it’s worked perfectly. Then I saw that the expansion packs were 50% off right now, so I went and grabbed them, digital download.

I installed the first expansion first, Mask of the Betrayer. I launched NWN2. It crashed before it ever started. I tried to update, in case there were updates specific to MotB, but it said I had to launch the game before I could update; but launching the game hangs instantly.
So I uninstalled, thinking the issue was that NWN2 was fully updated before I installed MotB, which is built against v1.10. I reinstalled NWN2, didn’t update it, just launched it, closed it, and installed MotB. And it crashed as soon as it opened.
So I installed Storm of Zehir. And it installed successfully. And NWN2 launched without crashing. SoZ is built against v1.20, so it was a short trip to the current latest v1.23, which also launches without crashing. All is well now.
Just thought I’d post this for anyone having Neverwinter Nights 2 crash on Windows 7 after installing Mask of the Betrayer. Try installing Storm of Zehir (if you’ve got it) and see if that helps. I don’t know if you have to install against a base (non-updated) copy of NWN2, as I haven’t tried it with updating NWN2 fully then installing the expansions. However, given that there are no catch-up patches and you have to install all the intermediate patches to get the boxed v1.00 up to the current v1.23, installing MotB and SoZ may be the fastest way to get a fresh install fully-updated anyway.
Hope that helps somebody out there!

Windows Backup Error (0x80070002) When Adding Custom Libraries

I’ve encountered an issue with Windows Backup in Windows 7 that, upon some research, appears to be both a) not uncommon and b) not new; it seems this has been an issue since the new backup tool arrived in Windows Vista. Users have posted in Microsoft’s forums, and Microsoft has responded with workarounds, but no indication that a fix is forthcoming.

For those with this issue (your backup completes successfully but “some files were skipped”, and the log shows something like “Backup encountered a problem while backing up file C:\Windows\System32\config\systemprofile\My Projects Error:(The system cannot find the file specified. (0x80070002))” — the “My Projects” would be the name of a folder you added to a library you created), the fix is relatively simple.
  1. Either click the Change Backup Settings link from the error message, or open Backup and Restore and click Change Settings.
  2. Choose your destination drive.
  3. “Let me choose.”
  4. Uncheck any libraries you’ve created.
  5. At the bottom under Computer, expand you drive and work your way to the folder(s) contained in the libraries you disabled in step 4. Check each one.
  6. Click next, make sure all your files are listed, and click Save & Exit.
  7. Try your backup – it should complete successfully, with no files skipped.

Chronos Mk. IV

Chronos Mk. IV is now online.

Is it a secret military program? The codename for SkyNet? No, it’s my new PC. It’s replacing — well, in some respects — my last PC, Chronos Mk. III.
My last box was built four years ago, after I got a new job and saved up enough to build it. It was an Athlon 64 box that was upgraded two years ago with another hard drive, a new graphics card (GeForce 8800GT, replacing whatever was mid-range when I first built the machine), and a dual-core Opteron.
This year my best friend got me a Radeon 5770 as an early Christmas present. It’s a good 50%+ performance improvement over the 8800GT. But graphics wasn’t the only place where I found lackluster performance on the old machine. It was time for a full upgrade.
So, after some research and prioritizing and budgeting, I put together a machine for $1150 including display, but excluding the graphics card, which was a gift. Taking off the display and adding the graphics card would come out roughly even. It’s the low end of midrange, but that doesn’t mean I’ve had to sacrifice performance.
Chronos Mk. IV Specification:
  • Intel Core i5-750 @ 2.6GHz x 4 cores (up from 2.2GHz x 2 cores)
  • ASRock P55 Extreme motherboard
  • 4GB (2 x 2GB) Corsair XMS3 DDR-1600 (up from 2GB DDR-400)
  • 2 x 1TB Samsung SATA-II HD (up from 1 x 120GB PATA & 1 x 240GB SATA)
  • ATI Radeon 5770 (up from nVidia GeForce 8800GT)
  • Plextor DVD-RW with LightScribe (about the same as Chronos III’s DVD-RW, with the addition of LightScribe, which is pretty awesome)
  • Sunbeam 680W high-efficiency modular power supply
  • CoolerMaster RC-690-KKN1-GP (last case was a CoolerMaster Centurion 532)
  • Samsung SyncMaster 2343 LCD (only $200 on newegg, and very high contrast and pixel density — 2048×1152 in 23 inches!)
  • Windows 7 Professional 64-bit (up from Windows XP Home SP3 32-bit)
After four years, it doesn’t take much to make a serious upgrade. And a serious upgrade it is. This thing is beyond snappy, at least compared to the old box. Maybe one day I’ll get an SSD and really get a feel for fast, but in the meantime, this will do quite nicely. In the next two years or so I expect to upgrade the CPU and/or GPU — the two-year half-upgrade worked well for me last time around, I don’t see any reason to abandon the strategy; if anything, the rate of advancement is slowing down. If, in two years, SSD prices have fallen significantly (and some of the kinks have been worked out), that may be included in the half-stride upgrade.
It works fairly well with the processor technology cycle; a socket usually lasts about 2 – 3 years, which means if I buy when the socket is no longer brand-spankin’ new (i.e., not agregiously overpriced), then two years later, I can buy a CPU upgrade on the cheap as they offload old inventory to make room for the next new socket type. GPUs, on the other hand, don’t worry about the socket type — the last non-backward-compatible slot change for graphics cards was several years ago with the change from AGP to PCIe). However, their lifecycle is much shorter; we see a slew of new graphics cards every year. That means a two-year upgrade plan nets you a graphics card two generations newer, so a midrange card at a modest price can bring a significant performance improvement. Very rarely does one need to worry about not being able to play a new game with a two-year-old card; the only concern might be not being able to max out all the graphics settings. But when you get your new card, you can max out all your old games, and play new games with very respectable quality.
Everything else can remain the same, barring any component failures, for four years, until it’s time to bite the bullet and move up to the next big thing — meaning a new socket, which means a new motherboard, which means new memory, and at that point you might as well just build a whole new box.
What am I using all this horsepower for? PC gaming, audio mixing and low-latency recording, image editing, and video editing. I can nearly max out all of my current game library (Neverwinter Nights 2, a relatively old game, still can’t be run at maximum quality at full resolution; I either have to turn shadows down to medium, or turn the resolution down), and I have high hopes for the games I’m looking forward to right now (Supreme Commander 2, Starcraft 2).
I can run Reaper at latencies as low as 18ms with DirectSound. Using the DigiTech RP500 ASIO driver with Reaper x64 on Windows 7 x64 causes entire machine to hang, even the task manager is inaccessable, forcing me to force power-off. If anybody else is having has/had this issue, please post in comments — a Google search didn’t turn up much for me.
I’m happy with all of the components, but there’s little to say that benchmarks and more-informed reviewers can’t cover better than I can. Check out AnandTech if that’s what you’re looking for.
The case, however… I’m very happy with this case. My previous CoolerMaster tower I love dearly, and I’ve built several other people computers using the same case. It’s roomy but not huge, it has excellent ventilation, and a clean, modern look. The CoolerMaster 690 is similar, but better — the look is even more sleek, the ventilation even better, and the case is even easier to work with. I’ve even gotten used to having the power supply on the bottom.
The case offers a full grille front for ventilation, much like the Centurion 532, but they also made the back half of the top of the case a grille with space for two 120mm fans, directly over the CPU and memory. This provides excellent passive ventilation without fans, and a great spot for exhaust fans if you’re planning on overclocking. The case comes with a 120mm fan in the front, next to the hard drive bays; one in the back, at the top; and one in the side, over the GPU. There is also a mounting for one more 120mm in the side, over the CPU, and one more in the bottom, between the PSU and drive bays. If you wanted, you could make this thing sound like — and possibly generate — a tornado. The motherboard tray is also drilled under the CPU, and the right side panel as well, providing back-side passive ventilation for the CPU and motherboard.
The hard drives mount without tools using plastic caddies. The cables face the left side of the case, meaning you have to remove both side panels to add or remove drives, but it does clean up cable routing inside the case, which could be a nightmare with the PSU next to the drive bays. The 5.25″ drives are toolless, using a bracket that snaps into the screw holes on the drive with a sliding lock lever. The PCI backplates are also toolless, though I had to use one screw to mount my graphics card because part of the card wouldn’t allow one of the toolless clips to snap into place, but the other did (it is a two-slot card).
The power supply mounting has rubber feet that the power supply sits on, and a foam rubber gasket between the power supply and the back of the case where it screws in, to isolate the vibration of the power supply from the case. So this can be a loud, cool case with many fans, or a cool, quiet case with few fans but plenty of passive ventilation.
The power and reset switches, and the power and HDD lights, are on the front right edge of the case, a little below mid-height. The springs are a little stiff for my tastes, but otherwise, no complaints. The ports are all on top of the case — 2 USB, 1 FireWire, 1 eSATA, headphone & microphone — which is convenient for me since I keep the case sitting on the floor. My previous case also had the ports on top, which I liked, but the power and reset buttons on top were a disaster — I had to unhook the lead for the reset switch because my cats kept restarting my computer at inconvenient times. I hardly ever use the reset switch anyway. The new case is perfect for my needs.
Windows 7 is a solid upgrade as well; I skipped Vista entirely, just like I skipped ME. I’ve had no problems so far finding drivers, and had no compatibility problems, though apps not designed for Vista/7 seem to cause some aggravating problems with UAC; I’ve got a couple of apps that prompt me every time I open them if I’m sure I want to open them, which is infuriating. I found a fix that involves using the Application Compatibility Toolkit, which I’ve yet to try out, but I certainly hope it helps.
So far I’ve been able to replace Launchy with the new Start menu – same functionality for the most part, all I have to do is hit the Windows key instead of Alt-space. Aero is decent, if not mind-blowing, and it does a much better job of DPI scaling than XP did; my display has a high enough pixel density that turning up the interface DPI was a must, otherwise text and UI features were just too small to work with.
All in all, I’m very happy with the new machine; you can expect to see updates here if any of the components turn out to have serious problems or shortcomings that are not yet apparent.

NetBeans + Tomcat + Java for MacOS X 10.5 Update 4 = Fail

Just struggled with this for a couple of days. After updating MacOS X with the latest Java update (Java for MacOS X 10.5 Update 4, patching security holes mentioned in the news the last few weeks), I could no longer launch Tomcat from NetBeans. And that’s a Bad Thing. I use NetBeans all day for work, on a web application that gets tested through the local copy of NetBeans.

The error I was getting was that it couldn’t find a file/directory under “/var/folders/ZC/ZCcmX61vGaqOjbHwwgwW-k+++TI/-Tmp-/”. The filename changes every time, in the format “context1234567890123456789.xml”. The “+++” throws it off because the path is passed as a URL parameter to the Tomcat Manager, which converts the +’s to spaces.
The solution is to go to your NetBeans application folder, right-click the application, and choose Show Package Contents. Under Contents/Resources/NetBeans/etc, open netbeans.conf, and find the line for “netbeans_default_options”. Go to the end of this line, and add, inside the end quote, “-J-Djava.io.tmpdir=/tmp”. Restart NetBeans, and you should be good to go.

Stackoverflow.com

Today marks the public launch of Stackoverflow.com, the new programming Q&A site started by the famous Joel Spolsky. So far it looks like it’s shaping up to be a very good resource for developers; and I agree with everything they said about Googling for solutions in this post. You can look me up on the site.

Beyond the site itself, which I think will become an oft-used resource for me, I also really like their badge system. I think a similar system could be a huge boon to any forum, social networking site, or other community site. Game developers learned years ago that people will be more active in an area they already enjoy if they can be recognized for their activity. The same idea applies just as well to community sites. I think it’s brilliant, and I think we’re going to be seeing similar implementations a lot more often.

Google Chrome

I downloaded and installed Google’s Chrome browser today, and I have to say, I’m impressed. It handles tabs better than FireFox 3 does. The UI is clean and intuitive, though no moreso than FireFox’s. It performs well, but not noticeably better or worse than FireFox 3. It has a desktop web app mode – exactly what Prism was supposed to be, only it actually works.

What I find particularly striking about Chrome’s interface is a kind of minimalism that one usually expects to see in mobile software. It makes me wonder if, like Apple bringing Safari to the iPhone, Google might be using the desktop as a proving ground for a browser destined for the Android mobile platform. Use it for a few minutes and tell me if you can’t picture using the same interface on a palm-top touch-screen.

It’s not all roses, however. Chrome is currently Windows-only, a big downside in my book, as I use my MacBook more often than the PC when it comes to web browsing. It doesn’t have all the options that FireFox does. It’s got some quirks – the “smart” address bar can be irritatingly overzealous, and the scroll wheel seems to scroll half a page at a time, with no way to change it. And, of course, all those lovely FireFox extensions I’ve gotten so used to having around aren’t going to work with Chrome. Still, it’s a solid alternative to IE, especially for the more casual web user. Web developers, however, are better off sticking with FireFox and it’s treasure trove of extensions.

XML: No, it isn’t.

XML, well, just isn’t. It’s a raging misnomer. XML is, in theory, the eXtensible Markup Language. I have a couple of problems with that idea.

First, it’s not extensible. It just isn’t. You can’t extend it. I can’t extend it. No one can extend it. You know how I know? Because there aren’t any extensions. Not a single one. Go ahead. Go find an extension to XML. I’d love to hear about it.

But it’s just as well – there’s no reason to extend it. XML defines very little; it’s a syntax definition, nothing more. DTDs and Schemas are what make XML useful. They aren’t extensions to XML, they’re applications of XML. What’s more, the DTDs and Schemas can be combined in a single document, but even they can’t be extended.

Second, while it can be used as a markup language, it almost never is. XHTML is a markup language based on XML. There are a few others that are (debatably) markup languages, like DocBook, but even the likes of DocBook are more on the side of data structure definition than markup. A database file isn’t markup. A Java properties file isn’t markup. It’s a data structure. Per Wikipedia:

A markup language is an artificial language using a set of annotations to text that describe how text is to be structured, laid out, or formatted.

Does that sound like most of the XML formats you’ve encountered? How many XML config files have you had to deal with? Do they fit that description, even a little bit? Of course not. You don’t care about the structure, layout, or formatting of the text in a config file. All you care about is getting at the particular block of text you want. So, what is XML then? Something of a generic hierarchical data file format – though I suppose GHDFF just isn’t as catchy as XML.

Now, besides being aggregiously misnamed, it’s also a wretched tool for nearly every purpose to which it is applied. It’s a language that aims for the middle ground between human-readable and machine-readable, and while it achieves both, it does so very poorly. XML is annoying to read, tedious to write, and resource-intensive to process.

I’m not suggesting dumping XML entirely, not at all. The angle-bracket tax is a fee worth paying for actual markup – you need syntax to seperate the markup from the text. XML is a flexible and effective format for marking up text. What it isn’t is an effective format for storing arbitrary data. It’s usable, but nowhere near optimal. What’s the solution? Something else.

Programmers have a tendency to cling to standards, to try to apply them as much as possible. “Don’t reinvent the wheel,” we say. And that’s a perfectly reasonable mantra – but that doesn’t mean all wheels are created equal. When’s the last time you saw a bicycle wheel on a car? Would the world be a better place if every wheel were the same? Sure, they’d be interchangeable – but they wouldn’t be anywhere near as effective.

We need to step back sometimes, and think about whether there is, or could be, a better wheel for any given situation.

More on this to come.

Of KVMs and Synergy…

Okay, so a few months back I discovered Synergy, and filed it under “neat stuff worth a quick look.” Now I’ve cast off the shackles of my KVM, cleared off my desk, and set up a second monitor. I can now seemlessly switch back and forth between Mac and PC as easily as you can switch between two screens connected to a single computer.

Here’s how it works: you hook up computer A (the server) to keyboard, mouse, monitor, and network. You install Synergy, and start the server. You hook up computer B (a client) to monitor and network, install synergy, and start the client. Now, move the mouse connected to computer A past the edge of the screen, and it appears on computer B’s screen – and now that the mouse is there, the keyboard is directed to computer B as well. And because it’s just a KM (keyboard and mouse) solution, unlike VNC which has video, the connection is extremely snappy – so much so that it’s unnoticeable to me.

Synergy is free, open-source, and works on Windows, MacOS X, and Unix/Linux. If you frequently use two (or more) computers, have the desk space for multiple monitors, and would like so save yourself some serious trouble, you should give Synergy a try.

On the "Digital Civil Rights" Movement

The Yearly Kos Conference is holding a panel on net neutrality and other issues which are more and more often being grouped under a new banner of “Digital Civil Rights”. I agree with many of the points being raised, but calling this a civil rights issue, I think, is misleading, in that they are trying to evoke ideas of the civil rights movement of the 1960’s. This has little to do with equality in treatment, and everything to do with an aging government failing to come to grips with the new, digital age.

They even tried to make it about racial equality, noting statistics that minorities frequently use the internet on mobile phones rather than on computers. This isn’t about racial equality. It’s about giving the lower classes fair access to our new, digital world. And while it’s still true that minorities are disproportionately in the lower classes, that’s a completely unrelated issue – and, in my mind, a much more important one, and one we’ve been battling for decades.

But I’m not here to talk about racial or sexual equality. I’m here to talk about the failure of our government to keep up with the fast-paced advancement of technology in the digital age. This nation invented the modern computer, and the internet, yet while we trip, stumble, and fall, other developed nations have taken this new technology and hit the ground running. The US is ranked 14th among nations in broadband penetration. Broadband here is more expensive than almost any other developed nation, it’s slower than in other developed nations, and it’s available to less of the population. Not coincidentally, the US is also the only developed nation without a national broadband deployment policy.

We have in this country the RIAA (Recording Industry Association of America) going on a vast crusade against their own customers, bringing countless illegitimate and frivolous lawsuits to bear against hundreds of people nationwide, demanding obscene compensation for infractions that, quite often, never occurred. Unfortunately, the RIAA has enough political power to keep their witch-hunt going on unchecked.

We have in this country a deeply-entrenched broadband duopoly, again with enough political weight to keep themselves in power into the foreseeable future. They have little to no incentive to reduce prices, increase speeds, or widen deployment into rural and low-income areas. Monopolies and duopolies are a free-market failure that hurt the consumer in countless ways, limiting innovation and elevating prices. And, should they decide to start bringing to bear their threats of bandwidth shaping for the highest bidder, there will be no free and neutral alternative for internet access.

Don’t think it’s an issue? Look at Japan: 50Mbps DSL is available for $35 per month, 100Mbps fiber is available for $50, and 1 Gbps service over power lines is available for $90. I’m currently paying $43 for a paltry 6 Mbps, and I’m lucky to even have such “high” speeds available in my area; the majority of DSL customers in America are limited to 1.5 or 3 Mbps service, if DSL service is available at all.

So why are things in such a sad state in the country that originated the digital revolution? It’s very, very simple: wretched companies with no concern for the consumer have far too much power, and the people have far too little. Is there a simple solution? Of course not. The unchecked political power of big corporations is a staple of American politics, and I don’t see it changing any time soon. Politicians on both sides of the aisle are on the take from Big Business, leaving voters to choose the lesser of two evils.

Ultimate OS Wishlist

You’ll find below my ultimate OS feature wishlist. This is from years of use of Windows and Mac OS, as well as some Linux use. Now, I know, some of these may be covered by one or more of the countless Linux distros out there, however, Linux isn’t ready for my desktop (whether it’s ready for the desktop is a matter for people smarter than I).

The ultimate operating system would feature:
• A completely vector-based UI with full transparency, allowing users to select not only a monitor resolution, but also a display DPI, so that large, high-density displays could be used to display the same size features at higher quality.
• An auto-update system that’s open to all developers to use. Currently, modern OS’s (Mac OS and Windows) supply a system auto-update feature that cannot be used by installed applications, forcing application developers to write their own, separate auto-update libraries.
• A bug/crash reporting system that’s open to all developers to use. We sort of have this now, but it could get a whole lot better.
• A complete skinning/theming system that can be used to apply complete OS-wide interface makeovers, as well as skinning specific applications. Currently, operating systems typically require a seperate piece of software to skin the OS, and many individual applications provide a means to skin that application.
• Filesystem-level local revision control, and integrated access to remote revision control repositories. Revision control isn’t just for programmers any more.
• A tightly-integrated, professional-quality Personal Information Manager (PIM), integrated into the system’s clipboard and drag-and-drop functionality. Apple almost has the right idea here, except that the PIM applications themselves are dreck. It should be simple to use my computer, without any 3rd-party software, to store contacts, set reminders and appointments, create a to-do list, and so forth.
• Multiple clipboards and clipboard history.
• Solid remote command-line and remote desktop capabilities. Only *nix really has this nailed down. I want to be able to throw away my KVM in favor of my LAN.
• System self-optimization based on usage statistics. C’mon, guys, this can’t be that hard. I shouldn’t have to do much, if any, of my own optimization; operating systems should be smart enough to monitor how I use my PC and adjust system settings accordingly.
• Window-manager-level support for tabbed interfaces. It should be up to the user, not the developers, what windows and applications can be run in tabs rather than a slew of individual windows.
• A decent application launcher. Seriously, this is the core functionality of all operating systems – running applications. But still, with every OS I’ve ever used, I’ve had to install a 3rd-party application launcher to really get the most out of my system. I should have a customizable solution that completely eliminates the need for programs like QuickSilver, Colibri, Katapult, DragThing, and so on.
• Easy management of startup items. For crying out loud, this is still a pain in the ass on both Windows and Mac OS. Why?!?
• A cappuccino maker.

So, what’s your OS wishlist? Post in the comments!