Avatar
Julia Evans
26cad6f140bf86de9c26b7c15419cab1aebdd7086358d26aa2d750e21cf3bf2e
programming and exclamation marks I have DMs muted from people I don’t follow.

nostr:npub1etu4s7lu6vgzkpcw7c6efyzu2tl2t4hdqggw7fwqdptdq6ycekzsyhc4a7 yeah making fun of people for not using the command line is silly, IMO people should explain what they see as being the actual benefits or shut up :). Often a GUI is fine.

uh oh I broke my nix, looks like I need to go on another Adventure Into Understanding Nix Internals so that nix will allow me to install packages again

(I think upgrading my nix channel did something bad, also don't tell me that I shouldn't be using ‘nix-env’ :) )

nostr:npub1upkp7fd7rc3lrjg23r8gy0wc723vze7mxlx5984ut6zurjzpf5xss4tcwy I had tried the switch to Ubuntu years ago and it was too rocky - it's a LOT smoother now, with just enough rough spots to present a pleasant challenge/stretch.

Plus, given Valve's work on the SteamDeck and their Proton runtime, gaming on Linux has advanced by leaps and bounds.

nostr:npub18c7wjmr8txk9u3xzrxl5rsx8mpt4dr84nyluufn4qg4x9xnar52qller9d that's awesome — I started using debian in 2004 and it was a nightmare haha, i could only do it because i was 16 and had nothing else to do with my time. I love that you can play games on Linux now!

Replying to Avatar Julien

nostr:npub1upkp7fd7rc3lrjg23r8gy0wc723vze7mxlx5984ut6zurjzpf5xss4tcwy I found the interactive cheat approach interesting. For example :

https://github.com/cheat/cheat

Because it became trivial to make your own with the command you need. And then it helps remember it.

But for the pipe mechanism or AWK, books is what helped me most. For example from A. Robbins, O'Reilly.

nostr:npub1mgje8p0llyjx7gf6ysxsqyx800qjcul7nrudleawz3kvvzf2dwysqqzevw this is really cool, I'd never seen this editable cheat sheet tool

Replying to e69b5e12...

nostr:npub1upkp7fd7rc3lrjg23r8gy0wc723vze7mxlx5984ut6zurjzpf5xss4tcwy i've been using th command line for a bit, but in the last 2-3 years i've been more careful about what i have on my .zshrc, keeping it in sync across machines with a git repo, etc

encoding best practices/shortcuts as aliases and functions has helped me better understand how the shell works

i looked up your dotfiles repo sometime ago but noticed it hadn't been updated in a while, i was curious what b0rk could teach me through those files

nostr:npub1s2rk67lgfeyet57at6z7umrhualmdtdls5qdx7ykpx54gen6wv2suh66tx maybe i’ll update it! the main difference between now and 10 years ago is i’ve simplified a lot, i just have a vimrc and a config.fish with some aliases

nostr:npub1upkp7fd7rc3lrjg23r8gy0wc723vze7mxlx5984ut6zurjzpf5xss4tcwy This question isn't for me, but I imagine GitHub and co tending to do things via cmd, as well as recent AI tools using Discord as a cmd, might be two reasons "the youths" start to use that sort of interface, nowadays.

nostr:npub13ela6f8nk0lqg5p3hs37yfevwl83znj05r3v28ju0stmruua6fsqq6w3yd i’m looking for people’s actual experiences, not speculation

nostr:npub1upkp7fd7rc3lrjg23r8gy0wc723vze7mxlx5984ut6zurjzpf5xss4tcwy Pushing myself out of my comfort zone and moving to linux for both personal rig and workstation.

Also, following my whimsy to play with fun command line toys like No More Secrets. https://github.com/bartobri/no-more-secrets

nostr:npub18c7wjmr8txk9u3xzrxl5rsx8mpt4dr84nyluufn4qg4x9xnar52qller9d that’s cool — how’s linux been for you? always curious about what it’s like to start using linux in the 2020s

Replying to 93b246ed...

nostr:npub1upkp7fd7rc3lrjg23r8gy0wc723vze7mxlx5984ut6zurjzpf5xss4tcwy yeah I bet. Was that recreating work you had done on Twitter?

