Writings on various topics (mostly technical) from Oliver Hookins and Angela Collins. We currently reside in Sydney after almost a decade in Berlin, have three kids, and have far too little time to really justify having a blog.
This is not a ground-breaking new concept, but since I failed to find decent material on it when searching, and it's not entirely clear from the Blender documentation, I thought I'd write someabout about it with screenshots. Normally, when we are baking textures in Blender (e.g. for simplifying the render of a complex scene, or exporting objects and their textures to a game engine), we use the…
Yet another long-overdue post. The last couple of weeks (or perhaps sprints) my team has dived into Typescript for a new project. I like it, really like it. Maybe that's just because for years I've feared Javascript, haven't understood enough about how to unit testing, and found myself writing terrible code and just running it to find the bugs. This is not a very good development methodology.
I'm not sure I've mentioned it on this blog before, but almost three years ago I started a number of online courses around 3D modelling and game development. Way back in 2013 I had done a course on Coursera which introduced me to event loop-based game programming, although the programming difficult of the course was very low. Later on suggestion from a co-worker I looked into Löve2D and took the…
Before you get any ideas about the topic of this post, it's not a rant about OpenResty at all - it's actually a great piece of software and in my opinion a fantastic integration between a capable webserver (Nginx) and a light-weight programming language (Lua). The combination makes it ideal for high-performance delivery of traffic with some light business logic thrown in as well. We use it at my…
Disclaimer: Most of this post was written in 2014, but it's been languishing in my drafts folder for a long time and I thought I'd push the publish button rather than waiting to perfect it. The original context was that I was attempting to perform integration testing on a client application that needed to handle a variety of different network behaviours - including TCP resets. I mulled over how…
Quite some time ago at an AWS Meetup in 2014 I gave a talk (sadly, I can't find the slides) about how we used S3 and built tooling to interact with it based on our understanding of how the internals of the platform worked, and best practices as advised by AWS themselves. One large aspect of the tooling we built was a custom base 62 encoding using the math/big package from the Go standard library.
The general idea is that we had a filenames generated randomly based on a character set of [a-zA-Z0-9] and 12 characters in length. Since S3 is not an indexed data store, you can only enumerate objects serially (unless you know what you are looking for). By treating the keyspace as a a range of numbers, you can divide up the set of numbers by a number of parallel workers, then convert each range of numbers back into filenames within the character set above. The process by which we did this used the big number package as mentioned above, and some…
If you have previously read anything on this blog (directly, rather than via RSS) you will have noticed that the visuals have been updated. This is the culmination of a very long and arduous process - entirely my responsibility and self-inflicted - and as a result, it is running via Netlify, built with Gatsby and stored in Contentful. For styling I relied heavily on Tachyons and for the sake of…
Last week I found myself reading through all (ok not entirely all, I skipped the NASA one) of the slide decks on culturecodes.co - there are a variety of slide decks from tech companies, which attempt to describe what the company culture looks like, their values, or company processes that serve as an employee handbook. They are called Culture Codes and not Company Culture because culture can only…
At $current_employer (unlike $previous_employer where all these
problems were sorted out), we have great huge TVs in every room but not
consistently useful usage of them. I love seeing big, beautiful
dashboards and KPIs visualised everywhere but right now, we just don't
have that in place. No matter, this is part of my mission to improve
engineering practices here and I'm happy to tackle it.
The…
I won't descend into hyperbole and say you should run, shrieking and naked into the dark night, when you hear these words. But, it's worth pondering what exactly it means. I think I've (over)used this phrase myself plenty over the years and right now find myself examining why so many people find themselves needing to invent their own version of well accepted software workflow methodologies.
You…