5 ms·
(Let me start clarifying that this is not at all a criticism of the author) I am usually amused by the way really competent people judge other's context. This
by torben-friis 11mo ago
(Let me start clarifying that this is not at all a criticism of the author)
I am usually amused by the way really competent people judge other's context.
This post assumes understanding of:
- emacs (what it is, and terminology like buffers)
- strace
- linux directories and "everything is a file"
- environment variables
- grep and similar
- what git is
- the fact that 'git whatever' works to run a custom script if git-whatever exists in the path (this one was a TIL for me!)
- irc
- CVEs
- dynamic loaders
- file priviledges
but then feels important to explain to the audience that:
>A socket is a facility that enables interprocess communication
- dwedge 11mo agoI found it interesting that they know how to use strace, but not how to list open files held by a process which to me seems simpler. Again, not criticism just an observation and I enjoyed the article
- parliament32 11mo agoGiven the "(hi Julia!)" immediately after the strace shenanigans, I interpreted this as a third-party hint; the author most likely had not used strace before. The author is both an example of and an example for how we can get caught in "bubbles" of tools/things we know and use and don't, and blog posts like this are great for discovery (I didn't know about git invoking a binary in the path like his "git re-edit", for example, until today).
- dwedge 11mo agoI discovered that by accident, I had a script called git-pr that opened a pull request with github using the last commit message and then pushed it to slack for approval. I was trying to rewrite it to add a description and wondered why "git pr" pushed an empty message to slack
- mjd 11mo agoI assure you that the author has been using strace since it was invented in the early 1990s.
- mjd 11mo agoWhen are you planning to run lsof? Emacsclient exits immediately when it can't find the socket.
- goranmoomin 11mo agoI haven't even realized that while I was reading the article, but it is amusing! Though one explanation is that I think for the other stuff that the writer doesn't explain, one can just guess and be half right, and even if the reader guesses wrong, isn't critical to the bug — but sockets and capabilities are the concepts that are required to understand the post. It still is amusing and I wouldn't have even realized that until you pointed that out.
- hakunin 11mo agoAs a blogger who makes similar assumptions, I think we depend on how a lot of us from that time "grew up" similarly. Sockets came to relevance later in my career compared to everything else listed here.
- torben-friis 11mo agoThat might be part of it, yes. As someone younger, ports and sockets appeared very early in my learning. I'd say they appeared in passing before programming even, as we had to deal with router issues to get some online games or p2p programs to work. And conversely, some of the other topics are in the 'completely optional' category. Many of my colleagues work on IDEs from the start, and some may not even have used git in its command line form at all, though I think that extreme is more rare.
- Thorrez 11mo agogit was released in 2005. >The term socket dates to the publication of RFC 147 in 1971, when it was used in the ARPANET. Most modern implementations of sockets are based on Berkeley sockets (1983), and other stacks such as Winsock (1991). https://en.wikipedia.org/wiki/Network_socket https://en.wikipedia.org/wiki/Network_socket
- kragen 11mo agoI read RFC 147 the other day, and it turns out that by "socket" it means "port number", more or less (though maybe they were proposing to also include the host number in the 32-bit "socket", which was quietly dropped within the next few months). Also Berkeley sockets are from about 01979, which is a huge difference from 01983.
- Thorrez 11mo agoWikipedia is pretty convinced Berkeley sockets are from 1983[1]. Here's another site saying the same thing[2]. Do you have a source saying 1979? [1] https://en.wikipedia.org/wiki/Berkeley_sockets https://en.wikipedia.org/wiki/Berkeley_sockets [2] https://medium.com/theconsole/40-years-of-berkeley-sockets-833d38666382 https://medium.com/theconsole/40-years-of-berkeley-sockets-8...
- addled 11mo agoI mean, the title is a quote from Buckaroo Banzai. Lack of context is part of the fun!
- kragen 11mo agoTo be fair, it does link the CVE, so if you don't know what a CVE is, you can click the link. I agree that it's amusing.
- mr_toad 11mo agoMost people these days are using http and don’t need to touch sockets. (Except for the people implementing http of course).
- derefr 11mo agoAll of the things you listed are ops topics. But sockets are a programming concept. I would expect a person with 10+ years of Unix sysadmin experience — but who has never programmed directly against any OS APIs, “merely” scripting together invocations of userland CLI tools — to have exactly this kind of lopsided knowledge. (And that pattern is more common than you might think; if you remember installing early SuSE or Slackware on a random beige box, it probably applies to you!)
- jayzalowitz 11mo agocongratulations on being the highest emdash users of hacker news, I totally get why now.
- ericmcer 11mo agoThat feels like part of why some juniors are so confident while more senior engineers are plagued with self-doubt. Juniors know how much they have learned whereas a 10+ year senior (like the author) forget most people don't know all this stuff intuitively. I still will say stuff like "yeah it's just a string" forgetting everyone else thinks a "string" is a bit of thread/cord.
- kragen 11mo agoI forget that people think strings are different from sequences of bytes.
- sfink 11mo agoI didn't know that at some point, then I knew that and found it obvious, and now I don't know it again. Strings are very very not sequences of bytes. Strings are a semantic thing. There may be a sequence of bytes in some representation of a particular string, but even then those bytes are not enough to define a string without other stuff. An encoding, at the very least. But even then, there are many things that could be described as a "string". A sequence of code points, perhaps? Or scalar values? Grapheme clusters? Not to mention that you may not even have a linear sequence of bytes at the bottom level. You might have a rope (cons cell), or an intern pointer, or...
- kragen 11mo ago[flagged]
- kragen 11mo ago(Reposting because original comment was "flagged".) This is a profoundly stupid kind of argument. There isn't even an objective truth you could conceivably convince someone of. There's just how you're choosing to use the word in conflict with a preexisting convention, which marks you as part of some social group, just like "this slaps", "skibidi", "rad", or "whenever". The preexisting convention isn't some apprehension of objective truth either. It's just an arbitrary tradition, like the meaning of any word. People who are using the word in the older sense are usually not mistaken. At worst, they're your political enemies, but often they aren't even that; they just have experiences you don't. Attempting to persuade them, as you are doing, can only have the effect of further narrowing your intellectual horizons—even in the unlikely case that you are successful, but especially in the far more common case where they try to avoid you after that. I recommend more curiosity and less crusading. (In the rare case where someone is mistaken, it's sufficient to say "I meant a Unicode string" or "but we're iterating over codepoints, not bytes," but such mere clarification is not what you're up to.)
- Retric 11mo agoI found that specific clarification useful while everything else was easy to follow. It’s not that I was unaware that’s how Unix worked here, just that I rarely think of sockets in that context.
- jsrcout 11mo agoYep. The Curse of Knowledge is a real thing.
- mjd 11mo agoIt's just poor editing. The author started with one idea about the audience, before he realized that it might not be possible to write this article for that audience. Then he didn't go back to clean it up afterwards.
- deleted 11mo ago[deleted]