The best Hacker News stories from Show from the past day

Go back

Latest posts:

Show HN: Free mammogram analysis tool combining deep learning and vision LLM

I've built Neuralrad Mammo AI, a free research tool that combines deep learning object detection with vision language models to analyze mammograms. The goal is to provide researchers and medical professionals with a secondary analysis tool for investigation purposes.<p>Important Disclaimers: - NOT FDA 510(k) cleared - this is purely for research investigation - Not for clinical diagnosis - results should only be used as a secondary opinion - Completely free - no registration, no payment, no data retention<p>What it does: 1. Upload a mammogram image (JPEG/PNG) 2. AI identifies potential masses and calcifications 3. Vision LLM provides radiologist-style analysis 4. Interactive viewer with zoom/pan capabilities<p>You can try it with any mass / calcification mammo images, e.g. by searching Google: mammogram images mass<p>Key Features: - Detects and classifies masses (benign/malignant) - Identifies calcifications (benign/malignant) - Provides confidence scores and size assessments - Generates detailed analysis using vision LLM - No data storage - images processed and discarded<p>Use Cases: - Medical research and education - Second opinion for researchers - Algorithm comparison studies - Teaching tool for radiology training - Academic research validation<p>The implementation details include: 1. 1st stage object detection using PyTorch retinalnet training DDSM+Internal data set 2. 2nd stage fine tuned Qwen2.5 VL with labeled data + radiology report sets 3. Server is implemented with Flask, Client implemented using SvelteJS<p>The system is designed specifically for research investigation purposes and to complement (never replace) professional medical judgment. I'm hoping this can be useful for the medical AI research community and welcome feedback on the approach.<p>Address: <a href="http://mammo.neuralrad.com:5300" rel="nofollow">http://mammo.neuralrad.com:5300</a>

Show HN: I made a running app that turns your runs to a virtual garden

I started running 5 years ago and it completely changed me. Recently, I decided to train for my first marathon and needed something more than just tracking my runs to motivate me. I noticed all the apps currently available are just trackers and route finders, but nothing has solved the problem of consistency. So I thought of combining the basic idea of the Forest app with running and created a small app for myself which would reward me with plants and trees for my runs.<p>I am not a mobile developer but then i came across Capacitor. Since I knew Next.js and have been working with it for the past 2 years, I built the app with it. I started using it and showed it to some of my friends and they really liked it. The gamification gave me a mental boost of planting more trees and plants in my virtual garden and just seeing it flourish made me happy. Then I decided to publish it on Play Store and also built it for iOS devices as many of my friends had iPhones. It took weeks to build and release them after brutal and lengthy reviews from both the stores.<p>Running has taught me to keep moving further, one step at a time and the journey of building the app was just like that. I wanted to share the app with all the people who are just starting out running and with the experienced folks who want to make their runs mean something.<p>The app is Run&amp;Grow: <a href="https://runandgrow.com" rel="nofollow">https://runandgrow.com</a>

Show HN: Malai – securely share local TCP services (database/SSH) with others

malai is a peer to peer network, and is a dead simple to share your local development HTTP server, without setting up tunnels, dealing with firewalls, or relying on cloud services.<p>In malai 0.2.5, we have added TCP support, which means you can expose any TCP service to others using malai, without opening the TCP service related port to Internet. With malai installed on both ends, any TCP service can be securely tunneled over it.<p>It can be used to secure your SSH service, or securely share your database server.<p>GitHub: <a href="https://github.com/kulfi-project/kulfi">https://github.com/kulfi-project/kulfi</a> (star us!)<p>Would love feedback, questions, or ideas — thanks!<p>PS: We have also added `malai folder`, which lets you share (readonly) the content of a folder with others.

Show HN: Malai – securely share local TCP services (database/SSH) with others

