The best Hacker News stories from Show from the past day
Latest posts:
Freenet 2024 – a drop-in decentralized replacement for the web [video]
Show HN: Shpool, a Lightweight Tmux Alternative
shpool is a terminal session persistence tool developed internally at google to support remote workflows, which we have open sourced.
Show HN: Shpool, a Lightweight Tmux Alternative
shpool is a terminal session persistence tool developed internally at google to support remote workflows, which we have open sourced.
Show HN: Shpool, a Lightweight Tmux Alternative
shpool is a terminal session persistence tool developed internally at google to support remote workflows, which we have open sourced.
Show HN: Shpool, a Lightweight Tmux Alternative
shpool is a terminal session persistence tool developed internally at google to support remote workflows, which we have open sourced.
Show HN: Collaborative ASCII Drawing with Telnet
Show HN: Collaborative ASCII Drawing with Telnet
Show HN: Collaborative ASCII Drawing with Telnet
Show HN: Collaborative ASCII Drawing with Telnet
Show HN: Semantic clusters and embeddings for 500k Hacker News comments
Show HN: Semantic clusters and embeddings for 500k Hacker News comments
Show HN: Semantic clusters and embeddings for 500k Hacker News comments
Show HN: Semantic clusters and embeddings for 500k Hacker News comments
Show HN: PDF to Podcast – Convert Any PDF into a Podcast Episode
Hi HN!<p>I'm stoked to share a project I've been working on called PDF to Podcast. It's a free, open-source tool that automatically converts PDF documents into engaging, informative podcast-style audio content using large language models and text-to-speech tech.<p>Inspiration:
The idea for this project came from the NotebookLM demo at Google I/O, where they showcased generating audio dialogue from uploaded PDFs and other sources. However, that audio feature hasn't been publicly released yet, and I wanted to challenge myself to build something similar using existing tools and APIs.<p>How it works:<p>The user uploads a PDF
The tool extracts the text and feeds it into Google's Gemini Flash language model
Gemini Flash generates a natural, engaging podcast dialogue script based on the key information in the document
This script is then converted to audio using OpenAI's text-to-speech API
The user can listen to the generated "podcast episode" and read along with the transcript
I chose to use Gemini Flash for the language model because it's good at writing high-quality prose while being fast and cheap. We use OpenAI's TTS API to then bring the dialogue to life.<p>Under the hood, it's built with Python, FastAPI, Gradio for the web UI, and my own library, promptic, for calling the LLM and getting structured output. The code is open-source and available on GitHub.<p>Apart from the tool's practical utility, I'm hoping this project can serve as a helpful example for others looking to build applications on top of large language models. It demonstrates an end-to-end flow from document intake to language model usage to audio output, with a simple web interface on top.<p>I would love to hear any feedback or ideas from the HN community! I think there's a lot of potential to expand on this concept and make all sorts of written content more accessible and engaging through audio conversion. Let me know what you think :)
Show HN: PDF to Podcast – Convert Any PDF into a Podcast Episode
Hi HN!<p>I'm stoked to share a project I've been working on called PDF to Podcast. It's a free, open-source tool that automatically converts PDF documents into engaging, informative podcast-style audio content using large language models and text-to-speech tech.<p>Inspiration:
The idea for this project came from the NotebookLM demo at Google I/O, where they showcased generating audio dialogue from uploaded PDFs and other sources. However, that audio feature hasn't been publicly released yet, and I wanted to challenge myself to build something similar using existing tools and APIs.<p>How it works:<p>The user uploads a PDF
The tool extracts the text and feeds it into Google's Gemini Flash language model
Gemini Flash generates a natural, engaging podcast dialogue script based on the key information in the document
This script is then converted to audio using OpenAI's text-to-speech API
The user can listen to the generated "podcast episode" and read along with the transcript
I chose to use Gemini Flash for the language model because it's good at writing high-quality prose while being fast and cheap. We use OpenAI's TTS API to then bring the dialogue to life.<p>Under the hood, it's built with Python, FastAPI, Gradio for the web UI, and my own library, promptic, for calling the LLM and getting structured output. The code is open-source and available on GitHub.<p>Apart from the tool's practical utility, I'm hoping this project can serve as a helpful example for others looking to build applications on top of large language models. It demonstrates an end-to-end flow from document intake to language model usage to audio output, with a simple web interface on top.<p>I would love to hear any feedback or ideas from the HN community! I think there's a lot of potential to expand on this concept and make all sorts of written content more accessible and engaging through audio conversion. Let me know what you think :)
Show HN: Restate – Low-latency durable workflows for JavaScript/Java, in Rust
We'd love to share our work with you: Restate, a system for workflows-as-code (durable execution). With SDKs in JS/Java/Kotlin and a lightweight runtime built in Rust/Tokio.<p><a href="https://github.com/restatedev/">https://github.com/restatedev/</a>
<a href="https://restate.dev/" rel="nofollow">https://restate.dev/</a><p>It is free and open, SDKs are MIT-licensed, runtime permissive BSL (basically just the minimal Amazon defense).
We worked on that for a bit over a year. A few points I think are worth mentioning:<p>- Restate's runtime is a single binary, self-contained, no dependencies aside from a durable disk. It contains basically a lightweight integrated version of a durable log, workflow state machine, state storage, etc. That makes it very compact and easy to run both on a laptop and a server.<p>- Restate implements durable execution not only for workflows, but the core building block is durable RPC handlers (or event handler). It adds a few concepts on top of durable execution, like virtual objects (turn RPC handlers into virtual actors), durable communication, and durable promises. Here are more details: <a href="https://restate.dev/programming-model" rel="nofollow">https://restate.dev/programming-model</a><p>- Core design goal for APIs was to keep a familiar style. An app developer should look at Restate examples and say "hey, that looks quite familiar". You can let us know if that worked out.<p>- Basically every operation (handler invocation, step, ...) goes through a consensus layer, for a high degree of resilience and consistency.<p>- The lightweight log-centric architecture gives Restate still good latencies: For example around 50ms roundtrip (invoke to result) for a 3-step durable workflow handler (Restate on EBS with fsync for every step).<p>We'd love to hear what you think of it!
Show HN: Restate – Low-latency durable workflows for JavaScript/Java, in Rust
We'd love to share our work with you: Restate, a system for workflows-as-code (durable execution). With SDKs in JS/Java/Kotlin and a lightweight runtime built in Rust/Tokio.<p><a href="https://github.com/restatedev/">https://github.com/restatedev/</a>
<a href="https://restate.dev/" rel="nofollow">https://restate.dev/</a><p>It is free and open, SDKs are MIT-licensed, runtime permissive BSL (basically just the minimal Amazon defense).
We worked on that for a bit over a year. A few points I think are worth mentioning:<p>- Restate's runtime is a single binary, self-contained, no dependencies aside from a durable disk. It contains basically a lightweight integrated version of a durable log, workflow state machine, state storage, etc. That makes it very compact and easy to run both on a laptop and a server.<p>- Restate implements durable execution not only for workflows, but the core building block is durable RPC handlers (or event handler). It adds a few concepts on top of durable execution, like virtual objects (turn RPC handlers into virtual actors), durable communication, and durable promises. Here are more details: <a href="https://restate.dev/programming-model" rel="nofollow">https://restate.dev/programming-model</a><p>- Core design goal for APIs was to keep a familiar style. An app developer should look at Restate examples and say "hey, that looks quite familiar". You can let us know if that worked out.<p>- Basically every operation (handler invocation, step, ...) goes through a consensus layer, for a high degree of resilience and consistency.<p>- The lightweight log-centric architecture gives Restate still good latencies: For example around 50ms roundtrip (invoke to result) for a 3-step durable workflow handler (Restate on EBS with fsync for every step).<p>We'd love to hear what you think of it!
Show HN: Restate – Low-latency durable workflows for JavaScript/Java, in Rust
We'd love to share our work with you: Restate, a system for workflows-as-code (durable execution). With SDKs in JS/Java/Kotlin and a lightweight runtime built in Rust/Tokio.<p><a href="https://github.com/restatedev/">https://github.com/restatedev/</a>
<a href="https://restate.dev/" rel="nofollow">https://restate.dev/</a><p>It is free and open, SDKs are MIT-licensed, runtime permissive BSL (basically just the minimal Amazon defense).
We worked on that for a bit over a year. A few points I think are worth mentioning:<p>- Restate's runtime is a single binary, self-contained, no dependencies aside from a durable disk. It contains basically a lightweight integrated version of a durable log, workflow state machine, state storage, etc. That makes it very compact and easy to run both on a laptop and a server.<p>- Restate implements durable execution not only for workflows, but the core building block is durable RPC handlers (or event handler). It adds a few concepts on top of durable execution, like virtual objects (turn RPC handlers into virtual actors), durable communication, and durable promises. Here are more details: <a href="https://restate.dev/programming-model" rel="nofollow">https://restate.dev/programming-model</a><p>- Core design goal for APIs was to keep a familiar style. An app developer should look at Restate examples and say "hey, that looks quite familiar". You can let us know if that worked out.<p>- Basically every operation (handler invocation, step, ...) goes through a consensus layer, for a high degree of resilience and consistency.<p>- The lightweight log-centric architecture gives Restate still good latencies: For example around 50ms roundtrip (invoke to result) for a 3-step durable workflow handler (Restate on EBS with fsync for every step).<p>We'd love to hear what you think of it!
Show HN: A keyboard-centric clipboard history app for macOS
Hey HN,<p>As a Software Engineer, I frequently copy and paste content. The fact that macOS clipboard buffer can keep only one item is very frustrating. It’s very annoying to copy → switch app → paste → switch app → copy → switch app → paste, and so on. Losing items I copied hours ago and having to find and copy them again is a waste of time.<p>I tried many third-party clipboard managers like Alfred, Raycast, Paste, Maccy, etc. While great, they didn't fully meet my needs.<p>As a developer, my requirements are:<p>1. Keyboard-centric operation to avoid using the mouse. I don’t want to waste my time moving my hands from the keyboard.<p>2. Display many clipboard history items at once. I don’t like the idea with big tiles, so I can see only 5-7 history items on my 32” monitor.<p>3. Full content preview for each clipboard item.<p>4. Quick search functionality.<p>So, I created ClipBook for my own use. After months of development, daily use, and positive feedback from my colleagues, I decided to share it publicly. It’s free. All data is securely stored on your computer. I’m planning to make it open source as well.<p>If you try it out, please let me know if you found it useful, if you have anything you’d like me to add, or if you have any other feedback.<p>Happy to answer any questions. Much appreciated.
Show HN: A keyboard-centric clipboard history app for macOS
Hey HN,<p>As a Software Engineer, I frequently copy and paste content. The fact that macOS clipboard buffer can keep only one item is very frustrating. It’s very annoying to copy → switch app → paste → switch app → copy → switch app → paste, and so on. Losing items I copied hours ago and having to find and copy them again is a waste of time.<p>I tried many third-party clipboard managers like Alfred, Raycast, Paste, Maccy, etc. While great, they didn't fully meet my needs.<p>As a developer, my requirements are:<p>1. Keyboard-centric operation to avoid using the mouse. I don’t want to waste my time moving my hands from the keyboard.<p>2. Display many clipboard history items at once. I don’t like the idea with big tiles, so I can see only 5-7 history items on my 32” monitor.<p>3. Full content preview for each clipboard item.<p>4. Quick search functionality.<p>So, I created ClipBook for my own use. After months of development, daily use, and positive feedback from my colleagues, I decided to share it publicly. It’s free. All data is securely stored on your computer. I’m planning to make it open source as well.<p>If you try it out, please let me know if you found it useful, if you have anything you’d like me to add, or if you have any other feedback.<p>Happy to answer any questions. Much appreciated.