The Age Verification Trap: Verifying age undermines everyone's data protection
The article discusses the challenges and implications of age verification on the internet, particularly for online content and services that are restricted to adults. It explores the various methods and technologies used for age verification, as well as the privacy and security concerns associated with these approaches.
Ladybird adopts Rust
The article explores the advantages of adopting the Rust programming language, highlighting its focus on safety, concurrency, and performance, making it a suitable choice for systems programming and building secure and reliable software.
Show HN: PgDog – Scale Postgres without changing the app
Hey HN! Lev and Justin here, authors of PgDog (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!
Americans are destroying Flock surveillance cameras
The article discusses how some Americans are disabling or destroying surveillance cameras installed by a company called Flock, citing concerns over privacy and government overreach. It highlights the growing tensions between technological advancements in surveillance and public resistance to perceived invasions of personal freedoms.
femtolisp: A lightweight, robust, scheme-like Lisp implementation
femtolisp is a lightweight, embeddable Lisp interpreter written in C. It is designed to be small, fast, and easy to integrate into other software projects, making it a suitable choice for use in embedded systems and other resource-constrained environments.
Show HN: Sowbot – open-hardware agricultural robot (ROS2, RTK GPS)
Sowbot is an open-hardware agricultural robot designed to close the "prototype gap" that kills most agri-robotics startups and research projects — the 18+ months spent on drivers, networking, safety watchdogs, and UI before you can even start on the thing you actually care about.
The hardware is built around a stackable 10×10cm compute module with two ARM Cortex-A55 SBCs — one for ROS 2 navigation/EKF localisation, one dedicated to vision/YOLO inference — connected via a single ethernet cable.
Centimetre-level positioning via dual RTK GNSS, CAN bus for field comms, and real-time motor control via ESP32 running Lizard firmware.
Everything — schematics, PCB layouts, firmware — is under open licences. The software stack runs on RoSys/Field Friend (for teams who want fast iteration) or DevKit ROS (for teams already in the ROS ecosystem). The idea is that a lab in one country can reproduce another lab's experiment by sharing a Docker image.
Current status: the Open Core brain is largely fabricated, the full-size Sowbot body has a detailed BOM but isn't yet assembled, and we have two smaller dev platforms (Mini and Pico) in various stages of testing.
We're a small volunteer team and we're looking for contributors — hardware, ROS, firmware, docs, whatever you can offer.
The best place to start is our Discord: https://discord.gg/SvztEBr4KZ — we have a weekly call if you'd prefer to just show up and chat.
GitHub: https://github.com/Agroecology-Lab/feldfreund_devkit_ros/tre...
Facebook's Fascination with My Robots.txt
Facebook has updated its robots.txt file to disallow crawling of certain areas of its website, indicating a shift in its approach to privacy and data access. The changes suggest Facebook is taking steps to restrict how its data and content can be accessed and used by third-party services and applications.
AIs can generate near-verbatim copies of novels from training data
Large language models can generate near-verbatim copies of novels from their training data, posing challenges for copyright and intellectual property protection. Researchers found that models can reproduce long passages of text with high fidelity, raising concerns about the potential misuse of these technologies.
Anthropic Education the AI Fluency Index
The article introduces the AI Fluency Index, a new metric developed by Anthropic to measure the language abilities of large language models. The index assesses a model's performance across various tasks, aiming to provide a more comprehensive evaluation of its linguistic capabilities.
"Car Wash" test with 53 models
"I Want to Wash My Car. The Car Wash Is 50 Meters Away. Should I Walk or Drive?" This question has been making the rounds as a simple AI logic test so I wanted to see how it holds up across a broad set of models. Ran 53 models (leading open-source, open-weight, proprietary) with no system prompt, forced choice between drive and walk, with a reasoning field.
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.
What I Learned After Building 3 TV Apps Coming from Mobile
The article discusses the key lessons the author learned after transitioning from mobile app development to building three TV applications, highlighting the unique challenges and considerations involved in creating TV apps, such as user interface design, content organization, and device compatibility.
QRTape – Audio Playback from Paper Tape with Computer Vision (2021)
The article describes the QRtape, a novel audio playback system that uses paper tape to store and play back audio recordings. It explores the technical details of how the QRtape system works, including the use of QR codes and a custom-built playback device.
How in the Hell Did Joann Fabrics Die While Best Buy Survived? It Wasn't Amazon
The article explores the unexpected rise and subsequent decline of JoAnn Fabrics, a once-thriving craft and fabric retailer, examining the factors that contributed to its success and the challenges it now faces as it navigates the changing retail landscape.
A lithium-ion breakthrough that could boost range and lower costs
Researchers have developed a new lithium-ion battery technology that could significantly increase electric vehicle range and dramatically reduce costs, potentially making EVs more accessible to the mass market.
Don't host email yourself – your reminder in 2026
The article warns against hosting your own email, highlighting the challenges and risks involved, and encourages readers to consider alternative email hosting solutions that are more secure and reliable in the long run.
Silicon Valley can't import talent like before. So it's exporting jobs
The article explores the impact of changes to the H-1B visa program on Indian tech workers and companies, highlighting the challenges faced by the industry in hiring and retaining talent due to visa restrictions and policy shifts.
First, They Came for the Journalists
The article examines the increasing attacks on press freedom worldwide, with journalists facing threats, violence, and legal persecution for their reporting. It highlights the erosion of democratic norms and the need to protect the vital role of a free and independent media.
Waymo Is Destroying Tesla's Self-Driving Dreams
The article discusses how Waymo, Alphabet's self-driving car unit, is outpacing Tesla in the development of autonomous driving technology. It highlights Waymo's technological advancements, extensive real-world testing, and safety-first approach, which are challenging Tesla's self-driving ambitions.
US Gov Deploys Grok as Nutrition Bot, It Advises for Rectal Use of Vegetables
The U.S. government has partnered with a company called Grok to develop an AI system that can analyze nutrition information and provide personalized dietary recommendations. The goal is to help people make more informed decisions about their food choices and improve overall health.
Day 1461 of Putin's Three-Day War
The article discusses the ongoing war in Ukraine, now in its fourth year, and the challenges faced by Russia as its initial military objectives remain unfulfilled. It highlights the slow progress of the conflict and Russia's continued struggles to achieve its goals despite the prolonged campaign.