frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

How I Use AI for Product Work

https://elezea.com/2025/12/ai-for-product-management/
1•cebert•3m ago•0 comments

Warp Drive: Scientists Say a Physical Warp Drive Is Now Possible

https://www.popularmechanics.com/science/a69663990/scientists-say-physical-warp-drive-now-possible/
1•bilsbie•7m ago•0 comments

Most people aren't fretting about an AI bubble. What they fear is mass layoffs

https://www.theguardian.com/commentisfree/2025/dec/12/ai-bubble-mass-layoffs-income-inequality
2•randycupertino•13m ago•1 comments

Show HN: Watchalong – live chatrooms for sports, shows, and events

https://watchalong.up.railway.app/
1•eigen-vector•14m ago•0 comments

iRobot Stock Is Surging. Retail Traders Think It's a New Short-Squeeze

https://www.businessinsider.com/irobot-stock-price-short-squeeze-retail-investors-irbt-meme-stock...
1•antimora•16m ago•0 comments

De-anonymization attack on geolocated data (2014)

https://www.sciencedirect.com/science/article/pii/S0022000014000683
3•billybuckwheat•20m ago•0 comments

"Why would anybody start a website?"

https://daverupert.com/2025/09/why-would-anybody-start-a-website/
3•cdrnsf•23m ago•0 comments

I wrote JustHTML using coding agents

https://friendlybit.com/python/writing-justhtml-with-coding-agents/
2•alsetmusic•24m ago•1 comments

SPhotonix – 360TB into 5-inch glass disc with femtosecond laser

https://www.tomshardware.com/pc-components/storage/sphotonix-pushes-5d-glass-storage-toward-data-...
2•peter_d_sherman•25m ago•0 comments

Anesthesia Experiments Are Reviving Quantum Consciousness Theories

https://www.popularmechanics.com/technology/a69632925/quantum-consciousness-anesthesia-experiments/
2•bookofjoe•25m ago•2 comments

How the US freight rail industry got dirtier than coal power plants

https://www.reuters.com/sustainability/climate-energy/how-us-freight-rail-industry-got-dirtier-th...
1•geox•28m ago•0 comments

CapROS: The Capability-Based Reliable Operating System

https://www.capros.org/
2•gjvc•31m ago•0 comments

Layer Normalization as Fast as Possible

https://fleetwood.dev/posts/layernorm-as-fast-as-possible
1•montyanderson•33m ago•0 comments

Robot Vacuum Roomba Maker Files for Bankruptcy After 35 Years

https://news.bloomberglaw.com/bankruptcy-law/robot-vacuum-roomba-maker-files-for-bankruptcy-after...
14•nreece•34m ago•7 comments

Skövde, the tiny town powering up Sweden's video game boom

https://www.theguardian.com/games/2025/dec/12/skovde-sweden-video-games-goat-simulator-valheim-v-...
1•1659447091•35m ago•0 comments

Microsoft Copilot AI Comes to LG TVs, and Can't Be Deleted

https://www.techpowerup.com/344075/microsoft-copilot-ai-comes-to-lg-tvs-and-cant-be-deleted
6•akyuu•35m ago•4 comments

TV in America, Pt. 1 – Foundations

https://drmanhattan16.substack.com/p/the-history-of-tv-in-america-pt-1
1•paulpauper•36m ago•0 comments

Oliver Sacks fabricated key details in his books

https://boingboing.net/2025/12/12/oliver-sacks-fabricated-key-details-in-his-books.html
5•paulpauper•38m ago•3 comments

Frances Elizabeth Allen: The Woman Who Made Code Run Fast – and Was Forgotten

https://voxmeditantis.com/2025/12/13/frances-elizabeth-allen-the-woman-who-made-code-run-fast-and...
3•colinprince•40m ago•2 comments

Being There: On Working in Person

https://medium.com/@maspinwall22/being-there-5c167dd8b163
2•govmaspy•41m ago•2 comments

Ask HN: Best back end to run models on Google TPU?

2•vood•46m ago•0 comments

Grok is spreading misinformation about the Bondi Beach shooting

https://www.theverge.com/news/844443/grok-misinformation-bondi-beach-shooting
5•alsetmusic•48m ago•2 comments

Ravaan.art

https://ravaan.art/?seed=71dafa3svng
2•nateb2022•49m ago•0 comments

Sam Altman's Sprint to Correct OpenAI's Direction and Fend Off Google

https://www.wsj.com/tech/ai/openai-sam-altman-google-code-red-c3a312ad
1•babelfish•49m ago•1 comments

Larry Wall, the Guru of Perl (1999)

https://www.linuxjournal.com/article/3394
2•susam•50m ago•0 comments

