thejevans

joined 2 years ago
[–] thejevans@lemmy.ml 1 points 8 months ago (3 children)

I don't know if DevOps can render them. It certainly can't on my system. I would recommend not using the remote repository WebUI for that feature.

[–] thejevans@lemmy.ml 3 points 8 months ago (7 children)

Jupyter notebooks can totally handled by git! If you use GitHub, it will even render them on the WebUI for you.

[–] thejevans@lemmy.ml 35 points 8 months ago* (last edited 8 months ago) (10 children)

I'm almost a year in to a job where I was given this task with no admin access on my local windows machine, with a team that had never used an IDE or git before, and with only Google Drive as my allowed cloud tool. When I got here everything was just a bunch of Jupyter notebooks that would get run in Google Collab that were stored haphazardly over a shared Google Drive.

It's been a slog, but Python for Windows, VSCode, Git for Windows, and Poetry can all be installed without admin access, and we got limited access to Azure DevOps. I've taught my team how to use powershell, git, VSCode, and Poetry, and taught them about testing and documentation (this is a slowwww process). We finally got a desktop computer with admin access this week that we can RDP into (that I requested basically right when I started), so we can run scheduled tasks on Windows and hack together some kind of a CI/CD system. We started a wiki on Azure, have most of our stuff documented and in a well organized monorepo, and track our work in boards now.

Now that other teams are starting to see how we're doing things, they want in, too. Thank god these people are wonderful and excited to learn because otherwise this would be very frustrating.

[–] thejevans@lemmy.ml 8 points 9 months ago (1 children)

I use FreshRSS, Read You on Android, and NewsFlash on my PC. It all syncs via FreshRSS seamlessly.

[–] thejevans@lemmy.ml 1 points 9 months ago* (last edited 9 months ago)

Yeah, I guess I shouldn't have put that in this comment, I was just airing a tangential frustration. It still doesn't help me unless I set up a vps on a whitelisted domain at my work.

[–] thejevans@lemmy.ml 9 points 9 months ago (4 children)

I cannot access my homelab from my work network, so I cannot sync via Nextcloud. Syncthing would be better, but they just stopped supporting Android sync, which I need. Proton Drive doesn't sync files on Android. On top of that, I don't want to deal with sync issues because keepass isn't designed for syncing like that. I'm not gonna go back to using Google, Microsoft, or Dropbox just for keepass. I've considered just keeping my db file on a flash drive, but all of the keepass Android apps I tried won't automatically detect that the file exists when I plug in the drive.

If someone has a better way for me to use it, please enlighten me.

Bitwarden is slowly turning their stuff closed-source, and I hope they don't turn to shit, but right now it's what works.

[–] thejevans@lemmy.ml 4 points 9 months ago (1 children)

Yeah, I'm talking about not just Nix, but NixOS. Nix (the package manager) can do a lot, but NixOS + disko + home-manager can literally be all of the configuration for your machine from drive partitioning through to dot files. Throw in nixos-anywhere and impermanence and you can have an insane amount of control over all of your computers.

Ansible, Terraform, Chef, etc. do have some overlap, but the main difference is that those tools iterate through the system modifying it piece by piece and NixOS is declarative.

If something fails in some of my bigger Ansible playbooks, it could mean 30 minutes of just running through all the steps again. I could probably break it into sections, but then I have to worry about making sure they all get run when things get updated. In my NixOS install, it's way faster, I can roll back to a previous state, and troubleshooting is way easier in my opinion.

[–] thejevans@lemmy.ml 24 points 9 months ago (4 children)

You can't have your entire system configuration in a repository of plain text files, which has lots of advantages, but it's not worth caring about unless you feel excited to get into it.

[–] thejevans@lemmy.ml 15 points 9 months ago

I've been able to return some games based on news that they will be adding kernel-level anti-cheat. I'm glad Valve is doing this right.

[–] thejevans@lemmy.ml 3 points 9 months ago (1 children)

really weird that they only included a discord link, but here is the repo: https://github.com/dittofeed/dittofeed

[–] thejevans@lemmy.ml 2 points 9 months ago

Fuck this channel for platforming fringe ideas and presenting them as if they are on equal footing with, let's be honest, reality.

[–] thejevans@lemmy.ml 2 points 9 months ago

I use it as second monitor, so I don't game on it. Now that I think about it, though, it might be fun to play gameboy or DS emulators on it.

 

The way he just blew off the 50/50 split criticism was pretty gross. Basing it off of Youtube's bad-relative-to-the-rest-of-the-market 45/55 split, and then making it worse is not great, especially when coming from someone who makes YouTube content for a living.

 

I'm having an annoying issue with pipewire. I have a Scarlett 8i6 audio interface. I have it set to Pro Audio so that I can access all the input and output channels, and I have virtual devices defined to allow applications to access groups of channels as discrete devices.

For some reason, all applications keep automatically switching to my secondary (mono) output. I can sometimes get them to switch to my primary stereo output, but it's only ever a one-off and they will switch back when the current media is done playing. any thoughts?

config:

