MurphyA/hacker-news huggingface dataset:
by HarHarVeryFunny | 2026-01-14 15:52:36+00:00
Sure, but not all compilers are created equal and are going to go to the same lengths of analysis to discover optimization opportunities, or to have the same quality of code generation for that matter.

It might be interesting to compare LLVM generated code (at same/maximum optimization level) for Rust vs C, which would remove optimizer LOE as a factor and more isolate difficulties/opportunities caused by the respective languages.
by DrScientist | 2026-01-14 15:52:52+00:00
Thinking about it - for traditional text based interfaces like a unix shell, perhaps I'd argue that with stackoverflow and google search they became more discoverable than GUI's.

And perhaps even more with LLMs.

ie it's easier to find out how to do X in bash and cut and paste the solution than watch a video on which series of things to click.

Not sure how that extends to specific chat interfaces - can you ask the general models how best to use specific chat from ends over specific tools?
Show HN: Browser-use, Qwen 2.5 3B, Sentience – Jest assertions for AI web agents
by tonyww | 2026-01-14 15:52:58+00:00
Hi HN,

This is an integration between browser-use and Sentience SDK, where Sentience acts like Jest for AI web agents: it lets agents assert what changed on the page, instead of guessing when they’re “done”.

Most web agents today rely on screenshots or raw DOM dumps and hope the model infers layout, state, and completion correctly. That can work for demos, but it’s expensive, brittle, and very hard to validate or debug.

Sentience takes a different approach.

The goal isn't to replace vision models, but to avoid paying for them when geometric processing of page structure is sufficient for most web pages.

At each step, Sentience builds a semantic snapshot of the page that captures what matters for interaction, not pixels or raw DOM:

* interactive elements (links, buttons, inputs)
* roles + normalized text
* bounding boxes + relative position
* dominant groups (main lists / feeds)
* ordinal structure (“first”, “top”, “last”)

This snapshot is passed to the agent as structured text (≈ 0.6–1.2k tokens per step in practice), which enables:

* browser-use agents to run without screenshots by default
* text-based local LLMs (e.g. Qwen 2.5 3B) to work reliably using text-only prompts
* Jest-style assertions over semantic state (e.g. “main list exists”, “first item clicked”, “task complete”)

In short:

* browser-use acts
* Sentience SDK asserts

That separation makes agent behavior inspectable, debuggable, and testable, instead of opaque and heuristic-driven. It also reduces reliance on vision models when they aren’t strictly necessary.

Sentience SDK includes an agent runtime with per-step and task-level assertions, so agents can explicitly verify progress rather than relying on implicit “done” signals. On assertion failure after retries, Sentience SDK will trigger a fallback to vision models.

Example (browser-use + local LLM): Multi-step agent using Qwen 2.5 3B with semantic assertions: https://github.com/SentienceAPI/browser-use/pull/6/files

Example for failed task assertion logs: https://justpaste.it/lixt2

Example for successful task run logs: https://justpaste.it/izg2y

Full write-up with design rationale, tradeoffs, and examples: https://medium.com/@rcholic/beyond-clicking-how-we-taught-ai...

Open source SDK:

Python: https://github.com/SentienceAPI/sentience-python
TypeScript: https://github.com/SentienceAPI/sentience-ts
browser-use integrations:

Jest-style assertions for agents: https://github.com/SentienceAPI/browser-use/pull/5

Browser-use + Local LLM (Qwen 2.5 3B) demo: https://github.com/SentienceAPI/browser-use/pull/4

Token usage comparison (semantic snapshots vs screenshots in browser-use): https://github.com/SentienceAPI/browser-use/pull/1

Happy to answer questions or share minimal examples if you’re curious how this works in practice.

ShowHN screenshots from the test runs: https://jpcdn.it/img/small/435580414b5e9bc2236ca025573f3724....
by rurp | 2026-01-14 15:53:06+00:00
Yep, my company moved onto GH Actions a few years ago and this was probably the single biggest pain point. But also the whole system just feels awkward and annoying to work with. It feels like a classic Microsoft product that would never get traction from a standalone company but because it's part of Microsoft/GitHub and is "good enough" lots of people put up with it.
by k310 | 2026-01-14 15:53:14+00:00
Translation: "We're putting all our eggs in one basket. Nothing could possibly go wrong. We're sure that you will quickly change everything about the way you work, and to ignore news that you hear about colossal overruns and abandonment of drop-in replacement projects by customers of little fly-by-night companies like Oracle.

