HackerLangs
TopNewTrendsCommentsPastAskShowJobs

sshine

6,428 karmajoined 12년 전
https://simonshine.dk

Submissions

Is the Novelty Budget Dead?

simonshine.dk
2 points·by sshine·3개월 전·0 comments

comments

sshine
·그저께·discuss
> not mostly the test, but the real world production scars

Most extensive test suites are exactly production scars: every time you have a bug or a regression, you write a test that confirms correct behaviour.

SQLite is a good example to bring up because its extensive closed-source tests are what’s often cited as being what keeps people from forking it. (Turso did it, though, but it takes a company to deliver some guarantee of equivalent diligence.)

And yes, years and years of running.
sshine
·4일 전·discuss
> a downside of this approach is that you sacrifice late binding, as the module language and "core" language are stratified into different layers

https://people.mpi-sws.org/~rossberg/1ml/1ml-extended.pdf

https://github.com/rossberg/1ml
sshine
·5일 전·discuss
> might think it's a good idea to just run with a wildly out-of-scope idea with too much hubris

I'll say that using git as a database instead of simply SQL leads to a lot of corner cases.

For example, you are inside a transaction from the moment you make a single change to anything.

But the filesystem is conventionally thought of as something that can be shared between sessions.

So I need a git worktree per user.

In both my use-cases there's very few users, but if there were two, and they decide to change things independent of one another, then

  - their worktrees will become stale, and I need to add somewhat automated checking how far behind they are
  - their stale worktree will have conflicts, and dealing with merge conflicts in a pedagogical way is a big task
  - working on multiple things at once is possible, but introducing "committed" on top of "draft" + "publish" adds mental gymnastics
  - using the filesystem as a database makes deployment to Kubernetes less trivial because you need persistent storage
One thing you get "for free", though, is authentic preview: Since the final site is a static site, I can just run the generator when the user wants to see a preview.

The nice thing about this is that if you remove the admin dashboard, it's just another static site.

It can be maintained perfectly fine with regular git and e.g. VSCode.

Add Nix + Claude and you have an entirely different mode of operation.

Which is what I like about plaintext (Markdown). It's not tied to any one program.
sshine
·5일 전·discuss
Triple backticks also let you specify the syntax very conveniently.
sshine
·5일 전·discuss
I think "yolo" gets overloaded here to mean "not thinking".

I've described it as static HTML.

The admin dashboard isn't static HTML, but it also isn't public-facing.

The admin dashboard lives behind an oauth2-proxy authenticated via keycloak, and only accessible to the corporate wifi / vpn. The dashboard is really a completely separate application.

The probability that you can hack an admin panel because you know the public URL assumes either there's a "Login" button on the front page, or that the admin panel depends on the source code in the same way as the public-facing pages.
sshine
·6일 전·discuss
I get what’s you’re saying, and if I couldn’t justify making the best alternative I can imagine in my free time, because I’ve wanted it for a long time, I’d install “a CMS” (not WordPress).

> If there's a question about why money was spent on implementing a bunch of stuff nobody knows for a reason nobody cares about, especially for a very short-lived thing like a landing page, then it's a sticky situation if the answer is basically novelty.

The economy behind a decision like is this: alternative SaaS website builders are $20-60/mo./seat. We’ve historically paid $720/mo. for the ability to edit a single website that doesn’t look great but is dead simple to modify.

So if I can make something that scales up to any amount of sites and any amount of editors with ~10 hours on landing the design (which isn’t included in “a WordPress” either way), at ~$700, then I can justify making ten sites per year at the cost of our first.

Or more realistically: The total operating cost of the current website gives me 125 hours in a year to make something better.

Then the question is not “Can I make something better?” (Yes.) Or “Is it affordable to make something from scratch?” (It is.) But rather: Could I make more money doing something else? (I could halve the Azure budget in less than a month by optimizing and cleaning up.)
sshine
·6일 전·discuss
Thank you.
sshine
·6일 전·discuss
How do you hack a static HTML page?

The point is that most WordPress pages don’t warrant the dynamic code execution on every page load.

When you use a static site generator and make content creation convenient behind the scenes, you move the entire attack surface to, in my case, nginx, the load balancer, and OpenSSL.
sshine
·6일 전·discuss
I’ll say “proper docs” has shifted for me for two reasons

I used to insist on commenting code richly, so I could better read it. But comments lie, while code is truth. Read the code, that’s what it does.

With AI, the cognitive overhead of getting a human-worded explanation of what’s true, is one prompt away and is never a stale leftover.

