MicroTweet for the .NET Micro Framework

Update April 14, 2011: This project is now on CodePlex: MicroTweet – Twitter OAuth API Library for the .NET Micro Framework

I recently purchased a Netduino Plus, a small (but powerful) board based on an Atmel 32-bit microprocessor with the same form factor as an Arduino. The Netduino can run programs written in C# for the .NET Micro Framework and the “Plus” version adds a 10/100 Mbps Ethernet port, giving you a very powerful network-capable device for about $59 USD.

What can you do with it? Quite a lot, actually, as seen in the Project Showcase section of the Netduino Forums. You have access to network sockets via System.Net.Sockets, you can perform HTTP requests via System.Http, and there are even a few lightweight web server implementations available.

The only thing I couldn’t find is a library for Twitter. Looking around, I found a project called Tweet Library for Arduino, which sends tweets through an external website, presumably to avoid implementing OAuth on the Arduino. For this project, I decided to make the Netduino communicate with Twitter’s API directly, which means no external websites or proxies are necessary.
Continue reading MicroTweet for the .NET Micro Framework

WP7 Application Crash Reporter

Update Feb. 26, 2011: Crash logger code has been modified to provide more details, including the OS version, current culture, current XAML page, and whether the app is obscured or locked.

Recently I found Andy Pennell’s LittleWatson Class, which is designed to log and report any unexpected crashes in your WP7 app. This can provide extremely useful data about problems your users have experienced and, if you tend to run your app without debugging enabled, crashes that occur during development.

Andy’s code is designed to send error reports via e-mail, but I’d prefer something a bit less intrusive. For Remote, I decided to write a class similar to LittleWatson that would submit the error reports to a script running on my web server.
Continue reading WP7 Application Crash Reporter

Simple Installation Tracking for WP7 Apps

When I first started developing Remote, Microsoft had not yet provided a way for developers to see how many downloads their apps were getting. Microsoft now provides app download statistics via the App Hub, but the data is delayed by 6 days and only shows new installations – app upgrade statistics are not available. With this in mind, I decided to create a simple installation tracking system to monitor how well my app was doing in real time.

Looking through the App Hub Forums, I found a few other sales tracking systems. This one, based on Google AppEngine, tracks not only installations but usage activity and phone model and manufacturer information. This one is based on the Silverlight Analytics framework and uses Google Analytics for reporting.

My tracking code is much simpler and does not require any third-party frameworks, but it only reports new installations and upgrades. If you need to track feature usage information, you might be better off using one of the other solutions rather than trying to modify this code to your needs. Also, it’s worth noting that retrieving device manufacturer and model information requires an additional capability listing (“phone identity”) which may deter customers from wanting to try your app.
Continue reading Simple Installation Tracking for WP7 Apps

iTunes Mini Player Shortcut

When Apple released iTunes 9, the behavior of the Cmd-Ctrl-Z shortcut was changed.  Previously, it would toggle the window between the full-size “regular” view, and the small, “mini-player” view.  This change was quickly reversed in the next version of iTunes, returning the shortcut key to its previous behavior.

With the iTunes 9.0.3 release a few days ago, the behavior of this shortcut key has changed once again.  Fortunately, the Keyboard Preferences panel allows you to fix this once and for all:

Just open System Preferences, go to the Keyboard settings, and add the following key shortcuts in the “Application Shortcuts” section under the “Keyboard Shortcuts” tab:

  • Zoom – Cmd-Option-Ctrl-Z (or any other key shortcut, it just has to be something different than Cmd-Ctrl-Z)
  • Switch to Mini Player – Cmd-Ctrl-Z
  • Switch from Mini Player – Cmd-Ctrl-Z

All of these should be added for iTunes specifically, as shown in the above screen shot.