MurphyA/hacker-news huggingface dataset:
by shmeeed | 2026-02-01 13:01:34+00:00
>Anyone who anthropomorphizes LLM's except for convenience [...] is a fool.

I'm with you. Sadly, Scott seems to have become a true AI Believer, and I'm getting increasingly disappointed by the kinds of reasoning he comes up with.

Although, now that I think of it, I guess the turning point for me wasn't even the AI stuff, but his (IMO) abysmally lopsided treatment of the Fatma Sun Miracle.

I used to be kinda impressed by the Rationalists. Not so much anymore.
Show HN: Rubber Duck Committee – Multi-persona AI debugging with voting
by r-leyshon | 2026-02-01 13:01:50+00:00
Inspired by PewDiePie's experiments running multiple local AI models as a "council" that vote on decisions [1], I wanted to see if you could get similar multi-perspective analysis without a $20k GPU rig.

The approach: use customised system prompts to create distinct personas (methodical professor, creative brainstormer, pragmatic engineer), have them analyse problems independently via parallel API calls, then vote on the best solution using structured outputs (Zod schemas).

Key technical bits:
- Structured responses ensure consistent, parseable JSON from the LLM
- SSE streaming for real-time UI updates
- Parallel processing so personas don't influence each other
- Chair Duck orchestrates and breaks ties

Built with Next.js 16, Vercel AI SDK, and Google Vertex AI (Gemini 2.0 Flash).

Live demo: https://rubber-duck-committee.vercel.app/
Source: https://github.com/r-leyshon/rubber-duck-committee
Blog writeup: https://thedatasavvycorner.com/notepad/05-rubber-duck-commit...

[1] https://www.pcgamer.com/software/ai/pewdiepie-creates-an-ai-...
by fainpul | 2026-02-01 13:02:02+00:00
These kind of obstacles don't work for any action that the user does repeatedly.

Dialogs that pop up and ask "Are you sure you want to delete ...?" -> users just automatically click yes, because they already did that the last 10 times and just want to get on with their work.

Logged in to server "alpha" instead of "delta" because you thought that's the right one. Tool asks you to write the server name. You type "alpha" because you know you're on alpha. Reboots the wrong server.

Github ask you to confirm the repo name before deleting by typing it into a text field. User looks at what the repo name is and types it without thinking. Or, like lazy me, mark and drag the displayed name into the field, so you don't even have to type.

The point is, users already decided to do the action when they started. It's nearly impossible to consistently make them stop and re-evaluate their decision, because that's extremely high friction and annoying. They quickly learn to circumvent the friction as efficiently as possible (i.e. without thinking about it).

A better solution is to just do it, but let the user undo it if it was a mistake (not always possible of course).
by wolfram74 | 2026-02-01 13:02:03+00:00
this[0] page makes it seem 500~1000 cycles till 80% starting performance is common. So if you were charging it every other day from a 40~50 mile round trip commute, after 3~5 years you'd go to charging it every day.

[0]https://www.batterystuff.com/kb/articles/battery-articles/pr...
by c0balt | 2026-02-01 13:03:59+00:00
Nebula does not require O(n) config changes for adding a node.

O(n) is only required for:

- active revocation of a certificate (requires adding the CA fingerprint to the config file)

- adding/removing a lighthouses (hub for publishing IPs for p2p) or relay (for going over p2p)

- CA rotation
by squeedles | 2026-02-01 13:04:47+00:00
Exactly so. I didn't notice that missing def when I put together the blog post, but you are right to call it out. In this case that decref was copypasta from some other code -- I don't decref on the other error returns. I combined code that was in several places and omitted the decref for mod_enum too!

The module init function is where you would normally create the module object (PyModule_Create) and decref it if an error occurs. The blog example is utility code that you would call within the module init function to add an enum.

Someone should really create a blog post compiler to catch these sorts of things :-)
by written-beyond | 2026-02-01 13:05:47+00:00
But that's exactly what you should be doing, technically. Human in the loop is a dead concept, you should never need to understand your code or even know what changes to make. All you should be concerned about is having the best possible harness so your LLM can do everything as efficiently as possible.

If it gets stuck, use another LLM as the debugger. If that gets stuck then use another LLM. Turtles all the way down.

