Writing

Blog

Hands-on notes from the terminal — networking, containers, security tooling and the occasional editor rabbit hole.

Read: Reading an IPv4 Address
networking

Reading an IPv4 Address

192.168.255.1 belongs to 33 different networks at once, and which one you mean depends entirely on the mask. How prefixes work, which blocks are reserved, and how to split a range without leaving gaps.

  • networking
Read: What a Traceroute Actually Tells You
networking

What a Traceroute Actually Tells You

Three stars in the middle of a trace mean nothing. A slow hop is usually not the slow hop. Reading a traceroute for what it says, rather than what it appears to say.

  • networking
Read: Finding Out What Your Machine Is Talking To
networking

Finding Out What Your Machine Is Talking To

Taking a capture with tcpdump, then answering the only question that usually matters: which hosts were talking, how much moved, and which connections never completed.

  • networking
  • security
Read: Reading a Linux System with top, htop and bashtop
linux

Reading a Linux System with top, htop and bashtop

Three interactive process monitors, what each one is good for, and the keys worth remembering — sorting by memory, killing a process without hunting for its PID, and seeing disk and network at a glance.

  • linux
  • monitoring
Read: Demystifying NAT: How It Works Locally and Enhances Security
networking

Demystifying NAT: How It Works Locally and Enhances Security

What NAT actually does at the edge of your network, the security it gives you as a side effect rather than by design, what it costs you in return, and how to read the translation table on Ubuntu.

  • networking
  • security
Read: Running the Unity Editor in a Docker Container
docker

Running the Unity Editor in a Docker Container

Unity's dependency chain — Android SDK, Java SDK and the rest — is a lot to set up by hand. Three commands put the whole editor in a container instead, on any machine that runs Docker.

  • docker
  • containers
  • unity
Read: Automating Rails Deployments with Capistrano
deployment

Automating Rails Deployments with Capistrano

Capistrano turns a manual deployment into a repeatable task. Setting it up on a Rails project, defining tasks and roles, and preparing a remote server to receive releases.

  • deployment
  • ruby
  • rails
Read: Managing Docker from a Browser with Portainer
docker

Managing Docker from a Browser with Portainer

Docker has a lot of commands to remember, and forgotten containers quietly eat disk and memory. Portainer puts the whole daemon behind a UI you can run with one command.

  • docker
  • containers
Read: Building a Vim Setup Worth Using
vim

Building a Vim Setup Worth Using

A walk through my .vimrc, one setting at a time — what each option actually does — then a plugin manager, autocompletion, a file tree and a status line.

  • vim
  • linux
Read: Sending a File Inside ICMP Echo Requests with hping3
networking

Sending a File Inside ICMP Echo Requests with hping3

Ping looks like a connectivity check, but an echo request has a payload — and you can put whatever you like in it. Smuggling a text file between two VMs, then pulling it back out with tcpdump and tshark.

  • networking
  • security
Read: A Branching and Tagging Workflow for Git
git

A Branching and Tagging Workflow for Git

How to name branches, mark releases with lightweight and annotated tags, and move a feature from develop through staging to production without losing your way.

  • git
  • github