I never learned any C based languages, so it's been a challenge, but I've enjoyed learning the basics of bare-metal no_std rust on the esp32c3, with esp-rs and its support for embassy to help me get started!
I know bare metal programming is a learning exercise but i can say for 99% of use cases esphome is awesome. I just finished making a cat feeder a esphome smart device
Yes, I have several esphome devices. Very easy to use. Unfortunately the project is not written in a language that I know, and I strongly prefer projects in languages that are familiar to me.
Tried to migrate to Hugo from Jekyll multiple times and have bounced off every time. Don't really know Go very well, but better than Ruby, and used this as justification -- since dealing with Jekyll updates was sometimes a headache (I use GitHub Pages for free hosting and let them build things for me when I push updates).
Instead I eventually just created an environment in nix that had compatible dependency versions to what GitHub uses and have been pleased since.
After a decade of homebrew, a few years ago I got tired of their very grumpy maintainers and switched to nix-darwin + home-manager. I've been overall fairly happy, and for tinkerers would recommend giving it a shot. Admittedly I bounced off my first try a year before that.
A few of my favorite parts, which I see less represented in this thread so far:
- I simultaneously jumped into nixos on several Linux machines (starting with a few Pis for experimentation), and maintaining all of my systems with a single flake and mostly shared code is a dream come true.
- no more convoluted dotfile syncing, most of my scripts and aliases and bash config and binaries all sync together
- cross-building linux from Darwin -- including integration tests in a vm -- works surprisingly well, this is mostly just nix but nix-darwin has helpers that make this easier
- writing system services (launchd) on my Mac then converting them to a headless Linux machine (systemd) is generally very straightforward
- prefixing my path with GNU coreutils works well and saves me from many e.g. `sed` quirks, I get expected behavior across OSes
- this was always a sore spot in homebrew, either dealing with the `g` prefix on everything (eg `gsed`) or dealing with intermittent breakages when stuff depends on the BSD behavior
- I was also able to put nix-darwin on my wife's MacBook and greatly simplify admin / maintenance tasks I do for her
- finally, the nix crew is just thirsty for help and contributions, particularly the darwin crowd; I feel like my (minor, occasional) contributions are celebrated, differences of opinion are met with an open mind, it is in general a far departure from the relative hostility of homebrew
- on the down side, I have spent far more of my limited time helping contribute to nixpkgs / nix-darwin / home-manager
Love that you had a good experience. I perform these procedures semi-regularly, and in some cases they can be painful (even with lidocaine). Most people tolerate them very well though, I usually compare it to the pain of an IV stick, which most people have already tolerated, but which can also cause some people a surprising amount of distress.
I had one and they Let me walk the next day to other diagnostics, had about 6 months severe headaches afterwards which only were bearable when lying down flat. Glad it went away, finally. If I remember correcly you should stay in bed for 48h after the procedure.
Yes, the possibility of severe and prolonged headaches are part of my consent for this procedure. That said, I'm usually only performing the procedure to help exclude (or confirm) a medical condition with risk of permanent disability or death, so it can be a tough decision at times.
For the last several years I've very happily used it over SMB to ZFS (with autosnaps) for this very reason, and wrote an AppleScript to automatically "verify" it every week or so.
Once or twice a year it gives a verify error (i imagine this is because a plug gets pulled halfway through a backup on one side or the other), and I just have to go find the last verified date, zfs rollback, and then re-verify. Afterwards it picks up where I left off, and the historical backups are preserved.
Wish it didn't require this extra effort in the first place, but much better than having to nuke and pave every time.
Even better, it's working great over Tailscale so I can even use it remotely. Only big hiccup I ran into was figuring out some ZFS setting about quota vs refquota (something like that) to have the Time Machine's (artificial) space limit match the ZFS quota so that Time Machine would prune the oldest backups appropriately (otherwise the ZFS snapshots took up an unpredictable amount of space and Time Machine would unexpectedly get out of space errors before hitting its space limit).
My learning project -- using mqtt for HomeAssistant integration: <https://github.com/n8henrie/esp32c3-rust-mqtt>
reply