The best Hacker News stories from Show from the past day
Latest posts:
Show HN: Python micro event loop library (~250 LOC)
Show HN: Wireless video streaming on POV bike display
It took me a few years of fits and starts but I've finally got my DIY persistence of vision bike light to display video!<p>I designed and built the PCB for it and wrote the code for the wifi streaming of video frames with a bit of help from Claude. This was actually one thing I was dreading as I was hitting a wall being burned out on this project. With a little bit of Claude's help in getting the ESP32 wifi stack working It's finally finished!<p>Some tech specs:
Using an ESP32
42 LED's per strip, 4 strips total spaced 90 deg apart.
Angular resolution of the image is 1 deg so it updates all 168 LED's , 360 times per rotation.<p>The LED's are SK9822 individually addressable LED's (also known as DotStar from Adafruit).<p>Uses a magnet and hall effect sensor to keep track of rotation speed.<p>The server can be run from a phone and using termux with a python server to serve locally to the esp.<p>I need to periodically spin it up every time it slows down.<p>My video camera shutter speed needs to be slow to show the correct effect otherwise it is either incomplete or it shows too many "frames" in a video frame.<p>Gonna get around to making a blog post at some point to talk more about it in detail!
Show HN: Globstar – Open-source static analysis toolkit
Hey HN! We’re Jai and Sanket, co-founders of DeepSource (YC W20). We're open-sourcing Globstar (<a href="https://github.com/DeepSourceCorp/globstar">https://github.com/DeepSourceCorp/globstar</a>), a static analysis toolkit that lets you easily write and run custom code quality and security checkers in YAML [1] or Go [2].<p>After 5+ years of building AST-based static analyzers that process millions of lines of code daily at DeepSource, we kept hearing a common request from customers: "How do we write custom checks specific to our codebase?" AppSec and DevOps teams have a lot of learned anti-patterns and security rules they want to enforce across their orgs, and being able to do that without being a static analysis expert, came up as an important want.<p>We initially built an internal framework using tree-sitter [3] for our proprietary infrastructure-as-code analyzers, which enabled us to rapidly create new checkers. We realized that making the framework open-source could solve this problem for everyone.<p>Our key insight was that writing checkers isn't the hard part anymore. Modern AI assistants like ChatGPT and Claude are excellent at generating tree-sitter queries with very high accuracy. We realized that the tree-sitters' gnarly s-expression syntax isn’t a problem anymore (since the AI will be doing all the generation anyway), and we can instead focus on building a fast, flexible, and reliable checker runtime around it.<p>So instead of creating yet another DSL, we use tree-sitter's native query syntax. Yes, the expressions look more complex than simplified DSLs, but they give you direct access to your code's actual AST structure – which means your rules work exactly as you'd expect them to. When you need to debug a rule, you're working with the actual structure of your code, not an abstraction that might hide important details.<p>We've also designed Globstar to have a gradual learning curve: The YAML interface works well for simple checkers, and the Go Interface can handle complex scenarios when you need features like cross-file analysis, scope resolution, data flow analysis, and context awareness. The Go API gives you direct access to tree-sitter bindings, so you can write arbitrarily complex checkers on day one.<p>Key features:<p>- Written in Go with native tree-sitter bindings, distributed as a single binary<p>- MIT-licensed<p>- Write all your checkers in a “.globstar” folder in your repo, in YAML or Go, and just run “globstar check” without any build steps<p>- Multi-language support through tree-sitter (20+ languages today)<p>We have a long way to go and a very exciting roadmap for Globstar, and we’d love to hear your feedback!<p>[1] <a href="https://globstar.dev/guides/writing-yaml-checker" rel="nofollow">https://globstar.dev/guides/writing-yaml-checker</a><p>[2] <a href="https://globstar.dev/guides/writing-go-checker" rel="nofollow">https://globstar.dev/guides/writing-go-checker</a><p>[3] <a href="https://tree-sitter.github.io/tree-sitter/" rel="nofollow">https://tree-sitter.github.io/tree-sitter/</a>
Show HN: Globstar – Open-source static analysis toolkit
Hey HN! We’re Jai and Sanket, co-founders of DeepSource (YC W20). We're open-sourcing Globstar (<a href="https://github.com/DeepSourceCorp/globstar">https://github.com/DeepSourceCorp/globstar</a>), a static analysis toolkit that lets you easily write and run custom code quality and security checkers in YAML [1] or Go [2].<p>After 5+ years of building AST-based static analyzers that process millions of lines of code daily at DeepSource, we kept hearing a common request from customers: "How do we write custom checks specific to our codebase?" AppSec and DevOps teams have a lot of learned anti-patterns and security rules they want to enforce across their orgs, and being able to do that without being a static analysis expert, came up as an important want.<p>We initially built an internal framework using tree-sitter [3] for our proprietary infrastructure-as-code analyzers, which enabled us to rapidly create new checkers. We realized that making the framework open-source could solve this problem for everyone.<p>Our key insight was that writing checkers isn't the hard part anymore. Modern AI assistants like ChatGPT and Claude are excellent at generating tree-sitter queries with very high accuracy. We realized that the tree-sitters' gnarly s-expression syntax isn’t a problem anymore (since the AI will be doing all the generation anyway), and we can instead focus on building a fast, flexible, and reliable checker runtime around it.<p>So instead of creating yet another DSL, we use tree-sitter's native query syntax. Yes, the expressions look more complex than simplified DSLs, but they give you direct access to your code's actual AST structure – which means your rules work exactly as you'd expect them to. When you need to debug a rule, you're working with the actual structure of your code, not an abstraction that might hide important details.<p>We've also designed Globstar to have a gradual learning curve: The YAML interface works well for simple checkers, and the Go Interface can handle complex scenarios when you need features like cross-file analysis, scope resolution, data flow analysis, and context awareness. The Go API gives you direct access to tree-sitter bindings, so you can write arbitrarily complex checkers on day one.<p>Key features:<p>- Written in Go with native tree-sitter bindings, distributed as a single binary<p>- MIT-licensed<p>- Write all your checkers in a “.globstar” folder in your repo, in YAML or Go, and just run “globstar check” without any build steps<p>- Multi-language support through tree-sitter (20+ languages today)<p>We have a long way to go and a very exciting roadmap for Globstar, and we’d love to hear your feedback!<p>[1] <a href="https://globstar.dev/guides/writing-yaml-checker" rel="nofollow">https://globstar.dev/guides/writing-yaml-checker</a><p>[2] <a href="https://globstar.dev/guides/writing-go-checker" rel="nofollow">https://globstar.dev/guides/writing-go-checker</a><p>[3] <a href="https://tree-sitter.github.io/tree-sitter/" rel="nofollow">https://tree-sitter.github.io/tree-sitter/</a>
Show HN: Globstar – Open-source static analysis toolkit
Hey HN! We’re Jai and Sanket, co-founders of DeepSource (YC W20). We're open-sourcing Globstar (<a href="https://github.com/DeepSourceCorp/globstar">https://github.com/DeepSourceCorp/globstar</a>), a static analysis toolkit that lets you easily write and run custom code quality and security checkers in YAML [1] or Go [2].<p>After 5+ years of building AST-based static analyzers that process millions of lines of code daily at DeepSource, we kept hearing a common request from customers: "How do we write custom checks specific to our codebase?" AppSec and DevOps teams have a lot of learned anti-patterns and security rules they want to enforce across their orgs, and being able to do that without being a static analysis expert, came up as an important want.<p>We initially built an internal framework using tree-sitter [3] for our proprietary infrastructure-as-code analyzers, which enabled us to rapidly create new checkers. We realized that making the framework open-source could solve this problem for everyone.<p>Our key insight was that writing checkers isn't the hard part anymore. Modern AI assistants like ChatGPT and Claude are excellent at generating tree-sitter queries with very high accuracy. We realized that the tree-sitters' gnarly s-expression syntax isn’t a problem anymore (since the AI will be doing all the generation anyway), and we can instead focus on building a fast, flexible, and reliable checker runtime around it.<p>So instead of creating yet another DSL, we use tree-sitter's native query syntax. Yes, the expressions look more complex than simplified DSLs, but they give you direct access to your code's actual AST structure – which means your rules work exactly as you'd expect them to. When you need to debug a rule, you're working with the actual structure of your code, not an abstraction that might hide important details.<p>We've also designed Globstar to have a gradual learning curve: The YAML interface works well for simple checkers, and the Go Interface can handle complex scenarios when you need features like cross-file analysis, scope resolution, data flow analysis, and context awareness. The Go API gives you direct access to tree-sitter bindings, so you can write arbitrarily complex checkers on day one.<p>Key features:<p>- Written in Go with native tree-sitter bindings, distributed as a single binary<p>- MIT-licensed<p>- Write all your checkers in a “.globstar” folder in your repo, in YAML or Go, and just run “globstar check” without any build steps<p>- Multi-language support through tree-sitter (20+ languages today)<p>We have a long way to go and a very exciting roadmap for Globstar, and we’d love to hear your feedback!<p>[1] <a href="https://globstar.dev/guides/writing-yaml-checker" rel="nofollow">https://globstar.dev/guides/writing-yaml-checker</a><p>[2] <a href="https://globstar.dev/guides/writing-go-checker" rel="nofollow">https://globstar.dev/guides/writing-go-checker</a><p>[3] <a href="https://tree-sitter.github.io/tree-sitter/" rel="nofollow">https://tree-sitter.github.io/tree-sitter/</a>
Show HN: Probly – Spreadsheets, Python, and AI in the browser
Probly was built to reduce context-switching between spreadsheet applications, Python notebooks, and AI tools. It’s a simple spreadsheet that lets you talk to your data. Need pandas analysis? Just ask in plain English, and the code runs right in your browser. Want a chart? Just ask.<p>While there are tools available in this space like TheBricks, Probly is a minimalist, open-source solution built with React, TypeScript, Next.js, Handsontable, Hyperformula, Apache Echarts, OpenAI, and Pyodide. It's still a work in progress, but it's already useful for my daily tasks.
Show HN: Probly – Spreadsheets, Python, and AI in the browser
Probly was built to reduce context-switching between spreadsheet applications, Python notebooks, and AI tools. It’s a simple spreadsheet that lets you talk to your data. Need pandas analysis? Just ask in plain English, and the code runs right in your browser. Want a chart? Just ask.<p>While there are tools available in this space like TheBricks, Probly is a minimalist, open-source solution built with React, TypeScript, Next.js, Handsontable, Hyperformula, Apache Echarts, OpenAI, and Pyodide. It's still a work in progress, but it's already useful for my daily tasks.
Show HN: Probly – Spreadsheets, Python, and AI in the browser
Probly was built to reduce context-switching between spreadsheet applications, Python notebooks, and AI tools. It’s a simple spreadsheet that lets you talk to your data. Need pandas analysis? Just ask in plain English, and the code runs right in your browser. Want a chart? Just ask.<p>While there are tools available in this space like TheBricks, Probly is a minimalist, open-source solution built with React, TypeScript, Next.js, Handsontable, Hyperformula, Apache Echarts, OpenAI, and Pyodide. It's still a work in progress, but it's already useful for my daily tasks.
Show HN: Yaak – An open source, Git-friendly desktop API client
Hi HN! I'm Greg and I've been working on Yaak for just over a year. I usually describe it as a Postman alternative since most developers are familiar with that, but it's targeted more toward users that just want an API client (no mocking, testing, spec design, etc).<p>Having also created Insomnia for a similar purpose, I never thought I'd build another API client again. But, after selling Insomnia in 2019 and watching it expand into the broader feature set of Postman, I was left wanting a simpler tool again. Yaak was my answer to that.<p>It's hard to describe how it's better than the 100 other API clients, since its main benefit is design, but there are a few stand-out features:<p>- Optionally sync data to a local directory as plain-text, for use with Git/etc
- Build and install plugins for authentication, template functions, or generic actions
- Support for REST, GraphQL, WebSocket, server sent events, and gRPC<p>Yaak requires a license for commercial use but this only applies when using the prebuilt binaries. If building from source, a license is not required.<p>It's available for Mac, Windows, and Linux and the source is at <a href="https://github.com/mountain-loop/yaak">https://github.com/mountain-loop/yaak</a><p>I'd love to hear you think!
Show HN: Yaak – An open source, Git-friendly desktop API client
Hi HN! I'm Greg and I've been working on Yaak for just over a year. I usually describe it as a Postman alternative since most developers are familiar with that, but it's targeted more toward users that just want an API client (no mocking, testing, spec design, etc).<p>Having also created Insomnia for a similar purpose, I never thought I'd build another API client again. But, after selling Insomnia in 2019 and watching it expand into the broader feature set of Postman, I was left wanting a simpler tool again. Yaak was my answer to that.<p>It's hard to describe how it's better than the 100 other API clients, since its main benefit is design, but there are a few stand-out features:<p>- Optionally sync data to a local directory as plain-text, for use with Git/etc
- Build and install plugins for authentication, template functions, or generic actions
- Support for REST, GraphQL, WebSocket, server sent events, and gRPC<p>Yaak requires a license for commercial use but this only applies when using the prebuilt binaries. If building from source, a license is not required.<p>It's available for Mac, Windows, and Linux and the source is at <a href="https://github.com/mountain-loop/yaak">https://github.com/mountain-loop/yaak</a><p>I'd love to hear you think!
Show HN: Superglue – open source API connector that writes its own code
Hi HN, we’re Stefan and Adina, and we’re building superglue (<a href="https://superglue.cloud">https://superglue.cloud</a>). superglue allows you to connect to any API/data source and get the data you want in the format you need. It’s an open-source proxy server which sits between you and your target APIs. Thus, you can easily deploy it into your own infra.<p>If you’re spending a lot of time writing code connecting to weird APIs, fumbling with custom fields in foreign language ERPs, mapping JSONs, extracting data from compressed CSVs sitting on FTP servers, and making sure your integrations don’t break when something unexpected comes through, superglue might be for you.<p>Here's how it works: You define your desired data schema and provide basic instructions about an API endpoint (like "get all issues from Jira"). superglue then does the following:<p>- Automatically generates the API configuration by analyzing API docs.<p>- Handles pagination, authentication, and error retries.<p>- Transforms response data into the exact schema you want using JSONata expressions.<p>- Validates that all data coming through follows that schema, and fixes transformations when they break.<p>We built this after noticing how much of our team's time was spent building and maintaining data integration code. Our approach is a bit different to other solutions out there because we (1) use LLMs to generate mapping code, so you can basically build your own universal API with the exact fields that you need, and (2) validate that what you get is what you’re supposed to get, with the ability to “self-heal” if anything goes wrong.<p>You can run superglue yourself (<a href="https://github.com/superglue-ai/superglue">https://github.com/superglue-ai/superglue</a> - license is GPL), or you can use our hosted version (<a href="https://app.superglue.cloud">https://app.superglue.cloud</a>) and our TS SDK (npm i @superglue/client).<p>Here’s a quick demo: <a href="https://www.youtube.com/watch?v=A1gv6P-fas4" rel="nofollow">https://www.youtube.com/watch?v=A1gv6P-fas4</a>
You can also try out Jira and Shopify demos on our website (<a href="https://superglue.cloud">https://superglue.cloud</a>)<p>Excited to share superglue with everyone here—it's early so you'll probably find bugs, but we'd love to get your thoughts and see if others find this approach useful!
Show HN: Superglue – open source API connector that writes its own code
Hi HN, we’re Stefan and Adina, and we’re building superglue (<a href="https://superglue.cloud">https://superglue.cloud</a>). superglue allows you to connect to any API/data source and get the data you want in the format you need. It’s an open-source proxy server which sits between you and your target APIs. Thus, you can easily deploy it into your own infra.<p>If you’re spending a lot of time writing code connecting to weird APIs, fumbling with custom fields in foreign language ERPs, mapping JSONs, extracting data from compressed CSVs sitting on FTP servers, and making sure your integrations don’t break when something unexpected comes through, superglue might be for you.<p>Here's how it works: You define your desired data schema and provide basic instructions about an API endpoint (like "get all issues from Jira"). superglue then does the following:<p>- Automatically generates the API configuration by analyzing API docs.<p>- Handles pagination, authentication, and error retries.<p>- Transforms response data into the exact schema you want using JSONata expressions.<p>- Validates that all data coming through follows that schema, and fixes transformations when they break.<p>We built this after noticing how much of our team's time was spent building and maintaining data integration code. Our approach is a bit different to other solutions out there because we (1) use LLMs to generate mapping code, so you can basically build your own universal API with the exact fields that you need, and (2) validate that what you get is what you’re supposed to get, with the ability to “self-heal” if anything goes wrong.<p>You can run superglue yourself (<a href="https://github.com/superglue-ai/superglue">https://github.com/superglue-ai/superglue</a> - license is GPL), or you can use our hosted version (<a href="https://app.superglue.cloud">https://app.superglue.cloud</a>) and our TS SDK (npm i @superglue/client).<p>Here’s a quick demo: <a href="https://www.youtube.com/watch?v=A1gv6P-fas4" rel="nofollow">https://www.youtube.com/watch?v=A1gv6P-fas4</a>
You can also try out Jira and Shopify demos on our website (<a href="https://superglue.cloud">https://superglue.cloud</a>)<p>Excited to share superglue with everyone here—it's early so you'll probably find bugs, but we'd love to get your thoughts and see if others find this approach useful!
Show HN: Superglue – open source API connector that writes its own code
Hi HN, we’re Stefan and Adina, and we’re building superglue (<a href="https://superglue.cloud">https://superglue.cloud</a>). superglue allows you to connect to any API/data source and get the data you want in the format you need. It’s an open-source proxy server which sits between you and your target APIs. Thus, you can easily deploy it into your own infra.<p>If you’re spending a lot of time writing code connecting to weird APIs, fumbling with custom fields in foreign language ERPs, mapping JSONs, extracting data from compressed CSVs sitting on FTP servers, and making sure your integrations don’t break when something unexpected comes through, superglue might be for you.<p>Here's how it works: You define your desired data schema and provide basic instructions about an API endpoint (like "get all issues from Jira"). superglue then does the following:<p>- Automatically generates the API configuration by analyzing API docs.<p>- Handles pagination, authentication, and error retries.<p>- Transforms response data into the exact schema you want using JSONata expressions.<p>- Validates that all data coming through follows that schema, and fixes transformations when they break.<p>We built this after noticing how much of our team's time was spent building and maintaining data integration code. Our approach is a bit different to other solutions out there because we (1) use LLMs to generate mapping code, so you can basically build your own universal API with the exact fields that you need, and (2) validate that what you get is what you’re supposed to get, with the ability to “self-heal” if anything goes wrong.<p>You can run superglue yourself (<a href="https://github.com/superglue-ai/superglue">https://github.com/superglue-ai/superglue</a> - license is GPL), or you can use our hosted version (<a href="https://app.superglue.cloud">https://app.superglue.cloud</a>) and our TS SDK (npm i @superglue/client).<p>Here’s a quick demo: <a href="https://www.youtube.com/watch?v=A1gv6P-fas4" rel="nofollow">https://www.youtube.com/watch?v=A1gv6P-fas4</a>
You can also try out Jira and Shopify demos on our website (<a href="https://superglue.cloud">https://superglue.cloud</a>)<p>Excited to share superglue with everyone here—it's early so you'll probably find bugs, but we'd love to get your thoughts and see if others find this approach useful!
Show HN: Libredesk – Open-source customer support desk. Single binary app
Libredesk is a 100% free and open-source customer support desk, the backend is written in Go and the frontend is in Vue JS with ShadnCN for UI components.<p>Unlike many "open-core" alternatives that lock essential features behind enterprise plans, Libredesk is fully open-source and plans to always stay this way.<p>It's in alpha (v0.1.0) right now, but there’s a working demo available. I built this because I wanted a truly open and self-hosted alternative to platforms like Chatwoot, Intercom, and Zendesk.<p>Would love feedback, suggestions, and thoughts from the community.<p>GitHub: <a href="https://github.com/abhinavxd/libredesk">https://github.com/abhinavxd/libredesk</a><p>Demo: <a href="https://demo.libredesk.io/" rel="nofollow">https://demo.libredesk.io/</a>
Show HN: Libredesk – Open-source customer support desk. Single binary app
Libredesk is a 100% free and open-source customer support desk, the backend is written in Go and the frontend is in Vue JS with ShadnCN for UI components.<p>Unlike many "open-core" alternatives that lock essential features behind enterprise plans, Libredesk is fully open-source and plans to always stay this way.<p>It's in alpha (v0.1.0) right now, but there’s a working demo available. I built this because I wanted a truly open and self-hosted alternative to platforms like Chatwoot, Intercom, and Zendesk.<p>Would love feedback, suggestions, and thoughts from the community.<p>GitHub: <a href="https://github.com/abhinavxd/libredesk">https://github.com/abhinavxd/libredesk</a><p>Demo: <a href="https://demo.libredesk.io/" rel="nofollow">https://demo.libredesk.io/</a>
Show HN: LLM plays Pokémon (open sourced)
I built a bot that plays Pokémon FireRed. It can explore, battle, and respond to game events. Farthest I made it was Viridian Forest.<p>I paused development a couple months ago, but given the launch of ClaudePlaysPokemon, decided to open source!
Show HN: LLM plays Pokémon (open sourced)
I built a bot that plays Pokémon FireRed. It can explore, battle, and respond to game events. Farthest I made it was Viridian Forest.<p>I paused development a couple months ago, but given the launch of ClaudePlaysPokemon, decided to open source!
Show HN: Telescope – an open-source web-based log viewer for logs in ClickHouse
Hey everyone! I’m working on Telescope - an open-source web-based log viewer designed to make working with logs stored in ClickHouse easier and more intuitive.<p>I wasn’t happy with existing log viewers - most of them force a specific log format, are tied to ingestion pipelines, or are just a small part of a larger platform. Others didn’t display logs the way I wanted.<p>So I decided to build my own lightweight, flexible log viewer - one that actually fits my needs.<p>Check it out:<p><pre><code> Video demo: https://www.youtube.com/watch?v=5IItMOXwugY
GitHub: https://github.com/iamtelescope/telescope
Live demo: https://telescope.humanuser.net
Discord: https://discord.gg/rXpjDnEc</code></pre>
Show HN: Telescope – an open-source web-based log viewer for logs in ClickHouse
Hey everyone! I’m working on Telescope - an open-source web-based log viewer designed to make working with logs stored in ClickHouse easier and more intuitive.<p>I wasn’t happy with existing log viewers - most of them force a specific log format, are tied to ingestion pipelines, or are just a small part of a larger platform. Others didn’t display logs the way I wanted.<p>So I decided to build my own lightweight, flexible log viewer - one that actually fits my needs.<p>Check it out:<p><pre><code> Video demo: https://www.youtube.com/watch?v=5IItMOXwugY
GitHub: https://github.com/iamtelescope/telescope
Live demo: https://telescope.humanuser.net
Discord: https://discord.gg/rXpjDnEc</code></pre>
Show HN: I created a language called AntiLang – breaking all the conventions
AntiLang is an interpreted programming language written in Go.
The basic idea of this is to keep all the logical parts of a language same, but reverse the structure of it.<p>The idea for this project came when I was having a long midnight conversation with my friend and thought of writing such a weird language. The initial draft was far worse than the current implementation; we thought of reversing the brackets and the language would be read from bottom to top. I'm happy that I dropped that idea<p>Technical details:
As the interpreter is written in Golang, I compiled it to WASM, and the whole interpreter is running in the browser.
For the editor, I'm using Monaco, the same library that powers the text editor in VSCode.
I learnt how to build it while reading "Write an Interpreter in Go" by Thorsten Ball.<p>The project is opensourced - <a href="https://github.com/SirusCodes/AntiLang">https://github.com/SirusCodes/AntiLang</a> - do give it a star if you like the project.