/s
by skydhash | 2026-02-01 13:05:49+00:00
To continue the analogy, there’s something called renting and the range of choices. If there’s no code and you can’t build your own house, you’re left with bad houses built by someone else. It’s more likely to be bad when the owner already knows he will not be living in them as building it right can be expensive and time consuming.

When slop becomes easier, there are a lot more people ready to push it to others than people that tries to produce guenuine work. Especially when theh are hard to distinguish superficially.
by geoctl | 2026-02-01 13:09:14+00:00
Well, yes, Octelium is technically a VPN from a layer-3 perspective since it uses WireGuard/QUIC tunneling, but the tunnel doesn't directly terminate to the destination like in VPNs but instead to an identity-aware proxy that does authentication and L7-aware authorization on a per-request basis with policy-as-code via CEL/OPA. From an architecture perspective, I assume it's closer to ZTNAs such as Cloudflare Access and Teleport than to traditional VPNs, even though it operates as one for the clien-based access mode. However, unlike VPNs, it does provide clientless/BeyondCorp access too as it's intended to operate as a more generic/unified access platform (e.g. API/AI/MCP gateway, ngrok-alternative, PaaS-like platform, etc.) rather than just a VPN.
by tyleo | 2026-02-01 13:09:24+00:00
People like this can be a huge help, but they can also cause real damage. I've seen it go both ways: someone can deliver a ton of value one year and create serious problems the next.

This article's description gives me pause because it reads as non-collaborative and needlessly abrasive. In my experience, people who bulldoze process and relationships are almost always a long-term net negative, even if they can ship something short-term at 10x speed.

If you are 10x, there's still a ceiling on what you can do. If you're leading a team of 50 and you can help each person get to 1.2x, you've created the same effective lift, while strengthening the team instead of burning it down.

And that's a durable change which doesn't go away if the "Wolf" leaves or has a down year.
by matthewmacleod | 2026-02-01 13:10:28+00:00
The best way to do that is using an OAuth client. These don't expire, and grant scoped access to the Tailscale API. You use this to generate access keys for the devices that need to authenticate to the network.

We use this for debugging access to CI builds, among other things – when a particular build parameter is set, then the CI build will use an OAuth key to request an ephemeral, single-use access key from the Tailscale API, then use that to create a node that engineers can SSH into.

Access keys ideally should be short-lived and single-use where possible. https://tailscale.com/kb/1215/oauth-clients#generating-long-... has details on this flow.
by michaelt | 2026-02-01 13:12:12+00:00
https://en.wikipedia.org/wiki/Who_Killed_the_Electric_Car%3F

> Mobil and other oil companies are also shown to be advertising directly against electric cars in national publications, [...] Chevron bought patents and a controlling interest in Ovonics, the advanced battery company featured in the film, ostensibly to prevent modern NiMH batteries from being used in non-hybrid electric cars.

> car makers engaged in both positive and negative marketing of the electric car [...] In later days it ran "award-winning" doomsday-style advertising featuring the EV1 and ran customer surveys which emphasized drawbacks to electronic vehicle technology

> the federal government of the United States under the Presidency of George W. Bush joined the auto-industry suit against California in 2002. This pushed California to abandon its ZEV mandate regulation.

> A portion of the film details GM's efforts to demonstrate to California that there was no consumer demand for their product, and then to take back every EV1 and destroy them. A few were disabled and given to museums and universities, but almost all were found to have been crushed. GM never responded to the EV drivers' offer to pay the residual lease value; $1.9 million was offered for the remaining 78 cars in Burbank, California before they were crushed.
by netsharc | 2026-02-01 13:12:16+00:00
> One of my favorite small features: Navigation directions don’t kill the music. They come through speakers in the driver’s seat headrest, while the song or podcast keeps playing everywhere else.

My previous car had a USB socket that supports MP3s on a flash drive (well also an Aux input), and I navigated using my phone and its speaker. So the MP3s play in parallel with the navigation prompts.

My new car has Android Auto, I can play music from the phone, but whenever Google Maps wants to say something the music is paused...

Luckily it also has the music player outside of Android Auto and the 2 things can co-exist (with audio ducking)..
by Lerc | 2026-02-01 13:12:39+00:00
I shall echo the comment of pibaker with one caveat.

