HNHacker News
TopNewBestAskShowJobs

diwank

2,120 karma · joined September 11, 2011

Dropped out of Columbia (physics, philosophy) for a Thiel Fellowship. Built Julep AI — open-source AI agent framework, 7k stars on GitHub — because I wanted agents that could actually do things. Now building Memory Store (YC X26): persistent memory for AI agents. Turns out the hard problem isn’t making agents smart, it’s making them remember.

Still fascinated by what foundational models and cognitive architectures teach us about our own minds. Building beats theorizing, but sometimes they’re the same thing.

https://memory.store

https://diwank.space

hi@diwank.space

submissionscomments
diwank··on Field Notes from Shipping Real Code with Claude
You can:

1. Add instructions in CLAUDE.md to not touch tests.

2. Disallow the Edit tool for test directories in the project’s .claude/settings.json file

diwank··on Field Notes from Shipping Real Code with Claude
I’d say around ~40% me, the ideating, editing, citations, and images are all mine; rest Opus 4 :)

I typically try to also include the original Claude chat’s link in the post but it seems like Claude doesn’t allow sharing chats with deep research used in them.

Update: here’s an older chatgpt conversation while preparing this: https://chatgpt.com/share/6844eaae-07d0-8001-a7f7-e532d63bf8...

diwank··on Field Notes from Shipping Real Code with Claude
Feedback appreciated! Will tone it down; did not intend it to be too much about our company, just that it is the codebase I mostly hack on. :)
diwank··on Field Notes from Shipping Real Code with Claude
Author here: To be honest, I know there are like a bajillion Claude code posts out there these days.

But, there are a few nuggets we figured are worth sharing, like Anchor Comments [1], which have really made a difference:

——

  # CLAUDE.md

  ### Anchor comments

  Add specially formatted comments throughout the codebase, where appropriate, for yourself as inline knowledge that can be easily `grep`ped for.

  - Use `AIDEV-NOTE:`, `AIDEV-TODO:`, or `AIDEV-QUESTION:` as prefix as appropriate.

  - *Important:* Before scanning files, always first try to grep for existing `AIDEV-…`.

  - Update relevant anchors, after finishing any task.

  - Make sure to add relevant anchor comments, whenever a file or piece of code is:

  * too complex, or  
  * very important, or  
  * could have a bug 
——

[1]: https://diwank.space/field-notes-from-shipping-real-code-wit...

diwank··on Claude 4 System Card
This is legit Roko’s Basilisk stuff.

https://en.wikipedia.org/wiki/Roko%27s_basilisk

diwank··on Inference-Aware Fine-Tuning for Best-of-N Sampling in Large Language Models
For reasoning models, this would actually improve exploration efficiency and hence possibly allow higher performance for the same compute budget. As in, if you want to sample from multiple rollouts for the same prompt, it's more efficient if the model is able to produce diverse thought directions and consider them to find the best response as opposed to going down similar trajectories and waste compute.
diwank··on Show HN: Open Responses – Self-hosted OpenAI Responses API, works with any model
Support for ollama models is forthcoming. You can track this issue for when it lands: https://github.com/julep-ai/open-responses/issues/2
diwank··on Gemini Robotics
Same. I guess in so many ways, he was remarkably prescient. Anthropic’s Constitutional AI approach is pretty much a living example
diwank··on Nvidia Fugatto 1 – Foundational Generative Audio Transformer Opus 1
Demo page has some really impressive examples:

https://fugatto.github.io/

diwank··on Gandhi's Letter to Hitler (1940)
Unbelievably profound. Gandhi had this rare combination of moral clarity and practical wisdom. The sheer audacity to write to Hitler—not with rage or condemnation, but with an appeal to his humanity—shows the depth of his conviction. He didn’t just preach non-violence; he lived it, even in the face of the ultimate test: reaching out to someone synonymous with destruction and hatred.

What’s amazing is that he didn’t waver in his principles, even when addressing one of history’s most brutal figures. It’s like he saw through the monster to the lost human underneath and tried to remind him of his better self. That level of courage and empathy is just… next-level.

diwank··on Prompts are Programs
Completely agree. We recently published similar thoughts: https://8factoragent.org/
diwank··on Mystery drones swarm US Military base
Title should be changed from UFOs to drones (which is the actual title of the article)
diwank··on Grokking at the edge of linear separability
Grokking is so cool. What does it even mean that grokking exhibits similarities to criticality? As in, what are the philosophical ramifications of this?
diwank··on LLMs, Theory of Mind, and Cheryl's Birthday
Script generated by o1-preview:

  ```python
  # List of possible dates
  dates = [
      ('May', 15), ('May', 16), ('May', 19),
      ('June', 17), ('June', 18),
      ('July', 14), ('July', 16),
      ('August', 14), ('August', 15), ('August', 17)
  ]
  
  def solve_cheryls_birthday(dates):
      # Initial possible dates
      possible_dates = dates.copy()
      
      # Step 1: Albert's statement
      # Create a count of each day
      day_counts = {}
      for month, day in dates:
          day_counts[day] = day_counts.get(day, 0) + 1
  
      # Filter out months where a unique day exists (Albert knows Bernard doesn't know)
      possible_months = set()
      for month in set(month for month, day in dates):
          month_days = [day for m, day in dates if m == month]
          if not any(day_counts[day] == 1 for day in month_days):
              possible_months.add(month)

      possible_dates = [ (month, day) for (month, day) in possible_dates if month in possible_months ]
  
      # Step 2: Bernard's statement
      # Recount the days in the filtered possible dates
      day_counts_in_possible = {}
      for month, day in possible_dates:
          day_counts_in_possible[day] = day_counts_in_possible.get(day, 0) + 1

      # Bernard can now deduce the date; keep dates where the day is unique
      possible_dates = [ (month, day) for (month, day) in possible_dates if day_counts_in_possible[day] == 1 ]

      # Step 3: Albert's final statement
      # Recount the months in the possible dates
      month_counts_in_possible = {}
      for month, day in possible_dates:
          month_counts_in_possible[month] = month_counts_in_possible.get(month, 0) + 1

      # Albert now knows the date; keep dates where the month is unique
      possible_dates = [ (month, day) for (month, day) in possible_dates if month_counts_in_possible[month] == 1 ]

      # The remaining date is Cheryl's birthday
      if len(possible_dates) == 1:
          return possible_dates[0]
      else:
          return None
  
  # Solve the problem
  birthday = solve_cheryls_birthday(dates)
  if birthday:
      print(f"Cheryl's birthday is on {birthday[0]} {birthday[1]}")
  else:
      print("Unable to determine Cheryl's birthday.")
  ```
Output:

Cheryl's birthday is on July 16

diwank··on Ask dang: What is the policy for AI bots on HN?
gotcha. thanks for the pointer!
diwank··on No One's Ready for This
(This is about the ramifications of the new AI image editing tools in Pixel 9 and others)
diwank··on Starbucks' new CEO will supercommute 1k miles from California to Seattle
No mention of anything about the carbon offset Starbucks should make up for?
diwank··on Launch HN: Hamming (YC S24) – Automated Testing for Voice Agents
Congratulations for the launch! We had a big QC need for https://kea.ai/ where we needed to stress test our CX agents in real time too. This would be a big life saver. kudos on the product and the brilliant demo!
diwank··on Markdown is meant to be shown (2021)
It does on a lot of editors and I hate it. On my vim the highlights only get added/removed when I switch back to normal mode, during editing nothing changes except for the actual keystrokes.
diwank··on Markdown is meant to be shown (2021)
Yep but to me this feels like a lot of poor ux decisions too. I would def appreciate the visual indicators of italics and bold text but ffsake please dont toggle it every time I add a bloody keystroke. It's so jarring when editors do that. There are so many alternative designs where you can have both. For instance, on my vim the highlights only get added/removed when I switch back to normal mode, during editing nothing changes except for the actual keystrokes.
diwank··on Markdown is meant to be shown (2021)
Yes! I sometimes prefer to use `====` h1s and `----` h2s especially when I am writing slides or taking notes on a live call for others and I hate that prettier and other linters would automatically turn them into `# ` and `## ` ...

