Odds and Ends...
...and in no particular order.
Scott Ambler is currently running the 2010 Project Success Survey that explores how we define success as professionals and what our actual project success rates are. Please take a few minutes and share your thoughts. You also have a chance to win a copy of Reflections on Management by Watts Humphrey and William R. Thomas.
GTC 2010, the upcoming GPU technology conference, will take place September 20-23 and encompass three concurrent GPU-focused summits in one location -- the Emerging Companies Summit, GPU Developers Summit, and the NVIDIA Research Summit. Interested speakers can submit proposals at the GTC Call for Submissions until June 1, 2010.
Have I mentioned the handy floating hub thing we added to DrDobbs.com? It's worth taking a look at. Go to DrDobbs.com and mouse-over "Visual Studio 2010" (at the bottom of the Channel list, left side) and "Open QuickLinks" will pop up:
You can take it from there. Like I said, a handy gadget.
One man's ornithopter is another's robotic butterfly. Researchers in Japan have built a fully functional replica model of a swallowtail butterfly. A thing of graceful beauty, as you can see in this video. Using motion analysis software, the researchers monitored the ornithopter's aerodynamic performance, showing that flight can be realized with simple flapping motions without feedback control, something that can be applied to future aerodynamic systems.
Article of the day. Don't miss Eric Bruno's article Improving the Development Process, in which his point is that it's just as important to have good development processes as it is a good system architecture. Read it and don't be shy about leaving a Comment at end of Eric's article.
Over the years, programmers have incorporated all kinds of machine-learning techniques to automatically classify documents. One such machine-learning technique is naive Bayesian text classification. A text classifier is an automated means of determining some metadata about a document. Text classifiers are used for everything from spam filtering and suggesting categories for indexing a document created in a content-management system, to automatically sorting help desk requests.
In general, naive Bayesian text classifiers are fast, accurate, simple, and easy to implement. For instance, John Graham-Cumming presented a complete naive Bayesian text classifier written in 100 lines of commented, nonobfuscated Perl in his article Naive Bayesian Text Classification.
Programmers at Microsoft, however, have ratcheted Bayesian inference up a notch or two with Infer.NET, a very cool framework that's designed to run Bayesian inference in graphical models.
Developed by Tom Minka, John Winn, John Guiver, and Anitha Kannan, Infer.NET can be used to solve many different kinds of machine-learning problems, from standard problems like classification or clustering, to domain-specific problems. Infer.NET has been used in a variety of domains including information retrieval, bioinformatics, epidemiology, vision, and many others.
Infer.NET works by compiling a model definition into the source code needed to compute a set of inference queries on the model. The steps are:
- The user creates a model definition (using the modeling API) and specifies a set of inference queries relating to the model.
- The user passes the model definition and inference queries to the model compiler, which creates the source code needed to perform those queries on the model using the specified inference algorithm. This source code can be written to a file and used directly if required.
- The source code is compiled to create a compiled algorithm. This can be manually executed to get fine-grained control of how inference is performed, or...
- Using a set of observed values (such as arrays of data), the inference engine executes the compiled algorithm according to the user-specified settings, so as to produce the marginal distributions requested in the queries. This can be repeated for different settings of the observed values without recompiling the algorithm.
Infer.NET provides the state-of-the-art message-passing algorithms and statistical routines needed to perform inference for a wide variety of applications. It can be used from any .NET language, including C# and F#.