<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[paperairoplane.net RSS feed]]></title><description><![CDATA[Writings on various topics (mostly technical) from Oliver Hookins and Angela Collins]]></description><link>https://ohookins.github.io</link><generator>GatsbyJS</generator><lastBuildDate>Fri, 07 Aug 2026 07:23:34 GMT</lastBuildDate><item><title><![CDATA[Don't use AWS SES]]></title><description><![CDATA[I'm continuing my winning streak of publishing a blog post once every 5 months, and what better reason than to rant about something? I feel slightly conflicted about this one but at the same time I'm annoyed enough to write this... anyway, enjoy. Email is an annoying domain of the internet. It features heavily on my list of things I don't want to be responsible for anymore, in addition to DNS, BGP…]]></description><link>https://ohookins.github.io/posts/dont-use-aws-ses</link><guid isPermaLink="false">https://ohookins.github.io/posts/dont-use-aws-ses</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 14 Aug 2022 23:00:00 GMT</pubDate></item><item><title><![CDATA[AWS Security Groups don't work with public IPs]]></title><description><![CDATA[Well, I almost made it two years between posts. Life, changing jobs, mental health, and the general state of the world will do that. I actually have a few blog posts I've got saved up for writing and it's a bit of a race between me penning them here or $work getting a technical blog site running (since invariably these kinds of posts always start from a $work problem). Anyhoo, let's start with the…]]></description><link>https://ohookins.github.io/posts/aws-security-groups-dont-work-with-public-ips</link><guid isPermaLink="false">https://ohookins.github.io/posts/aws-security-groups-dont-work-with-public-ips</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sat, 19 Mar 2022 10:00:00 GMT</pubDate></item><item><title><![CDATA[Agile Book Recommendations]]></title><description><![CDATA[Every so often when I'm talking about the relative merits of Scrum or Kanban, or Agile software development in general, I find myself brought back to the few books I've read on the subject which really resonated with me and gave me plenty of interesting ideas for what to try, when faced with workflow difficulties. In the last five years, I've worked on or with at least ten different teams - either…]]></description><link>https://ohookins.github.io/posts/agile-book-recommendations</link><guid isPermaLink="false">https://ohookins.github.io/posts/agile-book-recommendations</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sat, 08 Aug 2020 08:00:00 GMT</pubDate></item><item><title><![CDATA[Micro book review: The Unicorn Project]]></title><description><![CDATA[unicorn project
The Unicorn Project by Gene Kim is the latest book to cross my desk, after a last-minute mad rush end-of-financial-year order of a few different books from my education budget. Expect a few more upcoming reviews soon, hopefully! I've already read The Phoenix Project a few years ago, although I realise now I've forgotten many of the details. The Unicorn Project is something of a…]]></description><link>https://ohookins.github.io/posts/micro-book-review-the-unicorn-project</link><guid isPermaLink="false">https://ohookins.github.io/posts/micro-book-review-the-unicorn-project</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sat, 08 Aug 2020 07:00:00 GMT</pubDate></item><item><title><![CDATA[Micro book review: The Advantage]]></title><description><![CDATA[The Advantage
The Advantage by Patrick Lencioni is the latest book I've gotten through, and also a bit of a compilation of all of Patrick's previous works. Very early on when I first started managing teams, I read his other book, Five Dysfunctions of a Team which I still recommend and really enjoyed reading (a few times over). Really these books are aimed at leadership groups (think executives at…]]></description><link>https://ohookins.github.io/posts/micro-book-review-the-advantage</link><guid isPermaLink="false">https://ohookins.github.io/posts/micro-book-review-the-advantage</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 17 May 2020 11:00:00 GMT</pubDate></item><item><title><![CDATA[Micro book review: It Doesn't Have To Be Crazy At Work]]></title><description><![CDATA[crazy at work
It Doesn't Have To Be Crazy At Work by Jason Fried and David Heinemeier Hansson is the latest ebook to cross my desk. I read their previous books ReWork and Remote recently after we moved to the working from home situation and got hooked on their writing style. In many ways, this one (I'm not going to repeat the full title again) feels like a rehashing of ReWork - although it was…]]></description><link>https://ohookins.github.io/posts/micro-book-review-it-doesnt-have-to-be-crazy-at-work</link><guid isPermaLink="false">https://ohookins.github.io/posts/micro-book-review-it-doesnt-have-to-be-crazy-at-work</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 03 May 2020 04:30:00 GMT</pubDate></item><item><title><![CDATA[Revisiting C++ for Image Deduplication]]></title><description><![CDATA[Hi everyone, and welcome back to my exceedingly sparse tales of technology adventures! Strap in for an excessively long introduction to this one, it's boring and tedious as hell. I'll skim over the introduction to the introduction, but like many of you, I've had a gradually growing collection of digital images. Starting in roughly 2001 when my family had a Kodak DC120 1MP Digital Camera (yes, one…]]></description><link>https://ohookins.github.io/posts/revisiting-c-plus-plus-for-image-deduplication</link><guid isPermaLink="false">https://ohookins.github.io/posts/revisiting-c-plus-plus-for-image-deduplication</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sat, 11 Apr 2020 10:38:00 GMT</pubDate></item><item><title><![CDATA[Micro book review: ReWork - Change the Way You Work Forever]]></title><description><![CDATA[rework
Rework: Change The Way You Work Forever by Jason Fried and David Heinemeier Hansson. First off, I have to acknowledge the fact that these last few reviews have definitely not been "micro"-sized. They've made their way solidly up to "mini" and possibly even ... whatever comes after that. Regular? I think the intent was more to express how much effort I wanted to put in rather than the…]]></description><link>https://ohookins.github.io/posts/micro-book-review-rework</link><guid isPermaLink="false">https://ohookins.github.io/posts/micro-book-review-rework</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Fri, 10 Apr 2020 10:30:00 GMT</pubDate></item><item><title><![CDATA[Micro book review: Remote - Office not required]]></title><description><![CDATA[Remote by Jason Fried and David Heinemeier Hansson It's probably no surprise to anybody that I just read this book, and I expect many other people have recently, or will soon, read it as well given the current global pandemic looming over us. Many people will have recently bought the book as the authors made it free (I think the tweet has now been deleted as I couldn't find it) but in any case, it…]]></description><link>https://ohookins.github.io/posts/micro-book-review-remote</link><guid isPermaLink="false">https://ohookins.github.io/posts/micro-book-review-remote</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 05 Apr 2020 09:00:00 GMT</pubDate></item><item><title><![CDATA[Micro book review: Reinventing Organizations]]></title><description><![CDATA[reinventing organizations
Reinventing Organizations by Frederic Laloux. Wow, what a book. I've had this sitting on the bookshelf for a couple of years and finally got around to reading it in the last couple of months. When it comes to books around the theme of management, the most interesting books are the ones that completely challenge and change my existing ways of thinking, or the ones that…]]></description><link>https://ohookins.github.io/posts/micro-book-review-reinventing-organizations</link><guid isPermaLink="false">https://ohookins.github.io/posts/micro-book-review-reinventing-organizations</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Thu, 02 Apr 2020 07:00:00 GMT</pubDate></item><item><title><![CDATA[Micro book review: Who Moved My Cheese?]]></title><description><![CDATA[who moved my cheese
Who Moved My Cheese? by Dr Spencer Johnson is another book mentioned to me last year (I think by my manager). It sounds like a book I already knew about, but maybe that is because of the conventional and obvious sounding title. And the content is obvious, in many ways - it's an allegory for change management. As the tale goes, four mice with strange names are feasting on cheese…]]></description><link>https://ohookins.github.io/posts/micro-book-review-who-moved-my-cheese</link><guid isPermaLink="false">https://ohookins.github.io/posts/micro-book-review-who-moved-my-cheese</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 15 Mar 2020 09:00:00 GMT</pubDate></item><item><title><![CDATA[Micro book review: One Minute Mentoring]]></title><description><![CDATA[One Minute Mentoring
One Minute Mentoring by Ken Blanchard and Claire Diaz-Ortiz is one of the well-respected One Minute Manager series by Ken Blanchard. Ken Blanchard himself has started a series of companies that specialise in management training and techniques - such as Situational Leadership II. I still have it on my list to read the original One Minute Manager, and assumed it was just a…]]></description><link>https://ohookins.github.io/posts/micro-book-review-one-minute-mentoring</link><guid isPermaLink="false">https://ohookins.github.io/posts/micro-book-review-one-minute-mentoring</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 15 Mar 2020 04:00:00 GMT</pubDate></item><item><title><![CDATA[Micro book review: Turn The Ship Around]]></title><description><![CDATA[Turn The Ship Around!
Turn The Ship Around by L. David Marquet is something that had been on my radar (no pun intended) for some time, but was also recommended to me early last year by my then manager. The context was - how to delegate more in the journey in leadership to higher levels of management. I think at the time I was trying to come to grips with the team I had at the time, which was doing…]]></description><link>https://ohookins.github.io/posts/micro-book-review-turn-the-ship-around</link><guid isPermaLink="false">https://ohookins.github.io/posts/micro-book-review-turn-the-ship-around</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 15 Mar 2020 01:00:00 GMT</pubDate></item><item><title><![CDATA[Micro book review: Zero to One]]></title><description><![CDATA[Another book completed from the never-ending list: Zero to One by Peter Thiel. Not sure how this ended up on the list but I guess it's a seminal text when considering tech startups, which have featured pretty solidly in my career. Zero to One cover I probably saw it on the shelf at one of the companies I worked, and thought it deserved a read. In any case, I expected something more about founding…]]></description><link>https://ohookins.github.io/posts/micro-book-review-zero-to-one</link><guid isPermaLink="false">https://ohookins.github.io/posts/micro-book-review-zero-to-one</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Wed, 05 Feb 2020 10:00:00 GMT</pubDate></item><item><title><![CDATA[Micro book review: Radical Candor]]></title><description><![CDATA[My blog count for last year was woefully low, and I was struggling to think of what was worthwhile to write about. As I mentioned last time, I've been slowly getting through my management/leadership reading list and while I don't think I have the time or energy to write full book reviews (at least, full enough to do the titles justice) I would like to write something. So here it is: the first of…]]></description><link>https://ohookins.github.io/posts/micro-book-review-radical-candor</link><guid isPermaLink="false">https://ohookins.github.io/posts/micro-book-review-radical-candor</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Tue, 14 Jan 2020 10:00:00 GMT</pubDate></item><item><title><![CDATA[Another great read - Tribes by Seth Godin (and other books)]]></title><description><![CDATA[Oh dear, it's been another long time since my last post. To be fair, this year has been very hectic. Earlier in the year I was focussing a lot more on spending my commutes meditating (somewhat successfully), but recently I've found that reading on the train and in whatever free time I can scrape together has almost the same effect - so I don't mind meditating less. When I was in primary school I…]]></description><link>https://ohookins.github.io/posts/another-great-read-tribes-seth-godin</link><guid isPermaLink="false">https://ohookins.github.io/posts/another-great-read-tribes-seth-godin</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Thu, 05 Dec 2019 10:00:00 GMT</pubDate></item><item><title><![CDATA[Recent Reads]]></title><description><![CDATA[Well, I've certainly had a lot less free time to write blog posts recently. I don't even have my actual desktop computer back in operation yet (the screen was cracked in transit). We have finally moved into an apartment in Sydney and life is returning to some definition of normal. With three kids and a new job there is a lot to balance, and not a lot of time for many things. That being said, I've…]]></description><link>https://ohookins.github.io/posts/recent-reads</link><guid isPermaLink="false">https://ohookins.github.io/posts/recent-reads</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Mon, 10 Jun 2019 06:00:00 GMT</pubDate></item><item><title><![CDATA[New Year, New You!]]></title><description><![CDATA[It's 2019! Or so they say - I'm not very inclined to believe it, as most days seem like a dream. You know that kind of dream, where you are in the house where you live (or perhaps where you grew up), but you somehow know within you that it's not your house? This is the life I'm living at the moment. We've been living in Berlin, Germany, since 2009 and have now - after just over nine  years - moved…]]></description><link>https://ohookins.github.io/posts/new-year-new-you</link><guid isPermaLink="false">https://ohookins.github.io/posts/new-year-new-you</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 20 Jan 2019 10:00:00 GMT</pubDate></item><item><title><![CDATA[Checkpoints and Gatekeeping versus Principles and Values]]></title><description><![CDATA[Picture the scene: you have a new project to start working on and deliver in a relatively short amount of time. You have done lots of research, know the problem to be solved, have worked diligently on whittling down the scope to just the bare elements that will prove or disprove the utility of the idea. You know how long it will take to build a first iteration, have a pretty good idea of how to…]]></description><link>https://ohookins.github.io/posts/checkpoints-and-gatekeeping-versus-principles-and-values</link><guid isPermaLink="false">https://ohookins.github.io/posts/checkpoints-and-gatekeeping-versus-principles-and-values</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 09 Dec 2018 20:00:00 GMT</pubDate></item><item><title><![CDATA[Blender - Baking Textures Within One Object]]></title><description><![CDATA[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…]]></description><link>https://ohookins.github.io/posts/blender-baking-textures-within-one-object</link><guid isPermaLink="false">https://ohookins.github.io/posts/blender-baking-textures-within-one-object</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 28 Oct 2018 19:00:00 GMT</pubDate></item><item><title><![CDATA[Client applications and TCP reset handling]]></title><description><![CDATA[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…]]></description><link>https://ohookins.github.io/posts/client-applications-and-tcp-reset-handling</link><guid isPermaLink="false">https://ohookins.github.io/posts/client-applications-and-tcp-reset-handling</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 10 Jun 2018 13:00:00 GMT</pubDate></item><item><title><![CDATA[Reflecting on TypeScript, Lambdas, and of course testing]]></title><description><![CDATA[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…]]></description><link>https://ohookins.github.io/posts/reflecting-on-typescript-lambdas-and-of-course-testing</link><guid isPermaLink="false">https://ohookins.github.io/posts/reflecting-on-typescript-lambdas-and-of-course-testing</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Thu, 27 Sep 2018 19:00:00 GMT</pubDate></item><item><title><![CDATA[Latest progress in Blender]]></title><description><![CDATA[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…]]></description><link>https://ohookins.github.io/posts/latest-progress-in-blender</link><guid isPermaLink="false">https://ohookins.github.io/posts/latest-progress-in-blender</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sat, 30 Jun 2018 18:30:00 GMT</pubDate></item><item><title><![CDATA[Challenges when working with OpenResty]]></title><description><![CDATA[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…]]></description><link>https://ohookins.github.io/posts/challenges-when-working-with-openresty</link><guid isPermaLink="false">https://ohookins.github.io/posts/challenges-when-working-with-openresty</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sat, 23 Jun 2018 15:00:00 GMT</pubDate></item><item><title><![CDATA[Character encodings and S3 distributed workloads]]></title><description><![CDATA[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…]]></description><link>https://ohookins.github.io/posts/character-encodings-and-s3-distributed-workloads</link><guid isPermaLink="false">https://ohookins.github.io/posts/character-encodings-and-s3-distributed-workloads</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sat, 09 Jun 2018 18:00:00 GMT</pubDate></item><item><title><![CDATA[Migrating the blog to Gatsby/Contentful/Netlify]]></title><description><![CDATA[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…]]></description><link>https://ohookins.github.io/posts/migrating-the-blog-to-gatsby-contentful-netlify</link><guid isPermaLink="false">https://ohookins.github.io/posts/migrating-the-blog-to-gatsby-contentful-netlify</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 03 Jun 2018 15:00:00 GMT</pubDate></item><item><title><![CDATA[MySQL talk @ LCA08]]></title><description><![CDATA[Here are some of the files from my MySQL talk at Linux Conf AU 2008,
where I presented material on replicating, high-availability,
load-balanced MySQL. Slides - OpenOffice Presentation
format Slides - PDF
format Video - OGG
format Enjoy!]]></description><link>https://ohookins.github.io/posts/mysql-talk-lca08</link><guid isPermaLink="false">https://ohookins.github.io/posts/mysql-talk-lca08</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 12 Sep 2010 12:28:24 GMT</pubDate></item><item><title><![CDATA[Dangers of spanning tree interoperation]]></title><description><![CDATA[A couple of months ago we ran into a minor issue at work when running
Cisco and HP switches together. Naturally we have redundant links in
place for all networking equipment so spanning tree of some sort must be
used. In theory, any equipment can work together with spanning tree but
the reality is not exactly this utopian: Cisco supports natively their proprietary protocols PVST, PVST+,
PVRST and…]]></description><link>https://ohookins.github.io/posts/dangers-of-spanning-tree-interoperation</link><guid isPermaLink="false">https://ohookins.github.io/posts/dangers-of-spanning-tree-interoperation</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 12 Sep 2010 20:57:17 GMT</pubDate></item><item><title><![CDATA[Of sparse files and men]]></title><description><![CDATA[One of my favourite interview questions is about sparse files. I'm
constantly surprised at how few people know about them, especially in
this day when thin-provisioning of storage is so pervasive you can run
into it just about anywhere. Most commonly though, candidates will
respond back with something to the effect of "a file with holes in it"
which is more or less correct. I think out of everyone…]]></description><link>https://ohookins.github.io/posts/of-sparse-files-and-men</link><guid isPermaLink="false">https://ohookins.github.io/posts/of-sparse-files-and-men</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Fri, 24 Sep 2010 17:36:07 GMT</pubDate></item><item><title><![CDATA[Winter's on its way]]></title><description><![CDATA[This week has definitely been colder so far than last week, noticeably
so. We're getting down to ranges of something like 8 - 16 degrees
Celsius, with gusty winds and rain. Of course, I love this kind of
weather but it does necessitate certain precautions. Unfortunately I
caught a cold last week from some scoundrel at the office and had to
take three days off work, but fortunately I was more or…]]></description><link>https://ohookins.github.io/posts/winters-on-its-way</link><guid isPermaLink="false">https://ohookins.github.io/posts/winters-on-its-way</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Tue, 28 Sep 2010 18:30:00 GMT</pubDate></item><item><title><![CDATA[oh the places you will go...]]></title><description><![CDATA[Recently Oliver and I met up with some friends who had exciting news to
share. After years of corporate success in their various fields, (one
friend is a solicitor, and the other is a software developer) they have
decided to pack up their lives in Amsterdam where they are living -
 quit their respective jobs, and go travelling around Europe, living in