nostr:npub1vaynp6armrryyqr92zmw0vg4wvy7f56uhju5hx7rh5syzyt5h24spmarep I think so, on twitter it was more gradual and organic because my following grew slowly

Replying to 93b246ed...

I wosh nostr:npub1zr0z2mhtma9xe33688qz8mrfz4syw9ejgrg3583ytvn469ky26ysaqf43p’s Block Party were available here, and messages about how unwelcoming Mastodon can be could be accompanied with “sign up here to help address this problem by supporting people experiencing abuse.” (I know I am oversimplifying the possible benefits.) As it is, abuse is helping limit the market size here for services that could help. https://mastodon.social/@grimalkina/110838552819986955

nostr:npub1vaynp6armrryyqr92zmw0vg4wvy7f56uhju5hx7rh5syzyt5h24spmarep i’ve been doing a lot of gardening of my mastodon following (lots of mutes/blocks and some boundary setting posts) and i think i’m finally getting my replies into a good state but it’s been a Process

if you just started getting comfortable with the command line in the last year or three — what helped you?

(no need to reply if you don’t remember, or if you’ve been using the command line comfortably for 20 years — this question isn’t for you :) )

nostr:npub1upkp7fd7rc3lrjg23r8gy0wc723vze7mxlx5984ut6zurjzpf5xss4tcwy really neat deep-dive on process execution; I kinda know vaguely things in that area but not nearly to this specificity. So I don't have anything to add as far as additional tooling, but as a teeny "proofreading" contribution, I noticed a small typo on the 4th-ish paragraph of item 6: an extra "it" in the "All of this is happening..." sentence.

Replying to Avatar Jeff Graham

nostr:npub1upkp7fd7rc3lrjg23r8gy0wc723vze7mxlx5984ut6zurjzpf5xss4tcwy First, I really appreciate your research, distillation, and ability to communicate these topics so well! Thanks!

Have you done anything to capture the pid at launch and filter lsof with that pid? I'm wonder if that would give any insight into areas you want more coverage in. Timing is probably a huge challenge with that method though.

Replying to Avatar RSNikhil

nostr:npub1upkp7fd7rc3lrjg23r8gy0wc723vze7mxlx5984ut6zurjzpf5xss4tcwy Thanks for this post. I would really love to see a complementary post: 'Behind "write()" on Linux': system calls, despatch to device, device drivers, UARTs and terminal windows, ...

Of course, 'write()' is a huge topic, but just restrict it to 'write (1, "Hello World", 12)'

Thanks!

PS: thanks for all the wonderful blogs and zines!

nostr:npub1cucnult5nvw5g69a3um3gwv8pzum8gr093ere63fv08cxdq5ru0qydejv0 i don't know anything about that but I would love pointers!

really appreciate all of the comments/additions/corrections on this "behind hello world" post, would still welcome more. I think the main thing I want to add is a little more about terminals/file descriptors but I haven't figured out how to spy on the internals of how all that works in a useful way.

Replying to 199b1131...

nostr:npub1upkp7fd7rc3lrjg23r8gy0wc723vze7mxlx5984ut6zurjzpf5xss4tcwy As far as "Linux spy tools", `bpftrace` is a neat one.

The *really* arcane things happen lower in the stack here. Architecture specific system call ABI, how a trap/syscall instruction triggers a context switch into kernel mode, how the kernel schedules IO operations, sends commands to drivers, how they actually communicate with hardware with mmio/interrupts/DMA/etc.

But then you could have a full length book just on how printing hello world works.

nostr:npub1ytaj77p3h2arscwmuuzgh48e4szkwnlwyval7zqn8sy52hprwjas4fayt9 great idea -- thinking out loud, maybe I could trace some stuff in the kernel, like something in the ext4 filesystem code where it actually flushes the write to disk, or something earlier like when it calls into the interpreter?

Replying to Benj Azose

nostr:npub1upkp7fd7rc3lrjg23r8gy0wc723vze7mxlx5984ut6zurjzpf5xss4tcwy How can you tell what the magic numbers are for a file type? Is it always just the extension name?

nostr:npub1swscnhccppqs5u5hz3alh2sjg8vmyvy0zrcesmztktt4n2ln2zdqg34ds4 it depends on the file type, you can google "gzip magic number" for example to find out the magic number for gzip