HNHacker News
TopNewBestAskShowJobs

gwynforthewyn

329 karma · joined August 29, 2023

submissionscomments
gwynforthewyn··on Learning about "The Unix Time-Sharing System"
The timeline you're presenting matches what I recall, also. Nice!

That tidbit about .S vs .a is a lovely detail. "A Research Unix Reader" has other cultural details called out that're similar - https://doc.cat-v.org/unix/unix-reader/A.Research.Unix.Reade.... Two of my favourites are the idea that originally a shell script couldn't be part of a pipeline ("programs that were likely to read from shell scripts, especially sh and ed, were made to read their input one character at a time. It was impossible to pipe into a shell script because the standard input was already dedicated to the script. For the same reason a program in a shell script could not take input from a terminal except when given the terminal’s real name.") and this note from the man page for sort v1:

> A bug note in join(1) declares, ‘‘The [field-specification] conventions of join, sort, comm, uniq, look and awk(1) are wildly incongruous.’’ Although these programs are often used together, they remain, like American weights and measures, sturdily eccentric.

I remember thinking that commands were weirdly unsimilar as I was first learning them; it took this many years for me to see one of the early authors wrote an oopsie about them :)

gwynforthewyn··on Learning about "The Unix Time-Sharing System"
C wasn't _later_, but perhaps you're misrecalling when Thompson had his Berkley sabbatical?

The quickest source I can find this moment for my claim is an interview with Ken Thompson in IEEE magazine called "Unix and Beyond: An Interview with Ken Thompson". Here's the quote, "At one point, I took BCPL from Martin Richards at MIT and converted it into what I thought was a fairly straight translation, but it turned out to be a different language so I called it B, and then Dennis took it and added types and called it C." You can read the whole thing at https://ieeexplore.ieee.org/document/762801 (or https://www.cs.princeton.edu/courses/archive/spring03/cs333/... if you prefer plain text).

When I write the newsletter, I'm _fairly_ sure one of Thompson's big interviews on YouTube has him call this out more clearly, but if I'm misrecalling I'll be sure to write exactly what I can figure out and where I'm sourcing the ideas from.

The specific Dennis Ritchie essay that I was referring to, though, is https://www.nokia.com/bell-labs/about/dennis-m-ritchie/portp... - "Portability of C Programs and the UNIX System". He coauthored it with Stephen Johnson, who can count Yacc amongst his many contributions to Unix.

gwynforthewyn··on Learning about "The Unix Time-Sharing System"
I <3 the BSDs, and they're the reason that the quote from "A Research Unix Reader" stuck in my memory! I started on the linuxes, pre-systemd by many years, and remember system v init levels seeming straightforwards but weird. When I switched to FreeBSD and saw /etc/rc.local, it made far more sense to me. I never even _thought_ about what 'rc' might mean, though.

Seeing the quote from Doug McIlroy many years later lodged in my brain as answering a question I didn't even have, and I've been looking for a good reason to use it ever since.

There's a lot of cool small details like that in so many early white papers about Unix; I'm looking forwards to working through a good number of them over the next 12 months. I think next I'll look at Dennis Ritchie's paper on the impact of migrating Unix from assembly to C. It may give me good opportunity to cover the B->C change as background, which is fascinating to see.

gwynforthewyn··on Learning about "The Unix Time-Sharing System"
I'm the writer of this essay.

My subject is some details surrounding the first white paper that Bell Labs published about Unix was "The Unix Time-Sharing System". I wrote what Ken Thompson was doing in between the end of Multics but before he found the "little used PDP-7" that he wrote Unix on, the difference between opening files on Multics and Unix, and what the "comfile" mentioned in the paper is.

I wrote this without AI involvement; I follow Unix history because I love knowing what the history is and what I can learn from it, and I love showing others these sorts of cool details.

I'd love to hear any feedback you might have :)

gwynforthewyn··on Intriguing stories in computer science
Sadly, this one's a myth. If you check the wikipedia page for Bug as an engineering term (https://en.wikipedia.org/wiki/Bug_%28engineering%29#History), its usage is traced back to the 1870s.
gwynforthewyn··on We Are Forking dotenvy into dotenv-ng
Sort of? It definitely does what's needed, but it also removes any additional environment variables that were set, unless they're in your shell initialisation files.

I'm not trying to persuade that these tools are essential or anything, just highlighting that there's a few small details some take care of that're fairly nice.

gwynforthewyn··on We Are Forking dotenvy into dotenv-ng
You're not wrong, but there's a small detail that your shell function doesn't solve for: unloading the environment variable once it's no longer needed.

If you maintain one shell per process-that-needs-a-secret-in-the-env then it doesn't matter, but if you're using long-running shells then direnv can load and unload env vars. It also gives you a nice little heads-up that it loaded/unloaded variables.

gwynforthewyn··on Learning Sed or Using Claude?
I've never even _heard_ of Documenters Work Bench. Looks like it cost about 2 thousand in the late 80s - https://www.nokia.com/bell-labs/about/dennis-m-ritchie/licen...

