HNHacker News
TopNewBestAskShowJobs

jcheng

1,346 karma · joined May 19, 2010

work email: joe AT posit DOT co
submissionscomments
jcheng··on AI scrapers request commented scripts
It's not quite as trivial as that; one could start the page with a <script> tag that contains "<!--" without matching "-->", and that would hide all the content from your scraper but not from real browsers.

But I think it's moot, parsing HTML is not very expensive if you don't have to actually render it.

jcheng··on How OpenAI uses complex and circular deals to fuel its multibillion-dollar rise
The layoffs at Amazon and Microsoft are not due to lack of profits. They’re massively profitable right now.

https://www.macrotrends.net/stocks/charts/MSFT/microsoft/ebi...

https://www.macrotrends.net/stocks/charts/AMZN/amazon/ebitda

jcheng··on A sharded DuckDB on 63 nodes runs 1T row aggregation challenge in 5 sec
Not if you're passing binary data
jcheng··on How much Anthropic and Cursor spend on Amazon Web Services
Why taxpayers? Where’s the systemic risk in AI labs getting acquired for cents on the dollar? The taxpayers weren’t holding the bag during the dot com crash, just investors.
jcheng··on Show HN: Playwright Skill for Claude Code – Less context than playwright-MCP
For 2, a lot of companies use AWS Bedrock to access Claude models instead of Anthropic, for exactly this reason. Amazon’s terms say they don’t log prompts or completions and don’t send anything to the model provider. If your production database is already hosted by AWS, it doesn’t seem like much additional risk.
jcheng··on Which table format do LLMs understand best?
No, I didn’t provide any tools
jcheng··on America is now one big bet on AI
The difference in coding ability between then and now is pretty huge. And a year ago o1 hadn’t been introduced yet, whereas now the “reasoning” technique is pretty widespread.

Not sure if you’re counting things built on top of the models but if so, coding agents have also come a long way since a year ago.

jcheng··on Which table format do LLMs understand best?
I want this for after the code has run and returned results. Often when you use code to answer questions about a table, the result is in the form of a smaller table. I'd like to know how small that table needs to be before you can rely on the model being able to make reliable observations about it.
jcheng··on Which table format do LLMs understand best?

    uv add google-genai
    uv run scripts/run_benchmarks.py --models google/gemini-2.5-pro --formats markdown_kv --limit 100
And add GOOGLE_API_KEY=<your-key-here> to a file called .env in the repo root.

Unfortunately I started getting "quota exceeded" almost immediately, but it did give 6/6 correct answers before it crapped out.

jcheng··on Which table format do LLMs understand best?
gpt-5 also got 100/100 for both CSV and JSON.

    uv run inspect eval evals/table_formats_eval.py@table_formats_csv --model openai/gpt-5 --limit 100
    uv run inspect eval evals/table_formats_eval.py@table_formats_json --model openai/gpt-5 --limit 100
jcheng··on Which table format do LLMs understand best?
I was curious enough to have Codex create a similar benchmark: https://github.com/jcheng5/table-formats

With 1000 rows and 100 samples and markdown-kv, I got these scores:

- gpt-4.1-nano: 52%

- gpt-4.1-mini: 72%

- gpt-4.1: 93%

- gpt-5: 100%

I was so surprised by gpt-5 getting 100% that I ran it again with 1000 samples. It got 999 correct, and one wrong.

To reproduce it yourself, clone the repo, add a .env file with OPENAI_API_KEY, `uv sync`, and then run:

    uv run inspect eval evals/table_formats_eval.py@table_formats_markdown_kv --model openai/gpt-5 --limit 100
Update: Also, number of rows makes a massive difference, unsurprisingly; at 100 rows, gpt-4.1-nano scores 95%+ for both markdown-kv and csv. Both model and record count seem to matter a lot more than format.
jcheng··on How I influence tech company politics as a staff software engineer
Thanks for the thoughtful reply. I agree with all that and I think I was trying to say something similar with my last paragraph.

I’ve gotten along with _almost_ every person I’ve worked with, including some pretty challenging personalities. I’ve always done very well at my job duties and gone “above and beyond” regularly. The only times I felt that might not be nearly enough, was at the two large companies I’ve worked at. Someone several levels away from me, that I would never meet, would decide whether I got a promotion or a raise or a juicy new assignment based on a game of organizational telephone. Frankly, when I tried I did pretty well at that game, but it was the first time in my career that I was tempted to do something out of cynical self ambition or winning rewards for my team instead of just trying to do the right thing for the customer or the business.

That’s what I think of when I hear “politics” and why, by comparison, it felt to me like at a small enough scale it’s not a thing. But if politics means needing leadership to like and appreciate you, then yeah absolutely, that is true anywhere there’s even one level of hierarchy.

jcheng··on How I influence tech company politics as a staff software engineer
I’ve mostly worked at small startups in my 30 year career, and been fortunate to work mostly with excellent founders and teams. Certainly that experience colors my convictions, as your experience colors yours.
jcheng··on How I influence tech company politics as a staff software engineer
It's SO different. It doesn't guarantee that life is good, but politics plays a much smaller role, especially at the very small sizes. If you're objectively awesome, the chances of you being sidelined for political reasons is pretty low when there are like 10 people in the whole company. It's just obvious to everyone who is delivering value and who is not.

