The best Hacker News stories from Show from the past day
Latest posts:
Show HN: Million 3 – Optimizing compiler for React
Show HN: Million 3 – Optimizing compiler for React
Show HN: An open source performance monitoring tool
Hey HN. We’re Jay and Vadim from Highlight.io (<a href="https://highlight.io">https://highlight.io</a>). We’re building an open source [1] monitoring platform for web applications.<p>Today we’re excited to be sharing a performance tool we’ve been working on, which helps you inspect the latency of code execution from the client to the server.
As engineers at past startups, we often had to debug slow queries, poor load times, inconsistent errors, etc... While tools like Jaegar [2] helped us inspect server-side performance, we had no way to tie user events to the traces we were inspecting. In other words, although we had an idea of what API route was slow, there wasn’t much visibility into the actual bottleneck.<p>This is where our performance product comes in: we’re rethinking a tracing/performance tool that focuses on bridging the gap between the client and server.<p>What’s unique about our approach is that we lean heavily into creating traces from the frontend. For example, if you’re using our Next.js SDK, we automatically connect browser HTTP requests with server-side code execution, all from the perspective of a user. We find this much more powerful because you can understand what part of your frontend codebase causes a given trace to occur. There’s an example here [3].<p>From an instrumentation perspective, we’ve built our SDKs on-top of OTel, so you can create custom spans to expand highlight-created traces in server routes that will transparently roll up into the flame graph you see in our UI. You can also send us raw OTel traces and manually set up the client-server connection if you want. [4] Here’s an example of what a trace looks like with a database integration using our Golang GORM SDK, triggered by a frontend GraphQL query [5] [6].<p>In terms of how it's built, we continue to rely heavily on ClickHouse as our time-series storage engine. Given that traces require that we also query based on an ID for specific groups of spans (more akin to an OLTP db), we’ve leveraged the power of CH materialized views to make these operations efficient (described here [7]).<p>To try it out, you can spin up the project with our self hosted docs [8] or use our cloud offering at app.highlight.io. The entire stack runs in docker via a compose file, including an OpenTelemetry collector for data ingestion. You’ll need to point your SDK to export data to it by setting the relevant OTLP endpoint configuration (ie. environment variable OTEL_EXPORTER_OTLP_LOGS_ENDPOINT [9]).<p>Overall, we’d really appreciate feedback on what we’re building here. We’re also all ears if anyone has opinions on what they’d like to see in a product like this!<p>[1] <a href="https://github.com/highlight/highlight/blob/main/LICENSE">https://github.com/highlight/highlight/blob/main/LICENSE</a><p>[2] <a href="https://www.jaegertracing.io" rel="nofollow">https://www.jaegertracing.io</a><p>[3] <a href="https://app.highlight.io/1383/sessions/COu90Th4Qc3PVYTXbx9Xee7xbQqN?ts=5.243&network-resource-id=25">https://app.highlight.io/1383/sessions/COu90Th4Qc3PVYTXbx9Xe...</a><p>[4] <a href="https://www.highlight.io/docs/getting-started/native-opentelemetry/overview">https://www.highlight.io/docs/getting-started/native-opentel...</a><p>[5] <a href="https://static.highlight.io/assets/docs/gorm.png">https://static.highlight.io/assets/docs/gorm.png</a><p>[6] <a href="https://github.com/highlight/highlight/blob/1fc9487a676409f12fb84709603dcdf0b4440952/backend/main.go#L218-L266">https://github.com/highlight/highlight/blob/1fc9487a676409f1...</a><p>[7] <a href="https://highlight.io/blog/clickhouse-materialized-views">https://highlight.io/blog/clickhouse-materialized-views</a><p>[8] <a href="https://www.highlight.io/docs/getting-started/self-host/self-hosted-hobby-guide">https://www.highlight.io/docs/getting-started/self-host/self...</a><p>[9] <a href="https://opentelemetry.io/docs/concepts/sdk-configuration/otlp-exporter-configuration/#otel_exporter_otlp_endpoint" rel="nofollow">https://opentelemetry.io/docs/concepts/sdk-configuration/otl...</a>
Show HN: An open source performance monitoring tool
Hey HN. We’re Jay and Vadim from Highlight.io (<a href="https://highlight.io">https://highlight.io</a>). We’re building an open source [1] monitoring platform for web applications.<p>Today we’re excited to be sharing a performance tool we’ve been working on, which helps you inspect the latency of code execution from the client to the server.
As engineers at past startups, we often had to debug slow queries, poor load times, inconsistent errors, etc... While tools like Jaegar [2] helped us inspect server-side performance, we had no way to tie user events to the traces we were inspecting. In other words, although we had an idea of what API route was slow, there wasn’t much visibility into the actual bottleneck.<p>This is where our performance product comes in: we’re rethinking a tracing/performance tool that focuses on bridging the gap between the client and server.<p>What’s unique about our approach is that we lean heavily into creating traces from the frontend. For example, if you’re using our Next.js SDK, we automatically connect browser HTTP requests with server-side code execution, all from the perspective of a user. We find this much more powerful because you can understand what part of your frontend codebase causes a given trace to occur. There’s an example here [3].<p>From an instrumentation perspective, we’ve built our SDKs on-top of OTel, so you can create custom spans to expand highlight-created traces in server routes that will transparently roll up into the flame graph you see in our UI. You can also send us raw OTel traces and manually set up the client-server connection if you want. [4] Here’s an example of what a trace looks like with a database integration using our Golang GORM SDK, triggered by a frontend GraphQL query [5] [6].<p>In terms of how it's built, we continue to rely heavily on ClickHouse as our time-series storage engine. Given that traces require that we also query based on an ID for specific groups of spans (more akin to an OLTP db), we’ve leveraged the power of CH materialized views to make these operations efficient (described here [7]).<p>To try it out, you can spin up the project with our self hosted docs [8] or use our cloud offering at app.highlight.io. The entire stack runs in docker via a compose file, including an OpenTelemetry collector for data ingestion. You’ll need to point your SDK to export data to it by setting the relevant OTLP endpoint configuration (ie. environment variable OTEL_EXPORTER_OTLP_LOGS_ENDPOINT [9]).<p>Overall, we’d really appreciate feedback on what we’re building here. We’re also all ears if anyone has opinions on what they’d like to see in a product like this!<p>[1] <a href="https://github.com/highlight/highlight/blob/main/LICENSE">https://github.com/highlight/highlight/blob/main/LICENSE</a><p>[2] <a href="https://www.jaegertracing.io" rel="nofollow">https://www.jaegertracing.io</a><p>[3] <a href="https://app.highlight.io/1383/sessions/COu90Th4Qc3PVYTXbx9Xee7xbQqN?ts=5.243&network-resource-id=25">https://app.highlight.io/1383/sessions/COu90Th4Qc3PVYTXbx9Xe...</a><p>[4] <a href="https://www.highlight.io/docs/getting-started/native-opentelemetry/overview">https://www.highlight.io/docs/getting-started/native-opentel...</a><p>[5] <a href="https://static.highlight.io/assets/docs/gorm.png">https://static.highlight.io/assets/docs/gorm.png</a><p>[6] <a href="https://github.com/highlight/highlight/blob/1fc9487a676409f12fb84709603dcdf0b4440952/backend/main.go#L218-L266">https://github.com/highlight/highlight/blob/1fc9487a676409f1...</a><p>[7] <a href="https://highlight.io/blog/clickhouse-materialized-views">https://highlight.io/blog/clickhouse-materialized-views</a><p>[8] <a href="https://www.highlight.io/docs/getting-started/self-host/self-hosted-hobby-guide">https://www.highlight.io/docs/getting-started/self-host/self...</a><p>[9] <a href="https://opentelemetry.io/docs/concepts/sdk-configuration/otlp-exporter-configuration/#otel_exporter_otlp_endpoint" rel="nofollow">https://opentelemetry.io/docs/concepts/sdk-configuration/otl...</a>
Show HN: An open source performance monitoring tool
Hey HN. We’re Jay and Vadim from Highlight.io (<a href="https://highlight.io">https://highlight.io</a>). We’re building an open source [1] monitoring platform for web applications.<p>Today we’re excited to be sharing a performance tool we’ve been working on, which helps you inspect the latency of code execution from the client to the server.
As engineers at past startups, we often had to debug slow queries, poor load times, inconsistent errors, etc... While tools like Jaegar [2] helped us inspect server-side performance, we had no way to tie user events to the traces we were inspecting. In other words, although we had an idea of what API route was slow, there wasn’t much visibility into the actual bottleneck.<p>This is where our performance product comes in: we’re rethinking a tracing/performance tool that focuses on bridging the gap between the client and server.<p>What’s unique about our approach is that we lean heavily into creating traces from the frontend. For example, if you’re using our Next.js SDK, we automatically connect browser HTTP requests with server-side code execution, all from the perspective of a user. We find this much more powerful because you can understand what part of your frontend codebase causes a given trace to occur. There’s an example here [3].<p>From an instrumentation perspective, we’ve built our SDKs on-top of OTel, so you can create custom spans to expand highlight-created traces in server routes that will transparently roll up into the flame graph you see in our UI. You can also send us raw OTel traces and manually set up the client-server connection if you want. [4] Here’s an example of what a trace looks like with a database integration using our Golang GORM SDK, triggered by a frontend GraphQL query [5] [6].<p>In terms of how it's built, we continue to rely heavily on ClickHouse as our time-series storage engine. Given that traces require that we also query based on an ID for specific groups of spans (more akin to an OLTP db), we’ve leveraged the power of CH materialized views to make these operations efficient (described here [7]).<p>To try it out, you can spin up the project with our self hosted docs [8] or use our cloud offering at app.highlight.io. The entire stack runs in docker via a compose file, including an OpenTelemetry collector for data ingestion. You’ll need to point your SDK to export data to it by setting the relevant OTLP endpoint configuration (ie. environment variable OTEL_EXPORTER_OTLP_LOGS_ENDPOINT [9]).<p>Overall, we’d really appreciate feedback on what we’re building here. We’re also all ears if anyone has opinions on what they’d like to see in a product like this!<p>[1] <a href="https://github.com/highlight/highlight/blob/main/LICENSE">https://github.com/highlight/highlight/blob/main/LICENSE</a><p>[2] <a href="https://www.jaegertracing.io" rel="nofollow">https://www.jaegertracing.io</a><p>[3] <a href="https://app.highlight.io/1383/sessions/COu90Th4Qc3PVYTXbx9Xee7xbQqN?ts=5.243&network-resource-id=25">https://app.highlight.io/1383/sessions/COu90Th4Qc3PVYTXbx9Xe...</a><p>[4] <a href="https://www.highlight.io/docs/getting-started/native-opentelemetry/overview">https://www.highlight.io/docs/getting-started/native-opentel...</a><p>[5] <a href="https://static.highlight.io/assets/docs/gorm.png">https://static.highlight.io/assets/docs/gorm.png</a><p>[6] <a href="https://github.com/highlight/highlight/blob/1fc9487a676409f12fb84709603dcdf0b4440952/backend/main.go#L218-L266">https://github.com/highlight/highlight/blob/1fc9487a676409f1...</a><p>[7] <a href="https://highlight.io/blog/clickhouse-materialized-views">https://highlight.io/blog/clickhouse-materialized-views</a><p>[8] <a href="https://www.highlight.io/docs/getting-started/self-host/self-hosted-hobby-guide">https://www.highlight.io/docs/getting-started/self-host/self...</a><p>[9] <a href="https://opentelemetry.io/docs/concepts/sdk-configuration/otlp-exporter-configuration/#otel_exporter_otlp_endpoint" rel="nofollow">https://opentelemetry.io/docs/concepts/sdk-configuration/otl...</a>
Show HN: The classic Minesweeper on an irregular grid
I'm experimenting game mechanics that are usually seen on a typical grid, but transposed on an irregular one.<p>This is a first game based on Minesweeper.<p>The changes an irregular grid brings are that cells don't all have 8 neighbors. Some can have less, some can have more. So when you try and deduce if a tile has a mine, you have to pay closer attention at the number clues and which tiles neighbors it.<p>My intention is to make a very classic game a bit more challenging & fun.<p>I've also released a first version of Checkers/Draughts, and plan to test similar variants for Chess, Othello and Go.
Show HN: The classic Minesweeper on an irregular grid
I'm experimenting game mechanics that are usually seen on a typical grid, but transposed on an irregular one.<p>This is a first game based on Minesweeper.<p>The changes an irregular grid brings are that cells don't all have 8 neighbors. Some can have less, some can have more. So when you try and deduce if a tile has a mine, you have to pay closer attention at the number clues and which tiles neighbors it.<p>My intention is to make a very classic game a bit more challenging & fun.<p>I've also released a first version of Checkers/Draughts, and plan to test similar variants for Chess, Othello and Go.
Show HN: The classic Minesweeper on an irregular grid
I'm experimenting game mechanics that are usually seen on a typical grid, but transposed on an irregular one.<p>This is a first game based on Minesweeper.<p>The changes an irregular grid brings are that cells don't all have 8 neighbors. Some can have less, some can have more. So when you try and deduce if a tile has a mine, you have to pay closer attention at the number clues and which tiles neighbors it.<p>My intention is to make a very classic game a bit more challenging & fun.<p>I've also released a first version of Checkers/Draughts, and plan to test similar variants for Chess, Othello and Go.
Show HN: The classic Minesweeper on an irregular grid
I'm experimenting game mechanics that are usually seen on a typical grid, but transposed on an irregular one.<p>This is a first game based on Minesweeper.<p>The changes an irregular grid brings are that cells don't all have 8 neighbors. Some can have less, some can have more. So when you try and deduce if a tile has a mine, you have to pay closer attention at the number clues and which tiles neighbors it.<p>My intention is to make a very classic game a bit more challenging & fun.<p>I've also released a first version of Checkers/Draughts, and plan to test similar variants for Chess, Othello and Go.
Show HN: ML Blocks – Deploy multimodal AI workflows without code
Hey everyone,<p>ML Blocks is a node-based workflow builder to create multi-modal AI workflows without writing any code.<p>You connect blocks that call various visual models like GPT4v, Segment Anything, Dino etc. along with basic image processing blocks like resize, invert color, blur, crop, and several others.<p>The idea is to make it easier to deploy multi-step image processing workflows, without needing to spin up endless custom OpenCV cloud functions to glue together AI models. Usually, even if you're using cloud inference servers like Replicate, you still need to write your own image processing code to pre and post-process images in your pipeline. When you're trying to move fast, that's just unnecessary overhead.<p>With ML Blocks, you can build a workflow and deploy the whole thing as a single API. AFAIK, ML Blocks is the only end-to-end workflow builder built specifically for image processing.<p>If you're curious, our models run on Replicate, HuggingFace & Modal Labs cloud GPUs and we use React Flow for the node UX.
Show HN: ML Blocks – Deploy multimodal AI workflows without code
Hey everyone,<p>ML Blocks is a node-based workflow builder to create multi-modal AI workflows without writing any code.<p>You connect blocks that call various visual models like GPT4v, Segment Anything, Dino etc. along with basic image processing blocks like resize, invert color, blur, crop, and several others.<p>The idea is to make it easier to deploy multi-step image processing workflows, without needing to spin up endless custom OpenCV cloud functions to glue together AI models. Usually, even if you're using cloud inference servers like Replicate, you still need to write your own image processing code to pre and post-process images in your pipeline. When you're trying to move fast, that's just unnecessary overhead.<p>With ML Blocks, you can build a workflow and deploy the whole thing as a single API. AFAIK, ML Blocks is the only end-to-end workflow builder built specifically for image processing.<p>If you're curious, our models run on Replicate, HuggingFace & Modal Labs cloud GPUs and we use React Flow for the node UX.
Show HN: ML Blocks – Deploy multimodal AI workflows without code
Hey everyone,<p>ML Blocks is a node-based workflow builder to create multi-modal AI workflows without writing any code.<p>You connect blocks that call various visual models like GPT4v, Segment Anything, Dino etc. along with basic image processing blocks like resize, invert color, blur, crop, and several others.<p>The idea is to make it easier to deploy multi-step image processing workflows, without needing to spin up endless custom OpenCV cloud functions to glue together AI models. Usually, even if you're using cloud inference servers like Replicate, you still need to write your own image processing code to pre and post-process images in your pipeline. When you're trying to move fast, that's just unnecessary overhead.<p>With ML Blocks, you can build a workflow and deploy the whole thing as a single API. AFAIK, ML Blocks is the only end-to-end workflow builder built specifically for image processing.<p>If you're curious, our models run on Replicate, HuggingFace & Modal Labs cloud GPUs and we use React Flow for the node UX.
Show HN: Lockbox: forward proxy for making third party API calls
Show HN: Lockbox: forward proxy for making third party API calls
Show HN: Stanchion – Column-oriented tables in SQLite
Hello HN!<p>I built stanchion to scratch my own itch. I have personal applications running on SQLite where I want to store log and metric data (basically forever) but don't want to add complexity by bringing in a new database or whole separate server. Some of these applications are running on a Raspberry Pi, where storage and compute are limited, but I still want data warehouse like capabilities.<p>I envision stanchion being used in similar scenarios: on phones and resource-limited devices in applications that are already using SQLite. I know that there are alternatives like DuckDB (which is very cool), but I want stanchion to be "good enough" that it is useful without having to add whole new database technology.<p>If you think stanchion may be a good fit for your use case and you are interested in contributing, please test it and provide feedback by opening issues for any bugs, difficulties, or missing features you would need! Ideas are also welcome in this thread or as a github issue. Of course stars are always appreciated as well. The CONTRIBUTING doc in the repository has more details.<p>- Dan
Show HN: Stanchion – Column-oriented tables in SQLite
Hello HN!<p>I built stanchion to scratch my own itch. I have personal applications running on SQLite where I want to store log and metric data (basically forever) but don't want to add complexity by bringing in a new database or whole separate server. Some of these applications are running on a Raspberry Pi, where storage and compute are limited, but I still want data warehouse like capabilities.<p>I envision stanchion being used in similar scenarios: on phones and resource-limited devices in applications that are already using SQLite. I know that there are alternatives like DuckDB (which is very cool), but I want stanchion to be "good enough" that it is useful without having to add whole new database technology.<p>If you think stanchion may be a good fit for your use case and you are interested in contributing, please test it and provide feedback by opening issues for any bugs, difficulties, or missing features you would need! Ideas are also welcome in this thread or as a github issue. Of course stars are always appreciated as well. The CONTRIBUTING doc in the repository has more details.<p>- Dan
Show HN: Stanchion – Column-oriented tables in SQLite
Hello HN!<p>I built stanchion to scratch my own itch. I have personal applications running on SQLite where I want to store log and metric data (basically forever) but don't want to add complexity by bringing in a new database or whole separate server. Some of these applications are running on a Raspberry Pi, where storage and compute are limited, but I still want data warehouse like capabilities.<p>I envision stanchion being used in similar scenarios: on phones and resource-limited devices in applications that are already using SQLite. I know that there are alternatives like DuckDB (which is very cool), but I want stanchion to be "good enough" that it is useful without having to add whole new database technology.<p>If you think stanchion may be a good fit for your use case and you are interested in contributing, please test it and provide feedback by opening issues for any bugs, difficulties, or missing features you would need! Ideas are also welcome in this thread or as a github issue. Of course stars are always appreciated as well. The CONTRIBUTING doc in the repository has more details.<p>- Dan
Show HN: Stanchion – Column-oriented tables in SQLite
Hello HN!<p>I built stanchion to scratch my own itch. I have personal applications running on SQLite where I want to store log and metric data (basically forever) but don't want to add complexity by bringing in a new database or whole separate server. Some of these applications are running on a Raspberry Pi, where storage and compute are limited, but I still want data warehouse like capabilities.<p>I envision stanchion being used in similar scenarios: on phones and resource-limited devices in applications that are already using SQLite. I know that there are alternatives like DuckDB (which is very cool), but I want stanchion to be "good enough" that it is useful without having to add whole new database technology.<p>If you think stanchion may be a good fit for your use case and you are interested in contributing, please test it and provide feedback by opening issues for any bugs, difficulties, or missing features you would need! Ideas are also welcome in this thread or as a github issue. Of course stars are always appreciated as well. The CONTRIBUTING doc in the repository has more details.<p>- Dan
Show HN: filippo.io/mlkem768 – Post-Quantum Cryptography for the Go Ecosystem
Show HN: filippo.io/mlkem768 – Post-Quantum Cryptography for the Go Ecosystem