05. May 2014

GIDS 2014

A couple of weeks ago, I had the privilege of speaking at GIDS (the Great Indian Developer Summit) 2014 in Bangalore. GIDS is a multi-day event, with each day dedicated to a particular theme or topic. I spoke on the Wednesday (the Web/Mobile day) and had three sessions covering mobile app development using iBeacons, tips and tricks using AngularJS, and automated Web testing using JavaScript.

more

28. March 2014

Bluetooth Issues on Mavericks

I’ve been having some issues recently with the Bluetooth stack on my Mac acting strangely - causing Bluetooth devices to drop at random times and on occasions, the default mouse and keyboard will stop working even though the machine is running fine. One of the symptoms of this has been the bluetooth preferences pane showing “do not localize” when things become corrupt.

more

27. March 2014

Automated Web Testing using JavaScript

The process of creating automated tests for Web applications has been around for many years. Vendors such as HP, Parasoft, QFS, and even Microsoft have test software that can be used to create and run automated tests. Over the past couple of years however, we’ve seen an industry-trend towards open source Web testing solutions based on JavaScript. Such solutions have the advantage of being easily modified, free to download, very modular, supported by a vibrant community, and (given the popularity of client-side JavaScript) tests can often be written using the same language as the Web application.

more

27. January 2014

File > New > Presentation

About a year ago, I set out on a journey to write a book on presentation skills, aimed primarily towards software developers and other technical professionals. My reasoning is that too many presentations in our industry still fail to connect with their audience, don’t tell a story, and end up as a set of mind-numbing slides of bullet points that put people to sleep.

more

12. December 2013

iBeacon Demo at Gartner AADI

Last week, I joined my colleagues from Neudesic at the Gartner AADI (Application Architecture Development & Integration) Summit in Las Vegas. One of the neat things that we were showing was a demo of iBeacon technology, in order to help locate and pinpoint individuals within indoor environments where GPS is not an option.

more

06. August 2013

Building a WebRTC Client for Android

If you’ve been following any of the recent developments with WebRTC, you’ll know that the majority of samples and example code available today target the Web browser (typically Chrome or Firefox). While this is useful to get up to speed, IMO one of the most powerful applications of WebRTC will be for mobile devices. Despite this, getting WebRTC running on mobile can be somewhat challenging.

more

05. July 2013

Designing a Web API for Mobile Apps

As you can imagine, over the past few years, we’ve seen a fair share of good and bad API design. In this blog post, I wanted to share some of my observations, thoughts, and questions that I ask of a well designed Web API, especially one that will be called from a mobile app.

more

03. July 2013

Persistent Logging in Android

No code is perfect, but the nasty types of bugs are the ones that happen randomly and infrequently. On a couple of recent Android projects we’ve been experiencing such bugs, and as you can guess they can be difficult to track them down.

more

19. April 2013

Transferring Data via Bluetooth on Android (android-btxfr)

Recently, I’ve been working on some code to transfer images and other data between Android devices using Bluetooth. While I could have used the Basic Imaging Profile (BIP) of the Bluetooth 4.0 specification, this particular application has specific requirements that would have been difficult to implement using BIP. To overcome this, I ended up building an application that instead relies on the Serial Port Profile (SPP), exchanging data using the RFCOMM protocol.

more

16. April 2013

Enabling x86 Android Emulation

If you’ve undertaken any Android development, you’ll have likely found that the Android emulator can be painfully slow – to the point where the majority of developers I know use a physical device to do any development at all. The primary reason behind this is that the default emulator is emulating an ARM based chipset on x86 hardware, and the translation between these two architectures is of course costly. What many of these developers may not realize (and I didn’t until very recently) is that Intel have released a x86 Android emulator. The x86 emulator has a few caveats (and of course cannot run any ARM-only libraries, such as the Google Play APIs), but overall can be used to speed up the performance of testing apps in the emulator by leaps and bounds.

more