MurphyA/hacker-news huggingface dataset:
by royalfig | 2025-04-28 20:22:32+00:00
Goodhart's Law states, "When a measure becomes a target, it ceases to be a good measure."

This applies to our favorite LLM models, too, meaning that as they optimize for scoring high on benchmarks, how do we know that's also good for real-world performance like accuracy, latency, or user engagement?

A/B testing AI models helps give you real feedback on how your LLM and its configuration is performing.
by JackYoustra | 2025-04-28 20:22:57+00:00
> now I really won’t read the Mariel study

spite driven willful ignorance is something that I didn't expect to find when starting this conversation.

I'm mostly looking for you to retract your claim about how short-run supply shocks must obviously show up in wages and employment.

EDIT: also nowhere does it require fiscal outlays for assimilation, the single biggest thing is expedited provision of work permits, which is obviously fiscally positive.
by 12_throw_away | 2025-04-28 20:23:08+00:00
More than anything else, this sounds like a good lesson in why commercial game engines have taken over most of game dev. There are so many things you have to do to make a game, but they're mostly quite common and have lots of off-the-shelf solutions.

That is, any sufficiently mature indie game project will end up implementing an informally specified, ad hoc, bug-ridden implementation of Unity (... or just use the informally specified, ad hoc and bug-ridden game engine called "Unity")
by bunderbunder | 2025-04-28 20:23:16+00:00
I'm no game dev but I have had friends who do it professionally.

