This article is trying to help programmers and people like them, when they have conversations at work that are about understanding, explaining, deciding etc. It’s not so much about persuasion or selling, or mentoring or coaching. These are all important kinds of conversations, but I’m not the person to help you with them. It might … Continue reading Debugging how conversations go at work
Author: Bob
Aggregation and window functions for data
In this article I’ll go into two related operations or kinds of queries you can do to data, that are both to do with grouping things – aggregation and window functions. I’ll describe how they both work, how they’re similar but different, and give examples of when you might use them including how you might … Continue reading Aggregation and window functions for data
Pairs ancient and modern for security
I was struck recently by how often pairs crop up in things to do with security, and for how long this has been true. I’ll go into two similar old techniques to do with documents – indenture and chirograph, and an old pair-based object (the split tally) and then two things enabled by the current … Continue reading Pairs ancient and modern for security
Mental models for data engineering and data science
For programmers like me, it can be a bit of wrench when you get more into data work, particularly data engineering and data science. You’re used to data being around (in the background) and so think everything will be OK. This wasn’t the case for me, and so here are some mental models (glorified metaphors) that … Continue reading Mental models for data engineering and data science
Analysing white noise sounds from nature
The sound of rain, a breeze through trees, water in a stream and waves on a shore are probably familiar to you. They’re different but similar – they all contain white noise and don’t sound like e.g. a guitar, but they also don’t sound the same. In this article I try to analyse some recordings of … Continue reading Analysing white noise sounds from nature
Solving computer problems with indirection
There's a pattern that crops up a lot in computing - indirection. It's sometimes a little bit disguised, but it's used to solve many kinds of problem. To introduce it I'll first use an example from outside computing, that I like for many reasons. Five freedoms for animal welfare It might be a bit odd … Continue reading Solving computer problems with indirection
The world’s greatest music?
I sometimes listen to the UK radio station Classic FM. Its strapline is “The world’s greatest music”. Leaving aside the difficulty of defining what great music is, let alone the greatest, I was curious as to the “world” bit. I scraped the playlist for one day, did some gentle analysis on it and the charts that … Continue reading The world’s greatest music?
Comparing and aligning data models
Sometimes you are trying to bring two worlds together - two bits of code, each with its own data model. The two worlds could be a computer system you work on and the system from a partner you're trying to integrate with. The data models can be the most prominent bits of this integration, but … Continue reading Comparing and aligning data models
Modelling a river lock
In this article I will model a lock on a river or canal. As well as going into the specifics of the model, I’ll touch on more general topics about modelling. These are things like diagrams to represent the model, tools, models as conversation starters, iterating models etc. A lock has a model that is … Continue reading Modelling a river lock
Representing numbers
I’ve recently been doing more maths than usual using Roman numerals, which has got me thinking about the relationship between how numbers are represented and how easy it is for them to do different jobs for us. I’ll go into a few representations below, and their good and bad points. I won’t talk about floating … Continue reading Representing numbers