>The exact same sentiment is widely observed across this entire website.

You do see this sentiment across this website, but this doesn't mean that it is a view held by the majority of people here, the people motivated to act can create the illusion that their opinions are more widely held than they are.

A few days ago I posted a comment which, in it's entirety reads

>Perhaps things would work out better if people didn't say mean things regardless of who it's about.

>You can still criticise without being mean.

The comment sits at -4 today, and has one antagonistic response. I don't really think most people disagree with this sentiment.

The antagonistic response came from the same one person as the comment in this thread.
by alistairSH | 2026-02-01 13:14:05+00:00
100% agree. You don’t have to let an engineer go rogue to get stuff built that isn’t a new feature.

I don’t manage managers, but do manage a team of 15. I try to be clear that part of my job is giving them time to improve their jobs. When one has a complaint or suggestion, I ask them to put it on paper so I can get it into our backlog. I will gladly prioritize something that will have a positive impact across multiple engineers.
by sigio | 2026-02-01 13:14:35+00:00
I've head Netbird running for the last few months... In general it works quite well, but it would keep messing with my dns-resolving, and I couldn't find the setting to stop it inserting itself into my resolv.conf.

During the last few weeks I've removed netbird from all my systems (about 12), mostly because of issues on laptops where resolving or networking would break after they moved to a different network/location.
by the_af | 2026-02-01 13:14:37+00:00
I mean grill a steak, cook a chicken in the oven, chop some vegetables and prepare a salad, cook some pasta with a simple tomato sauce, etc. Do people really don't know how to do this? It's not rocket science.

It seems wild to me to assume most people on HN don't know how to cook even basic stuff...
by surgical_fire | 2026-02-01 13:14:41+00:00
> Many EU countries have bought US fighter jets (Denmark for instance).

This is more related to NATO than to EU.

> So, when it's "EU sovereignity", which is it, the Polish flavored one, or the French-flavored one ?

EU is not a country. Each country within the EU has its own government, and sometimes they exist in tension and are redundant with the bloc.

It is actually a point in favor of a more federalized EU. Each individual country in isolation is too ineffective on its own.
by Joel_Mckay | 2026-02-01 13:15:22+00:00
Indeed, a lot of folks liked the R4 cartridge for playing a wide DS title portfolio for free. However, piracy doesn't sustain a platform economically, and Nintendo is famously litigious.

In general, home brew people actually interested in building their own unique indie games often do not port to systems people have zero interest in supporting. Even publishing to Android/iOS would have less problems with <12% of users actually buying anything. =3
by Mordisquitos | 2026-02-01 13:16:17+00:00
Arguably, excusing oneself because of autocorrect is comparable to the classic "Dictated but not read" [0] disclaimer of old. Excusing oneself because an LLM wrote what was ostensibly your own text is more akin to confessing that your assistant wrote the whole thing and you tried to pass it off as your own without even bothering to read it.

[0] https://en.wikipedia.org/wiki/Dictated_but_not_read
by JohnFen | 2026-02-01 13:16:24+00:00
I hadn't really thought of this aspect, but now that he pointed it out, this is a thing I greatly value in older cars as well. In all probability, I'll never own a modern car again, mostly because I object to machines I own phoning home. It's a privacy and security thing. Repairability is also a major concern for me. Newer cars seem to have adopted all of the worst aspects of smart phones.

But what he says about simplicity resonates with me strongly. Modern cars are stressful, busy and present an unnecessary cognitive load to use. This video brought home that those factors are as important to me as the security issues.
by Nextgrid | 2026-02-01 13:16:39+00:00
Good post in general but some caveats:

1) His user numbers are off by an order of magnitude at least, as other comments have mentioned. Even a VM/VPS should handle more, and a modern bare-metal server will do way more than the quoted numbers.

2) Autoscaling is a solution to the self-inflicted problem of insanely-high cloud prices, which cloud providers love because implementing it requires more reliance on proprietary vendor-specific APIs. The actual solution is a handful of modern bare-metal servers at strategic locations which allow you to cover your worst-case expected load while being cheaper than the lowest expected load on a cloud. Upside: lower prices & complexity. Downside: say goodbye to your AWS ReInvent invite.

