The best Hacker News stories from Show from the past day
Latest posts:
Let's build an end-to-end encrypted data store
Show HN: Lockable – sync locks for distributed systems
Hi guys, creator of lockable here - the easiest way to think of lockable is as `flock` for when you don’t have a shared file system. You can use it to control concurrent access to resources or to ensure only a single instance of a process runs at any given time.<p>Your processes can acquire, refresh and release locks via simple HTTP requests, so it’s language/framework agnostic. E.g. with `curl`:<p><pre><code> $ curl https://lockable.dev/api/acquire/my-lock-name
{
"response": true //or false, if the lock wasn’t available
}
$ curl https://lockable.dev/api/release/my-lock-name
</code></pre>
There’s also a Python client[0], which makes using the service a more pleasant experience.<p>Feel free to play around, the free tier is fully functional. Happy to hear any feedback you might have.<p>[0]: <a href="https://docs.lockable.dev/en/latest/python-client/" rel="nofollow">https://docs.lockable.dev/en/latest/python-client/</a>
Show HN: Lockable – sync locks for distributed systems
Hi guys, creator of lockable here - the easiest way to think of lockable is as `flock` for when you don’t have a shared file system. You can use it to control concurrent access to resources or to ensure only a single instance of a process runs at any given time.<p>Your processes can acquire, refresh and release locks via simple HTTP requests, so it’s language/framework agnostic. E.g. with `curl`:<p><pre><code> $ curl https://lockable.dev/api/acquire/my-lock-name
{
"response": true //or false, if the lock wasn’t available
}
$ curl https://lockable.dev/api/release/my-lock-name
</code></pre>
There’s also a Python client[0], which makes using the service a more pleasant experience.<p>Feel free to play around, the free tier is fully functional. Happy to hear any feedback you might have.<p>[0]: <a href="https://docs.lockable.dev/en/latest/python-client/" rel="nofollow">https://docs.lockable.dev/en/latest/python-client/</a>
Show HN: Lockable – sync locks for distributed systems
Hi guys, creator of lockable here - the easiest way to think of lockable is as `flock` for when you don’t have a shared file system. You can use it to control concurrent access to resources or to ensure only a single instance of a process runs at any given time.<p>Your processes can acquire, refresh and release locks via simple HTTP requests, so it’s language/framework agnostic. E.g. with `curl`:<p><pre><code> $ curl https://lockable.dev/api/acquire/my-lock-name
{
"response": true //or false, if the lock wasn’t available
}
$ curl https://lockable.dev/api/release/my-lock-name
</code></pre>
There’s also a Python client[0], which makes using the service a more pleasant experience.<p>Feel free to play around, the free tier is fully functional. Happy to hear any feedback you might have.<p>[0]: <a href="https://docs.lockable.dev/en/latest/python-client/" rel="nofollow">https://docs.lockable.dev/en/latest/python-client/</a>
Show HN: Lockable – sync locks for distributed systems
Hi guys, creator of lockable here - the easiest way to think of lockable is as `flock` for when you don’t have a shared file system. You can use it to control concurrent access to resources or to ensure only a single instance of a process runs at any given time.<p>Your processes can acquire, refresh and release locks via simple HTTP requests, so it’s language/framework agnostic. E.g. with `curl`:<p><pre><code> $ curl https://lockable.dev/api/acquire/my-lock-name
{
"response": true //or false, if the lock wasn’t available
}
$ curl https://lockable.dev/api/release/my-lock-name
</code></pre>
There’s also a Python client[0], which makes using the service a more pleasant experience.<p>Feel free to play around, the free tier is fully functional. Happy to hear any feedback you might have.<p>[0]: <a href="https://docs.lockable.dev/en/latest/python-client/" rel="nofollow">https://docs.lockable.dev/en/latest/python-client/</a>
Show HN: A central bank simulator game with a realistic economic model
Show HN: A central bank simulator game with a realistic economic model
Show HN: A central bank simulator game with a realistic economic model
Show HN: A central bank simulator game with a realistic economic model
Show HN: A central bank simulator game with a realistic economic model
Show HN: A central bank simulator game with a realistic economic model
Show HN: A central bank simulator game with a realistic economic model
Show HN: IoT device to warn you of a supernova hours before Earth is destroyed
Show HN: Recut automatically removes silence from videos – built with Tauri
I released a new version of Recut recently, rewritten from the ground up using Rust, Svelte, Tauri, TypeScript, and Tailwind (RUSTTT stack for the win!). It's the first app I've built with Tauri and I've really enjoyed it.<p>Some back story: Recut is a tool I built to speed up my screencast editing workflow. It's like a lightweight single-purpose video editor. It chops out the pauses, with some knobs to tweak how closely it cuts and what it leaves in, and lets you get a live preview of what it'll look and sound like with the cuts applied. It can then export to a handful of other editors, nondestructively, so that you can use the full capabilities of a "real" video editor.<p>It was originally a native Mac app written in Swift, and people kept asking for a Windows version. I had learned Swift and macOS development to build it originally. So as a solo developer, I had some choices to make. Keep it Mac-only? Learn <i>another</i> whole language + UI framework, rebuild the app, and maintain two codebases? Rebuild the app with a cross-platform toolkit?<p>I'd had experience with Qt and C++ in years past, but I honestly didn't love the idea of getting back into C++ and dealing with the inevitable hard-to-debug segfaults. I'd had more recent experience as a web developer, but I was worried about performance bottlenecks. I actually started down the path of building Recut in Electron and Rust (using NAPI-RS for bindings) and it looked promising, but I was still worried about the bloat of Electron.<p>A few months in, I took a closer look at Tauri, and ported the whole app from Electron in a week or so. Most of the heavy lifting was already in Rust, and the UI stuff pretty much "just worked". The biggest change was the bindings between JS and Rust.<p>Working with Tauri has been nice. I especially like their "State" system, which gives you an easy way to keep app-wide state on the Rust side, and inject specific parts of it into functions as-needed. I also really like how easy it is to write a Rust function and expose it to JS. The process model feels a lot easier to work with compared to Electron's split between renderer and main and preload, where you have to pay the cost of passing messages between them lest you ruin the security. Tauri's message-passing has a decent amount of overhead too, but I dealt with that by avoiding sending large amounts of data between JS <-> Rust and it's been fine.<p>The Tauri folks on Discord were a big help too (shout out to Fabian for the help when I ran into weird edge cases). I think Tauri has a bright future! Definitely worth a look if you know web tech and want to make cross-platform apps.
Show HN: Recut automatically removes silence from videos – built with Tauri
I released a new version of Recut recently, rewritten from the ground up using Rust, Svelte, Tauri, TypeScript, and Tailwind (RUSTTT stack for the win!). It's the first app I've built with Tauri and I've really enjoyed it.<p>Some back story: Recut is a tool I built to speed up my screencast editing workflow. It's like a lightweight single-purpose video editor. It chops out the pauses, with some knobs to tweak how closely it cuts and what it leaves in, and lets you get a live preview of what it'll look and sound like with the cuts applied. It can then export to a handful of other editors, nondestructively, so that you can use the full capabilities of a "real" video editor.<p>It was originally a native Mac app written in Swift, and people kept asking for a Windows version. I had learned Swift and macOS development to build it originally. So as a solo developer, I had some choices to make. Keep it Mac-only? Learn <i>another</i> whole language + UI framework, rebuild the app, and maintain two codebases? Rebuild the app with a cross-platform toolkit?<p>I'd had experience with Qt and C++ in years past, but I honestly didn't love the idea of getting back into C++ and dealing with the inevitable hard-to-debug segfaults. I'd had more recent experience as a web developer, but I was worried about performance bottlenecks. I actually started down the path of building Recut in Electron and Rust (using NAPI-RS for bindings) and it looked promising, but I was still worried about the bloat of Electron.<p>A few months in, I took a closer look at Tauri, and ported the whole app from Electron in a week or so. Most of the heavy lifting was already in Rust, and the UI stuff pretty much "just worked". The biggest change was the bindings between JS and Rust.<p>Working with Tauri has been nice. I especially like their "State" system, which gives you an easy way to keep app-wide state on the Rust side, and inject specific parts of it into functions as-needed. I also really like how easy it is to write a Rust function and expose it to JS. The process model feels a lot easier to work with compared to Electron's split between renderer and main and preload, where you have to pay the cost of passing messages between them lest you ruin the security. Tauri's message-passing has a decent amount of overhead too, but I dealt with that by avoiding sending large amounts of data between JS <-> Rust and it's been fine.<p>The Tauri folks on Discord were a big help too (shout out to Fabian for the help when I ran into weird edge cases). I think Tauri has a bright future! Definitely worth a look if you know web tech and want to make cross-platform apps.
Show HN: Recut automatically removes silence from videos – built with Tauri
I released a new version of Recut recently, rewritten from the ground up using Rust, Svelte, Tauri, TypeScript, and Tailwind (RUSTTT stack for the win!). It's the first app I've built with Tauri and I've really enjoyed it.<p>Some back story: Recut is a tool I built to speed up my screencast editing workflow. It's like a lightweight single-purpose video editor. It chops out the pauses, with some knobs to tweak how closely it cuts and what it leaves in, and lets you get a live preview of what it'll look and sound like with the cuts applied. It can then export to a handful of other editors, nondestructively, so that you can use the full capabilities of a "real" video editor.<p>It was originally a native Mac app written in Swift, and people kept asking for a Windows version. I had learned Swift and macOS development to build it originally. So as a solo developer, I had some choices to make. Keep it Mac-only? Learn <i>another</i> whole language + UI framework, rebuild the app, and maintain two codebases? Rebuild the app with a cross-platform toolkit?<p>I'd had experience with Qt and C++ in years past, but I honestly didn't love the idea of getting back into C++ and dealing with the inevitable hard-to-debug segfaults. I'd had more recent experience as a web developer, but I was worried about performance bottlenecks. I actually started down the path of building Recut in Electron and Rust (using NAPI-RS for bindings) and it looked promising, but I was still worried about the bloat of Electron.<p>A few months in, I took a closer look at Tauri, and ported the whole app from Electron in a week or so. Most of the heavy lifting was already in Rust, and the UI stuff pretty much "just worked". The biggest change was the bindings between JS and Rust.<p>Working with Tauri has been nice. I especially like their "State" system, which gives you an easy way to keep app-wide state on the Rust side, and inject specific parts of it into functions as-needed. I also really like how easy it is to write a Rust function and expose it to JS. The process model feels a lot easier to work with compared to Electron's split between renderer and main and preload, where you have to pay the cost of passing messages between them lest you ruin the security. Tauri's message-passing has a decent amount of overhead too, but I dealt with that by avoiding sending large amounts of data between JS <-> Rust and it's been fine.<p>The Tauri folks on Discord were a big help too (shout out to Fabian for the help when I ran into weird edge cases). I think Tauri has a bright future! Definitely worth a look if you know web tech and want to make cross-platform apps.
Show HN: I made a site that shows jobs where you can work pseudonymously
Show HN: I made a site that shows jobs where you can work pseudonymously
Show HN: I made a site that shows jobs where you can work pseudonymously
Show HN: Plain Text Cryptocurrency Prices