Long story short, yes, it's very different in game dev. It's very common to pre-allocate space for all your working data as large statically sized arrays because dynamic allocation is bad for performance. Oftentimes the data gets organized in parallel arrays (https://en.wikipedia.org/wiki/Parallel_array) instead of in collections of structs. This can save a lot of memory (because the data gets packed more densely) be more cache-friendly, and makes it much easier to make efficient use of SIMD instructions.

This is also fairly common in scientific computing (which is more my wheelhouse), and for the same reason: it's good for performance.
by mgarciaisaia | 2025-04-28 20:23:26+00:00
I tend to find DDH's takes as innovatively great, but in this case I totally agree that your first quote is not true - Chrome won because Google was behind it.

Source: https://blog.chriszacharias.com/a-conspiracy-to-kill-ie6 (discussed here https://news.ycombinator.com/item?id=19798678 )
by DiogenesKynikos | 2025-04-28 20:23:53+00:00
As I wrote elsewhere, the average speed of CA HSR (as planned) is 250 km/h, which is very competitive, internationally. It's about as fast as the fastest French TGV routes. It only really lags behind the fastest Chinese routes, which run at average speeds of about 290 km/h.

If CA HSR can go through the cities in the Central Valley and still achieve an average speed of 250 km/h, that's well worth it.
by throw0101c | 2025-04-28 20:24:08+00:00
> Christopher Ferguson Rufo (born August 26, 1984) is an American conservative activist,[1][2] New College of Florida board member, and senior fellow at the Manhattan Institute for Policy Research.[3] He is an opponent of critical race theory. He is a former documentary filmmaker and former fellow at the Discovery Institute, the Claremont Institute, The Heritage Foundation, and the Foundation Against Intolerance and Racism.[4][5][6]

* https://en.wikipedia.org/wiki/Christopher_Rufo
by mbrumlow | 2025-04-28 20:24:12+00:00
I don’t think we will have a lack of people who explore and know beyond others how to things.

LLMs will make people productive. But it will at the same time elevate those with real skill and passion to create good software. In the meantime there will be some maker confusion, and some engineers who are mediocre might find them selfs in demand like top end engineers. But over the time companies and markets will realize and top dollar will go to those select engineers who know how to do things with and without LLMs.

Lots of people are afraid of LLMs and think it is the end of the software engineer. It is and it is not. It’s the end of the “CLI engineer” or the “Front end engineer” and all those specializations that were attempt to require less skill to pay less. But the systems engineers who know how computers work, can take all week long describing what happens when you press enter on a keyboard at google.com will only be pressed into higher demand. This is because the single skill “engineer” wont really be a thing.

tldr; LLMs wont kill software engineering its a reset, it will cull those who chose such a path on a rubric only because it paid well.
by Jensson | 2025-04-28 20:24:13+00:00
> Meanwhile, to arrive at the right answers, an understanding of the math must exist somewhere... but where?

In the grammar, you can have grammar rules like "1 + 1 = " must be followed by 2 etc. Then add a lot of dependency rules like "He did X" the He depends on some previous sentence to stuff like that, in same way "1 plus 1" translates to "1 + 1" or "add 1 to 1" is also "1 + 1", and now you have a machine that can do very complex things.

Then you take such a grammar machine and train it on all text human has ever written, and it learns a lot of such grammar structures, and can thus parse and solve some basic math problems since the solution to them is a part of the grammar it learned.

Such a machine is still unable to solve anything outside of the grammar it has learned. But it is still very useful, pose a question in a way that makes it easy to parse, and that has a lot of such grammar dependencies you know it can handle, and it will almost always output the right response.
by forrestthewoods | 2025-04-28 20:24:14+00:00
Gameplay code is a big bag of mutable data that lives for relatively unknown amounts of time. This is the antithesis of Rust.

The Unity GameObject/Component model is pretty good. It’s very simple. And clearly very successful. This architecture can not be represented in Rust. There are a dozen ECS crates but no one has replicated the worlds most popular gameplay system architecture. Because they can’t.
by n_ary | 2025-04-28 20:24:20+00:00
Actually, here in my corner of EU, only the prominent big tech backed well documented and battle tested tools are most marketable skills. So, React, 50 new jobs, but you worked with Svelte/Solidjs, what is that? Java/PHP/Python/Ruby/JS, adequate jobs. Go/Rust/Zig/Crystal/Nim, what are these? While Go has some popularity in recent years and I can spot Rust once in a blue moon. Anything involving requiring near metal work is always C/C++.

Availability of documentation and tooling, widespread adaptation and access to already-trained-at-someone-else's-dime possibility is deemed safe for hiring decision. Sometimes, the narrow tech is spotted in the wild, but it was mostly some senior/staff engineer wanted to experiment something which became part of production because management saw no issue, will sometimes open some doors for practitioners of those stack but the probability is akin to getting hit by lightning strike.
by gjvc | 2025-04-28 20:24:40+00:00
The rot started with IDEs on Linux being appallingly slow until JDK17, followed by the new GUI disaster (been going on since 2021), and they showed shades of desperation in a rambling blog post gaslighting their customers that the new GUI was just really great and everyone says so or they get fired.

Just recently, they have started not only cancelling multiple projects but also they are how cancelling dissent. h0h0h0. Who needs TV?!

But their recent innovation of a monospace font family was really great, so there's that.

(Edited to get event in better chronological order.)
by rolph | 2025-04-28 20:24:51+00:00
there is a doctrine of born secret. and it is a contingency.

if i, or you, or anyone, was to independently realize how to increase yield of a weapon, or create a nuclear isomer weapon, it is secret upon conception.

knowledge is discoverable, and cant be stopped, only access to the tools of production can be stopped.

that is why you CANT stop motivated persons from making independent discovery, you have to prevent your adversary from knowing what you do/dont know, and what you are/are not doing.
by e63f67dd-065b | 2025-04-28 20:24:56+00:00
Engineering is about tradeoffs -- are the resources invested in improving a system worth the return of said improvement? We know full well how to build bridges that will last a thousand years, we just choose not to because it's not an effective use of public funds compared to a fifty year bridge.

The same applies to software engineering -- each additional edge case you handle increases cost but has diminishing returns. At some point you have to say good enough and ship. The cost of perfection is infinite -- you have finite resources, and a great part of engineering is deciding how to allocate them.
by 10000truths | 2025-04-28 20:24:57+00:00
Yes, single scalar values tell you nothing useful if you have no a priori knowledge of the shape of your distribution. Mean and variance are meaningless figures if your distribution is multimodal, for example. If you truly have to compress the distribution into a few numbers, then the best thing to do is to represent it as a series of quantile values. In cases where the distribution is unknown, evenly spaced quantile values are a good start.
by tetha | 2025-04-28 20:24:58+00:00
Yeh, I've been tinkering around a year with a Bevy-competitor, Amethyst until that project shut down. By now, I just don't think Rust is good for client-side or desktop game development.

In my book, Rust is good at moving runtime-risk to compile-time pain and effort. For the space of C-Code running nuclear reactors, robots and missiles, that's a good tradeoff.

For the space of making an enemy move the other direction of the player in 80% of the cases, except for that story choice, and also inverted and spawning impossible enemies a dozen times if you killed that cute enemy over yonder, and.... and the worst case is a crash of a game and a revert to a save at level start.... less so.

And these are very regular requirements in a game, tbh.

And a lot of _very_silly_physics_exploits_ are safely typed float interactions going entirely nuts, btw. Type safety doesn't help there.
by vel0city | 2025-04-28 20:25:22+00:00
The speed limit should be set given the context of what should be safe for the area with the road, and the road design should encourage drivers to drive at that speed.

If its a stretch of road where we don't want cars going more than 30mph, we should set the speed limit at 30mph and design the road, so people tend to go about that speed. Not have a stretch of road where we want people to go 30, build a road people feel comfortable driving 55 in, and then decide "welp, nothing we can do, just change the speed limit I guess."
by ryanisnan | 2025-04-28 20:25:27+00:00
One of the challenges I never quite got over completely, was that I was always fighting rust fundamentals, which tells me I never fully assimilated into thinking like a rustacean.

This was more of a me-problem, but I was constantly having to change my strategy to avoid fighting the borrow-checker, manage references, etc. In any case, it was a productivity sink.
by ChadNauseam | 2025-04-28 20:25:28+00:00
I love Bevy, but Unity is a weapon when it comes to quickly iterating and making a game. I think the Bevy developers understand that they have a long way to go before they get there. The benefits of Bevy (code-first, Rust, open source) still make me prefer it over Unity, but Unity is ridiculously batteries-included.

Many of the negatives in the post are positives to me.

> Each update brought with it incredible features, but also a substantial amount of API thrash.

This is highly annoying, no doubt, but the API now is just so much better than it used to be. Keeping backwards compatibility is valuable once a product is mature, but like how you need to be able to iterate on your game, game engine developers need to be able to iterate on their engine. I admit that this is a debuff to the experience of using Bevy, but it also means that the API can actually get better (unlike Unity which is filled with historical baggage, like the Text component).
by bunderbunder | 2025-04-28 20:25:43+00:00
An iterator works if you're sequentially visiting every item in the collection, in the order they're stored. It's terrible if you need random access, though.

Concrete example: pulling a single item out of a zip file, which supports random access, is O(1). Pulling a single item out of a *.tar.gz file, which can only be accessed by iterating it, is O(N).
by kragen | 2025-04-28 20:25:59+00:00
You don't need the whole Python interpreter to fall back to dynamic method dispatch for overloaded operators. CPython itself implements them with per-interface vtables for C extensions, very similar to Golang but laboriously constructed by hand.

For most code, you don't need static typing for most overloaded operators to get decent performance, either. From my experience with Ur-Scheme, even a simple prediction that most arithmetic is on (small) integers with a runtime typecheck and conditional jump before inlining the integer version of each arithmetic operation performs remarkably well—not competitive with C but several times faster than CPython. It costs you an extra conditional branch in the case where the type is something else, but you need that check anyway if you are going to have unboxed integers, and it's smallish compared to the call and return you'll need once you find the correct overload to call. (I didn't implement overloading in Ur-Scheme, just exiting with an error message.)

