The best Hacker News stories from Show from the past week
Latest posts:
Show HN: Marmite – Zero-config static site generator
Just run `marmite` on a folder full of markdown files and get a full website/blog running in seconds.<p>"I'm a big user of other SSGs but it is frequently frustrating that it takes so much setup to get started.
Just having a directory of markdown files and running a single command sounds really useful.
— marmite user."
Show HN: Trench – Open-source analytics infrastructure
Hey HN! I want to share a new open source project I've been working on called Trench (<a href="https://trench.dev" rel="nofollow">https://trench.dev</a>). It's open source analytics infrastructure for tracking events, page views, and identifying users, and it's built on top of ClickHouse and Kafka.<p><a href="https://github.com/frigadehq/trench">https://github.com/frigadehq/trench</a><p>I built Trench because the Postgres table we used for tracking events at our startup (<a href="http://frigade.com/">http://frigade.com/</a>) was getting expensive and becoming a performance bottleneck as we scaled to millions of end users.<p>Many companies run into the same problem as us (e.g. Stripe, Heroku: <a href="https://brandur.org/fragments/events" rel="nofollow">https://brandur.org/fragments/events</a>). They often start by adding a basic events table to their relational database, which works at first, but can become an issue as the application scales. It’s usually the biggest table in the database, the slowest one to query, and the longest one to back up.<p>With Trench, we’ve put together a single Docker image that gives you a production-ready tracking event table built for scale and speed. When we migrated our tracking table from Postgres to Trench, we saw a 42% reduction in cost to serve on our primary Postgres cluster and all lag spikes from autoscaling under high traffic were eliminated.<p>Here are some of the core features:<p>* Fully compliant with the Segment tracking spec e.g. track(), identify(), group(), etc.<p>* Can handle thousands of events per second on a single node<p>* Query tracking data in real-time with read-after-write guarantees<p>* Send data anywhere with throttled and batched webhooks<p>* Single production-ready docker image. No need to manage and roll your own Kafka/ClickHouse/Nodejs/etc.<p>* Easily plugs into any cloud hosted ClickHouse and Kafka solutions e.g. ClickHouse Cloud, Confluent<p>Trench can be used for a range of use cases. Here are some possibilities:<p>1. Real-Time Monitoring and Alerting: Set up real-time alerts and monitoring for your services by tracking custom events like errors, usage spikes, or specific user actions and sending that data anywhere with Trench’s webhooks<p>2. Event Replay and Debugging: Capture all user interactions in real-time for event replay<p>3. A/B Testing Platform: Capture events from different users and groups in real time. Segment users by querying in real time and serve the right experiences to the right users<p>4. Product Analytics for SaaS Applications: Embed Trench into your existing SaaS product to power user audit logs or tracking scripts on your end-users’ websites<p>5. Build a custom RAG model: Easily query event data and give users answers in real-time. LLMs are really good at writing SQL<p>The project is open-source and MIT-licensed. If there’s interest, we’re thinking about adding support for Elastic Search, direct data integrations (e.g. Redshift, S3, etc.), and an admin interface for creating queries, webhooks, etc.<p>Have you experienced the same issues with your events tables? I'd love to hear what HN thinks about the project.
Show HN: Mdx – Execute your Markdown code blocks, now in Go
Hey HN! I recently came across makedown here on HN and loved the concept. Wanting to learn Go, I thought this could be a great starter project - so I started working on my own Go implementation, which I’m calling mdx (<a href="https://github.com/dim0x69/mdx">https://github.com/dim0x69/mdx</a>).<p>Key Features:<p>- Define dependencies between commands<p>- Supports shebangs<p>- Ability to pass arguments to code blocks<p>Would love feedback and thoughts!<p>Ref. makedown: <a href="https://github.com/tzador/makedown">https://github.com/tzador/makedown</a>. Thanks for the idea! :)
Show HN: Satoshi9000 analog BTC key generator (mechanical)
I built this machine so I could generate Bitcoin keys that I could trust. Air-gapped and simple to use and understand (mechanical).<p>The Satoshi 9000 demo: <a href="https://youtu.be/bJiOia5PoGE" rel="nofollow">https://youtu.be/bJiOia5PoGE</a><p>The key value proposition of the machine is that it generates analog randomness in the physical world and converts it into digital (1’s and 0’s) randomness. Seamlessly.<p>But it occurs to me that it may have other uses beyond crypto keys for your own use, such as:
* Randomized clinical trials. Clinical trials need a high degree of transparency for ethical reasons; also, for legal reasons should it come to light after the trial has ended that patient selection and treatment selection was not random or in some way biased (say, by the researchers themselves). The machine described herein can provide that transparency to young and old patients, technical and non- technical.
* Non-technical management. Many network engineers in need of security keys have bosses that are non-technical. Such managers might prefer security keys (and their generation) which are easier for them to understand.
* Estate planning. Suppose members of a family were to inherit digital assets (such as
Bitcoin, for example). Not all members of the family are technical and understand Bitcoin. However, each will still need to generate a secure Bitcoin key to receive their share of the inheritance. The machine described herein might help in that task because its source of randomness is more easily understood by laypeople and each can generate their own private key in private (in isolation with the machine).
* Anywhere where the users have to have an intuitive understanding of how the randomness is being created; whether they are 5 years old, or 95 years old, and all ages in between.<p>I'm curious to know if any of the folks over at HN can think of other use cases?
Show HN: Satoshi9000 analog BTC key generator (mechanical)
I built this machine so I could generate Bitcoin keys that I could trust. Air-gapped and simple to use and understand (mechanical).<p>The Satoshi 9000 demo: <a href="https://youtu.be/bJiOia5PoGE" rel="nofollow">https://youtu.be/bJiOia5PoGE</a><p>The key value proposition of the machine is that it generates analog randomness in the physical world and converts it into digital (1’s and 0’s) randomness. Seamlessly.<p>But it occurs to me that it may have other uses beyond crypto keys for your own use, such as:
* Randomized clinical trials. Clinical trials need a high degree of transparency for ethical reasons; also, for legal reasons should it come to light after the trial has ended that patient selection and treatment selection was not random or in some way biased (say, by the researchers themselves). The machine described herein can provide that transparency to young and old patients, technical and non- technical.
* Non-technical management. Many network engineers in need of security keys have bosses that are non-technical. Such managers might prefer security keys (and their generation) which are easier for them to understand.
* Estate planning. Suppose members of a family were to inherit digital assets (such as
Bitcoin, for example). Not all members of the family are technical and understand Bitcoin. However, each will still need to generate a secure Bitcoin key to receive their share of the inheritance. The machine described herein might help in that task because its source of randomness is more easily understood by laypeople and each can generate their own private key in private (in isolation with the machine).
* Anywhere where the users have to have an intuitive understanding of how the randomness is being created; whether they are 5 years old, or 95 years old, and all ages in between.<p>I'm curious to know if any of the folks over at HN can think of other use cases?
Show HN: RF Hunter – Find hidden cameras and other devices
This project is an RF Signal Scanner built using an ESP32, AD8317 RF detector, and various other components. It's designed to detect and measure RF signals in the environment and display the signal strength on an OLED display. It's useful to find hidden cameras, wiretapping devices, and other RF-enabled devices.
Show HN: RF Hunter – Find hidden cameras and other devices
This project is an RF Signal Scanner built using an ESP32, AD8317 RF detector, and various other components. It's designed to detect and measure RF signals in the environment and display the signal strength on an OLED display. It's useful to find hidden cameras, wiretapping devices, and other RF-enabled devices.
Show HN: RF Hunter – Find hidden cameras and other devices
This project is an RF Signal Scanner built using an ESP32, AD8317 RF detector, and various other components. It's designed to detect and measure RF signals in the environment and display the signal strength on an OLED display. It's useful to find hidden cameras, wiretapping devices, and other RF-enabled devices.
Show HN: 2048 turned 10 this year, I built an updated version to celebrate
Hi all! My name is Gabriele Cirulli, I’m the original creator of 2048. Ten years ago, someone posted 2048 on HN[1] and suddenly it seemed like everyone was playing it. Back then, I wrote a bit about my experience during those weeks[2].<p>Even after all these years, that experience still feels a bit surreal to me. I’m deeply grateful to everyone who connected with the game, whether in small or significant ways, and for the stories shared along the way. Some people expressed how they were going through tough times and found some comfort, however small, in playing 2048.<p>At the start of last year, I wanted to breathe new life into the game as it was starting to show its age. I quit my job last October to work on 2048 full time and spent a year building this new version (the original took just 5 days!). I wanted to pay tribute to what made 2048 great while modernizing and polishing the experience.<p>The idea of adding powerups came when Prime Gaming and I connected to see if we could create a special version of 2048 for their members, with some exclusive extras. Some of those powerups made it into the main game, though there’s still a Classic[3] mode just like the original for those who prefer a more hardcore experience. The old site is also still online[4].<p>2048 is now my full-time focus, and I’m excited about the ways it can keep improving. I wanted to share this update with the community where it all began, both for a bit of nostalgia and to hear your thoughts and feedback!<p>Thank you all so much!<p>— Gabriele<p>[1]: <a href="https://news.ycombinator.com/item?id=7373566">https://news.ycombinator.com/item?id=7373566</a><p>[2]: <a href="https://medium.com/@gabrielecirulli/2048-success-and-me-7dc664f7a9bd" rel="nofollow">https://medium.com/@gabrielecirulli/2048-success-and-me-7dc6...</a><p>[3]: <a href="https://play2048.co/classic" rel="nofollow">https://play2048.co/classic</a><p>[4]: <a href="https://classic.play2048.co" rel="nofollow">https://classic.play2048.co</a>
Show HN: 2048 turned 10 this year, I built an updated version to celebrate
Hi all! My name is Gabriele Cirulli, I’m the original creator of 2048. Ten years ago, someone posted 2048 on HN[1] and suddenly it seemed like everyone was playing it. Back then, I wrote a bit about my experience during those weeks[2].<p>Even after all these years, that experience still feels a bit surreal to me. I’m deeply grateful to everyone who connected with the game, whether in small or significant ways, and for the stories shared along the way. Some people expressed how they were going through tough times and found some comfort, however small, in playing 2048.<p>At the start of last year, I wanted to breathe new life into the game as it was starting to show its age. I quit my job last October to work on 2048 full time and spent a year building this new version (the original took just 5 days!). I wanted to pay tribute to what made 2048 great while modernizing and polishing the experience.<p>The idea of adding powerups came when Prime Gaming and I connected to see if we could create a special version of 2048 for their members, with some exclusive extras. Some of those powerups made it into the main game, though there’s still a Classic[3] mode just like the original for those who prefer a more hardcore experience. The old site is also still online[4].<p>2048 is now my full-time focus, and I’m excited about the ways it can keep improving. I wanted to share this update with the community where it all began, both for a bit of nostalgia and to hear your thoughts and feedback!<p>Thank you all so much!<p>— Gabriele<p>[1]: <a href="https://news.ycombinator.com/item?id=7373566">https://news.ycombinator.com/item?id=7373566</a><p>[2]: <a href="https://medium.com/@gabrielecirulli/2048-success-and-me-7dc664f7a9bd" rel="nofollow">https://medium.com/@gabrielecirulli/2048-success-and-me-7dc6...</a><p>[3]: <a href="https://play2048.co/classic" rel="nofollow">https://play2048.co/classic</a><p>[4]: <a href="https://classic.play2048.co" rel="nofollow">https://classic.play2048.co</a>
Show HN: 2048 turned 10 this year, I built an updated version to celebrate
Hi all! My name is Gabriele Cirulli, I’m the original creator of 2048. Ten years ago, someone posted 2048 on HN[1] and suddenly it seemed like everyone was playing it. Back then, I wrote a bit about my experience during those weeks[2].<p>Even after all these years, that experience still feels a bit surreal to me. I’m deeply grateful to everyone who connected with the game, whether in small or significant ways, and for the stories shared along the way. Some people expressed how they were going through tough times and found some comfort, however small, in playing 2048.<p>At the start of last year, I wanted to breathe new life into the game as it was starting to show its age. I quit my job last October to work on 2048 full time and spent a year building this new version (the original took just 5 days!). I wanted to pay tribute to what made 2048 great while modernizing and polishing the experience.<p>The idea of adding powerups came when Prime Gaming and I connected to see if we could create a special version of 2048 for their members, with some exclusive extras. Some of those powerups made it into the main game, though there’s still a Classic[3] mode just like the original for those who prefer a more hardcore experience. The old site is also still online[4].<p>2048 is now my full-time focus, and I’m excited about the ways it can keep improving. I wanted to share this update with the community where it all began, both for a bit of nostalgia and to hear your thoughts and feedback!<p>Thank you all so much!<p>— Gabriele<p>[1]: <a href="https://news.ycombinator.com/item?id=7373566">https://news.ycombinator.com/item?id=7373566</a><p>[2]: <a href="https://medium.com/@gabrielecirulli/2048-success-and-me-7dc664f7a9bd" rel="nofollow">https://medium.com/@gabrielecirulli/2048-success-and-me-7dc6...</a><p>[3]: <a href="https://play2048.co/classic" rel="nofollow">https://play2048.co/classic</a><p>[4]: <a href="https://classic.play2048.co" rel="nofollow">https://classic.play2048.co</a>
Show HN: Wall-mounted diffusion mirror that turns reflections into paintings
Show HN: Wall-mounted diffusion mirror that turns reflections into paintings
Show HN: Wall-mounted diffusion mirror that turns reflections into paintings
Show HN: Agent.exe, a cross-platform app to let 3.5 Sonnet control your machine
Show HN: Open-source Counter-Strike-like game
Show HN: Rust Web Framework
Hi everyone,<p>I've been "funemployed" for a few months and with all that free time and idle hands I wrote a full web framework (think Rails, not Flask) for Rust.<p>It's boring old MVC, has its own ORM, templates, background jobs, auth, websockets, migrations and more. If you're keen but don't feel like rewriting your app in a different language, Rwf has a WSGI server to run Django (or Flask) inside Rust [1], letting you migrate to Rust at your own pace without disrupting your website.<p>I think Rust makes a great prototyping and deploy straight to production language. Now it has yet another framework for y'all to play with.<p>Cheers!<p>[1] <a href="https://levkk.github.io/rwf/migrating-from-python/" rel="nofollow">https://levkk.github.io/rwf/migrating-from-python/</a>
Show HN: Epublifier – scrape pages (books, manuals) for offline reading
Show HN: HN Update – Hourly news broadcast of top HN stories
I feel like it was inevitable, with the recent buzz around NotebookLM. I'm just surprised that it hasn't been done yet.
Show HN: HN Update – Hourly news broadcast of top HN stories
I feel like it was inevitable, with the recent buzz around NotebookLM. I'm just surprised that it hasn't been done yet.