HNHacker News
TopNewBestAskShowJobs

thechao

5,805 karma · joined September 23, 2013

submissionscomments
thechao··on Code is cheap now, but software isn't
Vibecoding is the feeling of coding. It's the same feeling people have when they say they can see the picture in their head, but can't quite draw it.
thechao··on Polymarket refuses to pay bets that US would 'invade' Venezuela
That's just a rescue op, bro.
thechao··on I changed my personality in six weeks
Right? It was a weird test. It started with OCEAN — which got a completely different result than the real OCEAN tests I've done — and then moved to a weird interest/aptitude test. It's clearly some BS marketing thing.
thechao··on I changed my personality in six weeks
I took the test, and the results were completely meaningless. It said that I have a moderate or below average interest in science or engineering. This is patently wrong. This is a deep, abiding, long-term love-affair. It's why I've got a PhD in programming language theory, and have done all the course work, but not the dissertation for PhD's in Economics, Computational Biology, Statistics, Epidemiology, and Mathematics. So... yeah. Complete & utter baloney.
thechao··on IMS Toucan – Text-to-Speech for over 7000 Languages
I know this is speech synthesis; but, on a tangential note, it'd be lovely if LLMs could help preserve all the extant languages. That way those languages that died could be revived, later...
thechao··on FracturedJson
Autocorrect — employer. Too late to change, now!
thechao··on FracturedJson
I just built a C++ formatter that does this (owned by my employee, unfortunately). There's really only two formatting objects: tab-aligned tables, and single line rows. Both objects also support a right-floating column/tab aligned "//" comment.

Both objects desugar to a sequence of segments (lines).

The result is that you can freely mix expression/assignment blocks & statements. Things like switch-case blocks & macro tables are suddenly trivial to format in 2d.

Because comments are handled as right floating, all comments nicely align.

I vibe coded the base layer in an hour. I'm using with autogenerated code, so output is manually coded based on my input. The tricky bit would be "discovering" tables & block. I'd jus use a combo of an LSP and direct observation of sequential statements.

thechao··on BYD Sells 4.6M Vehicles in 2025, Meets Revised Sales Goal
Real income in trades is up; that doesn't mean it's great pay, just up. Real housing costs have greatly outpaced that. It's the crazy post-2000 low interest boom-bust cycle that's wrecking the housing trades as a functional job. Trades are hugely oversubscribed during the boom, and the busts are too long to maintain the labor force.

If we want to build housing, we'll need a stabilizing force for that. I don't see a way to make that happen outside of govt intervention.

thechao··on ACM Is Now Open Access
PostDocs review the review. PI's sign off on PD's to make sure they're not idiots. Only big labs have enough PD's to let them do reviews. And, for sure, in CS there's almost no big labs. I was under Bjarne Stroustrup, and the larger umbrella group was probably 40ish staff, in total. That'd be: 3 lead PIs (Bjarne, Nancy, Lawrence); there were a small core of assistant profs (Jaakko, Gabi, etc. — maybe 4 or 5 of them?) There were no PD's: just 25ish grad students, and then a rotating stable of undergrads. We were extremely well funded (JP Morgan, MSFT, the fed).

Our "sister" lab over in computational biology had a few PD's, but was 2x as big, and had easily 5x the funding.

thechao··on BYD Sells 4.6M Vehicles in 2025, Meets Revised Sales Goal
Housing in the US is labor constrained. When I talk to GCs, subs, etc., they'll say that materials a bit more expensive, and labor is a bit more expensive; but what the complain about — and this can be for hours, if I get one going — is the complete lack of labor in all trades. This isn't a new problem; the "old hands" (GCs in the 60s and 70s) noted the labor drop out even 30+ years ago. The only saving grace we had was a strong trade force incoming population (immigrants); but, we've cut that off.

It wouldn't surprise me if our industry is also labor constrained? I know my brother had a machine shop to make aftermarket titanium parts for (motor)bikes, some cars, etc. He had a policy of nonstop looking for new machinists, even if he was fully staffed, because a machinist could just wander off at any time. With only 4 employees, he could find himself at at 25–50% loss of ship time in just a few days, at any time. It's not even like the machinists were getting more money. They'd just leave, because the new shop was 5m closer than his.

Fixing the labor pool issue is a decades long issue. More money in that pool won't fix things. I don't even know what's going on. Maybe I can just blame modern financialization for the issue? That seems easy, if wrong.

But, for sure, the complete lack of social safety net for labor can't be helping. Maybe if we guaranteed child care, 100% round-the-year safe spaces (we could use the fantastically expensive schools which are empty 75% of the time?), 3-free-meals-per-child, and free education through an associates degree? None of those are particularly expensive, even at the national scale.

