I published my first app to the Play Store!

So a while back I decided to learn a bit of Unity3D. I’ve wanted to make some sort of drawing app for ages and tried various ways round of doing it (this Rails app was my first stab at it).

Anyway, progress has been glacially slow due to coding commitments that actually pay the bills, but I finally made something I was pleased with. Behold: Draww!

Should be a joyous time right? Well:

  1. Looks like I deployed it using my debug keystore, which I didn’t even know was possible. Now debug keystore = production keystore….
  2. Turns out that doesn’t matter anyway, because Google’s search doesn’t allow the extra “w” on the end of my app name unless you enclose it in inverted commas. …and who’s going to actually search with ” ever? No one.

So yeah, back to the drawing board on that one. Perhaps I’ll rebrand it “Swirly Drawing Thing” or something. What a pain. I’d made a logo too!

Anyway.Β At least I’ve learnt a few things from this complete anti climax…. Next up: A post about keystores!

Time Machine vs Carbon Copy Cloner

So I recently decided to switch from Time Machine, OS X’s built in backup solution, to CCC. 

Time Machine often had trouble finding my network volume I was using for backup, due to a lack of advanced config options, and I never liked the way it wouldn’t tell you “exactly what it was doing”. I’ve successfully restored massive TM backups before, but the weird Dr. Who style interface always scared the shit out of me quite frankly. I want my backup software to look rock solid, not like it’s done acid!

Enter Carbon Copy Cloner. First thing I didn’t know: it uses Sparse Bundle backups just like Time Machine! These are disk images broken up into lots of small files, which is great for handling diffs and stuff if you want to do incremental backups (which CCC can do too) and send them off site. My NAS backs up to Amazon Glacier, so obviously if each backup changes a single 500GB file, this would be bad… 

 Big difference with CCC though: I can directly mount the resulting image! So while TM would churn through my backup just fine, I never had a decent way to verify what it had done. Just its weird Dr. Who interface… CCC lets me see the full contents of the backup directly. Another advantage: I can actually specify a username and password for the network share I want to backup to. Something TM always struggled with.

So yeah, quite happy with that! CCC: Like Time Machine but with less acid and more control. πŸ˜‰


Ha! This is an interesting site I didn’t know about before. Libscore.com collects usage stats on Javascript libraries from the top 1 million websites and ranks them.

Wondering what the chances are of that library you’re thinking about using being a piece of shit? Don’t want to spend a few days figuring that out for yourself? Want to have a more educated guess on the subject? Libscore!

….admittedly though, there are some god-awful and very outdated libraries still in use everywhere πŸ˜‰

Golden Ratio Font Sizes

Here’s a nice tool:


Stop tweaking your font sizes for headings etc. manually, hoping to get something that looks balanced. Use a bit of maths instead!

This is a pretty good write-up of the concept:


The golden ratio has been used for centuries to give things balance, but gets forgotten about all too often by a lot of designers.

Now our designs have to respond to many different formats over many different devices, just moving things around on the screen until they “look right” isn’t enough. One needs to think ever more about the rules that make them look good….

AfterEffects Strobe Expression

There’s some awful information out there on how to do strobe effects in AfterEffects. Let’s save some time. Put this as an expression on your opacity property:

if( timeToFrames( time ) & 1 ) { 100 } else { 0 };

Using a simple & operator on the current frame count makes the output alternate between 100 and 0 each frame. Want a strobe every other frame? time/2

Simple. Or in fact even better, let’s just do it with a ternary operator:

timeToFrames( time ) & 1 ? 100 : 0


Sublime Text Tip: Convert Spaces to Tabs

So I’ve been conforming my code to the WordPress Coding Standards for a project recently.

One of the standards stipulates using tabs over spaces (which I kinda agree with, although there’s a lot of debate on this subject).
To do that across the whole codebase is trickier than it seems. Easiest way I found to do it with Sublime 3 was:

  1. Install Sublime Sidebar Enhancements
  2. Use it to open all the relevant files at once in a new window
  3. In Sublime’s console, run:
    [v.run_command('unexpand_tabs') for v in window.views()]

Now that’s something I’ll forget if I don’t write it down πŸ˜‰

Thanks to people here and here.

Two Networks, One Laptop

Want to have your MacBook sit on two different LANs, only one of which is connected to the internet? Still want to be able to browse said internet without all the routing getting totally screwed?

I did. Long story.

Presuming the two LANs have different subnets, just:
– Open your network preferences
– Set IPv4 config to manual on the “non-internet” one
– Delete whatever entry is in the “Router” field.

This makes sure the OS will never ask the router on that network about anything internet related. In this case I had a NAS sitting on it that I needed access to. Problem solved!

CNAME @ Record DNS Fun

So I learnt something today… @ records in DNS, or “root domain” records, can’t be CNAMEs if you want anything in the zone file to point elsewhere… Thanks Josh Strange!

Still quite a bit I don’t know about DNS, but this and this were also interesting.

I always get my ampersands and my * stars mixed up too. Perhaps if I write it down here I’ll remember….

  • @ is your root record. i.e. http://yourdomanin.com/
  • * is your wildcard record. i.e. http://anythingelse.yourdomain.com/
  • Either can be A records. i.e. an IP: 123.456.789.101
  • Either can alternatively be CNAME records. i.e. anothercomain.com
  • If @ is a CNAME record, you’re screwed should you want to run mail (MX record) on a different server.

I personally have a load of domains (this one for instance) pointed at one server running Postfix and a WP multi-site network, so CNAMEs are generally fine for me. I just launched a quick site for a playwright friend of mine (Conor McKee) who needed to keep his mail running elsewhere. Hence this mumbling…

God this post is boring. Am I still typing? Jesus. πŸ˜‰