Golang Trie

A trie (pronounced either “tree” or “try”) is a data structure typically used to store a set of strings in a way that allows looking up by prefix efficiently - i.e. unlike a hashmap where the keys are randomly ordered - this makes it a reasonable choice for an autocompletion system. A possible advantage over binary trees is that the keys are not stored in full in each node - so if you have a large number of strings which often have overlapping prefixes (e.g. “cat”, “cats”, “catastrophe”) then you may be able to save memory. ...

December 31, 2020 · Tim Retout

Focusing on Ingenuity

I am led to believe that New Year’s Resolutions seldom work, and that a more effective approach to goal setting is to choose a theme for the year. This makes sense to me, as in hindisght 2020 threw up a few surprises. Last January, buoyed by my success in gaining various technology-related certifications, I wrote that I would focus on learning; at that time I intended to engage in more formal study, but subsequently rediscovered how little I enjoy essay writing! However, in the end I did learn a good deal this year, so perhaps I achieved my aim after all. ...

December 28, 2020 · Tim Retout

Bin Calendar

Around this time each year it is especially useful to know when the rubbish is due to be collected by the local council, since the schedule is inevitably disrupted by the holidays until well into January. In fact where I live we have fortnightly collections, with different types of bin collected on alternate weeks, so I never find it easy to remember which bin is due to be put out. ...

December 28, 2020 · Tim Retout

seL4 on Raspberry Pi 3 in AArch64 mode

Several references exist that document how to run seL4 on the Raspberry Pi 3 in 32-bit mode. One annoying paper cut encountered when getting this working is the need for a custom u-boot - either a binary distributed by the authors of seL4, or reverting a particular commit in u-boot. A recent release of seL4 mentioned AArch64 support for RPi3. I’ve got it running, and it appears to avoid the need for a custom u-boot. (N.B. you still need a GPIO serial cable!) ...

May 11, 2020 · Tim Retout

Lockdown

It seems right that I should mention the pandemic on my personal blog; I doubt very much that I will say anything original or interesting, but it would seem strange to look back on my writings from 2020 and see nothing about COVID-19. I had to check this, but I have been staying at home since Monday 15th March, save for occasional walks around the park. (UK schools closed on 20th March, and we officially announced the lockdown on 23rd March, but our house started a bit early due to having a mild cough.) That’s 52 days at home for me so far, or 7 weeks and 3 days. ...

May 6, 2020 · Tim Retout

2020

Life comes at you fast. Since changing jobs three months ago, I have earned several cloud-related certifications, and started an assignment as a cloud security architect with a large financial services client. Consulting is quite different to ordinary employment; a great deal of emphasis is placed on making connections, and building a personal brand. I’m enjoying the variety of work, and the opportunity to develop my skills. My focus this year is on learning; I intend to spend more time reading and writing, especially as a way to distill and clarify my ideas. Who knows, I might even post more on this blog?

January 2, 2020 · Tim Retout

PA Consulting

In early October, I will be saying goodbye to my colleagues at CV-Library after 7.5 years, and joining PA Consulting in London as a Principal Consultant. Over the course of my time at CV-Library I have got married, had a child, and moved from Southampton to Bedford. I am happy to have played a part in the growth of CV-Library as a leading recruitment brand in the UK, especially helping to make the site more reliable - I can tell more than a few war stories. ...

September 4, 2019 · Tim Retout

My Free Software Activities for Jan/Feb 2019

I have done a small amount of free software work! However, I’m going to cheat and list it since the start of the year. ...

February 28, 2019 · Tim Retout

Blog Migration

This evening I’ve migrated my blog to Hugo, and made it look a bit prettier. I apologise if I’ve broken any links - in particular, I don’t think listings of blog posts in a particular day or month are working.

February 27, 2019 · Tim Retout

Tokenizing IT jobs

One size does not fit all when it comes to building search applications - it is important to think about the business domain and user expectations. Here's a classic example from recruitment search (a domain which has absorbed six years of my life already...) - imagine you are a candidate searching for IT jobs on your favourite job board. Recall how a full-text index works as implemented in Solr or Elasticsearch - the job posting documents are treated as a bag of words (i.e. the order of the words doesn't matter in the first instance). When indexing each job, the search engine tokenizes the document to get a list of which words are included. Then, for each individual word we create a list of which documents include each word. ...

May 29, 2018 · Tim Retout