Posts

📡 Subscribe via RSS


Jan. 26, 2026

Why I Only Use Signal

If you’ve ever tried to add me on WhatsApp, Facebook Messenger, Telegram, or any other messaging app, you’ll have discovered that I’m not there. It’s not that I haven’t heard of them or that I’m some sort of technophobe - I just choose not to use them.

Instead, I use Signal for all my messaging needs. Here’s why.

What is Signal?

Signal is a messaging app, much like the others you might already use. You can send texts, photos, videos, voice messages, and make voice or video calls. It works on your phone and your computer. It has group chats. In terms of features, it does pretty much everything the mainstream apps do.

Jan. 9, 2026

Deploying Everywhere: Why This Site Lives on Multiple Platforms

If you’re reading this, you might have arrived here via owencampbell.me.uk, or perhaps through owencampbell.eth.limo, or maybe even owencampbell.bzz.link. The same website, accessible through multiple different addresses. Why? It’s all about resilience.

The Problem with Putting All Your Eggs in One Basket

We’ve all experienced it: a website goes down because the hosting company had an outage. A service you rely on shuts down with little notice. GitHub goes offline and suddenly half the internet’s documentation is inaccessible. Twitter decides to rebrand and change its APIs, breaking countless integrations.

Nov. 6, 2023

Terminals and Shells: A Beginner's Guide

I often find that there is some confusion for beginner programmers when it comes to understanding the difference between a terminal and a shell.

Let’s take a few moments to look at the history of where those terms arose and how that fits with the world of modern computing.

What is a Terminal?

Computers used to be enormous machines, often filling entire rooms. When I was at University in the late 1980s, there was a large ‘mainframe’ machine somewhere in the Computer Science building and there were workstations around the university campus from where students and staff could use it.

May. 30, 2023

ETHDam - My First Web3 Event

I’ve been looking for a way to get my teeth into the web3 world for a little while. I needed a project - something I could get coding, make it work and learn how this all works along the way.

And then my son, James, pointed me at ETHDam - a web3 conference with free tickets for anyone accepted into their hackathon. Given that he also had an idea for something we could work on together, it seemed the perfect opportunity.

Sep. 22, 2022

Memorable Talks

In Successful Talk Proposals , I finished by suggesting that a track record of memorable talks goes a long way to any future proposal being successful.

But what makes a memorable talk?

For some years, I’ve been quietly asking attendees at PyCon UK what talks they remember from previous years and what makes those stand out. I’ve noticed some common themes in their responses…

Stories, Metaphors and Hidden Worlds

Unsurprisingly, perhaps, the things that make a proposal stand out also do the same for the resulting talk. If you can tell a story, find a metaphor or describe a world the audience never knew existed, your talk will stick in the mind.

Sep. 20, 2022

Successful Talk Proposals

I’ve been part of the PyCon UK organisers team for several years. My job in that team is to look after the programme - the call for proposals, reviewing the submissions and fitting those we accept into the schedule.

There are many guides online to writing a successful proposal. We normally have one ourselves on the conference website:

Our 2022 Advice

Here’s another from Hannah Hazi whose 2022 proposal was selected as a keynote (which we’ll come back to again in a moment):

Sep. 7, 2022

Everyone Pays to Attend PyCon UK

PyCon UK has a long-standing policy that everyone pays to attend - speakers, organisers, everyone. That often causes some consterntation with reactions like "I have to pay to speak at PyCon UK?!!" or "If I volunteer to help, I have to pay the same as someone who has done nothing?"

I've been party to many discussions on whether the policy should change and these are my thoughts on the subject... (TLDR: it shouldn't).

Oct. 2, 2018

Lightning Talks and Buckets

PyCon UK 2016

At PyCon UK 2016 , I became annoyed.

I was fully part of the organising team for the first time and we had spent part of our opening morning's session introducing lightning talks: explaining how they were an ideal way for new speakers to begin their speaking career.

At the time, the system we used for lightning talks was the same as everyone else. We had a flipchart at reception and, if you wanted to give a talk, you wrote your name and a title on the flipchart, starting at the top.

Apr. 11, 2018

My Conference Attendance Guidelines

I regularly attend technical conferences in order to learn, make new contacts and generally participate in whatever community that conference represents.

Over the years, I have found that the best way to increase my chances of making new friends and contacts is to speak at the conference - people are far more likely to approach me to discuss my talk than for any other reason.

So, for me, attendance at a conference is a big deal. I'm asserting that I wish to be part of that community, that I'd like to be one of its speakers and, therefore, have my name publicly associated with the event and I'm prepared to spend time, effort and money to make that happen.

Mar. 20, 2015

Why I use LaTeX

When I tell people that I don’t use Microsoft Word, they are generally somewhat taken aback and then assume that, because I own a Mac rather than a Windows PC, that I just use Apple’s Pages instead.

I don’t!

In fact, I don’t use any kind of conventional word processor. I also don’t use PowerPoint for presentations or Visio for diagrams. Instead, I use what’s known as a ’typesetting system’ called LaTeX.

Mar. 8, 2012

Oracle Update Statements

There are several methods in Oracle SQL to update records in one table based on the content of another table.

Here, I give some of those methods and some guidance on where they might be most appropriate.

The Basics

Oracle uses a ‘correlated subquery’ syntax which looks like this:

UPDATE  target t
SET t.column = s.column
(SELECT
FROM  source s
WHERE s.join_column = t.join_column)

The bracketed subquery joins the source and target tables and the target table is updated with values from the source column. I’ve shown a simple join between the two tables using one column from each, but the WHERE clause in the subquery can be as complex as required.

Jun. 12, 2008

PGP Signatures on Email

You’re probably here because you’ve received an email from me with an attachment called ‘signature.asc’ or with lines at the top similar to:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

and a section at the bottom which looks something like:

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (MingW32)
iEYEARECAAYFAkmr2UAACgkQmnCt8c1NQ98pcACdEpZpqJYifkH0NvE6krEjzA9T
VoMAn1HIKzpRrnveSEizzQBLMANkh648
=acdx
-----END PGP SIGNATURE-----

The attachment, or these two blocks, form a digital signature for the message which can be used to verify that: