HNHacker News
TopNewBestAskShowJobs

stopthe

53 karma · joined March 6, 2022

submissionscomments
stopthe··on Dots: Always-on agents
double-plus-ungood
stopthe··on I am often wrong
https://tiliosophrang.com/
stopthe··on I am often wrong
Wow. Is that the whispering earring story playing out in real life? I'd cringe if I'd found platitudes like that in my notes from the teenage days. Let alone flaunt it in front of the whole world.

Can't wait to hear about this brand new approach from my managers and VP.

stopthe··on We got admin access to Baseten's production GitHub
That was not an attack on Github itself. GH made enormous impact in the open source movement and is still beneficial for every software engineer by providing a free and very useful service.

Meanwhile, for a software business, Github is a wide and deep attack vector and nobody seems to be concerned about it.

Of course the same can be said about any other public git hosting, especially if it combines CI/CD, artifact distribution, identity and trust management.

stopthe··on We got admin access to Baseten's production GitHub
So often recent breaches involve Github in one way or another. How is it still considered a sane choice to host anything proprietary there? If your business is built around open source, ok, put a mirror on Github. But CI/CD, gitops, FDEs' stuff have no place on a public cloud. C-level execs may not know bits from bytes, but by now they should've understood that this is akin to storing ammonium nitrate in the open air.
stopthe··on Stop Advertising in Your Commits
At $JOB we have an "AI adoption" dashboard, the more ai commits the better. I asked for the sources: the deterministic classifier, that decides whether a commit was ai-assisted, assigns the highest weight to the commits co-authored-by one of the known agents/models.
stopthe··on If AI writes code, should the session be part of the commit?
No. Even further than that, maintaining AGENTS.md and the like in your company repo, you basically train your own replacement. Which replacement will not be as capable as you in the long run, but few businesses will care. Anyway having some representation of an employee's thinking definitely lowers cost of firing that employee.

That is a cynical take and not very different from an advice to never write any documentation, or never help your teammates. Only that resemblance is superficial. In any organization you shouldn't help people stealing you time for their benefit (Sean Goedecke calls them predators https://www.seangoedecke.com/predators/).

On the other hand, it may be beneficial to privately save CLAUDE.md and other parts of persistent context. You may gitignore them (but that will be conspicuous unless you also gitignore .gitignore) or just load them from ~/.claude

I expect an enterprise version of Claude Code that will save any human input to the org servers for later use.

stopthe··on Search tool that only returns content created before ChatGPT's public release
In hindsight, that would've been a real utility use case for NFTs. A decentralized cryptographic prove that some content existed in a particular form at a particular moment.
stopthe··on Search tool that only returns content created before ChatGPT's public release
Some clarification. Since 2024 Yandex NV split into Nebius (NL-registred NASDAQ-listed company, no longer a search engine) and russian-based Yandex. The latter is fully controlled by russian investors.
stopthe··on The fall of Labubus and the mush of modern internet trends
The author (if there was any) stops short of admitting that it is yet another product that was heavily promoted via so-called influencers and failed to reach escape velocity and sell on itself. Like, nobody remembered Clubhouse already in 2021.
stopthe··on We cut our Mongo DB costs by 90% by moving to Hetzner
We've been using mongodb for the past 8 years. What we like:

- schema-less: we don't have to think about DDL statements at any point.

- oplog and change streams as built-in change data capture.

- it's dead simple to setup a whole new cluster (replica set).

- IMO you don't need a designated DBA to manage tens of replica sets.

- Query language is rather low-level and that makes performance choices explicit.

But I have to admit that our requirements and architecture play to the strength of mongodb. Our domain model is neatly described in a strongly typed language. And we use a sort of event sourcing.

stopthe··on We cut our Mongo DB costs by 90% by moving to Hetzner
Available in community edition 8.2+

https://www.mongodb.com/company/blog/product-release-announc...

stopthe··on Netflix Revamps Tudum's CQRS Architecture with Raw Hollow In-Memory Object Store
Having dealt with similar architectures, I have a hypothesis on how this library (Hollow) emerged and evolved.