Conversely, if you're mediocre, there's nowhere to hide.

Or maybe instead of saying there aren't politics at small companies, it's more accurate to say that there are politics, but they're simple--everyone strives to make the (hopefully benevolent) dictator, I mean founder, happy. If your founder is awesome, life is good. If your founder is not awesome, well, everyone is going to have a bad time anyway.

jcheng··on R MCP Server
A huge red flag to me is that the tool calls here are stateless (every tool call is carried out by a new R process) which means the state has to live in the agent’s context, exactly where you don’t want it for so many reasons. For example, reading a 20MB CSV will immediately end the conversation for any LLM that exists today. And even if it fits, you’re asking the LLM driving this to transcribe the data verbatim to other tools—it has to literally generate the tokens for the data one by one (as opposed to just passing a variable name or expression). This is very slow, very expensive, capped at max output token count, and an opportunity for the LLM to make a mistake.

If the author(s) want to reach out to me, I’m happy to talk about alternative approaches or the extensive native R LLM tooling that exists now. Email in profile.

jcheng··on You don't want to hire "the best engineers"
Do you have any advice for how to suss out someone's hunger, drive, and scrappiness during the hiring process?
jcheng··on Cloudflare Radar: AI Insights
If the TTL of one domain’s records are all shorter than the TTLs of another domain’s, what would make downstream and client caching cancel out? Do clients not respect TTLs these days?

(In this particular case, I don’t think the TTLs are actually different, but asking in general)

jcheng··on Cloudflare Radar: AI Insights
The heading says “Generative AI services popularity - Top 10 services based on 1.1.1.1 DNS resolver traffic”
jcheng··on How to Fix Your Context
Here's my attempt at explaining tool calling:

https://youtu.be/owDd1CJ17uQ?si=Z2bldI8IssG7rGON&t=1330

It's an _incredibly_ important concept to understand if you have even a passing interest in LLMs. You need to understand it if you want to have any kind of mental model for how LLM-powered agents are even possible.

jcheng··on Representing Python notebooks as dataflow graphs
For as long as there have been Jupyter notebooks, there have been people saying "Wait, what??" But there have been way more people using them, and finding them pretty effective despite their inherent lack of soundness.

I personally fall into both camps--both horrified at the execution model but also, it's not actually caused problems for me as it's second nature to restart the kernel when changing upstream cells.

That said, marimo feels like a significant step forward and I'm rooting for them to succeed.

jcheng··on 1910: The year the modern world lost its mind
Not at all. The iPod of the day had a click wheel as an input device. The iPhone introduced us to capacitive touch, multitouch, gesture recognition, full web browsing. Huge leap compared to not only the iPod but the PocketPCs of the day.

Listen to the audience reaction when he shows how you scroll a list view: https://youtu.be/VQKMoT-6XSg?si=OmbgSG7nmEpdAETl&t=970

jcheng··on Show HN: I wrote a "web OS" based on the Apple Lisa's UI, with 1-bit graphics
Same here, I spent forever on it :(
jcheng··on MCP: An (Accidentally) Universal Plugin System
Thank you!
jcheng··on MCP: An (Accidentally) Universal Plugin System
Only input, not output.

https://modelcontextprotocol.io/specification/2025-03-26/ser...

jcheng··on London's largest ancient Roman fresco is “most difficult jigsaw puzzle”
Stuff Made Here https://www.youtube.com/watch?v=WsPHBD5NsS0

Mark Rober https://www.youtube.com/watch?v=Sqr-PdVYhY4

jcheng··on Berkshire Hathaway Now Pays 5% of All Corporate Income Taxes in America
And what about using the “back door Roth IRA” to get around the Roth IRA’s income test? What about when the IRS says the back door Roth is allowed?

https://www.currentfederaltaxdevelopments.com/blog/2018/7/12...

jcheng··on When Fine-Tuning Makes Sense: A Developer's Guide
200 examples at most, really?? I have been led to believe that (tens of) thousands is more typical. If you can get excellent results with that few examples, that changes the equation a lot.
jcheng··on A lost decade chasing distributed architectures for data analytics?
Or better yet, use CTEs: https://duckdb.org/docs/stable/sql/query_syntax/with.html
jcheng··on An image of an archeologist adventurer who wears a hat and uses a bullwhip
Those are great, I would watch any one of those movies. Maybe even the "Across the Indiana-Verse" one where they are all pulled into a single dimension.
jcheng··on Gemini 2.5 Pro vs. Claude 3.7 Sonnet: Coding Comparison
I'm sympathetic in general, but in this case:

"You will need git, XCode tools, CMake and libomp. Git, CMake and libomp can be installed via Homebrew"

That really doesn't seem like much. Was there more to it than this?

Edit: I tried it myself and the cmake configure failed until I ran `brew link --force libomp`, after which it could start to build, but then failed again at:

    [ 55%] Building CXX object src/CMakeFiles/solvespace-core.dir/bsp.cpp.o
    c++: error: unknown argument: '-Xclang -fopenmp'
← PreviousPage 3 of 17Next →