The best Hacker News stories from Show from the past day

Go back

Latest posts:

Show HN: Kreuzberg – Modern async Python library for document text extraction

I'm excited to showcase Kreuzberg!<p>Kreuzberg is a modern Python library built from the ground up with async/await, type hints, and optimized I/O handling.<p>It provides a unified interface for extracting text from documents (PDFs, images, office files) without external API dependencies.<p>Key technical features: - Built with modern Python best practices (async/await, type hints, functional-first) - Optimized async I/O with anyio for multi-loop compatibility - Smart worker process pool for CPU-bound tasks (OCR, doc conversion) - Efficient batch processing with concurrent extractions - Clean error handling with context-rich exceptions<p>I built this after struggling with existing solutions that were either synchronous-only, required complex deployments, or had poor async support. The goal was to create something that works well in modern async Python applications, can be easily dockerized or used in serverless contexts, and relies only on permissive OSS.<p>Key advantages over alternatives: - True async support with optimized I/O - Minimal dependencies (much smaller than alternatives) - Perfect for serverless and async web apps - Local processing without API calls - Built for modern Python codebases with rigorous typing and testing<p>I Would love feedback!<p>The library is MIT licensed and open to contributions.<p>Here is the repo: <a href="https://github.com/Goldziher/kreuzberg">https://github.com/Goldziher/kreuzberg</a><p>Staring is caring

Show HN: A unique generated maze to share with your valentine

An experiment with maze generation, started off in Rust, then ported to js to make it a web-app.<p>The algorithm, code and setup aims to make it simple - and as always, simple turned out hard ;).<p>The "about" dialog has some more information on choices made, tech used, inspiration and backgrounds.<p>Most important, for a tech crowd, I guess is:<p>- it uses p5.js - I generally prefer just vanilla js and canvas for my generative art projects, but here I wanted to focus on the outcome, not the tooling.<p>- uses seedrandom with the name of you and your valentine as seed. So a unique, but reproducible maze for a pair of names. Randomness controls the colors, layout and maze generation.<p>- Yes, the code is a mess still. Refactoring breaks my creative process, so I tend to postpone it (aka forget about it...)<p>- It uses some browser apis (share, copy, download) that don't work for all browsers in all setups (e.g. copy doesn't work on my firefox android, no idea why).<p>The source code can be found here: <a href="https://github.com/berkes/art/tree/main/lost-in-love">https://github.com/berkes/art/tree/main/lost-in-love</a>

Show HN: A unique generated maze to share with your valentine

An experiment with maze generation, started off in Rust, then ported to js to make it a web-app.<p>The algorithm, code and setup aims to make it simple - and as always, simple turned out hard ;).<p>The "about" dialog has some more information on choices made, tech used, inspiration and backgrounds.<p>Most important, for a tech crowd, I guess is:<p>- it uses p5.js - I generally prefer just vanilla js and canvas for my generative art projects, but here I wanted to focus on the outcome, not the tooling.<p>- uses seedrandom with the name of you and your valentine as seed. So a unique, but reproducible maze for a pair of names. Randomness controls the colors, layout and maze generation.<p>- Yes, the code is a mess still. Refactoring breaks my creative process, so I tend to postpone it (aka forget about it...)<p>- It uses some browser apis (share, copy, download) that don't work for all browsers in all setups (e.g. copy doesn't work on my firefox android, no idea why).<p>The source code can be found here: <a href="https://github.com/berkes/art/tree/main/lost-in-love">https://github.com/berkes/art/tree/main/lost-in-love</a>

Show HN: A unique generated maze to share with your valentine

An experiment with maze generation, started off in Rust, then ported to js to make it a web-app.<p>The algorithm, code and setup aims to make it simple - and as always, simple turned out hard ;).<p>The "about" dialog has some more information on choices made, tech used, inspiration and backgrounds.<p>Most important, for a tech crowd, I guess is:<p>- it uses p5.js - I generally prefer just vanilla js and canvas for my generative art projects, but here I wanted to focus on the outcome, not the tooling.<p>- uses seedrandom with the name of you and your valentine as seed. So a unique, but reproducible maze for a pair of names. Randomness controls the colors, layout and maze generation.<p>- Yes, the code is a mess still. Refactoring breaks my creative process, so I tend to postpone it (aka forget about it...)<p>- It uses some browser apis (share, copy, download) that don't work for all browsers in all setups (e.g. copy doesn't work on my firefox android, no idea why).<p>The source code can be found here: <a href="https://github.com/berkes/art/tree/main/lost-in-love">https://github.com/berkes/art/tree/main/lost-in-love</a>

Show HN: A New Way to Learn Languages