context.modules = [
    {   name = libpipewire-module-loopback
        args = {
            node.description = "Primary - Focusrite Scarlett 8i6"
            capture.props = {
                node.name = "scarlett_8i6_primary"
                media.class = "Audio/Sink"
                audio.position = [ FL FR ]
            }
            playback.props = {
                node.name = "playback.scarlett_8i6_primary"
                audio.position = [ AUX0 AUX1 ]
                target.object = "alsa_output.usb-Focusrite_Scarlett_8i6_USB_F8CEK2H1B8391D-00.pro-output-0"
                stream.dont-remix = true
                node.passive = true
            }
        }
    }
    {   name = libpipewire-module-loopback
        args = {
            node.description = "Secondary (Mono) - Focusrite Scarlett 8i6"
            capture.props = {
                node.name = "scarlett_8i6_secondary"
                media.class = "Audio/Sink"
                audio.position = [ MONO ]
            }
            playback.props = {
                node.name = "playback.scarlett_8i6_secondary"
                audio.position = [ AUX2 ]
                target.object = "alsa_output.usb-Focusrite_Scarlett_8i6_USB_F8CEK2H1B8391D-00.pro-output-0"
                stream.dont-remix = true
                node.passive = true
            }
        }
    }
    {   name = libpipewire-module-loopback
        args = {
            node.description = "Microphone - Focusrite Scarlett 8i6"
            capture.props = {
                node.name = "capture.scarlett_8i6_mic"
                audio.position = [ AUX0 ]
                stream.dont-remix = true
                target.object = "alsa_input.usb-Focusrite_Scarlett_8i6_USB_F8CEK2H1B8391D-00.pro-input-0"
                node.passive = true
            }
            playback.props = {
                node.name = "scarlett_8i6_mic"
                media.class = "Audio/Source"
                audio.position = [ MONO ]
            }
        }
    }
    {   name = libpipewire-module-loopback
        args = {
            node.description = "Instrument - Focusrite Scarlett 8i6"
            capture.props = {
                node.name = "capture.scarlett_8i6_inst"
                audio.position = [ AUX1 ]
                stream.dont-remix = true
                target.object = "alsa_input.usb-Focusrite_Scarlett_8i6_USB_F8CEK2H1B8391D-00.pro-input-0"
                node.passive = true
            }
            playback.props = {
                node.name = "scarlett_8i6_inst"
                media.class = "Audio/Source"
                audio.position = [ MONO ]
            }
        }
    }
    {   name = libpipewire-module-loopback
        args = {
            node.description = "Mix - Focusrite Scarlett 8i6"
            capture.props = {
                node.name = "capture.scarlett_8i6_mix"
                audio.position = [ AUX2 AUX3 ]
                stream.dont-remix = true
                target.object = "alsa_input.usb-Focusrite_Scarlett_8i6_USB_F8CEK2H1B8391D-00.pro-input-0"
                node.passive = true
            }
            playback.props = {
                node.name = "scarlett_8i6_mix"
                media.class = "Audio/Source"
                audio.position = [ FL FR ]
            }
        }
    }
]
 

cross-posted from: https://lemmy.ml/post/11820406

Do not use 2 letter country TLDs!

 

cross-posted from: https://lemmy.ml/post/11820406

Do not use 2 letter country TLDs!

 

cross-posted from: https://lemmy.ml/post/11820406

Do not use 2 letter country TLDs!

 

Do not use 2 letter country TLDs!

111
submitted 2 years ago* (last edited 2 years ago) by thejevans@lemmy.ml to c/battlestations@lemmy.world
 

PC

  • Nobara Linux
  • Fractal Torrent
  • Asus Proart B550
  • AMD Ryzen 5800X3D
  • Noctua NH-D15
  • GSkill 2x16GB DDR4-3600
  • Powercolor Hellhound 7900XTX
  • Sabrent Rocket 4.0 1TB
  • Crucial P3 Plus 4TB
  • Asus WiFi 6E card
  • Be Quiet Dark Power 13

Husky height adjustable workbench

  • DT770 Pros
  • AT2040 Mic
  • Yamaha MG06X Mixer
  • Focusrite Scarlett 8i6 3rd gen
  • Drop BMR1 speakers
  • P.I. Engineering L-Trac
  • ESP32-S3-Box3
  • Sony Dualsense
  • BenQ lightbar

Glorious GMMK Pro

  • GMK WoB
  • holy pandas + tealios v2

Monitors

  • Gigabyte M27Q-X
  • LG Dualup

Camera

  • Sony a5100
  • Sigma 16mm f/1.4
  • no-name LED panel
  • Amaran 100d
 

cross-posted from: https://lemmy.ml/post/6395416

Faced with new laws in California and other states, big tech lobbyists want to sign a "Memorandum of Understanding" to prevent "a compliance market where lawyers drive the decisions."

 

Faced with new laws in California and other states, big tech lobbyists want to sign a "Memorandum of Understanding" to prevent "a compliance market where lawyers drive the decisions."

 

A few friends asked for me to walk through how I set up the dashboard I have in my kitchen, so I figured I'd share it here, too. Here is a barebones walkthrough with config files.

 

I moved halfway across the US this summer. It's taken me a while to get my office/workshop put back together, but today I pretty much finished it.

 

cross-posted from: https://lemmy.ml/post/4506191

I've used sleek as my primary todo.txt UI for a while now, and I'm really happy with it. If you are interested in a simple, but useful way to put together a todo list in plaintext, the todo.txt spec is a great way to handle it, and sleek is by far the nicest GUI I've found.

About a week ago, I ran into a minor annoyance with an edge use-case that I have, and I wrote about it in the sleek github discussion page. Within 4 days, the maintainer of the project had a new build ready that fixed my issue. Nobody else said they needed it, but they took the time to add the feature I requested and now my workflow is that much easier.

I know not every project is like this, or can be like this, but there's no way that something like this would get added at anywhere near this pace in proprietary software. I, for one, am super grateful that software like this and the people that maintain it exist. Thank you.

Please check out sleek!

sleek is an open-source (FOSS) todo manager based on the todo.txt syntax. It's available for Windows, MacOS and Linux

view more: next ›