MurphyA/hacker-news huggingface dataset:
Show HN: Ominipg – Local-First Postgres for Deno
by vfssantos | 2025-11-19 14:17:16+00:00
I built Ominipg, a PostgreSQL toolkit for Deno that lets you:

1. Start with an in-memory database for quick prototyping/tests

2. Switch to a local on-disk PGlite DB

3. Move to a real remote PostgreSQL instance

…all using the same API and code, with an optional local↔remote sync mode for offline-first apps.

Why?

Most apps go through these stages:

1. Prototyping/Testing – you just want a fast, zero-setup in-memory DB.

2. Local-first – you want offline capability but still sync to the cloud.

3. Production – you want a full PostgreSQL instance, without rewriting your data layer.

Ominipg is my attempt to make that path smoother.

Modes

- url: ":memory:" – PGlite in WASM, in-memory. Great for tests, demos, or quick spikes. No Postgres install required. - url: "path/to/db" – PGlite with disk storage. Nice for desktop apps, CLIs, or local development. - url: "postgresql://..." – Direct connection to your remote/production Postgres.

Local + Remote sync (both URLs) – Use a local PGlite DB that automatically syncs with remote Postgres, so you can build offline-first apps or just get faster reads while still persisting everything remotely.

Under the hood, PGlite runs in a Web Worker automatically (when available), so heavy queries don’t block your main thread – you don’t have to think about workers yourself.

Typed CRUD with Mongo-style queries

Instead of writing SQL, you can use MongoDB-style queries with TypeScript types inferred from JSON Schema definitions:

const adults = await db.crud.users.find({ age: { $gte: 18 }, status: { $in: ["active", "premium"] }, }); // `adults` is fully typed based on your `users` schema

If you prefer, you can also use Drizzle ORM on top, or drop down to raw SQL. Ominipg doesn’t force you into one style.

Example

import { Ominipg, defineSchema } from "jsr:@oxian/ominipg";

const schemas = defineSchema({ users: { schema: { type: "object", properties: { id: { type: "string" }, name: { type: "string" }, }, required: ["id", "name"], }, keys: [{ property: "id" }], }, });

// Start in-memory, later point this to postgresql://... or ./local.db const db = await Ominipg.connect({ url: ":memory:", schemas, });

await db.crud.users.insertOne({ id: "1", name: "Alice", });

const activeUsers = await db.crud.users.find({ name: { $in: ["Alice"] }, });

Links:

- JSR: https://jsr.io/@oxian/ominipg

- GitHub: https://github.com/AxionCompany/ominipg

• A bit about me / what I’m looking for

I’m a co-founder of a software development agency in Brazil. We’ve shipped 500+ projects (many enterprise), and a lot of our success has come from investing in developer productivity and internal tooling, including early bets on the Deno ecosystem. We recently decided to open-source some of these tools. Ominipg is the first of several, I’d love to get feedback from the JS (specially Deno) ecosystem.

In particular, I’d appreciate thoughts on: - The API design (especially the CRUD + schema approach) - The local + remote sync model - Rough edges you hit trying it in a small demo or side project
by sdoering | 2025-11-19 14:17:24+00:00
Couldn't agree more. I am cis-het in a long relationship, childfree by choice.

But don't think conservative ideology/politics is about making their rules your rules. Or at least being bound by their rules. I mean: If Musk doesn't like what someone says, they get blocked from Twitter (or in case of German political parties, downranked, so that the far right is ranking higher/being recommended more often on X). But they (like Musk) claim "free speech" for themselves. Meaning, they want to say what they feel like without consequences.

I found this interesting "law" by Frank Wilhoit:

> Conservatism consists of exactly one proposition, to wit: There must be in-groups whom the law protects but does not bind, alongside out-groups whom the law binds but does not protect.
by muragekibicho | 2025-11-19 14:17:59+00:00
Gaudry-Schost is a lesser-known alternative to Pollard Rho for solving discrete logarithms.

The authors found an interesting alternative to the Birthday Paradox: If we have 365 balls and draw them with replacement, then record the picked balls in two different lists, then a ball appears in both lists after about 35 draws.