Please stop doing that, prettier.

diwank··on Discovering algorithms by enumerating terms in Haskell
More on the Omega monad from its author:

http://web.archive.org/web/20210616105135/http://lukepalmer....

diwank··on Hugo Awards Disqualification Statement
> These included, for instance, a run of voters whose second names were identical except that the first letter was changed, in alphabetical order; and a run of voters whose names were translations of consecutive numbers.

This is just hilariously lazy. (Other than the fact that this is obviously not cool)

diwank··on Artificial neural network approach to finding the key length of Vigenère cipher
Inverse: “CryptGPT: Privacy-Preserving Language Models Using Vigenere Cipher”

https://huggingface.co/blog/diwank/cryptgpt-part1

diwank··on Vision language models are blind
The number of tokens per image are actually fairly small, ranging from 85 to ~500.
diwank··on Vision language models are blind
Yeah I think their findings are def interesting but the title and the strong claims are a tad hyperbolic.
diwank··on Vision language models are blind
I think while the findings are interesting, the title "Vision language models are blind" is hyperbolic and misleading of the findings. It is true that VLMs have a very different way of sensing and working with image inputs and for low resolutions each image is split up into blocks and then mapped into discrete tokens. They actually really dont have access to finegrained details because this mapping is quite lossy. So, in that sense, these results completely make sense and were not surprising to me but "blind" is a strong implication and the work isnt really able to back that.

Take the first example of the four 2D line plots for instance. I asked Sonnet 3.5 for an answer and retried it 5 times and 2 out of 5 times, it said something like this:

Me:

here's an image with four 2-D line plots. Can you tell me A) how many lines are in each plot? and B) how many times do they intersect each other in each plot?

Write your answers as: Plot 1 (leftmost): ...

Sonnet:

I'll analyze each plot from left to right and provide the requested information:

Plot 1 (leftmost): A) 2 lines (one red, one blue) B) 0 intersections (the lines do not cross)

Plot 2: A) 2 lines (one red, one blue) B) 1 intersection (the lines cross once near the right edge)

Plot 3: A) 2 lines (one red, one blue) B) 1 intersection (the lines cross once near the center)

Plot 4 (rightmost): A) 2 lines (one red, one blue) B) 2 intersections (the lines cross twice, once near the left side and once near the right side)

Each plot consistently shows two lines, one red and one blue, with varying intersection patterns across the four plots.

---

Which isn't completely correct (the 3rd plot has 2 intersections) but still pretty good and the other 3 times, it said plot 3 has 1 intersection.

diwank··on Why AI Infrastructure Startups Are Insanely Hard to Build
While I agree that AI infra startups are hard to build, I strongly disagree with the idea that they are harder than foundational or application layer startups. I think it boils down to what you know and what resources you can muster.

For instance, foundational AI startups are also ridiculously hard to build. You need an insane amount of funding, spend it pretraining models to stay competitive only to find that gains in hardware and model architecture make them obsolete within months plus there's no real guarantee that scaling will keep working.

Application layer startups are hard in a very different way, there's an insane amount of competition and new capabilities are emerging every few weeks. I have worked with a few AI girlfriend startups and they are really struggling with keeping apace and warding off ridiculous amount of competition.

I think it's really just YMMV. Of course, the deeper you get into the stack, the more monopolizing pressure there is. Is it hard to build AI infra startups? Yes 100%. Will there be very few winners? Yes. Is it harder than foundational or application layer startups? Depends on the founders' strengths. Is it Is it a lost cause? I really don't think so.

diwank··on CryptGPT: A Simple Approach to Privacy-Preserving LLMs Using Vigenere Cipher
Just to add- not easily defeated. I am even hosting a bounty for whoever can break this one (the model weights and tokenizer are available on huggingface) :D
diwank··on CryptGPT: A Simple Approach to Privacy-Preserving LLMs Using Vigenere Cipher
Yes of course but this was just to validate the hypothesis that FMs and their tokenizers can generalize on a fully encrypted dataset.

Now that the approach is clearly viable, I am going to extend it to use a modern cipher like XChacha20 which is a gold standard.

← PreviousPage 3 of 8Next →