If AI replaces workers, should it also pay taxes?

https://english.elpais.com/technology/2025-11-30/if-ai-replaces-workers-should-it-also-pay-taxes....
12•PaulHoule•53m ago•4 comments

UK Treasury drawing up new rules to police cryptocurrency markets

https://www.theguardian.com/technology/2025/dec/15/uk-treasury-drawing-up-new-rules-to-police-cry...
4•chrisjj•55m ago•0 comments

L5: A Processing Library in Lua for Interactive Artwork

https://l5lua.org/
2•azhenley•56m ago•0 comments

A Year of Not Really Blogging

https://duggan.ie/posts/a-year-of-not-really-blogging
2•duggan•57m ago•0 comments

Adding Bits Beats AI Slop

https://gwern.net/blog/2025/good-ai-samples
3•networked•57m ago•0 comments
Open in hackernews

Abusing DuckDB-WASM by making SQL draw 3D graphics (Sort Of)

https://www.hey.earth/posts/duckdb-doom
200•tanelpoder•7mo ago

Comments

mritchie712•7mo ago
This is a DuckDB feature that's incredibly hard for Snowflake (or anyone else) to copy. Running the same database client-side (WASM) and server-side can make for a pretty magical experience.

Queries that normally take 1s to 2s can run in 25ms, so you get under the "100ms rule" which is very uncommon in analytics applications.

We DuckDB server side and have experimental support for DuckDB WASM on the client-side at https://www.definite.app/ and sometimes I don't trust that a query ran because of how fast it can happen (we need some UX work there).

esafak•7mo ago
How does that work? Does the client clone the database at the beginning of the session and work with a shapshot? If so, do you automatically and periodically sync it?
randomtoast•7mo ago
With HTTP Range Requests, which is typically used for pausing and resuming large file downloads, to request specific byte ranges from the file. This allows you to retrieve only the data you need. With SQL indexes, the data returned will be minimal because the lookup is optimized. However, if you select *, you will still end up downloading the entire database.
jasonjmcghee•7mo ago
Parent comment isn't asking how data is requested from the back-end.

GP comment is (seemingly) describing keeping an entirely client side instance (data stored locally / in memory) snapshot of the back-end database.

Parent comment is asking how the two are kept in sync.

It's hard to believe it would be the method you're describing and take 25ms.

If you're doing http range requests, that suggests you're reading from a file which means object storage or disk.

I have to assume there is something getting triggered when back end is updating to tell the client to update their instance. (Which very well could just be telling it to execute some sql to get the new / updated information it needs)

Or the data is entirely in memory on the back end in an in memory duckdb instance with the latest data and just needs to retrieve it / return it from memory.

immibis•7mo ago
Doesn't that mean you have way more round-trips than necessary? Instead of asking for the row, you ask for the file header, the list of tables and indices, an index page, another index page, another index page, and a table page?
mritchie712•7mo ago
Yes, we're still fine-tuning exactly what we cache, but a simple example would be:

1. user writes a `select` statement that return 20k records. We cache the 20k.

2. user can now query the results of #1

we're also working on more complex cases (e.g. caching frequently used tables).

xnx•7mo ago
Impressive project, the subhead might attract even more attention: "Building a SQL-Powered Doom Clone in the Browser"
robertclaus•7mo ago
This is great! I did a similar project a while back to do image processing in a SQL database with pixels being individual records. It's amazing what SQL can do with the right table structures.
adornKey•7mo ago
Finally somebody did it! Back in the day my attempts to write a game in SQL were thwarted by buggy query-optimizers. They cached my calls to rand() way too often although documentation promised not to do that.
dspillett•7mo ago
> They cached my calls to rand() way too often although documentation promised not to do that.

For some DBs (SQL Server definitely), RAND() and similar are handled as if they are deterministic and so are called once per use. For instance:

    SELECT TOP 10 RAND() FROM sys.objects
    SELECT TOP 10 RAND() FROM sys.objects
just returned ten lots of 0.680862566387624 and ten lots of 0.157039657790194.

    SELECT TOP 10 RAND(), RAND(), RAND()-RAND() FROM sys.objects
returns a different value for each column (0.451758385842036 & 0.0652620609942665, -0.536618123021777), so the optimisation is per use not per statement or even per column (if it were per column that last value would be 0, or as close to as floating point arithmetic oddities allow).

This surprises a lot of people when they try “… ORDER BY RAND()” and get the same order on each run.

One workaround for this is to use a non-deterministic function like NEWID(), though you need some extra jiggery-pokery to get a 0≤v<1 value to mimic rand:

    SELECT TOP 10 CAST(CAST(CAST(NEWID() AS VARBINARY(4)) AS BIGINT) AS FLOAT)/(4.0*1024*1024*1024) FROM sys.objects
