June 2008 Entries
I'm always into gadgets and just thought I'd share two new things I picked up recently. I nabbed a mini-USB Bluetooth adapter from eBay for around $12 and it is just the coolest (like this one)! It fits into the slot and only sticks out a half-inch or so. Unfortunately, my stupid laptop (I hate it, I hate it) is very flaky with USB and keeps thinking that USB devices are being removed and re-inserted, but this device's size helps since it gets bumped less. The other device that I'm loving is my new PC Card smart card reader...
How can this be so difficult? In Windows Forms applications, you just call Application.Restart() and your app goes away and restarts. What could be easier! In WPF, not only is the Restart method removed from the Application object, apparently the feature is just completely unsupported. Forum responses from Microsoft suggest disassembling the BCL code to see how the Application implements it, but the poster points out that it's non-trivial, and even at that it's not correct. Not that I ever noticed before, but the command line arguments don't get passed into the restarted process. How wild is that! Another message...
Before the end of the school year (a few weeks ago already!) I took the kids from my Robotics Club to the National Advanced Driving Simulator in Coralville, Iowa. This is a pretty amazing place with the coolest driving game you'll ever see! We went through the control room and there were eight monitors displaying the various views around the vehicle. The vehicle itself is an actual car body inside of a half-dome with six projectors creating a seamless view around the car. Speakers, cameras, and instruments are everywhere to create a perfect simulation and capture every element of the...
Dividing up work to run in separate threads can be really challenging. Proper division of labor, synchronization, scheduling, and all that is just a tough job. I've gotten pretty well-versed in Windows concurrency using the standard Windows.Threading classes (many of them wrapping the Win32 entities). Understanding semaphores, mutexes, locks, wait queues and other related concepts takes some real work and head stretching. Once you understand them though, you may still struggle with actually fitting them into your code properly. In many cases, you just need to run some code in parallel with your UI. Much of this doesn't even apply...
Looking to add some AJAX goodness to your site? I came across some great widgets on AjaxDaddy.com. There are calendars, editable text boxes, fish eye effects (a la Mac OS X), chat boxes, sortable tables, slideshow tools, and more. All free, all with demos and code examples right there on the site. Much of it's really DHTML rather than AJAX since it's all client-side, but it's really useful stuff. It seems to be largely based on jQuery, which is a lightweight library that takes much of the pain out of Javascript. Before you start digging into the script yourself, it's...