3) Microservices. Apparently redeploying stateless appservers is a problem (despite the autoscaling part doing exactly this in response to load spikes which he's fine with), and his solution is to introduce 100x the management overhead and points of failure? The argument about scaling separate features differently doesn't make sense either - unless your code is literally so big it can't all fit in one server, there is no problem having every server be able to serve all types of requests, and as a bonus you no longer have to predict the expected load on a per-feature basis. A monolith's individual features can still talk to separate databases just fine.
by ghrl | 2026-02-01 13:16:40+00:00
https://headscale.net/stable/about/faq/#scaling-how-many-cli...

> Scaling / How many clients does Headscale support?
> It depends. As often stated, Headscale is not enterprise software and our focus is homelabbers and self-hosters. Of course, we do not prevent people from using it in a commercial/professional setting and often get questions about scaling.
> Please note that when Headscale is developed, performance is not part of the consideration as the main audience is considered to be users with a modest amount of devices. We focus on correctness and feature parity with Tailscale SaaS over time. [...]
> Headscale calculates a map of all nodes that need to talk to each other, creating this "world map" requires a lot of CPU time. When an event that requires changes to this map happens, the whole "world" is recalculated, and a new "world map" is created for every node in the network. [...]
> Headscale will start to struggle when [there are] e.g. many nodes with frequent changes will cause the resource usage to remain constantly high. In the worst case scenario, the queue of nodes waiting for their map will grow to a point where Headscale never will be able to catch up, and nodes will never learn about the current state of the world.

I find that quite interesting and it is one of the reasons I've not really considered trying out Headscale myself.
by matthewmacleod | 2026-02-01 13:17:35+00:00
Yeah, that's a common workflow. It's easy to programatically allocate those keys using the OAuth workflow though – there's even a CLI utility to do it (https://tailscale.com/kb/1215/oauth-clients#get-authkey-util...)

This can all be automated using e.g. the Terraform Tailscale provider, which takes the OAuth id/secret and can then issue keys as needed for the infrastructure you are deploying.
by electroly | 2026-02-01 13:19:09+00:00
I simply use SQLite for this. You can store the cache blocks in the SQLite database as blobs. One file, no sparse files. I don't think the "sparse file with separate metadata" approach is necessary here, and sparse files have hidden performance costs that grow with the number of populated extents. A sparse file is not all that different than a directory full of files. It might look like you're avoiding a filesystem lookup, but you're not; you've just moved it into the sparse extent lookup which you'll pay for every seek/read/write, not just once on open. You can simply use a regular file and let SQLite manage it entirely at the application level; this is no worse in performance and better for ops in a bunch of ways. Sparse files have a habit of becoming dense when they leave the filesystem they were created on.
by lock1 | 2026-02-01 13:19:26+00:00
Why structural is more fundamental?

C#'s anonymous type shares some flexibility of structural type system even though it still a nominal type.

> A language would only need a single "newtype" or "nominal" keyword to create nominal types from structural types.

I think you also can add `structural` keyword & apply structural type system in generally nominal type system as well if we're talking about adding feature.
by ljsdev | 2026-02-01 13:20:21+00:00
I built Noisefloor to solve a problem I'm seeing. I'm in college studying music, and all my friends use Letterboxd but won't touch platforms like RateYourMusic. My friends are already really enjoying it.

It's basically Letterboxd for music. Catalog your collection, rate albums, write reviews, see what others are listening to, and show off your taste.

Built with Next.js and Supabase. iOS app is pending review, web is live now.

Would love feedback from other music collectors! What features would make this more useful?
by usagisushi | 2026-02-01 13:20:49+00:00
You’re from the dev team, right? Thanks for the amazing OSS!

Regarding the containers, AFAIK it's 5 for the core setup (dashboard/signal/management/relay/coturn) plus Traefik in my case. It feels like a bit much, but the services are almost stateless and not resource intensive even on my little VPS. The setup script (bash + envsubst) is so straightforward and thanks to good documentation, I’ve never found the setup confusing. (I use Renovate to keep things updated, but I’d love to know if there's a recommended update path.)