We spent over a year on the overhaul!"
by Imustaskforhelp | 2026-01-14 15:53:21+00:00
> It introduces more dependencies(Python which I solved via Nix) but others haven't solved this problem and the Python script has dependencies(such as Click for the CLI).

UV scripts are great for this type of workflow

There are even scripts which will install uv in the same file effectively making it just equivalent to ./run-file.py and it would handle all the dependency management the python version management and everything included and would work everywhere

https://paulw.tokyo/standalone-python-script-with-uv/

Personally I end up just downloading uv and so not using the uv download script from this but if I am using something like github action which are more (ephemeral?) I'd just do this.

Something like this can start out simple and can scale much more than the limitations of bash which can be abundant at times

That being said, I still make some shell scripts because executing other applications is first class support in bash but not so much in python but after discovering this I might create some new scripts with python with automated uv because I end up installing uv on many devices anyway (because uv's really good for python)

I am interested in bun-shell as well but that feels way too much bloated and even not used by many so less (AI assistance at times?) and I haven't understood bun shell at the same time too and so bash is superior to it usually
by shmolyneaux | 2026-01-14 15:53:27+00:00
While people can nitpick, the article is pretty clear that there isn't a single answer. Everything depends on how you constrain the problem. How much experience does the developer have? What time constraints are there? Is it idiomatic code? How maintainable is the code? You can write C with Rust-like safety checks or Rust with C-like unsafety.

When you can directly write assembly with either, comparing performance requires having some constraints.

For what it's worth, I think coding agents could provide a reasonable approximation of what "average" code looks like for a given language. If we benchmark that we'd have some indication of what the typical performance looks like for a given language.
by nicoburns | 2026-01-14 15:53:53+00:00
> Since Igalia is a _consulting_ agency, I don't suppose they work on code themselves

They absolutely do work on the code themselves. They have a small but active team working on it full time. They are a _software_ consulting agency who's primary product is writing code.

Regarding "steering", there is a Technical Steering Commitee who meets monthly (https://github.com/servo/project/tree/main/governance). Several but by no means all members of the comittee are from Igalia.
by derektank | 2026-01-14 15:54:15+00:00
IDK, the FIFA world peace prize was completely unsurprising to me. It’s a massively corrupt institution and has been for decades. It’s out of the norm in a US context, for sure, but that kind of thing is penny ante for an organization whose Wikipedia article has multiple subsections on corruption

https://en.wikipedia.org/wiki/FIFA?wprov=sfti1#Corruption
by ddq | 2026-01-14 15:54:15+00:00
"The only people being arrested in the Uk are for supporting a proscribed group."

Why are you claiming that members of Palestine Action are the only people being arrested in the UK for speech? That is not true. Low-effort, bad-faith trolling contributes nothing to the discussion.

https://archive.ph/20250906150110/https://www.telegraph.co.u...
by bluGill | 2026-01-14 15:54:19+00:00
> What concepts are those?

Data can be modified by any thread that wants to. It is up to you to ensure that modifications work correctly without race conditions. In rust you can't do this (unsafe aside), the borrow checker enforces data access patterns that can't be proved correct.

Again let me be clear: the things rust doesn't allow are hard to get correct.
by steveklabnik | 2026-01-14 15:54:27+00:00
Ah, sorry, you're right I forgot about alignment. Yes, alignment is implementation defined, paragraph 16:

> Each non-bit-field member of a structure or union object is aligned in an implementation-defined manner appropriate to its type.

But, I still don't think that what you've said is true. This is because alignment isn't decided per-object, but per type. That bit is covered more fully in 6.2.8 Alignment of objects.

You also have to be able to take a pointer to a (non-bitfield) member, and those pointers must be aligned. This is also why __attribute__((packed)) and such are non-standard extensions.

Then again: I have not passed the C specification lawyer bar, so it is possible that I am wrong here. I'm just an armchair lawyer. :)
by friendzis | 2026-01-14 15:54:30+00:00
Sorry, I do not understand which part do you disagree with.

> This is explicitly active

Is merely being active (hopefully towards eventual success) automatically places a manager among "good managers"? What defines an "average manager" then?

I have explored this in more detail in a reply to a sibling. I see "helping you understand how the things you are doing are actually critical to the success of the team" as a critical work of any manager, therefore I find it strange when such duties are attributed to "good" management.
by everdrive | 2026-01-14 15:54:36+00:00
It's important to note, that the law is not written such that it's only illegal to share classified information when you have a good president. I think a lot of us are very sympathetic when classified information is released to the public due to public interest, concern regarding government action, etc.

But it's still illegal. I'm not making a moral claim here. Rather, people who release classified information without authorization are breaking the law. If I rob a bank to feed my family vs. robbing a bank because it's fun, it's still illegal. A jury might be more or less sympathetic to my cause, but I will still be arrested and charged if the police can manage it.
by MrJohz | 2026-01-14 15:55:16+00:00
According to [1], the most important factor for the power consumption of code is how long the code takes to run. Code that spreads over multiple cores is generally more power efficient than code that runs sequentially, because the power consumption of multiple cores grows less than linearly (that is, it requires less than twice as much power to run two cores as it does one core).

Therefore if parallelising code reduces the runtime of that code, it is almost always more energy efficient to do so. Obviously if this is important in a particular context, it's probably worth measuring it in that context (e.g. embedded devices), but I suspect this is true more often than it isn't true.

[1]: https://arxiv.org/abs/2410.05460
by gruez | 2026-01-14 15:55:28+00:00
>They sent her off to a certain country with highly repressive speech laws and secret police to interview and survey various civil rights activist groups. They gave her little to no guidance about how to protect herself aside from “Use a VPN to send any documents to us.” They didn’t even instruct her to use an encrypted email provider or to use a VPN for any online work that didn’t get sent to the employer.

How would those advice have helped?

>an encrypted email provider

Unless this was in the early 2010s the email provider was probably using TLS, which means to the domestic security service at least, is as safe as a "encrypted email provider" (protonmail?)

>FileVault enabled

That might work in a country with due process, but in a place with secret police they can just torture you until you give up the keys.

>password manager

Does the chance of credential stuffing attacks increase when you're in a repressive state?

None of the advice is bad, but they're also not really specific to traveling to a repressive country. Phishing training is also good, but I won't lambast a company for not doing phishing training prior to sending a employee to a repressive country.
by the_af | 2026-01-14 15:55:57+00:00
> There is no line. Killing one person while saving a thousand is just as bad as killing one person.

Outside religious belief, is there anyone who truly believes this?

For example, in this view, is shooting a murderer about to murder a victim "just as bad" as the murderer killing their victim? (Some religions would indeed hold this, but what about non-religious viewpoints?).
by rcoder | 2026-01-14 15:56:08+00:00
AdaFruit and SparkFun both provide MCUs, sensors, and other peripherals that integrate well. Couple that with copious libraries and example projects and you may be up and running without having to stare at data sheets and wiring diagrams and JTAG output just to (say) get a temperature reading and display it on a tiny OLED screen.

All of that plus maintaining inventory nearer their customers, doing effective QC on units they ship, writing good docs, etc. means you’re getting something a lot more like a “big OEM” experience from the hardware vendor, even if you’re ordering a handful of parts.

The generic AliExpress vendors, in my experience, do not do most of those things. They all support Arduino and/or PlatformIO, and sometimes a “native” SDK like mbed, but you’re often on your own figuring out how to integrate that bare MCU with other devices you need for a complete solution. Docs are often incomplete or untranslated, and it can be hard to know exactly which chip (or associated components like onboard sensors and BME) is on there. It can change between board revisions, or even identically-named parts from different vendors.

There are other players like M5 and RAK who make nice modular platform as well, but their prices tend to be up there with AF and SF.
by Ygg2 | 2026-01-14 15:56:09+00:00
> That's a strange expression given that the percentage of programs written in languages that rely primarily on a GC for memory management has been rising steadily for about 30 years

I wish I knew what you mean by programs relying primarily on GC. Does that include Rust?

Regardless, but extrapolating current PL trends so far is a fools errand. I'm not looking at current social/market trends but limits of physics and hardware.

> There's nothing related here. We were talking about how Zig's design could assist in code reviews and testing

No, let me remind you:

> > [snip] Rust defends you from common mistakes, but overall for similar codebases you see fewer bugs.

> I understand that's something you believe, but it's not supported empirically
we were talking how not having to worry about UB allows for easier defect catching.

> Compared to C++.

Overall, I think using C++ with all of its modern features should be in the ballpark of safe/fast as Zig, with Zig having a better compile time. Even if it isn't a 1-to-1 comparison with Zig, we have other examples like Bun vs Deno, where Bun incurs more segfaults (per issue).

Also don't see how much of Zig design could really assist code reviews and testing.
by jpalawaga | 2026-01-14 15:56:18+00:00
Hang-dry your tees. It's a slight annoyance vs just bombing everything into the dryer, but it's very worth it to not have sleeves that are too short. I usually hang mine on the shower's curtain rod to dry.

And frankly, this seems like less effort than trying to apply some hack to unshrink them after the damage is done.
by tombert | 2026-01-14 15:56:27+00:00
I know, but a type system works by encoding what you want the data to do. Types are a metaphor, and their utility is only as good as how well the metaphor holds.

Within a single computer that’s easy because a single computer is generally well behaved and you’re not going to lose data and so yeah your type assumptions hold.

When you add distribution you cannot make as many assumptions, and as such you encode that into the type with a bunch of optionals. Once you have gotten everything into optionals, you’re effectively doing the same checks you’d be doing with a dynamic language everywhere anyway.

I feel like at that point, the types stop buying you very much, and your code doesn’t end up looking or acting significantly different than the equivalent dynamic code, and at that point I feel like the types are just noise.

I like HM type systems, I have written many applications in Haskell and Rust and F#, so it’s not like I think type systems are bad in general or anything. I just don’t think HM type systems encode this kind of uncertainty nicely.
Show HN: NBA teams perform vs. prediction market expectations
by helloiamvu | 2026-01-14 15:56:40+00:00
Hi HN, we built this.

The NBA Edge Index uses pre-game win probabilities from Polymarket (real-money prediction markets). After each game finalizes, we compare the outcome to the pre-game odds. Beating expectations moves a team's rating up; underperforming moves it down. Each team starts at 2000, and ratings accumulate game-by-game throughout the season. Updates happen automatically after games finalize.

A few data points we found interesting:

Polymarket odds are pretty accurate on average: teams priced at 80%+ won 82% of the time (119 games), and teams priced 60–69% won 63%.

Biggest overperformer: Phoenix Suns, +14.7% vs expectations (market gave them 45.8% avg odds; they won 60.5%).

Most overrated by market: Cleveland Cavaliers — 55.8% win rate but market gave them 67.4% implied. They've lost 12 games as heavy favorites.

Biggest called upset: Utah Jazz beat Cleveland on Jan 13 with 18.5% market odds; our edge model gave Utah 70.9%.

Stability: After ~40 games per team, rankings start to diverge meaningfully and early noise smooths out.

We're working on more indices like this. The core idea: prediction market data is fragmented across hundreds of contracts that expire and disappear. We turn it into persistent, trackable indices.

Two patterns we use:

Composite — Blend related markets into one number. Our Global Conflict Risk Index combines ~15 Polymarket contracts (Ukraine, Taiwan, Iran) into a single number.

Rolling — Auto-replace expiring contracts. For example our weather indices track 6-city temperature deviations by rolling forward daily.

Curious to hear feedback or suggestions of ideas for other indices.

The live NBA Edge index is here: https://attena.xyz/nba
by torginus | 2026-01-14 15:56:41+00:00
I think when designing a language, and a set of libraries for it, the designer has an idea of how code for said language should be written, what 'idiomatic' code looks like.

In that context, the designer can reason about how should code written that way should perform.

So I think this is a meaningful question for a langauge designer, which makes it a meaningful question for the users as well, when phrased like this:

'How does idiomatic code (as imagined by the language creators) perform in language X vs Y?'
by embedding-shape | 2026-01-14 15:56:44+00:00
Similar to how we investigate and figure out airplane crashes, the system should not allow you to get into those situations in the first place, that's the solution that works across time, instead of for just individual situations.

For example, how is someone who led/incited an insurrection against the government able to become head of said government? Already there, something is gravely wrong. You don't let undemocratic leaders lead a democratic society. So the system is broken, and the current administration is proof of that.

Otherwise what other commentators said will happen, someone who might even be worse than Trump will eventually lead the country.
by victorbjorklund | 2026-01-14 15:56:49+00:00
I don't think that Oban is telling you to always use Redis. I think what they're saying is if you reach a certain scale where you're feeling the pain of the default notifier you could use Oban.Notifiers.PG as long as your application is running as a cluster. If you don't run it as a cluster, then you might have to reach for Redis. But then it's more about not running a cluster.
by steveklabnik | 2026-01-14 15:56:51+00:00
Thank you.

I wrote this at a time when I was pretty anti-LLM, but I do think that you're right that there's some interesting implications of LLM usage in this space. And that's because one version of this question is "what can the average x programmer do compared to the average y programmer in the same amount of time," and I'm curious if LLMs lift all tides here, or not.
Show HN: Byethrow – Result handling focused on DX (tree-shakable, unified async)
by karibash | 2026-01-14 15:57:07+00:00
Hi HN,

I built byethrow (@praha/byethrow), a Result type library for TypeScript/JavaScript.

Highlights:

- Tree-shakable (bundle only what you use)

- Plain-object Result (no classes)

- Same API for sync Result<T,E> and async Promise<Result<T,E>>

- pipe + andThen/andThrough

- Type-safe validation helpers

Docs: https://praha-inc.github.io/byethrow

Repo: https://github.com/praha-inc/byethrow

Would love thoughts from people who’ve used Result/Either in production: what’s missing, what’s annoying, what would you change?
by nativeforks | 2026-01-14 15:57:58+00:00
> but I wonder how accurate the compass is

MBCompass uses sensor fusion for accuracy, combining sensor data from the accelerometer, gyroscope, and magnetometer.

It is one of the most accurate compass apps. Don't trust my words, try it with different apps on Google Play and with some FOSS options like Compass by Philip Bobek: https://f-droid.org/en/packages/com.bobek.compass

And importantly, for true compass accuracy, I'd recommend you use the "true north" (magnetic declination) function, which requires location access. It takes some time to lock GNSS hold (the same goes for the current location button on the map view, default map location is Paris, France), but if you're moving, it locks pretty quickly and shows your current location with tracking (if you're moving.)
by digitalhobbit | 2026-01-14 15:57:59+00:00
Hi HN, OP here.

I recently shared the text write-up of my autonomous market research agent. Based on the questions I got about the specific implementation, I recorded a video walkthrough of the architecture and codebase.

In the video, I show:

The Pydantic AI orchestration logic.

The state-based pipeline architecture using Postgres/pgvector.

Two bugs I ran into with Gemini Flash, e.g. how I prevented it from truncating UUIDs.

A demo of the new Audio Overview feature (generating a podcast from the research).

Happy to answer any questions about the stack!
by NitpickLawyer | 2026-01-14 15:58:04+00:00
Sorry, but no. To refuse something means you've considered it, and decided not to do it. They have clarified that they are not taking any feature PRs right now, so "refuse to do x" is incorrect here.

Also, the way the title is written implies that they specifically refuse feature x. For what we know, they may end up implementing it themselves and release it tomorrow. Or never. But the title is still misleading.
by chasd00 | 2026-01-14 15:58:40+00:00
Here’s a less sensational article. The journalist is not even a target of the investigation, the target is a contractor leaking documents.

“ Natanson was told that she is not a target of the investigation, a person familiar with the matter told CNN.

Instead, it appears to be related to an ongoing probe of a government contractor in Maryland.”

https://www.cnn.com/2026/01/14/media/fbi-hannah-natanson-was...