The best Hacker News stories from Show from the past week

Go back

Latest posts:

Show HN: Isaiah – open-source and self-hosted app to manage everything Docker

Show HN: A Ghidra extension for exporting parts of a program as object files

This Ghidra extension unrelocates machine code through analysis and then synthesizes a working object file from a listing selection. It effectively turns computer programs into Lego bricks, to be torn down into pieces and reused into something new.<p>It supports the COFF and ELF object file formats, for the x86 and MIPS architectures. It has been successfully used on Linux, Windows and PlayStation executables. One user report is on a commercial video game from 2009 with a ~7 MiB Windows executable written in C++: it was delinked without its C runtime library and then relinked into a new executable at a different base address, with no visible change in functionality, as a prelude to a decompilation project.<p>Use-cases I've demonstrated on my blog include modding, making software ports, converting executable file formats, creating libraries... I've originally built this as part of a video game decompilation project ; I've been working on this over the past 2.5 years and recently it has started gaining some users besides me.

Show HN: InstantDB – A Modern Firebase

Hey there HN! We’re Joe and Stopa, and today we’re open sourcing InstantDB, a client-side database that makes it easy to build real-time and collaborative apps like Notion and Figma.<p>Building modern apps these days involves a lot of schleps. For a basic CRUD app you need to spin up servers, wire up endpoints, integrate auth, add permissions, and then marshal data from the backend to the frontend and back again. If you want to deliver a buttery smooth user experience, you’ll need to add optimistic updates and rollbacks. We do these steps over and over for every feature we build, which can make it difficult to build delightful software. Could it be better?<p>We were senior and staff engineers at Facebook and Airbnb and had been thinking about this problem for years. In 2021, Stopa wrote an essay talking about how these schleps are actually database problems in disguise [1]. In 2022, Stopa wrote another essay sketching out a solution with a Firebase-like database with support for relations [2]. In the last two years we got the backing of James Tamplin (CEO of Firebase), became a team of 5 engineers, pushed almost ~2k commits, and today became open source.<p>Making a chat app in Instant is as simple as<p><pre><code> function Chat() { // 1. Read const { isLoading, error, data } = useQuery({ messages: {}, }); // 2. Write const addMessage = (message) => { transact(tx.messages[id()].update(message)); } // 3. Render! return <UI data={data} onAdd={addMessage} /> } </code></pre> Instant gives you a database you can subscribe to directly in the browser. You write relational queries in the shape of the data you want and we handle all the data fetching, permission checking, and offline caching. When you write transactions, optimistic updates and rollbacks are handled for you as well.<p>Under the hood we save data to postgres as triples and wrote a datalog engine for fetching data [3]. We don’t expect you to write datalog queries so we wrote a graphql-like query language that doesn’t require any build step.<p>Taking inspiration from Asana’s WorldStore and Figma’s LiveGraph, we tail postgres’ WAL to detect novelty and use last-write-win semantics to handle conflicts [4][5]. We also handle websocket connections and persist data to IndexDB on web and AsyncStorage for React Native, giving you multiplayer and offline mode for free.<p>This is the kind of infrastructure Linear uses to power their sync and build better features faster [6]. Instant gives you this infrastructure so you can focus on what’s important: building a great UX for your users, and doing it quickly. We have auth, permissions, and a dashboard with a suite tools for you to explore and manage your data. We also support ephemeral capabilities like presence (e.g. sharing cursors) and broadcast (e.g. live reactions) [7][8].<p>We have a free hosted solution where we don’t pause projects, we don’t limit the number of active applications, and we have no restrictions for commercial use. We can do this because our architecture doesn’t require spinning up a separate servers for each app. When you’re ready to grow, we have paid plans that scale with you. And of course you can self host both the backend and the dashboard tools on your own.<p>Give us a spin today at <a href="https://instantdb.com/tutorial">https://instantdb.com/tutorial</a> and see our code at <a href="https://github.com/instantdb/instant">https://github.com/instantdb/instant</a><p>We love feedback :)<p>[1] <a href="https://www.instantdb.com/essays/db_browser">https://www.instantdb.com/essays/db_browser</a><p>[2] <a href="https://www.instantdb.com/essays/next_firebase">https://www.instantdb.com/essays/next_firebase</a><p>[3] <a href="https://www.instantdb.com/essays/datalogjs">https://www.instantdb.com/essays/datalogjs</a><p>[4] <a href="https://asana.com/inside-asana/worldstore-distributed-caching-reactivity-part-1" rel="nofollow">https://asana.com/inside-asana/worldstore-distributed-cachin...</a><p>[5] <a href="https://www.figma.com/blog/how-figmas-multiplayer-technology-works/#syncing-object-properties" rel="nofollow">https://www.figma.com/blog/how-figmas-multiplayer-technology...</a><p>[6] <a href="https://www.youtube.com/live/WxK11RsLqp4?t=2175s" rel="nofollow">https://www.youtube.com/live/WxK11RsLqp4?t=2175s</a><p>[7] <a href="https://www.joewords.com/posts/cursors" rel="nofollow">https://www.joewords.com/posts/cursors</a><p>[8] <a href="https://www.instantdb.com/examples?#5-reactions">https://www.instantdb.com/examples?#5-reactions</a>

Show HN: InstantDB – A Modern Firebase

Hey there HN! We’re Joe and Stopa, and today we’re open sourcing InstantDB, a client-side database that makes it easy to build real-time and collaborative apps like Notion and Figma.<p>Building modern apps these days involves a lot of schleps. For a basic CRUD app you need to spin up servers, wire up endpoints, integrate auth, add permissions, and then marshal data from the backend to the frontend and back again. If you want to deliver a buttery smooth user experience, you’ll need to add optimistic updates and rollbacks. We do these steps over and over for every feature we build, which can make it difficult to build delightful software. Could it be better?<p>We were senior and staff engineers at Facebook and Airbnb and had been thinking about this problem for years. In 2021, Stopa wrote an essay talking about how these schleps are actually database problems in disguise [1]. In 2022, Stopa wrote another essay sketching out a solution with a Firebase-like database with support for relations [2]. In the last two years we got the backing of James Tamplin (CEO of Firebase), became a team of 5 engineers, pushed almost ~2k commits, and today became open source.<p>Making a chat app in Instant is as simple as<p><pre><code> function Chat() { // 1. Read const { isLoading, error, data } = useQuery({ messages: {}, }); // 2. Write const addMessage = (message) => { transact(tx.messages[id()].update(message)); } // 3. Render! return <UI data={data} onAdd={addMessage} /> } </code></pre> Instant gives you a database you can subscribe to directly in the browser. You write relational queries in the shape of the data you want and we handle all the data fetching, permission checking, and offline caching. When you write transactions, optimistic updates and rollbacks are handled for you as well.<p>Under the hood we save data to postgres as triples and wrote a datalog engine for fetching data [3]. We don’t expect you to write datalog queries so we wrote a graphql-like query language that doesn’t require any build step.<p>Taking inspiration from Asana’s WorldStore and Figma’s LiveGraph, we tail postgres’ WAL to detect novelty and use last-write-win semantics to handle conflicts [4][5]. We also handle websocket connections and persist data to IndexDB on web and AsyncStorage for React Native, giving you multiplayer and offline mode for free.<p>This is the kind of infrastructure Linear uses to power their sync and build better features faster [6]. Instant gives you this infrastructure so you can focus on what’s important: building a great UX for your users, and doing it quickly. We have auth, permissions, and a dashboard with a suite tools for you to explore and manage your data. We also support ephemeral capabilities like presence (e.g. sharing cursors) and broadcast (e.g. live reactions) [7][8].<p>We have a free hosted solution where we don’t pause projects, we don’t limit the number of active applications, and we have no restrictions for commercial use. We can do this because our architecture doesn’t require spinning up a separate servers for each app. When you’re ready to grow, we have paid plans that scale with you. And of course you can self host both the backend and the dashboard tools on your own.<p>Give us a spin today at <a href="https://instantdb.com/tutorial">https://instantdb.com/tutorial</a> and see our code at <a href="https://github.com/instantdb/instant">https://github.com/instantdb/instant</a><p>We love feedback :)<p>[1] <a href="https://www.instantdb.com/essays/db_browser">https://www.instantdb.com/essays/db_browser</a><p>[2] <a href="https://www.instantdb.com/essays/next_firebase">https://www.instantdb.com/essays/next_firebase</a><p>[3] <a href="https://www.instantdb.com/essays/datalogjs">https://www.instantdb.com/essays/datalogjs</a><p>[4] <a href="https://asana.com/inside-asana/worldstore-distributed-caching-reactivity-part-1" rel="nofollow">https://asana.com/inside-asana/worldstore-distributed-cachin...</a><p>[5] <a href="https://www.figma.com/blog/how-figmas-multiplayer-technology-works/#syncing-object-properties" rel="nofollow">https://www.figma.com/blog/how-figmas-multiplayer-technology...</a><p>[6] <a href="https://www.youtube.com/live/WxK11RsLqp4?t=2175s" rel="nofollow">https://www.youtube.com/live/WxK11RsLqp4?t=2175s</a><p>[7] <a href="https://www.joewords.com/posts/cursors" rel="nofollow">https://www.joewords.com/posts/cursors</a><p>[8] <a href="https://www.instantdb.com/examples?#5-reactions">https://www.instantdb.com/examples?#5-reactions</a>

Show HN: InstantDB – A Modern Firebase

Hey there HN! We’re Joe and Stopa, and today we’re open sourcing InstantDB, a client-side database that makes it easy to build real-time and collaborative apps like Notion and Figma.<p>Building modern apps these days involves a lot of schleps. For a basic CRUD app you need to spin up servers, wire up endpoints, integrate auth, add permissions, and then marshal data from the backend to the frontend and back again. If you want to deliver a buttery smooth user experience, you’ll need to add optimistic updates and rollbacks. We do these steps over and over for every feature we build, which can make it difficult to build delightful software. Could it be better?<p>We were senior and staff engineers at Facebook and Airbnb and had been thinking about this problem for years. In 2021, Stopa wrote an essay talking about how these schleps are actually database problems in disguise [1]. In 2022, Stopa wrote another essay sketching out a solution with a Firebase-like database with support for relations [2]. In the last two years we got the backing of James Tamplin (CEO of Firebase), became a team of 5 engineers, pushed almost ~2k commits, and today became open source.<p>Making a chat app in Instant is as simple as<p><pre><code> function Chat() { // 1. Read const { isLoading, error, data } = useQuery({ messages: {}, }); // 2. Write const addMessage = (message) => { transact(tx.messages[id()].update(message)); } // 3. Render! return <UI data={data} onAdd={addMessage} /> } </code></pre> Instant gives you a database you can subscribe to directly in the browser. You write relational queries in the shape of the data you want and we handle all the data fetching, permission checking, and offline caching. When you write transactions, optimistic updates and rollbacks are handled for you as well.<p>Under the hood we save data to postgres as triples and wrote a datalog engine for fetching data [3]. We don’t expect you to write datalog queries so we wrote a graphql-like query language that doesn’t require any build step.<p>Taking inspiration from Asana’s WorldStore and Figma’s LiveGraph, we tail postgres’ WAL to detect novelty and use last-write-win semantics to handle conflicts [4][5]. We also handle websocket connections and persist data to IndexDB on web and AsyncStorage for React Native, giving you multiplayer and offline mode for free.<p>This is the kind of infrastructure Linear uses to power their sync and build better features faster [6]. Instant gives you this infrastructure so you can focus on what’s important: building a great UX for your users, and doing it quickly. We have auth, permissions, and a dashboard with a suite tools for you to explore and manage your data. We also support ephemeral capabilities like presence (e.g. sharing cursors) and broadcast (e.g. live reactions) [7][8].<p>We have a free hosted solution where we don’t pause projects, we don’t limit the number of active applications, and we have no restrictions for commercial use. We can do this because our architecture doesn’t require spinning up a separate servers for each app. When you’re ready to grow, we have paid plans that scale with you. And of course you can self host both the backend and the dashboard tools on your own.<p>Give us a spin today at <a href="https://instantdb.com/tutorial">https://instantdb.com/tutorial</a> and see our code at <a href="https://github.com/instantdb/instant">https://github.com/instantdb/instant</a><p>We love feedback :)<p>[1] <a href="https://www.instantdb.com/essays/db_browser">https://www.instantdb.com/essays/db_browser</a><p>[2] <a href="https://www.instantdb.com/essays/next_firebase">https://www.instantdb.com/essays/next_firebase</a><p>[3] <a href="https://www.instantdb.com/essays/datalogjs">https://www.instantdb.com/essays/datalogjs</a><p>[4] <a href="https://asana.com/inside-asana/worldstore-distributed-caching-reactivity-part-1" rel="nofollow">https://asana.com/inside-asana/worldstore-distributed-cachin...</a><p>[5] <a href="https://www.figma.com/blog/how-figmas-multiplayer-technology-works/#syncing-object-properties" rel="nofollow">https://www.figma.com/blog/how-figmas-multiplayer-technology...</a><p>[6] <a href="https://www.youtube.com/live/WxK11RsLqp4?t=2175s" rel="nofollow">https://www.youtube.com/live/WxK11RsLqp4?t=2175s</a><p>[7] <a href="https://www.joewords.com/posts/cursors" rel="nofollow">https://www.joewords.com/posts/cursors</a><p>[8] <a href="https://www.instantdb.com/examples?#5-reactions">https://www.instantdb.com/examples?#5-reactions</a>

Show HN: Wd-40, a static webserver with automatic hot-reloads

It works by injecting a websocket script which listens for file changes. The filechanges are detected using the go fsnotify package, which in turn uses the different OS's equivalent to inotify.<p>I basically got bored with alt-tabbing and refresing when developing 'vanilla-js'. The hot-reload in the modern frameworks are very nice, so figured I'd recreate it.

Show HN: Handwriter.ttf – Handwriting Synthesis with Harfbuzz WASM

During the hype of llama.ttf months ago, I was speculating the potential of WASM shaper for even crazier purpose, one that fitter to a font shaper's duty -- to synthesize font at runtime. This project as proof-of-concept implements a synthesizer that generates and rasterizes handwriting-style font, backed by a super-lightweight RNN model (~14MiB).

Show HN: Srcbook – A TypeScript notebook for rapid prototyping

Srcbook (”source-book”) is an open-source TypeScript notebook that runs locally, powered by Node.js. It shines for rapid prototyping, code exploration, and collaborating on ideas. It’s inspired by Python’s Jupyter and Elixir’s Livebook.<p>Key features:<p>- Full npm ecosystem access<p>- AI-assisted coding (OpenAI, Anthropic, or local models), it can iterate on the cells for you with a code diff UX that you accept/reject for a given code cell, generate entire Srcbooks, fix compilation issues, etc…<p>- Exports to valid markdown for easy sharing and version control<p>Try it now: `npx srcbook start`<p>Examples Srcbooks to explore: <a href="https://hub.srcbook.com">https://hub.srcbook.com</a><p>We built this because we needed a Jupyter-like environment for TypeScript, we hope others like it as much as we do! Feedback and contributions are super appreciated.<p>(edit: formatting)

Show HN: PgQueuer – Transform PostgreSQL into a Job Queue

PgQueuer is a minimalist, high-performance job queue library for Python, leveraging the robustness of PostgreSQL. Designed for simplicity and efficiency, PgQueuer uses PostgreSQL's LISTEN/NOTIFY to manage job queues effortlessly.

Show HN: PgQueuer – Transform PostgreSQL into a Job Queue

PgQueuer is a minimalist, high-performance job queue library for Python, leveraging the robustness of PostgreSQL. Designed for simplicity and efficiency, PgQueuer uses PostgreSQL's LISTEN/NOTIFY to manage job queues effortlessly.

Show HN: Learn Blender shortcuts with lots of tiny videos

I've used blender for more than a decade and now ask myself what the best way to teach it would look like.<p>Video generally seems the best format to explain how to solve a specific problem, but its not exactly great for larger collections of small bits of information – like blender shortcuts.<p>This is why I made this video/text hybrid website from scratch. If you're a blender user or have experience in teaching others, I'd be very happy to hear your thoughts on it.<p>I'm also posting this here because I assume many of your are professional web developers. I'm a learning hobbyist and wondering if there are any issues with the way I built the website.<p>Thanks!<p>Github: <a href="https://github.com/hollisbrown/blendershortcuts">https://github.com/hollisbrown/blendershortcuts</a>

Show HN: High-precision date/time in SQLite

Show HN: I've open sourced DD Poker

I'm the original author of DD Poker, a Java-based computer game that ran on Mac, Linux and Windows and originally sold in stores in physical boxes.<p>I shut down the backend servers in 2017 but the game is still functional and people can still play each other online even though the central lobby and find-a-game functionality no longer work.<p>I've been asked over the years to release the source code, especially during the pandemic, and again this year. I finally got motivated to clean up the code and put it out there.<p>The code is 20 years old and uses some ancient Spring, log4j, Wicket and other dependencies, but it still works on Java 1.8.

Show HN: If YouTube had actual channels

Show HN: Simple Mbtiles Server – Self-host the entire planet of OpenStreetMaps

Show HN: I built an animated 3D bookshelf for ebooks

Show HN: PGlite – in-browser WASM Postgres with pgvector and live sync

Hey, Sam and the team from ElectricSQL here.<p>PGlite is a WASM Postgres build packaged into a TypeScript/JavaScript client library, that enables you to run Postgres in the browser, Node.js and Bun, with no need to install any other dependencies. It's 3mb Gzipped, now has support for many Postgres extensions, including pgvector, and it has a reactive "live query" API. It's also fast, with CRUD style queries executing in under 0.3 ms, and larger, multi-row select queries occurring within a fraction of a single frame.<p>PGlite started as an experimental project we shared on X, and the response to it was incredible, encouraging us to see how far we could take it. Since then we have been working to get it to a point where people can use it to build real things. We are incredibly excited as today, with the release of v0.2, the Supabase team has released the amazing <a href="http://postgres.new" rel="nofollow">http://postgres.new</a> site built on top of it. Working with them to deliver both PGlite and postgres.new has been a joy.<p>- <a href="https://pglite.dev" rel="nofollow">https://pglite.dev</a> - PGlite website<p>- <a href="https://github.com/electric-sql/pglite">https://github.com/electric-sql/pglite</a> - GitHub repo<p>- <a href="https://pglite.dev/docs" rel="nofollow">https://pglite.dev/docs</a> - Docs on how to use PGlite<p>- <a href="https://pglite.dev/extensions" rel="nofollow">https://pglite.dev/extensions</a> - Extensions catalog<p>- <a href="https://pglite.dev/benchmarks" rel="nofollow">https://pglite.dev/benchmarks</a> - Early micro-benchmarks<p>- <a href="https://pglite.dev/repl" rel="nofollow">https://pglite.dev/repl</a> - An online REPL so that you can try it in the browser<p>We would love you to try it out, and we will be around to answer any questions.

Show HN: Rust GUI Library via Flutter

Hi, I made a bridge (<a href="https://github.com/fzyzcjy/flutter_rust_bridge">https://github.com/fzyzcjy/flutter_rust_bridge</a> v2.0.0) between Flutter and Rust, which auto translates syntaxes like arbitrary types, &mut, async, traits, results, closure (callback), lifetimes, etc. The goal is to make a bridge between the two, seamlessly as if working in one single language.<p>Then, as an example, I showed how to write Rust applications with GUI by utilizing Flutter. That is discussed in the link in details.<p>To play with it, please visit the GitHub repo, or refer to the end of the article for detailed folders and commands.<p>When I first released 1.0.0 years ago, it only contained few features compared to today. It is the result of the hard work of contributors and me, and many thanks to all the contributors!

Show HN: Rust GUI Library via Flutter

Hi, I made a bridge (<a href="https://github.com/fzyzcjy/flutter_rust_bridge">https://github.com/fzyzcjy/flutter_rust_bridge</a> v2.0.0) between Flutter and Rust, which auto translates syntaxes like arbitrary types, &mut, async, traits, results, closure (callback), lifetimes, etc. The goal is to make a bridge between the two, seamlessly as if working in one single language.<p>Then, as an example, I showed how to write Rust applications with GUI by utilizing Flutter. That is discussed in the link in details.<p>To play with it, please visit the GitHub repo, or refer to the end of the article for detailed folders and commands.<p>When I first released 1.0.0 years ago, it only contained few features compared to today. It is the result of the hard work of contributors and me, and many thanks to all the contributors!

Show HN: My 70 year old grandma is learning to code and made a word game

< 1 2 3 ... 32 33 34 35 36 ... 147 148 149 >