For the example of sorting, the outer cast is not needed. You might think just using “ORDER BY NEWID()” would be sufficient, but that is an undefined behaviour so you shouldn't rely upon it. It might work now, a quick test has just worked as expected here, but at any point the optimiser could decide it is more efficient to consider all UUIDs as having the same weight for sorting purposes.
nonethewiser•7mo ago
Given the first post in the blog says "not made by a [ROBOT EMOJI]", should I assume this one which does not have this message, is made by a [ROBOT EMOJI]?

https://www.hey.earth/posts

NitpickLawyer•7mo ago
I swear we're gonna start seeing disclaimers like "100% handcrafted code, our devs eat only grass-fed beef, free-range devops teams, specialty coffee sustained QA department, no IDEs, no intelisense, we code in notepad++" soon...
andhuman•7mo ago
100% organic!
bstsb•7mo ago
it's the footer at the bottom of all pages. it's also present on the blog pages
marcellus23•7mo ago
This one also has that same footer.
pjot•7mo ago
Ha! I made this. I’m not a robot either :)
enescakir•7mo ago
Like running Doom on a printer, but now it’s in the same engine powering your BI dashboards. Peak 2025 energy.
cess11•7mo ago
Nice project. Reminds me of one of my favourite demos, a MySQL raytracer:

https://www.pouet.net/prod.php?which=83222

datadrivenangel•7mo ago
Abusing databases is the way. I'm building a SQLite agent using triggers.
intalentive•7mo ago
I’ve been using triggers as FTS boilerplate for so long I didn’t pause to think that they’re just event listeners. Say more about your project..?
DANmode•7mo ago
What sort of agent?!
dkga•7mo ago
Very interesting!

You know it gets wild when you read "... Here's the core of the raycasting algorithm in SQL"!

gitroom•7mo ago
i think this is super wild honestly, cant believe sql is doing graphics now
karmakaze•7mo ago
I'd like to see something like this done in SpacetimeDB which was made specifically for game backends. I haven't looked into it yet, only seen the 1.0 announcement on HN and in my YT feed, and curious how its feature set makes this sort of thing easier or more natural.
pjot•7mo ago
Author here, wild to see this at the top of HN!

You can play it here: https://patricktrainer.github.io/duckdb-doom/

Pressing “L” enables (very) verbose logging in the dev console and prints much of the sql being executed.

r3tr0•7mo ago
We use duck db wasm to make live system performance dashboards based on eBPF.

It really is magic!

You can check it out here.

https://yeet.cx/play

dndn1•7mo ago
Neat UI, are you using a library for that?
r3tr0•7mo ago
nope. everything off shelf was too slow.
robertsdionne•7mo ago
https://x.com/geocucu_t/status/1909291486367166717
kevingadd•7mo ago
> But because tick() and render() involved async database calls, sometimes a new interval would fire before the previous one finished.

This is a tricky one when writing games using async APIs. The game I've been working on is written in C# but I occasionally hit the same issue when game code ends up needing async, where I have to carefully ensure that I don't kick off two asynchronous operations at once if they're going to interact with the same game state. In the old days all the APIs you're using would have been synchronous, but these days lots of libraries use async/await and/or promises and it kind of infects all the code around it.

It does depend on the sort of game you're building though. Some games end up naturally having a single 'main loop' you spend most of your time in, i.e. Doom where you spend all your time either navigating around the game world or looking at a pause/end-of-stage menu - in that case you can basically just have an is_menu_open bool in your update and draw routines, and if you load all your assets during your loading screen(s), nothing ever needs to be async.

Other games are more modal, and might have a dozen different menus/scenes (if not hundreds), i.e. something like Skyrim. And sometimes you have modals that can appear in multiple scenarios, like a settings menu, so you need to be able to start a modal loop in different contexts. You might have the player in a conversation with an NPC, and then during the conversation you show a popup menu asking them to choose what to say to the NPC, and they decide while the conversation menu is open they want to consult the conversation log, so you're opening a modal on top of a modal, and any modal might need to load some assets asynchronously before it appears...

In the old days you could solve a lot of this by starting a new main loop inside of the current one that would exit when the modal went away. Win32 modal dialogs work this way, for example (which can cause unpleasant re-entrant execution surprises if you trigger a modal in the wrong place). I'm still uncertain whether async/await is a good modern replacement for it.

vd2287•7mo ago
I'm a bit new to this stuff, but SQL and 3D GRAPHICS???
zxilly•7mo ago
You can use requestAnimationFrame to prevent race in the renderer