Hacker News

Latest

Atlantic: Sam Altman Is Losing His Grip on Humanity

2026-02-24 @ 11:00:33Points: 36Comments: 64

Decimal-Java is a library to convert java.math.BigDecimal to and from IEEE-754r

2026-02-24 @ 09:15:56Points: 6Comments: 2

Firefox 148 Launches with AI Kill Switch Feature and More Enhancements

2026-02-24 @ 05:47:23Points: 308Comments: 252

Show HN: enveil – hide your .env secrets from prAIng eyes

2026-02-24 @ 05:04:50Points: 110Comments: 62

Intel XeSS 3: expanded support for Core Ultra/Core Ultra 2 and Arc A, B series

2026-02-24 @ 04:04:19Points: 42Comments: 33

Blood test boosts Alzheimer's diagnosis accuracy to 94.5%, clinical study shows

2026-02-24 @ 03:10:16Points: 295Comments: 111

Show HN: X86CSS – An x86 CPU emulator written in CSS

2026-02-24 @ 02:27:14Points: 162Comments: 59

Show HN: Steerling-8B, a language model that can explain any token it generates

2026-02-24 @ 00:38:02Points: 197Comments: 54

I Ported Coreboot to the ThinkPad X270

2026-02-23 @ 23:58:45Points: 218Comments: 40

Making Wolfram tech available as a foundation tool for LLM systems

2026-02-23 @ 22:11:34Points: 199Comments: 110

SIM (YC X25) Is Hiring the Best Engineers in San Francisco

2026-02-23 @ 21:00:28Points: 1

“Car Wash” test with 53 models

2026-02-23 @ 20:16:08Points: 257Comments: 322

On a single run, only 11 out of 53 got it right (42 said walk). But a single run doesn't prove much, so I reran every model 10 times. Same prompt, no cache, clean slate.

The results got worse. Of the 11 that passed the single run, only 5 could do it consistently. GPT-5 managed 7/10. GPT-5.1, GPT-5.2, Claude Sonnet 4.5, every Llama and Mistral model scored 0/10 across all 10 runs.

People kept saying humans would fail this too, so I got a human baseline through Rapidata (10k people, same forced choice): 71.5% said drive. Most models perform below that.

All reasoning traces (ran via Opper, my startup), full model breakdown, human baseline data, and raw JSON files are in the writeup for anyone who wants to dig in or run their own analysis.

UNIX99, a UNIX-like OS for the TI-99/4A (2025)

2026-02-23 @ 20:05:15Points: 186Comments: 56

Writing code is cheap now

2026-02-23 @ 17:20:25Points: 221Comments: 281

What it means that Ubuntu is using Rust

2026-02-23 @ 17:15:14Points: 155Comments: 196

The Missing Semester of Your CS Education – Revised for 2026

2026-02-23 @ 16:02:48Points: 70Comments: 7

https://news.ycombinator.com/item?id=22226380 and https://news.ycombinator.com/item?id=34934216).

We’ve updated the course based on our personal experiences as well as major changes in the field (e.g., the proliferation of AI-powered developer tools) over the past several years. The 2026 course includes revised versions of four lectures from the previous course, and it adds five entirely new lectures:

- Development Environment and Tools

- Packaging and Shipping Code

- Agentic Coding

- Beyond the Code (soft skills)

- Code Quality

We’d love to hear any feedback from the HN community to improve the current or future iterations of the course. In particular, we’re curious to hear the community’s take on our inclusion of AI-related topics (e.g., dedicating an entire class to the topic of agentic coding; though we tried to counterbalance it with plenty of disclaimers, and a dedicated section on AI etiquette in Beyond the Code).

--Anish, Jon, and Jose

A simple web we own

2026-02-23 @ 16:01:18Points: 261Comments: 175

Terence Tao, at 8 years old (1984) [pdf]

2026-02-23 @ 15:36:50Points: 316Comments: 170

Show HN: PgDog – Scale Postgres without changing the app

2026-02-23 @ 15:33:24Points: 279Comments: 53

https://pgdog.dev/), a connection pooler, load balancer and database sharder for PostgreSQL. If you build apps with a lot of traffic, you know the first thing to break is the database. We are solving this with a network proxy that works without requiring application code changes or database migrations.

Our post from last year: https://news.ycombinator.com/item?id=44099187

The most important update: we are in production. Sharding is used a lot, with direct-to-shard queries (one shard per query) working pretty much all the time. Cross-shard (or multi-database) queries are still a work in progress, but we are making headway.

Aggregate functions like count(), min(), max(), avg(), stddev() and variance() are working, without refactoring the app. PgDog calculates the aggregate in-transit, while transparently rewriting queries to fetch any missing info. For example, multi-database average calculation requires a total count of rows to calculate the original sum. PgDog will add count() to the query, if it’s not there already, and remove it from the rows sent to the app.

Sorting and grouping works, including DISTINCT, if the columns(s) are referenced in the result. Over 10 data types are supported, like, timestamp(tz), all integers, varchar, etc.

Cross-shard writes, including schema changes (CREATE/DROP/ALTER), are now atomic and synchronized between all shards with two-phase commit. PgDog keeps track of the transaction state internally and will rollback the transaction if the first phase fails. You don’t need to monkeypatch your ORM to use this: PgDog will intercept the COMMIT statement and execute PREPARE TRANSACTION and COMMIT PREPARED instead.

