Presentation: Decentralized privacy for modeling human mobility

Slides for my presentation to the 1st British NetSci Symposium (May 31st, 2024). Slide format: PDF HTML

May 30, 2024 · 1 min · Hamish Gibbs

What is a likelihood? (Bayesian modelling)

Likelihood: The probability that an event will occur. I am trying to tighten up my understanding of likelihood in the context of bayesian modeling. When building a bayesian model from scratch, why do you have to choose a likelihood function in the same way you specify priors? Specifically: how does a likelihood function let you ‘fit’ a bayesian model to empirical data? I have done some bayesian model fitting in previous research:...

December 14, 2023 · 8 min · Hamish Gibbs

Removing large files from a Logseq Git repository

I use Git to track changes to my Logseq Graph and keep a remote version of my repository on GitHub (as a backup). Logseq can automatically commit changes to your files at a given a time interval and this gives a great record of what you are doing all day, with data that is relatively easy to analyze (if you ever wanted to). Tracking Logseq with Git works very well, until it doesn’t!...

November 21, 2023 · 4 min · Hamish Gibbs

Cheatsheet: Resolving Conflicts in a Git Repository

When working collaboratively in a Git repository, after committing some new changes and trying to push with: git add [file] git commit -m "[your message]" git push You might see the message: failed to push some refs to [url]. Updates were rejected because the remote contains work that you do not have locally Option 1: Resolve conflicts locally Fetch the latest changes from the remote repository: git fetch origin Merge the remote version of the repository with the local version (assuming you are in the main branch):...

November 19, 2023 · 2 min · Hamish Gibbs

Understanding SHA-1 with Python

I wrote this article in 2021 on Hashnode in a flurry of interest in cryptography. I am reposting it here to archive it. How does a hashing algorithm actually work? And what makes it secure? In this article, we will look at an implementation of SHA-1 (Secure Hashing Algorithm 1) in Python and discuss each step used to create a hash digest. While there is plenty of information about how to use hashing algorithms generally, and about the security properties of specific hashing algorithms, this article is for anyone who would like to dive deeper into understanding exactly how a hashing algorithm maps an arbitrary array of bits to a unique hash digest....

August 1, 2021 · 6 min · Hamish Gibbs

Gridded Spatial Data: Bing Tiles

I wrote this article in 2021 on Hashnode when I was using Bing Tiles in my research. I am reposting it here to archive it. How do we store and query large spatial datasets? Here, we will build our understanding of the mathematical foundations of the Bing Tile System. To store large spatial datasets, we can divide them into usable sections (“tiles”) and assign them a unique identifier. One of the many systems for referencing these tiles is the Bing Tile System, a clever way to calculate identifiers for tiles of spatial data....

August 1, 2021 · 8 min · Hamish Gibbs

Understanding Merkle Trees

I wrote this article in 2021 on Hashnode in a flurry of interest in cryptography. I am reposting it here to archive it. In this article, we will build an understanding of Merkle Trees and their applications. What is a Merkle Tree? A Merkle Tree is a data structure that makes it efficient to verify the integrity of a collection of data. These data structures are used in all sorts of applications....

August 1, 2021 · 8 min · Hamish Gibbs

Cheatsheet: Bitwise Operators

I wrote this article in 2021 on Hashnode as I was wrapping my head around different spatial referencing systems. I am reposting it here to archive it. Hopefully it helps with understanding the basics that underly spatial grids like [[Bing Tiles]] A quick reference for bitwise operators. These operators define the way that computers rearrange bits to perform calculations and represent data. Bitwise operators are supported directly by computer processors to perform calculations and store information in memory....

July 31, 2021 · 4 min · Hamish Gibbs

Binary and Hexadecimal

I wrote this article in 2021 on Hashnode as I was wrapping my head around different spatial referencing systems. I am reposting it here to archive it. Hopefully it helps with understanding the basics that underly spatial grids like [[Bing Tiles]] Here, we will dive into binary and its default representation: hexadecimal. Binary is the core numeral system used in computers. To do anything, your data or lines of code must be transformed into binary....

July 31, 2021 · 5 min · Hamish Gibbs