Hi HN, I’m Pablo, I built this application to learn languages using podcasts:<p><a href="https://www.langturbo.com" rel="nofollow">https://www.langturbo.com</a> (No signup required)<p>There are a lot of tools to learn languages, but most of them focus on beginners (understandably so, that’s where the money is) but not many exist that target intermediate or advanced learners. The ones that exist make you find content on your own and then import that into their apps, which can be tricky when you don’t know where to look.<p>LangTurbo has a unique curated database of podcasts by language (some even have dialect labels) that you can browse by topic, or search by keyword, so you can discover content and learn in the same place.<p>Having a good language learning method is important, but having the motivation to keep learning is much more important. Some tools like Duolingo try to keep you motivated with “gamification”. I don’t like that, I think it gives you a false sense of accomplishment without real improvement. The way LangTurbo tries to keep you coming back is via the content itself. My goal is that you discover some podcast that interests you enough to keep coming back to listen to new episodes, the same way you listen to podcasts in your native language. I wrote more about the method here [1]<p>The app also lets you learn without looking at the screen, you can listen to a podcast in the background and for each sentence you will first hear the translation in English and the native speaker after. I call it “poor man's Pimsleur mode”.<p>Some things I learned while building the app:<p>* Currently the best SRS algorithm is FSRS, the app uses this algorithm implemented in SQL (thanks to [2])<p>* Working with Expo (React Native) was a great experience, the app has web, iOS and Android (coming soon) clients sharing most of the codebase.<p>* A lot of non-English podcasts have a feed with English as the language. I had to build a “probe” to get the correct language of a podcast, based on the text and audio of the feed.<p>* Podcasts use “Dynamic Ad Insertion”, that means the content of the audio can change according to the request IP or the time of the request.<p>* Still amazed by all the things Postgres can do<p>Let me know what you think, happy to answer any questions.<p>[1] <a href="https://www.langturbo.com/blog/langturbo/getting-started" rel="nofollow">https://www.langturbo.com/blog/langturbo/getting-started</a><p>[2] <a href="https://github.com/sivers/srs">https://github.com/sivers/srs</a>

Show HN: I made a tiny book using a pen-plotter and AI

Hey HN,<p>I want to share a personal project: I made a tiny pen-plotted book for my wife. I did everything myself—drawings (with some help from Midjourney), plotting, cutting, and binding. I even used a 3D printer to make a helper tool.<p>It's absolutely over-engineered, but I enjoyed it a lot. Multi-disciplinary projects, especially those with a physical output, are a lot of fun for me.<p>The post covers the process in detail, but if you're interested in anything specific, let me know.<p>Cheers!

Show HN: I made a tiny book using a pen-plotter and AI

Hey HN,<p>I want to share a personal project: I made a tiny pen-plotted book for my wife. I did everything myself—drawings (with some help from Midjourney), plotting, cutting, and binding. I even used a 3D printer to make a helper tool.<p>It's absolutely over-engineered, but I enjoyed it a lot. Multi-disciplinary projects, especially those with a physical output, are a lot of fun for me.<p>The post covers the process in detail, but if you're interested in anything specific, let me know.<p>Cheers!

Show HN: I made a tiny book using a pen-plotter and AI

Hey HN,<p>I want to share a personal project: I made a tiny pen-plotted book for my wife. I did everything myself—drawings (with some help from Midjourney), plotting, cutting, and binding. I even used a 3D printer to make a helper tool.<p>It's absolutely over-engineered, but I enjoyed it a lot. Multi-disciplinary projects, especially those with a physical output, are a lot of fun for me.<p>The post covers the process in detail, but if you're interested in anything specific, let me know.<p>Cheers!

Show HN: I made a tiny book using a pen-plotter and AI

Hey HN,<p>I want to share a personal project: I made a tiny pen-plotted book for my wife. I did everything myself—drawings (with some help from Midjourney), plotting, cutting, and binding. I even used a 3D printer to make a helper tool.<p>It's absolutely over-engineered, but I enjoyed it a lot. Multi-disciplinary projects, especially those with a physical output, are a lot of fun for me.<p>The post covers the process in detail, but if you're interested in anything specific, let me know.<p>Cheers!

Show HN: Transform your codebase into a single Markdown doc for feeding into AI

CodeWeaver is a command-line tool designed to weave your codebase into a single, easy-to-navigate Markdown document. It recursively scans a directory, generating a structured representation of your project's file hierarchy and embedding the content of each file within code blocks. This tool simplifies codebase sharing, documentation, and integration with AI/ML code analysis tools by providing a consolidated and readable Markdown output.

Show HN: Transform your codebase into a single Markdown doc for feeding into AI

