Magic Mouse

A family member got a Magic Mouse so I had some time to play around with it.

Magic Mouse

Here are my thoughts:

  • Step 1 – Go to System Preferences and enable right click. Duh.
  • Left and right click work perfectly, unlike the Mighty Mouse which I never could get to work reliably. You won’t mis-click with the new mouse.
  • There are no buttons, but the whole mouse does physically move and click, so it feels right.
  • The twoone-finger vertical swipe to scroll vertically works well.
  • I do not like the two-finger horizontal swipe gesture. This makes your browser go back and forward. The problem is, the entire mouse moves when I swipe horizontally. So I have to awkwardly hold the mouse while trying to contort my fingers…it’s not good.
  • For me, the mouse is far too dainty and tiny. Women and children will love this mouse. Men with big hands might be better served by a Logitech mouse.

Unit Tests are Tests

James Carr writes:

Unit Tests are NOT “tests” in the classical sense… they instead should be used to drive your design, to help you think about how the system you are writing should work, to illustrate functionality.

I disagree with the all caps “NOT”. I think unit tests are primarily for testing, and are particularly valuable for regression testing. I do find that writing tests as I write code influences and usually improves design, but they certainly are “tests”. The fact that tests can drive your design and illustrate functionality are often nice side effects, but they are not the primary reason I write tests.

He goes on to write:

If you ever find yourself running a code coverage tool after writing fresh code, step back and realize that you’re doing it wrong.. my suggestion is if you run a code coverage tool and find parts of your freshly written code aren’t covered, delete that code and try again.

Deleting and rewriting code is a bit too extreme for my taste, but I often do something similar. When fleshing out new work, I’ll often write new classes and interfaces, bounce ideas off coworkers, and rename / refactor heavily. Once I feel like I’ve found the right approach, I will sometimes comment out blocks of code, write a quick unit test (that fails), and then replace the code.

State Capitals 1.1.0

I just published a new version of State Capitals to the Android Market. If this were an iPhone app, who knows how long that process would take. On Android, the app is available within seconds of publication.

This version features one bug fix and completely new graphics. You can find it on the Android Market under the Applications -> Reference category.

Home Screen

The app does have menus to set configuration options, but everything else is through the touch screen. The new graphics show where the state resides and where the capital resides within each state.


State Capitals is free (as in beer), and is also ad-free. Enjoy!

News Lets us Down Again

Arianna Huffington sums it up:

After a commercial break, Ed asked me about the story. I told him that, for me, once the boy had been found, there was no story — just tele-voyeurism. Why continue the wall-to-wall coverage of a story that had turned into a non-story — on a political show — during a week when health care, financial reform, and Afghanistan are all at the tipping point?

Android Mystery Box

Ed Burnette on the frustrating lack of Android transparency:

I expected Android 2.0, whenever it comes out, to have something more. But there’s no way for us on the outside to tell, especially if the changes are not visible in the few screenshots we manage to glimpse. Contrary to Google’s assurances, Android continues to be developed behind closed doors and then dumped on the community at the last minute. They could be releasing it as I write this, or it could come out next May. It could already be rock solid and production quality in a lab somewhere, or it could be buggy, incomplete, and not ready for prime time. We just don’t know. And that, my friends, is unacceptable for an open source project, even one with a commercial component.

Still, it’s light years better than Apple.

IE 6 Frame Plugin

From the moment I heard about Google Chrome Frame, the idea bothered me. Here is the situation:

  • Many big companies still run IE 6
  • These companies depend on legacy web apps that only work in IE 6
  • Because so many companies are stuck on IE 6, everybody else has trouble moving forward with modern web sites

The Google Fix

Google Chrome Frame runs inside of IE. It allows IE users to access modern web sites, so long as those sites include this tag:

<meta http-equiv="X-UA-Compatible" content="chrome=1">

This is a clever workaround and is probably the best Google can do.

What Bothers Me

The workaround is backwards. It means 99% of your web usage remains stuck in old fashioned IE 6, treating modern web sites as special cases. Instead, I propose that Microsoft do exactly the opposite of what Google did.

Microsoft should create an IE 6 Frame. It would work like this:

  • Everybody installs a modern web browser. IE 8, Chrome, Safari, Firefox, etc.
  • Companies with ancient, mission critical IE 6 proprietary web sites could install the IE 6 Frame plugin.
  • Most web sites would use the modern browser. Old web sites — ones that only work in IE 6 — would run in the IE 6 Frame plugin.

I believe this approach would be far more beneficial. You want the old crappy stuff to be the “special case” that runs in a plugin.