The best Hacker News stories from Show from the past day

Go back

Latest posts:

Show HN: Easily train AlphaZero-like agents on any environment you want

Show HN: Easily train AlphaZero-like agents on any environment you want

Show HN: I made a dead simple logo maker

Show HN: I built an open source AI video search engine to learn more about AI

Hi there! When Supabase announced their recent hackathon, I thought it was a good time to build something to learn more about so many of the new AI models and tech out there. From the different techniques of embedding documents to the future RAG.<p>With the rise of short form content with TikTok and Youtube. A lot more knowledge is in videos than ever before. Finding specific answers within millions of videos can be difficult for any one person to go through. So the question is if there is Google that indexes text on website making it easier to find based on the context of on your question, why is there no Google that indexes video content making it easier for users to find answers within them.<p>So I built this to showcase that it's very much possible with the technology and infrastructure that is readily available.<p>I've indexed thousands of videos from Youtube and will be adding more, some of the things coming soon: - Index TikTok videos - Using whisper to transcribe audio in videos that don't have captions - Auto scraping both Youtube and Tiktok everyday to add new content<p>The tech stack: - Supbase (PostgreSQL, PG_Vector, Auth) - Hasura (GraphQL layer, permissions) - Fly (Hosting of Hasura) - JigsawStack (Summary AI, Chat AI) - Vercel (NextJS hosting, Serverless functions)<p>The code is opensource here:<a href="https://github.com/yoeven/ai-video-search-engine">https://github.com/yoeven/ai-video-search-engine</a><p>Would love some feedback and thoughts on what you would like to see?

Show HN: I built an open source AI video search engine to learn more about AI

Hi there! When Supabase announced their recent hackathon, I thought it was a good time to build something to learn more about so many of the new AI models and tech out there. From the different techniques of embedding documents to the future RAG.<p>With the rise of short form content with TikTok and Youtube. A lot more knowledge is in videos than ever before. Finding specific answers within millions of videos can be difficult for any one person to go through. So the question is if there is Google that indexes text on website making it easier to find based on the context of on your question, why is there no Google that indexes video content making it easier for users to find answers within them.<p>So I built this to showcase that it's very much possible with the technology and infrastructure that is readily available.<p>I've indexed thousands of videos from Youtube and will be adding more, some of the things coming soon: - Index TikTok videos - Using whisper to transcribe audio in videos that don't have captions - Auto scraping both Youtube and Tiktok everyday to add new content<p>The tech stack: - Supbase (PostgreSQL, PG_Vector, Auth) - Hasura (GraphQL layer, permissions) - Fly (Hosting of Hasura) - JigsawStack (Summary AI, Chat AI) - Vercel (NextJS hosting, Serverless functions)<p>The code is opensource here:<a href="https://github.com/yoeven/ai-video-search-engine">https://github.com/yoeven/ai-video-search-engine</a><p>Would love some feedback and thoughts on what you would like to see?

Show HN: PageSpy – Remote debugging as seamless as local debugging

Show HN: Git, from scratch, in Python, Spelled out

A simple version control system.

Show HN: Chrome Reaper

Reaper is a Chrome (or Chromium) browser extension that terminates browser processes when they use too much CPU. Anything that the browser regards as a process is a potential target. This includes tabs, renderers, subframes, other extensions, and itself.<p>It works on stable channel Chrome for Linux but requires dev channel on Windows, MacOS, or ChromeOS. See README for details.

Show HN: Chrome Reaper

Reaper is a Chrome (or Chromium) browser extension that terminates browser processes when they use too much CPU. Anything that the browser regards as a process is a potential target. This includes tabs, renderers, subframes, other extensions, and itself.<p>It works on stable channel Chrome for Linux but requires dev channel on Windows, MacOS, or ChromeOS. See README for details.

Show HN: Interactive ECS Systems/Component Explorer for Cities: Skylines 2