It's a pretty cool application of Set Theory to real world problems. Here's the complete writeup for anyone interested.
by pjc50 | 2025-11-19 14:18:00+00:00
This was the correct decision and could have been made a decade ago. An .. institutional deficiency was trying to make the GDPR as completely general as possible rather than doing a technology mandate. But this had two consequences: bad actors could circumvent it, and good actors just trying to comply ended up horribly confused (e.g. is logging an IP address in an Apache log "personal data"?).

DNT header. Legally binding. Out of the way of the end user. Unambiguous for enforcement purposes. Probably the end of targeted advertising, but that was always the logical conclusion of GDPR.
by webdevver | 2025-11-19 14:18:20+00:00
we need to go /stalinmode/ on the whole bootup and initialization industry subsector. it should be required by law for that stuff to be open source and documented.

"but muh competitive advantage??"

its literally a for loop that reads sectors from disk/network into memory and jumps to the start address.

if a local build of the (vendor provided source code) firmware doesn't match the checksum of the build thats flashed on the actual mobo, you get sent to a cobalt mine.
by ajross | 2025-11-19 14:18:33+00:00
Embarassing Occam's failure in the lede:

> For the past several years, America has been using its young people as lab rats in a sweeping, if not exactly thought-out, education experiment.

Good grief. No, it's just the pandemic. The kids whose middle school years got disrupted are behind on skills taught in middle school.

Can you squint and blame other things? Sure. But experimental education policies are hardly new ideas, and none of the nonsense from previous decades has shown an effect like this. If you want to show up to the game with a claim that it's some other effect, I want to see a big exposition of why it's not the obvious hypothesis at work.

It's covid, folks. And over the next 3-4 years the scores will bounce back (to much crowing in the media from whichever faction wants to claim credit). Write it down.
by saaaaaam | 2025-11-19 14:18:35+00:00
It’s more insidious, and “always on”. The bullied have no respite from the bullies. As someone who was horribly bullied at school I can only imagine the horror kids face now. It’s not the technology per se, it’s the fact that society seems to think it’s not only ok but often expected for kids to have smartphones and all the digital footprint that goes along with them.

I was brought up in a household where we had very limited access to TV. As a teenager I thought this was terrible. As an adult I realise what a huge benefit it was to me. I am sure that the same goes for kids and smartphones and group chats. They are not necessary. No one is missing out.
by HeinzStuckeIt | 2025-11-19 14:18:48+00:00
Man, your post is just so out of touch. Puncture-repair kits are cheap, you can find them from hardware stores for just a couple of euro even in countries seen as expensive. And those kits work just fine regardless of how cheap they are, because the tech is so simple and unchanged since a century ago: rubber patch, chunk of metal to work as a tire lever, tiny piece of sandpaper or other abrasive, rubber cement. As long as that rubber-cement tube stays unopened, that kit will last years inside a saddle bag.

I spend a lot of time traveling the world by bicycle (hence the HN username), and I have bought cheap Chinese puncture-repair kits around the developing world, whether in China itself, Central Asia, or Sub-Saharan Africa. They have always served me fine.
by happytoexplain | 2025-11-19 14:18:52+00:00
Maybe I wasn't clear - I mean each country must prioritize its citizens and native culture (i.e. the default position of most nations). Not that they must prioritize their native-born citizens over their immigrant citizens (once they are actually full-fledged citizens). The point being that one affects the other: Bad immigration practices (bad laws, bad enforcement of good laws, etc) negatively affect citizens, but the people trying to immigrate become citizens who we are morally obligated to then prioritize equally, so it requires a balance.

You may make the argument that a country shouldn't prioritize anybody in the world, but it falls into the same category of argument as "there should be no borders". Yes, you are envisioning a beautiful world, and maybe in a few hundred or a few thousand years we will be able to get there. But each day in between we must give a shit about reality.
by jackconsidine | 2025-11-19 14:19:30+00:00
We send many thousands of delivery notifications per day on SMS over Twilio. I've been wanting to use RCS for a long time (better group notification experiences, branded identification etc). Tried to do so last month: you pay a fee (I think $500) to enable RCS with a third-party only to find out that a small percentage of devices have it enabled making it effectively useless. So we switched to WhatsApp.
Show HN: OTS-SDK – a tiny OpenTimestamps API that never keeps your data
by RHS191911 | 2025-11-19 14:19:32+00:00
I got tired of timestamping tools that force you to upload entire files, so I made OTS-SDK. It’s a tiny Node/Express server that only ever touches hashes, talks directly to the public OpenTimestamps calendars, and stores nothing except <hash>.ots proofs. Zero original data ever hits disk — ever.

