Skip Navigation

Posts
150
Comments
76
Joined
3 yr. ago

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

  • Deleted

    Permanently Deleted

    Jump
  • 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.

  • For the faint of heart, such vicarious pain may require theatrical intermission(s).

  • 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?

  • I'm not the original author, even with the YouTube title being as is, but what do you mean? Perhaps relying that the desired services exist as nix packages, or that nix packages have desired defaults or exposes desired config parameters?

    There are two other nix media server config projects I can think of, but I think this approach mostly facilitates the install, but not the entire initial config setup, given that a lot of the stack's internal state is captured in databases rather than text config files. So simplifying the backup and restoration of such databases seems the next best thing to persist your stack configs with nix.

  • On top of that, it'd be nice for the Bluetooth spec to roll out a higher bitrate version of HFP, as it's common 16 kHz monaural configuration is awful when listening to multimedia while on video calls, like for remote watch parties or just listening to music or playing video games while hanging out on discord. I ended up just buying a USB to TRRS adapter with pass through Power Delivery in order to use my Android device with proper AV quality.

  • Tagging an image is simply associating a string value to an image pushed to a container registry, as a human readable identifier. Unlike an image ID or image digest sha, an image tag is only loosely associated, and can be remapped later to another image in the same registry repo, e.g latest. Untagging is simply removing the tag from the registry, but not necessarily the associated image itself.

  • I fell for it. It took me a minute into the game time to figure what was up and double check today's date.

  • 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:

  • A while back, I tried looking into what it would take to modify Android to disable Bluetooth microphones for wireless headsets, allowing for call audio to be streamed via regular AAC or aptX, and for the call microphone to be captured from the phones internal mic. This would prevent the bit rate for call audio in microphone being effectively halved when using the ancient HFP/HSP Bluetooth codecs, instead allowing for the same call quality as when using a wired headset. This would help when multitasking with different audio sources, such as listening to music while hanging out on discord, without the music being distorted from the lower bit rate of HFP/HSP. This would also benefit regular VoLTE, as the regular call audio quality already exceeds that of legacy Bluetooth headset profiles.

    Although, I didn't manage to tease apart the mechanics of the audio policy configuration files used by the source Android project, given the sparse documentation and vague commit history.

    I'd certainly be fine with the awkwardness of holding up and speaking to my phone as if it was in speaker mode, but listening to the call over wireless headphones, in order to improve or double the audio quality. Always wondered what these audio policies fall back to when a Bluetooth device doesn't have a headset profile, but it's almost impossible to find high quality consumer grade Bluetooth headphones without a microphone nowadays.

  • For the call setting under Bluetooth audio devices, I really wish they would break out or separate the settings for using the audio device as a source or sink for call audio. Sort of like how you can disable HSP/HSF Bluetooth profiles for audio devices in Linux or Windows.

  • Image Transcription: Meme


    A photo of an opened semi-trailer unloading a cargo van, with the cargo van rear door open revealing an even smaller blue smart car inside, with each vehicle captioned as "macOS", "Linux VM" and "Docker" respectively in decreasing font size. Onlookers in the foreground of the photo gawk as a worker opens each vehicle door, revealing a scene like that of russian dolls.


    I'm a human volunteer content transcriber and you could be too! 

  • rule

    Jump
  • What about carrying on a legacy with maintaining a intergenerational codebases? Like from a family owned business, a FOSS project, or hobby video game? Something that span's across tech stacks, historic trends, and familial code authors, like the ship of Theseus crossed with Noah's Ark (built with the help of Noah's entire family over almost 100 years, as the theological mythology goes).

  • You know how folks inherit tools, workshops, or auto projects from parents and family? Stuff like wood working equipment, sewing machines, or whatever tools of the trade. It's got me wondering, what's it like for children that inherit their parents' codebase, computers, keyboards. Surely with the growth of the tech sector and job market, compared to half a century prior, this could be a growing re-occurrence.

    E.g. like the entire premise of this YouTube channel titled "Inheritance Machining": https://youtu.be/hearLttbrLo

    For example, my grandfather worked for IBM, and my family recalls growing up surrounded by punch cards around the house. Of course that form of programming only lasted so long, so the next generation was unlikely to reuse the same tools of the trade, but as tech stacks have matured and interfaces standardized, what are the chances are that folk's children will use the same Linux kernel modules, custom mechanical keyboards or desktop chassis that their parents used today?