Posts

Pandora Desktop Hotkeys Enhanced

I noted an issue with my original Pandora Desktop Hotkey script in that the embedded Flash control in the Pandora Desktop app sometimes has a different "control" name. This change in name would _sometimes_ make the script unable to send keys to the control. Here's an updated script that tries to work around this issue by simply sending keys to either of the possible names for that embedded control. Enjoy! DetectHiddenWindows, On ; Pandora Controls ;Ctrl-Win-Alt-Right Arrow ^#!Right:: IfWinExist, ahk_class ApolloRuntimeContentWindow ControlSend, WebPluginView1, {RIGHT} ; Next ControlSend, WebPluginView2, {RIGHT} ; Next return ;Ctrl-Win-Alt-Up Arrow ^#!Up:: IfWinExist, ahk_class ApolloRuntimeContentWindow ControlSend, WebPluginView1, {UP} ; Volume Up ControlSend, WebPluginView2, {UP} ; Volume Up return ;Ctrl-Win-Alt-Shift-Up Arrow ^#!+Up:: IfWinExist, ahk_class ApolloRuntimeContentWindow ControlSend, WebPluginView1, {SHIFT}{UP} ; Volume Max ControlSend, WebPluginView2, ...

Completely Unscientific Test of Chrome 2.0 Beta with Bubblemark

So, I had to rush out and get the Google Chrome 2.0 Beta and try it out. I was already running Chrome 1.0, but the install for Chrome 2.0 installed with no hitch, asked me to restart the browser, and then I see that all my settings/bookmarks migrated forward with no problems. After playing around with some the new features I had to find out how Chrome's DHTML Rendering performance stood up to Flash/Silverlight/JavaFX. Bubblemark is a standard benchmark for comparing these different technologies. It simply tries to render a certain number of images (or vectors in some cases) and animate them. I fired it up and collected some numbers. Here are the results of my _totally_ unscientific test: Browser + Tech Bubble Count FPS Silverlight 2.0 (CLR) on Chrome 2.0 16 283 128 44 Flash (Flex) with cacheAsBitmap on Chrome 2.0 16 115 128 46 Java (Swing, optimized) on Chrome 2.0 16 200.0 128 199.7 Java (LWJGL) on Chrome 2.0 16 1435 128 658 JavaFX 1.0 (at Osvaldo Doederlein blog) on Ch...

Official Pandora Desktop and Hotkey Support?

EDIT: There is a slight problem occasionally with this script not being able to send keys to the Pandora Desktop Air app. I've got an updated version of the script that you can use instead of this one. Pandora is a different sort of online music service that uses the work of the Music Genome Project to automatically selects music similar to an artist or particular song, and then streams it over the Internet for your listening pleasure. You can't select individual songs, but you can skip ones you don't like and make as many music channels as you like to suit your particular tastes. Pandora provides a free version of the product that is supported by visual advertising, and a very inexpensive ($36 USD per year as of the creation of this entry) subscription supported version of the product that provides higher quality streams and no advertising. Traditionally, Pandora has been a Flash-based application that required you to have your bulky browser open to listen on the deskto...

Custom Foil Hats

Image
My oldest son wants to announce the launch of online sales of his newest product, Foil Hats. These hats are certified to protect your thoughts from prying government spooks, and brainwave stealing aliens. These hats are custom made to your measurements (up to US hat size 8), for just $3.99 (US). Simply comment on this blog entry, and we can coordinate payment/shipment over more secure channels.

Rollback DB Changes in Unit Tests with Spring

Observation 1: Applications are written human beings, which tend to make mistakes. It's a good idea to have some tools in place to help catch those mistakes early by validating assumptions against reality. One such tool is unit testing. Observation 2: Almost every application out there needs access to some kind of persistent data storage. In a lot of application code, that storage mechanism is some kind of relational database. It is easy to understand, based on the situations described above, that unit testing tools should take into account handling initializing persistent storage systems properly for testing. Thankfully, JUnit has some extensions to make unit testing with a particular set of data in the relational DB easier. DBUnit provides a way to represent test relational data in an XML form that is human readable, and can be loaded into most any JDBC data source. DBUnit's strategy is to reset the database to a known good base state before each unit test runs. I...

Cell Lazurus

Image
I pulled all the pieces back together after 24 hours of drying time, and my patience was rewarded with a working cell phone. You might notice that the phone didn't make it out all together unscathed, as there are some strange bright spots on the screen now. They aren't really noticeable except with a solid color background, so I consider myself somewhat lucky. All the buttons are working, no data was lost, and the speakers and microphone work just fine. The camera is working, and I can even complete calls with the thing! Steve Jobs won't see any (more) of my money for at least a little while longer.

Cell Phone, Deconstructed

Image
Honestly, I was just trying to be helpful. I figured, "Hey! I know how I can help! Laundry needs to be done, so I'll start with the blue jeans..." Of course, my wife doesn't own a waterproof cell phone, and I don't remember to check pockets, so my efforts to "help" ended up with a freshly washed cell phone smelling faintly like a clean breeze and water under the plastic cover for the display. Knowing that electricity and water don't do very much good for the metal in the phone, I removed the battery immediately. The one thing I think I might have going for me is that we have one of those front-loading, water-saving clothes washers. They don't fully submerge clothes for very long, so I'm hoping that with a good drying out for a few days, the phone may be salvageable. Big ups to LG for making a very easy to disassemble phone . I'm crossing my fingers, even though my wife is probably hoping for the worst .