• 0 Posts
  • 50 Comments
Joined 2 years ago
cake
Cake day: March 3rd, 2024

help-circle
  • honestly, where NixOS shines for me is in my homelab. i don’t always have time to fully document what i’m doing, but my NixOS config is code-as-documentation for when work burns all of my memories away and has a git log and conflict management so i can manage multiple systems that share common config.

    and once you find out you can have services run on systemd with syntax like services.jellyfin.enabled = true you’ll never want to go back to containers, although it has ways to manage those as well.

    it’s overall a great OS for tinkering and deploying small services across small networks. not sure how it scales, but for my use case it’s damn near perfect



  • my point is that it’s hard to program someone’s subjective, if written in whatever form of legalese, point of view into a detection system, especially when those same detection systems can be used to great effect to train systems to bypass them. any such detection system would likely be an “AI” in the same way the ones they ban are and would be similarly prone to mistakes and to reflecting the values of the company (read: Jack Dorsey) rather than enforcing any objective ethical boundary.










  • man this brings back memories.

    i was able to install Arch on my 2012 Macbook Pro, but the networking was a huge issue. not only did the driver cause terrible screen tearing for some inexplicable reason, but i had the same problem even getting the dang thing installed. luckily i’m an Android developer and was able to share wifi over USB with an Android device.



  • chrash0@lemmy.worldtoSelfhosted@lemmy.worldbtrfs offsite backup
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    21 days ago

    ok i’m not saying do this

    i recently setup an API proxy, C&C server, Grafana and Prometheus, and Discord bot. now i can send pings via Grafana or with a simple request (provided it’s authed via VPN or proxy) and have my Discord bot use a local LLM on my network to deliver the alert to a Discord channel in the voice of Ultron.






  • sure!

    1. it wasn’t tough to get started. it generally reads like a normal Unix shell with some exceptions. i don’t think many Linux power users would have a hard time doing basic file system tasks or launching programs, etc. there are going to be some issues, like you can’t just paste bash commands in because && isn’t supported, multiline strings don’t require the \ character, and string escaping is totally different. those are intentional deviations that i personally agree with, but they take some getting used to. and then obviously stuff that is specific to nushell like working with tables.
    2. definitely the killer feature out of the box is manipulating, parsing, and reading structured data. the “aha” moment for me was when i needed to change a value over a thousand or so JSON objects and did it with a one liner. then i use it with some extra overlays to do stuff like connect to a k8s cluster like k8s connect (helm stage dev.0) which reads my YAML config and connects to the cluster specified in that file. or making a call to our internal package store to get the latest version by parsing the returned JSON.
    3. it works out of the box with your existing PATH (or Path if you’re nasty). you can just drop into it and it will have all the path stuff inherited just like if you launched zsh or bash. you’ll have to set that up if you want to use it as a system shell—like i do—, but otherwise it’s pretty seemless.

    you can check out my collection of scripts here: https://github.com/covercash2/dotfiles/tree/main/nuenv

    ETA: if you do have compatibility problems or need your old muscle memory to do something quick, it’s easy enough to use bash -c old_script.sh or just drop into a different shell


  • i’m a big nushell fan.

    i was once sitting where you are. when PowerShell was released on Linux i thought about switching and read the manual. i really liked some of the philosophy:

    • descriptive names for commands. cat and ls have canonical short names to save disk space on the systems they were created for. this is no longer a constraint and aliasing a longer command name is better than “git gud n00b” when it comes to discoverability.
    • structured data. “everything is a string” is great when programs play nice. it breaks apart when programs prefer human readable output or worse don’t provide structured output, like format=json or whatever.
    • modern control flow semantics. yes, pipes are great, let’s keep those, but why do i have to rtfm every time i want to bang out a simple script with an if-else control flow?

    i looked around at a few solutions. xonsh uses Python. eshell is integrated into emacs and uses Elisp. i briefly tried to hack something together using Kotlin Script. and yeah, i tried PowerShell.

    i settled on nushell not just because it fulfilled the above requirements, but also:

    • simple data types. string, number, list, record, and table are about the only types you deal with.
    • wide support for structured data. JSON, YAML, TOML, CSV, etc have parsers built in. jq and other such tools are made irrelevant because you just load it into nushell query with a unified DSL using common syntax like select and where.

    honestly, these are the killer features. there are so many more. context aware autocomplete, modules and overlays, super easy custom completions, extension functions (one of my favorites is git remote open), cross platform (if you’re forced to use Windows), plugins, and i can contribute since i do Rust development for work.

    give PowerShell a shot, but i think nushell is the happy medium