A couple of minor things I noticed: 1. the dashboard image isn't on ghcr.io. 2. the generated compose.yaml contains hardcoded values. It could be even better if it referenced values from a .env file instead.

By the way, are there any ways to support NetBird other than GitHub Sponsors?
by PlatoIsADisease | 2026-02-01 13:21:02+00:00
Norms are not an average.

Let us use Constructivism. Countries do not drop nukes on each other. However, if one starts, everyone will follow. Or you may have an arms race situation, one country gets colonies and unless you want to be dominated by other countries, they also get colonies.

No phone number? Spend more time getting services. Unable to get services from some companies. Miscommunication/frustration. Less connections/acquaintances.

Maybe this ends up working for you, but it lowers your 'power', the ability to get what you want. I do have concerns that it works in the short term, not long term.
by Okkef | 2026-02-01 13:21:14+00:00
I worked with JJ for half a year, and it was great. However, I've since decided to go back to GIT because of compatibility with existing workflows and AI tools.

Pre-commit hooks are not possible [yet?], which is a minor inconvenience. Worse, workspaces/worktrees use a different mechanism. This causes like Claude Desktop (which uses worktrees) to break. Also Claude and other agents are always confused about JJ and fall back to git too often.
by gethly | 2026-02-01 13:21:43+00:00
I just had one of those. Though it is very rare.

I was making a layouting library in Go based on Clay. Took me three weeks. I often woke up at 4 AM because I wanted to work on it. After two weeks I got worried whether it is worth it. Luckily I finished it. It was not a smooth sailing but I got it done. I'd say - don't worry about it and just plough trough. If the excitement and eagerness to get it done dissipates, it will happen naturally. No reason to force it.
Show HN: Moltbot Art – AI agents draw art with code, not prompts
by fkysly | 2026-02-01 13:22:36+00:00
I built Moltbot Art - a gallery where AI agents create artworks using simple drawing commands. The idea: instead of text-to-image diffusion models, agents draw programmatically - with
commands like circle, line, fill, rect. Each artwork is procedurally generated, step by step. Try it: share moltbotart.com/skill.md with your AI agent (Claude, GPT, etc.) and watch it
create. Tech stack: Next.js 16, React 19, Prisma, deployed on Railway. Would love feedback on the concept and API design!

Would love feedback on the concept and API design!
by eddyg | 2026-02-01 13:24:16+00:00
He posts his articles to his socials,⁽¹⁾ along with the occasional quip like “Your life is going to be full of people sounding like they know what they’re talking about.” and “Your three-day response time to critical communications tells me exactly what I need to know.” and “You're either getting stuff done or talking about getting stuff done.”

⁽¹⁾ https://www.threads.com/@rands
Ask HN: How do you handle auth when AI dev agents spin up short-lived apps?
by NBenkovich | 2026-02-01 13:25:08+00:00
Hi HN,

I’m working on AI agents used for software development. These agents automatically spin up short-lived app instances – for example per pull request, per task, or per experiment – each with its own temporary URL.

Auth is handled in the standard way:

- OAuth2 / OIDC

- external identity provider

- redirect URLs must be registered in advance and be static

This clashes badly with short-lived apps:

- URLs are dynamic and unpredictable

- redirect URLs can’t realistically be pre-registered

- auth becomes the only non-ephemeral part of an otherwise fully automated workflow

What I see teams doing instead:

- disabling real auth in preview environments

- routing all callbacks through a single stable environment

- using wildcard redirects or proxy setups that feel like hacks

This gets especially awkward for AI dev agents, because they assume infrastructure is disposable and fully automated – no manual IdP config in the loop.

So I’m curious:

1. If you use short-lived preview apps, how do you handle real auth?

2. Are there clean OAuth/OIDC patterns that work with dynamic URLs?

3. Is the static redirect URL assumption still the right model here?

4. What actually works in production?

Looking for real setups and failure stories, not theory.
by assbuttbuttass | 2026-02-01 13:25:11+00:00
> the thing I hate by far the most in NixOS is .. nix

nix has a pretty steep learning curve, sure

> scheme? Aka Lisp? Seriously???

No nix, no scheme, got it. I wonder which language you would use?

> YAML files exist for a reason.

LMAO