28 May 2013 0 Comments

Okay so what are you gonna do? What are your options? You can wait until something else you watch on your computer makes you feel that way or you can go out and chase it.

You know, sometimes when I’m not happy—which is a lot by the way—I chase that happy. … To chase your happy you kind of become a scientist that looks for clues to your happy right where you are. I can tell you things that I’ve discovered that make me happy, but ultimately you’re going to have to find your own.

There’s going to be a lot of times when you lose the feeling
: happiness; courage; feeling close to someone. What are you gonna do? You’re gonna chase that shit.

(Ze Frank, 2012)

8 May 2013 0 Comments

Don’t ever guess, just learn. It’s just a waste of time to guess. Most of our meetings are big sort of guess-a-thons.

"Well I think in three weeks, we could do that."
"Oh, I think that this might work."
"Oh, I think that the users will prefer this over that."

These are things that you probably hear a thousand times, every day at work. Stop it—don’t do that anymore. Just make the thing; just make it work and start to learn things.

(Tom Chi, 2012, 16:00)

26 February 2013 0 Comments

[That] figure will be high enough to dissuade most sensible human beings from hitting the “buy” button while allowing Vergès to keep serving his current users with new features and bug fixes. “I’ll keep updating the app, simply because I want to use it as my main client, and I refuse to use an outdated client,” he wrote on Twitter. According to the developer, pleas for Twitter to grant him extra tokens have thus far been shot down. As expected, Twitter’s reasoning is that Falcon Pro largely duplicates core functionality of the company’s official Android app. “They refuse to extend the token limit because Falcon doesn’t provide any features that their app doesn’t have already,” he says.

I think it has a few features Twitter for Android lacks: being a good app citizen, and working properly.

6 January 2013 0 Comments
Finally Tinkering With The Nexus Q

I was fortunate enough to attend Google I/O 2012 back in June of 2012 (thanks Shopify!). One of the perks beyond the great sessions was receiving the Nexus Q, a device who’s actual release has been cancelled. It was, at the time, kind of neat, though spartan in terms of features: Android users can play music and YouTube videos to it over WiFi. That’s it. Under the hood, however, the device is running a full install of Android 4.0.

My first point of entry was enabling development mode. This is done from within the Nexus Q companion app, and was as simple as navigating to the advanced settings and flipping a switch. From the debug info screen, I could see what IP address the Nexus Q had on my network. From there, it was a simple remote ADB:

adb connect <IP Address>:4321

From that point, all standard ADB commands will be sent over the network—no cables needed! At that point, I opened the Settings app and tried connecting a Bluetooth mouse. How? You can always fire intents from an ADB shell; opening the Settings app goes like this:

am start -a android.settings.SETTINGS

From here, however, it’s a little tricky: there are no buttons to interact with what’s on screen, except mute and volume controls. It’s possible to send input codes as if they were typed on hardware buttons from ADB, though. This list of key codes really helped out. Entering a key code from an ADB shell:

input keyevent <Key Code Number>

Fairly simple stuff. But not all apps (such as Netflix) respond well to caret-style app navigation, so you can’t move from button to button with d-pad keys. For that, we can use MonkeyRunner. This was originally designed for controlling applications programmatically for testing, as part of your testing routine. To get this working from your terminal, run monkeyrunner (.bat, if you’re in Windows) from your Android SDK tools directory, and run each of these lines from the strange Java-meets-Python console:

from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
device = MonkeyRunner.waitForConnection()

From here, the sky’s the limit. Have a look at the full MonkeyDevice API, notably the touch() and type() methods. It’s certainly more painful that using an attached mouse, but it works. It’s worth noting here that none of these instructions are specific to the Nexus Q: you could do any of this with any development-enabled Android device.

My next step is writing a companion Android app operating as a hybrid remote launcher, keyboard and mouse. One helpful thing might be installing a launcher, I suggest Cyanogenmod’s Trebuchet (grab it out of a Galaxy Nexus CM9 build). In fact, many applications designed for a Galaxy Nexus ought to work here, as they share a lot of the same hardware. Just side-load the same way you would any APK—it even works via remote ADB like the above commands.

3 January 2013 0 Comments
The Relatable Fallibility of Roddenberry’s Humanity in STNG

I’ve started watching Star Trek: The Next Generation from the beginning again. Instead of just enjoying it as a nostalgic trip through my childhood, I’ve been trying to actively watch what’s happening in the show. I’ve noticed a number of personality and behaviour patterns that totally clash with how I remember each character as a child. Bear with me as I review what the first half of STNG’s first season was like a second time around.

Futuristic humanity is still fallible. From the very first episode, the bridge crew must deal with the (still very annoying) Q and his needless pestering. Tasha Yar and Worf are quick to anger and violence, and Picard is stubborn, and not nearly as reserved as I remember him—he is also very quick to admit mistake. The crew is, however, able to readily accept the limits of their knowledge, and measure possibilities before dismissing them as impossible. The very first episode has giant space squid, and that’s all quite reasonable to the crew.

That said, knowledge in Roddenberry’s new future, appears heavily specialized. The moment the ship’s computer is unresponsive, the crew—save for basically Data, Wesley and Geordi—resorts to shouting and anger. An unresponsive computer, for a bridge member, is broken and his world is in peril until it is magically fixed. An example of this can be found in The Big Goodbye, when Riker breaks down to shouting and hitting an unresponsive holodeck control.

Mistakes and elitism still run rampant. While Roddenberry’s humanity has overcome global war, currency and the majority of illnesses, they quickly judge disagreeing foreign cultures as inferior or primitive, comparing them to how Earth used to be. To an Enterprise bridge crew member, the 20th century was a veritable dark age of unenlightened racist warriors.

To be fair, though, other cultures often have similar views of the Federation: the Ferengi cannot comprehend the uncivilized nature of humans clothing women or wearing golden communicators. STNG has not yet found its roots this far into the series, concepts such as the Prime Directive play a larger role as the series progresses, where suspension of judgement is required. The Prime Directive was argued then disregarded in favour of giving Wesley a deus ex machina exit from a planet’s death sentence.

The bridge crew is also quick to judge the less experienced. Nearly every guess and wager Wesley makes (that the audience can see) turns out to be true, and yet when he accuses Data as actually being Lore in disguise (from Datalore), Picard and his mother refuse his conjecture. This is after Data remarks—in the same episode—that Wesley’s mind is beyond any mere teenager.

STNG's humanity isn't smarter or necessarily better than our own. They have an advanced society, and have much technological and medical prowess, but individually they are merely the same old quick-to-judge humans in color-sorted unitards. There are serious advancements made as a society, notably the reduction of class, social rank and the acceptance of duty, but this is within the confines of the naval-like social contract of the Federation. They are not the super heroes of my childhood, and that's a good thing. Seeing a relatable humanity is what makes the show more interesting as an adult.