Even concatenating strings is slow enough that checking the tag bits to see if you are adding integers won't make it much slower.

Where this approach really falls down is choosing between integer and floating point math. (Also, you really don't want to box your floats.)

And of course inline caches and PICs are well-known techniques for handling this kind of thing efficiently. They originated in JIT compilers, but you can use them in AOT compilers too; Ian Piumarta showed that.
by District5524 | 2025-04-28 20:26:28+00:00
This is a bit more than just red tape madness, it's a strategy to make businesses more transparent. This is about trying to reduce non-reported transactions and too many people dodging their reporting. Even if the rules for cash registries and reporting are detailed, a) that's not really expensive for businesses - it's easy to automate and there are quite a number of competitors; b) compared to accounting and tax rules, they are dead simple.

Receipts or invoices are the basis for a firm's whole economic activity, including the underpinning of their financial reporting, their tax burdens etc. And businesses failing to provide receipts erodes not only the tax base, but also any rights a consumer may have.
by malkia | 2025-04-28 20:27:20+00:00
https://loglog.games/blog/leaving-rust-gamedev/#hot-reloadin...

Hot reloading! Iteration!

A friend of mine wrote an article 25+ years ago about using C++ based scripting (compiles to C++). My friend is super smart engineer, but I don't think he was thinking of those poor scripters that would have to wait on iteration times. Granted 25 years ago the teams were small, but nowadays the amount of scripters you would have on AAA game is probably dozen if not two or three dozen and even more!

Imagine all of them waiting on compile... Or trying to deal with correctness, etc.
by jonahharris | 2025-04-28 20:27:30+00:00
Many experienced founders get rejected by YC and blame ageism. I used to think that too.

After reflecting on my own experience, and talking with others, I think YC is mostly right.

Early-stage startups reward speed, not caution. Experience often slows founders down at the exact moment when reckless momentum matters most.

Here’s my breakdown of where/why older founders struggle and how to approach it more clearly.
by ttoinou | 2025-04-28 20:27:38+00:00
A random bystander who happened to eavesdrop on a conversation between a group of scientists kvetching about The Incentives could be forgiven for thinking that maybe, just maybe, a bunch of very industrious people who generally pride themselves on their creativity, persistence, and intelligence could find some way to work around, or through, the problem.

Thats exactly what they did. They understood the incentives better than others and stayed away from The Officially Approved Science. Reducing talent quality is a good way way to help solve this problem : your system sucks = smart useful people are going somewhere else
by SnazzyUncle | 2025-04-28 20:27:58+00:00
> Absolutely not my experience coming from a country with compulsory voting, and having lived in a country without. People in the country without were generally more ignorant of their own politics, and the few people I met who understood what was going on were hesitant to vote.

All of this is an anecdote. It isn't proof of anything.

I also think that the people that you think are more informed actually weren't more informed and were probably just happened to have the same brand of politics that you happened to subscribe to, and vice versa for the people that you thought were ignorant / uninformed. I see this pattern in almost all mainstream political discussion.

BTW being actually informed means having a deep understanding of the topics at hand and the majority of people simply won't have this because they may not have the time/motivation to delve into such topics. The vast majority of people aren't willing to do this seriously and end up just parroting what they've been told by people on the TV/Youtube/Twitch/Tiktok etc.

> Compulsory voting, and in particular compulsory preferential voting also has a highly centralising effect, which adds to long term stability.

I doubt there is any proof to this assertion at all.

Also why would be a centralising effect be considered a good thing?

Many people (including myself) are disenfranchised with the current political class/system because they don't offer anything different, so you are telling me (someone that is disenfranchised) that I should support this because it will guarantee more of the same. You aren't selling me this idea.

I don't want to participate in the circus that is politics. I see it nothing other than a popularity contest, where my choice is largely irrelevant (as the voters always get shafted) and the candidates are all almost always scumbags that I wouldn't want representing my interests anyway.

So you are suggesting not only that I have to vote (something I think is absolute waste of time), that I also have to put a preference of how I would rank these people I want nothing to do with, so I propagate a status quo that I want to see demolished.

You aren't selling me on this idea.
by bsimpson | 2025-04-28 20:28:41+00:00
I graduated college in the late 00s, and this was already considered a trend then. Airbnb, Dropbox, and Reddit were famously based in SF; while companies from the Google-Facebook era centered in the South Bay.

There was a sense that young people didn't want to be in the socially-disconnected, car-dependent suburbs, so companies would have an easier time retaining talent in The City (SF). For those in my generation who haven't been rewarded with a spouse + kids (as expected for 30-somethings in generations before ours), many have moved to New York as San Francisco has struggled to maintain a compelling social life away from the office.
by Pet_Ant | 2025-04-28 20:29:06+00:00
> Oftentimes the data gets organized in parallel arrays (https://en.wikipedia.org/wiki/Parallel_array) instead of in collections of structs. This can save a lot of memory (because the data gets packed more densely) be more cache-friendly, and makes it much easier to make efficient use of SIMD instructions.

That seems like something that could very easily be turned into a compiler optimisation and enabled with something like an annotation. Would have some issue when calling across library boundaries ( a lot like the handling of gradual types), but within the codebase that'd be easy.
by GeekyBear | 2025-04-28 20:29:17+00:00
Eventually you will have to build out the rail line in densely populated areas (especially near San Francisco and LA). High speed rail requires that you to avoid unnecessary curves.

At that point, you're going to have to start using imminent domain.

Putting it off until after you have billions of dollars in sunk costs in the Central Valley doesn't change that.
by tsumnia | 2025-04-28 20:29:43+00:00
I teach the math behind AI, so my slides are very dense. Not "text heavy", but elaborate - some animations, graphics with arrows pointing to more graphics, 3-4 slides on just explaining what all the symbols in a math equation mean, and a worked example.

I would never be able to design my slides if I used a Markdown to PPT converter.
by leansensei | 2025-04-28 20:29:47+00:00
I'm working on my second self-published technical book related to Elixir. The first one has been a surprising success, but since it was about learning to use Ecto on the basis of an old pedagogical toy database (and tiny dataset), the new book is about the development of a production-grade REST API with Elixir and Phoenix.

I find that many books out there are focused on documenting the "happy path" for rather small and simplistic applications without boundary conditions or business thinking behind them.

So, I thought (as with the first books) that it mix things up by also documenting the business context, the questions, decisions, and the decision-making process itself, as well as all the gotchas and "side-quests", rather than showing "here's how you do it" and then expecting the reader to suddenly make the jump from tutorial hell to actually software engineering.

Overall, it's enormously enjoyable, and I hope it goes as far as the first book, and possibly even farther.
by Kon-Peki | 2025-04-28 20:30:21+00:00
> Small diesels could be an option but they're harder to pull start for a given size.

I once needed to jump-start a small marine diesel, many miles from land...

There was a small lever that cuts compression. You have to get it spinning really fast before restoring compression! It's definitely a lot of work!

EDIT - Here is a cheap modern small marine diesel [1]. The operation manual suggests that you don't have to do anything to get it spinning quickly, you just have to crank it 10 times, put away the crank handle, and then flip the compression switch. That's progress!

[1] https://www.yanmar.com/marine/product/engines/1gm10-marine-d...
Show HN: AI Beauty Test – Get AI Score and Tips on Your Selfie (Free, No Login)
by DearestZ | 2025-04-28 20:30:44+00:00
Hey HN!

Just launched a little side project I've been tinkering with: AI Beauty Test (https://aibeautytest.pro).

It's a simple web app where you can upload a selfie (no login needed!), and an AI model analyzes it. The AI looks at various aspects like:

Facial Features: Assessing things like symmetry, proportions, and general face shape. Skin Condition: Analyzing texture, evenness of tone, and visible blemishes. Based on this analysis, it gives you:

An overall Attractiveness Score (on a 0-10 scale). A few Personalized Recommendations or tips for potential enhancements. Built it mostly out of curiosity about what current AI models can "see" or interpret in terms of facial aesthetics when asked to perform this kind of analysis.

The key things are: it's completely free to use, and there's no signup or login required. Just upload a photo and see what the AI comes back with.

Now, obviously, beauty is super subjective, and AI analysis like this is definitely not perfect – take the score and suggestions with a huge grain of salt! It's more of a fun experiment exploring AI capabilities in image analysis rather than a definitive judgment tool. Consider it a tech demo.

Would love for you guys to give it a try at https://aibeautytest.pro and let me know what you think.

Any feedback, bug reports, interesting or weird results you get are all welcome!

Cheers!