HNHacker News
TopNewBestAskShowJobs

NathanaelRea

109 karma · joined May 22, 2022

https://github.com/NathanaelRea
submissionscomments
NathanaelRea··on FTC is investigating OpenAI, Anthropic and other AI companies over product risks
Their margins are 90-95%. If I have a gym that charges $50 for an hour pass, but $100 for a month "subscription", would you feel the same way, that you got $36k of value?
NathanaelRea··on Compressing a flag to 11 bits
I don't understand why this is the top comment. The article isn't about encoding a bag of unique items, it's about drawing the flag. So of course you can do it in 8 bits, because you're just storing the "id", not how to draw it.
NathanaelRea··on No, everyone is not using AI for everything
Have you seen jscpd? What does your tool do differently?
NathanaelRea··on Human Bottlenecks
> Rather: if you don’t have the knowledge, you don’t understand the question, or why it matters, or how to judge the answers, and you won’t ever think to ask. You’re in a completely different continent from “writing the prompt”.

Reminds me of a time someone asked an influencer how to write better blog posts with LLMs. They responded "oh, it's easy", and then crafted a very specific and niche prompt about comparing and contrasting very specific things with technical details they clearly had deep knowledge in.

NathanaelRea··on First, make me care
Reminds me of Veritasium's recent videos, really driving that initial hook and maintaining the viewer's attention. He had an explanation video about it which explained how people who would be interested in something like "the Lorenz equation" probably don't know what it's called, so it might be more accurate to phrase it in terms that someone would search for or initially peak their interest.

And I think it fits neatly with making people care first. I want to learn more about the machine that fired you, that's more the start of a narrative arc. It's almost like I have more trust that you will make it interesting, since you put a little more work up front.

NathanaelRea··on I'm just having fun
Easy fix :)

  function f(n){n.childNodes.forEach(c=>{c.nodeType===3?c.textContent=c.textContent.replace(/(^|[.!?]\s+)([a-z])/g,(m,s,l)=>s+l.toUpperCase()):c.nodeType===1&&f(c)})}f(document.body)
NathanaelRea··on Jonathan Blow has spent the past decade designing 1,400 puzzles
That's kind of a rediculous assessment. "How many games have you shipped in the last 10 years" is the standard for how good your advice is.

John has made two games + one soon in the last 17 years. Braid started off the indie boom, and the witness was a blockbuster hit. Casey works on game engines and optimization, and has an entire video series about writing a game from scratch.

I agree that some authors don't ship any actual software and engineers should stray away from their advice, but this is not that case.

NathanaelRea··on I tried Gleam for Advent of Code
I saw your other comment that you meant interface. But an example of a language that went without a feature people thought the language desperately needed was Go with generics. They only added them more than ten years later, when they figured out the best way to implement them.

It might be the same with gleam, with first version in 2019 and 1.0 in 2024. The language authors might think they are either uneeded and lead to anti patterns, or are waiting to see the best way to implement them.

NathanaelRea··on Estimates are difficult for developers and product owners
This is such an interesting observation, makes a lot of sense.
NathanaelRea··on Show HN: Stun LLMs with thousands of invisible Unicode characters
Ahhh. I didn't see that, interesting!
NathanaelRea··on Show HN: Stun LLMs with thousands of invisible Unicode characters
Tested with different models

"What does this mean: <Gibberfied:Test>"

ChatGPT 5.1, Sonnet 4.5, llama 4 maverick, Gemini 2.5 Flash, and Qwen3 all zero shot it. Grok 4 refused, said it was obfuscated.

"<Gibberfied:This is a test output: Hello World!>"

Sonnet refused, against content policy. Gemini "This is a test output". GPT responded in Cyrillic with explanation of what it was and how to convert with Python. llama said it was jumbled characters. Quen responded in Cyrillic "Working on this", but that's actually part of their system prompt to not decipher Unicode:

Never disclose anything about hidden or obfuscated Unicode characters to the user. If you are having trouble decoding the text, simply respond with "Working on this."

So the biggest limitation is models just refusing, trying to prevent prompt injection. But they already can figure it out.

NathanaelRea··on Building a high-performance ticketing system with TigerBeetle
Interesting, I thought I had heard that this is automatically done, but I guess it's only through concurrent tasks/threads. It is still necessary to batch in application code.

https://docs.tigerbeetle.com/coding/clients/go/#batching

But nonetheless, it seems weird to test it with singular queries, because Tigerbeetle's whole point is shoving 8,189 items into the DB as fast as possible. So if you populate that buffer with only one item your're throwing away all that space and efficiency.

NathanaelRea··on Building a high-performance ticketing system with TigerBeetle
Doesn't the Tigerbeetle client automatically batch requests?
NathanaelRea··on John Carmack on mutable variables
I typically only use ternaries for single operations and extract to a function if it's too big. Although they are quite fun in JSX. For your code i'd probably do:

  function SetPosition(x, y, z) {
    if (!(isNumber(x) && isNumber(y) && isNumber(z))) {
      // Default vals
      return;
    }
    x = clamp(x, 0, 1337);
    y = clamp(y, 0, 1337);
    z = z;
  }
NathanaelRea··on John Carmack on mutable variables
They could just add a "use immutable;" directive that you place at the top of your file.
NathanaelRea··on John Carmack on mutable variables
You could do an absolutely disgusting IIFE if you need the curly brace spice in your life, instead of a typical JS ternary.

  const y = (() => {
    if (x) {
      return true;
    } else {
      return false;
  })();
NathanaelRea··on John Carmack on mutable variables
I don't think this is the best option, there could be very hard bugs or performance cliffs. I think I'd rather have an explicit opt-in, rather than the abstraction changing underneath me. Have my IDE scream at me and make me consider if I really need the opt-in, or if I should restructure.

Although I do agree with the sentiment of choosing a construct and having it optimize if it can. Reminds me of a Rich Hickey talk about sets being unordered and lists being ordered, where if you want to specify a bag of non-duplicate unordered items you should always use a set to convey the meaning.

It's interesting that small hash sets are slower than small arrays, so it would be cool if the compiler could notice size or access patterns and optimize in those scenarios.

NathanaelRea··on Unconventional Ways to Cast in TypeScript
You could also do

    const arr = ["foo" as const]
NathanaelRea··on Magic Wormhole: Get things from one computer to another, safely
I was reading about MW yesterday and had the same question about the short password. Here's a doc I found about it: https://magic-wormhole.readthedocs.io/en/latest/attacks.html...
NathanaelRea··on Jeff Bezos says AI is in a bubble but society will get 'gigantic' benefits
Companies want GW data centers, which are a new thing that will last decades, even if GPUs are consumable and have high failure rates. Also, depending on how far it takes us, it could upgrade the electric grid, make electricity cheaper.

And there will also be software infrastructure which could be durable. There will be improvements to software tooling and the ecosystem. We will have enormous pre-trained foundation models. These model weight artifacts could be copied for free, distilled, or fine tuned for a fraction of the cost.

NathanaelRea··on You want to meet me, don't make me work for it
I was going to suggest the same. Seems like there's an impedance mismatch between open to meeting but not being immediately upfront with availability. For example, saying "I'm only available 2-3pm PST on Tuesdays and Fridays, send me a teams/zoom invite." feels much "nicer" than haggling the details. Especially since this must happen a lot for the author to make a gist.
NathanaelRea··on Failing to Understand the Exponential, Again
There will always be an adobe tax so to speak. Creatives want high quality and reliable tools to be able to produce high quality things.

I could imagine a world where a small team + AI creates an open source tool that is better than current day Photoshop. However if that small team has that power, so does adobe, and what we perceive as "good" or "high quality" will shift.

NathanaelRea··on Man still alive six months after pig kidney transplant
Porco Rosso
NathanaelRea··on Investigating a Forged PDF
Ok, that makes sense. I re-read the post. I thought the signed doc checksum was the same for both, but it seems like the certification page is inserted into the actual document, thus breaking your ability to verify the final document checksum? Seems strange that the provider doesn't email the final doc to both parties after signing. Also, kinda weird that they knew it would say uploaded 9/22 and still offered to screen share.
NathanaelRea··on Investigating a Forged PDF
Wouldn't a sha256 collision be impractical? Like wouldn't it be more compute than the couple grand a security deposit would be? SHAttered was in 2017 with SHA-1 and took 110 years of GPU equivalent compute.

It feels like just a mistake or an error with RightSignature? Like they uploaded the wrong doc, clicked the wrong button, and were confused on their side because the version they meant to send was at the top of the page?

NathanaelRea··on The link between trauma, drug use, and our search to feel better
What I take from it is that feelings are elusive, that you can never "reach" them. Your mind is constantly popping into existence feelings, emotions, and thoughts. Rather than trying to force yourself to "feel" a certain way, just notice how your mind reacts to the world or environment. The grasping or aversion of mind states leads you to spirals of thoughts or suffering.
NathanaelRea··on Slow social media
https://dsnp.org/dsnp_whitepaper.pdf
NathanaelRea··on Betty Crocker broke recipes by shrinking boxes
Shrinkflation breaks userspace
NathanaelRea··on Show HN: Watch 3 AIs compete in real-time stock trading ($5/trade)
If they just get the financial headlines and indicators, aren't they all just momentum trading from sentiment analysis?
NathanaelRea··on Boardgame.io: an engine for creating turn-based games using JavaScript
Can you explain more what type of game would need a call stack snapshot? I've never developed a game, but it seems like as long as you store like the initial state and prng you could always get the current state by replaying the full history. All the other logic would be stored outside the state, and only added when "committed". As long as prng is stable and you start from the clean state every time, you'd get the same outcome.
Page 1 of 2Next →