Author here! :) This article is me sharing something that made me really happy, wanting to show others how they can do the same.
I see some comments pointing out that the clock wouldn't need to run in the browser. I picked this option to make it simple for folks around me to quickly prototype their own clock faces. This isn't supposed to be the cheapest or most efficient implementation, either; feel free to build your own LCD clock and then blog about how you did it!
Indeed. Don't be dissuaded by Hacker News commenters. All the naysayers here doesn't seem to have published their own blog posts about how they built circular LCD clocks with Arduino ESP32 and low level programming or whatever they fancy as "good enough".
Browser based rendering that allows people to easily make new watch faces with JS and SVG is a perfectly reasonable platform for a nifty project like this. I think your watch faces look neat.
Its a genuinely nice idea, I do love the second clock face you've done, the sort of "fuel gauge" one. I think a great next step would be some sort of gallery of clock faces that people can use and contribute to, based on whatever code you've used to create them
Could you give a little more information about the 'stack' you're using to display the clock?
From this:
> This minicomputer will power the clock. The Pi 3B+ seems just enough to render some simple animations.
> I also tried with a Raspberry Pi Zero 2, but 512 MB of RAM were too little to run a modern browser, sadly. I think a Pi 4 might be a good sweet spot between processing power and price, currently.
...are you essentially displaying a full-screen browser window in the default Raspbian window manager and then running local Javascript for the clock itself?
In general not really, but I do understand why it's a bit underwhelming to buy the clock upfront.
With that said, the project is really cool and showcases the different watch faces well. For me that's the most interesting part, not how I construct a round LCD screen.
Gladly! Automerge on its own is just a library that makes local-first data structures possible.
Ethersync uses this library for a concrete purpose: Collaborating on local text files. We wrote editor plugins and a daemon that runs on your computer, to enable you to type in plaintext files/source code together, from the editors you already know.
Yep! Daemons on multiple computers speak the Automerge sync protocol. Between daemon and editors, we use a "one-sided operational transform" approach, in an attempt to offload as much work as possible into the daemon (and out of the plugin). If you're interested, you can learn more about Ethersync's architecture in the documentation: https://ethersync.github.io/ethersync/
Hey :) I don't know how familiar you are with Nix, but the process I describe in the blog post works almost exactly as you describe:
The command `nix shell nixpkgs#qemu` puts the qemu binaries in your $PATH temporarily, you can hit Ctrl-D to leave that environment. And the Nix flake I show works similarly – the specified tools are only available to you when entering the directory where the .envrc file is.
These techniques work without other special shell/terminal software, and you can use Nix on any operating system, not only on NixOS. This is my favorite introduction to the ecosystem, I think you might like it: https://zero-to-nix.com
Author here :) I paid $70 for the section from New York to Chicago, because I slept in the coach section there. For the section from Chicago to Emeryville, I treated myself to a roomette, and paid $775 – so $845 in total.
Yeah, I also think it's unfortunate that flying is so much more affordable. But, as another passenger said on the train, taking the train is also three times the experience!
And when you have a sleeper ticket, three meals a day are included.
And you might be right about that ageism comment… didn't realize more efficient encodings were a thing now! Thanks for your work! :)