Any chance you've got any other older unix nuggets that come to mind?

gwynforthewyn··on Learning Sed or Using Claude?
I’ve been reading the 1977 Bell Labs Journal that collected everything written about UNIX up to that point. Seeing how much of its history was intimately tied to text processing and document layout was really mind-bending. I’d always assumed writing programs was Good Enough, but it was only once Unix started being used for real business at AT&T by laying out patent filing documentation that they got money for the PDP-11, which turned out to be a very important development.

It’s in reading that stuff that I grew To appreciate troff, nroff and the whole runoff family, and how CTSS was really astonishingly influential.

gwynforthewyn··on Learning Sed or Using Claude?
Author here. I don't know if we'll be writing shell scripts in five years for our jobs, but I do know that spending a few minutes writing sed makes me feel connected to my tribe of linuxy people with a love of unix history.

I also know that thinking about pattern matching is fun, it's a little puzzle solved with a skillset that transfers to other cli tools.

Post also opens with a classic interview question I've used for years: no ls on the box, five ways to list the directory tree you're in. A handful of answers at the bottom :)

gwynforthewyn··on Prevent cognitive debt by manually retyping LLM-generated code
We’ve been hearing the drumbeat that these models are already better than $INVENT_A_NUMBER percentage of developers at $SOME_SMALL_TASK for several years. I haven’t seen that it’s actually true yet personally.

What I do see is that the frontier models can get easy stuff mostly right, but they can’t maintain a small codebase such that it behaves correctly across several mutations. When the going requires a lot of context, tests get rewritten to not do anything and features that manipulate similar data get divergent implementations. That’s fine for goofing around personally, but I see vibe coders getting their asses handed to them when they mistake that for a well maintained codebase and try to sell a product.

Please, don’t mistake an impressive technology for a miracle; there will still be people needed to make codebases healthy for a long time to come.

gwynforthewyn··on Where Your Mind Goes When You Stop
Why would we trust a screenshot from Claude as evidence of how to deal with mental health issues? Surely Claude’s training matter is dominated by magazines and pop-psychology rather than thorough expert research?
gwynforthewyn··on Show HN: SpinWin – A macOS menu bar app to visually rotate or spin any window
This reminds me of when wobbly windows were the big thing in linux. It was good plain fun back then, it seems fun again with this.

Drawing apps do regularly allow for canvas rotation, so I’m sure this’ll turn out to be useful for some class of application that I’m not considering.

gwynforthewyn··on A GenAIration Lost in Space
I think I'm finally understanding what bothers me in LLM usage: it's the people who just want a nice little human-ingenuity community seeing it get further away from them. I wrote this one for them, so they know they're seen.

We're all in this tooling & community evolution together.

gwynforthewyn··on I’ve built a virtual museum with nearly every operating system you can think of
I imagine the author's using OpenSIMH (https://opensimh.org) or something similar, so it'd be an emulated CPU running the userlands.

I have a container that runs a 4.3 BSD userland using opensimh; it's not super hard to set up, just takes a bit of patience and willingness to learn how opensimh works.

gwynforthewyn··on Newton's law of gravity passes its biggest test
Of course it can be that this is the case. There are predictions from the dark matter hypothesis, though, that have been testable. For example, there're some of the asymmetries in the cosmic microwave background that are explained presently by the dark matter hypothesis.

Something that's worth bearing in mind is that "dark matter" doesn't actually mean "totally new never before seen thing" it means "we don't know what this matter is". So, for example, a candidate that wouldn't be super novel but could fit the bill is microscopic black holes. In that sense, the hypothesis is more mundane than it might seem.

gwynforthewyn··on We automated everything except knowing what's going on
Honestly, the post itself reads very generated, very rage bate. I have so much more faith in us and our hobby/industry than this blog post.

There are reports of industries trying to use these tools to generate as much as possible, sure. There are also people generating bad art and unpleasant prose and using llms to generate nonsense they don’t pay attention to.

I don’t see why that implies that you or I lost interest in tinkering with toys we build. If I want to spend 4 weeks understanding oauth a little better by implementing a client, I still can and I still do.

Automating our builds absolutely didn’t create a cathedral of complexity while nobody noticed. It did mean I can open an Free Software project, read the build file and understand how to build the thing. That’s the opposite of generating complexity.

I worry about our future generations as much as the next person, but this low effort pabulum doesn’t represent the thoughtful industry and hobby that I love.

gwynforthewyn··on Train Your Tenacity
I had the unusual experience of Claude encouraging me to give up, so I wrote about what I think of that.
gwynforthewyn··on Show HN: I created a tool to design and create foamcore inserts for boardgames
That site's so damn responsive! What are you using to build it?
gwynforthewyn··on Vitest Browser Mode Guide
More options in the ecosystem seems better, but I was surprised to see this in the linked vitest docs:

> However, to run tests in CI you need to install either playwright or webdriverio. We also recommend switching to either one of them for testing locally instead of using the default preview provider since it relies on simulating events instead of using Chrome DevTools Protocol.

gwynforthewyn··on Claude Post but Useful
I keep seeing those "I vibe coded with Claude using this one simple trick..." blog posts. I decided to write a useful one that tells you how I made progress with Claude.
gwynforthewyn··on The LLM Lobotomy?
What's the conversation that you're looking to have here? There are fairly widespread claims that GPT-5 is worse than 4, and that's what the help article you've linked to says. I'm not sure how this furthers dialog about or understanding of LLMs, though, it reads to _me_ like this question just reinforces a notion that lots of people already agree with.

What's your aim here, sgt3v? I'd love to positively contribute, but I don't see how this link gets us anywhere.

gwynforthewyn··on AI doesn't lighten the burden of mastery
I've been seeing teammates go from promising juniors to people who won't think, and I've tried hard here to say what I think they're going wrong.

Like the great engineers who came before us and told us what they had learned, Rob Pike, Jez Humble, Martin Fowler or Bob Martin, it's up to those of us with a bit more experience to help the junior generation to get through this modern problem space and grow healthily. First, we need to name the problem we see, and for me that's what I wrote about here.

gwynforthewyn··on I watched Gemini CLI hallucinate and delete my files
I read over the author's analysis of the `mkdir` error. The author thinks that the abundance of error codes that mkdir can return could've confused gemini, but typically we don't check for every error code, we just compare the exit status with the only code that means "success" i.e. 0.

I'm wondering if the `mkdir ..\anuraag_xyz project` failed because `..` is outside of the gemini sandbox. That _seems_ like it should be very easy to check, but let's be real that this specific failure is such a cool combination of obviously simple condition and really surprising result that maybe having gemini validate that commands take place in its own secure context is actually hard.

Anyone with more gemini experience able to shine a light on what the error actually was?

gwynforthewyn··on Azure API vulnerability and roles misconfiguration compromise corporate networks
It’s legitimately fun to see people gaining hope something would happen about this and then losing hope, again and again. Thanks for the laugh.

This is how you can tell that people doing systems work aren’t running the sdk project. A gig dependency for a few python scripts is hard to swallow.

gwynforthewyn··on Azure API vulnerability and roles misconfiguration compromise corporate networks
I’ve worked with Azure for a few years now, AWS and classic data centres for 15 years before that.

It’s pretty clear if you check github that Azure’s services and documentation are written by distributed teams with little coordination. We have a saying in-house that the info is all in their docs, but the sentences and paragraphs for even trivial things are split across ten or fifteen articles.

I see a problem like granting */read in an innocuously named role and am left wondering if it was pragmatism, because figuring out least privilege was tough, or a junior who didn’t know better and was just trying to make progress.

I’m on a phone and can’t search git effectively, but I’d swear there was a comment or note on the golang implementation of msal saying that it used non-idiomatic go with no real support for many of the auth flows in v1 because it was written by an enthusiastic junior dev and released with little review. The modern version looks better, but I felt like I got a window into Azure back when I read that.

Building large services is hard, my hat is off that Microsoft is making it work, but sometimes we get to see that it’s just teams of developers doing it for them and those teams look a lot like the teams we work with every day. There’s no secret sauce, except that MS has the resources to iterate until the thing mostly works most of the time.

gwynforthewyn··on Dev jobs are about to get a hard reset and nobody's ready
I didn't intend anything super nefarious there; I just think it's Influencer-style marketing that's going on.
gwynforthewyn··on Dev jobs are about to get a hard reset and nobody's ready
For sure.

Fwiw, I use Claude Pro in my own side project. When it’s great, I think it’s a miracle. But when it hits a problem it’s a moron.

Recently I was fascinated to see it (a) integrate swagger into a golang project in two minutes with full docs added for my api endpoints, and then (b) spend 90 minutes unable to figure out that it couldn’t align a circle to the edge of a canvas because it was moving the circle in increments of 20px and the canvas was 150px wide.

Where it’s good it’s a very good tool, where it’s bad it’s very bad indeed.

gwynforthewyn··on Dev jobs are about to get a hard reset and nobody's ready
It’s only a feeling, but I’d swear I’ve seen variations on this post across a half a dozen software-adjacent subreddits every day for the last month. The common denominator has always been “Paying $200 for Claude Max is a steal” with absolutely no evidence of what the author did with it.

I honestly think we’re being played.

gwynforthewyn··on Codex CLI is going native
> Especially interesting for software that are 99.9% of the time waiting for inference to come back to you.

In a different domain, I’ve seen a cli tool that requests an oauth token in Python be rewritten to rust and have a huge performance boost. The rust version had requested a token and presented it back to the app in a few milliseconds, but it took Python about five seconds just to load the modules the oauth vendor recommends.

That’s a huge performance boost, never mind how much simpler it is to distribute a compiled binary.

Page 1 of 2Next →