malai is a peer to peer network, and is a dead simple to share your local development HTTP server, without setting up tunnels, dealing with firewalls, or relying on cloud services.<p>In malai 0.2.5, we have added TCP support, which means you can expose any TCP service to others using malai, without opening the TCP service related port to Internet. With malai installed on both ends, any TCP service can be securely tunneled over it.<p>It can be used to secure your SSH service, or securely share your database server.<p>GitHub: <a href="https://github.com/kulfi-project/kulfi">https://github.com/kulfi-project/kulfi</a> (star us!)<p>Would love feedback, questions, or ideas — thanks!<p>PS: We have also added `malai folder`, which lets you share (readonly) the content of a folder with others.

Show HN: Lazy Tetris

I made a tetris variant<p>Aims to remove all stress, and focus the game on what I like the best - stacking.<p>No timer, no score, no gravity. Move to the next piece when you are ready, and clear lines when you are ready.<p>Separate mobile + desktop controls

Show HN: Lazy Tetris

I made a tetris variant<p>Aims to remove all stress, and focus the game on what I like the best - stacking.<p>No timer, no score, no gravity. Move to the next piece when you are ready, and clear lines when you are ready.<p>Separate mobile + desktop controls

Show HN: Lazy Tetris

I made a tetris variant<p>Aims to remove all stress, and focus the game on what I like the best - stacking.<p>No timer, no score, no gravity. Move to the next piece when you are ready, and clear lines when you are ready.<p>Separate mobile + desktop controls

Show HN: Lazy Tetris

I made a tetris variant<p>Aims to remove all stress, and focus the game on what I like the best - stacking.<p>No timer, no score, no gravity. Move to the next piece when you are ready, and clear lines when you are ready.<p>Separate mobile + desktop controls

Show HN: My LLM CLI tool can run tools now, from Python code or plugins

Show HN: My LLM CLI tool can run tools now, from Python code or plugins

Show HN: My LLM CLI tool can run tools now, from Python code or plugins

Show HN: Photoshop Clone Built in React

I built React Photo Studio, a free image editor that runs entirely in the browser with React and WebGL. Right now only the brush tool is functional for drawing, while the rest of the interface is a prototype awaiting development. Everything is client side, no backend.<p>I would appreciate feedback on usability and code structure, and I welcome pull requests.<p>Live demo <a href="https://reactphotostudio.app" rel="nofollow">https://reactphotostudio.app</a> Code <a href="https://github.com/chase-manning/react-photo-studio">https://github.com/chase-manning/react-photo-studio</a>

Show HN: We built an AI to review your pull requests

Hey HN,<p>We’re two developers (co-founders) with a team of 20 who got tired of spending hours reviewing PRs, so we built Infinitcode.ai, an AI-powered code reviewer that:<p>- *Summarizes PRs in plain English*: No more deciphering 1,000-line diff jungles<p>- *Catches more than bugs*: Security holes, performance pitfalls, code smells, even typos (yes, we’ll flag “vurnerabilities” and vulnerabilities)<p>- *Zero onboarding*: Works instantly—no “let me learn your codebase for weeks” nonsense.<p>Why we’re posting: We’re in alpha and need brutal honesty. Roast our tool, mock our UI, or tell us why AI will never replace your team’s Senior Engineer.<p>Free alpha access for 100 teams: All we ask is feedback.<p>Give it a try: <a href="https://infinitcode.ai" rel="nofollow">https://infinitcode.ai</a><p>Demo repo: <a href="https://github.com/infinitcodecom/infinitcode-ai-demo">https://github.com/infinitcodecom/infinitcode-ai-demo</a>

Show HN: Zli – A Batteries-Included CLI Framework for Zig

I built zli, a batteries-included CLI framework for Zig with a focus on DX and composability.<p>Key features:<p>- Typed flags with default values and help output - Rich formatting, and layout support - Command trees with isolated execution logic - It’s designed to feel good to use, not just to work. - Built for real-world CLI apps, not toy examples.<p>Would love feedback, feature ideas, or thoughts from other Zig devs.<p>repo here: <a href="https://github.com/xcaeser/zli">https://github.com/xcaeser/zli</a>

Show HN: Zli – A Batteries-Included CLI Framework for Zig