thechao··on ACM Is Now Open Access
Let's be real: graduate students are not paid well. Even a modest payment scheme would be a dramatic boost in their income. What payment schedule would you use for review? By paper? By journal? If it's "by paper" then the students will be motivated to churn through the papers to get paid. I'm not sure what the incentive structure is there, but it doesn't sound right.

I guess the journals could turn around and pay the PI? But, then what? The "reviewers" still aren't being paid; just the PI? The incentive then is for the PI to have as many grad students as possible just reviewing papers. (FREE. MONEY.) If there was ever a dynamic I've been in where one agent doesn't need MORE power, it's the PI-grad-student one.

And, I've not even considered (in depth) the Bad Actors™ in such a situation. I'm just thinking about basic humans humaning along...

thechao··on ACM Is Now Open Access
I was in academia for only a few years. I did a lot of reviewing (one of the chores for graduate students). I don't know what to say, here; there needs to be an economically based gate keeper for publication & review. Otherwise you'll get spammed by hundreds (per graduate student) of crazy-people papers. I was in a niche PL subfield (generic programming in the mid-2000s), and there was this one guy I called "guitar dude" that kept submitting PL papers using "guitar theory". The basis of the theory was an "algorithm" he developed to determine if a number was prime in O(1) (constant!!?) time in the size of the number. He was by far the most determined; he had a "swap" scam he ran to get his papers in. OTOH, submissions to the editor (my PI) numbered in the THOUSANDS, and we only had, like, 35 attendees at GPCE? I can't imagine what Nature or Science have to deal with.

I don't know how submission works for non-Western subsidized countries; but, just wading through the pre-AI submission process was a 50+-hour a week job for one, tiny, niche conference. Making the cost $1000 cuts that down by at least 2 orders of magnitude.

On the flip side ... paying the reviewers just seems like a bad idea? Reviewers need to be skeptical AF. Even the best scientists can throw out turds every now and then.

thechao··on 50% of U.S. vinyl buyers don't own a record player
My dad grew up in the 50s & 60s. During COVID he purchased my daughters' the, I quote, "shittiest briefcase record players" he could find. Both girls listen to their music on their devices, but also buy vinyl. The other day, my eldest came down from her room complaining that her vinyl "sounded awful". I told her to bring it up with their Grampy. His response: "you can't appreciate good playback until you've heard awful playback on shitty record players like I had to.". My eldest is now plotting a complete hifi system, and is learning all about how to transfer "vinyl" to "digital" without losing the parts of the vinyl she likes.

This was a 5 year play by my dad. Shout out.

thechao··on Efficient method to capture carbon dioxide from the atmosphere
I'm going to have to disagree in a (hopefully) nuanced way. First, I just ran an end-to-end continent scale simulation of CO2 sequestration for the US, as is. To put it bluntly: there's no way outside of magical pocket sized fusion that will make this work. If you add full ground transportation abatement; full power abatement; and, then, use dedicated thermal sources, then the final cost is ~1 trillion a year. And, that's after all the positive upsides to the economy. There's a bunch of "almost unlimited upside" to be had from not having to move Miami, Houston, etc., but it's too complicated to model. However, just the healthcare implication upsides are roughly parity, disaster included.

But! Notice that abatement doesn't get us to 0. It merely slows the process. The remainder absolutely needs ACC. The output stream needs to be dirt cheap, the thermals need to be 100°C and not 900°C. Those sorts of things would bring ACC down to "hundreds of billions" rather than a trillion.

