Mastodon

News from the Planet

Using `make` to compile C programs (for non-C-programmers)

Julia Evans — June 10, 2025

I have never been a C programmer but every so often I need to compile a C/C++ program from source. This has been kind of a struggle for me: for a long time, my approach was basically “install the dependencies, run make, if it doesn’t work, either try to find a binary someone has compiled or give…

read more ➔

Standards for ANSI escape codes

Julia Evans — March 07, 2025

Hello! Today I want to talk about ANSI escape codes. For a long time I was vaguely aware of ANSI escape codes (“that’s how you make text red in the terminal and stuff”) but I had no real understanding of where they were supposed to be defined or whether or not there were standards for them. I…

read more ➔

How to add a directory to your PATH

Julia Evans — February 13, 2025

I was talking to a friend about how to add a directory to your PATH today. It’s something that feels “obvious” to me since I’ve been using the terminal for a long time, but when I searched for instructions for how to do it, I actually couldn’t find something that explained all of the steps – a lot…

read more ➔

Some terminal frustrations

Julia Evans — February 05, 2025

A few weeks ago I ran a terminal survey (you can read the results here) and at the end I asked: What’s the most frustrating thing about using the terminal for you? 1600 people answered, and I decided to spend a few days categorizing all the responses. Along the way I learned that classifying…

read more ➔

What's involved in getting a "modern" terminal setup?

Julia Evans — January 11, 2025

Hello! Recently I ran a terminal survey and I asked people what frustrated them. One person commented: There are so many pieces to having a modern terminal experience. I wish it all came out of the box. My immediate reaction was “oh, getting a modern terminal experience isn’t that hard, you just…

read more ➔

"Rules" that terminal programs follow

Julia Evans — December 12, 2024

Recently I’ve been thinking about how everything that happens in the terminal is some combination of: Your operating system’s job Your shell’s job Your terminal emulator’s job The job of whatever program you happen to be running (like top or vim or cat) The first three (your operating system,…

read more ➔

Why pipes sometimes get "stuck": buffering

Julia Evans — November 29, 2024

Here’s a niche terminal problem that has bothered me for years but that I never really understood until a few weeks ago. Let’s say you’re running this command to watch for some specific output in a log file: tail -f /some/log/file | grep thing1 | grep thing2 If log lines are being added to the file…

read more ➔

Importing a frontend Javascript library without a build system

Julia Evans — November 18, 2024

I like writing Javascript without a build system and for the millionth time yesterday I ran into a problem where I needed to figure out how to import a Javascript library in my code without using a build system, and it took FOREVER to figure out how to import it because the library’s setup…

read more ➔