CodeWeaver is a command-line tool designed to weave your codebase into a single, easy-to-navigate Markdown document. It recursively scans a directory, generating a structured representation of your project's file hierarchy and embedding the content of each file within code blocks. This tool simplifies codebase sharing, documentation, and integration with AI/ML code analysis tools by providing a consolidated and readable Markdown output.

Show HN: Transform your codebase into a single Markdown doc for feeding into AI

CodeWeaver is a command-line tool designed to weave your codebase into a single, easy-to-navigate Markdown document. It recursively scans a directory, generating a structured representation of your project's file hierarchy and embedding the content of each file within code blocks. This tool simplifies codebase sharing, documentation, and integration with AI/ML code analysis tools by providing a consolidated and readable Markdown output.

Show HN: Skies-adsb 2.0 – my 3D plane-tracking web app

Hello, I'd like to share a 3D plane tracking web app that I developed called: skies-adsb.<p>Living near KMIA (a very busy airport), I spend a lot of time plane spotting and thought it would be cool to track planes in 3D.<p>In October 2021, I built a prototype 3D ADS-B flight tracker called skies-adsb using p5.js.<p>In April 2022, I released version 1.0 of skies-adsb, rewritten in Three.js. However, this release still relied on manual editing of GeoJSON layers.<p>By late 2024, I had learned enough about GIS and GeoPandas to automate map creation using custom GeoJSON layers. During the Christmas holiday, I developed a script to generate these layers from Natural Earth, FAA, and OpenStreetMap data using GeoPandas, then refactored skies-adsb to render multiple GeoJSON layers.<p>Today, version 2.0 of skies-adsb is available! This release simplifies installation, automates GeoJSON map creation, and features a new rendering engine. skies-adsb is compatible with all major WebGL-enabled mobile and desktop browsers.<p>To run skies-adsb you will need an RTL-SDR receiver and a Linux workstation or Raspberry Pi, or you can connect to an existing RTL-SDR ADS-B installation.<p>Working on this app has brought me a lot of joy and I also learned a lot about aviation, weather, GIS, and Three.js along the way. I use it daily, typically leaving it running in the background like a digital aquarium. I hope you enjoy it too.<p>Please check out skies-adsb by following the links below:<p>Source Code: <a href="https://github.com/llopisdon/skies-adsb">https://github.com/llopisdon/skies-adsb</a><p>Video of skies-adsb: <a href="https://youtu.be/HnY1vFUBXS0" rel="nofollow">https://youtu.be/HnY1vFUBXS0</a>

Show HN: yknotify – Notify when YubiKey needs touch on macOS

Show HN: yknotify – Notify when YubiKey needs touch on macOS

Show HN: SQL Noir – Learn SQL by solving crimes

I built SQL Noir, an interactive detective game that challenges you to solve mysteries using real SQL queries. It’s fully open source, designed to give you a practical and immersive way to learn SQL while engaging with a narrative-driven mystery.

Show HN: SQL Noir – Learn SQL by solving crimes

I built SQL Noir, an interactive detective game that challenges you to solve mysteries using real SQL queries. It’s fully open source, designed to give you a practical and immersive way to learn SQL while engaging with a narrative-driven mystery.

Show HN: SQL Noir – Learn SQL by solving crimes

I built SQL Noir, an interactive detective game that challenges you to solve mysteries using real SQL queries. It’s fully open source, designed to give you a practical and immersive way to learn SQL while engaging with a narrative-driven mystery.

Show HN: App that simulates a software engineer's daily job

I built an app that lets users get on the job experience to better prepare them for dev roles by assigning them<p>- mock tickets on a large codebase - reviewing their PR submissions - giving them AI mentorship.<p>it's just the frontend for now and would really welcome feedback from you guys!!

Show HN: Mapping the Unix Magic Poster – An Interactive Annotation Project

Hi HN,<p>We've discussed the Unix Magic poster before (<a href="https://news.ycombinator.com/item?id=27029196">https://news.ycombinator.com/item?id=27029196</a>). Like many of you, I love this poster and all the Unix references hidden in it.<p>I built this as a static site that lets us annotate the Unix Magic poster by placing markers on references and adding descriptions to explain them. I've added a few so far, but there's much more to document.<p>What I love about this approach is that contributions happen not just on the site itself but also through PRs, where we can discuss and refine the details of each reference. Feel free to send a PR!<p>Code: <a href="https://github.com/drio/unixmagic">https://github.com/drio/unixmagic</a> Live site: <a href="https://drio.github.io/unixmagic" rel="nofollow">https://drio.github.io/unixmagic</a><p>Would love feedback, suggestions, and PRs from the community!<p>Thanks!<p>—drd

< 1 2 3 4 ... 761 762 763 >