If you spend much time in the kitchen, you’ll want these. If you’ve ever been for dinner at mine, I’ve probably enthused at you about them. I have a pair of “Kitchen Craft Master Class” silicone oven gauntlets, but there’s many similar varieties. They’ve been invaluable when I’m cooking.
Nobody Likes Naked Pings
Ever received a voicemail or text message that says nothing other than “call me”? You got a “naked ping” - a context-free request for response / attention / action.
From https://blogs.gnome.org/markmc/2014/02/20/naked-pings/:
The naked ping should be Considered Harmful, for at least two reasons. The first is that it conveys no information. The recipient of your ping, like you, is a Busy Person. They may be in the middle of something requiring intricate thought, and should not be interrupted for anything less than fire, flood, or six figures of revenue. Worse, you may forget why you pinged someone; when, four hours later, your victim gets back to IRC and responds to you, you will be disrupted in turn trying to remember what was on your mind in the first place.
Postgres for Ladies
Someone started selling a book titled “Postgres for Ladies” on Amazon (now removed).
On the plus side, it received some well-deserved snark in the reviews that was both amusing AND on point:
But when my wife wanted to learn to use [Postgres], she just couldn’t wrap her head around it. Personally, I think it was due to stress at work; computational modeling of disease transmission takes a lot out of a girl.
I’ve created a database with all of our finances, for example. It includes our expenses, and every month she adds in her income from work. She’s even managed to automate the process of removing $.23 from every dollar she earns, just like her employer does.
On the minus side, presumably someone thought the book was a genuinely good idea :(
Dependency Versions Matter
You wrote some code.
It uses a library, libfoo
.
libfoo
is not a thing in stasis,
a little island of perfection birthed into an ideal of perfect form and function.
libfoo
has a version,
because libfoo
changes as features are added and bugs are fixed.
You do not “depend on libfoo
”,
you depend on some specific version of libfoo
,
with its behaviour at that time.
Cover Letters: Always Send One
Younger-me believed a bunch of classic “naïve engineer fallacies”, like “marketing is a waste of time, it’s all about technical superiority”. One of them was “Cover letters are a waste of time! They should be able to tell my suitability from my CV alone!” (somehow I still believed this despite having a very short CV).
Younger-me was wrong, very wrong.
Send a cover letter. Please.
The Book of Armaments - Tools for Better Python
This is a long-form version of a talk I was invited to give at PyDiff (the Cardiff Python meetup) last year The audience was an exciting range of people, from professional software engineers, to mathematicians who’d written their first Python a few weeks prior.
Tools for better Python
There are things that will help you write better Python that are not Python-specific, like practice, good posture, documentation and empathy. These will help you be better at almost everything you do.
There are Python-specific things that will help you write better Python. However you may find them less useful in other areas of life…
Python's 'Surprise' Imports
There was some code, it looked a bit like this:
from django.utils import timezone
start_date = timezone.datetime(2015, 1, 1)
Django recommends that you use, for example, django.utils.timezone.now
to ensure you always get “the right now” (i.e. timezone-aware).
So you might, as with the code example above,
extrapolate that timezone.datetime(2015, 1, 1)
will give you a timezone-aware “1st of January 2015” datetime
object.
This is not what happens.
You get a naïve datetime
object.
Why?
Semantic Linebreaks
When I write reStructuredText or Markdown or similar, I add linebreaks after commas and full stops, rather than at some sort of pre-determined / arbitrary line wrap point.
The Government Service Design Manual
One of my favourite things that’s come out of the UK’s Government Digital Service is the Government Service Design Manual.
It manages to provide an incredible amount of guidance and resources for anyone involved in “digital delivery”, while remaining implementation-agnostic and succinct.
Removing myself from the equation
Through circumstance and history, there’s a bunch of tasks and procedures for which I’m either the only one on my team who knows how to do them, or at least the local expert who does them most frequently.
For the sake of my team’s autonomy, resilience, and ability to evolve these processes, it’s important that this knowledge and experience isn’t confined to just me.
So here’s what I generally do to change that: