Fear makes you a worse programmer

Continue reading


@jvns.ca | 2 years ago

Blog about what you've struggled with

Continue reading


@jvns.ca | 2 years ago

How to look at the stack with gdb

Continue reading


@jvns.ca | 3 years ago

What is the OSI model?

Continue reading


@jvns.ca | 3 years ago

I put all of my comics online!

Continue reading


@jvns.ca | 3 years ago

Notes on building debugging puzzles

Continue reading


@jvns.ca | 3 years ago

What problems do people solve with strace?

Continue reading


@jvns.ca | 3 years ago

What problems do people solve with strace?

Continue reading


@jvns.ca | 3 years ago

A tool to spy on your DNS queries: dnspeep

Continue reading


@jvns.ca | 3 years ago

Get better at programming by learning how things work

Continue reading


@jvns.ca | 3 years ago

Things your manager might not know

Continue reading


@jvns.ca | 3 years ago

A little tool to make DNS queries

Continue reading


@jvns.ca | 3 years ago

How to teach technical concepts with cartoons

Continue reading


@jvns.ca | 3 years ago

Firecracker: start a VM in less than a second

Continue reading


@jvns.ca | 3 years ago

Server-sent events: a simple way to stream events from a server

Continue reading


@jvns.ca | 3 years ago

Daily blog posts about my time at RC

Continue reading


@jvns.ca | 3 years ago

Docker Compose is nice

Continue reading


@jvns.ca | 3 years ago

2020: Year in review

Continue reading


@jvns.ca | 3 years ago

How I write useful programming comics

Continue reading


@jvns.ca | 3 years ago

Day 20: trying to figure out how Google Cloud IAM works

Continue reading


@jvns.ca | 3 years ago

An attempt at implementing char-rnn with PyTorch

Continue reading


@jvns.ca | 3 years ago

New zine: Hell Yes! CSS!

Continue reading


@jvns.ca | 3 years ago

Day 10: Training an RNN to count to three

Continue reading


@jvns.ca | 3 years ago

Day 9: Generating a lot of nonsense with an RNN

Continue reading


@jvns.ca | 3 years ago

Day 8: Start with something that works

Continue reading


@jvns.ca | 3 years ago

Day 5: drawing lots of faces with sketch-rnn

Continue reading


@jvns.ca | 3 years ago

How do you write simple explanations without sounding condescending?

Continue reading


@jvns.ca | 3 years ago

Day 3: an infinitely tall fridge

Continue reading


@jvns.ca | 3 years ago

Day 2: Rails associations & dragging divs around

Continue reading


@jvns.ca | 3 years ago

Day 1: a confusing Rails error message

Continue reading


@jvns.ca | 3 years ago

A new way I'm getting feedback on my zines: beta readers!

Continue reading


@jvns.ca | 3 years ago

I'm doing another Recurse Center batch!

Continue reading


@jvns.ca | 3 years ago

A few things I've learned about email marketing

Continue reading


@jvns.ca | 3 years ago

Ninja: A simple way to do builds

Continue reading


@jvns.ca | 3 years ago

How to answer questions in a helpful way

Continue reading


@jvns.ca | 3 years ago

Why do we use the Linux kernel's TCP stack? (2016)

Continue reading


@jvns.ca | 3 years ago

Blogs Julia Evans Like

Continue reading


@jvns.ca | 3 years ago

Wizard Zines' first print run: Help! I have a Manager!

Continue reading


@jvns.ca | 3 years ago

Implementing 'focus and reply' for Fastmail

Continue reading


@jvns.ca | 3 years ago

Some possible future zines

Continue reading


@jvns.ca | 3 years ago

Some more CSS comics

Continue reading


@jvns.ca | 3 years ago

An attempt to make a font look more handwritten

Continue reading


@jvns.ca | 3 years ago

Some CSS comics

Continue reading


@jvns.ca | 3 years ago

When your coworker does great work, tell their manager

I’ve been thinking recently about anti-racism and what it looks like to support colleagues from underrepresented groups at work. The other day someone in a Slack group made an offhand comment that they’d sent a message to an engineer’s manager to say that the engineer was doing e … | Continue reading


@jvns.ca | 3 years ago

So you want to be a wizard [pdf]

Continue reading


@jvns.ca | 3 years ago

scanimage: scan from the command line!

Here’s another quick post about a command line tool I was delighted by.Last night, I needed to scan some documents for some bureaucratic reasons. I’d never used a scanner on Linux before and I was worried it would take hours to figure out. I started by using gscan2pdf and had tro … | Continue reading


@jvns.ca | 3 years ago

Twitter summary from 2020 so far

Hello! I post a lot of things on Twitter and it’s basically impossible for anyone except me to keep with them, so I thought I’d write a summary of everything I posted on Twitter in 2020 so far.A lot of these things I eventually end up writing about on the blog, but some of them I … | Continue reading


@jvns.ca | 3 years ago

saturday comics: a weekly mailing list of programming comics

Hello! This post is about a mailing list (Saturday Comics) that I actually started a year ago. I realized I never wrote about it on this blog, which is maybe better anyway because now I know more about how it’s gone over the last year!I think the main idea in this post is probabl … | Continue reading


@jvns.ca | 3 years ago