their camper-van for the next 18 months! To me…]]></description><link>https://ohookins.github.io/posts/oh-the-places-you-will-go</link><guid isPermaLink="false">https://ohookins.github.io/posts/oh-the-places-you-will-go</guid><dc:creator><![CDATA[Angela Collins]]></dc:creator><pubDate>Tue, 28 Sep 2010 18:33:06 GMT</pubDate></item><item><title><![CDATA[ZBOXXXXXXX]]></title><description><![CDATA[If you've been following my excessively techy posts you will be aware
that my personal notebook computer has been on the verge of utter
failure for some time now. It has come to the point where I can no
longer tolerate holding a finger in the "magic" spot to keep the
screen alive long enough to update my Facebook status or other
meaningless activities, and standing up in front of the TV with the…]]></description><link>https://ohookins.github.io/posts/zboxxxxxxx</link><guid isPermaLink="false">https://ohookins.github.io/posts/zboxxxxxxx</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sat, 09 Oct 2010 15:36:26 GMT</pubDate></item><item><title><![CDATA[Devopsdays 2010]]></title><description><![CDATA[I'm in Hamburg! If you've read through my previous
articles I've written for Anchor you
would know that I love going to tech conferences. I'm currently at
Devopsdays which is being hosted in the very
stylish East Hotel, just down the road from Hamburg's red-light
district. I haven't actually been outside during the day yet since we
caught the EC train up from Berlin last night, but I'm enjoying…]]></description><link>https://ohookins.github.io/posts/devopsdays-2010</link><guid isPermaLink="false">https://ohookins.github.io/posts/devopsdays-2010</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Fri, 15 Oct 2010 20:30:25 GMT</pubDate></item><item><title><![CDATA[MySQL replication and the idempotence myth]]></title><description><![CDATA[I had a fairly frustrating time today trying to explain to someone that
indeed the order of actions matters very much when trying to recover
failed replication on a MySQL server. We had a good dump from the master
taken with --single-transaction --master-data=2 (yes, all InnoDB
tables here), and had imported it successfully. However, at the critical
moment of reading the binary log name and…]]></description><link>https://ohookins.github.io/posts/mysql-replication-and-the-idempotence-myth</link><guid isPermaLink="false">https://ohookins.github.io/posts/mysql-replication-and-the-idempotence-myth</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Tue, 11 Jan 2011 21:27:47 GMT</pubDate></item><item><title><![CDATA[Dependencies stored in grey matter]]></title><description><![CDATA[I have a Zotac ZBox which I use an
my HTPC, and generally it works pretty well. One thing that is slightly
troublesome is the HDMI audio, which seems to rely on having the ALSA
backports modules package installed in order for it to work. Remembering
this is key, though, since when the package is installed it does not
automatically get updated when you upgrade the kernel package. Most packaging…]]></description><link>https://ohookins.github.io/posts/dependencies-stored-in-grey-matter</link><guid isPermaLink="false">https://ohookins.github.io/posts/dependencies-stored-in-grey-matter</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Wed, 02 Feb 2011 20:39:31 GMT</pubDate></item><item><title><![CDATA[Talking at Puppet Camp 2011 Amsterdam]]></title><description><![CDATA[My talk has been approved for the Puppet Camp 2011 in
Amsterdam - Yippee! Aside from the nervousness of exposing myself as a complete
sham in front of my peers, it will be a good opportunity to expose some
of the challenges I've been working on for the last year and a bit, and
hopefully generate some feedback which helps us solve more problems. So, just over a month to prepare ;) This will be the…]]></description><link>https://ohookins.github.io/posts/talking-at-puppet-camp-2011-amsterdam</link><guid isPermaLink="false">https://ohookins.github.io/posts/talking-at-puppet-camp-2011-amsterdam</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Wed, 09 Mar 2011 08:30:48 GMT</pubDate></item><item><title><![CDATA["32 flavours" of the super mama...]]></title><description><![CDATA[Today Ani* brought me back. *Ani difranco  (musician/ poet/ songwriter/ producer/ women's
activist/ mother) Lately I have been wanting to write another blog post. I used to do a
lot of personal journal and poetry writing, but it was for my eyes only
and  not public - and so blogging is still a strange concept that I am
 coming to terms with ( which is why 99% of the posts in this blog are
from Oli…]]></description><link>https://ohookins.github.io/posts/32-flavours-of-the-super-mama</link><guid isPermaLink="false">https://ohookins.github.io/posts/32-flavours-of-the-super-mama</guid><dc:creator><![CDATA[Angela Collins]]></dc:creator><pubDate>Wed, 09 Mar 2011 21:07:39 GMT</pubDate></item><item><title><![CDATA[How we use Vagrant as a throwaway testing environment]]></title><description><![CDATA[As I mentioned in my presentation at
PuppetCamp, one of the goals of our
Puppet code testing was to run Puppet
Faces-style compile tests on all of
our modules. Since this requires a somewhat realistic deployment
environment, a clean system, and our modules to be installed as packages
(since that's how we are distributing our own modules) it makes sense
to run this stage in a throwaway virtual…]]></description><link>https://ohookins.github.io/posts/how-we-use-vagrant-as-a-throwaway-testing-environment</link><guid isPermaLink="false">https://ohookins.github.io/posts/how-we-use-vagrant-as-a-throwaway-testing-environment</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Tue, 31 May 2011 21:47:56 GMT</pubDate></item><item><title><![CDATA[Hacking on Maemo5 eCoach]]></title><description><![CDATA[Since I took possession of my Nokia N900
(a marvellous piece of smartphone technology, despite being mercilessly
killed off by my employer) I've been using
eCoach to track my sports activities
outdoors. Mainly running and more recently cycling, it's a pretty
decent analogue of SportsTracker which
is, vaguely speaking, the S60 version and forerunner in many ways (not
that eCoach is a port - it's…]]></description><link>https://ohookins.github.io/posts/hacking-on-maemo5-ecoach</link><guid isPermaLink="false">https://ohookins.github.io/posts/hacking-on-maemo5-ecoach</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Fri, 17 Jun 2011 18:05:59 GMT</pubDate></item><item><title><![CDATA[Reliably finding processes with ps by name]]></title><description><![CDATA[I imagine that there are two groups of people who might read this post: When you need to find a process by name, you run ps -ef or similar
and pipe into grep processname. When you need to find a process by name, you run ps -C processname If you fall into the first category, you fail my interview tests.
Perhaps you smugly fall into the second category, but surely you have
seen this occur: I don't…]]></description><link>https://ohookins.github.io/posts/reliably-finding-processes-with-ps-by-name</link><guid isPermaLink="false">https://ohookins.github.io/posts/reliably-finding-processes-with-ps-by-name</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 17 Jul 2011 20:30:11 GMT</pubDate></item><item><title><![CDATA[Self-rating on the Spolsky/Limoncelli tests]]></title><description><![CDATA[Tom Limoncelli just released his own
version of The Joel
Test -
except his one is for sysadmins. I was only vaguely aware of Joel
Spolsky's test and only just read through it and rated my current team,
and I'm glad to say we are just about at twelve for twelve. It hasn't
really been on my radar until now as this is the first time I can
actually say I've been on a development team. Given all the…]]></description><link>https://ohookins.github.io/posts/self-rating-on-the-spolskylimoncelli-tests</link><guid isPermaLink="false">https://ohookins.github.io/posts/self-rating-on-the-spolskylimoncelli-tests</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Mon, 25 Jul 2011 18:41:43 GMT</pubDate></item><item><title><![CDATA[OpenCV on the N900]]></title><description><![CDATA[I've been playing around with
OpenCV over the last few weeks
while reading/coding along with the Learning
OpenCV book. Overall I'm
pretty impressed with how easy it is to do quite complex things, thanks
to the rich library of visual computing functions. The library is
natively in C, but there are also python bindings using SWIG. It is
actually an interesting exercise taking the examples in the…]]></description><link>https://ohookins.github.io/posts/opencv-on-the-n900</link><guid isPermaLink="false">https://ohookins.github.io/posts/opencv-on-the-n900</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Wed, 27 Jul 2011 09:24:08 GMT</pubDate></item><item><title><![CDATA[Bike upgrade]]></title><description><![CDATA[I've had a cheap, crappy bike for a while now and so far it has served
me fairly well. It is not in great condition and has its problems but
generally works despite my recent fitness kick which has seen me taking
my son out for morning rides before work in the trailer which hangs off
the rear axle. The additional weight of course puts a strain on the axle
and gears (not to mention ME) and the…]]></description><link>https://ohookins.github.io/posts/bike-upgrade</link><guid isPermaLink="false">https://ohookins.github.io/posts/bike-upgrade</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Fri, 02 Sep 2011 22:00:57 GMT</pubDate></item><item><title><![CDATA[Making a 'complete' service]]></title><description><![CDATA[One of the things that is pushed here a lot is the necessity to make all
new applications really production-ready before being deployed as a
service. There is of course the adage "If it's not monitored, it
doesn't exist" but beyond that there are a lot of other little fiddly
details just to make something run. I'm talking about things like init
scripts, logging etc. It's very easy to get wrapped…]]></description><link>https://ohookins.github.io/posts/making-a-complete-service</link><guid isPermaLink="false">https://ohookins.github.io/posts/making-a-complete-service</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Fri, 18 Nov 2011 16:19:39 GMT</pubDate></item><item><title><![CDATA[WAT]]></title><description><![CDATA[I've been spreading this excellent
talk
by Gary Bernhardt around my co-workers and friends who universally love
it. I'm also proud to say the "WAT" meme has (hopefully permanently)
entered my team's culture as we find it adequately sums up our feelings
towards various bits of software that we either have to work with or
maintain. Half my team is away on business trips or sick leave at the moment…]]></description><link>https://ohookins.github.io/posts/wat</link><guid isPermaLink="false">https://ohookins.github.io/posts/wat</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Wed, 01 Feb 2012 23:32:02 GMT</pubDate></item><item><title><![CDATA[Puppetmaster performance tuning with mod_mem_cache]]></title><description><![CDATA[It has been quite a while since I've had anything sufficiently detailed
or interesting to post on a technical theme so it was quite a welcome
divergence from the usual sprint work recently when we started having
some Puppet performance issues. First up, like most people working at
big corporations I can't give you any figures that might give away
numbers of servers or anything else sensitive but…]]></description><link>https://ohookins.github.io/posts/puppetmaster-performance-tuning-with-mod_mem_cache</link><guid isPermaLink="false">https://ohookins.github.io/posts/puppetmaster-performance-tuning-with-mod_mem_cache</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sat, 07 Apr 2012 08:30:28 GMT</pubDate></item><item><title><![CDATA[More on Puppet module unit-testing]]></title><description><![CDATA[I've previously made presentations and blog posts about Puppet and
module testing - my position is that you should treat Puppet code as
just that: code. Just like mainstream programming languages, it is
possible (and good practice) to test your Puppet manifests so that you
have higher confidence in them working when it comes time to actually
run them. There are some other factors which play a part…]]></description><link>https://ohookins.github.io/posts/more-on-puppet-module-unit-testing</link><guid isPermaLink="false">https://ohookins.github.io/posts/more-on-puppet-module-unit-testing</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Tue, 19 Jun 2012 18:11:14 GMT</pubDate></item><item><title><![CDATA[More on Bundler and RPMs]]></title><description><![CDATA[So I was going to post a comment on the original blog
post
which I linked to from here
but Facebook connect was broken and I don't feel like setting up yet
another account </1stworldproblems>... but there was a slight
development. I attempted to use the same methodology we had already followed with the
first app, to another app so that this one was also packaged using
Bundler and RPM. Needing to…]]></description><link>https://ohookins.github.io/posts/more-on-bundler-and-rpms</link><guid isPermaLink="false">https://ohookins.github.io/posts/more-on-bundler-and-rpms</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Fri, 22 Jun 2012 13:00:19 GMT</pubDate></item><item><title><![CDATA[Broken environment variables and broken dreams]]></title><description><![CDATA[OK, the content of this post is not nearly as melodramatic as the title - I'm attempting to do some log analysis with Hadoop and Pig (yes, I'm
several years in the past, just barely catching up to all of you folk
who have been using Hadoop for a long time). As the logs are coming from
a webserver and are not that far from standard "combined" format, it
is most logical to use the time-saving UDFs…]]></description><link>https://ohookins.github.io/posts/broken-environment-variables-and-broken-dreams</link><guid isPermaLink="false">https://ohookins.github.io/posts/broken-environment-variables-and-broken-dreams</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Wed, 12 Sep 2012 08:25:48 GMT</pubDate></item><item><title><![CDATA[Why didnt anyone tell me...]]></title><description><![CDATA[Some ideas I want to share that I wish had shared with me prior to
Motherhood... It will ALL BE OK  - TRUST YOUR INTUITION AND YOUR INSTINCTS!!! This
child is yours and yours alone so Fuck what people say, it is usually
their incorrect and often unfounded opinions that make you question your
own, when you know what is best for you and your  child. It will get much easier, and much much harder…]]></description><link>https://ohookins.github.io/posts/why-didnt-anyone-tell-me</link><guid isPermaLink="false">https://ohookins.github.io/posts/why-didnt-anyone-tell-me</guid><dc:creator><![CDATA[Angela Collins]]></dc:creator><pubDate>Tue, 18 Sep 2012 17:15:15 GMT</pubDate></item><item><title><![CDATA[Cool, interesting, useful, unique and innovative Shell Prompts]]></title><description><![CDATA[At $employer today, we had our bi-weekly tech talk session and one of
the lightning talks given was on
tmux. Tmux is an excellent piece
of software (although I gave up on it and started using iTerm2) but
that's not what I wanted to talk about. One of the other participants in the session noticed the presenter's
shell prompt had a little smiley/frowney face which changed both
expression and colour…]]></description><link>https://ohookins.github.io/posts/cool-interesting-useful-unique-and-innovative-shell-prompts</link><guid isPermaLink="false">https://ohookins.github.io/posts/cool-interesting-useful-unique-and-innovative-shell-prompts</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Wed, 19 Sep 2012 20:34:11 GMT</pubDate></item><item><title><![CDATA[Gratuitous Self-promotion]]></title><description><![CDATA[As you may or may not be aware, I work at SoundCloud. I also write music
from time to time, but outside of sharing on Facebook I don't tend to
make any of it public. So far I've missed the opportunity to promote
any of it, and I thought I'd test out our embedded player widgets so
enjoy the following tracks :)]]></description><link>https://ohookins.github.io/posts/gratuitous-self-promotion</link><guid isPermaLink="false">https://ohookins.github.io/posts/gratuitous-self-promotion</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Fri, 05 Oct 2012 07:59:04 GMT</pubDate></item><item><title><![CDATA[On Service SDKs and Language Support]]></title><description><![CDATA[As I've previously
mentioned,
I've been doing a lot of work recently with various aspects of AWS on a
daily basis (or close to it). My primary language these days is still
Ruby, but I've been labouring through the excellent Seven Languages in
Seven
Weeks
book in the hope I can broaden my horizons somewhat. I'm fairly
comfortable with Python, somewhat familiar with Javascript now after
playing with…]]></description><link>https://ohookins.github.io/posts/on-service-sdks-and-language-support</link><guid isPermaLink="false">https://ohookins.github.io/posts/on-service-sdks-and-language-support</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Wed, 21 Nov 2012 18:52:46 GMT</pubDate></item><item><title><![CDATA[Another Personal Evolution - From Ruby to Go]]></title><description><![CDATA[Almost two years ago now, I
wrote
a post about how I was fed up with resorting to shell scripting as my
knee-jerk reaction to computer problems. At the time, I had been
attacking any problem that required more than a couple of commands at
the prompt by writing a shell (usually BASH) script and hit major
limitations that I really should have been solving with a legitimate
programming language. I…]]></description><link>https://ohookins.github.io/posts/another-personal-evolution-from-ruby-to-go</link><guid isPermaLink="false">https://ohookins.github.io/posts/another-personal-evolution-from-ruby-to-go</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Fri, 04 Jan 2013 19:39:24 GMT</pubDate></item><item><title><![CDATA[Seven Languages - Io]]></title><description><![CDATA[I've mentioned a couple of times that I started reading through Seven
Languages in Seven
Weeks,
and even though I've recently been heavily sidetracked by Learning
Go
I just finished chapter two which dealt with
Io. The book gushes over the language, and I've read a lot of other
people's blogs where they seem quite excited about it. In the end I
couldn't finish the last exercise, even having a…]]></description><link>https://ohookins.github.io/posts/seven-languages-io</link><guid isPermaLink="false">https://ohookins.github.io/posts/seven-languages-io</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sat, 12 Jan 2013 19:50:46 GMT</pubDate></item><item><title><![CDATA[Service SDKs and Language Support Part 2]]></title><description><![CDATA[As I wrote
previously,
I found that the mismatch between the goals of large cloud services like
Amazon Web Services and the languages they support slightly conflict
with the notion of making highly concurrent and parallelised workflows. Of course the obvious followup to that post (even embarrassingly obvious
since I've been copiously mentioning Go so
much recently) is to point out that Google's…]]></description><link>https://ohookins.github.io/posts/service-sdks-and-language-support-part-2</link><guid isPermaLink="false">https://ohookins.github.io/posts/service-sdks-and-language-support-part-2</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 20 Jan 2013 15:40:23 GMT</pubDate></item><item><title><![CDATA[Asynchronous MySQL queries with non-blocking readiness checks]]></title><description><![CDATA[Well, despite my best
intentions,
here I am again writing Ruby. I decided to automate a small part of some
data analysis I've had to do a few times, starting with the database
queries themselves. Unfortunately the data is spread over several hosts
and databases and the first implementation simply queried them serially.
The next iteration used the mysql2
gem's asynchronous
query functionality but…]]></description><link>https://ohookins.github.io/posts/asynchronous-mysql-queries-with-non-blocking-readiness-checks</link><guid isPermaLink="false">https://ohookins.github.io/posts/asynchronous-mysql-queries-with-non-blocking-readiness-checks</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 17 Feb 2013 09:00:31 GMT</pubDate></item><item><title><![CDATA[Can't create new network sockets? Maybe it isn't user limits...]]></title><description><![CDATA[I've been doing a lot more programming in Go
recently, mostly because it has awesome concurrency primitives but also
because it is generally a pretty amazing language. Unlike other
languages which have threads, fibres or event-driven frameworks to
achieve good concurrency, Go manages to avoid all of these but still
remain readable. You can also reason about its behaviour very
effectively due to…]]></description><link>https://ohookins.github.io/posts/cant-create-new-network-sockets-maybe-it-isnt-user-limits</link><guid isPermaLink="false">https://ohookins.github.io/posts/cant-create-new-network-sockets-maybe-it-isnt-user-limits</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Wed, 27 Feb 2013 22:18:27 GMT</pubDate></item><item><title><![CDATA[ "otherness" in others that shines.]]></title><description><![CDATA[Today I actually have the energy for a blog post. Probably because I
went for a bike ride when it was -1  outside, and am WIDE awake as a
result!
That aside - I realised that the last time I went bike riding-  Kai was
barely walking - meaning it has been a long time since I have ridden.
However I distinctively recall having significantly lower energy then,
 than this time around. As I was riding…]]></description><link>https://ohookins.github.io/posts/otherness-in-others-that-shines</link><guid isPermaLink="false">https://ohookins.github.io/posts/otherness-in-others-that-shines</guid><dc:creator><![CDATA[Angela Collins]]></dc:creator><pubDate>Sat, 30 Mar 2013 18:04:16 GMT</pubDate></item><item><title><![CDATA[Seven Languages - Prolog]]></title><description><![CDATA[Yet another installment in my journey through Seven Languages in Seven
