Wednesday, May 8, 2013

Installing Nexus 4 ADB drivers on Windows 7 x64.

Having trouble installing the ADB drivers for your Google/LG Nexus 4?

After much trial and error, I found a solution that worked for me, as of 08 May 2013 with Jelly Bean 4.2.2.

First, use the Nexus 4 Toolkit to install the ADB driver. It also comes with tools to root and backup your phone if you so desire.
http://forum.xda-developers.com/showthread.php?t=1995688

Alternatively, if you only want to install the driver, you can go directly to Koush's universal ADB driver, which the Nexus 4 Toolkit uses.
https://plus.google.com/103583939320326217147/posts/BQ5iYJEaaEH

I had trouble trying to install the default Google ADB drivers that came with the Android SDK. For some reason, I guess the driver is not signed and the 64-bit version of Win7 refuses to install unsigned drivers. Oh well.

Next, make sure your ANDROID_SDK_HOME environmental variable is set correctly. I had installed an earlier version of the Android SDK, so mine was pointing to the wrong location.

It should point to where your .android directory is located - usually c:\Users\[YOUR_USERNAME]\.android

Set the environmental variable by right-clicking on "Computer" and selecting properties > Advanced System Settings > Environmental Variables.

You may also want to add the platform-tools directory to your PATH so that you can run ADB from any location in your command prompt.

Next, restart the ADB server by typing "adb kill-server" followed by "adb start-server".

On your device, you should have the Developer options > USB debugging turned on. If you don't have the Developer options enabled, you can do so by going to Settings > About phone and then tapping on Build number seven times.

If all goes well, you should see a pop-up on your Nexus 4 asking you if you want to accept connections from your computer. This is a new security feature in Jelly Bean 4.2.2 and you'll have to accept the device fingerprint if you want adb to work.

There you go! Have fun with your adb-enabled Android device!

Tuesday, April 16, 2013

Importing Drupal/PHP projects into IDEA 12.1.1

This is completely unintuitive, but in order to import an existing PHP project into IntelliJ IDEA 12.1.1, you have to create a new project into the directory with your existing sources, and choose "web module" as the type.

Do not try to import the project - it will fail to create a top level module and you'll be stuck seeing only the files in the top level of our project directory!

Source: http://stackoverflow.com/questions/13618039/intellij-php-application-losing-module-after-close

Tuesday, February 12, 2013

IDEO Make-a-thon was a blast!


This past weekend I had the pleasure of being a part of the "SuperHuman" make-a-thon at the IDEO design studio in London.

Needless to say, I had an amazing time making stuff and hanging out with such super-creative, awesome people, and I made a bunch of new friends in the process as well.

From the icebreaker experiments with Miracle Frooties, to the wonderfully inspirational talk by artist/designer Dominic Wilcox, to the final presentation of prototypes by the twelve awesome make-a-thon teams, the two-day event was a wonderful brew of inspiration, creativity and perspiration with a giant helping of fun thrown in for good measure.

By the end of the weekend, there were some fantastic concepts and, IMHO, some truly well-executed prototypes and presentations.

All the teams were super-fantastic, including my personal favourite:


Many thanks to +Haiyan Zhang and the entire +OpenIDEO team for organising and putting together such a wonderful event.

SuperPhysical: Being superhuman at everyday physical activities!

A day before the start of the make-a-thon, the teams and the design challenge briefs were posted onto the web. I found that I was assigned to the SuperPhysical team and that our mission (if we choose to accept it) was to design solutions to how we might become superhuman at doing everyday physical stuff.

On the first day of the event, we started to brainstorm ideas to cover the design space with as many concepts as possible.

We came up with lots of ideas on augmenting our physical abilities — from being able to carry lots of shopping bags to make the trip in one go, to reaching things in high places, to getting there faster and regenerating power from your movements to power all your electronic devices.

We had quite a few laughs in the process — you know you are on a good team when you can pitch seemingly insane ideas freely without worrying about others on your team passing early judgement (as sometimes can happen when brainstorming with clients on "real" projects).

"telekinesis" concept
"telepathy" concept

Two concepts quickly came to the fore as potentially interesting ideas and revolved respectively around the super-abilities of "telekinesis" to control everyday objects with your mind, and "telepathy" to broadcast your emotional state to others so that you can get your everyday stuff done.