Why it’s cool

• Privacy actually means privacy. /ots/timestamp SHA-256s whatever you send in memory, drops your raw bytes instantly, and only keeps the 64-char hash + the .ots proof. If you’re the “trust but verify” type, check src/routes/ots.js and SECURITY.md.

• Day-one production-safe. Helmet, JSON body limits, separate rate limits for read/write routes, clean error messages, and optional Swagger docs if you drop a spec in. No weird surprises.

• Full REST workflow done right. Timestamp → verify → download proof → inspect info → upgrade when Bitcoin confirms. Routes: /ots/timestamp, /ots/verify, /ots/proof/:hash, /ots/info/:hash, /ots/upgrade/:hash.

• Survives flaky calendars. It fans out to Alice/Bob/Finney (or whatever you put in OTS_CALENDAR_URLS), wraps both stamp + upgrade calls with timeouts + retries, and overwrites proofs when stronger attestations come in.

• Developer life = painless. npm run dev (nodemon), npm run e2e / scripts/e2e-smoke.ps1, Dockerfile + docker-compose, everything tunable via .env (JSON limits, rate limits, proof dir, OTS timeouts, etc.).

Usage examples are all in the GitHub repo.

Next ideas

Docker!!!!!!!!

Maybe a little dashboard

MIT-licensed, docs included, SECURITY guide included. Happy to answer questions — always down to nerd out on timestamping.
by standardUser | 2025-11-19 14:19:37+00:00
He mentions Prison Architect 2, which like Kerbal switched studios for the sequel and ended up an unfinished mess that's objectively worse than the original. Meanwhile, Rimworld is raking in the cash (presumably) by continuing to make popular DLCs for a 12-year-old game! But it sounds like they wanted to go big, and I kind of get it since graphics matter a lot more for a city builder than a lot of other simulation games.
by frumplestlatz | 2025-11-19 14:19:57+00:00
`slice[i]` is also a hole in the type system, but at least it’s generally relying on a local invariant, immediate to the surrounding context, that does not require lying about invariants across your API surface.

The blog post doesn’t address the issue, it simply pretends it’s not a real problem.

Also from the post: “If we were to steelman advocates in favor of this style of coding, then I think the argument is probably best limited to certain high reliability domains. I personally don’t have a ton of experience in said domains …”

Enough said.
by WillAdams | 2025-11-19 14:20:15+00:00
I've been working on a quite simplistic tool which currently just supports writing out DXFs and moving tools in lines and arcs for a 3D preview in OpenPythonSCAD --- I _think_ I can envision what you are describing, and it sounds very interesting, and might be an approach I'd want to look into for 4th and 5th axis work --- do you have any texts/references which you could share/point to?
by komali2 | 2025-11-19 14:20:24+00:00
I understand what RCS is and I don't understand why it matters.

Everything about the concept of a phone number is confusing to me. It's a string of digits that if someone guesses, they can activate the most active notification your phone has (ringing), at any time, no matter if you know them or not. Better yet, depending on your notification and MMS app settings, they might be able to make a dick pic appear on your lock screen on a whim - big spammers of this seem to get marked by the carriers and apps pretty quickly, but for a more targeted one off, still easy.

As opposed to tcp/IP based chat apps that basically require a bilateral human-initiated handshake before someone can message you...
by projektfu | 2025-11-19 14:20:33+00:00
Every time I have gotten a SIM card in a country south of the US-Mexico border, the carrier spams the text messaging. But nobody else uses it.

In the US we don't reliably use WhatsApp, iMessage is locked down, and Signal, etc., are just for tech bros or political hacks. Yet, everyone wants to text instead of call, so we are in this world where we need to make RCS work, and they are just not putting in the effort.
by kiba | 2025-11-19 14:20:53+00:00
The benefits of economic growth flows largely to people who owns land and non-reproducible privilege.

This the real reason why billionaire exists, not because they have a lot of money, though that help, but because they were able to build modern monopolies. The solution is to tax, dismantle, or regulate them, and that includes land.