Omnisharded tables, a.k.a replicated or mirrored (identical on all shards), support atomic reads and writes. That’s important because most databases can’t be completely sharded and will have some common data on all databases that has to be kept in-sync.

Multi-tuple inserts, e.g., INSERT INTO table_x VALUES ($1, $2), ($3, $4), are split by our query rewriter and distributed to their respective shards automatically. They are used by ORMs like Prisma, Sequelize, and others, so those now work without code changes too.

Sharding keys can be mutated. PgDog will intercept and rewrite the update statement into 3 queries, SELECT, INSERT, and DELETE, moving the row between shards. If you’re using Citus (for everyone else, Citus is a Postgres extension for sharding databases), this might be worth a look.

If you’re like us and prefer integers to UUIDs for your primary keys, we built a cross-shard unique sequence, directly inside PgDog. It uses the system clock (and a couple other inputs), can be called like a Postgres function, and will automatically inject values into queries, so ORMs like ActiveRecord will continue to work out of the box. It’s monotonically increasing, just like a real Postgres sequence, and can generate up to 4 million numbers per second with a range of 69.73 years, so no need to migrate to UUIDv7 just yet.

    INSERT INTO my_table (id, created_at) VALUES (pgdog.unique_id(), now());
Resharding is now built-in. We can move gigabytes of tables per second, by parallelizing logical replication streams across replicas. This is really cool! Last time we tried this at Instacart, it took over two weeks to move 10 TB between two machines. Now, we can do this in just a few hours, in big part thanks to the work of the core team that added support for logical replication slots to streaming replicas in Postgres 16.

Sharding hardly works without a good load balancer. PgDog can monitor replicas and move write traffic to a promoted primary during a failover. This works with managed Postgres, like RDS (incl. Aurora), Azure Pg, GCP Cloud SQL, etc., because it just polls each instance with “SELECT pg_is_in_recovery()”. Primary election is not supported yet, so if you’re self-hosting with Patroni, you should keep it around for now, but you don’t need to run HAProxy in front of the DBs anymore.

The load balancer is getting pretty smart and can handle edge cases like SELECT FOR UPDATE and CTEs with INSERT/UPDATE statements, but if you still prefer to handle your read/write separation in code, you can do that too with manual routing. This works by giving PgDog a hint at runtime: a connection parameter (-c pgdog.role=primary), SET statement, or a query comment. If you have multiple connection pools in your app, you can replace them with just one connection to PgDog instead. For multi-threaded Python/Ruby/Go apps, this helps by reducing memory usage, I/O and context switching overhead.

Speaking of connection pooling, PgDog can automatically rollback unfinished transactions and drain and re-sync partially sent queries, all in an effort to preserve connections to the database. If you’ve seen Postgres go to 100% CPU because of a connection storm caused by an application crash, this might be for you. Draining connections works by receiving and discarding rows from abandoned queries and sending the Sync message via the Postgres wire protocol, which clears the query context and returns the connection to a normal state.

PgDog is open source and welcomes contributions and feedback in any form. As always, all features are configurable and can be turned off/on, so should you choose to give it a try, you can do so at your own pace. Our docs (https://docs.pgdog.dev) should help too.

Thanks for reading and happy hacking!

The Age Verification Trap: Verifying age undermines everyone's data protection

2026-02-23 @ 14:22:39Points: 1497Comments: 1154

Ladybird adopts Rust, with help from AI

2026-02-23 @ 11:29:22Points: 1194Comments: 665

Hetzner Prices increase 30-40%

2026-02-23 @ 09:52:14Points: 242Comments: 533

Genetic underpinnings of chills from art and music

2026-02-23 @ 06:35:32Points: 38Comments: 15

Graph Topology and Battle Royale Mechanics

2026-02-21 @ 21:33:28Points: 18Comments: 1

Unsung heroes: Flickr's URLs scheme

2026-02-21 @ 13:36:45Points: 107Comments: 38

A distributed queue in a single JSON file on object storage

2026-02-21 @ 10:31:37Points: 31Comments: 11

Typed Assembly Language (2000)

2026-02-21 @ 06:28:29Points: 43Comments: 17

Show HN: Cellarium: A Playground for Cellular Automata

2026-02-21 @ 00:47:09Points: 24Comments: 0

Since it lets you dynamically change parameters while the simulation is running via a TUI, it's easy to discover weird behaviors without remembering how you got there. If you press "s", it will save the complete history to a JSON file (a timeline of the parameters that were changed at given ticks), so you can replay it and regenerate the discovery.

You can pan/zoom, and while the main simulation window is in focus, the arrow keys can be used to update parameters (which are shown in the TUI).

Claude deserves all the credit and criticism for any technical elements of this project (beyond rough guidelines). I've just always wanted something like this, and it's a lot of fun to play with. Who needs video games these days.

ΛProlog: Logic programming in higher-order logic

2026-02-20 @ 23:02:08Points: 31Comments: 0

Diode – Build, program, and simulate hardware

2026-02-20 @ 22:14:13Points: 135Comments: 29

Archives

2026

2025

2024

2023

2022