nsprcomp is on CRAN
When we published our 2008 ICML paper on sparse and non-negative PCA, I thought it might be worthwhile to provide a Matlab implementation of our algorithm as well. Since then, I've received several requests and questions about the code. While the core functionality is there, the implementation lacks a friendly interface and some additional functionality, such as easy random restarts.
After two recent inquiries about using constrained PCA for portfolio optimization and combustion modeling, I decided to fill the gaps in the implementation. Because R has become my primary programming language, this provided an opportunity to learn about package writing and documentation for a public audience, with the goal of submitting the result to CRAN.
Evoluent Upright Mouse 4
I sometimes get funny feelings in my wrists. Shopping for hardware recently, I found the Evoluent Upright Mouse 4. Its fundamental idea is intriguing: holding the mouse with the wrist in a vertical position provides a welcome change from resting the hand horizontally on the keyboard. Evoluent argues that the position is less tiresome because it avoids twisting the radius and ulna bones. I don't know about the medical significance of this claim, but at least it sounds plausible.
I bought the mouse. Unpacking and plugging it in revealed two issues:
- It doesn't look good
- There is a glaring blue LED on the back of the mouse
On the first issue, one can argue that form follows function, even though it should be possible to design a mouse that is pleasing to the wrist and to the eye (Apple gets it wrong the other way). However, the second issue is more serious. For a product that has ergonomy at its center, the blue logo LED is a fail.
I could have taped the logo over, but the mouse is ugly already, so I decided to open the case and disable the LED. If you want to do the same, here are the details to do it with minimal damage (although I suppose that I did void my warranty).