Adding Bluetooth to your Shooting Chrony

Tom Opgenorth

If you’re into reloading, you know about chronographs. Odds are you might have a Shooting Chrony. I myself happen to own a Shooting Chrony Beta Master. These are pretty well made devices, and Shooting Chrony has a no nonsense replacement policy.

The only way to interact with the device is via a proprietary 9-pin-female RS-232 cable, like an old modem. Now, this techique was all the rage circa 1994 when dial-up internet was king and everybody had PC’s with two or more serial ports. This is really sub-par when you want to try and connect your smartphone to a Shooting Chrony (yes, this is possible, but more on this later).

Using Estimotes with Xamarin.Android

Tom Opgenorth

I recently bought some Estimote beacons (a 3rd party iBeacon-like device) - largely because they seem like a cool and nerdy kind of thing. It has an Android SDK which will allow Android devices to interaction with devices. With a little big of effort, I managed to create Xamarin.Android binding and port the sample Android project provided by the Estimote SDK.

You can see an example of the app in these screenshots:

image

Measuring Distance with Arduino

Tom Opgenorth

The Ping))) is ultrasonic range finder that is pretty easy to use in an Arduino project. In my case, I’m using it to monitor the water level in a sump pump. I have an Arduino Uno R3 (with Ethernet Shield) connected to a Ping))) and a TMP36 temperature sensor that is perched above my sump pump. Every 2 minutes the Uno will send out a ping, and figure out the distance to the water below. The TMP36 is used to account for the air temperature in the speed of sound calculations.

Animate a ListView deletion in Xamarin.Android

Tom Opgenorth

A visually pleasant effect when deleting items from a ListView is to animate the row being deleted by gradually change the .Alpha value of the view from 1.0 to 0.0. If you’ve tried to animate the deletion of a row from a ListView in a Xamarin.Android application, you may observe some curious behaviour when rapidly scrolling through a ListView with many rows: the animation may appear on rows other than then one that is being deleted.

Sublime Text 2 and Arduino

Tom Opgenorth

If you’re looking to get into Arduino, and you’re a programmer, the first thing that will jump out at you is the Arduino IDE. It’s best described as “spartan” (to say the least). As I’m used to full featured IDE’s I started looking for a replacement to the default Arduino IDE.

There are extensions to use Visual Studio, but that means me starting up a VM to run Windows which I don’t really want to do for Arduino development. There is a another IDE which looks promising called Maria Mole - but it’s Windows only so not really a contender for me. I need something for OS X. I looked at setting up Eclipse as my default IDE, but ran into some issues with that. Nothing to major, but as I don’t like Eclipse in the first place I wasn’t to motivated to sort things out, so I abandoned Eclipse as an IDE choice.

The next thing I tried was Sublime Text. There is an Ardunio plugin called Stino that turns Sublime into a not bad IDE. In terms of writing your programs, Stino can pretty much do everything the Arduino IDE can do: compile programs, upload them to your Arduino board, import libraries, etc.

Writing GPS information to a JPEG

Tom Opgenorth

One of the handy things about the JPEG format is the ability to store meta-data inside the image using EXIF. There are a few libraries out there for the various programming languages that can help you out with this, and Android actually has something built in to the SDK - the class ExifInterface.

Google’s documentation on writing latitude and longitude to a JPEG are a bit light on details - they loosely hint at the format that latitude or longitude should have. (See the documentation for ExifInterface.TAG_GPS_LATITUDE). The API itself is pretty straight forward, but what Google doesn’t tell you is HOW the GPS coordinates should encoded.

rake your Xamarin.Android Application

Tom Opgenorth

Deploy early, deploy often is a popular goal in Agile methodologies. One easy way to support this to automate your build process. Last year at this time I would just use FinalBuilder to automate the builds of my Xamarin.Android pet projects. It doesn’t take much to set FinalBuilder, and it does provide support for a lot of tasks such as versioning .NET assemblies, manipulating XML, dealing with the file system, and so on.

The problem is that FinalBuilder is Windows only. OS X and Linux types are left out in the cold. As I find myself working almost exclusive in OS X when developing my Xamarin.Android applications, I was looking for a Windows free way to automate my builds.

Enter rake and albacore. rake is, of course the build system for Ruby.

Using AutoCompleteTextView and SimpleCursorAdapter

Tom Opgenorth
I have a simple little pet project (for Android), and one of the things I wanted to do was to to have a text field that would show me previous values as I typed in the text box (see screenshot below). Of course, this control is already a part of the Android SDK - it's our good friend the AutoCompleteTextView. To populate the drop-down, I have an SQLite table called vehicle_descriptions, which looks something like the screenshot below.

Picking Apart PDF with Ruby and Linux

Tom Opgenorth
I ran into a curious problem for a side problem of mine where I had some information in PDF files, both text and images.  What I want to do is display the information from the PDF's on a mobile (Android) device.  PDF isn't exactly a mobile friendly format, so I got the idea use HTML.  The next trick then becomes how to get the content out of the PDF's I want into HTML.