The best Hacker News stories from Show from the past day
Latest posts:
Show HN: Find jobs at top AI startups
Hello HN, I am one of the creators of WorkInAI, and I'm excited to share our project with the community and gather valuable feedback.<p>WorkInAI is a job aggregation platform for positions at leading AI startups. We have compiled over 350 job listings from more than 20 top AI startups, including companies like OpenAI, Anthropic, Cohere, and more. We created this platform in response to a friend's frustration with trying to find suitable AI startup roles in London. He used to check various company career pages frequently to see if any new opportunities had arisen -- so we built this to aggregate jobs in a single place.<p>We're launching this MVP early to gather feedback, whether it's feature requests or suggestions for adding new startups to our list. We value your thoughts and input on our product and idea.<p>Thanks!
Show HN: Dweets.com – Microblogging for Devs
Built this to microblog everything I am learning as a dev. It's an MVP, lots to improve on! Would love some feedback. (:<p>Also am looking for a job (preferably remote since I'm in SG), 1.5 years in as a Jr Dev at a local startup, self-taught by building stuff. I'll be on Twitter if you're interested! @raymondmoay
Show HN: Vanna AI – Open-sourced text-to-SQL in Python
Hey there HN!<p>We've just open-sourced Vanna – a Python package that allows you to transform questions into SQL. We've leveraged LLMs to enable you to "ask" databases what you need, bypassing the need to "write" complex SQL.<p>Quick Overview:<p>- "Train" using DDL statements, documentation, or known correct SQL statements.<p>- "Ask" questions in natural language and receive SQL, tables, and charts in return.<p>- Open Source Flexibility: Swap storage mechanisms, customize LLMs, and choose your databases.<p>- Local or Hosted: Operate everything locally or use our hosted version for free (including complimentary LLM calls).<p>- Use it wherever Python is applicable. We provide code examples for integration in Jupyter, Streamlit, Slack, and more.<p>We would greatly appreciate your feedback, insights on issues, and contributions:<p><a href="https://github.com/vanna-ai/vanna">https://github.com/vanna-ai/vanna</a>
Show HN: Vanna AI – Open-sourced text-to-SQL in Python
Hey there HN!<p>We've just open-sourced Vanna – a Python package that allows you to transform questions into SQL. We've leveraged LLMs to enable you to "ask" databases what you need, bypassing the need to "write" complex SQL.<p>Quick Overview:<p>- "Train" using DDL statements, documentation, or known correct SQL statements.<p>- "Ask" questions in natural language and receive SQL, tables, and charts in return.<p>- Open Source Flexibility: Swap storage mechanisms, customize LLMs, and choose your databases.<p>- Local or Hosted: Operate everything locally or use our hosted version for free (including complimentary LLM calls).<p>- Use it wherever Python is applicable. We provide code examples for integration in Jupyter, Streamlit, Slack, and more.<p>We would greatly appreciate your feedback, insights on issues, and contributions:<p><a href="https://github.com/vanna-ai/vanna">https://github.com/vanna-ai/vanna</a>
Show HN: Rivet – open-source AI Agent dev env with real-world applications
We just launched Rivet, the open-source visual AI programming environment! We built Rivet, because we were building complex AI Agent applications at Ironclad. It unlocked our abilities here, and we're excited to make available to the entire community.<p>Backstory: A few months ago, inspired by things like LangChain and LlamaIndex, we started building an AI agent that could work with legal contracts. Unfortunately, we couldn't just use retrieval augmented generation (RAG), because a lot of contracts are basically identical (many chunks with near-identical embeddings), except for a few key details. So, we turned to things like ReAct and AutoGPT for inspiration.<p>At first, things went great. We were adding agent capabilities, doing chain-of-thought prompting.<p>But then we hit a wall.<p>The agent became too complex. We had debugger breakpoints on almost every line of code, but we still had no idea where the agent was breaking. Every change we made destabilized something else. After two weeks of fumbling, I decided to end the project.<p>But one of my teammates, Andy, didn't give up.<p>The following week, he showed me v0 of Rivet. He'd used it to refactor and improve our existing agent. I was skeptical... it just seemed like a visual programming environment, and I was not a fan. But I gave it a shot, and suddenly found myself able to add new skills to the agent, debug brittle areas with ease, and update prompts with confidence.<p>Rivet is a game-changer. And more than that, it makes building with LLMs super fun.<p>What exactly makes it different?<p>First, the debugger is incredible. You have to experience it to believe it. You can update a graph, and then immediately run it, and see where it succeeded or failed. Even better: you can attach Rivet as a remote debugger, and watch your agent graphs execute in your app.<p>Second, visual programming is actually a game-changer for prompting LLMs. I don't know why exactly, but it's way easier to understand and organize your work when you have an extra dimension to work with.<p>Finally, Rivet is built to be embedded into a larger application (TypeScript for now, but we've also found a way to run it in Python). Beyond importing Rivet as a dependency, you can also define "external functions" dynamically at run-time. It feels pretty sketchy to give a LLM a key and unfettered access to an API. With Rivet, you can give it access to a specific set of defined functions, potentially pre-scoped to the access level you want.<p>...Sorry that was long. If you read this whole thing, thank you!<p>We're really excited to hear what you think! We just launched our first Rivet-based application at Ironclad, and we've been working with companies like Sourcegraph, Attentive, AssemblyAI, Bento, and Willow to make Rivet useful for others.
Show HN: Rivet – open-source AI Agent dev env with real-world applications
We just launched Rivet, the open-source visual AI programming environment! We built Rivet, because we were building complex AI Agent applications at Ironclad. It unlocked our abilities here, and we're excited to make available to the entire community.<p>Backstory: A few months ago, inspired by things like LangChain and LlamaIndex, we started building an AI agent that could work with legal contracts. Unfortunately, we couldn't just use retrieval augmented generation (RAG), because a lot of contracts are basically identical (many chunks with near-identical embeddings), except for a few key details. So, we turned to things like ReAct and AutoGPT for inspiration.<p>At first, things went great. We were adding agent capabilities, doing chain-of-thought prompting.<p>But then we hit a wall.<p>The agent became too complex. We had debugger breakpoints on almost every line of code, but we still had no idea where the agent was breaking. Every change we made destabilized something else. After two weeks of fumbling, I decided to end the project.<p>But one of my teammates, Andy, didn't give up.<p>The following week, he showed me v0 of Rivet. He'd used it to refactor and improve our existing agent. I was skeptical... it just seemed like a visual programming environment, and I was not a fan. But I gave it a shot, and suddenly found myself able to add new skills to the agent, debug brittle areas with ease, and update prompts with confidence.<p>Rivet is a game-changer. And more than that, it makes building with LLMs super fun.<p>What exactly makes it different?<p>First, the debugger is incredible. You have to experience it to believe it. You can update a graph, and then immediately run it, and see where it succeeded or failed. Even better: you can attach Rivet as a remote debugger, and watch your agent graphs execute in your app.<p>Second, visual programming is actually a game-changer for prompting LLMs. I don't know why exactly, but it's way easier to understand and organize your work when you have an extra dimension to work with.<p>Finally, Rivet is built to be embedded into a larger application (TypeScript for now, but we've also found a way to run it in Python). Beyond importing Rivet as a dependency, you can also define "external functions" dynamically at run-time. It feels pretty sketchy to give a LLM a key and unfettered access to an API. With Rivet, you can give it access to a specific set of defined functions, potentially pre-scoped to the access level you want.<p>...Sorry that was long. If you read this whole thing, thank you!<p>We're really excited to hear what you think! We just launched our first Rivet-based application at Ironclad, and we've been working with companies like Sourcegraph, Attentive, AssemblyAI, Bento, and Willow to make Rivet useful for others.
Show HN: Rivet – open-source AI Agent dev env with real-world applications
We just launched Rivet, the open-source visual AI programming environment! We built Rivet, because we were building complex AI Agent applications at Ironclad. It unlocked our abilities here, and we're excited to make available to the entire community.<p>Backstory: A few months ago, inspired by things like LangChain and LlamaIndex, we started building an AI agent that could work with legal contracts. Unfortunately, we couldn't just use retrieval augmented generation (RAG), because a lot of contracts are basically identical (many chunks with near-identical embeddings), except for a few key details. So, we turned to things like ReAct and AutoGPT for inspiration.<p>At first, things went great. We were adding agent capabilities, doing chain-of-thought prompting.<p>But then we hit a wall.<p>The agent became too complex. We had debugger breakpoints on almost every line of code, but we still had no idea where the agent was breaking. Every change we made destabilized something else. After two weeks of fumbling, I decided to end the project.<p>But one of my teammates, Andy, didn't give up.<p>The following week, he showed me v0 of Rivet. He'd used it to refactor and improve our existing agent. I was skeptical... it just seemed like a visual programming environment, and I was not a fan. But I gave it a shot, and suddenly found myself able to add new skills to the agent, debug brittle areas with ease, and update prompts with confidence.<p>Rivet is a game-changer. And more than that, it makes building with LLMs super fun.<p>What exactly makes it different?<p>First, the debugger is incredible. You have to experience it to believe it. You can update a graph, and then immediately run it, and see where it succeeded or failed. Even better: you can attach Rivet as a remote debugger, and watch your agent graphs execute in your app.<p>Second, visual programming is actually a game-changer for prompting LLMs. I don't know why exactly, but it's way easier to understand and organize your work when you have an extra dimension to work with.<p>Finally, Rivet is built to be embedded into a larger application (TypeScript for now, but we've also found a way to run it in Python). Beyond importing Rivet as a dependency, you can also define "external functions" dynamically at run-time. It feels pretty sketchy to give a LLM a key and unfettered access to an API. With Rivet, you can give it access to a specific set of defined functions, potentially pre-scoped to the access level you want.<p>...Sorry that was long. If you read this whole thing, thank you!<p>We're really excited to hear what you think! We just launched our first Rivet-based application at Ironclad, and we've been working with companies like Sourcegraph, Attentive, AssemblyAI, Bento, and Willow to make Rivet useful for others.
Show HN: Conway's Game of Life in TypeScript's type system
TypeScript playground: <a href="https://www.typescriptlang.org/play?#code/KYDwDg9gTgLgBDAnmYcCiBHArgQwDYDOAPABoA0cAmgHxwC8AUHHABREAq1LAlPbe3FAxgAOwAmBOCTgB+OAEY4ALjgAmXkNESmrDl151+gkMPGTKshcrW85MKFlQqAZvgLAA3AwZIUcAMLAeHj0cADkIGFwAD7hAHRhPsioAEIQOFBioYHBANoAugXevqgAavgAlmIAkuKgRACCUFDGphJwWCIA1iIQAO4iBbSMzGggAMZ4WGLARF3AiBDOcE1QFGOT07Pzi8urFAAGACQA3iJYALYARsBQAL4H1LSaZnDHJxUizrdwAHKtWkk52utweOjkvx0KhEwAAbrdvAB6RFwAAiEGABBEYXgAAscOI8KgYQBzHAwCrwuDQOAzcYVC74ODjHDuAgMZFwaowMKSAm9RCfEkICBwfGE1AwXHEuE-FnuCgEUXVMIXDoEIVwAC0ilZcBwcHcIgpMJCsPwjjgnwIwhwYiSfgAylgrvIiP8Xu1gTc1gEAa8AAwFUJDeg6eyWz2STC4QjuigB2ixGNueNwb23Wjg7XyKF-f3tXJxYv+BOFMJEkQkqVhfI6Zhyfy5Cuiau42v16zO11poslsvUYrJFZiMRuj0mQFwAAKEAIBHKU0xFFn88XjkkUfTlx9FH8BckQfyIfywx0KbjvwoGagz0nrwjwGzOrzE7akibLarNbrzAbcD7OJSzgANy0rNtawPGc5wXC1MU7f9AOA0Dm3An8EOsHVmE5MAoFlY0rTqEBqSweAljgK4IE6bQ-2sBpR3HFcYPXZcAOLICByHPxqgIAAZSlZjSDIxEdGByVQLchMyChpC3G8KAsOSd0zMNmFk+92n8CA8FqGYQAAeWcIgpJEsThEHf9FI0yQACV+l00BDOM9JMlE8SLL-OQTLc4RckoQoSGPLcIkSWj-0fDCXDcJ9aKiwgYusVx4q41AtM6GB2AcWZVigglEAKPcoKPE8z2YHKt1yT5vhaXiKHYqqfhs39LF4qCItoxsqONTLHCIGyKCQzjYoCLqMqyvq9w8lRPzQ9s6wdVKgjwHzBJc0zxKgkyZKgrSdKIpzvLM4BqAUqC7L6ByDKMw73NKkb0p62Zck7Hj+PhZzhJWihuzdEgTrgH6iBoE6Xr4gSPtco6ZO+l03WBshQbe1bPqhkcx1IPdtMug61pWp4YZ7eHEfBm7hAoej0fIEa9r0nGUduhSQdo16Sdx1GKd+zGacc662YZtG4Yoc7sd5+nzPx4n3tJ4BoYFoGhfs-bRch26mb-Fmpb5smAdh0h-o5+W4GFpWIfW8W1eYDXkZV7XAb+xmdFPFL0FhbT4RyPBTZWza1u2rddpFr2jv+qz3yNxXaeVs3jru6W-ICoLrPiULLA9lag-E2WaCggBmTs5BCzsVDCBI8zj-zckCqDC46gIlvT6Ws7vMPVBiOA87Cywa7C4vS+GmF4SgZ20FdvB4XOogdH0qAKhJaWfeEhHmFDqdjcjohp9n6W1f8dSw+KugAPyJeAiwZpzp2pbg0PgqGGGOAdF31DWx-HasZNze56147sxHt3gAnhhT+jcMKUBPrRJCVNQLgL-EhM+UBzrrFHu7JaG8Z5fzFjLAIJBn7fjmozZqzApqn3Pv0YeyDZhT3QfPSSvtH7wJoUnEyJ4T7+BXoGa+R8Eb30fpQXBEFE5hzXjzNBW9v4eTkH-MesxgHfwGuxfwDC5Eu3-hPWRmC9x8K-AI6gx82IljASBJ2zBppKMweQ-+vwM7CAXtJfMSkQS+n3FuA+R87ozRfnNKCkJ-zSzzFI+EViAnW2jv9K8+iOJGMHAtcOF0TaMLDiZe+i4qiXWsT-Eo1NA4JKnEk0IKSahEXSbkG8TsOQojoJUqp1Sam1LqdU8p9A6lwBSGgAA4tUf47A0COnYJ0tpTS6mNPqSM0ZNSkQonYJiE0woACqFI8AVApPBGJAApCAnwJ4X39lfPRjooI2hnlWUIYQwh3W2UnSqXwfitR2cEOqxYGotBspfPI+RmpyHWZs-oE03inEdHcU4vEHjEMdM7acRyYAmXSbYsQFB+IwkdMAMABz7CakPmEAAOtib6qKjnCgxWc0IOgcmvCudVEhCD+ivLwAVOA9VrktF+EIc6m4mFrQ+QDauKd-wQs+FCta7oWX9AIPCz4wAkVgAoF8kQE9FGkL6E8IuM5IXQuZSYVlYrEXIsOP8wFJwEUSuRfqmVcr4HnWoCCvMYKYmiXxewCA0L9lbkOUKPcZjMiwpYZSi5YcPacNDCMLlW53hPLgMC04YabJgn-LcpOWLsT5x9f0fhr8XEYTkHaoUDroX9UpVtNxkUAZoqrDmwVea4HNALfKqlfQ9FDGVXGv1S0M3FvtY68t7qq2+wiTWxB4bjE9zbdmjtwlfk1urea-oxCJ1rQmXAKZNoAisngpyAAEhAQe1It1SklMOEQOALiYhFIaYAkppQkRgGAUi87cQwCvQQJQyJxgQBEH0HAiBFnfDiC+i4iI+gVC6BUREKRFndARJyactwKgQCyKoGJoHPjzBaIfLNpbR2ZCIAcBg7EGAgHwzh4sDBHjgsQ+BqAihD58uNNCsjyHByZOnHR24rcqOqsFcE4yYH6MMeHEx7jtwc6hGowKsdwSrHMd9KoJVjHJMABZhPsbExQiTAnfQ5yVY0u9D6n2IhfW+j9X7gA-ogH+gDQHERtLnCgKAAB9EkiyZh2ZJJ0RpUGZ6wfbgGGJVmCA2baY524bTOihDQySMtY7sPsWizF2LcX4sJaI4l5L0WQApdi4R9L8W0tpay7h9L+HYuFeS8VmLmWEu5biJVqr1Xsu1aS6VmLtXKuNbyw1+rxYWs1dS1VtrSXEvNbix15L5XsvsWG31-rJWJuTam7N+bRGSMxOnMFkQlGVX8uhb5-zgWoCrcHJyRjq3WMbZoxxlTRBttBd26tig8glWHb46toTbHNvncsZd6z12qhBc6BQaTB2URHc6Ap17Z3lMfau3tm7f324PaB09zoABWRTb2IfSKsVDgLP29uw7k-DhAiORAADZUfg8w+Jz7fnvtOdu3AJHBPgciAAOxk9ExTi7WOYciAoMTxnROAAcbPoWU65zjunzP+d+BW50AAnML97GOqc7fF7DgXUvUAy7WwGBX6PAnK5p79nncBZca5nKt+Q62RMi85196HqvjfyETIDwn0uLcnet4r-XYvaew8t2brX8gXunfZ2IIgou7fY9947gHjSmfyFByHm3kPI-c7uxpl38eUdg9D+H231P7fR7u-jzPRP5Ck5z8npXPujd3YZ6Xt3nR5Cs8r174AmPU8O7u3zhvmuLdC9b3r9vBvC+14UJL3v5um-y8HxzlPBeo9j-kOryfWvVA69n2HiPC+08KFN6v47VulNz+r53ovahndx6J6oD3x+t-55V+f1Q92D+dFUMHz3Q+O87672oWPj3G8RBVBE9P8T9vcz8x938A9jts8k829v9H9ICS8r9ADVAK84Cv8R9F9cdjdVB68UC+838W8MCwDh8a8cD-se8CCp8gCB8SD7959ECKC1AJ9qC18Z96C89GDDdmDVAV82DnsN9ODt8mC6dVB99ltnsj80dSCECeC6cc5L8ADCCRAc5b8ZCGDT8f9z8c4X8GAgA" rel="nofollow noreferrer">https://www.typescriptlang.org/play?#code/KYDwDg9gTgLgBDAnmY...</a>
Show HN: Conway's Game of Life in TypeScript's type system
TypeScript playground: <a href="https://www.typescriptlang.org/play?#code/KYDwDg9gTgLgBDAnmYcCiBHArgQwDYDOAPABoA0cAmgHxwC8AUHHABREAq1LAlPbe3FAxgAOwAmBOCTgB+OAEY4ALjgAmXkNESmrDl151+gkMPGTKshcrW85MKFlQqAZvgLAA3AwZIUcAMLAeHj0cADkIGFwAD7hAHRhPsioAEIQOFBioYHBANoAugXevqgAavgAlmIAkuKgRACCUFDGphJwWCIA1iIQAO4iBbSMzGggAMZ4WGLARF3AiBDOcE1QFGOT07Pzi8urFAAGACQA3iJYALYARsBQAL4H1LSaZnDHJxUizrdwAHKtWkk52utweOjkvx0KhEwAAbrdvAB6RFwAAiEGABBEYXgAAscOI8KgYQBzHAwCrwuDQOAzcYVC74ODjHDuAgMZFwaowMKSAm9RCfEkICBwfGE1AwXHEuE-FnuCgEUXVMIXDoEIVwAC0ilZcBwcHcIgpMJCsPwjjgnwIwhwYiSfgAylgrvIiP8Xu1gTc1gEAa8AAwFUJDeg6eyWz2STC4QjuigB2ixGNueNwb23Wjg7XyKF-f3tXJxYv+BOFMJEkQkqVhfI6Zhyfy5Cuiau42v16zO11poslsvUYrJFZiMRuj0mQFwAAKEAIBHKU0xFFn88XjkkUfTlx9FH8BckQfyIfywx0KbjvwoGagz0nrwjwGzOrzE7akibLarNbrzAbcD7OJSzgANy0rNtawPGc5wXC1MU7f9AOA0Dm3An8EOsHVmE5MAoFlY0rTqEBqSweAljgK4IE6bQ-2sBpR3HFcYPXZcAOLICByHPxqgIAAZSlZjSDIxEdGByVQLchMyChpC3G8KAsOSd0zMNmFk+92n8CA8FqGYQAAeWcIgpJEsThEHf9FI0yQACV+l00BDOM9JMlE8SLL-OQTLc4RckoQoSGPLcIkSWj-0fDCXDcJ9aKiwgYusVx4q41AtM6GB2AcWZVigglEAKPcoKPE8z2YHKt1yT5vhaXiKHYqqfhs39LF4qCItoxsqONTLHCIGyKCQzjYoCLqMqyvq9w8lRPzQ9s6wdVKgjwHzBJc0zxKgkyZKgrSdKIpzvLM4BqAUqC7L6ByDKMw73NKkb0p62Zck7Hj+PhZzhJWihuzdEgTrgH6iBoE6Xr4gSPtco6ZO+l03WBshQbe1bPqhkcx1IPdtMug61pWp4YZ7eHEfBm7hAoej0fIEa9r0nGUduhSQdo16Sdx1GKd+zGacc662YZtG4Yoc7sd5+nzPx4n3tJ4BoYFoGhfs-bRch26mb-Fmpb5smAdh0h-o5+W4GFpWIfW8W1eYDXkZV7XAb+xmdFPFL0FhbT4RyPBTZWza1u2rddpFr2jv+qz3yNxXaeVs3jru6W-ICoLrPiULLA9lag-E2WaCggBmTs5BCzsVDCBI8zj-zckCqDC46gIlvT6Ws7vMPVBiOA87Cywa7C4vS+GmF4SgZ20FdvB4XOogdH0qAKhJaWfeEhHmFDqdjcjohp9n6W1f8dSw+KugAPyJeAiwZpzp2pbg0PgqGGGOAdF31DWx-HasZNze56147sxHt3gAnhhT+jcMKUBPrRJCVNQLgL-EhM+UBzrrFHu7JaG8Z5fzFjLAIJBn7fjmozZqzApqn3Pv0YeyDZhT3QfPSSvtH7wJoUnEyJ4T7+BXoGa+R8Eb30fpQXBEFE5hzXjzNBW9v4eTkH-MesxgHfwGuxfwDC5Eu3-hPWRmC9x8K-AI6gx82IljASBJ2zBppKMweQ-+vwM7CAXtJfMSkQS+n3FuA+R87ozRfnNKCkJ-zSzzFI+EViAnW2jv9K8+iOJGMHAtcOF0TaMLDiZe+i4qiXWsT-Eo1NA4JKnEk0IKSahEXSbkG8TsOQojoJUqp1Sam1LqdU8p9A6lwBSGgAA4tUf47A0COnYJ0tpTS6mNPqSM0ZNSkQonYJiE0woACqFI8AVApPBGJAApCAnwJ4X39lfPRjooI2hnlWUIYQwh3W2UnSqXwfitR2cEOqxYGotBspfPI+RmpyHWZs-oE03inEdHcU4vEHjEMdM7acRyYAmXSbYsQFB+IwkdMAMABz7CakPmEAAOtib6qKjnCgxWc0IOgcmvCudVEhCD+ivLwAVOA9VrktF+EIc6m4mFrQ+QDauKd-wQs+FCta7oWX9AIPCz4wAkVgAoF8kQE9FGkL6E8IuM5IXQuZSYVlYrEXIsOP8wFJwEUSuRfqmVcr4HnWoCCvMYKYmiXxewCA0L9lbkOUKPcZjMiwpYZSi5YcPacNDCMLlW53hPLgMC04YabJgn-LcpOWLsT5x9f0fhr8XEYTkHaoUDroX9UpVtNxkUAZoqrDmwVea4HNALfKqlfQ9FDGVXGv1S0M3FvtY68t7qq2+wiTWxB4bjE9zbdmjtwlfk1urea-oxCJ1rQmXAKZNoAisngpyAAEhAQe1It1SklMOEQOALiYhFIaYAkppQkRgGAUi87cQwCvQQJQyJxgQBEH0HAiBFnfDiC+i4iI+gVC6BUREKRFndARJyactwKgQCyKoGJoHPjzBaIfLNpbR2ZCIAcBg7EGAgHwzh4sDBHjgsQ+BqAihD58uNNCsjyHByZOnHR24rcqOqsFcE4yYH6MMeHEx7jtwc6hGowKsdwSrHMd9KoJVjHJMABZhPsbExQiTAnfQ5yVY0u9D6n2IhfW+j9X7gA-ogH+gDQHERtLnCgKAAB9EkiyZh2ZJJ0RpUGZ6wfbgGGJVmCA2baY524bTOihDQySMtY7sPsWizF2LcX4sJaI4l5L0WQApdi4R9L8W0tpay7h9L+HYuFeS8VmLmWEu5biJVqr1Xsu1aS6VmLtXKuNbyw1+rxYWs1dS1VtrSXEvNbix15L5XsvsWG31-rJWJuTam7N+bRGSMxOnMFkQlGVX8uhb5-zgWoCrcHJyRjq3WMbZoxxlTRBttBd26tig8glWHb46toTbHNvncsZd6z12qhBc6BQaTB2URHc6Ap17Z3lMfau3tm7f324PaB09zoABWRTb2IfSKsVDgLP29uw7k-DhAiORAADZUfg8w+Jz7fnvtOdu3AJHBPgciAAOxk9ExTi7WOYciAoMTxnROAAcbPoWU65zjunzP+d+BW50AAnML97GOqc7fF7DgXUvUAy7WwGBX6PAnK5p79nncBZca5nKt+Q62RMi85196HqvjfyETIDwn0uLcnet4r-XYvaew8t2brX8gXunfZ2IIgou7fY9947gHjSmfyFByHm3kPI-c7uxpl38eUdg9D+H231P7fR7u-jzPRP5Ck5z8npXPujd3YZ6Xt3nR5Cs8r174AmPU8O7u3zhvmuLdC9b3r9vBvC+14UJL3v5um-y8HxzlPBeo9j-kOryfWvVA69n2HiPC+08KFN6v47VulNz+r53ovahndx6J6oD3x+t-55V+f1Q92D+dFUMHz3Q+O87672oWPj3G8RBVBE9P8T9vcz8x938A9jts8k829v9H9ICS8r9ADVAK84Cv8R9F9cdjdVB68UC+838W8MCwDh8a8cD-se8CCp8gCB8SD7959ECKC1AJ9qC18Z96C89GDDdmDVAV82DnsN9ODt8mC6dVB99ltnsj80dSCECeC6cc5L8ADCCRAc5b8ZCGDT8f9z8c4X8GAgA" rel="nofollow noreferrer">https://www.typescriptlang.org/play?#code/KYDwDg9gTgLgBDAnmY...</a>
Show HN: Conway's Game of Life in TypeScript's type system
TypeScript playground: <a href="https://www.typescriptlang.org/play?#code/KYDwDg9gTgLgBDAnmYcCiBHArgQwDYDOAPABoA0cAmgHxwC8AUHHABREAq1LAlPbe3FAxgAOwAmBOCTgB+OAEY4ALjgAmXkNESmrDl151+gkMPGTKshcrW85MKFlQqAZvgLAA3AwZIUcAMLAeHj0cADkIGFwAD7hAHRhPsioAEIQOFBioYHBANoAugXevqgAavgAlmIAkuKgRACCUFDGphJwWCIA1iIQAO4iBbSMzGggAMZ4WGLARF3AiBDOcE1QFGOT07Pzi8urFAAGACQA3iJYALYARsBQAL4H1LSaZnDHJxUizrdwAHKtWkk52utweOjkvx0KhEwAAbrdvAB6RFwAAiEGABBEYXgAAscOI8KgYQBzHAwCrwuDQOAzcYVC74ODjHDuAgMZFwaowMKSAm9RCfEkICBwfGE1AwXHEuE-FnuCgEUXVMIXDoEIVwAC0ilZcBwcHcIgpMJCsPwjjgnwIwhwYiSfgAylgrvIiP8Xu1gTc1gEAa8AAwFUJDeg6eyWz2STC4QjuigB2ixGNueNwb23Wjg7XyKF-f3tXJxYv+BOFMJEkQkqVhfI6Zhyfy5Cuiau42v16zO11poslsvUYrJFZiMRuj0mQFwAAKEAIBHKU0xFFn88XjkkUfTlx9FH8BckQfyIfywx0KbjvwoGagz0nrwjwGzOrzE7akibLarNbrzAbcD7OJSzgANy0rNtawPGc5wXC1MU7f9AOA0Dm3An8EOsHVmE5MAoFlY0rTqEBqSweAljgK4IE6bQ-2sBpR3HFcYPXZcAOLICByHPxqgIAAZSlZjSDIxEdGByVQLchMyChpC3G8KAsOSd0zMNmFk+92n8CA8FqGYQAAeWcIgpJEsThEHf9FI0yQACV+l00BDOM9JMlE8SLL-OQTLc4RckoQoSGPLcIkSWj-0fDCXDcJ9aKiwgYusVx4q41AtM6GB2AcWZVigglEAKPcoKPE8z2YHKt1yT5vhaXiKHYqqfhs39LF4qCItoxsqONTLHCIGyKCQzjYoCLqMqyvq9w8lRPzQ9s6wdVKgjwHzBJc0zxKgkyZKgrSdKIpzvLM4BqAUqC7L6ByDKMw73NKkb0p62Zck7Hj+PhZzhJWihuzdEgTrgH6iBoE6Xr4gSPtco6ZO+l03WBshQbe1bPqhkcx1IPdtMug61pWp4YZ7eHEfBm7hAoej0fIEa9r0nGUduhSQdo16Sdx1GKd+zGacc662YZtG4Yoc7sd5+nzPx4n3tJ4BoYFoGhfs-bRch26mb-Fmpb5smAdh0h-o5+W4GFpWIfW8W1eYDXkZV7XAb+xmdFPFL0FhbT4RyPBTZWza1u2rddpFr2jv+qz3yNxXaeVs3jru6W-ICoLrPiULLA9lag-E2WaCggBmTs5BCzsVDCBI8zj-zckCqDC46gIlvT6Ws7vMPVBiOA87Cywa7C4vS+GmF4SgZ20FdvB4XOogdH0qAKhJaWfeEhHmFDqdjcjohp9n6W1f8dSw+KugAPyJeAiwZpzp2pbg0PgqGGGOAdF31DWx-HasZNze56147sxHt3gAnhhT+jcMKUBPrRJCVNQLgL-EhM+UBzrrFHu7JaG8Z5fzFjLAIJBn7fjmozZqzApqn3Pv0YeyDZhT3QfPSSvtH7wJoUnEyJ4T7+BXoGa+R8Eb30fpQXBEFE5hzXjzNBW9v4eTkH-MesxgHfwGuxfwDC5Eu3-hPWRmC9x8K-AI6gx82IljASBJ2zBppKMweQ-+vwM7CAXtJfMSkQS+n3FuA+R87ozRfnNKCkJ-zSzzFI+EViAnW2jv9K8+iOJGMHAtcOF0TaMLDiZe+i4qiXWsT-Eo1NA4JKnEk0IKSahEXSbkG8TsOQojoJUqp1Sam1LqdU8p9A6lwBSGgAA4tUf47A0COnYJ0tpTS6mNPqSM0ZNSkQonYJiE0woACqFI8AVApPBGJAApCAnwJ4X39lfPRjooI2hnlWUIYQwh3W2UnSqXwfitR2cEOqxYGotBspfPI+RmpyHWZs-oE03inEdHcU4vEHjEMdM7acRyYAmXSbYsQFB+IwkdMAMABz7CakPmEAAOtib6qKjnCgxWc0IOgcmvCudVEhCD+ivLwAVOA9VrktF+EIc6m4mFrQ+QDauKd-wQs+FCta7oWX9AIPCz4wAkVgAoF8kQE9FGkL6E8IuM5IXQuZSYVlYrEXIsOP8wFJwEUSuRfqmVcr4HnWoCCvMYKYmiXxewCA0L9lbkOUKPcZjMiwpYZSi5YcPacNDCMLlW53hPLgMC04YabJgn-LcpOWLsT5x9f0fhr8XEYTkHaoUDroX9UpVtNxkUAZoqrDmwVea4HNALfKqlfQ9FDGVXGv1S0M3FvtY68t7qq2+wiTWxB4bjE9zbdmjtwlfk1urea-oxCJ1rQmXAKZNoAisngpyAAEhAQe1It1SklMOEQOALiYhFIaYAkppQkRgGAUi87cQwCvQQJQyJxgQBEH0HAiBFnfDiC+i4iI+gVC6BUREKRFndARJyactwKgQCyKoGJoHPjzBaIfLNpbR2ZCIAcBg7EGAgHwzh4sDBHjgsQ+BqAihD58uNNCsjyHByZOnHR24rcqOqsFcE4yYH6MMeHEx7jtwc6hGowKsdwSrHMd9KoJVjHJMABZhPsbExQiTAnfQ5yVY0u9D6n2IhfW+j9X7gA-ogH+gDQHERtLnCgKAAB9EkiyZh2ZJJ0RpUGZ6wfbgGGJVmCA2baY524bTOihDQySMtY7sPsWizF2LcX4sJaI4l5L0WQApdi4R9L8W0tpay7h9L+HYuFeS8VmLmWEu5biJVqr1Xsu1aS6VmLtXKuNbyw1+rxYWs1dS1VtrSXEvNbix15L5XsvsWG31-rJWJuTam7N+bRGSMxOnMFkQlGVX8uhb5-zgWoCrcHJyRjq3WMbZoxxlTRBttBd26tig8glWHb46toTbHNvncsZd6z12qhBc6BQaTB2URHc6Ap17Z3lMfau3tm7f324PaB09zoABWRTb2IfSKsVDgLP29uw7k-DhAiORAADZUfg8w+Jz7fnvtOdu3AJHBPgciAAOxk9ExTi7WOYciAoMTxnROAAcbPoWU65zjunzP+d+BW50AAnML97GOqc7fF7DgXUvUAy7WwGBX6PAnK5p79nncBZca5nKt+Q62RMi85196HqvjfyETIDwn0uLcnet4r-XYvaew8t2brX8gXunfZ2IIgou7fY9947gHjSmfyFByHm3kPI-c7uxpl38eUdg9D+H231P7fR7u-jzPRP5Ck5z8npXPujd3YZ6Xt3nR5Cs8r174AmPU8O7u3zhvmuLdC9b3r9vBvC+14UJL3v5um-y8HxzlPBeo9j-kOryfWvVA69n2HiPC+08KFN6v47VulNz+r53ovahndx6J6oD3x+t-55V+f1Q92D+dFUMHz3Q+O87672oWPj3G8RBVBE9P8T9vcz8x938A9jts8k829v9H9ICS8r9ADVAK84Cv8R9F9cdjdVB68UC+838W8MCwDh8a8cD-se8CCp8gCB8SD7959ECKC1AJ9qC18Z96C89GDDdmDVAV82DnsN9ODt8mC6dVB99ltnsj80dSCECeC6cc5L8ADCCRAc5b8ZCGDT8f9z8c4X8GAgA" rel="nofollow noreferrer">https://www.typescriptlang.org/play?#code/KYDwDg9gTgLgBDAnmY...</a>
Show HN: Conway's Game of Life in TypeScript's type system
TypeScript playground: <a href="https://www.typescriptlang.org/play?#code/KYDwDg9gTgLgBDAnmYcCiBHArgQwDYDOAPABoA0cAmgHxwC8AUHHABREAq1LAlPbe3FAxgAOwAmBOCTgB+OAEY4ALjgAmXkNESmrDl151+gkMPGTKshcrW85MKFlQqAZvgLAA3AwZIUcAMLAeHj0cADkIGFwAD7hAHRhPsioAEIQOFBioYHBANoAugXevqgAavgAlmIAkuKgRACCUFDGphJwWCIA1iIQAO4iBbSMzGggAMZ4WGLARF3AiBDOcE1QFGOT07Pzi8urFAAGACQA3iJYALYARsBQAL4H1LSaZnDHJxUizrdwAHKtWkk52utweOjkvx0KhEwAAbrdvAB6RFwAAiEGABBEYXgAAscOI8KgYQBzHAwCrwuDQOAzcYVC74ODjHDuAgMZFwaowMKSAm9RCfEkICBwfGE1AwXHEuE-FnuCgEUXVMIXDoEIVwAC0ilZcBwcHcIgpMJCsPwjjgnwIwhwYiSfgAylgrvIiP8Xu1gTc1gEAa8AAwFUJDeg6eyWz2STC4QjuigB2ixGNueNwb23Wjg7XyKF-f3tXJxYv+BOFMJEkQkqVhfI6Zhyfy5Cuiau42v16zO11poslsvUYrJFZiMRuj0mQFwAAKEAIBHKU0xFFn88XjkkUfTlx9FH8BckQfyIfywx0KbjvwoGagz0nrwjwGzOrzE7akibLarNbrzAbcD7OJSzgANy0rNtawPGc5wXC1MU7f9AOA0Dm3An8EOsHVmE5MAoFlY0rTqEBqSweAljgK4IE6bQ-2sBpR3HFcYPXZcAOLICByHPxqgIAAZSlZjSDIxEdGByVQLchMyChpC3G8KAsOSd0zMNmFk+92n8CA8FqGYQAAeWcIgpJEsThEHf9FI0yQACV+l00BDOM9JMlE8SLL-OQTLc4RckoQoSGPLcIkSWj-0fDCXDcJ9aKiwgYusVx4q41AtM6GB2AcWZVigglEAKPcoKPE8z2YHKt1yT5vhaXiKHYqqfhs39LF4qCItoxsqONTLHCIGyKCQzjYoCLqMqyvq9w8lRPzQ9s6wdVKgjwHzBJc0zxKgkyZKgrSdKIpzvLM4BqAUqC7L6ByDKMw73NKkb0p62Zck7Hj+PhZzhJWihuzdEgTrgH6iBoE6Xr4gSPtco6ZO+l03WBshQbe1bPqhkcx1IPdtMug61pWp4YZ7eHEfBm7hAoej0fIEa9r0nGUduhSQdo16Sdx1GKd+zGacc662YZtG4Yoc7sd5+nzPx4n3tJ4BoYFoGhfs-bRch26mb-Fmpb5smAdh0h-o5+W4GFpWIfW8W1eYDXkZV7XAb+xmdFPFL0FhbT4RyPBTZWza1u2rddpFr2jv+qz3yNxXaeVs3jru6W-ICoLrPiULLA9lag-E2WaCggBmTs5BCzsVDCBI8zj-zckCqDC46gIlvT6Ws7vMPVBiOA87Cywa7C4vS+GmF4SgZ20FdvB4XOogdH0qAKhJaWfeEhHmFDqdjcjohp9n6W1f8dSw+KugAPyJeAiwZpzp2pbg0PgqGGGOAdF31DWx-HasZNze56147sxHt3gAnhhT+jcMKUBPrRJCVNQLgL-EhM+UBzrrFHu7JaG8Z5fzFjLAIJBn7fjmozZqzApqn3Pv0YeyDZhT3QfPSSvtH7wJoUnEyJ4T7+BXoGa+R8Eb30fpQXBEFE5hzXjzNBW9v4eTkH-MesxgHfwGuxfwDC5Eu3-hPWRmC9x8K-AI6gx82IljASBJ2zBppKMweQ-+vwM7CAXtJfMSkQS+n3FuA+R87ozRfnNKCkJ-zSzzFI+EViAnW2jv9K8+iOJGMHAtcOF0TaMLDiZe+i4qiXWsT-Eo1NA4JKnEk0IKSahEXSbkG8TsOQojoJUqp1Sam1LqdU8p9A6lwBSGgAA4tUf47A0COnYJ0tpTS6mNPqSM0ZNSkQonYJiE0woACqFI8AVApPBGJAApCAnwJ4X39lfPRjooI2hnlWUIYQwh3W2UnSqXwfitR2cEOqxYGotBspfPI+RmpyHWZs-oE03inEdHcU4vEHjEMdM7acRyYAmXSbYsQFB+IwkdMAMABz7CakPmEAAOtib6qKjnCgxWc0IOgcmvCudVEhCD+ivLwAVOA9VrktF+EIc6m4mFrQ+QDauKd-wQs+FCta7oWX9AIPCz4wAkVgAoF8kQE9FGkL6E8IuM5IXQuZSYVlYrEXIsOP8wFJwEUSuRfqmVcr4HnWoCCvMYKYmiXxewCA0L9lbkOUKPcZjMiwpYZSi5YcPacNDCMLlW53hPLgMC04YabJgn-LcpOWLsT5x9f0fhr8XEYTkHaoUDroX9UpVtNxkUAZoqrDmwVea4HNALfKqlfQ9FDGVXGv1S0M3FvtY68t7qq2+wiTWxB4bjE9zbdmjtwlfk1urea-oxCJ1rQmXAKZNoAisngpyAAEhAQe1It1SklMOEQOALiYhFIaYAkppQkRgGAUi87cQwCvQQJQyJxgQBEH0HAiBFnfDiC+i4iI+gVC6BUREKRFndARJyactwKgQCyKoGJoHPjzBaIfLNpbR2ZCIAcBg7EGAgHwzh4sDBHjgsQ+BqAihD58uNNCsjyHByZOnHR24rcqOqsFcE4yYH6MMeHEx7jtwc6hGowKsdwSrHMd9KoJVjHJMABZhPsbExQiTAnfQ5yVY0u9D6n2IhfW+j9X7gA-ogH+gDQHERtLnCgKAAB9EkiyZh2ZJJ0RpUGZ6wfbgGGJVmCA2baY524bTOihDQySMtY7sPsWizF2LcX4sJaI4l5L0WQApdi4R9L8W0tpay7h9L+HYuFeS8VmLmWEu5biJVqr1Xsu1aS6VmLtXKuNbyw1+rxYWs1dS1VtrSXEvNbix15L5XsvsWG31-rJWJuTam7N+bRGSMxOnMFkQlGVX8uhb5-zgWoCrcHJyRjq3WMbZoxxlTRBttBd26tig8glWHb46toTbHNvncsZd6z12qhBc6BQaTB2URHc6Ap17Z3lMfau3tm7f324PaB09zoABWRTb2IfSKsVDgLP29uw7k-DhAiORAADZUfg8w+Jz7fnvtOdu3AJHBPgciAAOxk9ExTi7WOYciAoMTxnROAAcbPoWU65zjunzP+d+BW50AAnML97GOqc7fF7DgXUvUAy7WwGBX6PAnK5p79nncBZca5nKt+Q62RMi85196HqvjfyETIDwn0uLcnet4r-XYvaew8t2brX8gXunfZ2IIgou7fY9947gHjSmfyFByHm3kPI-c7uxpl38eUdg9D+H231P7fR7u-jzPRP5Ck5z8npXPujd3YZ6Xt3nR5Cs8r174AmPU8O7u3zhvmuLdC9b3r9vBvC+14UJL3v5um-y8HxzlPBeo9j-kOryfWvVA69n2HiPC+08KFN6v47VulNz+r53ovahndx6J6oD3x+t-55V+f1Q92D+dFUMHz3Q+O87672oWPj3G8RBVBE9P8T9vcz8x938A9jts8k829v9H9ICS8r9ADVAK84Cv8R9F9cdjdVB68UC+838W8MCwDh8a8cD-se8CCp8gCB8SD7959ECKC1AJ9qC18Z96C89GDDdmDVAV82DnsN9ODt8mC6dVB99ltnsj80dSCECeC6cc5L8ADCCRAc5b8ZCGDT8f9z8c4X8GAgA" rel="nofollow noreferrer">https://www.typescriptlang.org/play?#code/KYDwDg9gTgLgBDAnmY...</a>
Show HN: HackYourNews – AI summaries of the top HN stories
Hey there HN!<p>I wanted to share a pet project of mine. I built HackYourNews [1] to scratch a personal itch: Knowing which stories to focus on while browsing aimlessly (though there is a certain joy in that, as well!)<p>HackYourNews uses OpenAI's gpt-3.5-turbo to summarize the destination article as well as the comments section. Summarization of the article is always cached, while summaries of the comments are regenerated if the comments count is >10% (or >10 comments) different.<p>While I styled the homepage to welcome HNers, my preferred view is the Mobile view, accessed from the navbar. This no-frills view honors OS-level dark mode and is easy to skim on any device.<p>Tried to keep the site minimal. The only JS is Cloudflare's privacy-preserving analytics [2], just to gauge interest.<p>This is the first time I'm releasing something to the wild.<p>Hope you find this useful!<p>The frontend is pure HTML+CSS.<p>The backend is NodeJS (Puppeteer) + Python with the excellent Microsoft Guidance [3] library to interface to OpenAI's API.<p>[1] <a href="https://hackyournews.com/" rel="nofollow noreferrer">https://hackyournews.com/</a><p>[2] <a href="https://www.cloudflare.com/web-analytics/" rel="nofollow noreferrer">https://www.cloudflare.com/web-analytics/</a><p>[3] <a href="https://github.com/guidance-ai/guidance">https://github.com/guidance-ai/guidance</a>
Show HN: HackYourNews – AI summaries of the top HN stories
Hey there HN!<p>I wanted to share a pet project of mine. I built HackYourNews [1] to scratch a personal itch: Knowing which stories to focus on while browsing aimlessly (though there is a certain joy in that, as well!)<p>HackYourNews uses OpenAI's gpt-3.5-turbo to summarize the destination article as well as the comments section. Summarization of the article is always cached, while summaries of the comments are regenerated if the comments count is >10% (or >10 comments) different.<p>While I styled the homepage to welcome HNers, my preferred view is the Mobile view, accessed from the navbar. This no-frills view honors OS-level dark mode and is easy to skim on any device.<p>Tried to keep the site minimal. The only JS is Cloudflare's privacy-preserving analytics [2], just to gauge interest.<p>This is the first time I'm releasing something to the wild.<p>Hope you find this useful!<p>The frontend is pure HTML+CSS.<p>The backend is NodeJS (Puppeteer) + Python with the excellent Microsoft Guidance [3] library to interface to OpenAI's API.<p>[1] <a href="https://hackyournews.com/" rel="nofollow noreferrer">https://hackyournews.com/</a><p>[2] <a href="https://www.cloudflare.com/web-analytics/" rel="nofollow noreferrer">https://www.cloudflare.com/web-analytics/</a><p>[3] <a href="https://github.com/guidance-ai/guidance">https://github.com/guidance-ai/guidance</a>
Show HN: HackYourNews – AI summaries of the top HN stories
Hey there HN!<p>I wanted to share a pet project of mine. I built HackYourNews [1] to scratch a personal itch: Knowing which stories to focus on while browsing aimlessly (though there is a certain joy in that, as well!)<p>HackYourNews uses OpenAI's gpt-3.5-turbo to summarize the destination article as well as the comments section. Summarization of the article is always cached, while summaries of the comments are regenerated if the comments count is >10% (or >10 comments) different.<p>While I styled the homepage to welcome HNers, my preferred view is the Mobile view, accessed from the navbar. This no-frills view honors OS-level dark mode and is easy to skim on any device.<p>Tried to keep the site minimal. The only JS is Cloudflare's privacy-preserving analytics [2], just to gauge interest.<p>This is the first time I'm releasing something to the wild.<p>Hope you find this useful!<p>The frontend is pure HTML+CSS.<p>The backend is NodeJS (Puppeteer) + Python with the excellent Microsoft Guidance [3] library to interface to OpenAI's API.<p>[1] <a href="https://hackyournews.com/" rel="nofollow noreferrer">https://hackyournews.com/</a><p>[2] <a href="https://www.cloudflare.com/web-analytics/" rel="nofollow noreferrer">https://www.cloudflare.com/web-analytics/</a><p>[3] <a href="https://github.com/guidance-ai/guidance">https://github.com/guidance-ai/guidance</a>
Show HN: HackYourNews – AI summaries of the top HN stories
Hey there HN!<p>I wanted to share a pet project of mine. I built HackYourNews [1] to scratch a personal itch: Knowing which stories to focus on while browsing aimlessly (though there is a certain joy in that, as well!)<p>HackYourNews uses OpenAI's gpt-3.5-turbo to summarize the destination article as well as the comments section. Summarization of the article is always cached, while summaries of the comments are regenerated if the comments count is >10% (or >10 comments) different.<p>While I styled the homepage to welcome HNers, my preferred view is the Mobile view, accessed from the navbar. This no-frills view honors OS-level dark mode and is easy to skim on any device.<p>Tried to keep the site minimal. The only JS is Cloudflare's privacy-preserving analytics [2], just to gauge interest.<p>This is the first time I'm releasing something to the wild.<p>Hope you find this useful!<p>The frontend is pure HTML+CSS.<p>The backend is NodeJS (Puppeteer) + Python with the excellent Microsoft Guidance [3] library to interface to OpenAI's API.<p>[1] <a href="https://hackyournews.com/" rel="nofollow noreferrer">https://hackyournews.com/</a><p>[2] <a href="https://www.cloudflare.com/web-analytics/" rel="nofollow noreferrer">https://www.cloudflare.com/web-analytics/</a><p>[3] <a href="https://github.com/guidance-ai/guidance">https://github.com/guidance-ai/guidance</a>
Show HN: uDSV.js – A faster CSV parser
Hey folks!<p>I know CSV parsers (especially in JS) aren't terribly exciting and someone writes a "better" one every week.<p>I'm in the middle of my parental leave, and this was a project that came out of me looking for the fastest/smallest CSV parser. It all started so innocently, and then turned into a benchmark-validation-athon; the library itself took ~2 weeks to write, but the performance comparisons took another ~4 weeks (on and off).<p>The benchmarks were a huge effort, but I think they are the most thorough to date, both in breadth and in depth, so hopefully you find them useful: <a href="https://github.com/leeoniya/uDSV/tree/main/bench">https://github.com/leeoniya/uDSV/tree/main/bench</a><p>Let me know if you have specific concerns / questions / improvements :)<p>cheers!
Leon
Show HN: iNet – A programming language for interaction nets
Show HN: iNet – A programming language for interaction nets
Retool AI
Show HN: Alaz: Open-Source, Self-Hosted, eBPF-Based K8s Monitoring
Hello Everyone,<p>I'm excited to introduce a new open-source observability platform and would love to hear your feedback.<p>We are aware that there are lots of open-source/commercial tools out there. However, we believe that monitoring the clusters and extracting actionable insights requires deep know-how about the tools/domain. We mainly focused on this problem.<p>- Alaz is an eBPF agent installed on your K8s cluster as DaemonSet. Thanks to eBPF, Alaz collects traces directly from Linux kernels. This means there's no need for sidecars, instrumentations, or service restarts.<p>- The UI not only visualizes data but also provides actionable insights. Using the Service Map, you can:<p><pre><code> - View latencies and RPS between services.
- Detect zombie services and underperforming SQL queries.
- Monitor golden signals, such as 5xx status codes.
</code></pre>
In addition, Alaz can capture system resources like CPU, Memory, Disk, and Network through the Prometheus Node Exporter, which is embedded in the agent.<p>Setting up is straightforward: just install Alaz as a DaemonSet, and the platform will handle the rest.<p>Finally, the combination of Alaz and Ddosify Performance Testing makes it possible to do load testing and simultaneously monitor the system to find bottlenecks instantly.<p>For those interested, check out Alaz on GitHub: <a href="https://github.com/ddosify/alaz">https://github.com/ddosify/alaz</a><p>Your feedback would be greatly appreciated!