George McKinney Adventures in Software Development

January 22, 2017

At the Park

Filed under: Uncategorized — georgemck @ 9:34 pm

July 4, 2014

Create, Build & Install BlackBerry WebWorks 2 Mobile App via Command Line

Filed under: BB10,BlackBerry,Cordova — Tags: , , , — georgemck @ 12:25 am

With the coming release of BlackBerry 10.3, there is renewed interest in BlackBerry app development. This is a quick example of how to build and install the default BlackBerry 10 application that comes with WebWorks onto a mobile device.

WebWorks command line leverages Apache Cordova so many of the same commands work. Cordova requires Node.js. When you install the WebWorks SDK 2.0, it will come with Node.js. Get the WebWorks SDK at I always install with administrator privileges.

Open up terminal or a DOS command prompt and make sure that you can type WebWorks and see that it is installed


WebWorks in the command line

WebWorks in the command line

Next you can create your mobile application project,

webworks create firstapp com.example.firstapp

and change to its project directory

cd firstapp

If you go a little further you will see the config.xml inside the www folder. This file gives instructions to the compiler when it builds your mobile app. To test this default application, you don’t need to change this. You can build the app with the following

webworks build

and this is what you will see:

Created a BB10 Mobile App Bar file

WebWorks in the command line

To install the application, you can change directory to where it built it and then install it from there. Your device may need a debug token to install, it will let you know if you do.

blackberry-deploy -installApp -password your_password_goes_here -device

Since I put my device in developer mode, the IP address it gave me was

Install App by Command Line

Install App by Command Line

We can see installed app:

App Icon

App Icon

Just tap on it to open it:

App running

App running

So, pretty nice… Some extra thoughts: To install the app on a device, you will need signing keys. you can get them for free from BlackBerry: Be sure to register as a BlackBerry developer first, which will attach your developer account with your BlackBerry ID; this can be the same one you use for BlackBerry Messenger!

Hope you enjoyed it. Have any comments, send me a message on my Twitter account, @georgemck.

February 28, 2014

Will Tweet for Lip Gloss!

Filed under: Uncategorized — Tags: , , , , , — georgemck @ 9:10 pm

This is Oscars week in Hollywood.

From around the globe, fashionistas have descended upon this small community to make connections, share techniques and have a great time. WeWork, a boutique creative office space at the center of the action, was selected by Vanity Fair for its first ever Social Media blitz as part of Vanity Fair’s annual Campaign Hollywood.

Fashion bloggers and media influencers have been hard at work on the floor with cameras, laptops and smartphones on 100 megabyte internet connections tweeting, hashtagging and instagramming the buzz picked up on the evening celebrity news. Treated like celebrities themselves, manicures, pedicures, gourmet caffienations from Coffee Vittoria of Australia and more are all at their beck and call.

To the more part, what stands out to me is the use of technology here: backed by Vanity Fairs partner brands Loreal, Lancome, Chrysler, Chobani, Giorgio Armani, et. al, a new tweet-driven viral marketing tool has been born.

“This is the coolest thing!” – a fashion influencer exclaimed upon receiving her gift.
Twitter driven Viral Machine

How it works: The hardware involved is a typical candy vending machine decorated on its sides with the hashtags of the featured brands, a touch screen windows computer is attached as the user interface and wired to the vending machine. The software works by guiding users to a product where a specific message series of hashtags are displayed for tweeting. The user then tweets the message. The software receives the hashtag from Twitter, analyzes it and then actuates the product selection and delivery mechanism.

Instead of candy dropping from the machine, you catch a $40 lipstick box.

I think this was a fun way to get people engaged in the brand and deliver a crowd-pleasing display that kept the audience engaged all-day long.

Will Tweet for Lip Gloss all day long!

December 27, 2013

Widgets, Config.xml and Cross-Platform Mobile Development

Filed under: Cordova,PhoneGap,PhoneGap Build,Samsung TV,Tizen — georgemck @ 10:35 pm

Mobile Applications aka Apps that run installed on mobile devices are of two types: native and hybrid apps.

