Index - nuwen.net

So high, so low, so many things to know

Theresa

News


stl@nuwen.net

5/5/2008 - Version 3.8 of my MinGW Distro contains a functionality fix for GNU make and a security fix for libpng.

Recently, I've been working on Spacetimewar:

Spacetimewar Renderer (With Background)
Spacetimewar Renderer (With Background)

Spacetimewar Renderer (Without Background)
Spacetimewar Renderer (Without Background)

Aside from making the renderer use vertex buffer objects for increased speed, and removing a special (and slow) codepath for non-power-of-two textures (which OpenGL 2.0, now my minimum requirement, supports natively), I've added machinery for OpenGL shaders. I implemented photosphere and corona shaders to make my awesome sun.

The only thing left to do before I write the game engine itself is to replace my font rendering code with FreeType, for kerning and borders.

3/31/2008 - Version 3.7 of my MinGW Distro contains Boost 1.35.0 and a security fix for bzip2.

I've been very busy this month. (Though not with the distro, which I built over the weekend. After 30 releases, building the 31st release isn't difficult, even when Boost's build system breaks my scripts yet again.) A bunch of stuff has been conspiring together to consume all of my time. At work, finishing VC9 TR1 and starting VC10 involved juggling more things than usual for a while. At home, Demerzel's crashing problem was driving me nuts and wasting my time.

The good news is that I've figured out what Demerzel's crashing problem was. The C0 stepping (i.e. initial version) of my QX9650 processor suffered from an FSB noise issue, leading to instability. Intel didn't recall the C0 stepping because this problem was said to manifest itself on cheap 4-layer motherboards only, not on the expensive 6-layer motherboards that Extreme processors would be used with. Experimentally, I conclude that this is a blatant lie, as I have an expensive 6-layer motherboard. (I have a Gigabyte GA-X38T-DQ6 Revision 1.0 motherboard; a Revision 1.1 with unspecified changes, and some layout differences, was released, but I don't know why.) After learning about this a couple of weeks ago, I decreased my FSB frequency from 1333 MHz (333 MHz quad-pumped) to 1066 MHz (266 MHz quad-pumped), also decreasing my CPU frequency from 3.0 GHz (333 MHz x9) to 2.4 GHz (266 MHz x9), and I have enjoyed rock-solid stability since then. As I'd like to avoid running Demerzel at 80% of its capacity, I'll be "upgrading" its processor to a non-Extreme Q9550 (2.83 GHz, which is 333 MHz x8.5). That's guaranteed to have a C1 stepping (i.e. fixed version), and I'll get 100% of the memory bandwidth and 94% of the CPU frequency that I originally wanted, which I can definitely live with. Fortunately, my motherboard supports the Q9550, so I won't have to upgrade motherboards (which still scares me). It requires a BIOS flash, but I've done that twice with this motherboard already.

There are two items of extremely good news. First, despite suffering dozens of spontaneous reboots and hangs, I don't appear to have suffered any hard drive corruption whatsoever. (My SAS RAID-1 array reports its status as Optimal, the computer boots and runs just fine, chkdsk is happy, and none of my files appear to be mangled.) This is despite the fact that at least two of the crashes happened during scheduled defrags. Except for the processor, the stability of my hardware and software stack - including and especially Vista - really impresses me. I was dreading that I'd lose everything and have to start over from Reason again. I even suffered a crash during Windows Update, but a System Restore fixed everything. Second, I figured out the workaround of decreasing the FSB frequency before Vista SP1 was released. Crashing during that installation would not have been good.

Even at 80% of its capacity, Demerzel is stunningly fast; I now do quad-core builds of Boost.

I finished reading Peter F. Hamilton's Night's Dawn "trilogy", which is actually a single massive SF novel broken up into three hardcovers or six paperbacks. Reading over 3000 pages of SF isn't instantaneous, even for me. (Yes, that's three thousand pages.) It was entertaining, but I certainly wouldn't rate it anywhere near Deepness or Fire.

I also read a new collection of short stories by Greg Egan. Unfortunately, it wasn't a collection of new short stories by Greg Egan; I had already read 4 of the 5 stories in the book. Still, Greg Egan is one of my "buy, sight unseen" authors, and the new story "Dark Integers" is a sequel to one of my favorites, "Luminous". "Dark Integers" also contains the only lines of C++ that I've ever seen in SF (short stories or novels, unless my memory is truly failing me). They're even accurate lines - it must have been terribly tempting to follow long int with dark int , but Egan used dark instead.

Continuing my reading spree (which has been going on ever since I learned how to read), I finished I Am A Strange Loop by Douglas Hofstadter. Unfortunately, the only key insight within was an interesting fact about the Fibonacci sequence. 1 (trivially), 8, and 144 are the only powers (squares, cubes, etc.) within the Fibonacci sequence. Ever. This was proven with machinery from the proof of Fermat's Last Theorem.

