I’m a robotics researcher. My interests include cybersecurity, repeatable & reproducible research, as well as open source robotics and rust programing.

  • 104 Posts
  • 66 Comments
Joined 2 years ago
cake
Cake day: June 9th, 2023

help-circle

  • I’ve been straddling between NixOS and a Debian derivative for a while recently. Using nix, I really enjoy managing my system using declarative code, like I would for any other software infrastructure.

    Although, for work, I still resort back to Debian or Ubuntu when it comes to collaborating with existing FOSS communities around robotic software or medical imaging, as those respective domains are heavily ingrained/invested into the Debian release and package distribution.

    So it’s been a challenge to migrate anything other than my personal computing to NixOS. However I do appreciate the easy access to latest version releases of packages, kernels, and drivers. Being able to patch and document the idiosyncrasies of my hardware using declarative configs and revision control has been so helpful and solving a bug once and never forgetting how to reproduce the fix later on.

    Another benefit is being able to explore public repositories for examples of how other users may be installing the same types of modules or software features I’m looking to setup, or solve a similar issue. It’s one thing to read the stack overflow answer about how to edit an arcane etc config for an anonymous package version, but it’s another to be able to read the commit history of hundreds of other nix users and PRs from nixpkgs maintainers.


    My flake config is still rather simplistic, and synchronizing two hosts between two branches. I did appreciate the reference repo linked by the author as an example for modular host and user config.

    https://github.com/jnsgruk/nixos-config

    Any suggested resources or templates on that front? I.e. structuring and modularizing NicOS flake configs for multiple hosts for overlapping and non overlapping use cases? For example, I’ve just gotten into how to overlay nixpkgs PRs and explore dev shells.









  • Yeah, any details published so far have been rather vague. I like the prospect of writing my backend UI logic in a memory safe language, but that falls short of benefiting from doing so end to end.

    Supposedly Qt would be in a decent position to use their own static analysis and testing frameworks for hardening such bridge interfaces, but using a memory safe system programming language for everything would be ideal. Are there any Rust based UI projects that are looking at ISO certification to ease integration as a Software of Unknown Pedigree?























  • Ah man, I’m with a project that already uses a poly repo setup and am starting an integration repo using submodules to coordinate the Dev environment and unify with CI/CD. Sub modules have been great for introspection and and versioning, rather than relying on some opaque configuration file to check out all the different poly repos at build time. I can click the the sub module links on GitHub and redirect right to the reference commit, while many IDEs can also already associate the respective git tag for each sub module when opening from the super project.

    I was kind of bummed to hear that working trees didn’t have full support with some modules. I haven’t used working trees with this super project yet, but what did you find about its incompatibility with some modules? Are there certain porcelain commands just not supported, or certain behaviors don’t work as expected? Have you tried the global git config to enable recursive over sub modules by default?



  • I’m using a recent 42" LG OLED TV as a large affordable PC monitor in order to support 4K@120Hz+HDR@10bit, which is great for gaming or content creation that can appreciate the screen real estate. Anything in the proper PC Monitor market similarly sized or even slightly smaller costs way more per screen area and feature parity.

    Unfortunately such TVs rarely include anything other than HDMI for digital video input, regardless of the growing trend connecting gaming PCs in the living room, like with fiber optic HDMI cables. I actually went with a GPU with more than one HDMI output so I could display to both TVs in the house simultaneously.

    Also, having an API as well as a remote to control my monitor is kind of nice. Enough folks are using LG TVs as monitors for this midsize range that there even open source projects to entirely mimic conventional display behaviors:

    I also kind of like using the TV as simple KVMs with less cables. For example with audio, I can independently control volume and mux output to either speakers or multiple Bluetooth devices from the TV, without having fiddle around with repairing Bluetooth peripherals to each PC or gaming console. That’s particularly nice when swapping from playing games on the PC to watching movies on a Chromecast with a friend over two pairs of headphones, while still keeping the house quite for the family. That kind of KVM functionality and connectivity is still kind of a premium feature for modest priced PC monitors. Of course others find their own use cases for hacking the TV remote APIs:







  • Only just got a 120Hz monitor recently, so reading scrolling text now is so much easer and faster than before. Looking forward to any IDE that can match that kind of framerate performance as well.

    Too bad I don’t own a mac to be able to test out the current release of Zed as an IDE. However, I’m not sure about the growing trend of rasterizing the entire GUI, as compared to conventional text rendering methods or GUI libs with established accessibility support.