Many of these hybrid apps use a config.xml file which follows the W3C widget specification ( in order to instruct the native compiler to load required elements that a physical device (phone, tablet, television, car, you name it!) needs that a web browser does not. These elements pertain to security, loading times, splash screens, permissions, license, icons, author, content type and more.

Because many web apps are packaged in this way. It’s a good idea to be familiar with them as you will see them again and again and understanding the similarities will help you to more quickly port your existing apps to other platforms.

The following platforms use config.xml for packaged apps:

Apache Cordova

Adobe PhoneGap

BlackBerry WebWorks

Tizen Web

Samsung Smart TV

These will be helpful resources for you.

November 5, 2013


Filed under: Arduino,Python,Twitter — Tags: — georgemck @ 6:47 am

This past weekend at the Angelhack in Los Angeles,, I worked with a team of guys (Joaquin, Alan and Cory) to build an Arduino-powered beer pump. Our in-house brew master, America, served it up.

This project followed the #driptweet coffee maker with a few adjustments.

Hardware used in this project were an arduino uno, seeeduino relay shield, LED light, and a 2 prong power cord extension.

Software used in this project was Python and an Arduino Sketch. Both can be found at

Cory, George, Joaquin and Alan

The Twitter page sending tweets and from which the Python code looks for instructions to pass on to Arduino.

The Arduino Uno is underneath the Seeeduino Relay Shield

Good view of Fish tank and the tubing that goes to the Keg of beer dispenser.

The python terminal and the python program running.

America pouring a cold beer

Alan’s UI Mockups for the app

Alan’s UI Mockups for the app

Alan’s UI Mockups for the app

Alan’s UI Mockups for the app

Alan’s UI Mockups for the app

October 26, 2013

Augmented Reality Mobile Apps in JavaScript

Filed under: Android,Augmented Reality,BB10,BlackBerry,Chrome Browser,Mobile,PhoneGap — georgemck @ 1:03 am


On Oct. 22nd, 2013, I gave a presentation at the HTML5 Developers Conference in San Francisco,

This is about JavaScript, Augmented Reality, mobile apps, PhoneGap, BlackBerry WebWorks and touched on Google Nexus devices and the Tizen OS.
There are many hyperlinks to click on to go to source code, demos and resources inside.

My presentation is viewable at the link below.

To navigate it, use the Arrow keys to go up, down, right, left.

AR Mobile Apps

To navigate it, use the Arrow keys to go up, down, right, left.

Thank you,

October 14, 2013

Upgrading Windows 8 on a Toshiba Ultrabook

Filed under: Windows — georgemck @ 6:57 pm

I spent several hours recently getting my primary computer upgraded in anticipation of the Windows 8.1 release. I decided to upgrade to Windows 8, which I had been putting off due to the fact that my Toshiba is very important to me and my work. When Windows 8.1 comes out, I will do that right away.


First off, Windows 8 is a large operating system to upgrade to on an Ultrabook. I didn’t want to do a fresh install because I have many programs installed already. Yet the Toshiba Portege Z835-P372 (model PT224U) only has 128gigabytes of hard disk space, and only 102GB of that is really usable. After downloading the installer from Microsoft, I entered the Windows 8 product key and was able to create a USB drive on a 4GB flash drive. I am glad I did because having the new OS external was easier to manage considering I had to restart the computer so many times to 1) clear 20GB of hard disk space, 2) remove Toshiba software that was incompatible with Windows 8 during its installation and 3) remove Microsoft’s Security Essentials.

Freeing up enough space pretty much came down to me uninstalling Adobe Master Collection. First, I had to Deactivate the software. This is so that I can reinstall it again later. If I didn’t deactivate then I would not be able to use their software again. That freed up 15gigabytes, whoa!

The problem with removing the Toshiba software was that the normal uninstall through Programs and Features did not work for me. I had to uninstall it manually. One trick to avoid manipulating the registry was reinstalling the Toshiba software and then immediately deinstalling it and rebooting. I did this for TOSHIBA Disc Creator. For TOSHIBA PC Health Monitor and TOSHIBA Recovery Media Creator I went into the registry and deleted their entries in addition to deleting their folders in Program Files. I ran the Windows 8 software again and then it confirmed the software was removed.

The most difficult one to remove was actually the Microsoft Security Essentials. I use AVG Antivirus and Spybot Search and Destroy. Spybot works with Security Essentials. I had to go into services.msc and msconfig to make sure they they were stopped, that they were disabled and would not start automoatically upon reboot. To remove AVG, I ended up removing the folder from the Program Files folder and rebooting. From the AVG website, they have a DOS-based uninstaller. When it failed, I resorted to removing the folder myself.