thechao··on Go away Python
For C/++ just use "#!". When TCC first came out, we used this exact technique for "C scripting". It requires a dirty SO methodology (you can't really control linking well).

For larger projects (the exe), the shebang points to a C build file, which when compiled, knows the root path; that C build script then looks for a manifest, builds, links, and fork()s. A good a/m timestamp library with direct ccache support can spin up as fast as a script even on big projects.

Again, this is all a bad idea bc it's hard to control your environment.

I guess we were doing all this in the mid 2000s? When did TCC come out?

thechao··on Parsing Advances
As a project gets larger the cost of owning a dependency directly begins to outweigh the impedance mismatch between 3rd party software & software customized to your project.

I've got 10 full time senior engineers on a project heading in to its 15th year. We rewrite even extremely low level code like std::vector or malloc to make sure it matches our requirements.

UNIX was written by a couple of dudes.

thechao··on Formulaic Delimiters in the Iliad and the Odyssey
Weird. I was just having a similar discussion with my colleagues regarding coding style. Anyways, I absolutely view text (code more than prose; but poesy definitely has this!) to be 2D. There is both per-line and interline structure that good formatting surfaces; it simplifies long range reasoning about invariants.

I mean... the whole field of typographic ad copy is about 2D writing?

thechao··on Toys with the highest play-time and lowest clean-up-time
Blocks is the top comment (for me); and yours is number two. Timeless classic. Another one could be plasticine clay. These toys afford play, they don't direct, restrict, or guide play. Other good toys like this: box, stick, the woods, paper (especially a big roll of butcher paper), and things to draw with (I find a black, red, blue, yellow and green sufficient).
thechao··on Fabrice Bellard Releases MicroQuickJS
If you're in a room with 100 physicists and Feynman, the accumulated wisdom of Feynman is your best bet.
thechao··on Show HN: Autograd.c – A tiny ML framework built from scratch
Yep. You can find used copies at some online places? Powell's in Portland (online store) sometimes has it for 25 or 30 $s.
thechao··on Inca Stone Masonry
We recently visited Peru — Machu Picchu for a week, then Tambopata (the Amazon) for a week. The Amazonians are still proud of the quality of the stone hammers they find and sell to the highlanders; apparently, there's still "old school" stone masons that insist on using "good" Amazonian hammer rocks.
thechao··on Show HN: Autograd.c – A tiny ML framework built from scratch
You'd pay the cost of the core computation O(n) times. Matrix products under the derivative fibration (jet; whatever your algebra calls it) are just more matrix products. A good sized NN is already in the heap. Also, the hard part is finding the ideal combination of fwd vs rev transforms (it's NP hard). This is similar to the complexity of finding the ideal subblock matrix multiply orchestration.

So, the killer cost is at compile time, not runtime, which is fundamental to the underlying autograd operation.

On the flip side, it's 2025, not 2006, so pro modern algorithms & heuristics can change this story quite a bit.

All of this is spelled out in Griewank's work (the book).

thechao··on Show HN: Autograd.c – A tiny ML framework built from scratch
At best you'd be restricted to the forward mode, which would still double stack pressure. If you needed reverse mode you'd need 2x stack, and the back sweep over the stack based tape would have the nearly perfectly unoptimal "grain". If you allows the higher order operators (both push out and pull back), you're going to end up with Jacobians & Hessians over nontrivial blocks. That's going to need the heap. It's still better than an unbounded loop tape, though.

We had all these issues back in 2006 when my group was implementing autograd for C++ and, later, a computer algebra system called Axiom. We knew it'd be ideal for NN; I was trying to build this out for my brother who was porting AI models to GPUs. (This did not work in 2006 for both HW & math reasons.)

thechao··on A proof of concept of a semistable C++ vector container
Neat. Here's what I'd keep: just an epoch saying when the last valid element of the vector is. The iterator just needs a ptr to the vector and the vector's data. It's a constant time lookup, with somewhat heavier iterators. I guess this is something like MSFT's old debug iterators?
thechao··on Sick of smart TVs? Here are your best options
No, you mean utopia, friend.
thechao··on A “frozen” dictionary for Python
And, yet, somehow, functional languages have been doing this since forever? I jest, I jest! There's an entire field of study focused on this! I'm no expert, but imagine you've got a singly-linked list, and we're going to allow only push_back() and pull_back() (no insert()). Let's go ahead and let multiple owners have at this list. If A does "pull_back()" what really happens is A has a local "tail" pointer that moves back along the end of the list and has a new belief about the end of the list. When A does "push_back()" it begins attaching links at its new tail. Since the links just "point backwards" without modifying the old links, this doesn't mutate the list "as is", it only mutates A's version of the list. So, if B is also looking at the list, it could just start doing "push_back()" and add its own "tail". The result is a data-structure that's a "bunch of shared singly linked lists" in a bush structure that's more akin to a tree than a singly linked list.

You can do the same thing with binary trees and other structures. It's more fiddly, and there's definitely places where single-ownership allows mutability "under the hood" for real performance gains, but that's the basic idea.

thechao··on If You Quit Social Media, Will You Read More Books?
Yeah, here's another one: some books just aren't good; it's ok to put it down & give up.
thechao··on Kenyan court declares law banning seed sharing unconstitutional
What hurt farmer's the worst is the formation of modern seed trusts (consolidation); well, on the seed side, at least, for small farmers.
thechao··on Netflix to Acquire Warner Bros
I don't want you to think I'm picking on you; but, I've been thinking about the MBA-bullshittism "consolidation" for a while. It's really a euphemism for "trust formation", right? It seems like we fought tooth-and-nail just 100 years ago to set up real antitrust laws, with real teeth... and now every industry is "consolidated". What's going on in health and seed and cars makes me seethe.
thechao··on All about automotive lidar
Let's just do a quick comparison: the visual cortex consumes about 10x more volume of the human brain than the language center. So... that's a rough comparison of difficulty. I seem to remember the visual centers is also a lot older, evolutionarily than the language centers?
← PreviousPage 4 of 34Next →