Archive for the ‘General’ Category

Practical Use of Virtual Worlds

Friday, December 14th, 2007

From Reuters:

Instead of jetting over to Bali for climate talks, Edward Markey (a Democrat from Massachusetts) will use a 3-D animated version of himself to address the conference at 9.30 am on Wednesday Bali time. It is estimated Markey will save 5.36 tonnes of carbon dioxide emissions by doing this.

Watch the speech or the Q&A.

Merriam-Webster Word of the Year: W00t!

Thursday, December 13th, 2007

Believe-it-or-not, “w00t” is Merriam-Webster’s word of the year. For those of you not familiar with the term–I’m not sure who, as I’d think anyone reading this blog probably uses “woot” as part of their daily vernacular–it’s an expression of glee or triumph commonly used by gamers.

i.e.:
“W00t! We totally pwnd those n00bs.”
“Steak for dinner? W00t!”

A bit of gamer culture making it as word of the year? Well, I guess there’s only one thing I can say to that: w00t!

One Dozen Easy C++ Programming Tips

Wednesday, December 12th, 2007
  1. Consistency breeds ease of use. Even if your buttons do some weird thing, as long as they all do the same weird thing users will eventually figure it out. Make the buttons each behave differently, however, and the user is lost forever.
  2. Sort data the way it is most likely to be used. The logical sort order for a date is chronological, not alphabetical.
  3. When in doubt, the default option should be the least destructive \ most undoable choice.
  4. If you have to write an explanation of your code, never assume that the reader has read the same papers you have, unless you told them what else to read–and where to find it–first.
  5. Wrong code comments are worse than no code comments.
  6. “Copy and paste” errors happen to everyone. Be on the look out for them.
  7. If a bug disappears in debug mode, 90% of the time it will be one of two things: 1) you are overflowing memory or 2) you have a thread race condition. At least two thirds of the time, it will be a memory overflow. It is extremely unlikely it is problem with the compiler.
  8. Releasing your program compiled in “debug mode” is not an acceptable “fix”. The bug only looks like its gone… it’s still there, and can come back to bite you at any time. Don’t do it, no matter how tempting it might seem.
  9. If the program crashes on exit, you probably freed something you didn’t properly allocate, or that isn’t allocated anymore.
  10. Leaking memory is bad. Freeing pointers or objects that don’t belong to you is worse. If an object you expect to be free is still hanging around, don’t force it, find out why… “fixing” bugs by patching the symptoms and not the cause makes the code much harder to repair in the long run.
  11. If you have an intermittent bug, and your “fix” made it go away and you don’t know why, the bug is almost certainly still there. If you can’t explain it, you didn’t fix it.
  12. Good documentation is more important than more features. Write it down, even if it’s just a simple “readme.txt” file… the next person who has to work with your stuff will appreciate it!

More tips? Ideas you would recommend? Post a comment!

A Million Objects

Sunday, December 9th, 2007

From a Zen Kōan:

Gyosan asked Isan, “If a million objects come to you, what should you do?” Isan answered, “A green object is not yellow. A long object is not short. Each object manages its own fate. Why should I interfere with them?” Gyosan bowed in homage.

It’s good advice for programming multi-core, too.

AC3D Plugin: NMF (ATI Normal Map) Exporter

Saturday, December 8th, 2007

This plugin exports your AC3D file into NMF format, the native input format of the ATI NormalMapper utility. NormalMapper allows you to generate normal maps, bent normals and ambient occlusion maps suitable for use in video games and other realtime 3D applications.

If you aren’t familiar with normal maps, normal maps are a way to make your low-polygon model look more detailed by encoding surface information from a high-polygon version of the same model into a texture map. Ben Cloward has an excellent tutorial where you can learn more.

This plug-in requires the free NormalMapper utility available from AMD in order to process the output files. The companion NormalMapperUI (Stand Alone) available at the same location is also helpful, but not required.

Download the plugin. (Requires Windows XP, AC3D 6.2 or above.)