The last piece of software I removed was Intel PROSet/Wireless WiFi Software. I did this one last because once I did, I no longer had WiFi internet. ;-(

After rebooting and relaunching Windows 8 installer again, it performed its pre-install checks and then installed the software. Installing Windows 8 took over an hour from that point.

Lessons learned: check with the manufacturer website, in my case Toshiba ( Confirm your computer is Windows 8 ready. Toshiba has a webpage listing which of their computers are. Be prepared and take your time. This is not going to be fast and it’s most important to do it right.

May 17, 2013

Mobile Augmented Reality with HTML5 on BlackBerry 10

My friend @Yosun on Twitter of AReality3D asked me to create a mobile AR app using Adobe PhoneGap,, and the JS Aruco library, JS Aruco utilizes a port of OpenCV,, for JavaScript, It takes advantage of HTML5 browser capabilities getUserMedia ( and WebGL (checkout Three.js, to enable desktop browsers to create augmented reality using JavaScript.

I used Google’s Chrome Browser to verify the web application worked on the desktop. This got me thinking about the recently released BlackBerry 10 phones and their heavily touted “better than desktop Chrome” mobile browser, and I thought I would give it a try. Heading over to one of the JS Aruco demos,, in the Z10’s mobile browser, it worked. I decided to take things a bit further and actually build a mobile app rather than use the website application. I used WebWorks which is the BlackBerry-engineered Cordova PhoneGap distribution with deeper integration with device capabilities than Cordova on BlackBerry mobiles. The result of the test was this video, Performance is a little slow and the video a bit hazy but I know it will perform better with some code optimization…

A little background about augmented reality. I started experimenting with augmented reality back in 2009 using using the FLAR Toolkit,, with Papervision3D,, for demoing virtual fashion shows in LA. FLAR Toolkit enabled Flash developers to create browser-based experiences using 3D and the video stream from a computer’s web camera. This technology uses black-and-white markers for tracking. A pretty-cool way for developers playing around with computer vision.

Total Immersion,, took this experience to a higher level when the company released its first Flash-based AR SDK for their industry-leading D’Fusion studio. This brought their hallmark markerless tracking ability using live video streams with excellent performance to corporate brands. Take a look at this project I worked on for Kraft using it, Unfortunately, the licensing cost of their solution kept it out of reach for most developers.

Fast-forward a couple years and now Flash is a less emphasized technology and being rapidly displaced by HTML5 on destkop and by native coding in mobile devices. Qualcomm released its augmented reality SDK for Android and iOS devices, Vuforia, for free which brings native and Unity 3D mobile developers the ability to create AR. Many brands have adopted this solution including American Apparel,, for use with smartphone apps.

Mobile Augmented Reality with JavaScript can be considered another piece of the puzzle being filled in to replace Flash. With this success, I see many more applications that are leveraging the dynamic nature of JavaScript and the ease of use and device capabilities a modern phone provides. Congratulations to all the projects and teams involved here in breaking new ground.

February 18, 2013

HTML5: Separating Fact from Fiction

Filed under: Android,BlackBerry,iOS,iPhone,Windows Phone 7 — georgemck @ 1:00 am

On Thursday, December 13, 2012

I gave the technical portion of the presentation on HTML5 development for the Verizon Developer Community

HTML5: Separating Fact from Fiction

App developers have kept a close watch on HTML5, with its promises of faster, easier development and cross-platform simplicity. Meanwhile, the technology has been slapped down by companies like Facebook, who contend that its performance isn’t up to snuff. Join the Verizon Developer Community for a webinar to separate the fact from fiction about HTML5 apps, the best approaches to using it, and how you can use HTML5 to develop more efficiently and cost-effectively. We’ll cover:

What HTML5 can and can’t do
Pure HTML5 and HTML5/native hybrid approaches
When to consider HTML5, hybrid and native
Tips, best practices and lessons learned from developers using HTML5
And more!
The webinar already took place, you can view here, Thank you for attending!

More sessions are viewable here:

January 14, 2013


Filed under: Uncategorized — georgemck @ 3:39 pm

This page has all the resources you need to bring you PhoneGap Android application (no plugins allowed) to BlackBerry 10 phones. Modification of your UI will probably be necessary and possibly some adjustments to your code.

Here are the links:

  • Vendor Portal for BlackBerry App World
    Create your account
  • BlackBerry Keys Order Form
    Get your keys
  • BlackBerry HTML5 WebWorks
    Go to
    so that you can install Ripple emulator into your Chrome Web Browser and install the WebWorks SDK
  • WinRar or other Zip extraction program
    Download from or from another safe URL!
  • PhoneGap APK
    such as from PhoneGap Build, Tiggzi, etc.
  • BlackBerry Tablet OS Graphical Aid
  • WebWorks Config.xml

  • BlackBerry® Packager for Android™ Apps
  • Loading Your Application into BlackBerry World

Older Posts »

Powered by WordPress