We built some decidedly lo-fi prototypes and put together a hokey performance skit to pitch the two concepts to the larger group, which they seemed to enjoy. It was really great that the audience seem to get and respond to our concepts, which gave us confidence that we were going in the right direction.

The next day, we decided to focus on the "mind mouse" telekinesis idea and flesh out the concept some more, focusing on storytelling and prototyping.

In the early-morning brainstorm powered by a wonderful super-foods breakfast and strong coffee, the team became enamoured of the objects of control having their own personalities and possibly even some degree of free will — to collaborate with other objects to collectively help you get stuff done like pack animals do, to be parental and "guilt-trip" you into doing what you need to do, and even to rebel and say "no" if you are acting against your better-self.

We then synthesised these new ideas with the mind-mouse telekinesis idea and evolved the superpower into the ability "to bring to life everyday inanimate objects and turn them into your minions to help you get your everyday physical stuff done."

The concept involved plugging-in your everyday electrical appliances into "brain-boxes" that would grant them personality and give you the ability to control them with a "mind-control" headset, hacked from Necomimi brainwave cat ears.

New personalities might be crafted by artists or experts, or even crowdsourced and curated to be downloaded into the brain-boxes.


After a half-day of electronics and Arduino hacking, guerilla knitting, foam-core wrangling and comic-strip making, little did we know that we ourselves were being transformed into make-a-thon superheroes.

Many thanks to everyone at IDEO for the wonderful event, and especially to my wonderful teammates in "SuperPhysical":

- Jen Ballie (@jenballie)
- Amy Bonsall (@amy_bonsall)
- Paul Carter (@Juniorc0)
- Yuni Lee (@yunilee)
- Chris Paton
- me (@h4rrydog)

Thursday, February 7, 2013

Easy infographics with D3.js!

For the Google Developer Group "Design in Action" hack-a-thon, we made an Android app that served up info-graphics of data about your location from public APIs such as the Met Police.

I used the amazing D3.js JavaScript library to whip up some quick and dirty JavaScript that convert JSON data into beautiful info-graphics.

D3 makes it really easy to implement your info-graphic designs in JavaScript with HTML or SVG elements that you can style with CSS.

D3 has DOM selector methods like in jQuery, but adds some special sauce to bind data to DOM elements in a declarative manner.

D3 also has some pretty cool animation methods to give your graphics that extra umph when elements "enter()" and "exit()" the stage.

See the results here: http://doodle.guanxin.de/PlaceMe/infographic.html

The code is available at GitHub: https://github.com/h4rrydog/PlaceMe

Sunday, January 27, 2013

An awesome Android hack-a-thon at Google!


This past Friday and Saturday I took part in the first ever Google Developer Group (GDG) "Design in Action" hack-a-thon at Google Campus in London. It was great fun and I made lots of new friends. And we were proud and humbled to walk away from the event with the best app award, as judged by two Google staffers!

The prototype for the Android app we built — Place.Me — displays location-based crime, earnings and demographic data in an infographic style using public data streams.

We built the app and the Google App Engine back-end on Saturday in eight adreneline-filled hours of hard work. By the final hour of integration and the final 5 minutes of debugging, us racing to finish on time, our hearts were pounding and we felt like we could accomplish anything.

By the end of it all, everyone felt such an amazing sense of accomplishment. And winning the best app award was just icing on the cake. It was AWESOME!

While we had lots of great ideas for some really engaging and amazing mobile experiences, we had to pare the concept down quite a bit to a MVP that we could finish in the time allowed. Hopefully, the team will collaborate in the near future to develop the concept and the prototype further. 

We're lucky in the UK to have so many public data APIs available. It would be amazing for civic participation to be able to expose more of these data to citizens in compelling ways that help to tell the story of what's happening in our society.

The event was co-sponsored by GDG London and GDG Women, and aspired to elevate the quality of Android apps by encouraging participants to form teams with at least one designer and one developer. 50% of tickets to the event were allocated to women, and one suggested theme for the hack-a-thon was the empowerment of women in tech through apps.



(Images from the public G+ event stream)

Place.Me team members:
- +Sanjay Poyzer (@sanjaypoyzer)
- +Magdalena Rogier
- +Rami Shomali
+Stephen Stagg (@stestagg)
- +Mantas Varnagiris
- +Evelina Vrabie (@inryaa)
- +Flavio Zanda
- me (@h4rrydog)