Georgism and LVT proposals are starting to see a slow resurgence in the political landscape.
by hulitu | 2025-11-19 14:21:17+00:00
> They suck because they present a "standard" interface that is utterly dependent on the specific battery chemistry.

Every kind of battery sucks if it isn't used as intended. Devices which need more current shall employ additional circuitry. If one is cheap, but has a lot of expectations, oh, well.

Rechargable batteries come in different capacities and chemistries. One shall research a bit before playing.
by jacquesm | 2025-11-19 14:22:13+00:00
Unlike the general public though, these models have advanced dementia when it comes to learning from corrections, even within a single session. They keep regressing and I haven't found a way to stop that yet.

What boggles the mind: we have gone for so long to try to strive for correctness and suddenly being right 70% of the time and wrong the remaining 30% is fine. The parallel with self driving is pretty strong here: solving 70% of the cases is easy, the remaining 30% are hard or maybe even impossible. Statistically speaking these models do better than most humans, most of the time. But they do not do better than all humans, and they can't do it all of the time and when they get it wrong they make such tremendously basic mistakes that you have to wonder how they manage to get things right.

Maybe it's true that with an ever increasing model size and more and more (proprietary, the public sources are exhausted by now so private data is the frontier where model owners can still gain an edge) we will reach a point where the models will be right 98% of the time or more but what would be the killer feature for me is an indication of the confidence level of the output. Because no matter whether junk or pearls it all looks the same and that is more dangerous than having nothing at all.
by tharne | 2025-11-19 14:22:37+00:00
> Evolution will select out poor technology, either at the market stage or at the functional stage.

If evolution could select out poor technology we wouldn't have MS Windows. In fact, it's rather rare for the best solution from a technological standpoint to win out. It has a lot more to do with scale, influence, market share, and making the right deals. Competition only selects for the best in a reasonably healthy market, which we haven't had in the tech space in quite some time.
by graemep | 2025-11-19 14:23:12+00:00
I agree cookie banners were the wrong solution, and sometimes made things worse (it make a cookie whitelist extensions I used to use unusable because you have to allow the cookie that stores your cookie preferences).

However, this bit concerns me:

> This key change is part of a new Digital Package of proposals to simplify the EU’s digital rules, and will initially see cookie prompts change to be a simplified yes or no single-click prompt ahead of the “technological solutions” eventually coming to browsers. Websites will be required to respect cookie choices for at least six months, and the EU also wants website owners to not use cookie banners for “harmless uses” like counting website visits, to lessen the amount of pop-ups.

That implies there will be "harmless tracking" allowed, and it removes choices. The latter might restrict dark patterns, but it might also encourage "allow all cookies or you cannot read the site at all" approaches.
by wulfstan | 2025-11-19 14:23:41+00:00
This happens so often that the S3 VPC endpoint should be setup by default when your VPC is created. AWS engineers on here - make this happen.