I built zli, a batteries-included CLI framework for Zig with a focus on DX and composability.<p>Key features:<p>- Typed flags with default values and help output - Rich formatting, and layout support - Command trees with isolated execution logic - It’s designed to feel good to use, not just to work. - Built for real-world CLI apps, not toy examples.<p>Would love feedback, feature ideas, or thoughts from other Zig devs.<p>repo here: <a href="https://github.com/xcaeser/zli">https://github.com/xcaeser/zli</a>

Show HN: A minimalist web timer for focus and time tracking

Started as a timer to track my freelance coding hours and stay focused. It’s local-only, zero-login, minimalist. Not monetizing it (yet), just seeing if others find it helpful. Thoughts welcome.

Show HN: A minimalist web timer for focus and time tracking

Started as a timer to track my freelance coding hours and stay focused. It’s local-only, zero-login, minimalist. Not monetizing it (yet), just seeing if others find it helpful. Thoughts welcome.

Show HN: A minimalist web timer for focus and time tracking

Started as a timer to track my freelance coding hours and stay focused. It’s local-only, zero-login, minimalist. Not monetizing it (yet), just seeing if others find it helpful. Thoughts welcome.

Show HN: PgDog – Shard Postgres without extensions

Hey HN! Lev here, author of PgDog (<a href="https://github.com/pgdogdev/pgdog">https://github.com/pgdogdev/pgdog</a>). I’m scaling our favorite database, PostgreSQL. PgDog is a new open source proxy, written in Rust, with first-class support for sharding — without changes to your app or needing database extensions.<p>Here’s a walkthrough of how it works: <a href="https://www.youtube.com/watch?v=y6sebczWZ-c" rel="nofollow">https://www.youtube.com/watch?v=y6sebczWZ-c</a><p>Running Postgres at scale is hard. Eventually, one primary isn’t enough at which point you need to split it up. Since there is currently no good tooling out there to do this, teams end up breaking their apps apart instead.<p>If you’re familiar with PgCat, my previous project, PgDog is its spiritual successor but with a fresh codebase and new goals. If not, PgCat is a pooler for Postgres also written in Rust.<p>So, what’s changed and why a new project? Cross-shard queries are supported out of the box. The new architecture is more flexible, completely asynchronous and supports manipulating the Postgres protocol at any stage of query execution. (Oh, and you guessed it — I adopted a dog. Still a cat person though!)<p>Not everything is working yet, but simple aggregates like max(), min(), count(*) and sum() are in. More complex functions like percentiles and average will require a bit more work. Sorting (i.e. ORDER BY) works, as long as the values are part of the result set, e.g.:<p><pre><code> SELECT id, email FROM users WHERE admin = true ORDER BY 1 DESC; </code></pre> PgDog buffers and sorts the rows in memory, before sending them to the client. Most of the time, the working set is small, so this is fine. For larger results, we need to build swap to disk, just like Postgres does, but for OLTP workloads, which PgDog is targeting, we want to keep things fast. Sorting currently works for bigint, integer, and text/varchar. It’s pretty straightforward to add all the other data types, I just need to find the time and make sure to handle binary encoding correctly.<p>All standard Postgres features work as normal for unsharded and direct-to-shard queries. As long as you include the sharding key (a column like customer_id, for example) in your query, you won’t notice a difference.<p>How does this compare to Citus? In case you’re not familiar, Citus is an open source extension for sharding Postgres. It runs inside a single Postgres node (a coordinator) and distributes queries between worker databases.<p>PgDog’s architecture is fundamentally different. It runs outside the DB: it’s a proxy, so you can deploy it anywhere, including managed Postgres like RDS, Cloud SQL and others where Citus isn’t available. It’s multi-threaded and asynchronous, so it can handle thousands, if not millions, of concurrent connections. Its focus is OLTP, not OLAP. Meanwhile, Citus is more mature and has good support for cross-shard queries and aggregates. It will take PgDog a while to catch up.<p>My Rust has improved since my last attempt at this and I learned how to use the bytes crate correctly. PgDog does almost zero memory allocations per request. That results in a 3-5% performance increase over PgCat and a much more consistent p95. If you’re obsessed with performance like me, you know that small percentage is nothing to sneeze at. Like before, multi-threaded Tokio-powered PgDog leaves the single-threaded PgBouncer in the dust (<a href="https://pgdog.dev/blog/pgbouncer-vs-pgdog">https://pgdog.dev/blog/pgbouncer-vs-pgdog</a>).<p>Since we’re using pg_query (which itself bundles the Postgres parser), PgDog can understand all Postgres queries. This is important because we can not only correctly extract the WHERE clause and INSERT parameters for automatic routing, but also rewrite queries. This will be pretty useful when we’ll add support for more complex aggregates, like avg(), and cross-shard joins!<p>Read/write traffic split is supported out of the box, so you can put PgDog in front of the whole cluster and ditch the code annotations. It’s also a load balancer, so you can deploy it in front of multiple replicas to get 4 9’s of uptime.<p>One of the coolest features so far, in my opinion, is distributed COPY. This works by hacking the Postgres network protocol and sending individual rows to different shards (<a href="https://pgdog.dev/blog/hacking-postgres-wire-protocol">https://pgdog.dev/blog/hacking-postgres-wire-protocol</a>). You can just use it without thinking about cluster topology, e.g.:<p><pre><code> COPY temperature_records (sensor_uuid, created_at, value) FROM STDIN CSV; </code></pre> The sharding function is straight out of Postgres partitions and supports uuid v4 and bigint. Technically, it works with any data type, but I just haven’t added all the wrappers yet. Let me know if you need one.<p>What else? Since we have the Postgres parser handy, we can inspect, block and rewrite queries. One feature I was playing with is ensuring that the app is passing in the customer_id in all queries, to avoid data leaks between tenants. Brain dump of that in my blog here: <a href="https://pgdog.dev/blog/multi-tenant-pg-can-be-easy">https://pgdog.dev/blog/multi-tenant-pg-can-be-easy</a>.<p>What’s on the roadmap: (re)sharding Postgres using logical replication, so we can scale DBs without taking downtime. There is a neat trick on how to quickly do this on copy-on-write filesystems (like EBS used by RDS, Google Cloud volumes, ZFS, etc.). I’ll publish a blog post on this soon. More at-scale features like blocking bad queries and just general “I wish my Postgres proxy could do this” stuff. Speaking of which, if you can think of any more features you’d want, get in touch. Your wishlist can become my roadmap.<p>PgDog is being built in the open. If you have thoughts or suggestions about this topic, I would love to hear them. Happy to listen to your battle stories with Postgres as well.<p>Happy hacking!<p>Lev

Show HN: PgDog – Shard Postgres without extensions

Hey HN! Lev here, author of PgDog (<a href="https://github.com/pgdogdev/pgdog">https://github.com/pgdogdev/pgdog</a>). I’m scaling our favorite database, PostgreSQL. PgDog is a new open source proxy, written in Rust, with first-class support for sharding — without changes to your app or needing database extensions.<p>Here’s a walkthrough of how it works: <a href="https://www.youtube.com/watch?v=y6sebczWZ-c" rel="nofollow">https://www.youtube.com/watch?v=y6sebczWZ-c</a><p>Running Postgres at scale is hard. Eventually, one primary isn’t enough at which point you need to split it up. Since there is currently no good tooling out there to do this, teams end up breaking their apps apart instead.<p>If you’re familiar with PgCat, my previous project, PgDog is its spiritual successor but with a fresh codebase and new goals. If not, PgCat is a pooler for Postgres also written in Rust.<p>So, what’s changed and why a new project? Cross-shard queries are supported out of the box. The new architecture is more flexible, completely asynchronous and supports manipulating the Postgres protocol at any stage of query execution. (Oh, and you guessed it — I adopted a dog. Still a cat person though!)<p>Not everything is working yet, but simple aggregates like max(), min(), count(*) and sum() are in. More complex functions like percentiles and average will require a bit more work. Sorting (i.e. ORDER BY) works, as long as the values are part of the result set, e.g.:<p><pre><code> SELECT id, email FROM users WHERE admin = true ORDER BY 1 DESC; </code></pre> PgDog buffers and sorts the rows in memory, before sending them to the client. Most of the time, the working set is small, so this is fine. For larger results, we need to build swap to disk, just like Postgres does, but for OLTP workloads, which PgDog is targeting, we want to keep things fast. Sorting currently works for bigint, integer, and text/varchar. It’s pretty straightforward to add all the other data types, I just need to find the time and make sure to handle binary encoding correctly.<p>All standard Postgres features work as normal for unsharded and direct-to-shard queries. As long as you include the sharding key (a column like customer_id, for example) in your query, you won’t notice a difference.<p>How does this compare to Citus? In case you’re not familiar, Citus is an open source extension for sharding Postgres. It runs inside a single Postgres node (a coordinator) and distributes queries between worker databases.<p>PgDog’s architecture is fundamentally different. It runs outside the DB: it’s a proxy, so you can deploy it anywhere, including managed Postgres like RDS, Cloud SQL and others where Citus isn’t available. It’s multi-threaded and asynchronous, so it can handle thousands, if not millions, of concurrent connections. Its focus is OLTP, not OLAP. Meanwhile, Citus is more mature and has good support for cross-shard queries and aggregates. It will take PgDog a while to catch up.<p>My Rust has improved since my last attempt at this and I learned how to use the bytes crate correctly. PgDog does almost zero memory allocations per request. That results in a 3-5% performance increase over PgCat and a much more consistent p95. If you’re obsessed with performance like me, you know that small percentage is nothing to sneeze at. Like before, multi-threaded Tokio-powered PgDog leaves the single-threaded PgBouncer in the dust (<a href="https://pgdog.dev/blog/pgbouncer-vs-pgdog">https://pgdog.dev/blog/pgbouncer-vs-pgdog</a>).<p>Since we’re using pg_query (which itself bundles the Postgres parser), PgDog can understand all Postgres queries. This is important because we can not only correctly extract the WHERE clause and INSERT parameters for automatic routing, but also rewrite queries. This will be pretty useful when we’ll add support for more complex aggregates, like avg(), and cross-shard joins!<p>Read/write traffic split is supported out of the box, so you can put PgDog in front of the whole cluster and ditch the code annotations. It’s also a load balancer, so you can deploy it in front of multiple replicas to get 4 9’s of uptime.<p>One of the coolest features so far, in my opinion, is distributed COPY. This works by hacking the Postgres network protocol and sending individual rows to different shards (<a href="https://pgdog.dev/blog/hacking-postgres-wire-protocol">https://pgdog.dev/blog/hacking-postgres-wire-protocol</a>). You can just use it without thinking about cluster topology, e.g.:<p><pre><code> COPY temperature_records (sensor_uuid, created_at, value) FROM STDIN CSV; </code></pre> The sharding function is straight out of Postgres partitions and supports uuid v4 and bigint. Technically, it works with any data type, but I just haven’t added all the wrappers yet. Let me know if you need one.<p>What else? Since we have the Postgres parser handy, we can inspect, block and rewrite queries. One feature I was playing with is ensuring that the app is passing in the customer_id in all queries, to avoid data leaks between tenants. Brain dump of that in my blog here: <a href="https://pgdog.dev/blog/multi-tenant-pg-can-be-easy">https://pgdog.dev/blog/multi-tenant-pg-can-be-easy</a>.<p>What’s on the roadmap: (re)sharding Postgres using logical replication, so we can scale DBs without taking downtime. There is a neat trick on how to quickly do this on copy-on-write filesystems (like EBS used by RDS, Google Cloud volumes, ZFS, etc.). I’ll publish a blog post on this soon. More at-scale features like blocking bad queries and just general “I wish my Postgres proxy could do this” stuff. Speaking of which, if you can think of any more features you’d want, get in touch. Your wishlist can become my roadmap.<p>PgDog is being built in the open. If you have thoughts or suggestions about this topic, I would love to hear them. Happy to listen to your battle stories with Postgres as well.<p>Happy hacking!<p>Lev

< 1 2 3 ... 21 22 23 24 25 ... 832 833 834 >