Mama told me not to come.

She said, that ain’t the way to have fun.

  • 7 Posts
  • 814 Comments
Joined 1 year ago
cake
Cake day: June 11th, 2023

help-circle





  • Photoshop, Illustrator, InDesign, and Acrobat Pro every day for my day job

    Probably easier to run a VM or dual-boot then. Trying to keep those up-to-date is going to be a nightmare.

    Honestly, if I were in your shoes, I’d probably get an Apple device. Adobe works great, and macOS isn’t as bad as Windows IMO.

    I liked being functionally untrackable online, and not getting ads shoved down my throat

    There are a lot of ways to get around that, such as:

    • uBlock Origin - blocks ads
    • use a VPN and switch locations periodically - limits efficacy of tracking
    • try Mullvad Browser - basically Tor Browser (i.e. the browser included w/ Tails), but without Tor, so fewer breakages

    But honestly, the first two are really easy to do and solve 80% of the problem with a very small amount of breakage, and Firefox is installed by default in most Linux distros, and is available in the repositories on those where it’s not the default.


  • Pretty much any major distro is going to have similar support for all of that. And for Adobe CC, that’s going to be limited at best. You didn’t specify which part of CC you need, but here’s an option for installing Photoshop 2022 on Linux. Trying to get the latest is likely going to be painful, since WINE would probably lag with supporting all the new updates.

    Steam works pretty well pretty much everywhere. I’ve used it on Fedora, Arch, and openSUSE, and I’m sure it works fine on any Debian-based distro. VR support is similar, you’re going to have a much better time with SteamVR headsets. That said, here’s a guide to VR on Linux, stick to “confirmed working” sections for minimal tinkering.

    Tails

    Yeah, don’t use that for regular work, that’s an uber-paranoid distro that’s intentionally locked down, which means things are likely going to be more difficult to get working.

    Try Linux Mint or Fedora (or Bazzite if you want gamer flavor), they’re both solid and tend to work pretty well out of the box. Software and hardware support doesn’t vary much between distros, so if it you can’t get it working with one of those and it’s not “officially supported” (i.e. instructions aren’t in one of my links), distro hopping probably won’t help.








  • You don’t have to convince me that Rust rocks. I just need to convince my team that it’s worth the investment in terms of time to onboard everyone, time to port out application, and risk of introducing bugs.

    We have a complex mix of CRUD, math-heavy algorithms, and data transformation logic. Fortunately, each of those are largely broken up into microservices, so they can be replaced as needed. If we decide to port, we can at least do it a little at a time.

    The real question is, does the team want to maintain a Python or Rust app, and since almost nobody on the team has professional experience with low-level languages and our load is pretty small (a few thousand users; b2b), Python is preferred.



  • Yup, I guess not. But if I was on the product team, the customers and director ate the bosses. And on it goes up to the CEO, where the board and shareholders are the boss.

    If I can justify the change, we’ll do it. That’s close enough for me. And I did do a POC w/ Rust and could’ve switched one service over, but I campaigned against myself since we got good enough perf w/ Python (numpy + numba) and I was the only one who wanted it. That has changed, so I might try again with another service (prob our gateway, we have 3 and they all kinda suck).

    I’ll have to check out Deno again. I remember looking at it (or something like it) a couple years ago when first announced on Reddit.


  • Well, I’m kind of the boss, but I inherited the Python codebase. The original reasoning was it’s easier to hire/on-board people, which I think is largely true.

    If it was up to me, I’d rewrite a bunch of our code to Rust. I use it for personal projects already, so I know the ecosystem. But that’s a tough sale to the product team, so it’s probably not happening anytime soon. I’d also have to retrain everyone, which doesn’t sound fun…

    However, any change I make needs to work smoothly for our devs, and we have a few teams across 3 regions. So it needs clear advantages and whatnot to go through the pain of addressing everyone’s concerns.


  • That’s pretty impressive! We have a bunch of a bunch of compiled stuff (numpy, tensorflow, etc), so I’m guessing we wouldn’t see as dramatic of an improvement.

    Then again, <1 min is “good enough” for me, certainly good enough to not warrant a rewrite. But I’ll have to try uv out, maybe we’ll switch to it. We switched from requirements.txt -> pyproject.toml using poetry, so maybe it’s worth trying out the improved pyproject.toml support. Our microservices each take ~30s to install (I think w/o cache?), which isn’t terrible and it’s a relatively insignificant part of our build pipelines, but rebuilding everything from scratch when we upgrade Python is a pain.


  • Both of those are largely bound by i/o, but with some processing in between, so the best way to speed things up is probably am async i/o loop that feeds a worker pool. In Python, you’d use processes, which can be expensive and a little complicated, but workable.

    And as you pointed out, scons and pip exist, and they’re fast enough. I actually use poetry, and it’s completely fine.

    You could go all out and build something like cargo, but it’s the architecture decisions that matter most in something i/o bound like that.