Oddbean new post about | logout

Notes by Julia Evans | export

 i'm thinking of writing an  "implement a toy version of HTTP in a weekend” guide, similar to https://implement-dns.wizardzines.com/, but not sure what would be fun to include

thinking of:

1. sending a simple HTTP GET or POST request over a TCP socket
2. some very very basic header/status code parsing

what would you be interested in seeing in there, if you're curious to learn more about HTTP? As usual the goal is just to write a fun throwaway implementation, not something resilient 
 what would you call a git commit that can no longer be reached from any branch or reference (for example because you ran `git commit --amend` or `git rebase`), but that you can still get to from `git reflog`?

I've considered "orphan", "dangling", and "unreachable" but none of these seem right: 
- orphan has another meaning in git
- dangling only refers to the "tip" commits
- "unreachable" means that you can't reach it at all 
 nostr:npub1upkp7fd7rc3lrjg23r8gy0wc723vze7mxlx5984ut6zurjzpf5xss4tcwy do you have a stance on Git... 
 @cc4ebfb4 i've never used mercurial and I don't really know anything about it except that it has a lot of very passionate fans 
 nostr:npub1upkp7fd7rc3lrjg23r8gy0wc723vze7mxlx5984ut6zurjzpf5xss4tcwy 
I can think of many exampl... 
 @91b15004 mostly interested in the shell script thing right now 
 nostr:npub1upkp7fd7rc3lrjg23r8gy0wc723vze7mxlx5984ut6zurjzpf5xss4tcwy would it make sense to hire... 
 @8abf771c the closest project I know to that is jj, still seems early but they're doing interesting work https://github.com/martinvonz/jj 
 nostr:npub1upkp7fd7rc3lrjg23r8gy0wc723vze7mxlx5984ut6zurjzpf5xss4tcwy 
You should interview Linus... 
 @70356141 nothing I have read by him has made me think he would be an enjoyable person to talk to tbh 
 i uh spend a lot of time thinking about whether various surprising software design choices are

a) intrinsic to the problem domain ("it turns out it DOES make sense!”)
b) made sense historically ("this made sense in 1992, but it didn't age well”)
c) just a typo/mistake (the "Referer" header)
d) related to budget/time constraints (“well, prototyping with shell scripts is fast!”)
e) cultural/organizational (“well, Google is the main funder for this project, and…”)
f) something else 
 nostr:npub1upkp7fd7rc3lrjg23r8gy0wc723vze7mxlx5984ut6zurjzpf5xss4tcwy part of it can be traced ba... 
 @c8c3ceaa how do you think that affects git's user experience? i hear this a lot but it's hard for me to see how it affects the user experience today 
 nostr:npub1upkp7fd7rc3lrjg23r8gy0wc723vze7mxlx5984ut6zurjzpf5xss4tcwy There's a lot of inconsiste... 
 @93761c39 that's definitely true, how do you think it's related to those things being shell scripts originally? feels like you could have shell scripts with consistent flags 
 this morning I'm thinking about how git's history of being built as a series of shell scripts has affected its user experience

my sense is

1) a lot of git was originally built as shell scripts
2) the user experience you can provide in a shell script is extremely limited
3) a lot of that now can't change for backwards compatibility reasons

does anyone have examples of this? will talk about how I think this affects merge conflicts in the next post

(1/?) 
 i just understood today that the reason I feel stressed out about merge commits is that you can't figure out the contents of a merge commit by looking at it with `git show`

for example in this screenshot I have two merge commits (`merge1` and `merge2`). They both have the same parents. They display the exact same way with `git show`. But they have different contents.

https://cdn.masto.host/socialjvnsca/media_attachments/files/111/999/930/147/508/928/original/b31370668435f50b.png 
 @8ceaf2ff saw a nice mention of networking for system administrators on the orange site  (though I'm sure you hear this all the time!)

https://cdn.masto.host/socialjvnsca/media_attachments/files/111/189/641/358/951/805/original/b6c52af5ddaffd53.png 
 I spent way too long working on this talk (about 6 months, though far from continuously obviously) so I'm happy people seem to like it 
 nostr:npub1upkp7fd7rc3lrjg23r8gy0wc723vze7mxlx5984ut6zurjzpf5xss4tcwy Nice, I love making one's o... 
 @c302c2e0 honestly i haven’t looked at that code in like a year and i have no idea what it’s doing, all i know is it works pretty well 
 @562e5e6c yeah my script is pretty crappy so all of those issues are not surprising. this is definitely the code I use 
 @562e5e6c the surprising thing to me is that I can get pretty good results with some pretty mediocre code 
 A while back I wanted a spellcheck, and I couldn't find one that gave me the results I wanted (because I use a lot of terminology/jargon that isn't in the dictionary). Someone suggested that I write my own spellcheck program, based on this guide by Peter Norvig, and it's actually worked really well, better than any other spellcheck I've tried  https://norvig.com/spell-correct.html

