Sunday, February 10, 2013

Sharing Things (Vaguely Securely) with Mobile Devices

One of the things I do in my work is very basic User Experience problem solving. A fun problem just emerged and I wanted to share some of the work I've been doing on it.

So a couple weeks ago I was talking with a friend whose mobile app is 98% finished. They've been having a fun time, getting to play with all sorts of new technologies: Augmented Reality, Near Field Communications (NFC) and the latest UI widget sets. At one point, we attempted to share data between our handsets (which is what the NFC portion is for.) Well.. it turns out there are still a few snags in sharing data between devices from different manufacturers (and possibly different versions of the Android OS.)

I am not an expert in making NFC work on Android, but I've got to think if it was hard to share data between a Android Ice Cream Sammich and Anroid Jelly Bean, there's no hope of getting things to work when you try to communicate with iOS users (not to mention Boot2Geko, BlackBerry or WinMobile)

So I got to thinking... how do you easily communicate a small amount of data between two devices when the users are standing next to each other? It should go without saying, this transfer should be reasonably secure; an eavesdropper should need to be close enough that the people involved could see large antenna or telescopes sticking out of their backpacks.

The industry is gearing up for NFC and that's great, but I can't help but think someone in the value chain is going to try to put a wall around users. If it's not Apple or Samsung forcing users to use a manufacturer-specific UI or API, it's probably going to be the carriers being jerks and requiring app developers to pay stacks of cash to digitally sign apps that can use NFC devices.

So I then hit on the idea of using QR Codes as a sort of "poor man's NFC."

Sure, QR Codes aren't super popular in the states, but there's enough support in Europe, Japan and US Geek circles to make it worth thinking about.

My idea is to add a "show QR code" feature to apps or mobile web pages. The QR Code resolves to a randomly generated URL that has just enough smarts to communicate application state or data from one mobile device to another.

So... if I wanted to add a "share this track" feature in my audio player app, i would press a button and a QR Code encoding a URL for that track would appear on my screen. The person I want to share it with would use their QR Code scanner to scan my screen and be taken to a "meet in the middle" application out on the mobile web.

The "meet in the middle" app should be specific to the transaction; it should only allow that one particular track to be shared and the URL should be active for only a few minutes or even for a single use. If this is part of a legitimate music sharing service like Spotify or Rhapsody, we probably should log the user in to make sure they're allowed to receive the track. Authorizing the user isn't strictly required for sharing data through random URLs embedded in QR Codes, but it's probably a good idea. Once the receiver scans the code and is redirected to the "meet in the middle" application, it can do whatever it needs to do to complete the transaction.

But anyway... the big idea here is there may be some roadblocks to deploying NFC for generic sharing applications, so consider "meet in the middle" URLs encoded into QR Codes. QR Code readers are more or less universal for smart phones and bad guys would have to get close enough to scan someone's screen to get the randomly generated URL.

I put together a very basic demo at the QR/UX Demo Page and invite you to try it out!

Sunday, February 3, 2013

Taking my Radical Tech Agenda to the Air

At 10AM on Saturday, February 9th,  the Union of Benevolent Electrical Workers (UBEW will be co-hosting GeekSpeak, the local weekly tech radio show and podcast. We will be discussing our "radical tech agenda" amongst other things.

If you're unfamiliar with GeekSpeak, you should check them out. I listen to them most every week -- strangely, they come on the radio about the same time I'm usually starting my weekend soldering projects. So for me, it's great... I have a soldering iron in hand, listening to people on the radio talk about geeky subjects. If you're a pod-casting type, you can subscribe to their feed via the NPR Podcast Directory.

The Union of Benevolent Electrical Workers (aka UBEW) is a "radical collective of individuals doing socially beneficial things with technology who come together for mutual assistance." We're like a Dadaist users' group focused on things that help the local community. For instance, UBEW and the Santa Cruz Free Skool offer classes in tech-related subjects ranging from PHP & Java programming and cryptography to basic soldering.

There's also an outside chance we'll talk about the etymology of the term "Code Mollusk."

If you're in the Monterey Bay area, you can listen in on 88.5 KUSP or repeaters at 89.1 (Hollister/Gilroy), 89.3 (Downtown Santa Cruz), 91.3 (Palo Colorado Canyon) and 95.3 (Big Sur Valley.)

If you live somewhere else, you can listen on the web using the KUSP web player at http://www.kusp.org/listen-live.html .

Feel free to call in during the show and toss questions our way. 831.476.2800 or 800.655.5877
In short, we like to think we're doing good things for our community and we're going to be on KUSP 88.9 at 10AM next Saturday (February 9th, 2013).