Feb. 20, 2013

Pac-Man Ghost

You can run a single-use instance or site specific browser using Chrome web browser with it's own self-contained user data on GNU/Linux like this:

chromium-browser --app=https://plus.google.com/ --user-data-dir=$HOME/.chromium-googleplus

This launches Chrome in an 'app' style window with just that particular web app visible (in this case, Google Plus) and no location bar, navigation buttons, etc. It isolates the browsing session from your other browsing preventing e.g. social networking sites from tracking you too effectively. If you are logged into Facebook in a regular browser for example, that company can tell every site you visit that contains a Facebook 'like' button or Facebook comments section. They are effectively gathering a comprehensive browsing history of every Facebook user who remains logged in. Do you want Facebook to know your browsing history?

It should be possible to do something very similar with Chrome for Windows and a batch file.

On Mac you can use Fluid if you want to pay for ease of use, or the same trick as above with Chrome by accessing the binary directly e.g. something like /Applications/Google Chrome.app/Contents/MacOS/Google Chrome --app=https://plus.google.com/ --user-data-dir=$HOME/.chrome-googleplus. Save that as a shell script for one-click access.

If you want to further anonymise your browsing (e.g. obscure your IP address for example) you might consider using software like Tor.

Jan. 26, 2013

Prediction: within 3 years the stylus will be the killer feature of Android tablets.

I'm talking about true stylus input via induction, not those capacitive styluses you can buy for the current crop of tablets.

HTC Flyer, Lenovo ThinkPad Tablet, Asus Eee Pad MeMo, and Samsung Galaxy Note are at the forefront of this wave of hybrid capacitive + inductive (e.g. finger + stylus input in separate channels) Android tablets.

Pretty soon we'll all be wondering how we managed on tablets that only had capacitive/finger input.

Note: the most cutting edge versions of Android support full stylus support. Maybe this will be one of the rare times Android beats iOS to a killer feature.

I've long anticipated a logographic / hand drawn social network or micro-blogging platform where status updates come in the form of sketches. Maybe the upcoming stylus ubiquity will bring it about?

Dec. 10, 2012

  • Use zepto.js not jQuery.
  • Use -webkit-transition and -webkit-transform wherever possible.

Especially useful if you are developing with PhoneGap/Cordova on iPad and iPhone, or Android. Those webkit transforms saved my bacon on a recent iPad project. Here is the basic CSS you want to put on an element you want to optimise:

-webkit-transition: -webkit-transform 0ms;
-webkit-backface-visibility: hidden;

Try replacing $(this).hide(); with a transform that moves the element off screen like this (might need overflow: hidden on your body tag):

$(this).css("-webkit-transform", "translateX(1500px)");

Then when you want to show the element again do this instead:

$(this).css("-webkit-transform", "translateX(0px)");

I also had great success replacing jQuery UI drag-and-drop code with something hand-rolled:

$(this).css("-webkit-transform", "translateX(" + relativeX + "px) translateY(" + relativeY + "px)");

Hope this helps you!

Nov. 16, 2012

IMG_20121115_181922.jpg

My first makerbot print. Felt like the first time Mum and Dad brought home the Apple IIe. Everything feels different today than it was yesterday. Thanks so much to Mike for letting me (ab)use his makerbot!

The lego man is from Thingiverse. The arcade machine is a hack of one on sketchup warehouse.

Aug. 8, 2012

scout-and-dad-photo-wall-at-harukis-house.png

Photo by John Leonard.

Warning: post contains serious navel gazing.

Lying around in the dark trying to get my sleeping patterns back into Western Australia time from Western Scotland time has got me thinking a lot about focus and priorities.

  • I used to spend about twenty hours per week in my spare time doing Free-Libre and Open Source Software. I currently manage to allocate about zero hours per week to FLOSS.

  • Almost all of my time is now taken up with commercial work, social life, and family time. Although I would love to write more Free Software, I am ok with this balance for now because spending time with family and friends is definitely not the worst thing to do with your life.

  • I am officially orphaning the Infinite 8-Bit Platformer project. If you are a Free Software developer interested in taking over that project please contact me! There have been a ton of irregular users but the codebase badly needs some love. It's written in Python and Pygame and is GPL licensed.

Infinite 8-Bit 
Platformer

  • I still get to contribute a bit to Free Software projects during the course of my commercial work - I just don't have the luxury of pioneering my other vanity projects any more - except maybe jsGameSoup which gets used by one of my clients.

  • This whole shift is in general probably a good thing as it is turning me into more of a team oriented and social programmer. It forces me to re-use other people's code and work on other people's ideas more which is a good and efficient way to roll.

  • I have a plan to recover some of my commercial time for specific use on Free Software again in future. This basically comes down to making a way to fund some of that time myself and still keep my family in sustenance. Hopefully that pans out!

  • The one thing I wish I had more time to do is make music. I guess if I wanted this bad enough I would just make it happen but right now, no.

None of this is really a bad thing, just a fact of life. Friends and family are super-important to me right now, life is happy, and I still get to write a crapload of code for my wonderful clients and the very interesting projects they have created. :)