Thursday, June 16, 2011

You utter git

What a week for learning new things. I already knew the basics of port forwarding and punching holes in firewalls, and a year or two of occasional linux usage has put me in a great position to set up the infrastructure for our fledgling company.

This week, I have set up a linux server (Ubuntu 11, very nice), Git and Gitolite from scratch (learning a hell of a lot about SSH on the way), got Git working across our network, punched some holes in the firewall, figured out how to make SSH only use RSA keys, and finally got remote access via a dynamic IP mapper through into our office box. As far as I can tell, it's as locked down as possible (arbitrary SSH port, no password access, no VNC access, arbitrary confluence port, no guest logins) but we now have a Wiki and a git repo that we can use from home.

Git is actually very nice to work with, once you accept some of the choices they have made. I know for a fact, though, that not being able to lock binary files exclusively will cause us headaches at some point in the future. We need to structure our Unity projects to mitigate consecutive edits of binary files (like prefabs and scenes). This may be enough of a problem to move us back off Git and over to something like Perforce or Plastic, but I sincerely hope not.

There really is something quite - primal, I guess is the word - about ssh'ing into a box, messing with authorized_keys and coming away with a clone of the git repo on my windows box. It all feels a bit magic.

I think it's going to stand us in excellent stead when we begin setting up ejabberd on an EC2 instance next week. Roll on the crazyness for a few more weeks!

Tuesday, June 7, 2011

Elite spending

Today's "in the hole setting up the company" total is £1337. That has to be good karma right there ;)

Saturday, June 4, 2011

Home Alone

I don't think this is the first time I've watched Gabe alone, but it's certainly been a while. What a wonderful afternoon - beer, burgers, our boys and weather to die for. More of these please!

Thursday, June 2, 2011

That's it, the whole worm is in my belly now

"64-bit editions of Windows Vista or Windows 7 require the iTunes 64-bit installer"

in the smallest font you can imagine, in the fine print at the bottom of the left hand side of the page. Thanks, apple, that's another 5 minutes I'm not getting back.

Half a worm

Oh god, I'd forgotten just how crap iTunes is.

Apple products are not made to be used by people who have anything other than a mac as their desktop machine. I'm sick and tired of trying to work around ridiculous issues and limitations with apple hardware and the iTunes ecosystem as a whole - even on a Mac it's not that bloody good, but on a Win7 machine it's just a complete disaster. I think spending a couple of months with my Nexus S has spoiled me. A mobile device you can drag files on to? oh emm gee. A setup process that says "log in using your gmail account - and done!" ? no, that would be too bloody easy.

I've had my new gen4 touch, sitting at the screen that politely shows me "connect to iTunes now, sucker" for three feckin hours and I'm still no further forward. I'm assuming that only a clean reinstall of iTunes will fix whatever issue with whatever background service is stopping the device being recognised and zzzZZzz. seriously, zzzZZZzzz. bored of this. waiting for the 4.3GB download of xcode was positively fun compared to this.

All change

So - I've left Black Rock. I have to say I thoroughly enjoyed my time there, what an excellent bunch of people. The last few months were a bit stressful (and tedious in equal measure). I'm going to miss the benefits of working for Disney, but perhaps I'll miss the politics of working for a large business slightly less so.

I'm sad that Gabe won't get more opportunities to visit Disney parks on the silver pass. I'm sure he'll scream blue murder later in life when he realises I've just deprived him of every child's dream. Ho hum.

What next, you might ask? all two of you who read this. And the answer is - my own company! I'm starting up with an old friend, and we're going to be doing cool stuff on mobile devices. Plans are afoot, schedules are being drawn up, stuff is being paid for. It's too early yet to announce our name (unlike some other Black Rock babies) or our project, but I'm super hopeful that we can talk about all this next week.

I'm basically feeling EXCELLENT about this. super woop. It's the scariest thing I've done in forever, and if we fail, there go my life savings and we're back into sell-the-house-to-eat territory - but you know what? we're not gonna fail. We have a small crew of feckin brilliant folks together to get this off the ground, and it's going to kick ass.

Monday, May 2, 2011

my point is floating

This will be, hopefully, the first of a few more technical blog posts. It's grand detailing the minutia of my life but occasionally I need to think through a problem or two, and the results can be interesting.

I'm currently writing an Android app in my spare time. I'll skip the details of what the app does for now, but I'm working with location information (GPS coordinates) and I'm passing around results from the phone to a database.

While converting from numbers to strings (part of the HTTP POST code) it dawned on me that, as previous experience has shown, trying to keep precision in numerical values while they are represented as strings often has issues. I'm writing out a double to a string in Java - that's all good. I can pull that back into the GAE python code as a double - in python, floats are double precision by default. Next question - what precision does the GeoPt GAE datatype honour? the docs simply say "floating point" - is that single precision or double precision? Assuming it's talking about the python type rather than the java type, hopefully it means double precision.

This might sound nit-picky, but given the range of values for longitude (-180.0 through 0 to +180.0) the precision of the number can make the difference between microns and metres in world space.

For single point values, If you're working around the zero line (at the Greenwich royal observatory) then the most precise value is around 2^-127 - a very small number indeed. in decimal, this is equivalent to 10^-38, so given the required precision in decimal degrees , this is so small there's no named SI prefix for it.

If you're on the other side of the world, however, then you're plus or minus 180 degrees, give or take some precision. this gives us a fixed exponent (2^7) and values for the lowest significant bit of the mantissa in the range of 0.000015, give or take - so if you add a single insignificant bit, you're moving your geo point by around 1.5 metres. That's not insignificant.

Doubles add another whole stack of zeros here -it's safe to say you've got at least 10 zeros before your changed value shows up, which is sub-millimetre accuracy - safely inside the tolerance of any real world geo fix, and probably good enough for any spacial positioning work that's trying to correctly locate physical space. So that's good to know!