• 0 Posts
  • 59 Comments
Joined 1 year ago
cake
Cake day: August 4th, 2023

help-circle


  • Yeah, I do know about that. (You’re referring to the PPA repo thing, yeah?) But there are a couple of reasons why that isn’t a workable solution specifically for me specifically.

    • The major reason is that I only use Ubuntu on my work machine and my employer’s compliance department won’t really answer questions about whether it’s allowed to add extra repositories or install things not from the official Ubuntu repositories on company-owned hardware. (And they’re always really threatening and assholeish about breaking the rules they won’t elaborate on, so my best option is kindof just to interpret the rules as strictly as I can and follow that. Or else flout the rules and dare them to fire me. Heh…) Raising questions like that is always a whole thing.
    • “firefox” from the PPA repo and “firefox” from Snap have the same package name which makes things awkward dealing with Apt. (Unless you use “firefox-esr” from the PPA repo, which would otherwise be an acceptable workaround if that was the only issue.)

    So I just use Chrome on my work machine. I dislike Chrome more than Firefox for many reasons, but I at least mitigate some of the issues with Chrome by specifically not doing anything personal on my work machine. I don’t really care if Chrome invades my employer’s privacy. Especially when my employer doesn’t give me a choice in browsers. If anything comes of it, it’s their own damned fault.



  • TootSweet@lemmy.worldtoProgrammer Humor@programming.devJava Was The Future
    link
    fedilink
    English
    arrow-up
    21
    arrow-down
    1
    ·
    edit-2
    2 months ago

    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.


  • TootSweet@lemmy.worldtoProgrammer Humor@programming.devA QA engineer walks into a bar
    link
    fedilink
    English
    arrow-up
    16
    arrow-down
    1
    ·
    edit-2
    3 months ago

    To be fair, the team at the time was all business majors. (Is “Computer Information Systems” what they call that degree most places or just at my alma mater?) I think I was the only computer science major there.

    They’d done a surprisingly admirable job of cobbling together a working e-commerce, loss prevention, customer sercvice portal, orderfulfillment, and CMS suite. And their schooling was in, like, finance, MS Office, and maybe one semester on actual programming.

    None of them had ever learned how to count in binary. Let alone been exposed to 2’s compliment. And there were no QA engineers.

    Oh, there was the sysadmin. He had a temper and was a cowboy. If you asked him to do something, it’d be fuckin’ done, man. But you did not want to know how he made sausage. The boss asked him to set up a way for us to do code reviews and he installed Atlassian Fisheye/Crucible on a laptop under his desk. We used that for years. And a lot of the business logic of the customer-facing e-commerce site lived in the rewrite rules in the Apache config that only he had access to and no one else could decipher if they did have access.

    Those were good times. Good times.


  • TootSweet@lemmy.worldtoProgrammer Humor@programming.devA QA engineer walks into a bar
    link
    fedilink
    English
    arrow-up
    141
    arrow-down
    4
    ·
    edit-2
    3 months ago

    Back when I was the “new guy” code monkey at a fairly sizeable brick-and-mortor-and-e-retailer, I let the intrusive thoughts win and did some impromptu QA on the e-commerce site. (In the test environment. Don’t worry.)

    It handled things like trying to put “0” or “-1” or “9999999999999” or “argyle” quantity of an item in the cart just fine.

    But I know my 2’s-compliment signed integers. So I tried putting “0xFFFFFFFF” quantity of an item in my cart. Lo and behold, there was now -1 quantity of that item in my cart and my subtotal was also negative. I could also do things like put a $100.00 thing in the cart and then -1 quantity of something that cost $99.00 in the cart and have a $1.00 subtotal.

    (IIRC, there was some issue with McDonalds ordering kiosks at one time where you could compose an order with negative quantities of things to get an arbitrarily large unauthorized discount.)

    The rest of my team thought I was a fucking genius from that moment on. I highly recommend if you’re ever the “new guy” dev on a team and want to appear indispensible, find a bug that it would never occur to a QA engineer who doesn’t have a computer science degree to even test for.



  • My experience is similar. I don’t play YouTube videos on my 4B with 8GB of RAM very often. When I do, I make sure it’s well less than a quarter of my 1920x1080 screen. (I use a tiling window manager, so I usually just make my browser window the top-left quadrant of my screen and don’t theater-mode or anything.) And I often reduce the quality to 480p or whatever.

    If I’m going to watch something longer than a few minutes and want to be doing other things on my Raspberry Pi while the video is running, I’ll just pull it up on my phone propped next to my monitor.





  • TootSweet@lemmy.worldtolinuxmemes@lemmy.worldGNU/Anything
    link
    fedilink
    English
    arrow-up
    43
    ·
    4 months ago

    I’d just like to interject for a moment. What you’re refering to as WSL, is in fact, GNU/WSL, or as I’ve recently taken to calling it, GNU plus WSL. WSL is not an operating system unto itself, but rather another free component of a fully functioning GNU/Windows system made useful by the GNU corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX.







  • Great question! Not really my area of expertise, but probably there are at least a couple of possible avenues. One is decompilation and/or disassembly and static analysis. (Basically use automated tools to reconstruct the original source code as best it can and then read that imperfect reconstruction of the source code to figure out what it does.) Another is isolating it (“air gap” – no network or connectivity to anything you care about) so you’re sure it can’t do any damage and running it with tools that record/report everything it does. (On Linux, one could use strace and/or GDB. On Mac, dtrace. Not sure what the equivalent is for Windows programs running on Windows.)

    Actually, I guess another option could be to set up an isolated system, record a whole bunch of information about it before running the .exe then after running the .exe, examine it to see what you can find on the filesystem or in the registry or in RAM or whatever that might have changed. It wouldn’t catch everything, though. Like if it made a network connection or something but didn’t actually change anything on the filesystem, it might not leave any traces.

    Whatever the case, it’d probably require some specialized tools and expertise. But it’d be an interesting project.