Hello Hacker News! Long time reader but first time poster here...<p>Recently I've been diving into doing mods for Cities: Skylines 2, which been very interesting as it's one of the first games that is using ECS and that I also have a deep interest into. I've mainly used ECS via Bevy before, but this time it's Unity, but many things still work the same way.<p>In order to help myself and other modders to navigate the ECS Systems and Components from the decompiled code, I created this interactive D3 graph.<p>You can click on nodes to "navigate" to that system/component, and once you're zoomed in a particular System/Component, you get a sidebar with more details. Ctrl+click also removes nodes in case you want to temporarily filter something.<p>This is, in short, how it works:<p>1. A C# program extracts information from decompiled C# code: <a href="https://github.com/Captain-Of-Coit/cs2-ecs-explorer/blob/master/src/cli.cs">https://github.com/Captain-Of-Coit/cs2-ecs-explorer/blob/mas...</a><p>2. The program outputs that info as JSON: <a href="https://github.com/Captain-Of-Coit/cs2-ecs-explorer/blob/master/data/Systems.json">https://github.com/Captain-Of-Coit/cs2-ecs-explorer/blob/mas...</a><p>3. Render with D3.js: <a href="https://github.com/Captain-Of-Coit/cs2-ecs-explorer/blob/master/index.js">https://github.com/Captain-Of-Coit/cs2-ecs-explorer/blob/mas...</a><p>Basically it helps people to navigate the Systems and Components references for the game.<p>If you're feeling brave, you can also browse the full graph which has something like ~700 nodes and ~1200 links: <a href="https://captain-of-coit.github.io/cs2-ecs-explorer/" rel="nofollow noreferrer">https://captain-of-coit.github.io/cs2-ecs-explorer/</a> (it'll take a while to first load)<p>A big problem was to figure out how to make the D3 not too messy when there are large graphs, and I don't think I've succeeded very well with this, but everything I tried (link distance based on how many connections, clustering based on namespaces and so on) made it even worse.<p>Happy to hear what you think and what I could do better.

Show HN: Interactive ECS Systems/Component Explorer for Cities: Skylines 2

Hello Hacker News! Long time reader but first time poster here...<p>Recently I've been diving into doing mods for Cities: Skylines 2, which been very interesting as it's one of the first games that is using ECS and that I also have a deep interest into. I've mainly used ECS via Bevy before, but this time it's Unity, but many things still work the same way.<p>In order to help myself and other modders to navigate the ECS Systems and Components from the decompiled code, I created this interactive D3 graph.<p>You can click on nodes to "navigate" to that system/component, and once you're zoomed in a particular System/Component, you get a sidebar with more details. Ctrl+click also removes nodes in case you want to temporarily filter something.<p>This is, in short, how it works:<p>1. A C# program extracts information from decompiled C# code: <a href="https://github.com/Captain-Of-Coit/cs2-ecs-explorer/blob/master/src/cli.cs">https://github.com/Captain-Of-Coit/cs2-ecs-explorer/blob/mas...</a><p>2. The program outputs that info as JSON: <a href="https://github.com/Captain-Of-Coit/cs2-ecs-explorer/blob/master/data/Systems.json">https://github.com/Captain-Of-Coit/cs2-ecs-explorer/blob/mas...</a><p>3. Render with D3.js: <a href="https://github.com/Captain-Of-Coit/cs2-ecs-explorer/blob/master/index.js">https://github.com/Captain-Of-Coit/cs2-ecs-explorer/blob/mas...</a><p>Basically it helps people to navigate the Systems and Components references for the game.<p>If you're feeling brave, you can also browse the full graph which has something like ~700 nodes and ~1200 links: <a href="https://captain-of-coit.github.io/cs2-ecs-explorer/" rel="nofollow noreferrer">https://captain-of-coit.github.io/cs2-ecs-explorer/</a> (it'll take a while to first load)<p>A big problem was to figure out how to make the D3 not too messy when there are large graphs, and I don't think I've succeeded very well with this, but everything I tried (link distance based on how many connections, clustering based on namespaces and so on) made it even worse.<p>Happy to hear what you think and what I could do better.

