• 1 Post
  • 347 Comments
Joined 1 year ago
cake
Cake day: August 4th, 2023

help-circle

  • FizzyOrange got it right. “Screen grab” is nicely asking a graphical system (X11/xorg-server or a Wayland compositor or whatever) via an api to give you an image of either the whole desktop or some particular rectangular part of it. And you can do it 30 times every second (or more) to get a video. OBS uses such APIs to get video from the screen for saving to a file or streaming to Twitch or whatever. Various tools can be used to get screenshots and save them to files. Etc.

    Heck. On my work machine, because they require us to meticulously log the time we spend on individual tasks, I’ve got a script running that uses ImageMagick’s import command to grab screenshots of my desktop and save them to files once every 5 minutes so I can refer back to them while logging my time.

    And as FizzyOrange said, various Wayland compositors have workarounds for the fact that there isn’t (or rather wasn’t until recently) a way to do screen grab in a standard way that would work across all compositors which properly and comprehensively implement the Wayland protocol. I use Sway on my personal machines and it’s based on something called wlroots which has built-in a nonstandard extension to the Wayland protocol that allows screen grab. But once wlroots adopts the new standard way of doing screen grabbing, the nonstandard extension will be unneeded/obsolete.


  • Oh shit! I hadn’t heard they’d finally added that. That’s awesome.

    Maybe that means FFMPEG and Zoom will start supporting it soon.

    On my personal systems, I use Sway (a Wayland compositor). And I sometimes wish I could do screen grab with FFMPEG, but so far I haven’t wanted that enough to actually switch to X11 or use wl-screenrec.

    On my work machine, I’m on Ubuntu and I have to use Zoom and screen sharing is kindof a non-negotiable thing. (Plus, FFMPEG screen grab is nice to have on my work machine as well.) So I use i3-gaps on xorg-server. Except for those two things, I’d rather use Sway.










  • If you’re thinking it may be malicious, I think it’s innocuous.

    Try cat’ing /etc/skel/.bashrc and see if the code in question in in there. My guess is it will be. When a new user’s home directory is created, it copies all the files from /etc/skel into the newly-created home directory. So, that directory is basically a “new user home directory template.”

    The code you posted (is missing an fi at the end, but anyway) just looks like a utility for making it easier to organize your .bashrc into separate files rather than one big file. That’s a common technique for various configuration files that a lot of distros commonly do. And I personally find that technique nice.

    If you want to delete that code, it’s not going to hurt anything to remove it (unless someday you add a ~/.bashrc.d/ directory and some file in there “doesn’t work” and it confuses you why.)

    Also, what distro are you on?





  • No joke. I’m ashamed to say I have had to endure Weblogic in the past. God was that time a massive clusterfuck.

    The company I worked for decided to use two particular separate products (frameworks, specifically; ATG and Endeca, even more specifically) to use in tandem in a rewrite of the company’s main e-commerce application. Between when we signed on the dotted line and when we actually started implementing things, Oracle acquired the companies behind both products in question.

    The company should have cut their losses, run away screaming, and started evaluating other options. That’s not what happened. Instead, they doubed-down and also adopted several other Oracle products (Weblogic and Oracle Linux on (shudder) Exalogic servers) because that’s, of course, what Oracle recommended to use with the two products in question. The company also contracted with Oracle-licensed “service integration” companies that made everything somehow even worse.

    And the e-commerce site rewrite absolutely crashed and burned in the most gloriously painful way possible. They ended up throwing away tens of millions of dollars and multiple years on it.

    When the e-commerce site rewrite did happen, it was many years later and used basically only FOSS technologies. I guess at least they learned their lesson. Until the upper management turns over again.




  • I write Java for a paycheck, but I really hate it.

    It feels like everything is layers and layers of overengineered cruft, each added to the precarious tower for something extremely minor. But every subsequent card in the house of cards makes it more precarious. “But look, I don’t have to write accessors.” “But look, I eliminated the need for the web.xml file.” “But look, I don’t have to understand SQL now.” But look, the codebase depends on a shit-ton of completely opaque Automagic™ that you have no hope of understanding the moment something goes wrong – which it will if you even think of changing your Java version. And since it’s practically impossible to understand what’s going on under-the-hood of whichever dependency is fubar’d this week, you have to resort to a mixture of trial-and-error and copy-pasting shit (that you also don’t understand) from StackOverflow and praying to Cthulhu something works – which is also trial-and-error because Java questions in particular have tons of just straight up wrong answers.

    To be fair, I’m the guy on my team who people come to when they run into those sorts of “I bumped up one subminor version of Mockito to fix a bug that was preventing my unit test from working but now literally half of our unit tests won’t build” or “I added the war plugin to the build.gradle and now SwaggerUI is broken.” So maybe I see more than my fair share of “well shit, I guess I’ll just spend the next three hours hunting down which magical combination of Jar version numbers will fix things” kind of problems. But damn. This shit didn’t ever happen back when I was doing Python for a paycheck.

    I don’t use Java if I don’t have to. If I have to use Java, I prefer to just use Servlets (mostly I do web development) and absolutely as few dependencies as I can possibly get away with. Fewer moving parts mean less that can break.