Opgenorth.NET

Mindless missives of a developer from the North.

Using Estimotes With Xamarin.Android

| Comments

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

| Comments

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

| Comments

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

| Comments

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

| Comments

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

| Comments

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.

Windows 8 64-bit and Android Debug Bridge (Where Is My Galaxy Nexus?)

| Comments

Setting up a new VM for development – this one based on Windows 8 64 bit. Not that I really want to, but it seems that I need to for work (yes, yes, first world problems). So the usual fun with standing up a new VM:

  • Install OS
  • Download Chrome and Firefox and ditch IE
  • Download Resharper
  • Remember that you need Visual Studio for Resharper so install that.
  • Install Java SDK
  • Install Android SDK
  • Install Intellij and Eclipse
  • etc.

Of course, then I notice that my phone, a Galaxy Nexus, isn’t being recognized by Android Debug Bridge. This is a problem as I much prefer to develop using a device as opposed slow emulator that Google ships for Android, and you can’t deploy to the device without ADB.

Updating Octopress

Just did a quick update from Octopress. This is mostly just a test post to make sure that things are working okay. We now return you to your regularily scheduled emptiness.

Have a nice day.

PreferenceFragment.getPreferencesFromIntent

| Comments

One of the new classes that Honeycomb introduced was the PreferenceFragment. This class is meant to simplify the creatation of a setting / preferences screen in Android applications. It handles a lot of the displaying, saving, and changing of an application’s settings. There are a couple of ways to create a PreferenceFragment. The simplest way is to subclass, override onCreate() and then use either getPreferencesFromResource or getPreferencesFromIntent.

There are many examples on how to use getPreferencesFromResource, but I noticed that there aren’t that many on how to use getPreferencesFromIntent. Here is one such quick example.

Galaxy Nexus - an Update

| Comments

In my last post I flashed a new firmware for the radio on my Galaxy Nexus. I notice that, after a day or so, my problems with connection to Wind Mobile returned. My phone would just not register on Wind’s network, regardless of where I was.

Once again I did a bit of search, and read something peculiar (I wish I had booked marked it for reference sake). Some people were claiming that by setting the minimum clock speed of their Galaxy Nexus to 700MHz, that their radio problems had disappeared.

I will say that by setting the minimum clock speed of my Galaxy Nexus to 700MHz I have had zero problems with connecting and staying on Wind Mobile’s network (it’s been a couple of days now).