Show HN: Interactive ECS Systems/Component Explorer for Cities: Skylines 2

Hello Hacker News! Long time reader but first time poster here...<p>Recently I've been diving into doing mods for Cities: Skylines 2, which been very interesting as it's one of the first games that is using ECS and that I also have a deep interest into. I've mainly used ECS via Bevy before, but this time it's Unity, but many things still work the same way.<p>In order to help myself and other modders to navigate the ECS Systems and Components from the decompiled code, I created this interactive D3 graph.<p>You can click on nodes to "navigate" to that system/component, and once you're zoomed in a particular System/Component, you get a sidebar with more details. Ctrl+click also removes nodes in case you want to temporarily filter something.<p>This is, in short, how it works:<p>1. A C# program extracts information from decompiled C# code: <a href="https://github.com/Captain-Of-Coit/cs2-ecs-explorer/blob/master/src/cli.cs">https://github.com/Captain-Of-Coit/cs2-ecs-explorer/blob/mas...</a><p>2. The program outputs that info as JSON: <a href="https://github.com/Captain-Of-Coit/cs2-ecs-explorer/blob/master/data/Systems.json">https://github.com/Captain-Of-Coit/cs2-ecs-explorer/blob/mas...</a><p>3. Render with D3.js: <a href="https://github.com/Captain-Of-Coit/cs2-ecs-explorer/blob/master/index.js">https://github.com/Captain-Of-Coit/cs2-ecs-explorer/blob/mas...</a><p>Basically it helps people to navigate the Systems and Components references for the game.<p>If you're feeling brave, you can also browse the full graph which has something like ~700 nodes and ~1200 links: <a href="https://captain-of-coit.github.io/cs2-ecs-explorer/" rel="nofollow noreferrer">https://captain-of-coit.github.io/cs2-ecs-explorer/</a> (it'll take a while to first load)<p>A big problem was to figure out how to make the D3 not too messy when there are large graphs, and I don't think I've succeeded very well with this, but everything I tried (link distance based on how many connections, clustering based on namespaces and so on) made it even worse.<p>Happy to hear what you think and what I could do better.

Show HN: Wave – Modern Open-Source Terminal (macOS and Linux)

Hi HN, I’m Mike, the founder and creator of Wave, a cross-platform open-source terminal that supports inline rendering, modern UI, and persistent sessions. I love the command line; I’ve been using it for over 25 years, starting with a Linux box I made with spare parts in my college dorm room. But while other devtools have been modernized, the terminal has been stuck, with the same basic functionality for over 40-years.<p>What if your command line terminal could display more than just text? That’s crazy right (I can hear the screams of thousands of graybeard sysadmins). Not all the time, but maybe just when you want it to. Like displaying Markdown, Images, ChatGPT output, or CSVs (that you can copy from and paste directly into Excel). Or running a VSCode style editor inline in your terminal that has mouse support, copy/paste, indentation, and syntax highlighting support right out of the box for when you need to edit your remote .bashrc file.<p>That’s why I built Wave, to keep what’s best about the command line while adding the power of the open web. Wave has inline renderers for terminal content and remote files to help keep you in flow and reduce context switches. We have 5 initial plugins: remote file editor, markdown viewer, image viewer, CSV viewer, and a ChatGPT interface, with more coming soon. We’re proudly built on Electron (just like VSCode, Slack, and Discord) with all of the network code and heavy lifting done in a local Go backend. This enables us to deliver a consistent cross-platform experience and the ability to leverage high-quality web components for our UI and plugins.<p>Openness is a core part of our mission. Our code is open source (Apache 2.0), and our plugins are written in TypeScript/React. We don’t require an email, login, or payment to use our terminal (it is free as in speech and as in beer). We’re also proud to be shipping a Linux version of Wave alongside the MacOS version (with a Windows WSL port coming soon). Yes, we do plan on making money in the future, through opt-in team collaboration features. Basic rule of thumb is if it runs on your own computer with your own resources it will be free, if it hits our servers using our resources it will be paid.<p>But Wave isn’t just a simple renderer trick. We’ve been working on Wave for over a year and have over 1200 commits. We’re on a mission to improve terminal DevEx across the board and fix all sorts of terminal micro-frustrations. Wave manages your remote SSH connections, seamlessly restoring sessions, persisting sessions, and giving you a searchable contextual history of all the commands you’ve run, across all of your sessions and remote machines.<p>If you’re interested, please give it a try and give us a Star on Github to show your support for Open Source! Feedback, bugs, feature requests, and contributions are all welcome. Happy Hacking!<p><a href="https://www.waveterm.dev" rel="nofollow noreferrer">https://www.waveterm.dev</a> | <a href="https://github.com/wavetermdev/waveterm">https://github.com/wavetermdev/waveterm</a>

