<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: benpacker</title><link>https://news.ycombinator.com/user?id=benpacker</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 17 Apr 2026 01:48:28 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=benpacker" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by benpacker in "Why DuckDB is my first choice for data processing"]]></title><description><![CDATA[
<p>I get segfaults all the time when using it with Bun and the new Node neo api. What’s your recipe, are you not getting these?</p>
]]></description><pubDate>Sat, 17 Jan 2026 16:45:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=46659469</link><dc:creator>benpacker</dc:creator><comments>https://news.ycombinator.com/item?id=46659469</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46659469</guid></item><item><title><![CDATA[New comment by benpacker in "Cap'n Web: a new RPC system for browsers and web servers"]]></title><description><![CDATA[
<p>Does this have support for generators / streams, or any ideas how you'd do it? With LLMs that an increasingly large part of client/server communication.</p>
]]></description><pubDate>Thu, 25 Sep 2025 12:27:14 +0000</pubDate><link>https://news.ycombinator.com/item?id=45371983</link><dc:creator>benpacker</dc:creator><comments>https://news.ycombinator.com/item?id=45371983</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45371983</guid></item><item><title><![CDATA[New comment by benpacker in "Cap'n Web: a new RPC system for browsers and web servers"]]></title><description><![CDATA[
<p>I think crossing a language barrier here would be hard: you'd need a codegen step to compile the RPC spec to Typescript for the client-side DX and that would need take into account the full range of differences in serializability across the languages.<p>For cross-language RPC, I think we're still better sticking to a well defined system where the spec is data (OpenAPI, GraphQL, etc.) instead of the spec being code that only one side understands.</p>
]]></description><pubDate>Thu, 25 Sep 2025 12:24:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=45371963</link><dc:creator>benpacker</dc:creator><comments>https://news.ycombinator.com/item?id=45371963</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45371963</guid></item><item><title><![CDATA[New comment by benpacker in "Cap'n Web: a new RPC system for browsers and web servers"]]></title><description><![CDATA[
<p>This seems really cool and I'd be happy to help (I'm currently a pgtyped + Kysely user and community contributor), and I see how this solves n+1 from promise pipelining when fetched "nested" data with a similar approach as Cap'n Web, but I don't we've solved the map problem.<p>If I run, in client side Cap'n Web land (from the post):
```
let friendsWithPhotos = friendsPromise.map(friend => {
  return {friend, photo: api.getUserPhoto(friend.id))};
}
```<p>And I implement my server class naively, the server side implementation will still call `getUserPhoto` on a materialized friend returned from the database (with a query actually being run) instead of an intermediate query builder.<p>@kentonv, I'm tempted to say that in order for a query builder like typegres to do a good job optimizing these RPC calls, the RpcTarget might need to expose the pass by reference control flow so the query builder can decide to never actually run "select id from friends" without the join to the user_photos table, or whatever.</p>
]]></description><pubDate>Tue, 23 Sep 2025 01:37:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=45341861</link><dc:creator>benpacker</dc:creator><comments>https://news.ycombinator.com/item?id=45341861</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45341861</guid></item><item><title><![CDATA[New comment by benpacker in "Priced out of traditional housing, more Americans are living in RVs"]]></title><description><![CDATA[
<p>Would love to see pics of the interior!</p>
]]></description><pubDate>Tue, 23 Sep 2025 01:23:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=45341776</link><dc:creator>benpacker</dc:creator><comments>https://news.ycombinator.com/item?id=45341776</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45341776</guid></item><item><title><![CDATA[New comment by benpacker in "Cap'n Web: a new RPC system for browsers and web servers"]]></title><description><![CDATA[
<p>My understanding is that your first read is right and your current understanding is wrong.<p>The client sends over separate 3 calls in one message, or one message describing some computation (run this function with the result of this function) and the server responds with one payload.</p>
]]></description><pubDate>Mon, 22 Sep 2025 15:53:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=45335203</link><dc:creator>benpacker</dc:creator><comments>https://news.ycombinator.com/item?id=45335203</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45335203</guid></item><item><title><![CDATA[New comment by benpacker in "Cap'n Web: a new RPC system for browsers and web servers"]]></title><description><![CDATA[
<p>This seems great and I'm really excited to try it in place of trpc/orpc.<p>Although it seems to solve one of the problems that GraphQL solved that trpc doesn't (the ability to request nested information from items in a list or properties of an object without changes to server side code), there is no included solution for the server side problem that creates that the data loader pattern was intended to solve, where a naive GraphQL server implementation makes a database query per item in a list.<p>Until the server side tooling for this matures and has equivalents for the dataloader pattern, persisted/allowlist queries, etc., I'll probably only use this for server <-> server (worker <-> worker) or client <-> iframe communication and keep my client <-> server communication alongside more pre-defined boundaries.</p>
]]></description><pubDate>Mon, 22 Sep 2025 15:51:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=45335170</link><dc:creator>benpacker</dc:creator><comments>https://news.ycombinator.com/item?id=45335170</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45335170</guid></item><item><title><![CDATA[New comment by benpacker in "Show HN: Socket-call – Call socket.io events like normal JavaScript functions"]]></title><description><![CDATA[
<p>You can do with with trpc WebSocket transport</p>
]]></description><pubDate>Mon, 16 Jun 2025 14:53:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=44290164</link><dc:creator>benpacker</dc:creator><comments>https://news.ycombinator.com/item?id=44290164</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44290164</guid></item><item><title><![CDATA[New comment by benpacker in "Test Postgres in Python Like SQLite"]]></title><description><![CDATA[
<p>It’s the same - just saying it works in both.<p>I like it because I can do full stack development, including the database, with a single system level dependency (Bun).</p>
]]></description><pubDate>Fri, 06 Jun 2025 14:33:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=44201352</link><dc:creator>benpacker</dc:creator><comments>https://news.ycombinator.com/item?id=44201352</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44201352</guid></item><item><title><![CDATA[New comment by benpacker in "Test Postgres in Python Like SQLite"]]></title><description><![CDATA[
<p>I have this setup and integrated for Node/Bun -<p>This is an example of a unit test of an API route on a fully isolated WASM backed Postgres - very few lines of code, and all your API unit tests can run fully in parallel without any shared state: <a href="https://github.com/ben-pr-p/bprp-react-router-starter/blob/main/app/test/listWidgets.test.ts">https://github.com/ben-pr-p/bprp-react-router-starter/blob/m...</a><p>This is all of the code needed to use Postgres in prod and PGLite in test/dev: <a href="https://github.com/ben-pr-p/bprp-react-router-starter/blob/main/app/database/pg.server.ts">https://github.com/ben-pr-p/bprp-react-router-starter/blob/m...</a></p>
]]></description><pubDate>Fri, 06 Jun 2025 12:05:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=44200001</link><dc:creator>benpacker</dc:creator><comments>https://news.ycombinator.com/item?id=44200001</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44200001</guid></item><item><title><![CDATA[New comment by benpacker in "A critical look at MCP"]]></title><description><![CDATA[
<p>Cloudflare + SSE with any substantial delay is a nightmare</p>
]]></description><pubDate>Sun, 11 May 2025 02:07:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=43950675</link><dc:creator>benpacker</dc:creator><comments>https://news.ycombinator.com/item?id=43950675</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43950675</guid></item><item><title><![CDATA[New comment by benpacker in "Nvidia-Ingest: Multi-modal data extraction"]]></title><description><![CDATA[
<p>All frontier multi modal LLMs can do this - there’s likely something lighter weight as well.<p>In my experience, the latest Gemini is best at vision and OCR</p>
]]></description><pubDate>Fri, 10 Jan 2025 13:04:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=42655270</link><dc:creator>benpacker</dc:creator><comments>https://news.ycombinator.com/item?id=42655270</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42655270</guid></item><item><title><![CDATA[New comment by benpacker in "Hyperview – Native mobile apps, as easy as creating a website"]]></title><description><![CDATA[
<p>This is more of an HTMX native</p>
]]></description><pubDate>Wed, 08 Jan 2025 02:15:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=42630177</link><dc:creator>benpacker</dc:creator><comments>https://news.ycombinator.com/item?id=42630177</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42630177</guid></item><item><title><![CDATA[New comment by benpacker in "Show HN: LogLayer – Unified logger that routes logs to various logging libraries"]]></title><description><![CDATA[
<p>It’s frustrating that this is necessary but it definitely makes sense, and I will probably add it to several projects soon.<p>Thanks for your hard work!</p>
]]></description><pubDate>Mon, 06 Jan 2025 03:13:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=42607255</link><dc:creator>benpacker</dc:creator><comments>https://news.ycombinator.com/item?id=42607255</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42607255</guid></item><item><title><![CDATA[New comment by benpacker in "Show HN: Houseplant – Database Migrations for ClickHouse"]]></title><description><![CDATA[
<p>You can connect and run SQL, but there’s no built in support for versioning, testing, and rolling back DDL.</p>
]]></description><pubDate>Fri, 27 Dec 2024 20:40:32 +0000</pubDate><link>https://news.ycombinator.com/item?id=42525844</link><dc:creator>benpacker</dc:creator><comments>https://news.ycombinator.com/item?id=42525844</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42525844</guid></item><item><title><![CDATA[New comment by benpacker in "OrioleDB beta7: Benchmarks"]]></title><description><![CDATA[
<p>Very excited about this and it’s future!</p>
]]></description><pubDate>Tue, 03 Dec 2024 13:22:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=42305770</link><dc:creator>benpacker</dc:creator><comments>https://news.ycombinator.com/item?id=42305770</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42305770</guid></item><item><title><![CDATA[New comment by benpacker in "We can mine asteroids for space food"]]></title><description><![CDATA[
<p>We always have been</p>
]]></description><pubDate>Tue, 26 Nov 2024 17:38:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=42247835</link><dc:creator>benpacker</dc:creator><comments>https://news.ycombinator.com/item?id=42247835</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42247835</guid></item><item><title><![CDATA[New comment by benpacker in "Show HN: BemiDB – Postgres read replica optimized for analytics"]]></title><description><![CDATA[
<p>You can do this with Materialize or Feldera. The keyword to look for is “incremental view maintenance”</p>
]]></description><pubDate>Fri, 08 Nov 2024 03:55:00 +0000</pubDate><link>https://news.ycombinator.com/item?id=42083987</link><dc:creator>benpacker</dc:creator><comments>https://news.ycombinator.com/item?id=42083987</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42083987</guid></item><item><title><![CDATA[New comment by benpacker in "Show HN: Rust Web Framework"]]></title><description><![CDATA[
<p>What happened with PostgresML?</p>
]]></description><pubDate>Tue, 22 Oct 2024 22:54:36 +0000</pubDate><link>https://news.ycombinator.com/item?id=41919546</link><dc:creator>benpacker</dc:creator><comments>https://news.ycombinator.com/item?id=41919546</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41919546</guid></item><item><title><![CDATA[New comment by benpacker in "New York Times tech workers union votes to authorize a strike"]]></title><description><![CDATA[
<p>If they don’t have firing / hiring power, they aren’t management according to US labor law.<p>Most tech “* manager” roles where the object of management is not a person or team likely qualify.</p>
]]></description><pubDate>Tue, 10 Sep 2024 23:18:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=41506624</link><dc:creator>benpacker</dc:creator><comments>https://news.ycombinator.com/item?id=41506624</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41506624</guid></item></channel></rss>