John Mathews Blog
Blog Microfeatures
How to be successful
Murphy's Laws of Combat Operations
Hacking Millions of Modems (and Investigating Who Hacked My Modem)
Running A Business Changes The Way You Think
I love my wife. My wife is dead (1946)
What factors explain the nature of software?
Understandable Software
Tooling for large teams
Tmux resurrect - restore a particular session
Life Lessons from the Death Bed
DALL-E 3 Prompt Engineering
Stories about big decisions
20 lessons from the 20th century
Free to not do a thing
Thoughts on the Fujifilm x100v
Content Creation: Things I learned The Hard Way
The Simplest Math Problem No One Can Solve
Photography
Recommended finance books
Bootstrapped SaaS
Deep Dive into GarminOS and its MonkeyC Virtual Machine
MacOS Keyboard Shortcuts for Developers
Photographer: Léonard Misonne
Interesting AI
P90x3
A short 100 question diligence checklist
Sparks of General Intelligence
AI prompt engineering
Chat GPT prompt engineering
Thinking about risk
Who becomes an entrepreneur?
Using AI for social media content creation.
Photographer: Willem Verbeek
Photographer: Esther Brown
Six Types of Wealth
The Case for Travelling More
Lessons from history in tackling climate change
Most Data Work Seems Fundamentally Worthless
High levels of bitcoin dormancy
Elitism as the mid-career growth engine
What is an engineering strategy
Childhoods of exceptional people
The sleeping beauty problem
Is success luck or hardwork?
Letter to 15 year old me
Everything you can't have
Money is a negative art
How to learn another language
My Neovim setup in 2023
Fun, Fear, Pain, Accomplishment
ZSA Moonlander Review
The Impact of a Coin Toss on Major Life Decisions
Neovim plugins I could make
Ben Howard - The End of the Affair
YAML gotchas
All that is gold does not glitter
Insanity workouts
P90x
Long Life
January Music
Small Teams
Photographer: Fan Ho
Photographer: Robert Doisneau
Three Falls in the Alps
A new blog
Learnings from 5 years of tech startup code audits
Don't avoid sunlight
Tmux tutorials
Data Science Teams
Newish Command-Line Tools
Why the past 10 years of American life have been uniquely stupid
MacOS Keyboard Shortcuts
Advanced googling
Dan Lebrero book notes
Someone else's guiding principles after 20 years of programming
Personal website as a mini-game
Staff Engineer
Founder Salaries
James' Book Summaries
Django CBV method flowchart
Tools to help children learn to code
How to size bets
Managing environment variables with Direnv
Adding italic text to iTerm2
The Psychology of Computer Programming
Moxie on web3
How to write a book
Solo founder
103 attempts to make it work
Gell-Mann amnesia effect
How to monetize a SaaS
First five minutes on a server
Adding JSON output to a CLI app
nvim.CoC
Find
Tmux sessions
Bat
Chezmoi: Part 2
Powerful Python
Multi-tenant Django webapps
The 3-2-1 backup rule
Lessons from creating a production database
Unison helper
Proxy Servers
Unison
Japanese philosophies for spending money
Uninstall all pip packages
alpine.js
Zsh commands: exec vs source
Chezmoi commands
zsh suspend or push function
Stoicism
Math explainers
Do-nothing scripts
Virtual environments and python versions
SaaS metrics that matter
Training Zones
Naming things is hard
Tove Lo - Habits
Understanding all of Python, through its built-ins
Logging Best Practices
Counter intuitive facts
How to get rich without getting lucky
Ultra-running benchmarks
Vim built-in color names
Lightning network point-of-sale
Make files
Linux performance analysis in 60 seconds
Stop reading the news
View and change settings for GCloud CLI
Google Pub/Sub
Google Cloud Storage - TTL and CORS settings
Handwritten letters at scale
The dangers of social media
Visual mathematical proofs
1 Peter 1 vs 10
9/11 and the American psyche
How doctors die
Life
Slavery
Cloud Functions Minimum Instances
nmap
1 Peter 1 vs 3
Understanding GCP charges
My dead dad's journal
1 Peter 1 vs 1
Miller CLI
Conditionally setting your git config
Daddy-Daughter To-Do List
Conway's Law
Elon Musk's Engineering Philosophy
Pen-testing web apps
Running through adversity
Starbase Tour with Elon Musk
Remote Working
Athletes, Careers, and Mental Health
WTF Python
Beach Photos
Heuristics for effective software development
Start with Finance to transform IT
The Worst Volume Control UI
Playing with Google Cloud Platform
Daughter
Moral tyranny
Upgrading Cryptographic Libraries
Startup Engineering Lessons
Poisson's Equation
Thomas Aquinas
Can an explanation of an historical event ever be completely true?
Load-testing my Web Analytics Tool
Edward Hopper's Paintings
Some experiences can be taught, but some must be lived
Georges St-Pierre Training Meta
Validating CloudFlare analytics
Proverbs 16
I would like to take some time to explore what it means to be alive
Proverbs 15
Believe half of what you see and now't of what you hear.
Django for Startup Founders
Building my own web analytics
Alfie Solomons
Bifurcation Theory
Apple's iCloud+ "VPN"
Rich
Practice
Vim Sneak
Design Patterns
Proverbs 14
Coding exercise for a technical interview
Axiom
Foxes and Hedgehogs
Pair programming using Vim
Man swallowed by whale
Git LFS
Your .bashrc doesn't have to be a mess
John Kelly finishing the 2017 Barkley Marathons.
A Project of One's Own
Proverbs 13
Choose Boring Technology
An incomplete list of skills senior engineers need
Proverbs 12
Proverbs 11
Performance Optimizations for the shell prompt
Vim spellcheck commands
Questions for good references
Lessons from 45 years in the software industry
Modeling Credit Risk
Grep only inside particular files
View a List of Keyboard Mappings in Vim
Building A Story Brand
Training → Knowledge → Confidence → Victory
Forward Email
Nested Auto Commands for Overriding Colorschemes
Vim Snippets
See where Vim is setting an option
My Life Expectancy
Globbing
More VIM Notes
Vimscript functions
Better Text Objects
Delete stuff in Vim without leaving insert mode
Global Aliases
Vim register for yanked text
ChezMoi shortcuts
Sleep
Bash Strict Mode
How to write an About Page
Domain Name Registrars
The Honest Troubleshooting Code of Conduct
Linux Filesystem Hierarchy Standard
Browser Security
Linus Torvalds
Remote Procedure Calls
An interesting blog
lsblk
Ranger File Manager
Vim Regex
Where and when will the current Bitcoin market peak?
All Known Locations of an Executable
Reading - April 2021
Learning - April 2021
Tweets - April 2021
SSH-Notes
alias to real
Chezmoi
Reorganize tmux windows
vim save sudo
The trouble with climbing higher is that eventually you lose sight of the ground.
I Leaked Credentials Onto A Public GitHub Repo
Broot
Adding Keyboard Navigation
Ansible
Github Actions
Socially Acceptable Mistakes
`du` is a tool for showing disk usage.
Safe Bash Scripting
Running a Binary in Debian
Over-Engineering this blog
Fuse Search
Creating Slowly
Arrow syntax in bash
Pretty print JSON
Vim: GoTo Tag Definition
Useful Business
Frantic Distraction
Rearrange splits in Vim
Pelican Plugin Guide
Read and Write the Same File in Bash
JSON tools
Docker Commands
Python Notes
Adding Search
Pipe a Script File into Bash
Split Long Strings
ripgrep Regret
Teaching Kids About Money
Stop Prepending sudo to Docker Commands
`cat` and a new line
Cardano: Generating Addresses
Creating Users With Sudo Permissions
Two Years Of Vim
Disk Full and Disk Usage Commands
Git LFS
Binance-Chain: Running a node
nohup
Shell Comparisons
nohup and Background Processes
File Descriptors and /dev/null
Cardano: Running a full node
Polkadot: Running and interacting with a full node
Microservices, Docker, Azure
Regrets Of The Dying
A List Of Unconnected Thoughts And Aphorisms
Notes From An Interview With Geoffrey Hinton
Questions For Interesting Conversations
Portfolio: Image Recognition
Mist
Spaarndam
Notes From "Mastering Vim Quickly"
Notes From "Powerful Python"
Mental Models I Used To Use
What's So Different About Now
Predicting the Future using Human Nature and Technology
Financial Doom And Gloom
Debugging the more_categories plugin for Pelican
Different Views For Different Users
3 Different Types Of Programming Problems
Why I Want To Write Regularly
Python: Becoming A Better Python Developer
Using Vim with large codebases
Using RSS
Notes on learning Django
Data Science vs Web Development: Larger Code Bases
Test Driven Development
Why Talk About Jesus?
API Design Principles
Principles Of Object Orientated Programming
Optimizing The Performance Of This Blog
Unix: Utilities To Analyse And Update Multiple Text Files
A New Blog Design
Product-Led Growth
The Mom Test
Obviously Awesome
How I learnt to code
Dreaming of Emacs
The 1-Page Marketing Plan
Learning to market
Pippip.Email
Founders Journal 3
Founders Journal 2
Founders Journal 1
Between Clients
Analysis of the mean and median value of transactions on 5 Blockchains
A faster zsh
Bitcoin Lightning
Sync a BTC node, quickly
Bakke-Rij
Prediction Markets
Reading: April 2018
Ry's Git Tutorial
The Bitcoin Lightning Network
How to buy Bitcoin
Live near the ocean
Pangea
Bitcoin compared to gold
Hardware Wallets
Trading digital assets
I'm a chartered accountant
Coworking in Dublin
Bitnation
Create a Multi-Signature Ethereum wallet using Parity
Macro Analysis of the Bitcoin Blockchain
Corporate London
Blockchains from the ground up: Part 2
Move
Flee
Understanding VC Investment
How to be an ambitious founder in Europe
The Lisbon Investment Summit
Blogging with Pelican: Design, Plugins, Sharing
Blockchains from the ground up: Part 1
London Rent vs. London Salaries
Introduction to the Æternity blockchain project
The Æternity ICO: My experience
Blogging with Pelican
Analysing a personal library
FakeGL: A Synthetic General Ledger and Trial Balance
Reconciliation of a trial balance to a general ledger
Spotify song history
Vim!
Autumn, BIN and $PATH
Introduction to my doctorate research - Silos
Encryption
Digital currencies: the basics
Spare time
Übersicht widget: Time Until
How to wake up early
Jupyter (iPython) notebooks + Pandas
Coursera's "Data Science Specialisation"
Übersicht widget: Time Since