Show HN: Wave – Modern Open-Source Terminal (macOS and Linux)

Hi HN, I’m Mike, the founder and creator of Wave, a cross-platform open-source terminal that supports inline rendering, modern UI, and persistent sessions. I love the command line; I’ve been using it for over 25 years, starting with a Linux box I made with spare parts in my college dorm room. But while other devtools have been modernized, the terminal has been stuck, with the same basic functionality for over 40-years.<p>What if your command line terminal could display more than just text? That’s crazy right (I can hear the screams of thousands of graybeard sysadmins). Not all the time, but maybe just when you want it to. Like displaying Markdown, Images, ChatGPT output, or CSVs (that you can copy from and paste directly into Excel). Or running a VSCode style editor inline in your terminal that has mouse support, copy/paste, indentation, and syntax highlighting support right out of the box for when you need to edit your remote .bashrc file.<p>That’s why I built Wave, to keep what’s best about the command line while adding the power of the open web. Wave has inline renderers for terminal content and remote files to help keep you in flow and reduce context switches. We have 5 initial plugins: remote file editor, markdown viewer, image viewer, CSV viewer, and a ChatGPT interface, with more coming soon. We’re proudly built on Electron (just like VSCode, Slack, and Discord) with all of the network code and heavy lifting done in a local Go backend. This enables us to deliver a consistent cross-platform experience and the ability to leverage high-quality web components for our UI and plugins.<p>Openness is a core part of our mission. Our code is open source (Apache 2.0), and our plugins are written in TypeScript/React. We don’t require an email, login, or payment to use our terminal (it is free as in speech and as in beer). We’re also proud to be shipping a Linux version of Wave alongside the MacOS version (with a Windows WSL port coming soon). Yes, we do plan on making money in the future, through opt-in team collaboration features. Basic rule of thumb is if it runs on your own computer with your own resources it will be free, if it hits our servers using our resources it will be paid.<p>But Wave isn’t just a simple renderer trick. We’ve been working on Wave for over a year and have over 1200 commits. We’re on a mission to improve terminal DevEx across the board and fix all sorts of terminal micro-frustrations. Wave manages your remote SSH connections, seamlessly restoring sessions, persisting sessions, and giving you a searchable contextual history of all the commands you’ve run, across all of your sessions and remote machines.<p>If you’re interested, please give it a try and give us a Star on Github to show your support for Open Source! Feedback, bugs, feature requests, and contributions are all welcome. Happy Hacking!<p><a href="https://www.waveterm.dev" rel="nofollow noreferrer">https://www.waveterm.dev</a> | <a href="https://github.com/wavetermdev/waveterm">https://github.com/wavetermdev/waveterm</a>

Show HN: Paradict – Streamable multi-format serialization with schema

