frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Show HN: An open source implementation of OpenStreetMap in Electron

https://github.com/GuildMasterDev/Cartographer
1•DavidCanHelp•6m ago•0 comments

What I Crave from Blogs

https://idiallo.com/blog/what-i-crave-from-blogs
1•foxfired•8m ago•0 comments

Trump's Plan to Reschedule Marijuana Comes with Legal Perils

https://news.bloomberglaw.com/us-law-week/trumps-plan-to-reschedule-marijuana-comes-with-legal-pe...
1•DocFeind•8m ago•0 comments

Speed wins when fuzzing Rust code with [derive(Arbitrary)]

https://nnethercote.github.io/2025/08/16/speed-wins-when-fuzzing-rust-code-with-derive-arbitrary....
1•fanf2•8m ago•0 comments

Japanese town proposes two-hour daily limit on smartphones

https://www.bbc.com/news/articles/cqlew2rv337o
1•pseudolus•9m ago•0 comments

Creating Pixel Art (2010)

https://pixeljoint.com/forum/forum_posts.asp?TID=11299
1•smartmic•9m ago•0 comments

It's Mathematically Impossible to Play Tetris Forever

https://twitter.com/MicaelOl/status/1961527572854181987
2•mgdo•10m ago•0 comments

Open Source Alternative for Lovable, Bolt and V0

https://grills.dev/home
2•pushkar_aditya•16m ago•0 comments

Visualize Your Python Code

https://shapeofyourcode.com
1•m4houk•17m ago•1 comments

How to Become President of China with Dan Wang

https://www.worksinprogress.news/p/how-to-become-president-of-china
1•lycopodiopsida•17m ago•0 comments

How to Stop Google from AI-Summarising Your Website

https://www.teruza.com/info-hub/how-to-stop-google-from-ai-summarising-your-website
1•teruza•22m ago•0 comments

Infinite Talk Tutorial: Lip-Sync Video-to-Video (ComfyUI Workflow)

https://www.youtube.com/watch?v=LR4lBimS7O4
1•grigio•24m ago•0 comments

The Theoretical Limitations of Embedding-Based Retrieval

https://arxiv.org/abs/2508.21038
8•fzliu•25m ago•0 comments

Consistent Tachyon and Λ and Background‑Safe μ(a) Pipeline

https://gist.github.com/amazedsaint/f8c47b4ef65b123e06aa8742d76e7c59
1•amazedsaint•25m ago•1 comments

Recyclable Wind Turbine Blades: A Life Cycle Analysis

https://www.mdpi.com/1996-1944/18/16/3762
1•PaulHoule•26m ago•0 comments

Show HN: Turn any File into an Image .NET Core

https://github.com/archistico/ShadeOfColor2
2•archemi•26m ago•1 comments

Audio waveforms to HTML canvas in real-time using WebGPU

https://aykev.dev/webgpu-waveform/
2•aylmao•28m ago•0 comments

The Sami Paradox

https://samii.dev/notes/paradox/
1•samixg•29m ago•0 comments

Meta changes teen AI chatbot as Senate begins probe into romantic conversations

https://www.cnbc.com/2025/08/29/meta-ai-chatbot-teen-senate-probe.html
3•rntn•29m ago•1 comments

Type-Compliant Adaptation Cascades: Adapting Programmatic LM Workflows to Data

https://arxiv.org/abs/2508.18244
2•liliumregale•31m ago•0 comments

Florida deploys robot rabbits to control invasive Burmese Python population

https://www.cbsnews.com/news/burmese-pythons-robot-rabbits-florida-invasive-species/
2•rmason•37m ago•2 comments

Joint Cybersecurity Advisory: Countering Chinese State-Sponsored Actors [pdf]

https://www.ic3.gov/CSA/2025/250827.pdf
1•rbanffy•38m ago•1 comments

Servercrate.net – Performance-first VPS and game server hosting

https://servercrate.net/
1•rambooon•38m ago•1 comments

Netigen: Publish Once, Syndicate Nowhere

https://netigen.com/publish-once-syndicate-nowhere
2•speckx•38m ago•0 comments

How to Make People Give a Damn

https://www.joanwestenberg.com/p/how-to-make-people-give-a-damn-92e3af37926932ef
2•ezekg•41m ago•1 comments

Bank apologises for firing staff with accidental email

https://www.bbc.com/news/articles/c776plg6n8vo
1•rmason•42m ago•0 comments

Flatboard: Fast, Lightweight Flat-file forum