it looks like this https://gist.github.com/jvns/702a51110d55b99d6c468cde60b45dbb 
 you probably shouldn't use my spellcheck script (it's a bit of a mess) but I feel like the reason this works well is that I put together my own list of "correct" words (based on my own past writing and google n-grams) and it results in a lot fewer false positives 

feels like there must be a "real" spellcheck program out there that has tools to help you automatically assemble your own dictionary of "correct" words based on a corpus of your writing 
 nostr:npub1upkp7fd7rc3lrjg23r8gy0wc723vze7mxlx5984ut6zurjzpf5xss4tcwy how would it work when you ... 
 @82876d7b you can just buy new zines one at a time when they come out 
 nostr:npub1upkp7fd7rc3lrjg23r8gy0wc723vze7mxlx5984ut6zurjzpf5xss4tcwy Yes please.  How about a su... 
 @a04429b6 that's a great idea, I'll think about possible ways to implement that 
 @0609534c they're 8.5" x 5.5”. I'm pretty unlikely to change the paper size at this point :) 
 nostr:npub1upkp7fd7rc3lrjg23r8gy0wc723vze7mxlx5984ut6zurjzpf5xss4tcwy I would happily give you a ... 
 @674930eb aw thank you! I don't but I'll look into if I can find a way to do it 
 would folks be interested in some kind of “get print copies of every zine julia has ever written" product?

(right now there's a 13-pack for sale on the store, but it doesn't include print copies of the free zines) 
 been working on editing the transcript of the “making hard things easy" talk and I think I'll post it tomorrow https://www.youtube.com/watch?v=30YWsGDr8mA 
 nostr:npub1upkp7fd7rc3lrjg23r8gy0wc723vze7mxlx5984ut6zurjzpf5xss4tcwy I have to ask: What solutio... 
 @30947101 very simple, just sending the zines with letter mail. The weight limit for letter mail is pretty low though so I think it only works if you're ordering 1 zine. 
 @b2f27659 yeah people always suggest that! it sounds like a cool idea but I have never found any viable way to do it for various reasons 
 @b2f27659 printing is easy. the main problem is that I use a really incredible US-based shipping service  (https://www.whitesquirrel.com/) to handle fulfillment and I'm not aware of any similar overseas services. 
 nostr:npub1upkp7fd7rc3lrjg23r8gy0wc723vze7mxlx5984ut6zurjzpf5xss4tcwy Had to interrupt watching y... 
 @f9e8a881 haha I love it 
 nostr:npub1upkp7fd7rc3lrjg23r8gy0wc723vze7mxlx5984ut6zurjzpf5xss4tcwy "stitched together okay" is... 
 @ae28eec1 that's great to hear! i guess the video editors did incredible work :) 
 nostr:npub1upkp7fd7rc3lrjg23r8gy0wc723vze7mxlx5984ut6zurjzpf5xss4tcwy was a great talk! 😄 Miss... 
 @6a66e428 aw thank you! definitely didn't get a chance to talk to everyone I wanted to 
 my talk from Strange Loop "Making Hard Things Easy" is up! https://www.youtube.com/watch?v=30YWsGDr8mA 
 How did we end up with "reverse chronological" as the desired reading order? Actual chronological... 
 @Josh Triplett the fact that ivory lets me read my feed in chronological order is probably the main reason i pay for it 
 @cd901075 i love zulip (i’ve used it every day for 10 years) but my impression is that it can be a bit hard to use for casual/infrequent users, probably because it’s a small company with less designers. It definitely has a lot of UI stability over time which I really appreciate as a long time user 
 almost 10,000 people are subscribed to get comics from me every saturday! who wants to help us get over 10,000?

you can sign up here: https://wizardzines.com/saturday-comics/

https://cdn.masto.host/socialjvnsca/media_attachments/files/111/132/503/614/011/429/original/008899e924fa3daa.jpeg 
 @0d50376e i did not understand any of those words but maybe if you write a post about it I will :) 
 nostr:npub1upkp7fd7rc3lrjg23r8gy0wc723vze7mxlx5984ut6zurjzpf5xss4tcwy it's entirely possible to "... 
 @0d50376e i'd love to read that article! when i talk about avoiding async rust i'm talking about programs that interact with networking (like for example a program that captures packets) but aren't very performance sensitive 
 @0d50376e this might be a bad question but as someone who finds async rust confusing and who (I think) has no real need to use it, do you think there's a reason for me to learn about async rust? 

