The best Hacker News stories from Show from the past day
Latest posts:
Show HN: deptry 0.14.0 – detect unused Python dependencies up to 10 times faster
deptry 0.14.0 was just released, bringing significant speed improvements: It is now up to 10 times faster than the previous release!<p>For those unfamiliar with deptry; deptry is a command line tool to check for issues with dependencies in a Python project, such as unused or missing dependencies.<p>GitHub: <a href="https://github.com/fpgmaas/deptry">https://github.com/fpgmaas/deptry</a><p>For some benchmarks of the new release, see the release notes:<p><a href="https://github.com/fpgmaas/deptry/releases/tag/0.14.0">https://github.com/fpgmaas/deptry/releases/tag/0.14.0</a><p>The performance improvement was achieved by leveraging Rust to parse the AST and extract the import statements from .py files, rather than using Python's ast module.<p>The addition of Rust to the project also opens up doors for more optimizations in the future, so stay tuned!
Show HN: Richard – A CNN written in C++ and Vulkan (no ML or math libs)
This started out as a personal effort to learn more about machine learning. It's currently a CLI app where you give it a JSON file specifying your network architecture and hyperparameters and point it to your training data, then invoke it again in 'eval' mode with some data it's not seen before and it will try to classify each sample.<p>I don't see many other people using Vulkan for GPGPU, and there may be many good reasons for that, but I wanted to try something a bit different.<p>I've made every attempt to make the code very clean and readable and I've written up the math in documentation/math.pdf, so hopefully this is a useful learning resource for anyone interested in how neural nets work under the hood.<p>I'll be continuing to add new features over the coming months.
Show HN: Richard – A CNN written in C++ and Vulkan (no ML or math libs)
This started out as a personal effort to learn more about machine learning. It's currently a CLI app where you give it a JSON file specifying your network architecture and hyperparameters and point it to your training data, then invoke it again in 'eval' mode with some data it's not seen before and it will try to classify each sample.<p>I don't see many other people using Vulkan for GPGPU, and there may be many good reasons for that, but I wanted to try something a bit different.<p>I've made every attempt to make the code very clean and readable and I've written up the math in documentation/math.pdf, so hopefully this is a useful learning resource for anyone interested in how neural nets work under the hood.<p>I'll be continuing to add new features over the coming months.
Show HN: Richard – A CNN written in C++ and Vulkan (no ML or math libs)
This started out as a personal effort to learn more about machine learning. It's currently a CLI app where you give it a JSON file specifying your network architecture and hyperparameters and point it to your training data, then invoke it again in 'eval' mode with some data it's not seen before and it will try to classify each sample.<p>I don't see many other people using Vulkan for GPGPU, and there may be many good reasons for that, but I wanted to try something a bit different.<p>I've made every attempt to make the code very clean and readable and I've written up the math in documentation/math.pdf, so hopefully this is a useful learning resource for anyone interested in how neural nets work under the hood.<p>I'll be continuing to add new features over the coming months.
Show HN: Flash Attention in ~100 lines of CUDA
Show HN: Flash Attention in ~100 lines of CUDA
Show HN: Flash Attention in ~100 lines of CUDA
Show HN: Flash Attention in ~100 lines of CUDA
Show HN: ECSS – Simple rules for efficient CSS
A list of CSS authoring rules with examples and a Stylelint config accessible from the top of the page.<p>I've come to these through 20 years of experience and a willingness to make vanilla CSS a better alternative to frameworks.<p>I encourage you all to comment on the rules themselves and the Stylelint Config for ECSS. Here's the link for faster access (I still suggest at least zipping through the rules beforehand).<p><a href="https://www.npmjs.com/package/@efficientcss/stylelint-config-ecss" rel="nofollow">https://www.npmjs.com/package/@efficientcss/stylelint-config...</a>
Show HN: Frigade - React SDK for building quality onboarding & activation flows
Hey HN! Christian here, cofounder and CTO of Frigade (<a href="https://www.frigade.com">https://www.frigade.com</a>). Our tool helps product and engineering teams quickly build in-app experiences like getting started checklists, product tours, account upsells, and nps surveys. Basically all the little things that can help boost your product's activation and retention rates, but that you don't really want to spend the time building from scratch.<p>We built React UI components such as <Tour />, <Checklist />, and <Announcement /> and combined them with a web app that you can use to control user targeting, content management, sequencing, and more. These components can help power experiences like onboarding forms, surveys, house ads, and feature announcements.<p>About a year ago, we did our original Launch HN post (<a href="https://news.ycombinator.com/item?id=35246292">https://news.ycombinator.com/item?id=35246292</a>) and we got a bunch of great feedback from HN. We also got grilled for having our product and documentation behind a waitlist – whoops! We fixed that, though. We’ve also built a ton of new functionality since then, and we’re dubbing it Frigade 2.0. This includes a free tier so you can check out the product without putting a credit card down, and we recently finished a complete rewrite of our SDK using Radix UI and a theming system built with Emotion.<p>There are other tools in this space but they tend to be "no-code", which sounds good until you realize that they actually inject bloated scripts that slow your product down, and make it hard and annoying for you to customize. We believe that good old code, not "no-code", is the better fit for this space. It lets you unit test, it works with version control, it uses your design system, it rolls out with your CI pipeline, and so on.<p>We solve this problem by: 1) allowing engineers to fully set up the guardrails for what non-technical teammates can do through a one time setup. 2) empowering non-technical team mates to build native experiences that drive better results while building confidence that they won’t mess up your production environment. Ironically, many companies that use our product have churned away from no-code solutions (such as Pendo) as they were too time consuming to manage, caused too many bugs in production, and simply weren’t effective enough.<p>Of course, the upfront cost of setting up Frigade is a bit higher than dropping in a <script /> tag on your website, but once it's set up, non-technical team mates (such as marketers) have full control to create experiences within the guardrails that engineering has created.<p>What do you think about belief and our approach? We’re especially curious to hear from those folks who have experience using these no-code tools or have had to build these kinds of experiences from scratch.
Show HN: Frigade - React SDK for building quality onboarding & activation flows
Hey HN! Christian here, cofounder and CTO of Frigade (<a href="https://www.frigade.com">https://www.frigade.com</a>). Our tool helps product and engineering teams quickly build in-app experiences like getting started checklists, product tours, account upsells, and nps surveys. Basically all the little things that can help boost your product's activation and retention rates, but that you don't really want to spend the time building from scratch.<p>We built React UI components such as <Tour />, <Checklist />, and <Announcement /> and combined them with a web app that you can use to control user targeting, content management, sequencing, and more. These components can help power experiences like onboarding forms, surveys, house ads, and feature announcements.<p>About a year ago, we did our original Launch HN post (<a href="https://news.ycombinator.com/item?id=35246292">https://news.ycombinator.com/item?id=35246292</a>) and we got a bunch of great feedback from HN. We also got grilled for having our product and documentation behind a waitlist – whoops! We fixed that, though. We’ve also built a ton of new functionality since then, and we’re dubbing it Frigade 2.0. This includes a free tier so you can check out the product without putting a credit card down, and we recently finished a complete rewrite of our SDK using Radix UI and a theming system built with Emotion.<p>There are other tools in this space but they tend to be "no-code", which sounds good until you realize that they actually inject bloated scripts that slow your product down, and make it hard and annoying for you to customize. We believe that good old code, not "no-code", is the better fit for this space. It lets you unit test, it works with version control, it uses your design system, it rolls out with your CI pipeline, and so on.<p>We solve this problem by: 1) allowing engineers to fully set up the guardrails for what non-technical teammates can do through a one time setup. 2) empowering non-technical team mates to build native experiences that drive better results while building confidence that they won’t mess up your production environment. Ironically, many companies that use our product have churned away from no-code solutions (such as Pendo) as they were too time consuming to manage, caused too many bugs in production, and simply weren’t effective enough.<p>Of course, the upfront cost of setting up Frigade is a bit higher than dropping in a <script /> tag on your website, but once it's set up, non-technical team mates (such as marketers) have full control to create experiences within the guardrails that engineering has created.<p>What do you think about belief and our approach? We’re especially curious to hear from those folks who have experience using these no-code tools or have had to build these kinds of experiences from scratch.
Show HN: Open-source, browser-local data exploration using DuckDB-WASM and PRQL
Hey HN! We’ve built Pretzel, an open-source data exploration and visualization tool that runs fully in the browser and can handle large files (200 MB CSV on my 8gb MacBook air is snappy). It’s also reactive - so if, for example, you change a filter, all the data transform blocks after it re-evaluate automatically. You can try it here: <a href="https://pretzelai.github.io/" rel="nofollow">https://pretzelai.github.io/</a> (static hosted webpage) or see a demo video here: <a href="https://www.youtube.com/watch?v=73wNEun_L7w" rel="nofollow">https://www.youtube.com/watch?v=73wNEun_L7w</a><p>You can play with the demo CSV that’s pre-loaded (GitHub data of text-editor adjacent projects) or upload your own CSV/XLSX file. The tool runs fully in-browser—you can disconnect from the internet once the website loads—so feel free to use sensitive data if you like.<p>Here’s how it works: You upload a CSV file and then, explore your data as a series of successive data transforms and plots. For example, you might: (1) Remove some columns; (2) Apply some filters (remove nulls, remove outliers, restrict time range etc); (3) Do a pivot (i.e, a group-by but fancier); (4) Plot a chart; (5) Download the chart and the the transformed data. See screenshot: <a href="https://imgur.com/a/qO4yURI" rel="nofollow">https://imgur.com/a/qO4yURI</a><p>In the UI, each transform step appears as a “Block”. You can always see the result of the full transform in a table on the right. The transform blocks are editable - for instance in the example above, you can go to step 2, change some filters and the reactivity will take care of re-computing all the cells that follow, including the charts.<p>We wanted Pretzel to run locally in the browser <i>and</i> be extremely performant on large files. So, we parse CSVs with the fastest CSV parser (uDSV: <a href="https://github.com/leeoniya/uDSV">https://github.com/leeoniya/uDSV</a>) and use DuckDB-Wasm (<a href="https://github.com/duckdb/duckdb-wasm">https://github.com/duckdb/duckdb-wasm</a>) to do all the heavy lifting of processing the data. We also wanted to allow for chained data transformations where each new block operates on the result of the previous block. For this, we’re using PRQL (<a href="https://prql-lang.org/" rel="nofollow">https://prql-lang.org/</a>) since it maps 1-1 with chained data transform blocks - each block maps to a chunk of PRQL which when combined, describes the full data transform chain. (PRQL doesn’t support DuckDB’s Pivot statement though so we had to make some CTE based hacks).<p>There’s also an AI block: This is the only (optional) feature that requires an internet connection but we’re working on adding local model support via Ollama. For now, you can use your own OpenAI API key or use an AI server we provide (GPT4 proxy; it’s loaded with a few credits), specify a transform in plain english and get back the SQL for the transform which you can edit.<p>Our roadmap includes allowing API calls to create new columns; support for an SQL block with nice autocomplete features, and a Python block (using Pyodide to run Python in the browser) on the results of the data transforms, much like a jupyter notebook.<p>There’s two of us and we’ve only spent about a week coding this and fixing major bugs so there are still some bugs to iron out. We’d <i>love</i> for you to try this and to get your feedback!
Show HN: Open-source, browser-local data exploration using DuckDB-WASM and PRQL
Hey HN! We’ve built Pretzel, an open-source data exploration and visualization tool that runs fully in the browser and can handle large files (200 MB CSV on my 8gb MacBook air is snappy). It’s also reactive - so if, for example, you change a filter, all the data transform blocks after it re-evaluate automatically. You can try it here: <a href="https://pretzelai.github.io/" rel="nofollow">https://pretzelai.github.io/</a> (static hosted webpage) or see a demo video here: <a href="https://www.youtube.com/watch?v=73wNEun_L7w" rel="nofollow">https://www.youtube.com/watch?v=73wNEun_L7w</a><p>You can play with the demo CSV that’s pre-loaded (GitHub data of text-editor adjacent projects) or upload your own CSV/XLSX file. The tool runs fully in-browser—you can disconnect from the internet once the website loads—so feel free to use sensitive data if you like.<p>Here’s how it works: You upload a CSV file and then, explore your data as a series of successive data transforms and plots. For example, you might: (1) Remove some columns; (2) Apply some filters (remove nulls, remove outliers, restrict time range etc); (3) Do a pivot (i.e, a group-by but fancier); (4) Plot a chart; (5) Download the chart and the the transformed data. See screenshot: <a href="https://imgur.com/a/qO4yURI" rel="nofollow">https://imgur.com/a/qO4yURI</a><p>In the UI, each transform step appears as a “Block”. You can always see the result of the full transform in a table on the right. The transform blocks are editable - for instance in the example above, you can go to step 2, change some filters and the reactivity will take care of re-computing all the cells that follow, including the charts.<p>We wanted Pretzel to run locally in the browser <i>and</i> be extremely performant on large files. So, we parse CSVs with the fastest CSV parser (uDSV: <a href="https://github.com/leeoniya/uDSV">https://github.com/leeoniya/uDSV</a>) and use DuckDB-Wasm (<a href="https://github.com/duckdb/duckdb-wasm">https://github.com/duckdb/duckdb-wasm</a>) to do all the heavy lifting of processing the data. We also wanted to allow for chained data transformations where each new block operates on the result of the previous block. For this, we’re using PRQL (<a href="https://prql-lang.org/" rel="nofollow">https://prql-lang.org/</a>) since it maps 1-1 with chained data transform blocks - each block maps to a chunk of PRQL which when combined, describes the full data transform chain. (PRQL doesn’t support DuckDB’s Pivot statement though so we had to make some CTE based hacks).<p>There’s also an AI block: This is the only (optional) feature that requires an internet connection but we’re working on adding local model support via Ollama. For now, you can use your own OpenAI API key or use an AI server we provide (GPT4 proxy; it’s loaded with a few credits), specify a transform in plain english and get back the SQL for the transform which you can edit.<p>Our roadmap includes allowing API calls to create new columns; support for an SQL block with nice autocomplete features, and a Python block (using Pyodide to run Python in the browser) on the results of the data transforms, much like a jupyter notebook.<p>There’s two of us and we’ve only spent about a week coding this and fixing major bugs so there are still some bugs to iron out. We’d <i>love</i> for you to try this and to get your feedback!
Show HN: Open-source, browser-local data exploration using DuckDB-WASM and PRQL
Hey HN! We’ve built Pretzel, an open-source data exploration and visualization tool that runs fully in the browser and can handle large files (200 MB CSV on my 8gb MacBook air is snappy). It’s also reactive - so if, for example, you change a filter, all the data transform blocks after it re-evaluate automatically. You can try it here: <a href="https://pretzelai.github.io/" rel="nofollow">https://pretzelai.github.io/</a> (static hosted webpage) or see a demo video here: <a href="https://www.youtube.com/watch?v=73wNEun_L7w" rel="nofollow">https://www.youtube.com/watch?v=73wNEun_L7w</a><p>You can play with the demo CSV that’s pre-loaded (GitHub data of text-editor adjacent projects) or upload your own CSV/XLSX file. The tool runs fully in-browser—you can disconnect from the internet once the website loads—so feel free to use sensitive data if you like.<p>Here’s how it works: You upload a CSV file and then, explore your data as a series of successive data transforms and plots. For example, you might: (1) Remove some columns; (2) Apply some filters (remove nulls, remove outliers, restrict time range etc); (3) Do a pivot (i.e, a group-by but fancier); (4) Plot a chart; (5) Download the chart and the the transformed data. See screenshot: <a href="https://imgur.com/a/qO4yURI" rel="nofollow">https://imgur.com/a/qO4yURI</a><p>In the UI, each transform step appears as a “Block”. You can always see the result of the full transform in a table on the right. The transform blocks are editable - for instance in the example above, you can go to step 2, change some filters and the reactivity will take care of re-computing all the cells that follow, including the charts.<p>We wanted Pretzel to run locally in the browser <i>and</i> be extremely performant on large files. So, we parse CSVs with the fastest CSV parser (uDSV: <a href="https://github.com/leeoniya/uDSV">https://github.com/leeoniya/uDSV</a>) and use DuckDB-Wasm (<a href="https://github.com/duckdb/duckdb-wasm">https://github.com/duckdb/duckdb-wasm</a>) to do all the heavy lifting of processing the data. We also wanted to allow for chained data transformations where each new block operates on the result of the previous block. For this, we’re using PRQL (<a href="https://prql-lang.org/" rel="nofollow">https://prql-lang.org/</a>) since it maps 1-1 with chained data transform blocks - each block maps to a chunk of PRQL which when combined, describes the full data transform chain. (PRQL doesn’t support DuckDB’s Pivot statement though so we had to make some CTE based hacks).<p>There’s also an AI block: This is the only (optional) feature that requires an internet connection but we’re working on adding local model support via Ollama. For now, you can use your own OpenAI API key or use an AI server we provide (GPT4 proxy; it’s loaded with a few credits), specify a transform in plain english and get back the SQL for the transform which you can edit.<p>Our roadmap includes allowing API calls to create new columns; support for an SQL block with nice autocomplete features, and a Python block (using Pyodide to run Python in the browser) on the results of the data transforms, much like a jupyter notebook.<p>There’s two of us and we’ve only spent about a week coding this and fixing major bugs so there are still some bugs to iron out. We’d <i>love</i> for you to try this and to get your feedback!
Show HN: Open-source, browser-local data exploration using DuckDB-WASM and PRQL
Hey HN! We’ve built Pretzel, an open-source data exploration and visualization tool that runs fully in the browser and can handle large files (200 MB CSV on my 8gb MacBook air is snappy). It’s also reactive - so if, for example, you change a filter, all the data transform blocks after it re-evaluate automatically. You can try it here: <a href="https://pretzelai.github.io/" rel="nofollow">https://pretzelai.github.io/</a> (static hosted webpage) or see a demo video here: <a href="https://www.youtube.com/watch?v=73wNEun_L7w" rel="nofollow">https://www.youtube.com/watch?v=73wNEun_L7w</a><p>You can play with the demo CSV that’s pre-loaded (GitHub data of text-editor adjacent projects) or upload your own CSV/XLSX file. The tool runs fully in-browser—you can disconnect from the internet once the website loads—so feel free to use sensitive data if you like.<p>Here’s how it works: You upload a CSV file and then, explore your data as a series of successive data transforms and plots. For example, you might: (1) Remove some columns; (2) Apply some filters (remove nulls, remove outliers, restrict time range etc); (3) Do a pivot (i.e, a group-by but fancier); (4) Plot a chart; (5) Download the chart and the the transformed data. See screenshot: <a href="https://imgur.com/a/qO4yURI" rel="nofollow">https://imgur.com/a/qO4yURI</a><p>In the UI, each transform step appears as a “Block”. You can always see the result of the full transform in a table on the right. The transform blocks are editable - for instance in the example above, you can go to step 2, change some filters and the reactivity will take care of re-computing all the cells that follow, including the charts.<p>We wanted Pretzel to run locally in the browser <i>and</i> be extremely performant on large files. So, we parse CSVs with the fastest CSV parser (uDSV: <a href="https://github.com/leeoniya/uDSV">https://github.com/leeoniya/uDSV</a>) and use DuckDB-Wasm (<a href="https://github.com/duckdb/duckdb-wasm">https://github.com/duckdb/duckdb-wasm</a>) to do all the heavy lifting of processing the data. We also wanted to allow for chained data transformations where each new block operates on the result of the previous block. For this, we’re using PRQL (<a href="https://prql-lang.org/" rel="nofollow">https://prql-lang.org/</a>) since it maps 1-1 with chained data transform blocks - each block maps to a chunk of PRQL which when combined, describes the full data transform chain. (PRQL doesn’t support DuckDB’s Pivot statement though so we had to make some CTE based hacks).<p>There’s also an AI block: This is the only (optional) feature that requires an internet connection but we’re working on adding local model support via Ollama. For now, you can use your own OpenAI API key or use an AI server we provide (GPT4 proxy; it’s loaded with a few credits), specify a transform in plain english and get back the SQL for the transform which you can edit.<p>Our roadmap includes allowing API calls to create new columns; support for an SQL block with nice autocomplete features, and a Python block (using Pyodide to run Python in the browser) on the results of the data transforms, much like a jupyter notebook.<p>There’s two of us and we’ve only spent about a week coding this and fixing major bugs so there are still some bugs to iron out. We’d <i>love</i> for you to try this and to get your feedback!
Show HN: Open-source, browser-local data exploration using DuckDB-WASM and PRQL
Hey HN! We’ve built Pretzel, an open-source data exploration and visualization tool that runs fully in the browser and can handle large files (200 MB CSV on my 8gb MacBook air is snappy). It’s also reactive - so if, for example, you change a filter, all the data transform blocks after it re-evaluate automatically. You can try it here: <a href="https://pretzelai.github.io/" rel="nofollow">https://pretzelai.github.io/</a> (static hosted webpage) or see a demo video here: <a href="https://www.youtube.com/watch?v=73wNEun_L7w" rel="nofollow">https://www.youtube.com/watch?v=73wNEun_L7w</a><p>You can play with the demo CSV that’s pre-loaded (GitHub data of text-editor adjacent projects) or upload your own CSV/XLSX file. The tool runs fully in-browser—you can disconnect from the internet once the website loads—so feel free to use sensitive data if you like.<p>Here’s how it works: You upload a CSV file and then, explore your data as a series of successive data transforms and plots. For example, you might: (1) Remove some columns; (2) Apply some filters (remove nulls, remove outliers, restrict time range etc); (3) Do a pivot (i.e, a group-by but fancier); (4) Plot a chart; (5) Download the chart and the the transformed data. See screenshot: <a href="https://imgur.com/a/qO4yURI" rel="nofollow">https://imgur.com/a/qO4yURI</a><p>In the UI, each transform step appears as a “Block”. You can always see the result of the full transform in a table on the right. The transform blocks are editable - for instance in the example above, you can go to step 2, change some filters and the reactivity will take care of re-computing all the cells that follow, including the charts.<p>We wanted Pretzel to run locally in the browser <i>and</i> be extremely performant on large files. So, we parse CSVs with the fastest CSV parser (uDSV: <a href="https://github.com/leeoniya/uDSV">https://github.com/leeoniya/uDSV</a>) and use DuckDB-Wasm (<a href="https://github.com/duckdb/duckdb-wasm">https://github.com/duckdb/duckdb-wasm</a>) to do all the heavy lifting of processing the data. We also wanted to allow for chained data transformations where each new block operates on the result of the previous block. For this, we’re using PRQL (<a href="https://prql-lang.org/" rel="nofollow">https://prql-lang.org/</a>) since it maps 1-1 with chained data transform blocks - each block maps to a chunk of PRQL which when combined, describes the full data transform chain. (PRQL doesn’t support DuckDB’s Pivot statement though so we had to make some CTE based hacks).<p>There’s also an AI block: This is the only (optional) feature that requires an internet connection but we’re working on adding local model support via Ollama. For now, you can use your own OpenAI API key or use an AI server we provide (GPT4 proxy; it’s loaded with a few credits), specify a transform in plain english and get back the SQL for the transform which you can edit.<p>Our roadmap includes allowing API calls to create new columns; support for an SQL block with nice autocomplete features, and a Python block (using Pyodide to run Python in the browser) on the results of the data transforms, much like a jupyter notebook.<p>There’s two of us and we’ve only spent about a week coding this and fixing major bugs so there are still some bugs to iron out. We’d <i>love</i> for you to try this and to get your feedback!
Show HN: Matrix Multiplication with Half the Multiplications
Show HN: Matrix Multiplication with Half the Multiplications
Show HN: Matrix Multiplication with Half the Multiplications
Show HN: Matrix Multiplication with Half the Multiplications