https://github.com/Fred89/Flatboard
1•indigodaddy•42m ago•0 comments

Can an LLM predict how markets evolve through hallucinations?

https://laurentiu-raducu.medium.com/i-created-an-ai-trading-agent-heres-what-it-did-after-one-mon...
10•headsnap_io•46m ago•6 comments

Ask HN: Any thoughts on my new online business?

7•kiraken•47m ago•7 comments

Wallet-Draining NPM Package Impersonates Nodemailer to Hijack Crypto

https://socket.dev/blog/wallet-draining-npm-package-impersonates-nodemailer
2•feross•48m ago•0 comments
Open in hackernews

Do the simplest thing that could possibly work

https://www.seangoedecke.com/the-simplest-thing-that-could-possibly-work/
69•dondraper36•1h ago

Comments

al_borland•1h ago
“Everything should be made as simple as possible, but not simpler.”

As someone who has strived for this from early on, the problem the article overlooks is not knowing some of these various technologies everyone is talking about out, because I never felt I needed them. Am I missing something I need, but just ignorant, or is that just needless complexity that a lot of people fall for?

I don’t want to test these things out to learn them in actual projects, as I’d be adding needless complexity to systems for my own selfish ends of learning these things. I worked with someone who did this and it was a nightmare. However, without a real project, I find it’s hard to really learn something well and find the sharp edges.

IAmBroom•1h ago
Yes, and I (nearly) live this nightmare. I have someone higher up in the food chain who is fascinated with every new piece of software they find, that MIGHT be useful. We are often tasked with "looking at it, and seeing if it would be useful".

Yeah, let me shoehorn that fishing trip into my schedule without a charge number, along with the one from last week...

colecut•1h ago
Does he ask you to "figure out how to implement AI"?

That is what my boss asks us to do =p

threemux•36m ago
This is indeed a vexing issue. I feel it often. It's this feeling that leads to resume-driven development which I really work hard to avoid.
dondraper36•34m ago
Such a familiar feeling. Articles similar to this one make lots of sense to and I do try to embrace simplicity and not optimize prematurely, but very often I have no idea whether it's the praised simplicity and pragmatism or just a lack of experience and skills.
SPascareli13•6m ago
Implement the simplest thing that works, maybe even by hand at first, instead of adding the tool that does "the whole thing" when you don't need "the whole thing".

Eventually you might start adding more things to it because of needs you haven't anticipated, do it.

If you find yourself building the tool that does "the whole thing" but worse, then now you know that you could actually use the tool that does "the whole thing".

Did you waste time not using the tool right from the start? That's almost a filosofical question, now you know what you need, you had the chance to avoid it if it turned out you didn't, and maybe 9 times out of 10 you will be right.

hinkley•55m ago
One of the biggest, evergreen arguments I’ve had in my career revolves around the definition of “works”.

“Just because it works doesn’t mean it isn’t broken.” Is an aphorism that seems to click for people who are also handy in the physical world but many software developers think doesn’t sound right. Every handyman has at some time used a busted tool to make a repair. They know they should get a new one, and many will make an excuse to do so at the next opportunity (hardware store trip, or sale). Maybe 8 out of ten.

In software it’s probably more like 1 out of ten who will do the equivalent effort.

mandelbrotwurst•42m ago
Those conversations are an important part of the job. You can, for example, agree that something works in the sense that it is currently possible to use it to obtain a desired output, while simultaneously failing to work in various ways: It might fail to do so reliably, or it might only be able to do so at great cost.
hinkley•14m ago
It’s a frustrating argument to lose.

On a recent project I fixed our deployment and our hotfix process and it fundamentally changed the scope of epics the team would tackle. Up to that point we were violating the first principle of Continuous: if it’s painful, do it until it isn’t. So we would barely deploy more often than we were contractually (both in the legal and internal cultural sense) obligated to do, and that meant people were very conservative about refactoring code that could lead to regressions, because the turnaround time on a failing feature toggle was a fixed tempo. You could turn a toggle on to analyze the impact but then you had to wait until the next deployment to test your fixes. Excruciating with a high deviation for estimates.

With a hotfix process that actually worked worked, people would make two or three times as many iterations, to the point we had to start coordinating to keep people from tripping over each other. And as a consequence old nasty tech debt was being fixed in every epic instead of once a year. It was a profound change.

And as is often the case, as the author I saw more benefit than most. I scooped a two year two man effort to improve response time by myself in three months, making a raft of small changes instead of a giant architectural shift. About twenty percent of the things I tried got backed out because they didn’t improve speed and didn’t make the code cleaner either. I could do that because the tooling wasn’t broken.

