I finally came up with a nicely ergonomic C++ equivalent of Swift’s if let and guard let, i.e. syntax for testing and unwrapping an optional at once. Made my own optional-wrapper class called maybe that supports this, and importantly does not support optional’s incredibly dangerous “*” operator, which I got burned by one too many times last weekend.
(Honestly, why the hell did the C++ committee add an operator that’s more unsafe than raw pointer dereference, to a class that’s supposed to be a safer alternative to pointers?)
Continuing to work on an opam-monorepo package builder for Nix. I decided to implement a parser for the .opam files in Nix using some parser combinators, which has mostly worked out, until I noticed that the grammar includes some cases of left recursion, so that’ll require a bit more work. I’m also not entirely sure how the next steps will work; I’m hoping downloading all the dependencies and then symlinking them to the duniverse/ directory will be enough. With any luck I’ll have something to share next week or so!
Attempting to secure our application dependency chain with SLSA (https://slsa.dev/) so that we can assert to third-parties that we can’t have some new issue or vulnerability introduced through the chain by a changing or updating of dependencies that wasn’t checked. So far it’s been a bit of a pain but I think the underlying idea is a good one.
Over the weekend I started a documentation page for Bauble, which meant adding a compact display mode, custom resolutions, and lazily loading multiple GL contexts on a single page. So now I need to actually flesh out the docs. Also maybe I’ll finally tackle custom lighting… the last big missing feature.
I finally came up with a nicely ergonomic C++ equivalent of Swift’s
if let
andguard let
, i.e. syntax for testing and unwrapping an optional at once. Made my own optional-wrapper class calledmaybe
that supports this, and importantly does not support optional’s incredibly dangerous “*
” operator, which I got burned by one too many times last weekend.(Honestly, why the hell did the C++ committee add an operator that’s more unsafe than raw pointer dereference, to a class that’s supposed to be a safer alternative to pointers?)
Continuing to work on an opam-monorepo package builder for Nix. I decided to implement a parser for the .opam files in Nix using some parser combinators, which has mostly worked out, until I noticed that the grammar includes some cases of left recursion, so that’ll require a bit more work. I’m also not entirely sure how the next steps will work; I’m hoping downloading all the dependencies and then symlinking them to the
duniverse/
directory will be enough. With any luck I’ll have something to share next week or so!Attempting to secure our application dependency chain with SLSA (https://slsa.dev/) so that we can assert to third-parties that we can’t have some new issue or vulnerability introduced through the chain by a changing or updating of dependencies that wasn’t checked. So far it’s been a bit of a pain but I think the underlying idea is a good one.
Dang, definitely bookmarked :) Thanks for sharing!
Over the weekend I started a documentation page for Bauble, which meant adding a compact display mode, custom resolutions, and lazily loading multiple GL contexts on a single page. So now I need to actually flesh out the docs. Also maybe I’ll finally tackle custom lighting… the last big missing feature.
Taking a short side track through Powerpoint hell.
But then back to R&D, and closing the loop on the web framework APIs for Ecstasy.
Work wise, building out some ingestion modules for our search platform.
Home wise, I’ve been cleaning up my hydroponics setup, got some new lettuce / basil plants into my system!