The best Hacker News stories from Show from the past week
Latest posts:
Show HN: We made a small and cheap network switch
Hello, we're Max and Byran from MUREX Robotics, a high school robotics team from Exeter, New Hampshire. We are super proud to have made this open source piece of technology! It is only 6.9 dollars (actually!) from JLCPCB :) I hope you like it.<p>You can find us at byran@mrx.ee and max@mrx.ee as well if you have any questions.<p>We will be putting a small run of these boards for sale somewhere (we have <25 units of stock), probably for $10+shipping. Let us know if you're interested in more!<p>Board files for everything we make is here:
<a href="https://github.com/murexrobotics/electrical-2024">https://github.com/murexrobotics/electrical-2024</a>
Show HN: Shpool, a Lightweight Tmux Alternative
shpool is a terminal session persistence tool developed internally at google to support remote workflows, which we have open sourced.
Show HN: Restate – Low-latency durable workflows for JavaScript/Java, in Rust
We'd love to share our work with you: Restate, a system for workflows-as-code (durable execution). With SDKs in JS/Java/Kotlin and a lightweight runtime built in Rust/Tokio.<p><a href="https://github.com/restatedev/">https://github.com/restatedev/</a>
<a href="https://restate.dev/" rel="nofollow">https://restate.dev/</a><p>It is free and open, SDKs are MIT-licensed, runtime permissive BSL (basically just the minimal Amazon defense).
We worked on that for a bit over a year. A few points I think are worth mentioning:<p>- Restate's runtime is a single binary, self-contained, no dependencies aside from a durable disk. It contains basically a lightweight integrated version of a durable log, workflow state machine, state storage, etc. That makes it very compact and easy to run both on a laptop and a server.<p>- Restate implements durable execution not only for workflows, but the core building block is durable RPC handlers (or event handler). It adds a few concepts on top of durable execution, like virtual objects (turn RPC handlers into virtual actors), durable communication, and durable promises. Here are more details: <a href="https://restate.dev/programming-model" rel="nofollow">https://restate.dev/programming-model</a><p>- Core design goal for APIs was to keep a familiar style. An app developer should look at Restate examples and say "hey, that looks quite familiar". You can let us know if that worked out.<p>- Basically every operation (handler invocation, step, ...) goes through a consensus layer, for a high degree of resilience and consistency.<p>- The lightweight log-centric architecture gives Restate still good latencies: For example around 50ms roundtrip (invoke to result) for a 3-step durable workflow handler (Restate on EBS with fsync for every step).<p>We'd love to hear what you think of it!
Show HN: Revideo – Create Videos with Code
Hey HN! We’re building Revideo (<a href="https://github.com/redotvideo/revideo">https://github.com/redotvideo/revideo</a>), an open source framework for programmatic video editing.<p>Revideo lets you create video templates in Typescript and render them with dynamic inputs through an API. It also comes with a <Player /> component that lets you preview your projects in the browser and integrate video editing functionality into web apps.<p>The project is useful for anyone who wants to build apps that automate certain video editing tasks. A lot of companies in the space build their own custom stack for this, like Opus (<a href="https://www.opus.pro/" rel="nofollow">https://www.opus.pro/</a>), which automatically creates highlight videos from podcasts, or Clueso (<a href="https://www.clueso.io/">https://www.clueso.io/</a>), which lets you create stutter-free product walkthroughs with AI voiceovers.<p>Revideo is based on the HTML Canvas API and is forked from Motion Canvas (<a href="https://github.com/motion-canvas/motion-canvas">https://github.com/motion-canvas/motion-canvas</a>), a tool that lets you create canvas animations. While Motion Canvas is intended by its maintainer to exclusively be a standalone application [1], we have turned Revideo into a library that developers can integrate into their apps, while specifically focusing on video use cases. To support this, we have, among other things, added the ability to do headless rendering, made video rendering much faster and added support for syncing and exporting audio.<p>We’re excited about programmatic video editing because of the possibility to automate content creation with AI. One of our users is building StoriesByAngris (<a href="https://storiesbyangris.com/" rel="nofollow">https://storiesbyangris.com/</a>), which lets you create video-based RPG stories from language prompts. Other users are marketing-tech companies that help their customers generate and A/B test different versions of video ads.<p>We started to work on video tooling because we ourselves explored a bunch of product ideas in the space of AI-based video creation earlier this year. For example, we built apps that automatically create educational short videos and tinkered with apps that let you create memes.<p>While building these products, we were frustrated with the video editing frameworks we used: Moviepy (<a href="https://github.com/Zulko/moviepy">https://github.com/Zulko/moviepy</a>), which we used initially, doesn’t work in the browser, so we’d often have to wait minutes for a video to render just to test our code changes. Remotion (<a href="https://github.com/remotion-dev/remotion">https://github.com/remotion-dev/remotion</a>), which we switched to later, is pretty good, but we didn’t want to rely on it as it is not FOSS (source-available only).<p>We had already followed Motion Canvas for some time and really liked it, so we thought that extending it would get us to something useful much faster than building an animation library from scratch. We initially tried to build Revideo as a set of Motion Canvas plugins, but we soon realized that the changes we were making were too drastic and far too complex to fit into plugins. This is why we ultimately created a fork. We’re unsure if this is the right way to go in the long term, and would prefer to find a way to build Revideo without feeling like we’re dividing the community - if you have experience with this (keeping forks with complex changes in sync with upstream) or other suggestions on how to solve this, we’d love your input.<p>Our current focus is improving the open source project. In the long term, we want to make money by building a rendering service for developers building apps with Revideo.<p>We’d love to hear your feedback and suggestions on what we can improve! You can find our repo at <a href="https://github.com/redotvideo/revideo">https://github.com/redotvideo/revideo</a>, and you can explore example projects at <a href="https://github.com/redotvideo/examples">https://github.com/redotvideo/examples</a><p>[1] “Motion Canvas is not a normal npm package. It's a standalone tool that happens to be distributed via npm.” - <a href="https://github.com/orgs/motion-canvas/discussions/1015">https://github.com/orgs/motion-canvas/discussions/1015</a>
Show HN: Unforget, the note-taking app I always wanted: offline first, encrypted
Hi HN! I created Unforget out of years of frustration with Google Keep and the lack of alternative that met all my needs. I hope you find it useful too!<p>Features include:<p><pre><code> - import from Google Keep
- offline first including search
- sync when online
- own your data and fully encrypted
- Desktop, mobile, web
- lightweight, progressive web app without Electron.js
- markdown support
- programmable with public APIs
- open source [1]
</code></pre>
While I still use org mode for long-form notes with lots of code, Unforget has become my go-to for quickly jotting down ideas and to-do lists after migrating the thousands of notes I had on Google Keep.<p>In addition, I'm thrilled to announce the opening of our software agency, Computing Den [2]. We specialize in helping businesses transition from legacy software, manual workflows, and Excel spreadsheets to modern, automated systems. Please get it touch to discuss how we can help you or if you wish to join our team.<p>[1] <a href="https://github.com/computing-den/unforget">https://github.com/computing-den/unforget</a><p>[2] <a href="https://computing-den.com" rel="nofollow">https://computing-den.com</a>
ARC Prize – a $1M+ competition towards open AGI progress
Hey folks! Mike here. Francois Chollet and I are launching ARC Prize, a public competition to beat and open-source the solution to the ARC-AGI eval.<p>ARC-AGI is (to our knowledge) the only eval which measures AGI: a system that can efficiently acquire new skill and solve novel, open-ended problems. Most AI evals measure skill directly vs the acquisition of new skill.<p>Francois created the eval in 2019, SOTA was 20% at inception, SOTA today is only 34%. Humans score 85-100%. 300 teams attempted ARC-AGI last year and several bigger labs have attempted it.<p>While most other skill-based evals have rapidly saturated to human-level, ARC-AGI was designed to resist “memorization” techniques (eg. LLMs)<p>Solving ARC-AGI tasks is quite easy for humans (even children) but impossible for modern AI. You can try ARC-AGI tasks yourself here: <a href="https://arcprize.org/play" rel="nofollow">https://arcprize.org/play</a><p>ARC-AGI consists of 400 public training tasks, 400 public test tasks, and 100 secret test tasks. Every task is novel. SOTA is measured against the secret test set which adds to the robustness of the eval.<p>Solving ARC-AGI tasks requires no world knowledge, no understanding of language. Instead each puzzle requires a small set of “core knowledge priors” (goal directedness, objectness, symmetry, rotation, etc.)<p>At minimum, a solution to ARC-AGI opens up a completely new programming paradigm where programs can perfectly and reliably generalize from an arbitrary set of priors. At maximum, unlocks the tech tree towards AGI.<p>Our goal with this competition is:<p>1. Increase the number of researchers working on frontier AGI research (vs tinkering with LLMs). We need new ideas and the solution is likely to come from an outsider!
2. Establish a popular, objective measure of AGI progress that the public can use to understand how close we are to AGI (or not). Every new SOTA score will be published here: <a href="https://x.com/arcprize" rel="nofollow">https://x.com/arcprize</a>
3. Beat ARC-AGI and learn something new about the nature of intelligence.<p>Happy to answer questions!
Show HN: Crawl a modern website to a zip, serve the website from the zip
Show HN: Probabilistic Tic-Tac-Toe
Show HN: Markdown HN profiles at {user}.at.hn
Very opportunistic toy project as I saw the domain was up for grabs: 'at.hn' is a little site where people can have their own subdomains for whatever their HN username is (opt-in only by adding a slug to your bio). It doesn't really do much. Just shows your HN bio rendered as markdown plus meta stuff. I'm thinking of adding an aggregated user listing on the homepage so people can explore profiles. There's a bunch of interesting people on HN but discoverability is a bit longwinded. I'm wondering what other features people want. Otherwise shall likely leave it as-is. I remember hnbadges was a thing for a while, but can't remember what happened to it. Did people like that? Anyway, at.hn's on github if people want to contribute. - <a href="https://github.com/padolsey/at.hn">https://github.com/padolsey/at.hn</a>
Show HN: Markdown HN profiles at {user}.at.hn
Very opportunistic toy project as I saw the domain was up for grabs: 'at.hn' is a little site where people can have their own subdomains for whatever their HN username is (opt-in only by adding a slug to your bio). It doesn't really do much. Just shows your HN bio rendered as markdown plus meta stuff. I'm thinking of adding an aggregated user listing on the homepage so people can explore profiles. There's a bunch of interesting people on HN but discoverability is a bit longwinded. I'm wondering what other features people want. Otherwise shall likely leave it as-is. I remember hnbadges was a thing for a while, but can't remember what happened to it. Did people like that? Anyway, at.hn's on github if people want to contribute. - <a href="https://github.com/padolsey/at.hn">https://github.com/padolsey/at.hn</a>
Show HN: E-Paper 7-color display showing the current weather
A hobby project of mine that was surprisingly easy to put together! I love waking up and seeing the freshly generated image.
Show HN: E-Paper 7-color display showing the current weather
A hobby project of mine that was surprisingly easy to put together! I love waking up and seeing the freshly generated image.
Show HN: 2d web paddle game
Simple retro paddle arcade game written in Javascript, using good ol' Canvas.
Show HN: Laudspeaker – Open-source mobile push, SMS and email automation
Hey HN, we are sharing again, after a year of updates!<p>Laudspeaker (<a href="https://laudspeaker.com/">https://laudspeaker.com/</a>) is an open source customer engagement suite (also called marketing automation software). If you've used tools like Braze, One Signal, Airship, Iterable, Customer.io or some others, Laudspeaker is an alternative to these. Here is a quick demo: <a href="https://www.loom.com/share/4b309390ee274ea491981e1394e9abc4" rel="nofollow">https://www.loom.com/share/4b309390ee274ea491981e1394e9abc4</a>. And here is a link to sign up and try free (no cc needed): <a href="https://app.laudspeaker.com/signup">https://app.laudspeaker.com/signup</a>.<p>Or if you prefer to just jump in, go to <a href="https://app.laudspeaker.com/login">https://app.laudspeaker.com/login</a> and use this test account:<p><pre><code> email: test94@laudspeaker.com
pw: test93@laudspeaker.com
</code></pre>
The main things Laudspeaker lets you do are:<p>1. Define 'segments': which of your users should receive messages.<p>2. Define 'messaging journeys': when, where and with which channels you want to reach users. Right now we support push, email, SMS, and soon we'll also include in-app messages and WhatsApp.<p>For example, one customer of ours runs a journey like this: "Wait for a user to complete onboarding on our mobile app, then send a welcome push. If they complete an action the next day on the app, stop sending messages, otherwise send a followup email."<p>There are quite a few big updates since our last Show HN (<a href="https://news.ycombinator.com/item?id=34835559">https://news.ycombinator.com/item?id=34835559</a>):<p>We now have a mobile SDK for sending and receiving push notifications. We have revamped the journey builder, and made our segment builder much more comprehensive. Our application is also a lot more battle tested - we are deployed with a major fintech in Asia and are sending XX million messages a week to more than x million users.<p>We've seen a lot of demand from consumer focused apps and websites who find most of the existing solutions' pricing models prohibitively expensive so please reach out if that sounds like you. We have successfully migrated people over from Braze, customer io and others.<p>If you're interested in the mobile SdK, see our tutorial: <a href="https://laudspeaker.com/docs/getting-started/setting-up-mobile-push">https://laudspeaker.com/docs/getting-started/setting-up-mobi...</a>,<p>and sample apps: <a href="https://github.com/laudspeaker/android-sample-app">https://github.com/laudspeaker/android-sample-app</a>, <a href="https://github.com/laudspeaker/ios-sample-app">https://github.com/laudspeaker/ios-sample-app</a>.<p>Our Github is <a href="https://github.com/laudspeaker/laudspeaker">https://github.com/laudspeaker/laudspeaker</a>. Try it out for free at <a href="https://app.laudspeaker.com/signup">https://app.laudspeaker.com/signup</a>.<p>We'd love to hear your feedback and comments!
Show HN: Foosbar – My autonomous foosball-playing robot
Show HN: Allocate poker chips optimally with mixed-integer nonlinear programming
Every time I play a casual cash poker game with friends, we spend the first several minutes struggling to figure out chip denominations. I built this to automate that process.<p>Try it out here (the submitted link goes to the GitHub repo): <a href="https://jstrieb.github.io/poker-chipper/" rel="nofollow">https://jstrieb.github.io/poker-chipper/</a><p>It turns out that picking chip denominations optimally—such that as many chips are distributed as possible, and such that the denominations are nice—is hard (in the computational complexity sense). Upon reflection, the problem seemed to be a perfect fit for constrained optimization.<p>I first got a CLI prototype working with Z3 (an SMT solver with optimization capabilities <a href="https://github.com/Z3Prover/z3">https://github.com/Z3Prover/z3</a>) in Python. Then, I cross-compiled SCIP (<a href="https://www.scipopt.org/" rel="nofollow">https://www.scipopt.org/</a>) to web assembly, and ported my code to use SCIP instead of Z3 so it could run in the browser.<p>The web interface is designed to be fast and easy to use on desktop and mobile.<p>I would love to answer questions and discuss design choices. I'm also open to feedback and bug reports. Thanks for taking a look!
Show HN: Tunnelling TCP through a file
This program can be used to tunnel TCP connections through a file.<p>People have used it for interesting things:<p>- Bridging connections which would otherwise be blocked by a firewall<p>- Tunneling through RDP (similar to an SSH tunnel)<p>- Exposing a localhost web server to others<p>Key features I put effort into:<p>1. The shared file is restarted every 10 MB, so it doesn't grow indefinitely.<p>2. Optimisations for latency & bandwidth. (800 Mbps on a Gigabit LAN. 108 Mbps if file tunneling through RDP)<p>3. Synchronisation between two sides (each side can be started and restarted in any order)<p>I'd love to hear about any weird and wonderful uses you might have for it.<p>Thanks, Fidel
Show HN: Brioche – A new Nix-like package manager
This is a project I've wanted to write for a long time now. I really love the ideas from Nix and I still have a ton of respect for the project, but Nix-the-language never felt intuitive to me and I wanted something with more approachable tooling (although this was circa 2016, so I'm sure Nix has improved a lot since then too-- that was before Flakes were around!)<p>Anyway, I started on the current iteration of Brioche about 6 months ago, and I finally cut an initial release. I'd still consider this a "technical preview" version (performance especially is pretty painful, so that'll be a focus of mine in the coming weeks). But it's finally at a point where it does work end-to-end and folks can take it for a test drive!
Show HN: 10 Years to Build a Free SQL Editor
I have spent large parts of the last 10+ years building an SQL Editor. The tool is targeted at data analysts, a lot of effort has gone into charting, visualizing and excel export. If this sounds useful to you, it's Free, please give it a try and let me know any feedback.
Show HN: I made a tiny camera with super long battery life
Hey HN!<p>A few years ago someone kept trying to steal my motorcycle, so I decided to make a small camera with really long battery life to catch them.<p>The hardware/software is totally open source, but the companion app only supports macOS currently. (I'm a big fan of native apps, and didn't want to block releasing on Linux/Windows support.)<p>I wrote some blog posts about the process:<p>PCB design: <a href="https://toaster.llc/blog/pcb" rel="nofollow">https://toaster.llc/blog/pcb</a><p>Enclosure design: <a href="https://toaster.llc/blog/enclosure" rel="nofollow">https://toaster.llc/blog/enclosure</a><p>Image pipeline: <a href="https://toaster.llc/blog/image-pipeline" rel="nofollow">https://toaster.llc/blog/image-pipeline</a><p>Rainproofing: <a href="https://toaster.llc/blog/rainproofing" rel="nofollow">https://toaster.llc/blog/rainproofing</a><p>Source: <a href="https://github.com/toasterllc/Photon">https://github.com/toasterllc/Photon</a>