i've been trying on and off for years to find a small subset of rust that I can actually get comfortable with and I haven't yet been able to figure out which parts of Rust I want to learn vs ignore 
 @cb86276c i feel like there’s a certain kind of guy who comes online to argue with strangers 
 Anyone have resources for effectively doing code review? Both as a reviewer and a reviewee? Pleas... 
 @cd901075 asked this a while back and got some great responses https://mastodon.social/@b0rk/109485838486742920 
 nostr:npub1upkp7fd7rc3lrjg23r8gy0wc723vze7mxlx5984ut6zurjzpf5xss4tcwy i just started reading abou... 
 @13741295 yeah that’s really cool 
 has anyone tried using the 'git undo' from the git-branchless project? https://github.com/arxanas/git-branchless

a general "undo" feature for git seems like such a cool idea and I'm curious about whether it works well in practice 
 GitUp (https://gitup.co/) also seems to have a nice undo feature, though it only supports Mac OS 
 nostr:npub1upkp7fd7rc3lrjg23r8gy0wc723vze7mxlx5984ut6zurjzpf5xss4tcwy Now you have everybody wond... 
 @0d3a7e94 here are the contents, your guess is as good as mine what the point of this was supposed to be

https://cdn.masto.host/socialjvnsca/media_attachments/files/111/066/930/221/073/041/original/b2b70047924810d1.png 
 nostr:npub1upkp7fd7rc3lrjg23r8gy0wc723vze7mxlx5984ut6zurjzpf5xss4tcwy apologies, deleted it. Tota... 
 @5d4401ce no worries :) 
 nostr:npub1upkp7fd7rc3lrjg23r8gy0wc723vze7mxlx5984ut6zurjzpf5xss4tcwy Either of the two on the fa... 
 @5d4401ce thank you but I really meant it when I said I didn't want opinions :) 
 we were thinking about different ways to illustrate "HEAD" today and uh it's going extremely slowly

(not looking for opinions on this one, I have too many opinions of my own already :))

https://cdn.masto.host/socialjvnsca/media_attachments/files/111/058/837/866/614/693/original/49f3455243569735.png 
 nostr:npub1upkp7fd7rc3lrjg23r8gy0wc723vze7mxlx5984ut6zurjzpf5xss4tcwy I cannot strongly enough ad... 
 @73f7ecba haha I just ran this is one of my personal repos and this is what I got

(it's very good on a real repo though)

https://cdn.masto.host/socialjvnsca/media_attachments/files/111/058/074/725/233/290/original/c4e1fbbc848f28cd.png 
 nostr:npub1upkp7fd7rc3lrjg23r8gy0wc723vze7mxlx5984ut6zurjzpf5xss4tcwy Oh hey, I have a storygraph... 
 @c3580d6f thank you!! 
Event not found
 @33cb33d5 i actually did post it to mastodon, it was just a while ago https://social.jvns.ca/@b0rk/111920508523737165 
Event not found
 @c8c3ceaa thank you! 
Event not found
 @af0cabc9 thanks for this, it made me look up the origin of that phrase and ugh

(from wikipedia)

https://cdn.masto.host/socialjvnsca/media_attachments/files/112/083/822/329/949/018/original/9e18714dba1addca.png 
Event not found
 @8ceaf2ff wait openssl was a personal toy??? I had no idea 
Event not found
 @b2f27659 yeah people always suggest that! it sounds like a cool idea but I have never found any viable way to do it for various reasons 
Event not found
Event not found
 (the way we solved expensive international zine shipping was the simplest possible thing: just use letter mail! put a zine in an envelope with a stamp. It took a while to work out the logistics though.) 
Event not found
 @6c1d5ee9 you can sign up for https://wizardzines.com/zine-announcements/ to get an email when it's out, in a week! 
Event not found
 @8d35f702 i think it's really incredible how well DNS has held up considering that it was designed in 1983 
Event not found
 @562e5e6c yeah my script is pretty crappy so all of those issues are not surprising. this is definitely the code I use