Live data from Hacker News

The Stupid Programmer Manifesto

hasen.substack.com

111–120 of 239 posts

Re: The Stupid Programmer Manifesto

#111

  sed -i 's/I’m not smart enough/I have not made the effort/g' {url-in-a-file}
(Pardon my syntax, might not be 100% correct here)

Devs work in a performance business, and most of the time "smart" can be replaced with "effort". Heck, even "experience" often equates to "outcome from prior effort". If you don't care to understand something, therefore making you less "smart", we're often just talking about a choice in applied & focused effort.

Of course, there are caveats to this. Effort alone can't compensate for capability to learn (I keep this bookmarked: https://cdn.shopify.com/s/files/1/0535/6917/products/incompe...) And there are times where effort requires a lot, and we might not have the room/time to simply add that capability to our repertoire.

But all this said, I have found that being "smart" enough is more often just a status of where my efforts have been applied.

Re: The Stupid Programmer Manifesto

#112

Earlier quoted context omitted.

how does the "structure" of the data have anything to do with leaking information? Seems like data protection occurs way lower in the stack like https and encryption at rest.

I'm guessing they are thinking of a scenario where SELECT * FROM User_Details gets sent directly to the front end. So even if all you are displaying is the users name or initials you would still be sending things like SSN and credit card number to the front end

Sanitizing your inputs is a string issue not a data structure issue.

Sanitizing your inputs has been known about for literally almost half a century that should just be default for developers at this point.

Re: The Stupid Programmer Manifesto

#113
post #72

Earlier quoted context omitted.

Transforming state data between different layers of the system if done wrong is one of the biggest nightmares in my opinion you could have.

I think the reality is that neither of those outcomes are desirable and your statement doesn't do anything to support the OPs case. Both are wrong.

Less state changes the better.

Managing state is the number one enemy on software.

Re: The Stupid Programmer Manifesto

#114

> I’m not smart enough to figure out docker confiuration, so instead I compile my web application into a self contained statically linked binary executable file. Good luck getting that to run in different environments because static or not, nearly every executable has dependencies. > I’m not smart enough to figure out cloud services and auto scaling groups, so I just upload my static binary file using scp to a linux…

> Good luck getting that to run in different environments because static or not, nearly every executable has dependencies.

Go compiled with CGO_ENABLED=0 disagrees, especially since embedding was folded into the standard library.

> Which of course you'll need to setup, patch, figure out how to restart apps when they go down and on and on. There's no easy out.

Recompile, upload, restart. If the VPS server goes down, that is what their tech support is for.

> And how do you back that up?

Either use LVM snapshots and tar or sigstop/tar/sigcont, and rely on whatever embedded storage engine you are using to be able to recover from what will appear to be a bog standard recovery from unexpected shutdown. If you are nice, arrange for an API to be able to take a complete snapshot of your running data.

> Postgres, Docker, Infra as Code and Kubernetes are pretty much best practices on any development.

That is debatable. There is a whole lot to be said about the virtues of a single binary that has no dependencies beyond a vaguely modern Linux distro.

Re: The Stupid Programmer Manifesto

#115
post #80
post #26

Earlier quoted context omitted.

Yeah, I really can't tell if it's satire. Especially things like this: > I’m not smart enough to figure out how to transform data between different layers of the system, so I just don’t. I use the same represetnation in the UI layer and the storage layer. OK, well then you might need to gather a little more work experience and meet the repercussions of decisions like this one. Or maybe the OP is a contractor and neve…

I think what they're really trying to say is "we can start out with this and in a lot of cases we won't ever have to change it".

No that's not what I'm saying.

Re: The Stupid Programmer Manifesto

#116

Unironically have no problem with any of this at at small and maybe even medium scale which is like 99% or more of applications. As long as the disk written data is being backed up rock and roll!! When they say 'compiled binary' are they using Java or are they writing web apps in C?

Probably Go. It is really well suited to this sort of thing.

Re: The Stupid Programmer Manifesto

#117
post #26
post #3

I can't tell if this is an honest call to keep things simple, or if it's meant to ridicule that idea. Because I strongly, deeply agree with some of these points, and am absolutely horrified by some of the others.

Yeah, I really can't tell if it's satire. Especially things like this: > I’m not smart enough to figure out how to transform data between different layers of the system, so I just don’t. I use the same represetnation in the UI layer and the storage layer. OK, well then you might need to gather a little more work experience and meet the repercussions of decisions like this one. Or maybe the OP is a contractor and neve…

> contractor and never has to deal with the repercussions of their actions.

This doesn't match my experience of contracting.

Not caring about code quality and then leaving others holding the bag of sh*t is frequently what "ladder climbers" do, and those are, by definition, on payroll rather than contractors. For a contractor, there is no ladder to climb, but willingness to get one's hands dirty is definitely part of the job description.

Contractors are quite frequently the people who are brought in at extra expense to maintain mission-critical infrastructure when the employee who made it is no longer at the firm, or has moved on to different responsibilities. After having gone through several contracts, a typical contractor will often have a lot more experience with different coding practices and their respective outcomes and a deeper appreciation of good engineering.

Re: The Stupid Programmer Manifesto

#120

I am another stupid programmer. Even if I have the experience, I still decide to use sqlite, single binary, local files, vps, monorepo. At least until market-fit is proven.

Most projects are created by programmers. That means that projects are not maintained properly, as most programmers focus on code, not on the build scripts. Making projects user friendly is an after thought. Projects are not advertised properly. Are missing documentation, screenshots, youtube tutorials.

Some projects live long enough to become bloated, big, do-everything projects, full of experimental technologies that were forbidden to use at work.

Adding layers, abstractions, interfaces may lead to adding unnecessary complexity, or dependency. How to spot code written by a senior? It is dead simple, obvious. How to spot project managed by a senior? Is is easy to install, well documented, easy to kick-off, uses little-to-none resources.

Post reply on HN