Weeks.
At this stage it is so far off seven weeks, it's definitely going to be
more than seven months, and I'm just hoping it won't take seven years!
But it is enjoyable nonetheless - if a little painful. This time, I've just completed the chapter on
Prolog. The previous
chapter, which I found reasonably painful as well (but…]]></description><link>https://ohookins.github.io/posts/seven-languages-prolog</link><guid isPermaLink="false">https://ohookins.github.io/posts/seven-languages-prolog</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 07 Jul 2013 20:55:54 GMT</pubDate></item><item><title><![CDATA[Seven Languages - Scala]]></title><description><![CDATA[Yet another instalment in my journey through Seven Languages in Seven
Weeks - this time on
Scala. The
iteration period has gone down significantly to almost an actual week,
so that's some marked improvement on previous chapters! I would say that I haven't even really used Java seriously - what
little I did in my university time I've forgotten, and I don't believe
I was ever competent in the…]]></description><link>https://ohookins.github.io/posts/seven-languages-scala</link><guid isPermaLink="false">https://ohookins.github.io/posts/seven-languages-scala</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Thu, 25 Jul 2013 22:32:47 GMT</pubDate></item><item><title><![CDATA[Fun and games with awk on Mac]]></title><description><![CDATA[I'm a long-time fan of simple UNIX tools that do one thing well and
nothing else. At previous employers I've even taken great delight in
asking interview questions in which the best answer would be a simple
awk one-liner rather than a complicated multi-line catastrophe involving
cat, grep, sed and perhaps even other tools. Poor interview techniques
aside, awk is really useful, and if you have…]]></description><link>https://ohookins.github.io/posts/fun-and-games-with-awk-on-mac</link><guid isPermaLink="false">https://ohookins.github.io/posts/fun-and-games-with-awk-on-mac</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Mon, 07 Oct 2013 20:24:25 GMT</pubDate></item><item><title><![CDATA[I moved my blog to HTTPS]]></title><description><![CDATA[If you are reading this successfully via my site, or some RSS feed, it
means that my blog migration has been successful. I'm unfortunately a
typical internet technologist in some regards - if the internet machines
are working, I don't tend to spend much time maintaining them or
planning any upgrades. The upcoming expiration of my domain name and
shutdown of a trial VPS I had running for some time…]]></description><link>https://ohookins.github.io/posts/i-moved-my-blog-to-https</link><guid isPermaLink="false">https://ohookins.github.io/posts/i-moved-my-blog-to-https</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Mon, 02 Dec 2013 20:17:58 GMT</pubDate></item><item><title><![CDATA[UPnP, IPv6 and updater scripts]]></title><description><![CDATA[I've written a couple of
times in the past
about my use of IPv6 at home. Sadly the state of native IPv6 for
consumers is not so much better, so I'm left without native
connectivity to my router (to be fair, I have assumed nothing has
changed but it is possible Deutsche Telekom is now offering it without
making any fanfare about its arrival). So I still have the humble Hurricane Electric tunnel…]]></description><link>https://ohookins.github.io/posts/upnp-ipv6-and-updater-scripts</link><guid isPermaLink="false">https://ohookins.github.io/posts/upnp-ipv6-and-updater-scripts</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Fri, 20 Dec 2013 22:43:04 GMT</pubDate></item><item><title><![CDATA[Unexpected benefits of IPv6 tunnelling]]></title><description><![CDATA[Recently I wrote about getting my IPv6 tunnel
setup
working properly again after a while of it not working very well (or not
at all). Since my ISP doesn't yet (to my knowledge) provide native IPv6
connectivity to regular consumers, I tunnel IPv6 via Hurricane
Electric, which on the whole
works pretty well. Another fantastic thing that my ISP does is throttle YouTube (and
presumably other) traffic…]]></description><link>https://ohookins.github.io/posts/unexpected-benefits-of-ipv6-tunnelling</link><guid isPermaLink="false">https://ohookins.github.io/posts/unexpected-benefits-of-ipv6-tunnelling</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Thu, 26 Dec 2013 14:17:20 GMT</pubDate></item><item><title><![CDATA[The current state of feature flags]]></title><description><![CDATA[Feature flags, flippers, toggles, selective rollouts and various other
terms have been used to describe systems that allow you to deploy code
without necessarily forcing it on all of your users. I won't describe
it here as it has already been covered in depth by a variety of
companies and people, notably (and not necessarily in date order)
Flickr,
Github,
Forrst,
Martin
Fowler
and
many
others.
The…]]></description><link>https://ohookins.github.io/posts/the-current-state-of-feature-flags</link><guid isPermaLink="false">https://ohookins.github.io/posts/the-current-state-of-feature-flags</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Tue, 11 Feb 2014 07:03:03 GMT</pubDate></item><item><title><![CDATA[(something something) Big Data!]]></title><description><![CDATA[I recently
wrote
about how I'd historically been using Pig for some daily and some
ad-hoc data analysis, and how I'd found Hive to be a much friendly tool
for my purposes. As I mentioned then, I'm not a data analyst by any
stretch of the imagination, but have occasional need to use these kinds
of tools to get my job done. The title of this post (while originally a
placeholder for something more…]]></description><link>https://ohookins.github.io/posts/something-something-big-data</link><guid isPermaLink="false">https://ohookins.github.io/posts/something-something-big-data</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sat, 12 Apr 2014 20:32:07 GMT</pubDate></item><item><title><![CDATA[Excluding files from logrotate globbing matches]]></title><description><![CDATA[A few days ago I wrote about logging with
Upstart
and the various implications that has if you want more frequent log
rotation than the defaults provide, or do something other than rotation
with the files that logrotate cannot do. There doesn't seem to be any good canonical source of information about
how to exclude certain files from the logrotation so I thought I'd make
a small note about it…]]></description><link>https://ohookins.github.io/posts/excluding-files-from-logrotate-globbing-matches</link><guid isPermaLink="false">https://ohookins.github.io/posts/excluding-files-from-logrotate-globbing-matches</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Wed, 21 May 2014 08:41:10 GMT</pubDate></item><item><title><![CDATA[LZ* compression algorithms]]></title><description><![CDATA[While I was implementing a small, naive log aggregation
tool
I had a moment to consider the type of compression I wanted to use on
the log files at rest. The main implication this has outside of the
efficiency of compression and how much space the files will take up is
how they can be used once stored. If you are using tools like
gzip/gunzip with awk or other simple command-line tools, or even…]]></description><link>https://ohookins.github.io/posts/lz-compression-algorithms</link><guid isPermaLink="false">https://ohookins.github.io/posts/lz-compression-algorithms</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 25 May 2014 20:54:26 GMT</pubDate></item><item><title><![CDATA[Changing of the HTPC guard]]></title><description><![CDATA[Way back in 2010 I
wrote
about my acquisition of a Zotac HD-ID11 ZBox "home theatre PC". Since
then it has served me fairly well, although I suspect I ran it too hot
for the last year or two. After several Ubuntu and XBMC upgrades I
noticed that it tended to idle pretty hot despite not really doing much
most of the time, and was able to ignore this until it started
restarting itself frequently…]]></description><link>https://ohookins.github.io/posts/changing-of-the-htpc-guard</link><guid isPermaLink="false">https://ohookins.github.io/posts/changing-of-the-htpc-guard</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 30 Nov 2014 16:00:42 GMT</pubDate></item><item><title><![CDATA[Getting Tough - The Race (Rudolstadt, 06.12.14)]]></title><description><![CDATA[As I mentioned in my last
post, I
did Getting Tough - The Race in Rudolstadt yesterday. Check out that
post for a link to a first-person-style video shot at last year's
event. Having watched that video, and obsessively scoured the internet
for photos and any other tidbits of information, I expected that I knew
what I was getting myself into. I have to say first up, whoever "Iron
Mike" (poster of…]]></description><link>https://ohookins.github.io/posts/getting-tough-the-race-rudolstadt-06-12-14</link><guid isPermaLink="false">https://ohookins.github.io/posts/getting-tough-the-race-rudolstadt-06-12-14</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 07 Dec 2014 15:16:42 GMT</pubDate></item><item><title><![CDATA[Pre-warming Memcache for fun and profit]]></title><description><![CDATA[One of the services my team runs in AWS makes good use of Memcached (via
the ElastiCache product). I say
"good" use as we manage to achieve a hit rate of something like 98%
most of the time, although now I realise that it comes at a significant
cost - when this cache is removed, it takes a significant toll on the
application. Unlike other applications that traditionally cache the
results of MySQL…]]></description><link>https://ohookins.github.io/posts/pre-warming-memcache-for-fun-and-profit</link><guid isPermaLink="false">https://ohookins.github.io/posts/pre-warming-memcache-for-fun-and-profit</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Wed, 12 Aug 2015 21:29:54 GMT</pubDate></item><item><title><![CDATA[iframe-based dashboards don't work in 2017]]></title><description><![CDATA[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…]]></description><link>https://ohookins.github.io/posts/iframe-based-dashboards-dont-work-in-2017</link><guid isPermaLink="false">https://ohookins.github.io/posts/iframe-based-dashboards-dont-work-in-2017</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Thu, 05 Jan 2017 09:16:21 GMT</pubDate></item><item><title><![CDATA[Elastic MapReduce and data in S3]]></title><description><![CDATA[I don't have to do much data analysis fortunately, but when I do there
are two options: either the data is local to our own datacenter and I
can use our own Hadoop cluster, or it is external and I can use Elastic
MapReduce. Generally you don't run an Elastic MapReduce cluster all the
time, so when you create your cluster you still need to get that data
into the system somehow. Usually the easiest…]]></description><link>https://ohookins.github.io/posts/elastic-mapreduce-and-data-in-s3</link><guid isPermaLink="false">https://ohookins.github.io/posts/elastic-mapreduce-and-data-in-s3</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Fri, 28 Feb 2014 11:35:16 GMT</pubDate></item><item><title><![CDATA[Culture Codes From Around The Tech World]]></title><description><![CDATA[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…]]></description><link>https://ohookins.github.io/posts/culture-codes-from-around-the-tech-world</link><guid isPermaLink="false">https://ohookins.github.io/posts/culture-codes-from-around-the-tech-world</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Wed, 08 Feb 2017 11:27:22 GMT</pubDate></item><item><title><![CDATA["We're doing our own flavour of Agile/Scrum"]]></title><description><![CDATA[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…]]></description><link>https://ohookins.github.io/posts/were-doing-our-own-flavour-of-agilescrum</link><guid isPermaLink="false">https://ohookins.github.io/posts/were-doing-our-own-flavour-of-agilescrum</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Tue, 13 Dec 2016 18:32:44 GMT</pubDate></item><item><title><![CDATA[What's Missing From Online Javascript Courses]]></title><description><![CDATA[Perhaps the title is somewhat excessive, but it expresses how I feel
about this particular topic. I'm not a "front-end person" (whatever
that is) and feel much more comfortable behind an API where you don't
have to worry about design, markup, logic, styling as well as how to put
them all together. That being said, I feel it's an area where I should
face my fears head-on, and so I'm doing some…]]></description><link>https://ohookins.github.io/posts/whats-missing-from-online-javascript-courses</link><guid isPermaLink="false">https://ohookins.github.io/posts/whats-missing-from-online-javascript-courses</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Tue, 06 Dec 2016 20:54:10 GMT</pubDate></item><item><title><![CDATA[Now using a Let's Encrypt certificate]]></title><description><![CDATA[Last week I got a notification from StartSSL that my site certificate
was going to expire in a couple of weeks. Since recently there has been
some news (I guess you can check the Wikipedia
entry for exact details) that
suggests StartSSL is in some danger of no longer being trusted by major
browsers, I decided to finally get around to moving to Let's
Encrypt for my certificates. When the project…]]></description><link>https://ohookins.github.io/posts/now-using-a-lets-encrypt-certificate</link><guid isPermaLink="false">https://ohookins.github.io/posts/now-using-a-lets-encrypt-certificate</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sat, 29 Oct 2016 06:36:03 GMT</pubDate></item><item><title><![CDATA[Adding Meaning to Code]]></title><description><![CDATA[This is the product of only about 5 minutes worth of thought, so take it
with a grain of salt. When it comes to how to write maintainable,
understandable code, there are as many opinions out there as there are
developers. Personally I favour simple, understandable, even "boring"
method bodies that don't try to be flashy or use fancy language
features. Method and class names should clearly signal…]]></description><link>https://ohookins.github.io/posts/adding-meaning-to-code</link><guid isPermaLink="false">https://ohookins.github.io/posts/adding-meaning-to-code</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Wed, 24 Aug 2016 18:45:15 GMT</pubDate></item><item><title><![CDATA[Thoughts on creating an engineering Tech Radar]]></title><description><![CDATA[Perhaps you are familiar with the ThoughtWorks Tech
Radar - I really like it as a
useful summary of global technology trends and what I should be looking
at familiarising myself with. Even the stuff on the "hold" list (such
as Scaled Agile Framework - sometimes anti-patterns are equally useful
to understand and appreciate). There's a degree of satisfaction in
seeing your favourite technology rise…]]></description><link>https://ohookins.github.io/posts/thoughts-on-creating-an-engineering-tech-radar</link><guid isPermaLink="false">https://ohookins.github.io/posts/thoughts-on-creating-an-engineering-tech-radar</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Fri, 12 Aug 2016 13:44:22 GMT</pubDate></item><item><title><![CDATA[Easing back into fitness]]></title><description><![CDATA[It has been about 7 months since the birth of my daughter and I think
that's about long enough to let myself sit idle due to child rearing.
Certainly as the father, I don't have that many excuses as to why I
can't become physically active again, and I actually miss running and
taking part in the various crazy obstacle races. So, I've resolved to
get myself back into shape (without being too…]]></description><link>https://ohookins.github.io/posts/easing-back-into-fitness</link><guid isPermaLink="false">https://ohookins.github.io/posts/easing-back-into-fitness</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Wed, 01 Jun 2016 19:19:48 GMT</pubDate></item><item><title><![CDATA[Catching Up]]></title><description><![CDATA[I haven't posted anything for quite some time (which I feel a little
bad about), so this is something of a randomly-themed catch-up post.
According to my LinkedIn profile I've been doing this engineering
management thing for about two years, which at least provides some
explanation for a relative lack of technical-oriented blog posts. Of
course in that time I have certainly not revoked my Github…]]></description><link>https://ohookins.github.io/posts/catching-up</link><guid isPermaLink="false">https://ohookins.github.io/posts/catching-up</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sat, 21 May 2016 20:14:50 GMT</pubDate></item><item><title><![CDATA[It's 2015, and online shopping sites still suck at taking credit card details]]></title><description><![CDATA[This is a small rant, and the title should already be very familiar to
you, if you have paid for anything online in the last 15 or so years.
Nothing (or very little) seems to have changed in that time, remarkably.
We still seem to be affected by the same range of ridiculously trivial
problems - all easily solvable with a tiny amount of Javascript, mind
you - and not making any further progress in…]]></description><link>https://ohookins.github.io/posts/its-2015-and-online-shopping-sites-still-suck-at-taking-credit-card-details</link><guid isPermaLink="false">https://ohookins.github.io/posts/its-2015-and-online-shopping-sites-still-suck-at-taking-credit-card-details</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Mon, 15 Jun 2015 16:25:44 GMT</pubDate></item><item><title><![CDATA[It's 2015, and I'm still writing config management commands wrapped in for loops.]]></title><description><![CDATA[Warning: this is a bit of a rant. Today my team had to migrate our
ElasticSearch cluster from one set of instances in our EC2 VPC, to a
smaller set of physical machines in our regular datacenter (yes, it's
actually cheaper). Both sets of machines/instances are Chef-controlled,
which generally I don't have to worry about, but in this case it was
important due to the ordering of steps in the…]]></description><link>https://ohookins.github.io/posts/its-2015-and-im-still-writing-config-management-commands-wrapped-in-for-loops</link><guid isPermaLink="false">https://ohookins.github.io/posts/its-2015-and-im-still-writing-config-management-commands-wrapped-in-for-loops</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Fri, 10 Apr 2015 19:33:48 GMT</pubDate></item><item><title><![CDATA[MBTI and pair programming]]></title><description><![CDATA[I had a meeting this week where among other things we talked about our
teams and team members and how things were doing, generally, in the
sense of team health. Oh yeah, since I haven't explicitly called it out
on this blog, for the last 9 months I've been an engineering manager
and since the beginning of the year took on a second team. So I've got
two teams of developers to manage currently…]]></description><link>https://ohookins.github.io/posts/mbti-and-pair-programming</link><guid isPermaLink="false">https://ohookins.github.io/posts/mbti-and-pair-programming</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Fri, 27 Mar 2015 20:14:09 GMT</pubDate></item><item><title><![CDATA[Golang, testing and HTTP router package internals]]></title><description><![CDATA[We have an internal service that takes requests of the form something
like /foo/{ID}/bar which basically is expected to generate data of the
form "bar" about the ID entity within the collection "foo". Real
clear! Because this service has a bunch of similar routes that have a
resource identifier as part of the request path, we use the Gorilla Mux
package. There are
a lot of different approaches to…]]></description><link>https://ohookins.github.io/posts/golang-testing-and-http-router-package-internals</link><guid isPermaLink="false">https://ohookins.github.io/posts/golang-testing-and-http-router-package-internals</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 18 Jan 2015 17:32:22 GMT</pubDate></item><item><title><![CDATA[AWS AutoScaling group size metrics (or lack thereof)]]></title><description><![CDATA[One of the notably lacking metrics from CloudWatch has been the current
and previous AutoScaling group sizes - in other words, how many nodes
are in the cluster. I've worked around this by using the regular EC2
APIs, querying the current cluster size and the desired size and logging
this to Graphite. However, it only gives you the current values - not
anything in the past, which regular CloudWatch…]]></description><link>https://ohookins.github.io/posts/aws-autoscaling-group-size-metrics-or-lack-thereof</link><guid isPermaLink="false">https://ohookins.github.io/posts/aws-autoscaling-group-size-metrics-or-lack-thereof</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sat, 17 Jan 2015 19:31:24 GMT</pubDate></item><item><title><![CDATA[Running and energy gels]]></title><description><![CDATA[I've been taking part in longer-distance events of various kinds
(running, obstacle racing, cycling and most distantly kayaking) for
quite some time now and have had various nutritional techniques over the
years and for the different events. Something that has been more of a
staple for me personally in cycling and running is energy gels, and if
you've used them yourself you'll know that they can…]]></description><link>https://ohookins.github.io/posts/running-and-energy-gels</link><guid isPermaLink="false">https://ohookins.github.io/posts/running-and-energy-gels</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Mon, 10 Aug 2015 07:18:44 GMT</pubDate></item><item><title><![CDATA[Getting back into fitness]]></title><description><![CDATA[I've just created a new category on this blog -
Health - and
recategorised one of the older articles I wrote a while ago. Being a
confirmed computer geek, fitness has never really been very high on my
priority list until I got into kayaking when I was about 24 or so. I
managed to keep that up for several years and ended up quite fit -
completing a 111km kayaking marathon three times in consecutive…]]></description><link>https://ohookins.github.io/posts/getting-back-into-fitness</link><guid isPermaLink="false">https://ohookins.github.io/posts/getting-back-into-fitness</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 30 Nov 2014 18:08:31 GMT</pubDate></item><item><title><![CDATA[The learning gap in deploying Javascript apps]]></title><description><![CDATA[I've recently been building a website for my wife using relatively
modern tools - lots of client-side Javascript and relatively minimal CSS
and HTML. A recent-ish email alerted me to the existence of a
Berlin-based Famous framework meetup
group, which initially made no
sense to me, but after I checked out the actual framework
website my interest was piqued. I've got next to no
website building…]]></description><link>https://ohookins.github.io/posts/the-learning-gap-in-deploying-javascript-apps</link><guid isPermaLink="false">https://ohookins.github.io/posts/the-learning-gap-in-deploying-javascript-apps</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 17 Aug 2014 13:07:25 GMT</pubDate></item><item><title><![CDATA[Fitness and stuff]]></title><description><![CDATA[A friend drew my attention to the fact that it has been around three
months since my last post on this blog. Sadly, life has gotten in the
way of my more technical posts - there have been a lot of things going
on preventing me from writing more frequently. Vacation, how busy I am
at work with various new responsibilities and a lot of features to
deliver, team-mates to train up, learning some new…]]></description><link>https://ohookins.github.io/posts/fitness-and-stuff</link><guid isPermaLink="false">https://ohookins.github.io/posts/fitness-and-stuff</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 10 Aug 2014 15:42:22 GMT</pubDate></item><item><title><![CDATA[Understanding Upstart's logging options]]></title><description><![CDATA[I have a couple of services I own that run in EC2 that, sadly, still
lack any log aggregation. In-house we have our own system for this, that
technically can also run in EC2 but for a variety of reasons I consider
it overkill for my use case in EC2. Basically, the solution I am after
is to do the minimum amount of work to see these logs aggregated to an
S3 bucket, making them available for…]]></description><link>https://ohookins.github.io/posts/understanding-upstarts-logging-options</link><guid isPermaLink="false">https://ohookins.github.io/posts/understanding-upstarts-logging-options</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 18 May 2014 21:43:21 GMT</pubDate></item><item><title><![CDATA[Tools that make your life harder]]></title><description><![CDATA[This post title is inspired by this Google Plus
post, although
I've been meaning to write this post for a few days anyway (it's just
a catchier title to describe the same thing). I'm not a data scientist,
analyst or even a hard-code Hadoop user by any stretch of the
imagination, but on occasion I need to do some log analysis when there
is simply too much data to force through Awk (as much as I…]]></description><link>https://ohookins.github.io/posts/tools-that-make-your-life-harder</link><guid isPermaLink="false">https://ohookins.github.io/posts/tools-that-make-your-life-harder</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Thu, 20 Mar 2014 18:17:44 GMT</pubDate></item><item><title><![CDATA[Setting goals for learning for 2014]]></title><description><![CDATA[Perhaps a little late in the year to be conducting a personal
retrospective on the years past, but I feel at this point I'm starting
to wonder about the challenges ahead. The last two to three years I've
distinctly changed my career direction from systems engineering, to
"DevOps" (whatever that means anymore), to developer. Sure, I'm
technically a Computer Scientist by tertiary education standards…]]></description><link>https://ohookins.github.io/posts/setting-goals-for-learning-for-2014</link><guid isPermaLink="false">https://ohookins.github.io/posts/setting-goals-for-learning-for-2014</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Tue, 18 Feb 2014 14:38:48 GMT</pubDate></item><item><title><![CDATA[Cloudformation and the data transformation nightmare]]></title><description><![CDATA[The background to this story is that I spent the bulk of one week
recently working on getting a prototype service deployed with AWS
CloudFormation, and the
experience was still reasonably painful. My team has other services
deployed with CloudFormation, which is working perfectly fine (now) but
I had hoped there would be some improvements available since the last
time we went through the process…]]></description><link>https://ohookins.github.io/posts/cloudformation-and-the-data-transformation-nightmare</link><guid isPermaLink="false">https://ohookins.github.io/posts/cloudformation-and-the-data-transformation-nightmare</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Fri, 07 Mar 2014 15:31:37 GMT</pubDate></item><item><title><![CDATA[Seven Languages - Clojure]]></title><description><![CDATA[I notice my pace has yet again slowed between the last chapter of the
book - Erlang - and this one. Another five months has passed since I
finished the chapter on Erlang! In actual fact, I haven't been slaving
away on the next language that whole time - decompression of sorts has
to follow each chapter, and dealing with a manic three-year-old, finding
some time for a bit of exercise and trying to…]]></description><link>https://ohookins.github.io/posts/seven-languages-clojure</link><guid isPermaLink="false">https://ohookins.github.io/posts/seven-languages-clojure</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Mon, 10 Feb 2014 06:00:37 GMT</pubDate></item><item><title><![CDATA[Mobile shell and high latency connections]]></title><description><![CDATA[I seem to recall first being introduced to
MOSH after I saw a link to it in my RSS
feed, and almost simultaneously in my work's developer mailing list
(where people tend to post about new and interesting technologies).
People were literally losing their shit over it (well, ok, not
literally) and declaring they would never use anything but MOSH ever
again. I may be dramatising somewhat. It's…]]></description><link>https://ohookins.github.io/posts/mobile-shell-and-high-latency-connections</link><guid isPermaLink="false">https://ohookins.github.io/posts/mobile-shell-and-high-latency-connections</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Mon, 03 Feb 2014 16:31:40 GMT</pubDate></item><item><title><![CDATA[Advertising virtually and physically]]></title><description><![CDATA[I'm on vacation in Thailand at the moment and noticed a correlation
here that I hadn't before. So many houses, shanties, shops, restaurants
and various other abodes have awnings or coverings made of synthetic
material and advertising various products. The awnings (I'm not sure
what else to call them, as they provide various different services
depending on the needs of the person) provide shade…]]></description><link>https://ohookins.github.io/posts/advertising-virtually-and-physically</link><guid isPermaLink="false">https://ohookins.github.io/posts/advertising-virtually-and-physically</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Wed, 29 Jan 2014 08:00:33 GMT</pubDate></item><item><title><![CDATA[Safety and discipline in coding]]></title><description><![CDATA[A couple of years ago now at least, at my previous employer, I was just
starting to feel reasonably comfortable with Ruby. I can attribute a
large part of that to having had a great boss who gave me the time to
sink a bunch of time into coding up our IaaS and Config Management
systems while still being effectively a Systems Administrator, and
another large part to reading Metaprogramming
Ruby.
A…]]></description><link>https://ohookins.github.io/posts/safety-and-discipline-in-coding</link><guid isPermaLink="false">https://ohookins.github.io/posts/safety-and-discipline-in-coding</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Tue, 28 Jan 2014 16:40:14 GMT</pubDate></item><item><title><![CDATA[Chef's attribute system is broken]]></title><description><![CDATA[Disclaimer: I'm not what I would call a "hard-core" Chef user, but
I'll explain in a moment why that is irrelevant. I've been working on and off with Chef for almost a year and a half
now; certainly not something I use every day or even every week but
perhaps a handful of times per month something will come up that
requires me to jump into Chef land and get some real work done. There
are…]]></description><link>https://ohookins.github.io/posts/chefs-attribute-system-is-broken</link><guid isPermaLink="false">https://ohookins.github.io/posts/chefs-attribute-system-is-broken</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Thu, 19 Dec 2013 19:47:22 GMT</pubDate></item><item><title><![CDATA[Command-line firewall management still sucks]]></title><description><![CDATA[And now a break from my usual programming-related posts to bring you
something back on the sysadmin side of the fence, for a change. I'm in
the process of setting up a new VPS for myself, and probably will move
my blog over to it when it is all set up. I say VPS, but really it is an
OpenVZ container (which I guess passes for VPS just about as well). The
critical difference is that you are running…]]></description><link>https://ohookins.github.io/posts/command-line-firewall-management-still-sucks</link><guid isPermaLink="false">https://ohookins.github.io/posts/command-line-firewall-management-still-sucks</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 24 Nov 2013 19:26:56 GMT</pubDate></item><item><title><![CDATA[Efficient retry/backoff mechanisms]]></title><description><![CDATA[In day to day life as a systems engineer there aren't too many
opportunities to build solutions based purely on theoretical studies or
research papers - generally solutions are built for you and you "just"
need to make them work, tie up the spaghetti, shave the yak and so on.
Entering the world of programming and software development though, a lot
of new problems come up that you can find your own…]]></description><link>https://ohookins.github.io/posts/efficient-retrybackoff-mechanisms</link><guid isPermaLink="false">https://ohookins.github.io/posts/efficient-retrybackoff-mechanisms</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Wed, 16 Oct 2013 18:56:27 GMT</pubDate></item><item><title><![CDATA[Seven Languages - Erlang]]></title><description><![CDATA[Well, well, well. One virtual "week" later, but two real world months
later, I have finished the chapter on Erlang from Seven Languages in
Seven Weeks. Based on the Git
repository
where I am recording my coding efforts through the book, I've been
working at it for almost 11 months, which is slightly disappointing, but
I have noticed during the chapter on Erlang a subtle shift in how my
brain is…]]></description><link>https://ohookins.github.io/posts/seven-languages-erlang</link><guid isPermaLink="false">https://ohookins.github.io/posts/seven-languages-erlang</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Fri, 27 Sep 2013 21:39:21 GMT</pubDate></item><item><title><![CDATA[Too much to do, too many first world problems...]]></title><description><![CDATA[We've been in the country for almost four years and I still feel like I
don't have a very good grasp on the language. OK, there are
indisputable differences between children and adults in language
learning but that doesn't mean you can't learn a language in adult
life. I just find that I procrastinate, and find it hard to prioritise
the language learning into my daily routine. Sometimes it is just…]]></description><link>https://ohookins.github.io/posts/too-much-to-do-too-many-first-world-problems</link><guid isPermaLink="false">https://ohookins.github.io/posts/too-much-to-do-too-many-first-world-problems</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sat, 14 Sep 2013 17:54:45 GMT</pubDate></item><item><title><![CDATA[On Pair Programming]]></title><description><![CDATA[It has been a while since my last blog post; certainly not because I
wanted to write less but I've just been trying to learn so damn much
recently it hasn't left much time for anything else. Whether or not
I've actually learned anything is yet to be seen. This leads me to a
subject which I am still struggling with - Pair Programming. Not that I don't "get it", "understand it", or "enjoy it" - I…]]></description><link>https://ohookins.github.io/posts/on-pair-programming</link><guid isPermaLink="false">https://ohookins.github.io/posts/on-pair-programming</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Thu, 13 Jun 2013 19:21:50 GMT</pubDate></item><item><title><![CDATA[Apple can't obey its own specifications]]></title><description><![CDATA[I've been playing around with a basic implementation of
HLS
the last few days, and despite it being a proprietary streaming
transport there is a public
specification
available for it which seems reasonably complete. That being said, it is
still proprietary, hasn't made it through the standardization process
and the public spec is suspected of being at least partially incomplete.
THAT being said, I…]]></description><link>https://ohookins.github.io/posts/apple-cant-obey-its-own-specifications</link><guid isPermaLink="false">https://ohookins.github.io/posts/apple-cant-obey-its-own-specifications</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Tue, 19 Mar 2013 10:56:12 GMT</pubDate></item><item><title><![CDATA[Personal off-site backups]]></title><description><![CDATA[Unlike many, I'm actually a good boy and do backups of my personal data
(for which I can mostly thank my obsessive-compulsive side). However, up
until now I've been remiss in my duties to also take these backups
off-site in case of fire, theft, acts of god or gods etc. Without a tape
system or rotation of hard drives (not to mention an actual "off-site"
site to store them), this ends up being a…]]></description><link>https://ohookins.github.io/posts/personal-off-site-backups</link><guid isPermaLink="false">https://ohookins.github.io/posts/personal-off-site-backups</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sat, 29 Dec 2012 16:07:56 GMT</pubDate></item><item><title><![CDATA[Amazon S3 object deletions and Multi-Factor Authentication]]></title><description><![CDATA[I've been using S3 a lot in the last couple of months, and with the
Amazon
SDK
for
Ruby
it really is dead simple to work with (as well as all of the other AWS
services the SDK supports currently). So simple in fact, that you could
quite easily delete all of your objects with very little work indeed. I
did some benchmarks and found that (with batch operations) it took
around 3 minutes to delete…]]></description><link>https://ohookins.github.io/posts/amazon-s3-object-deletions-and-multi-factor-authentication</link><guid isPermaLink="false">https://ohookins.github.io/posts/amazon-s3-object-deletions-and-multi-factor-authentication</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sat, 06 Oct 2012 22:18:14 GMT</pubDate></item><item><title><![CDATA[Another transition]]></title><description><![CDATA[A couple of things of note have happened recently. Firstly, I managed to
conquer the #10-level Currywurst at Curry &
Chili, rated at a
(literally) eye-watering 7.7 million Scovilles - not a performance I
care to repeat. Secondly, I recently changed employer from
Nokia to
SoundCloud. This is a big change
for me, and in some ways hard since it was working with Nokia that
allowed me to anchor here in…]]></description><link>https://ohookins.github.io/posts/another-transition</link><guid isPermaLink="false">https://ohookins.github.io/posts/another-transition</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Fri, 10 Aug 2012 20:47:15 GMT</pubDate></item><item><title><![CDATA[RCov with RSpec > 2.6.0 not running tests]]></title><description><![CDATA[Just a quick note since this tripped me up yesterday. If you take a look
at the changelog of RSpec between 2.6.0 and
2.6.1
you'll see that it now "intelligently" senses when being used with
RCov and requires the autorun file (which basically just sets the tests
to start automatically after they have been set up). At some point for one of our simple apps I upgraded all of the Gems in
use to the…]]></description><link>https://ohookins.github.io/posts/rcov-with-rspec-2-6-0-not-running-tests</link><guid isPermaLink="false">https://ohookins.github.io/posts/rcov-with-rspec-2-6-0-not-running-tests</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Fri, 06 Jul 2012 07:32:42 GMT</pubDate></item><item><title><![CDATA[Nginx, Passenger and WSGI]]></title><description><![CDATA[It's a little-known fact that Phusion
Passenger, the awesome
Rack webserver module, can also competently talk WSGI as well as fit
into the Rack ecosystem. This means that not only can you run your Rack
and Rails applications through it using Nginx or Apache (or in fact
independently, using a cut-down version of Nginx) but also your
WSGI-compliant Python applications. This has been touched on in…]]></description><link>https://ohookins.github.io/posts/nginx-passenger-and-wsgi</link><guid isPermaLink="false">https://ohookins.github.io/posts/nginx-passenger-and-wsgi</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 24 Jun 2012 22:09:40 GMT</pubDate></item><item><title><![CDATA[Mothers Day 2012]]></title><description><![CDATA[So this is what the world looks like when I have had sleep. Its good.
its surreal. I have motivation to write a blog post for the first time
in months. Since returning to Berlin early 2012 -  Kaichen has been in Kita. This
has allowed me to have time  to sleep and also be "alone" for a few
hours each day  for the first time since he was born ( over two years)-
 and  this "freedom" for want of a…]]></description><link>https://ohookins.github.io/posts/mothers-day-2012</link><guid isPermaLink="false">https://ohookins.github.io/posts/mothers-day-2012</guid><dc:creator><![CDATA[Angela Collins]]></dc:creator><pubDate>Sat, 12 May 2012 20:57:24 GMT</pubDate></item><item><title><![CDATA[Bundler, gems and RPMs]]></title><description><![CDATA[Recently I was working with one of our valued Thoughtworkers on an
