The best Hacker News stories from Show from the past week
Latest posts:
Show HN: I Wrote a Book on Java
<a href="https://www.manning.com/books/data-oriented-programming-in-java" rel="nofollow">https://www.manning.com/books/data-oriented-programming-in-j...</a><p>This book is a distillation of everything I’ve learned about what effective development looks like in Java (so far!). It's about how to organize programs around data "as plain data" and the surprisingly benefits that emerge when we do. Programs that are built around the data they manage tend to be simpler, smaller, and significantly easier understand.<p>Java has changed radically over the last several years. It has picked up all kinds of new language features which support data oriented programming (records, pattern matching, `with` expressions, sum and product types). However, this is not a book about tools. No amount of studying a screw-driver will teach you how to build a house. This book focuses on house building. We'll pick out a plot of land, lay a foundation, and build upon it house that can weather any storm.<p>DoP is based around a very simple idea, and one people have been rediscovering since the dawn of computing, "representation is the essence of programming." When we do a really good job of capturing the data in our domain, the rest of the system tends to fall into place in a way which can feel like it’s writing itself.<p>That's my elevator pitch! The book is currently in early access. I hope you check it out. I'd love to hear your feedback.<p>You can get 50% off (thru October 9th) with code `mlkiehl`
<a href="https://www.manning.com/books/data-oriented-programming-in-java" rel="nofollow">https://www.manning.com/books/data-oriented-programming-in-j...</a>
Show HN: I Wrote a Book on Java
<a href="https://www.manning.com/books/data-oriented-programming-in-java" rel="nofollow">https://www.manning.com/books/data-oriented-programming-in-j...</a><p>This book is a distillation of everything I’ve learned about what effective development looks like in Java (so far!). It's about how to organize programs around data "as plain data" and the surprisingly benefits that emerge when we do. Programs that are built around the data they manage tend to be simpler, smaller, and significantly easier understand.<p>Java has changed radically over the last several years. It has picked up all kinds of new language features which support data oriented programming (records, pattern matching, `with` expressions, sum and product types). However, this is not a book about tools. No amount of studying a screw-driver will teach you how to build a house. This book focuses on house building. We'll pick out a plot of land, lay a foundation, and build upon it house that can weather any storm.<p>DoP is based around a very simple idea, and one people have been rediscovering since the dawn of computing, "representation is the essence of programming." When we do a really good job of capturing the data in our domain, the rest of the system tends to fall into place in a way which can feel like it’s writing itself.<p>That's my elevator pitch! The book is currently in early access. I hope you check it out. I'd love to hear your feedback.<p>You can get 50% off (thru October 9th) with code `mlkiehl`
<a href="https://www.manning.com/books/data-oriented-programming-in-java" rel="nofollow">https://www.manning.com/books/data-oriented-programming-in-j...</a>
Show HN: PDF to MD by LLMs – Extract Text/Tables/Image Descriptives by GPT4o
I've developed a Python API service that uses GPT-4o for OCR on PDFs. It features parallel processing and batch handling for improved performance. Not only does it convert PDF to markdown, but it also describes the images within the PDF using captions like `[Image: This picture shows 4 people waving]`.<p>In testing with NASA's Apollo 17 flight documents, it successfully converted complex, multi-oriented pages into well-structured Markdown.<p>The project is open-source and available on GitHub. Feedback is welcome.
Show HN: Time Flies
A visualization of the passage of time using flies. Written in JavaScript with some HTML & CSS in one index.html.
Show HN: Time Flies
A visualization of the passage of time using flies. Written in JavaScript with some HTML & CSS in one index.html.
Show HN: Time Flies
A visualization of the passage of time using flies. Written in JavaScript with some HTML & CSS in one index.html.
Show HN: Put this touch sensor on a robot and learn super precise tasks
We just released a very excited touch sensor that finally simplifies touch sensing for robotics.<p>Our most exciting result: Learned visuotactile policies for precise tasks like inserting USBs and credit card swiping, that work out-of-the-box when you replace skins! To the best of our knowledge, this has never been shown before with any existing tactile sensor.<p>Why is this important? For the first time, you could now collect data and train models on one sensor and expect them to generalize to new copies of the sensor -- opening the door to the kind of large foundation models that have revolutionized vision and language reasoning.<p>Would love to hear the community's questions, thoughts and comments!
Show HN: Put this touch sensor on a robot and learn super precise tasks
We just released a very excited touch sensor that finally simplifies touch sensing for robotics.<p>Our most exciting result: Learned visuotactile policies for precise tasks like inserting USBs and credit card swiping, that work out-of-the-box when you replace skins! To the best of our knowledge, this has never been shown before with any existing tactile sensor.<p>Why is this important? For the first time, you could now collect data and train models on one sensor and expect them to generalize to new copies of the sensor -- opening the door to the kind of large foundation models that have revolutionized vision and language reasoning.<p>Would love to hear the community's questions, thoughts and comments!
Show HN: Put this touch sensor on a robot and learn super precise tasks
We just released a very excited touch sensor that finally simplifies touch sensing for robotics.<p>Our most exciting result: Learned visuotactile policies for precise tasks like inserting USBs and credit card swiping, that work out-of-the-box when you replace skins! To the best of our knowledge, this has never been shown before with any existing tactile sensor.<p>Why is this important? For the first time, you could now collect data and train models on one sensor and expect them to generalize to new copies of the sensor -- opening the door to the kind of large foundation models that have revolutionized vision and language reasoning.<p>Would love to hear the community's questions, thoughts and comments!
Show HN: Container Desktop – Podman Desktop Companion
Show HN: Container Desktop – Podman Desktop Companion
Show HN: Container Desktop – Podman Desktop Companion
Show HN: A CLI tool I made to self-host any app with two commands on a VPS
Show HN: I've Built an Accounting System
It can create invoices and receive payments.<p>Not quite production ready, yet.<p>Only need PostgreSQL installed to try.<p>I will add support to choose SQLite when they add native support for geography types.
Show HN: I made crowdwave – imagine Twitter/Reddit but every post is a voicemail
Hey it's Andrew - author of <a href="https://www.crowdwave.com" rel="nofollow">https://www.crowdwave.com</a> here!<p>- crowdwave works best on your phone - unless you've got your headset and microphone plugged in to your desktop, in which case desktop works great too.<p>Here's the story:<p>So about six months ago I saw this post on HN <a href="https://news.ycombinator.com/item?id=39910119">https://news.ycombinator.com/item?id=39910119</a><p><a href="https://afterthebeep.tel" rel="nofollow">https://afterthebeep.tel</a> is really cool - it's an anonymous voicemail box - you call the provided phone the number and leave a message. Blaine - the guy who runs the site (eventually) listens to and approves your message and writes a headline. It was fun, and I found I kept going back to it and listening to the messages. I left a message once and several weeks later it appeared on the site. Blaine, from comments I read, didn't seem in a hurry to take the site much further, which got me thinking...<p>And I simply could not get one question out of my head - "what would happen if users could just hit record on their phone, instead of having to dial a phone number?".<p>When I get a software idea I get pretty obsessive and that question just kept gnawing at me.<p>So, like the any reasonable programmer would, I stopped working on the project I had been working on for literally YEARS and took a detour. Because that's what you do isn't it - you just drop those multiple years of work and pick up the shiny new thing.<p>I saw that afterthebeep is open source and I loved the UI design - the Windows 3.1 aesthetic really appealed to me - it seems perfect for voicemail, so I grabbed the open source code and started development. I couldn't make much sense of the code - it was using tech I'm not familiar with, so I ditched it all except the layout and the graphics.<p>Fortunately, the project I had been working on for YEARS is basically a Twitter/Reddit clone, so I ripped the UI out of the afterthebeep open source project and did open heart surgery until like some bizarre Frankenstein's monster I had put the afterthebeep open source UI onto my code.<p>And I added in the functionality that I craved so much - a "record" button. Sigh.... relief. It was incredibly satisfying to hit record and see a message appear almost immediately. Nerd craving fulfilled.<p>But my satisfaction did not last long. I REALLY HAD TO fix that problem of getting the posts approved and headlines written. So I made a back end audio processing pipeline and fed the messages into an LLM, which ripped the text from the speech and I then shoved it into OpenAI and asked it to make nice headlines. And it worked beautifully - now you only have to wait 30 seconds to see your message with a nice headline! Ahhhh..... sigh, satisfaction... (it wouldn't be 2024 without an AI twist, would it now?).<p>But hang on! It would be <i>SO much better</i> if there was some sort of category system almost like subreddits - then people could post their messages into areas of interest. So I built the channel system and sat back.... job done.<p>Looking at the calendar, dreading to see..... I've dropped into obsessive coding mode and and I've been down this rabbit hole full time for MONTHS. I'm getting wary - and I'm also getting tired and sick of the effort - when's this going to end?<p>But wait, another idea! How much more cool would it be if you could have your own user account, and follow and like and subscribe! I've just GOT TO make that. AND surely it has to be multi language doesn't it? I mean Germans like talking too don't they? And user profile pics, and channel banner images, and options and settings. And if you don't put in terms and conditions and privacy and a cookie message then won't the Eurpoeans turn up and arrest me? At this stage I'm like a drunken junkie wanting just one more thing, one more thing...... scope ain't just creeping, the scope is up and racing away faster than Usain Bolt.<p>I'm now like nearly five months into this and packing all this functionality into a UI that both make sense and fits onto a tiny phone screen is becoming a huge challenge - a challenge I don't know if I can actually solve - and if I can't make the UI make sense then the whole thing will be unusable. The UI MUST be minimal and yet still reveal to the user pretty much everything within fewer than five pages in total. The UI had to work BEST on a phone. That was a HUGE challenge, and I really didn't know until the end of the project if I could do it at all. But finally the UI seemed to come together and it was a tight squeeze but fit onto the limited screen resolution of even my old iPhone 6s (yes it's my main phone).<p>Then, a few days ago, after many months of grueling grind, there was nothing left on the todo list. crowdwave was done! All the features were done and I'd finally chased down that scope creep.<p>Which brings us to today. Give <a href="https://www.crowdwave.com" rel="nofollow">https://www.crowdwave.com</a> a go on your phone or desktop if you have microphone. It's brand new so there WILL be bugs - hopefully not too severe. Thanks to Blaine at <a href="https://blaines.world/" rel="nofollow">https://blaines.world/</a> for the inspiration!
Show HN: Electrico – Electron Without Node and Chrome
Show HN: Open Scanner, an open-source document scanning app for iPhone
Show HN: Void, an open-source Cursor/GitHub Copilot alternative
Hey HN, I'm Andrew, one of the creators of Void. I made this open source version of Cursor where you can get all of Cursor's core features but in a fully-customizable IDE (ctrl+k, ctrl+L). We love Cursor but there are so many other features we want to build, like allowing AI to edit multiple files at once, or giving AI better understanding of your file system. Void is the open-source, fully customizable tool we've been wanting.<p>The hard part: we're building Void as a fork of vscode. The repo has great documentation for extensions, but going deeper gets pretty involved. All of the code is OOP-based, and they mount DOM nodes the old-school way (which is what React was supposed to solve..). So adding new UI features isn't exactly trivial. Microsoft also made its extension marketplace closed-source so we (and Cursor) have to hack our way through it. One thing we're excited about is refactoring and creating docs so that it's much easier for anyone to contribute.<p>The other benefit of open source is we don't need to hide how our prompts are built, so we can transfer the private API logic that Cursor has right onto your local machine. This lets you host a model on-prem and have your data stay completely private. It also means you can go directly to LLM providers (OpenAI, Anthropic) instead of going through us as a middleman.<p>There's still a lot to build, and full disclosure, we are very early stage. But we're super excited about building and have a working prototype that we're quickly adding features to.<p>Let us know if there's anything you want to see in a Cursor-style editor. Or feel free to shoot us a pull request. Cheers!
Show HN: Wordllama – Things you can do with the token embeddings of an LLM
After working with LLMs for long enough, I found myself wanting a lightweight utility for doing various small tasks to prepare inputs, locate information and create evaluators. This library is two things: a very simple model and utilities that inference it (eg. fuzzy deduplication). The target platform is CPU, and it’s intended to be light, fast and pip installable — a library that lowers the barrier to working with strings <i>semantically</i>. You don’t need to install pytorch to use it, or any deep learning runtimes.<p>How can this be accomplished? The model is simply token embeddings that are average pooled. To create this model, I extracted token embedding (nn.Embedding) vectors from LLMs, concatenated them along the embedding dimension, added a learnable weight parameter, and projected them to a smaller dimension. Using the sentence transformers framework and datasets, I trained the pooled embedding with multiple negatives ranking loss and matryoshka representation learning so they can be truncated. After training, the weights and projections are no longer needed, because there is no contextual calculations. I inference the entire token vocabulary and save the new token embeddings to be loaded to numpy.<p>While the results are not impressive compared to transformer models, they perform well on MTEB benchmarks compared to word embedding models (which they are most similar to), while being much smaller in size (smallest model, 32k vocab, 64-dim is only 4MB).<p>On the utility side, I’ve been adding some tools that I think it’ll be useful for. In addition to general embedding, there’s algorithms for ranking, filtering, clustering, deduplicating and similarity. Some of them have a cython implementation, and I’m continuing to work on benchmarking them and improving them as I have time. In addition to “standard” models that use cosine similarity for some algorithms, there are binarized models that use hamming distance. This is a slightly faster, similarity algorithm, with significantly less memory per embedding (float32 -> 1 bit).<p>Hope you enjoy it, and find it useful. PS I haven’t figured out Windows builds yet, but Linux and Mac are supported.
Show HN: Wordllama – Things you can do with the token embeddings of an LLM
After working with LLMs for long enough, I found myself wanting a lightweight utility for doing various small tasks to prepare inputs, locate information and create evaluators. This library is two things: a very simple model and utilities that inference it (eg. fuzzy deduplication). The target platform is CPU, and it’s intended to be light, fast and pip installable — a library that lowers the barrier to working with strings <i>semantically</i>. You don’t need to install pytorch to use it, or any deep learning runtimes.<p>How can this be accomplished? The model is simply token embeddings that are average pooled. To create this model, I extracted token embedding (nn.Embedding) vectors from LLMs, concatenated them along the embedding dimension, added a learnable weight parameter, and projected them to a smaller dimension. Using the sentence transformers framework and datasets, I trained the pooled embedding with multiple negatives ranking loss and matryoshka representation learning so they can be truncated. After training, the weights and projections are no longer needed, because there is no contextual calculations. I inference the entire token vocabulary and save the new token embeddings to be loaded to numpy.<p>While the results are not impressive compared to transformer models, they perform well on MTEB benchmarks compared to word embedding models (which they are most similar to), while being much smaller in size (smallest model, 32k vocab, 64-dim is only 4MB).<p>On the utility side, I’ve been adding some tools that I think it’ll be useful for. In addition to general embedding, there’s algorithms for ranking, filtering, clustering, deduplicating and similarity. Some of them have a cython implementation, and I’m continuing to work on benchmarking them and improving them as I have time. In addition to “standard” models that use cosine similarity for some algorithms, there are binarized models that use hamming distance. This is a slightly faster, similarity algorithm, with significantly less memory per embedding (float32 -> 1 bit).<p>Hope you enjoy it, and find it useful. PS I haven’t figured out Windows builds yet, but Linux and Mac are supported.