Hi HN ! I'm Alex, a tech enthusiast. I'm excited to show you Paradict (<a href="https://github.com/pyrustic/paradict">https://github.com/pyrustic/paradict</a>), my solution for streamable multi-format serialization.<p>Although JSON, YAML, and TOML are all human-readable, they serve different purposes. For example, TOML is specifically designed for configuration files while JSON is used as a data interchange format.<p>Sometimes an initiative to create a binary version of JSON arises and as far as I know, it ends with an unidirectional mapping of datatypes.<p>There is no silver bullet, yet one coherent solution built from scratch that addresses multi-format (binary and textual) serialization and configuration files would be a step forward.<p>Earlier this year, I accidentally designed a textual data format to represent complex data structures inside a document divided into sections. The project, namely Jesth (Just Extract Sections Then Hack'em), generated an interesting discussion on HN (<a href="https://news.ycombinator.com/item?id=35991018">https://news.ycombinator.com/item?id=35991018</a>).<p>Out of curiosity, I ran some benchmarks using Jesth, JSON and MessagePack, with and without Gzip compression against a large JSON file downloaded from the web. The benchmarking gave me insights that led to the decision to evolve Jesth's ideas into a new multi-format serialization solution.<p>I designed and built Paradict from scratch to serialize and deserialize a dictionary data structure. Although Paradict's root data structure is a dictionary, lists, sets, and dictionaries can be nested within it at arbitrary depth.<p>A Paradict dictionary can be populated with strings, binary data, integers, floats, complex numbers, booleans, dates, times, datetimes, comments, extension objects, and grids (matrices). There is also a schema-based validation mechanism that can contain programmatic checkers.<p>The binary serialization format is designed with compactness in mind such as Pi with its first two decimal places, the Golden ratio with its first two decimal places, and the date of the funeral of Pope Benedict XVI would each be encoded on two bytes (not counting their respective 1-byte tag which starts each Paradict binary datum).<p>This binary format has two levels of granularity for continuous data stream processing: a datum at the low level, which is in some cases a 2-tuple composed of a tag and its payload, and the message at the high level which is a dictionary data structure.<p>The textual serialization format has two modes: data and config modes. Config mode implicitly treats dictionary keys as strings, removing the need to surround them with quotes, and unlike the colon (:) between a key-value pair in data mode, it uses the equal sign (=) as separator.<p>This textual format has two levels of granularity for continuous data stream processing: a single line of text at the low level and the message at the high level which is a dictionary data structure.<p>Here is a valid Paradict configuration document that contains a "user" section:<p><pre><code> [user] # no comment id = 42 name = 'alex' birthday = 2042-12-25T16:20:59Z photo = (bin) 54 68 69 73 20 69 73 20 6E 6F 74 20 61 20 70 68 6F 74 6F 67 72 61 70 68 weight_matrix = (grid) 1 0 1 0 0 1 0 1 1 0 1 0 books = (dict) romance = (list) 'Happy Place' 'Romantic Comedy' sci_fi = (list) 'Dune' 'Neuromancer' epitaph = (text) According to the law of conservation of energy, no a bit of you is gone; you are just less orderly. --- </code></pre> Under the hood, Paradict uses Braq (<a href="https://github.com/pyrustic/braq">https://github.com/pyrustic/braq</a>), the most obvious way to section a document (as shown just above), and Ustrid (<a href="https://github.com/pyrustic/ustrid">https://github.com/pyrustic/ustrid</a>), to uniquely generate string identifiers.<p>Paradict is available on PyPI and you can learn more by reading its README, browsing the source code or playing with its tests.<p>Let me know what you think about all this !

Show HN: Paradict – Streamable multi-format serialization with schema

Hi HN ! I'm Alex, a tech enthusiast. I'm excited to show you Paradict (<a href="https://github.com/pyrustic/paradict">https://github.com/pyrustic/paradict</a>), my solution for streamable multi-format serialization.<p>Although JSON, YAML, and TOML are all human-readable, they serve different purposes. For example, TOML is specifically designed for configuration files while JSON is used as a data interchange format.<p>Sometimes an initiative to create a binary version of JSON arises and as far as I know, it ends with an unidirectional mapping of datatypes.<p>There is no silver bullet, yet one coherent solution built from scratch that addresses multi-format (binary and textual) serialization and configuration files would be a step forward.<p>Earlier this year, I accidentally designed a textual data format to represent complex data structures inside a document divided into sections. The project, namely Jesth (Just Extract Sections Then Hack'em), generated an interesting discussion on HN (<a href="https://news.ycombinator.com/item?id=35991018">https://news.ycombinator.com/item?id=35991018</a>).<p>Out of curiosity, I ran some benchmarks using Jesth, JSON and MessagePack, with and without Gzip compression against a large JSON file downloaded from the web. The benchmarking gave me insights that led to the decision to evolve Jesth's ideas into a new multi-format serialization solution.<p>I designed and built Paradict from scratch to serialize and deserialize a dictionary data structure. Although Paradict's root data structure is a dictionary, lists, sets, and dictionaries can be nested within it at arbitrary depth.<p>A Paradict dictionary can be populated with strings, binary data, integers, floats, complex numbers, booleans, dates, times, datetimes, comments, extension objects, and grids (matrices). There is also a schema-based validation mechanism that can contain programmatic checkers.<p>The binary serialization format is designed with compactness in mind such as Pi with its first two decimal places, the Golden ratio with its first two decimal places, and the date of the funeral of Pope Benedict XVI would each be encoded on two bytes (not counting their respective 1-byte tag which starts each Paradict binary datum).<p>This binary format has two levels of granularity for continuous data stream processing: a datum at the low level, which is in some cases a 2-tuple composed of a tag and its payload, and the message at the high level which is a dictionary data structure.<p>The textual serialization format has two modes: data and config modes. Config mode implicitly treats dictionary keys as strings, removing the need to surround them with quotes, and unlike the colon (:) between a key-value pair in data mode, it uses the equal sign (=) as separator.<p>This textual format has two levels of granularity for continuous data stream processing: a single line of text at the low level and the message at the high level which is a dictionary data structure.<p>Here is a valid Paradict configuration document that contains a "user" section:<p><pre><code> [user] # no comment id = 42 name = 'alex' birthday = 2042-12-25T16:20:59Z photo = (bin) 54 68 69 73 20 69 73 20 6E 6F 74 20 61 20 70 68 6F 74 6F 67 72 61 70 68 weight_matrix = (grid) 1 0 1 0 0 1 0 1 1 0 1 0 books = (dict) romance = (list) 'Happy Place' 'Romantic Comedy' sci_fi = (list) 'Dune' 'Neuromancer' epitaph = (text) According to the law of conservation of energy, no a bit of you is gone; you are just less orderly. --- </code></pre> Under the hood, Paradict uses Braq (<a href="https://github.com/pyrustic/braq">https://github.com/pyrustic/braq</a>), the most obvious way to section a document (as shown just above), and Ustrid (<a href="https://github.com/pyrustic/ustrid">https://github.com/pyrustic/ustrid</a>), to uniquely generate string identifiers.<p>Paradict is available on PyPI and you can learn more by reading its README, browsing the source code or playing with its tests.<p>Let me know what you think about all this !

Show HN: SPF Deconstructor in Rust

This is rust library for deconstructing SPF DNS records. Written ha a project to learn some of the basics of rust.

Show HN: SPF Deconstructor in Rust

This is rust library for deconstructing SPF DNS records. Written ha a project to learn some of the basics of rust.

Show HN: Turn Kafka into an MQTT Broker for IoT with Zilla

Show HN: Turn Kafka into an MQTT Broker for IoT with Zilla

< 1 2 3 ... 290 291 292 293 294 ... 841 842 843 >