I've also been discovering new board games. (My vices are monotonically increasing.) I picked up Ingenious, a hex-pair tile-laying game by Reiner Knizia, who developed Tigris And Euphrates. Ingenious turned out to be really fun, with simple rules. (Rule complexity doesn't especially bother me, given that I deal with template argument deduction and overload resolution for a living, but it does make a game harder to introduce to others.) I was also amused to find that Ingenious shares Tigris And Euphrates' scoring mechanic of "weakest area matters"; that's a game design insight all by itself.

I hope to make some progress with Spacetimewar soon.

3/3/2008 - I've extended my website generator to escape special XHTML characters (ampersand, less than, greater than) in blocks of C++ code (etc.). Among other things, this makes libnuwen's documentation much easier to maintain.

2/28/2008 - Version 3.6 of my MinGW Distro contains an uncompressed flex.exe . I UPX all of the executables in the distro to significantly reduce its size. A couple of people reported that their virus scanners, e.g. Kaspersky, were complaining about flex.exe . (Norton AntiVirus 2008 was perfectly happy.) This false positive was caused by UPX replacing the executable's contents with seemingly random compressed data, which just happened to match the malware signatures in a few virus scanners. Not compressing flex.exe in the first place makes these virus scanners happy, and they apparently have no problems with any of the other executables.

2/27/2008 - Yay, I can update nuwen.net again!

I've started using my new computer, Demerzel. It's taken a while, but I'm almost finished with setting everything up. Infuriatingly, I'm experiencing spontaneous reboots and hangs. They aren't happening very frequently (once every couple of days to a couple of times a day), but any instability drives me insane. At this point I think the problem is a motherboard bug, as the reboots and hangs aren't very predictable (Supreme Commander: Forged Alliance hasn't triggered them, although it sometimes crashes itself, while Sins Of A Solar Empire has triggered them several times), and they even happen while idling.

I've always avoided hardware upgrades, except for new video cards. But now, I think I'll try upgrading Demerzel's motherboard. Apparently, a repair install of Windows allows it to deal with a motherboard upgrade. I might wait for Nehalem to come out in late 2008 (although bleeding-edge hardware is what got me into this mess in the first place), or I might get desperate before then.

Some good news: A full build of Spacetimewar takes 35 seconds on Demerzel, while it took 127 seconds on Reason. Having figured out OpenGL shaders, I'm really itching to work on Spacetimewar again.

Also, I completely reworked how I generate nuwen.net. Previously, I used a complicated system of Server Side Includes to stamp out things like my auto-colored tables. While this was better than doing it manually, it was ugly and difficult to extend. Now, I generate everything with a custom C++ program. This allows me to invent arbitrary meanings (Turing-complete, yum) for arbitrary syntax (well, I limit myself to anything that can be described with regular expressions).

Older News

About This Site

What is nuwen.net?

A collection of things which are intended to be useful to readers.

This type of site, with its focus on useful things, is now rather unusual. It is different from a blog, which (being chronologically organized) is about events. It is also different from a journal, which is a blog about people. While my chronologically organized news posts often talk about events (sometimes sounding suspiciously blog-like) and myself (sometimes sounding suspiciously journal-like), neither the news posts nor myself are the focus of this site. The news posts are fundamentally a ChangeLog for the real stars of this show: the pages about stuff.

John Walker's fourmilab.ch is a larger example of this sort of thing. It was, and continues to be, the inspiration for nuwen.net.

Who writes nuwen.net?

As the footer on each of my pages mentions, my name is Stephan T. Lavavej. To learn more about me, including my elusive middle name, see my personal page.

You can help me improve my writing by sending me feedback. Do you like what I've written? Do you dislike it? Is something broken? How did you get here? (Through a search engine? From another site? Etc.) Please E-mail me at stl@nuwen.net with your thoughts.

How long has nuwen.net existed?

Since June 5, 2000, although it experienced a few name changes before receiving its current and permanent name.

How is "nuwen" pronounced, and what does it mean?

It's pronounced "noo-when", and it's a reference to my favorite character, Pham Nuwen, in my favorite science fiction novel, A Deepness In The Sky by Vernor Vinge ("vin-jee"). The novel implies that this far-future last name is derived from today's Nguyen. And Pham rhymes with "ROM", although I usually mispronounce it to rhyme with "RAM".

In actuality, the name of this site is a subtle hint that you should read A Deepness In The Sky and its sequel A Fire Upon The Deep. Both novels are extremely rich in concepts and terminology, which I delight in referring to.


http://nuwen.net/index.html
Stephan T. Lavavej
stl@nuwen.net
Updated 5/5/2008.