In the beginning there was a need for a low-latency Java in-process database (or near cache). Soon intolerable GC pauses pushed them off the Java heap. Next they saw the memory consumption balloon: the object graph is gone and each object has to hold copies of referenced objects, all those Strings, Dates etc. Then the authors came up with ordinals, which are... I mean why not call them pointers? (https://hollow.how/advanced-topics/#in-memory-data-layout)

That is wild speculation ofc. And I don't mean to belittle the authors' effort: the really complex part is making the whole thing perform outside of simple use cases.

stopthe··on I gave the AI arms and legs then it rejected me
Exactly zero, if answering your question as stated. But that is not the point. LLMs struggle with things that require tacit knowledge or are not found in the training set (i.e. haven't been done before). They excel at tasks that are described in the most verbose and explicit way, to the point that it looks humiliating from human POV. And what is more explicit than an existing codebase, especially with tests, comments and documentation lovingly put there by the proud author (remember, those github stars).
stopthe··on I gave the AI arms and legs then it rejected me
Unfortunately, the choice of license likely won't matter in the nearest future (if not already so). If a tech giant wants you open-source library, they will just point their agent to it and ask "to rewrite in the style of War and Peace". And more unscrupulous players won't even bother with a rewrite, as we've seen recently in the case of Cheatingdaddy/Pickle.
stopthe··on Git Notes: Git's coolest, most unloved­ feature (2022)
OTH the inefficiency of an analyst who cannot answer even basic questions about the current state of the product without developers' help. Distracting them, or even worse - blocking until a dev is available.

I think it boils down to the power of balance in the org. Likewise I've met developers who cannot book a meeting. Some people have privilege to choose what to learn and what to laugh at. Actually, I'm surprised your sales guys wrote any documentation at all:)

stopthe··on XSLT – Native, zero-config build system for the Web
IBM is still selling hardware that roughly matches your description: DataPower Gateway.
stopthe··on Git Notes: Git's coolest, most unloved­ feature (2022)
> business analysts don't get access to code or repositories at all for example or support people don't get access to the repositories and code.

Yes, but isn't it insane? What is the benefit from treating your own product as a black box? Yet that's mainstream. Sometimes I have the analyst (not on my team, but from a team we share a monorepo with) asking me questions that can be answered literally with a line of code. And she's a technical kind, knows SQL and such. And we write very idiomatic, high level code. But still, culture cannot change itself until it dies due to inherent inefficiency.

stopthe··on Accumulation of Cognitive Debt When Using an AI Assistant for Essay Writing Task
Brilliant, but... do you mind sharing the prompt?:)
stopthe··on Enterprises are getting stuck in AI pilot hell, say Chatterbox Labs execs
https://www.chatterbox.io/ "Corporate language training powered by marginalised talent" - is that satire? Did I found the wrong Chatterbox?
stopthe··on The rise of judgement over technical skill
That chess metaphor didn't age well
stopthe··on Ask HN: What are you working on? (May 2025)
You may be striking the goldmine with this app. There's a lot of sentiment about the effects of tech on children and also parents spend money like no one else.

On a personal level I'm interested too. My son is too young, so we only watch youtube together, even then he's very susceptible to the attention-grabbing recommendations. "Theater mode" helps put the recommendations off-screen. "Don't recommend channel" helps a curate the feed a little bit.

But ideally I should be in control of the whole interface.

stopthe··on Show HN: Samchika – A Java Library for Fast, Multithreaded File Processing
Of course, deletion is a whole different story. I was talking about addition in isolation.

Anyway, I felt I had to run the benchmarks myself.

  @Benchmark
  @Fork(1)
  @BenchmarkMode(Mode.Throughput)
  @OutputTimeUnit(TimeUnit.SECONDS)
  public Object arrayListPreallocAddMillionNulls() {
    ArrayList<Object> arrList = new ArrayList<>(1048576);
    for (int i = 0; i <= 1_000_000; i++) {
      arrList.add(null);
    }
    return arrList;
  }

  @Benchmark
  @Fork(1)
  @BenchmarkMode(Mode.Throughput)
  @OutputTimeUnit(TimeUnit.SECONDS)
  public Object arrayListAddMillionNulls() {
    ArrayList<Object> arrList = new ArrayList<>();
    for (int i = 0; i <= 1_000_000; i++) {
      arrList.add(null);
    }
    return arrList;
  }

  @Benchmark
  @Fork(1)
  @BenchmarkMode(Mode.Throughput)
  @OutputTimeUnit(TimeUnit.SECONDS)
  public Object linkedListAddMillionNulls() {
    LinkedList<Object> linkList = new LinkedList<>();
    for (int i = 0; i <= 1_000_000; i++) {
      linkList.add(null);
    }
    return linkList;
  }