Also, consider using fck-nat (https://fck-nat.dev/v1.3.0/) instead of NAT gateways unless you have a compelling reason to do otherwise, because you will save on per-Gb traffic charges.

(Or, just run your own Debian nano instance that does the masquerading for you, which every old-school Linuxer should be able to do in their sleep.)
by lordnacho | 2025-11-19 14:23:56+00:00
> Personally, I think any individual on their own that claims they are doing anything in the algorithmic / ML high frequency space is full of shit.

Well I'm in the space, but I've come across more than one guy who discovered a money making algo, all on their own, with all the right ideas but without the industry standard terms for them.

All logic would suggest this shouldn't be possible, but what I've seen is what I've seen.
by tim333 | 2025-11-19 14:24:15+00:00
Hassabis interview on Gemini 3, with Hard Fork (nyt podcast), also Josh Woodward https://youtu.be/rq-2i1blAlU?t=428 Some points -

Good at vibe coding 10:30 - step change where it's actually useful

AGI still 5-10 years. Needs reasoning, memory, world models.

Is it a bubble? - Partly 22:00

What's fun to do with Gemini to show the relatives? Suggested taking a selfie with the app and having it edit. 24:00 (I tried and said make me younger. Worked pretty well.)

Also interesting - apparently they are doing an agent to go through your email inbox and propose replies automatically 4:00. I could see that getting some use.
by phreeza | 2025-11-19 14:24:35+00:00
Are you suggesting to basically harvest the thermal energy in the rock in a non-renewable fashion? I don't think that is very promising, the heat capacity of rock is not that huge.

Back of the envelope calculation is drawing 1 GW from a cubic Kilometer of rock would lower the temperature by 1 degree C every 25 days. So I think you'd deplete a typical borehole quite quickly?
by bossyTeacher | 2025-11-19 14:25:01+00:00
> With AI I think what's happening is that more competitors are challenging these incumbents leading to downward pressure on pricing. Which is great for customers!

If AI automates jobs, POS system vendor is using an AI to run the business. You can do that yourself and remove the middle man.

re: "Ah, how would you automate entrepreneurship?"

I meant that every non-physical business need that would be filled by a local business can now be filled by the same AI you have already use to automate half the jobs away.

There is this fantasy where employers can replace workers with AI but businesses cannot replace their software vendors with AI
by drob518 | 2025-11-19 14:25:02+00:00
This doesn’t make much sense. One of the benefits of immutability is that once you create a data structure, it doesn’t change and you can treat it as a value (pass it around, share it between threads without cloning it, etc.). If you now allow modifications, you’re suddenly violating all those guarantees and you need to write code that defensively makes clones, so you’re right back where you started. In Clojure, you can cheat at points with transients where the programmer knows that a certain data structure is only seen by a single thread of execution, but you’re still immutable most of the time.
by gorgoiler | 2025-11-19 14:25:10+00:00
Why was it possible for a man in the 1960s to have an ordinary job, a family, and a house? Was there some hidden sector of society that suffered considerably more then now? Is there some sector of society now that prospers proportionally more at the expense of others?

The answer that immediately springs to mind is that women, ethnic minorities, and the urban poor all did relatively badly in the 1960s. With the latter two categories, for every apple pie home with a sedan and two kids there were umpteen other drafty tenement flats with malnourished families sharing a bedroom:

British tenements

https://www.theguardian.com/artanddesign/gallery/2021/feb/02...

NYC tenements

https://www.nypl.org/blog/2018/06/07/tenement-homes-new-york...

It’s not one thing or another — many factors have contributed to what feels like change this way or that over the years — but I try to never forget just how abominably crap life used to be for quite a lot of people, and just how much better it is these days.
by Aurornis | 2025-11-19 14:25:15+00:00
The war on admissions testing is one of the worst education trends. I couldn’t believe it when it was first proposed, but I was even more shocked when the trend started to spread.

It does appear to be reversing a little bit in some places as schools realize they were fooled by people pushing ideology over data and results, but it’s going to take a while.

For those who aren’t in the loop: There’s an ideological push to eliminate testing, aptitude tests, and even to eliminate different educational tracks (accelerated learning programs, AP classes, advanced math tracts) in the name of pursuing equality for everyone. The idea of testing people for aptitude or allowing some students to go into more advanced classes than others is not allowed by some ideologically-driven people who think all students must be given strictly equal education at every grade level.
by pjc50 | 2025-11-19 14:25:59+00:00
Some pull quotes, since people seem to be struggling with page loading:

> his client, a woman who had recently finished her master’s at a prestigious university, had been drawn into a scam job. It was essentially a pyramid scheme built around a health regimen. Before you could sell it, you had to try it, so you knew what you were selling.

> The regimen? Multiple enemas a day. “It escalated to 40 to 60 enemas a day,”

> All groups have a rhythm, like a pulse across the calendar year. We have holidays, and we have tax season. There are highs and lows.

> Furthermore, Kelly and Ryan urge their clients not to speak with the media. The firmest “no” I ever got was when I asked Ryan if I could speak to a former client.

> One of their cases in the 90s involved a cult leader who was systematically sexually assaulting the group’s members. [NB: do you have any idea how little that narrows it down]

> the girl’s uncle, their client, had a very difficult time finding anything positive about the group or the leader who had allegedly raped his niece

> What Kelly and Ryan mean when they say these groups are “offering something” to people, it is exactly that. There is a hole a group fills: alienation from community, family, sexuality; pressure to follow a certain life plan, addiction, unrealized spirituality, economic catastrophe – all reasons to join a group