fuzzy2•26m ago
From somewhere around the net, I found this quote:

> It's not enough for a program to work – it has to work for the right reasons

I guess that’s basically the same statement, from a different angle.

soperj•14m ago
I remember once having to make a SOAP call that just wasn't connecting for some reason, but another end point on the same service was working, which made no sense. We tried calling the working endpoint right before calling the busted endpoint just for kicks, and that actually functioned. Still to this day makes no sense at all to me, we ended up moving off of soap eventually, but that code was in there until we did.
hinkley•9m ago
I hate the days when you are trying to fix a bug in a block of code and as you write pinning tests you realize that the code has always been broken and you cannot understand why it ever got the right answer. You’ve let the magic smoke out and you cannot put it back without fixing the problem. At some point you have to stop trying because you understand perfectly well how it should work and you need to move on to other things.
IshKebab•7m ago
I generally agree, except if the program is a one-time program meant to generate a single output and then you throw it away.

Until recently I would say such programs are extremely rare, but now AI makes this pretty easy. Want to do some complicated project-wide edit? I sometimes get AI to write me a one-off script to do it. I don't even need to read the script, just check the output and throw it away.

But I'm nitpicking, I do agree with it 99% of the time.

vkou•14m ago
The definition of 'works' depends on whether my employer wants to spend its resources (the time I'm working) on fixing it.

If they want to use those resources to prioritize quality, I'll prioritize quality. If they don't, and they just want me to hit some metric and tick a box, I'm happy to do that too.

You get what you measure. I'm happy to give my opinion on what they should measure, but I am not the one making that call.

ashwinsundar•51m ago
A related concept: https://en.wikipedia.org/wiki/Poka-yoke
hiAndrewQuinn•50m ago
On the meta level, the simplest thing that could possibly work is usually paying someone else to do it.

Alas, you do not have infinite money. But you can earn money by becoming this person for other people.

The catch 22 is most people aren't going to hire the guy who bills himself as the guy who does the simplest thing that could possibly work. It turns out the complexities actually are often there for good reason. It's much more valuable to pay someone who has the ability to trade simplicity off for other desirable things.

switchbak•21m ago
If I was running a business and I could hire someone that I knew did good work, and did the simplest thing that could possibly work (and it actually worked!) - then I would absolutely do that as soon as possible.

"It turns out the complexities actually are often there for good reason" - if they're necessary, then it gets folded into the "could possibly work" part.

The vast majority of complexities I've seen in my career did not have to be there. But then you run into Chesterton's Fence - if you're going to remove something you think is unnecessary complexity, you better be damn sure you're right.

The real question is how AI tooling is going to change this. Will the AI be smart enough to realize the unnecessary bits, or are you just going to layer increasingly more levels of crap on top? My bet is it's mostly the latter, for quite a long time.

ChefboyOG•15m ago
"Will the AI be smart enough to realize the unnecessary bits, or are you just going to layer increasingly more levels of crap on top? My bet is it's mostly the latter, for quite a long time."

Dev cycles will feel no different to anyone working on a legacy product, in that case.

bearjaws•42m ago
You know what taught me this the best? Watching Mythbusters.

Time and time again amazingly complex machines and they just fail to perform better than a rubber-band and bubble gum.

lstodd•33m ago
eh.. there were series of clips named something like 'Industrial JP' showing the multiaxis (like 6 to 12 axis) spring coil forming machines working

This stuff just can not be reimplemented that simple and be expected to work.

The music was also quite good imo.

oncallthrow•39m ago
This just kicks the can down the road. What is "simple"? What does "works" mean?
dondraper36•36m ago
I don't think the author (or anyone else) could come up with term definitions that would satisfy everyone.
dondraper36•33m ago
... and nevertheless at the end of the article, the author does offer their understanding of the terms
underdeserver•37m ago
Great advice.

I always felt software is like physics: Given a problem domain, you should use the simplest model of your domain that meets your requirements.

As in physics, your model will be wrong, but it should be useful. The smaller it is (in terms of information), the easier it is to expand if and when you need it.

daxfohl•30m ago
"It’s fun to decouple your service into two pieces so they can be scaled independently (I have seen this happen maybe ten times, and I have seen them actually be usefully scaled independently maybe once)."

Same, or reliability-tiered separately. But in both aspects I more frequently see the resulting system to be more expensive and less reliable.

bifftastic•28m ago
See also https://wiki.c2.com/?DoTheSimplestThingThatCouldPossiblyWork
ChrisMarshallNY•24m ago
Ockham's Software Architecture...
deepsun•24m ago
Don't bother with SSL, it's adds complexity.

Don't add passwords, just "password" is fine. Password policies add complexity.

For services that require passwords just create a shared spreadsheet for everyone.

/s

dondraper36•17m ago
Isn't reading the article before posting comments considered cool anymore?
GMoromisato•22m ago
One of the ironies of this kind of advice is that it's best for people who already have a lot of experience and have the judgement to apply it. For instance, how do you know what the "simplest thing" is? And how can you be sure that it "could possibly work"?

Yesterday I had a problem with my XLSX importer (which I wrote myself--don't ask why). It turned out that I had neglected to handle XML namespaces properly because Excel always exported files with a default namespace.

Then I got a file that added a namespace to all elements and my importer instantly broke.

For example, Excel always outputs <cell ...> whereas this file has <x:cell ...>.

The "simplest thing that could possibly work" was to remove the namespace prefix and just assume that we don't have conflicting names.

But I didn't feel right about doing that. Yes, it probably would have worked fine, but I worried that I was leaving a landmine for future me.

So instead I spent 4 hours re-writing all the parsing code to handle namespaces correctly.

Whether or not you agree with my choice here, my point is that doing "the simplest thing that could possible work" is not that easy. But it does get easier the more experience you have. Of course, by then, you probably don't need this advice.

bvirb•6m ago
We attempt to address this problem at work with an extra caveat to never add code "in the wrong direction" -- so it's fine (usually preferable) to have a partial implementation, as long as it's heading in the direction we'd like the more complete implementation to go in. Basically "KISS, but no hacks".
ternaryoperator•22m ago
It's a shame he doesn't give the origin of this expression in programming. It comes from Ward Cunningham (inventor of the wiki) in his work with Kent Beck. In an interview a few years back on Dr. Dobb's, he stated that as the two of them were coding together in the late 80s, they would regularly remind each other of the principle. Eventually, it became a staple of their talks and writing.

They were cognizant of the limitations that are touched on in this article. The example they gave was of coming to a closed door. The simplest thing might be to turn the handle. But if the door is locked, then the simplest thing might be to find the key. But if you know the key is lost, the simplest thing might be to break down the door, and so on. Finding the simplest thing is not always simple, as the article states

IIRC, they were aware that this approach would leave a patchwork of technical debt (a term coined by Cunningham), but the priority on getting code working overrode that concern at least in the short term. This article would have done well to at least touch on the technical debt aspect, IMHO.

daxfohl•21m ago
I wholeheartedly agree with this. The challenge is perception though. Many managers will see a simple solution to a complex problem and dock you for not doing real engineering, whereas a huge convoluted mess to solve a simple problem (or non-problem) gets you promoted. And in design interviews, "I'd probably implement a counter in memory" would be the last time you ever heard from that company.
JackFr•15m ago
Before you write a parser, try a regex. (But some times you really do need a parser.)
dochtman•6m ago
I would argue that regexes are often more complex than simple parsers.
sfpotter•14m ago
Generally speaking, when I hear people say this, it's a huge red flag. Really, any time anyone puts forth any kind of broad proclamation about how software development should be done, my hackles go up. Either they don't know what they're talking about, they're full of shit, or both. The only reasonable thing to conclude after lots of experience with software development is that it's hard and requires care and deliberation. There is no one-size-fits-all advice. What I want to see is people who are open-minded and thoughtful.
0xbadcafebee•12m ago
[delayed]
codingwagie•12m ago
I think this works in simple domains. After working in big tech for a while, I am still shocked by the required complexity. Even the simplest business problem may take a year to solve, and constantly break due to the astounding number of edge cases and scale.

Anyone proclaiming simplicity just hasnt worked at scale. Even rewrites that have a decade old code base to be inspired from, often fail due to the sheer amount of things to consider.

A classic, Chesterton's Fence:

"There exists in such a case a certain institution or law; let us say, for the sake of simplicity, a fence or gate erected across a road. The more modern type of reformer goes gaily up to it and says, “I don’t see the use of this; let us clear it away.” To which the more intelligent type of reformer will do well to answer: “If you don’t see the use of it, I certainly won’t let you clear it away. Go away and think. Then, when you can come back and tell me that you do see the use of it, I may allow you to destroy it.”"

dondraper36•11m ago
The author is a staff engineer at GitHub. I don't think they haven't worked at scale