application we were trying to not only develop in a sane way, but
package and deploy to production with just as much sanity. The status
quo seems to favour bundler on the development side, but RPMs on the
production side (if you judge these decisions based on what developers
and ops folk prefer, generally). After a reasonable…]]></description><link>https://ohookins.github.io/posts/bundler-gems-and-rpms</link><guid isPermaLink="false">https://ohookins.github.io/posts/bundler-gems-and-rpms</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Wed, 06 Jun 2012 11:12:13 GMT</pubDate></item><item><title><![CDATA[The Duck Always Bites Twice]]></title><description><![CDATA[These days I'm noticing myself saying more and more frequently that
Duck Typing is great, except when it's not. An amusing issue that briefly cropped up this afternoon was when we
failed to correctly negotiate a data structure inside of a Rake task.
Consider the following basic task:
`` What kind of output would you expect would happen if you ran rake test
right now? If you said nil you'd be right…]]></description><link>https://ohookins.github.io/posts/the-duck-always-bites-twice</link><guid isPermaLink="false">https://ohookins.github.io/posts/the-duck-always-bites-twice</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Tue, 08 May 2012 19:25:53 GMT</pubDate></item><item><title><![CDATA[On small revelations]]></title><description><![CDATA[I had a very brief moment of inspiration this weekend when a realisation
occurred to me. It's nothing amazing, and it has probably already been
mentioned many (dozens of, thousands of?) times before but I'll say it
anyway. My fundamental approach to work has changed due to the
"cloud", or rather, easily provisionable and destroyable virtual
machines. This may be pretty obvious but it's worth…]]></description><link>https://ohookins.github.io/posts/on-small-revelations</link><guid isPermaLink="false">https://ohookins.github.io/posts/on-small-revelations</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 25 Mar 2012 16:08:55 GMT</pubDate></item><item><title><![CDATA[Separation and reunification]]></title><description><![CDATA[If you know me from my professional life you may think of me as a techy,
obsessive-compulsive, slightly (or aggressively) arrogant person driven
to making some cool large systems work. But I'm also a family man, and
for the last two months I've been separated from two-thirds of that
family. During the last vacation back to Australia, I came back at the
start of January while my wife and son stayed…]]></description><link>https://ohookins.github.io/posts/separation-and-reunification</link><guid isPermaLink="false">https://ohookins.github.io/posts/separation-and-reunification</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Wed, 14 Mar 2012 18:57:23 GMT</pubDate></item><item><title><![CDATA[More talks]]></title><description><![CDATA[I gave yet another permutation of my talk about DevOps in Big Enterprise
tonight at the Berlin DevOps
meetup. I last gave it as a 45 minute presentation at the VelocityConf
BoF and prior to that as a 5 minute Ignite talk at DevOpsDays Göteborg.
This time I'm actually uploading the slides (although they are fairly
minimalistic). Enjoy!]]></description><link>https://ohookins.github.io/posts/more-talks</link><guid isPermaLink="false">https://ohookins.github.io/posts/more-talks</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Wed, 07 Dec 2011 23:30:24 GMT</pubDate></item><item><title><![CDATA[Exceptional circumstances]]></title><description><![CDATA[I'm still building up to my article on how to properly mock calls to
Rake's sh to facilitate testing of your Rakefile tasks but I haven't
quite worked up the strength to trace the calls through the libraries
and into Eigenclass wonderland. For the moment, I've got just enough
fodder to write a bit about determinism in testing. Since Friday, both a coworker and I have been hit by the same testing…]]></description><link>https://ohookins.github.io/posts/exceptional-circumstances</link><guid isPermaLink="false">https://ohookins.github.io/posts/exceptional-circumstances</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Thu, 24 Nov 2011 12:50:04 GMT</pubDate></item><item><title><![CDATA[Sinagios - a very simple RESTful API to Nagios downtime]]></title><description><![CDATA[Last week I spent a bit of time scratching an itch I've had with doing
maintenance. We use Nagios for our monitoring (without any addons,
plugins or frontends) and scheduling downtime is a pain. Not only that,
but deleting downtime is impossible short of screenscraping or (shock)
actually clicking in the user interface. When I'm done doing
maintenance I want to delete all the downtime (regardless…]]></description><link>https://ohookins.github.io/posts/sinagios-a-very-simple-restful-api-to-nagios-downtime</link><guid isPermaLink="false">https://ohookins.github.io/posts/sinagios-a-very-simple-restful-api-to-nagios-downtime</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Mon, 14 Nov 2011 20:12:04 GMT</pubDate></item><item><title><![CDATA[DevOpsDays Göteborg Ignite talk videos up!]]></title><description><![CDATA[I'm trying to take every opportunity that presents itself to blab about
what I'm working on, so I gave an Ignite talk at the recent DevOpsDays
in Göteborg, Sweden. The videos are now up, and fortunately for you I
spoke first so I'm right at the start of the video. It was my first Ignite talk and my memory is always hopeless so there
was a bit of slide confusion but it resolved itself quite nicely…]]></description><link>https://ohookins.github.io/posts/devopsdays-goteborg-ignite-talk-videos-up</link><guid isPermaLink="false">https://ohookins.github.io/posts/devopsdays-goteborg-ignite-talk-videos-up</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Tue, 08 Nov 2011 18:10:04 GMT</pubDate></item><item><title><![CDATA[Cool Tools]]></title><description><![CDATA[Today at DevOpsDays Göteborg we rounded out the day's events with an
Open Space session on Cool Tools. Basically I wanted to have a
session where as experts in our field we can suggest life-saving,
life-changing or just handy tools we use from day to day that others may
not be aware of. Each person got up, said some small amount about the
tool in question and wrote it on the board. In the end we…]]></description><link>https://ohookins.github.io/posts/cool-tools</link><guid isPermaLink="false">https://ohookins.github.io/posts/cool-tools</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sat, 15 Oct 2011 20:35:02 GMT</pubDate></item><item><title><![CDATA[Mocking fun with Python, mox and socket]]></title><description><![CDATA[I've been doing most of my work with Ruby this last year, as a lot of
it was Puppet-related. I went through the pain and pleasure of learning
Ruby and the intricacies of unit testing with test::unit and RSpec, and
mocking objects with the excellent Mocha library. Now I have slightly
returned to my roots by doing a bit of Python programming on another
part of our codebase. We use Python for some of…]]></description><link>https://ohookins.github.io/posts/mocking-fun-with-python-mox-and-socket</link><guid isPermaLink="false">https://ohookins.github.io/posts/mocking-fun-with-python-mox-and-socket</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Fri, 09 Sep 2011 18:27:33 GMT</pubDate></item><item><title><![CDATA[Efficiently handling the deluge of mail]]></title><description><![CDATA[I took a week off work this week for an "Urlaub auf dem Balkon" - in
other words a holiday at home. With a demanding one year old child, a
bit of relaxation and time to ourselves is about as much as we can ask
for at the moment since actually going away on holiday can turn into a
bit of a stressful nightmare. Since I have the week to relax, naturally
I've used the opportunity to get my geek on and…]]></description><link>https://ohookins.github.io/posts/efficiently-handling-the-deluge-of-mail</link><guid isPermaLink="false">https://ohookins.github.io/posts/efficiently-handling-the-deluge-of-mail</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Tue, 30 Aug 2011 20:02:50 GMT</pubDate></item><item><title><![CDATA[Finding inspiration]]></title><description><![CDATA[I fully own up to and take responsibility for my unending perfectionist
streak (although of course I am far from perfect) - I am never happy
with the work I have done, am always looking for new challenges, and
constantly think that I'm not doing enough (in various different areas
of my life). This generally applies to work and associated pursuits but
also to just about any other area I care to…]]></description><link>https://ohookins.github.io/posts/finding-inspiration</link><guid isPermaLink="false">https://ohookins.github.io/posts/finding-inspiration</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Wed, 13 Jul 2011 20:52:42 GMT</pubDate></item><item><title><![CDATA[Video of talk from Puppet Camp 2011 Amsterdam]]></title><description><![CDATA[http://vimeo.com/23694270 Enjoy.]]></description><link>https://ohookins.github.io/posts/video-of-talk-from-puppet-camp-2011-amsterdam</link><guid isPermaLink="false">https://ohookins.github.io/posts/video-of-talk-from-puppet-camp-2011-amsterdam</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Fri, 20 May 2011 17:42:00 GMT</pubDate></item><item><title><![CDATA[How we use cucumber-puppet]]></title><description><![CDATA[I got a question recently by email in followup to my presentation at
Puppet Camp in
Amsterdam
about how we use
cucumber-puppet. I touched
on the subject only briefly in my talk but what I did say is that it
revolutionised my approach to Puppet in general. Don't get too high an
opinion of the tool from that statement! Behaviour-driven development in
general was a new thing to me and did change my…]]></description><link>https://ohookins.github.io/posts/how-we-use-cucumber-puppet</link><guid isPermaLink="false">https://ohookins.github.io/posts/how-we-use-cucumber-puppet</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Mon, 16 May 2011 19:20:21 GMT</pubDate></item><item><title><![CDATA[reblog: Modeling Class Composition With Parameterized Classes]]></title><description><![CDATA[http://www.puppetlabs.com/blog/modeling-class-composition-with-parameterized-classes/ I'd like to point out a fine blog post by Dan Bode on parametrised
class theory and application. No surprises, I've done a lot of work
with Dan and our new Puppet implementations reflect this, but I find it
to be a very logical way of working.]]></description><link>https://ohookins.github.io/posts/reblog-modeling-class-composition-with-parameterized-classes</link><guid isPermaLink="false">https://ohookins.github.io/posts/reblog-modeling-class-composition-with-parameterized-classes</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Wed, 11 May 2011 20:02:10 GMT</pubDate></item><item><title><![CDATA[CI and Vagrant SSH sessions]]></title><description><![CDATA[If you saw my talk in Amsterdam or read my slides (or even work with me,
) you would know that one of my stages of Puppet module
testing is compile tests using Puppet Faces (at least, a pre-release
version of it since we started using it a while ago). I'm just putting
the finishing touches on the system so that it uses dynamically
provisioned VMs using Vagrant and one of the
slightly fiddly bits…]]></description><link>https://ohookins.github.io/posts/ci-and-vagrant-ssh-sessions</link><guid isPermaLink="false">https://ohookins.github.io/posts/ci-and-vagrant-ssh-sessions</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 08 May 2011 20:02:14 GMT</pubDate></item><item><title><![CDATA[strace leaving your processes in "stopped" state?]]></title><description><![CDATA[https://bugzilla.redhat.com/show_bug.cgi?id=590172 I can't tell you how many times this has bitten me, and left me
completely confused. Now I know it is just another bug... sigh.]]></description><link>https://ohookins.github.io/posts/strace-leaving-your-processes-in-stopped-state</link><guid isPermaLink="false">https://ohookins.github.io/posts/strace-leaving-your-processes-in-stopped-state</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Thu, 05 May 2011 14:57:37 GMT</pubDate></item><item><title><![CDATA[PuppetCamp 2011 Amsterdam Talk]]></title><description><![CDATA[If you made it to my talk, I hope you enjoyed it. If not, then maybe
next time! Either way, I've uploaded my slides which are available
here. If I forgot your name, your face, or just totally forgot who you are I
apologise, and similarly if I didn't introduce myself when I was
standing right next to you - I'm a terribly shy person at heart so I
probably didn't have the guts to interrupt your…]]></description><link>https://ohookins.github.io/posts/puppetcamp-2011-amsterdam-talk</link><guid isPermaLink="false">https://ohookins.github.io/posts/puppetcamp-2011-amsterdam-talk</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Fri, 29 Apr 2011 12:58:36 GMT</pubDate></item><item><title><![CDATA[Puppet Dev Training / Camp @ Amsterdam]]></title><description><![CDATA[I'm currently at the Puppet Developer course at Beurs van Berlage in
Amsterdam. We drove up on Friday from Berlin (which should have taken 6
hours, but due to traffic jams and sanity stops it took almost 11
hours). We've now spent the weekend exploring Amsterdam, which is an
amazing looking city. The canals are breathtaking, and despite the
frenzied bicycles and scooters constantly whizzing past…]]></description><link>https://ohookins.github.io/posts/puppet-dev-training-camp-amsterdam</link><guid isPermaLink="false">https://ohookins.github.io/posts/puppet-dev-training-camp-amsterdam</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Mon, 25 Apr 2011 13:31:45 GMT</pubDate></item><item><title><![CDATA[Did you know...]]></title><description><![CDATA[that if you pass a Ruby symbol through the Puppet external node
classifier interface, through a parametrised class and into an ERB
template, it will arrive (relatively) unscathed? OK not really, but the
special undef Puppet symbol does. ENC says:
myvariable: :undef Puppet interprets it as a standard undef (which is internally
represented as Puppet::Parser::AST::Undef). When passed through to an…]]></description><link>https://ohookins.github.io/posts/did-you-know</link><guid isPermaLink="false">https://ohookins.github.io/posts/did-you-know</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Thu, 07 Apr 2011 19:26:35 GMT</pubDate></item><item><title><![CDATA[SysAdmin rant of the day]]></title><description><![CDATA[It never fails to shock me that it is 2011 and yet there is so much bad
software still out there, and still being created. It seems like the
most basic elements of a good piece of software are the hardest to come
by - like init scripts. I've been playing with
ActiveMQ today as my team is getting
MCollective
training (yes, we
are the first ones in the world to get trained up on the official
course…]]></description><link>https://ohookins.github.io/posts/sysadmin-rant-of-the-day</link><guid isPermaLink="false">https://ohookins.github.io/posts/sysadmin-rant-of-the-day</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Mon, 04 Apr 2011 19:59:47 GMT</pubDate></item><item><title><![CDATA[Presenting at Puppet Camp 2011 Amsterdam!]]></title><description><![CDATA[I'm giving another talk at Puppet Camp in
Amsterdam,
which incidentally will also be a totally awesome event. If you have not
already signed up, and you are able to weasel your way into getting
management approval then please try to get to it! I'll also be attending the Puppet Dev course in the preceding days,
which I'm looking forward to immensely. The whole family is driving up
(well, I'll be…]]></description><link>https://ohookins.github.io/posts/presenting-at-puppet-camp-2011-amsterdam</link><guid isPermaLink="false">https://ohookins.github.io/posts/presenting-at-puppet-camp-2011-amsterdam</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 03 Apr 2011 19:42:45 GMT</pubDate></item><item><title><![CDATA[one!]]></title><description><![CDATA[I am officially mother to a one year old. Its hard to believe that this time, a year ago, I went to the birth
house in the morning,  stopped by the hospital around 12pm, ( had a two
hour labour) and was home with a 2.5kilo baby by 4pm in the afternoon. a year on -  here are some  of the things I love about being a mother,
in no particular order.... simple pleasures Kai has given me... How excited…]]></description><link>https://ohookins.github.io/posts/one</link><guid isPermaLink="false">https://ohookins.github.io/posts/one</guid><dc:creator><![CDATA[Angela Collins]]></dc:creator><pubDate>Fri, 11 Mar 2011 16:42:11 GMT</pubDate></item><item><title><![CDATA[In-depth testing with Mocha]]></title><description><![CDATA[I've recently been satisfying my need for more programming time and
reading up on some of the aspects which really complete a good
application, like adequate organisation, good design and reusability of
library functions, error handling and of course testing. I've been
using Cucumber for a while now in conjunction with
Puppet which represents the BDD aspect, but haven't really delved into
TDD…]]></description><link>https://ohookins.github.io/posts/in-depth-testing-with-mocha</link><guid isPermaLink="false">https://ohookins.github.io/posts/in-depth-testing-with-mocha</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Fri, 25 Feb 2011 18:35:46 GMT</pubDate></item><item><title><![CDATA[An odd obsession with hardware utilisation]]></title><description><![CDATA[I'm sure I'm not alone in my personification of hardware, but in
extension to that I like to know that my hardware is doing something.
The thought of it sitting there idle just bugs me. So when I install a
fresh new Jenkins server and it is sitting
there waiting for jobs to be fired off, it saddens me just a little that
it isn't utilised more. The flip-side situation is when the machine is…]]></description><link>https://ohookins.github.io/posts/an-odd-obsession-with-hardware-utilisation</link><guid isPermaLink="false">https://ohookins.github.io/posts/an-odd-obsession-with-hardware-utilisation</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sat, 19 Feb 2011 15:49:55 GMT</pubDate></item><item><title><![CDATA[I'm done with shell scripting]]></title><description><![CDATA[I think I will call this week the last I use shell script as my primary
go-to language. Yes, by trade I am a systems administrator but I do have
a Bachelor of Computer Science degree and there is a dormant programmer
inside me desperately trying to get out. I feel like shell script has
become the familiar crutch that I go back to whenever faced with a
problem, and that is becoming frustrating to…]]></description><link>https://ohookins.github.io/posts/im-done-with-shell-scripting</link><guid isPermaLink="false">https://ohookins.github.io/posts/im-done-with-shell-scripting</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sat, 12 Feb 2011 21:43:21 GMT</pubDate></item><item><title><![CDATA[Work environment of a geek]]></title><description><![CDATA[For a long time I've shunned stereotypes such as the hacker sitting in
a dark basement listening to repetitive music with headphones on while
they code into the early hours of the morning. My early hours of the
morning are usually spent rocking the baby back to sleep and then trying
to get back to sleep myself, and I don't live in a basement. Nor do I
particularly enjoy listening to techno, trance…]]></description><link>https://ohookins.github.io/posts/work-environment-of-a-geek</link><guid isPermaLink="false">https://ohookins.github.io/posts/work-environment-of-a-geek</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Tue, 08 Feb 2011 16:49:24 GMT</pubDate></item><item><title><![CDATA[Proposal for talk at DevOpsDays Boston!]]></title><description><![CDATA[My proposal is
up
on the DevOpsDays website, please comment and vote on it!]]></description><link>https://ohookins.github.io/posts/proposal-for-talk-at-devopsdays-boston</link><guid isPermaLink="false">https://ohookins.github.io/posts/proposal-for-talk-at-devopsdays-boston</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Tue, 25 Jan 2011 11:51:01 GMT</pubDate></item><item><title><![CDATA[Puppet class API verification and testing]]></title><description><![CDATA[I've been working recently on building up a more reliable, predictable
Puppet infrastructure. I'm not a developer at heart, but I've been
trying very hard to apply software development principles to what I do,
since generally configuration management and software deployment is
becoming more and more just another software problem. One of the end
goals of the system I am building is to have a pretty…]]></description><link>https://ohookins.github.io/posts/puppet-class-api-verification-and-testing</link><guid isPermaLink="false">https://ohookins.github.io/posts/puppet-class-api-verification-and-testing</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Thu, 20 Jan 2011 07:54:04 GMT</pubDate></item><item><title><![CDATA[Reasons to love PostgreSQL]]></title><description><![CDATA[I've been hacking on a small Ruby on Rails
project to summarise and then
prettily display pmacct traffic data. It's not an original idea by any
stretch and in fact is directly inspired by a system we had at my last
job. For obvious reasons I have to at least reimplement the idea myself,
and while the original was written in Python using PostgreSQL, mine will
be using Ruby and MySQL. One small pain…]]></description><link>https://ohookins.github.io/posts/reasons-to-love-postgresql</link><guid isPermaLink="false">https://ohookins.github.io/posts/reasons-to-love-postgresql</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sat, 20 Nov 2010 22:49:02 GMT</pubDate></item><item><title><![CDATA[Preparing (slowly) for Winter]]></title><description><![CDATA[Last year in Berlin we had a fairly terrible Winter, with temperatures
going down to -30C which we were completely unprepared for. Ange was
pregnant and neither of us had really adequate clothing although we both
got sturdy boots and some thermals to stop from freezing altogether.
This year we vowed to be more prepared, and one of the most popular
brands that we see on the streets is Jack Wolfskin…]]></description><link>https://ohookins.github.io/posts/preparing-slowly-for-winter</link><guid isPermaLink="false">https://ohookins.github.io/posts/preparing-slowly-for-winter</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sat, 13 Nov 2010 16:47:52 GMT</pubDate></item><item><title><![CDATA[My love/hate relationship with Ruby]]></title><description><![CDATA[I consider myself a failed programmer, having never really excelled at
it during University and only really having come to terms with some of
the concepts several years later. I've always liked programming but at
some point years ago I decided I didn't want to be a
programmer/developer so that was that. Since cementing myself in the
realm of Systems Administration I've come to miss the programming…]]></description><link>https://ohookins.github.io/posts/my-lovehate-relationship-with-ruby</link><guid isPermaLink="false">https://ohookins.github.io/posts/my-lovehate-relationship-with-ruby</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Wed, 03 Nov 2010 21:41:00 GMT</pubDate></item><item><title><![CDATA[Puppet - create a resource within a function using hash2resource]]></title><description><![CDATA[I searched everywhere for an example of this but couldn't find one, so
I stumbled through and got it working myself and am documenting it here
in case it ever shows up on Google and helps someone. The premise is:
you have some crazy variables that you want to turn into resources of
some kind, but there's no way to do it using the declarative methods
within Puppet. Most notably lacking is usually…]]></description><link>https://ohookins.github.io/posts/puppet-create-a-resource-within-a-function-using-hash2resource</link><guid isPermaLink="false">https://ohookins.github.io/posts/puppet-create-a-resource-within-a-function-using-hash2resource</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Tue, 26 Oct 2010 07:48:58 GMT</pubDate></item><item><title><![CDATA[Linux kernel fun]]></title><description><![CDATA[One of my favourite pastimes (sad as it is) is finding new and cool
things that the Linux kernel can do. Short of reading through the actual
source code, a relatively sane way to find your way around the kernel is
by reading the documentation provided by the Linux Cross
Reference. Seriously, bookmark it now. Ever since my baptism of fire with our Sun OpenStorage cluster shortly
after joining Nokia…]]></description><link>https://ohookins.github.io/posts/linux-kernel-fun</link><guid isPermaLink="false">https://ohookins.github.io/posts/linux-kernel-fun</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sat, 23 Oct 2010 22:25:09 GMT</pubDate></item><item><title><![CDATA[I/O redirection "optimizations"]]></title><description><![CDATA[Quite a while back, I had to migrate a few terabytes of data from one
machine to another. Not that special a task, and certainly a few
terabytes is not that much but at the time it was a reasonable amount
and even over 1Gbps network it can take some time. Fortunately it was
not time critical and I could take the server in question down for a
while to facilitate the migration. The data in question…]]></description><link>https://ohookins.github.io/posts/io-redirection-optimizations</link><guid isPermaLink="false">https://ohookins.github.io/posts/io-redirection-optimizations</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 12 Sep 2010 20:24:36 GMT</pubDate></item><item><title><![CDATA[the women of Berlin....]]></title><description><![CDATA[Daily I have German women of all a ages coming up to me or stopping me
on the street to comment about Kai. I carry Kai in a sling wherever I
go, so he can face out as we explore Berlin. some days I have woman
coming up to look at Kai, exclaiming he is "Sehr Suß" (very sweet),
 oh, kleines Fuß! ( little foot), or asking questions  - Wie alt? ( how
old?), Jungen oder Mädchen? ( girl or boy), is it…]]></description><link>https://ohookins.github.io/posts/the-women-of-berlin</link><guid isPermaLink="false">https://ohookins.github.io/posts/the-women-of-berlin</guid><dc:creator><![CDATA[Angela Collins]]></dc:creator><pubDate>Sun, 12 Sep 2010 14:29:33 GMT</pubDate></item><item><title><![CDATA[Running on borrowed time]]></title><description><![CDATA[No, I'm not dying, but perhaps my treasured notebook computer is. I've
been using my trusty Lenovo Z61t for longer than I can accurately
remember but I assume it must be about 5 years now. In that time the DVD
drive has stopped burning DVDs, the trackpad has completely stopped
working, the pointing stick flakes out regularly (prompting me to write
a script which restarts the driver when problems…]]></description><link>https://ohookins.github.io/posts/running-on-borrowed-time</link><guid isPermaLink="false">https://ohookins.github.io/posts/running-on-borrowed-time</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Thu, 16 Sep 2010 19:14:09 GMT</pubDate></item><item><title><![CDATA[Exact determination of Linux process memory usage]]></title><description><![CDATA[While I was still working for Anchor Systems, we had a client who was
launching a fairly large website and as part of the gradual ramp-up to
delivery we needed to perform some capacity tuning of the
web/application servers. The application stack was basically Perl via
mod_perl on Apache (not threaded) so we had to determine the memory
footprint of the application and make a determination of how…]]></description><link>https://ohookins.github.io/posts/exact-determination-of-linux-process-memory-usage</link><guid isPermaLink="false">https://ohookins.github.io/posts/exact-determination-of-linux-process-memory-usage</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 12 Sep 2010 12:25:55 GMT</pubDate></item><item><title><![CDATA[IPv6 Privacy]]></title><description><![CDATA[I'm a big proponent of getting IPv6 out there, but not everyone shares
this opinion. A lot of people are happy to stick with IPv4 and all of
the horrid NATing nightmares this introduces despite there being such
big wins when using IPv6. Some issues it does introduce though need to
be dealt with: The big compatibility issue, which encompasses OS, network stack and
application support as well as…]]></description><link>https://ohookins.github.io/posts/ipv6-privacy</link><guid isPermaLink="false">https://ohookins.github.io/posts/ipv6-privacy</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 12 Sep 2010 10:22:16 GMT</pubDate></item><item><title><![CDATA[Buzz -> Blog]]></title><description><![CDATA[With no other outlet, I've previously been linking to interesting posts
and stories from my Google Buzz account. Not many (if any) of them had
additional commentary from me, so I'm just dumping the links here for
any interested parties (in chronological order). You'll notice a lot of
them are DB-related, as that's what a large bulk of my time this year
has been devoted to. Linux not quite ready…]]></description><link>https://ohookins.github.io/posts/buzz-blog</link><guid isPermaLink="false">https://ohookins.github.io/posts/buzz-blog</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sun, 12 Sep 2010 10:01:43 GMT</pubDate></item><item><title><![CDATA[IPv6]]></title><description><![CDATA[One last post before I hit the sack... There's this thing called IPv6.
You need it. By and large most companies involved in Internet things are doing very
little to promote IPv6 uptake but Hurricane Electric
are one of few that are doing some cool things. They offer free IPv6
tunneling (and have a lot of endpoints globally), as well as a
pretty awesome certification course. OK, it's not "official…]]></description><link>https://ohookins.github.io/posts/ipv6</link><guid isPermaLink="false">https://ohookins.github.io/posts/ipv6</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sat, 11 Sep 2010 22:47:52 GMT</pubDate></item><item><title><![CDATA[Absurd]]></title><description><![CDATA[Does it strike anyone else as odd, that humans, are the only creatures
that glorify one another? We seem to be obsessed with celebrity and
rarely because of their intellectual status, but rather their
'attractiveness'. Humans seem to be the only creature who refuse to be what they are,
spending countless hours emulating someone else, often with a higher
status that we have endowed upon them in the…]]></description><link>https://ohookins.github.io/posts/absurd</link><guid isPermaLink="false">https://ohookins.github.io/posts/absurd</guid><dc:creator><![CDATA[Angela Collins]]></dc:creator><pubDate>Sat, 11 Sep 2010 22:38:29 GMT</pubDate></item><item><title><![CDATA[My old articles at Anchor]]></title><description><![CDATA[I've always enjoyed writing (and occasionally
presenting)
technical documents, whether that be official documentation, wiki
articles or blog posts. Fortunately I was encouraged to do so at my last
place of employment, Anchor
Systems, but unfortunately
the documents in question (while publicly available) are not mine so
remain on their site. I thought I'd link to them from here though: High…]]></description><link>https://ohookins.github.io/posts/my-old-articles-at-anchor</link><guid isPermaLink="false">https://ohookins.github.io/posts/my-old-articles-at-anchor</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sat, 11 Sep 2010 22:27:48 GMT</pubDate></item><item><title><![CDATA[Here we go...]]></title><description><![CDATA[Every man, woman and child has a blog already but I've held off long
enough. Mostly my intention is to record interesting (to me at least)
ideas, thoughts, information etc somewhere that is reasonably
accessible, and not only to me. Google Buzz doesn't get enough
readership, and most of my friends don't really care about the
tech-related garbage I post to Facebook. So if you are reading this…]]></description><link>https://ohookins.github.io/posts/here-we-go</link><guid isPermaLink="false">https://ohookins.github.io/posts/here-we-go</guid><dc:creator><![CDATA[Oliver Hookins]]></dc:creator><pubDate>Sat, 11 Sep 2010 22:00:54 GMT</pubDate></item></channel></rss>