Some useful, non-obvious Postgres patterns
There’s nothing earth-shattering here,
but I can recall that each of these principles
were not obvious to me at some point in time.
Perhaps some of them are not obvious to you right now.
Read more
Existing by coincidence, programming deliberately
There’s nothing earth-shattering here,
but I can recall that each of these principles
were not obvious to me at some point in time.
Perhaps some of them are not obvious to you right now.
Read more
I’ve always wanted a dog,
but could never get one
because I lived in rented accomodation.
Happily that changed last year
so as soon as I could,
I bought a puppy.
This is what I learned
about dogs, people and code.
Read more
Last week I received the result
of my WSET level 3.
I got a pass with distinction
for both parts of the exam,
the tasting
and the theory.
So, keeping up the tradition
I started with level 2,
this post summarises my advice
for anyone out there
thinking about level 3.
Read more
Automating your release process
saves time,
eliminates tedious busywork
and reduces the likelihood of mistakes
when cutting a new release.
There are plenty of off-the-shelf solutions available,
but this post will show
how easy it is to build your own release script
and why the end result can be better
than using a generic, third-party option.
Throughout the post
I’ll use the case study
of some recent work we did
to automate the release process
for FxA,
to provide concrete examples
of what I’m talking about.
Read more
Historically,
the Firefox Accounts (FxA) codebase
was organised as separate repositories
because it’s deployed as separate microservices
in production.
However,
that arrangement caused us
some nagging issues
as developers,
so we decided to migrate the code
to a monorepo instead.
This post discusses
why and how we did that,
and how things turned out
in the end.
Read more
Along with all the fun, creative stuff
it enables you to do,
programming sometimes requires you to carry out
boring and repetitive editing operations.
If those operations are uniformly applicable,
it’s straightforward to automate them
using regular expressions
and a tool like sed,
or :%s/foo/bar/g in vim-speak.
But sometimes a regex can’t express
the pattern you want to match against
and on those occasions,
vim macros can come to the rescue.
Read more
JavaScript’s Array and Promise types
compose nicely
with functional programming idioms
to control concurrency
without recourse to 3rd-party libraries.
This post contrasts two such patterns
that enable you to process data
either concurrently or serially,
with back-off and retry logic
in the event of errors occurring.
Read more
Time passes
and it’s easy to forget
about all the cool stuff you did
or lessons you learned.
But source control makes it easy
to go back and remind yourself,
so I thought I’d take a moment
to look back and summarise
my past year in code.
Read more