Friday, 31 January 2014

Adventures in installing HAXM on an HP Laptop

I had some trouble getting HAXM to work on one of my development machines - specifically, I was seeing this error. The machine is an HP ProBook 6550b laptop (fans of obscure configuration information may be excited to hear it's a WD704ET#ABU).

The problem was resolved by enabling virtualisation in the BIOS, but it was not immediately clear to me that there were two settings that needed to be enabled so I thought I'd share.

Here's a shot of the relevant BIOS screen (it's one of the sub menus under System Configuration):


"Virtualization Technology" was already selected in the BIOS, so I couldn't understand why HAXM wasn't installing. 

Then I realised that Data Execution Prevention needed to be active (as indicated by the red arrow in the screenshot above). Data Execution Prevention is the name given to Intel XD (I advise grabbing a coffee if you're inclined to follow the link) and to be fair, the BIOS feature is mentioned by name in the tail end of these instructions, which i guess just further proves the old maxim RTFM.  
  

Wednesday, 29 January 2014

Android Emulation & Fix for HAXM hanging on OSX Mavericks

I've moved my development environment from my Windows machine to my Mac, which obviously means setting up tools (again). I got the ADT Bundle for Mac from Android Developers, followed the instructions and soon had a nice shiny new install. Then it was time to customise the environment; the first thing I looked at was the Android emulator.

If you're spending any serious time using the Android emulator (and you're on an Intel based machine), you'll want to check out HAXM, Intel's hardware accelerated emulator. The stock emulator is a bit of a snail, to say the least and HAXM vastly outperforms it. This means your "lather, rinse, repeat" cycle when deploying changes is greatly reduced and you're all round more productive. The downside is you have less time staring out of the window, so if you have a particularly nice view you may want to skip this.

I downloaded HAXM via the Android SDK Manager, which resulted in version 1.0.6 being fetched and installed. Unfortunately, running this version of HAXM on my Mac (running Mavericks - 10.9.1) caused the system to freeze, meaning a hard restart was needed.

It seems this is a known issue - see this post on Stack Overflow and this thread on the Intel forums, there's a hot fixed version of HAXM available, which resolved the issue on my machine.

You can download HAXM version 1.0.7 from from the Intel website.

Tuesday, 28 January 2014

iBeacon & Bluetooth LE Resources

Just thought I share a few resources I've found useful during my research so far into iBeacon and Bluetooth LE technologies.

My interest in iBeacon development was initially piqued by this piece from Tony Smith on The Register.

Having a Raspberry Pi spare, I followed Tony's instructions and soon had a beacon up and running...well, as soon as the Bluetooth dongle I ordered via Amazon arrived.

Tony mentions Radius Networks in his article and references this page, which features an in depth (but easy to follow tutorial) on setting up a beacon and goes on to give instructions on scripting the beacon to come up automatically when the Pi is booted up.

Radius Networks also provides free applications for iOS and Android that you can use to locate nearby beacons. I have so far spent many happy hours walking into and out of range of nearby beacons, and marvelling as detection and ranging events pop up in real time; I am clearly spending far too much time indoors. It's also worth noting that the iOS version of the app is capable of acting as an iBeacon in its own right.

If Android is your platform of choice, the Radius Networks Android iBeacon Library (basically a free Android SDK for working with beacons) is worth a look...and finally, you could definitely do yourself a favour by taking a few minutes to look at their developer blog.


BlueCats Starter Pack - Bluetooth LE Micro Location Hardware & Service

I've started evaluating the developer kit from the very nice people at BlueCats (http://www.bluecats.com). I came across the company while researching the current state of the indoor location market, and the developer in me was attracted to the combination of their (Bluetooth LE based) beacon hardware, SDK and server side management and reporting tools.

It's early days, but the devices are nicely designed and work as advertised, and the management console looks good too. There are a few configuration issues that need to be ironed out, in conjunction with BlueCats support, but I'll hopefully be up and running soon.

It seems the SDK is iOS only, but I'm assuming you'd be able to use a free library like Radius Networks Android iBeacon Library (http://developer.radiusnetworks.com/ibeacon/android/) if you want to use the BlueCats beacons with an Android device. I look forward to testing this assumption myself.

If you're interested, you can find more information here:
http://www.bluecats.com/starterpack/