So the purpose of docs: Specs for implementing and getting an architectural overview, and API documentation for exploring the interface of something new.

What I find great is that people still don’t test their code when it became practically free to do so.
sshine
·6일 전·discuss
I’ll try to tell the story in a more responsible way: My boss asked me to install a WordPress, to which I advised against it; while it’s easy to set up, it doesn’t align with our tech stack (his main team won’t be able to support it easily, woohoo army of juniors!), and the convenience of a quick start is outweighed by having a thing that needs CVE patching when, guess what never got hacked: pure, static HTML.

Since my wife had asked me twice the same week to set up a website with a design mock she’d sent me, I thought: what’s holding me back in both cases from giving them a Claude Design’ed Hugo theme is that they need to edit Markdown on their filesystem and run terminal commands.

So I picked an item out of my infinite backlog, which was very well-defined: a web dashboard that acts as the equivalent of the WordPress admin page that lets you manage a Hugo static site, use a rich editor on top of Markdown, and commit to git instead of a database. I spent the better part of a weekend making this, with my wife as the customer, and when it got good enough, I presented it to my boss. He was happy with the choice, but mostly because of the vibed design, he ultimately didn’t care about the technology.

When someone wants “a WordPress” they’re asking for convenience of an easily updated website.

You don’t have to actually give them a WordPress.
sshine
·7일 전·discuss
Rewriting Redis in Rust sounds genuinely useful when you want to rely on it as a library.

Maintaining byte-for-byte parity with newer versions of Redis sounds like being in debt; why not rely on your fork instead?
sshine
·9일 전·discuss
I miss the days when HTML injection bugs were considered a feature.

The Internet was a lot more innocent before normies and money got involved.
sshine
·10일 전·discuss
I second this; even switching between minor versions of a model, you need to adjust prompts: the new model is better by implying a bunch of things that, when included in the prompt, will overdo that thing.

Assessing quality of output is often not trivial, either. Typically, problems that are solved by offloading something to an LLM are super subjective, and customers “feel” something is different is vulnerable.

We try to quantify output differences by many different similarity metrics. But a lot of energy goes into subjectively evaluating if something still works.
sshine
·11일 전·discuss
Some quick research:

Denmark to Iceland is ~2300 km which has a theoretical one-way signal propagation of ~11.5ms.

Real-world round-trip time would be 25-35ms though.

So for certain AI workloads, network is probably not the bottleneck.
sshine
·12일 전·discuss
60% of the time, it works every time!
sshine
·13일 전·discuss
I’m not sure how you can say something general about the quality of tests unless you mean by simply prompting “make tests” or similar.

Yes, I’ve experienced that those tests succeed, and the app still breaks trivially on first run.

What I mean is: you design the tests. You analyse patterns. You insist on making testable code (average code by humans isn’t, so neither is average code by LLMs unless you specify testability as a design constraint.

One way to get testable code is to mock all interfaces. This is usually expensive, but not difficult for an AI, because you can set the success criterion to be interface exactness of your mock for a series of plausible and somewhat extensive interactions.

The tests you can make with AI are as good as you can make them otherwise, you just save time doing them, which should justify making more extensive testing.
sshine
·16일 전·discuss
> it feels like software development is going from a precise occupation that requires high degree of understanding to something probabilistic and offloaded understanding

To me it felt like there were always engineers and vibers.

Vibers don't work systematically, never test, accept unknown regression, don't use git, and if they do, treat it like Dropbox, use terrible languages, have terrible habits. Vibers got a new tool, too, and it vastly increases the amount of slop. But the slop was always there.

The slop actually got better after vibers stopped writing their own slop, I have to say.

And vibers are less defensive about the particular slop they didn't write themselves.
sshine
·16일 전·discuss
> little to no automated tests

I'm still amazed people don't achieve extremely high test quality, since you get tests "for free" now.

One of the limitations of testing were always that people "design" things so they're hard to test.

And then they argue "This can't be tested", or "Refactoring this for testing is not worth it."

It is now. Yet, I work on codebases with no tests and lots of yolo co-authoring.
sshine
·16일 전·discuss
But Sylvain Kerkour says Go's approach is much better than Rust's!
sshine
·17일 전·discuss
> terminal based tool to say stage only a couple of discontiguous lines

Have you tried `git add -p`?

There are cases it doesn’t handle well, like if you want something at the bottom of a file with lots of irrelevant changes. And if you want one line but not the line immediately below, then splitting doesn’t work without starting the interactive editor, which can be confusing.