Live data from Hacker News

Be Aware of the Makefile Effect

blog.yossarian.net

141–150 of 347 posts

Re: Be Aware of the Makefile Effect

#142

Earlier quoted context omitted.

> You generally can't run them locally GitLab CI gives you local runners. You can completely self-host CI.

Well, yes, but aren't those runners have different configuration than the runners that are actually deployed and used by your company's CI/CD?

Wat? Our company's CI is GitLab CI, self-hosted. What other runners would we need?

Re: Be Aware of the Makefile Effect

#144

The best term for this is Cargo Cult Development. Cargo Cults arose in the Pacific during World War II, where native islanders would see miraculous planes bringing food, alcohol and goods to the islands and then vanishing into the blue. The islanders copied what they saw the soldiers doing, praying that their bamboo planes and coconut gadgets would impress the gods and restart the flow of cargo to the area. The issue…

For me, there are many cases where I copy-paste stuff I've written in the past b/c some tool is a pain-in-the-ass and I can't afford the mental context switch. I usually do understand what's happening under the hood, but it's still cognitively heavy to switch into that "mode" so I avoid it when possible.

Tools that fall into this category are usually ops-y things with enormous complexity but are not "core" to the problem I'm solving, like CI/CD, k8s, Docker, etc. For Make specifically, I usually just avoid it at this point b/c I find it hard to avoid the context switch.

It has nothing to do with miraculous incantations--I know the tradeoff I'm making. But it still runs the risk of turning into the Makefile Effect.

Re: Be Aware of the Makefile Effect

#145
post #126

I see this often on our codebase. It was mostly written by ex-C# developers who were new to writing Go, and there’s many ham-handed C#-isms in there. At some point, someone took a guess at how something should be, then subsequent changes were done by copy-paste. Years down the road, another copy-paste job happens, and when I point out that the patterns within are not good (like, can actually be buggy), I get a confus…

IDK I feel like Go suffers from this a lot. I have seen a lot of Gava, Guby, and G# over the last few years. It happens in Python a lot as well. Some people just love to write Java in Python and the new type hints make it even easier.

Re: Be Aware of the Makefile Effect

#146
post #138

calling this "Makefile" effect is a terrible disservice. one could as easily call it "PHP" effect, "YAML" effect, etc. pick whichever language you'd personally like to denigrate. there is nothing that makes makefiles inherently more or less susceptible to this. if it's more common, it's because people don't want to take the time doing more solid engineering and clean design for something like a ci/cd config or a make…

But it sure makes it more memorable. I would’ve called it GitHub Actions effect.

Re: Be Aware of the Makefile Effect

#147

Earlier quoted context omitted.

If you think `make` is “too complex and black-box-like” then you haven't seen `cmake`.

If you think cmake is a good example of more complex than make, then you haven't seen automake/autoconf. The first thing I thought of. You can find tons of tons of configure scripts that check if you're running ancient versions of Unix, checks that a byte is 8 bits wide, and a ton of other pointless checks. They don't do anything with all that information, don't think for a moment that you can actually build the app…

Firstly, automake/autoconf is not `make`, but a different piece of software, and secondly, that you know all those details about it is because it is not black-box-like.

Re: Be Aware of the Makefile Effect

#148

Earlier quoted context omitted.

For me the big problems with CI setups tend to be: - They're often slow - They're often proprietary - They're often dealing with secrets which limits who can work on them - You generally can't run them locally So the feedback cycle for working on them is incredibly long. And working on them is therefore a massive pain.

> You generally can't run them locally GitLab CI gives you local runners. You can completely self-host CI.

It's not self hosting. It's can I run the build from my local command line and get the same results.

Re: Be Aware of the Makefile Effect

#149
Another factor is frequency of use. I use LaTeX to do big write-ups on the order of once per year or less. LaTeX at the level I use it is not a hard tool, but I generally start a new document by copy-pasting a previous document because there is a lot of detail about how to use it that I'm never going to remember given that I only use it for a few weeks once a year.

Re: Be Aware of the Makefile Effect

#150

Earlier quoted context omitted.

> You generally can't run them locally GitLab CI gives you local runners. You can completely self-host CI.

It's not self hosting. It's can I run the build from my local command line and get the same results.

How is running those runners on our own hosts (locally) not self-hosting?
Post reply on HN