Yet Even More .NET-based Wiimote Applications

In the past couple of weeks, several very interesting projects using my Managed Library for Nintendo's Wiimote have appeared.

First off, Johnny Chung Lee has created some amazing and unique user interface demos with the library which can be found at his site.  Here are a few videos showing off what he's done:

 


Wiimote Whiteboard

 


Head Tracking Display

 

Cynergy Labs has used the library in conjunction with WPF and some of Johnny's ideas to create a Minority Report-style interface with some Microsoft Surface-style effects:

 

Incredible stuff.  I'd also like to toot my own horn and state that, at the time of this writing, my Wiimote library is the #1 most downloaded project at CodePlex.  I wish I could take credit for that, but I'm certain these talented folks and their amazing work with the library are the reason for that.

As always, if anyone out there is using the library, please contact me so I can add you to the master list.

Read More

Animated Musical Holiday Light Show - Version 2.0

I finished this a bit later than I wanted to, but a brand new version of my Light Sequencer application and article is now available at Coding4Fun.  You may recall my previous article on creating a musical light show for the holidays.  If not, here's the video showing the output:

New Features for 2.0

  • MIDI support
    • Load a MIDI file and a sequence will be automatically created based on the data contained in the file.  You can automatically create your own show with barely any effort at all!
  • Playlists
    • Load up several sequences and have them play in order to create a multi-song show!
  • More accurate timing
    • The timing algorithm used in the last version was very imprecise...it worked, but it wasn't perfect.  The new version uses a method which gives millisecond precision timing
  • Cut/Copy/Paste
    • One can now cut/copy/paste cells on the grid...makes it easy to repeat chunks of sequences without having to tap out the rhythm by hand over and over again
  • Edit existing …
Read More

Weird Vista Registry Issue

I'm attempting to track down a very strange Windows Vista registry permissions issue that hit me on two machines, that I've found mentioned in random various forum posts across the Internet, that has no known cause or solution, and which I cannot seem to reproduce in a VM though I've seen it happen on 2 machines across 4 Vista installs.  I'm hoping everyone that happens to read this post will take a few minutes to check the following and contact me directly or leave a comment with a way to communicate back to you.  Here's what to do:

  1. Run regedit.exe, everybody's favorite Registry Editor.
  2. At the root node of HKEY_CLASSES_ROOT, right-click and select Permissions from the context menu.
  3. Report what you see.  The first image is correct.  The second image is the problem scenario.

image reg

Subsequently, every subkey that is created or modified after this problem occurs has no permissions attached to them, causing all sorts of issues like COM components not being …

Read More

x64 Development with .NET

Earlier this year I made the switch to a 64-bit operating system - Vista Ultimate x64 to be exact.  For the most part, this process has been relatively painless, but there have been a few hiccups along the way (x64 compatible drivers, mainly, but that's not the point of this discussion).

In the world of x64 development, there have been a few struggling points that I thought I'd outline here.  This list will likely grow, so expect future posts on the matter.

In the wonderful world of .NET development, applications and assemblies can be compiled to target various platforms.  By default, applications and assemblies are compiled as Any CPU in Visual Studio.  In this scenario, the CLR will load the assembly as whatever the default target is for the machine it is being executed on.  For example, when running an executable on an x64 machine, it will be run as a 64-bit process.

Visual Studio also provides for 3 specific platform targets:  x86, x64 and Itanium …

Read More