And as I expected, on JDK 8 ArrayList with an appropriate initial capacity was faster than LinkedList. Admittedly not an order of magnitude difference, only 1.7x.

  JDK8
  Benchmark                                      Mode  Cnt    Score    Error  Units
  MyBenchmark.arrayListAddMillionNulls          thrpt    5  229.950 ±  9.994  ops/s
  MyBenchmark.arrayListPreallocAddMillionNulls  thrpt    5  344.116 ±  7.070  ops/s
  MyBenchmark.linkedListAddMillionNulls         thrpt    5  199.446 ± 15.910  ops/s
But! On JDK 17 the situation is completely upside-down:

  JDK17
  Benchmark                                      Mode  Cnt    Score    Error  Units
  MyBenchmark.arrayListAddMillionNulls          thrpt    5   90.462 ± 18.576  ops/s
  MyBenchmark.arrayListPreallocAddMillionNulls  thrpt    5  214.079 ± 15.505  ops/s
  MyBenchmark.linkedListAddMillionNulls         thrpt    5  216.796 ± 19.392  ops/s
I wonder why ArrayList with default initial capacity got so much worse. Worth investigating further.
stopthe··on Show HN: Samchika – A Java Library for Fast, Multithreaded File Processing
Does it handle line breaks inside quotes in CSV? Frankly, I don't think its possible to reliably process CSV in а multi-threaded manner.
stopthe··on Show HN: Samchika – A Java Library for Fast, Multithreaded File Processing
Did you count an allocation of LinkedList.Node<E> on every add operation? You may say it's negligible thanks to TLAB, and I will agree that fast allocation is Java's strength, but in practice I've seen that creating new objects gives order-of-magnitude perf degradation.
stopthe··on The Windows Subsystem for Linux is now open source
Well that gives some hope, unless they (I'm speculating about future possible employer) just disable WSL
stopthe··on The Windows Subsystem for Linux is now open source
A lot of people here are saying nice things about having dev environment on WSL. Honest question: how do you deal with with those minor but insufferable Windows' quirks like 0d0a line endings, selective Unicode support, byte-order-marks and so on.

While right now I enjoy the privilege to develop on Linux, things may change.

stopthe··on What makes code hard to read: Visual patterns of complexity (2023)
I always shrugged off the concept of code metrics (from LoCs to coverage) as a distraction from getting actual things done. But since doing more code-review I started to lack a framework to properly explain why a particular piece of code smells. I sympathize with the way the author cautiously approaches any quantitative metrics and talks of them more like heuristics. I agree that both Halstead Complexity and Cognitive Complexity are useless as absolute values. But they can be brought up in a conversation about a potential refactoring for readability.

What I didn't find is a mention of a context when reading a particular function. For example, while programming in Scala I was burnt more than once by one particular anti-pattern.

Suppose you have a collection of items which have some numerical property and you want a simple sum of that numbers. Think of shopping cart items with VAT tax on them, or portfolio positions each with a PnL number. Scala with monads and type inference makes it easy and subjectively elegant to write e.g.

  val totalVAT = items.map(_.vat).sum
But if `items` were a `Set[]` and some of the items happened to have the same tax on them, you would get a Set of numbers and a wrong sum in the end.

You could append to the list of such things until the OutOfMemoryError. But it's such a beautiful and powerful language. Sigh.

stopthe··on Git without a forge
That filter may be the advantage, but Mr. Tatham is just too polite to say that aloud.
stopthe··on Gödel's theorem debunks the most important AI myth – Roger Penrose [video]
One can argue that the described feeling is a product of suppressed instinctive behavior. Or, in other words, a detail of a particular implementation of intelligence in a certain species of mammals.
Page 1 of 2Next →