Skip Navigation

InitialsDiceBearhttps://github.com/dicebear/dicebearhttps://creativecommons.org/publicdomain/zero/1.0/„Initials” (https://github.com/dicebear/dicebear) by „DiceBear”, licensed under „CC0 1.0” (https://creativecommons.org/publicdomain/zero/1.0/)JD
Posts
2
Comments
244
Joined
2 yr. ago

  • I was gonna say SF, but now that I think about it the burger places there tend to be a bit more quaint and definitely don't have the live laugh love shit everywhere. At least I've never seen one, but it's a big fucking city so there's almost definitely at least one.

    They were everywhere in Denver.

  • Surprisingly, Remarkable tablets, despite not being open source, you can do just about anything with. They allow root SSH access and the backend is a heavily stripped down version of Linux.

    I've been writing an application to allow customizing splash screens over SSH/SFTP and it's actually been super easy to work with. The "jailbreak" scene is also super active, and the company has gone the opposite direction of most. They retroactively removed the need for a subscription to cloud sync on all devices, and seem to very much embrace the ridiculous things people have done with their tablets.

    The device is also no nonsense and does exactly what it's designed to do extremely well and no more. No ads, no bloat, no constant internet connection. You could never connect the thing to the internet if you really wanted. Honestly one of the few devices I've bought in recent memory that I feel like I wholely own.

    Two big downsides are no Bluetooth, and you need a modified hardware device to unbrick the device if you fuck up (jumping type C pins to put the device into recovery). Overall really solid and would recommend.

  • Most people don't exactly have a choice. They kinda need places to live near their jobs which almost always dictate where they live.

    Also, appreciate the value of ownership? How do you expect almost anyone in Gen Z to afford to own anything more substantial than a car? The oldest of us are just starting our professions after getting out of college/trade school, and getting into jobs that don't pay enough to afford a house anytime soon. We never even had the option of ownership because housing is fucked.

    Hell I'm one of the lucky ones. I graduated college without debt and I make really good money, but it's gonna take me 5 years to save up a down payment for a $8k a month mortgage despite living well below my means. I can only imagine how fucked it is for the average person who will never have the chance to own anything at all.

    We never had the choice to own anything.

  • It's ironic but makes complete sense if we're assuming they blocked the VPN server IP.

    Say I'm a malicious user who's using VPN server #22 from ProtonVPN (my personal favorite provider). The victim (CR in this case) isn't going to see they're being attacked by someone on VPN server #22 from ProtonVPN, they're going to see the IP of that server and nothing else.

    It really doesn't matter if they did have that information because no human will be involved. The traffic will be marked as malicious and blocked by some software designed to monitor, identify, and block traffic that looks malicious. This is almost always done based on IP. It's usually reversed in a few days though because IP addresses change frequently, so there's no sense in continuing to block traffic from an IP you can't guarantee belongs to the original attacker.

  • There are levels to it. As things get more complex the problems get infinitely more strange. As you learn a particular technology the strange things you encounter are often because of a misunderstanding about that technology or the way it works.

    Once you hit professional level software engineering (think distributed systems), things are strange in large part because the system you're working on has hundreds of thousands of man hours poured into it, and is often very complex with 10 different technologies backing it to do various things.

    The more strange things you encounter though the more you're learning!

  • This is a super interesting question!

    For me IDK if any amount of money would significantly improve my life. I'm not terribly materialistic and I'm happy with what I have/don't feel like I immediately want or am missing something. I make good money and stash as much as possible while still enjoying nights out with friends and buying whatever I want.

    I'm currently saving up a quarter million for a house down payment, and while it's a lot of money my quality of life/overall happiness would be the same so I wouldn't call the change significant. Things are really good in my life for once, and it's nice to be able to recognize that. Thanks for the question it actually made me really happy to think about how lucky I am.

    I hope others in this thread who need it can find some fortune in their future.

  • I wish I could wear something like that, but it'd make me feel pretentious. Not that I think people wearing them look or come off as pretentious, but for me it'd feel that way. I couldn't pull it off anyway since my daily attire is a hoodie and jeans/joggers.

  • Your perception of Google software engineers is way off. They're more often than not some of the best software engineers in the industry because their hiring bar is very high, and they get paid like it. YouTube is an astounding complex problem to solve with thousands of moving parts and non-trivial problems. It's honestly astounding people are able to build sites that complex, and that they're not only common but extremely reliable.

    The issue is there are even more extremely intelligent software engineers outside of Google than in, and many of them spend some of their free time working on FOSS projects including ad-blockers. It's also almost always harder to be red team (attacker, or the ad-blockers devs) as opposed to blue team (defensive, or the people trying to stop them).

  • I've had the opposite experience at my past and current job.

    I've always been given the choice of Windows or MacOS, with a remote Linux machine available if needed (first job I ran remote IDEs on it, second job I've gone full local development). Same with IDEs. As long as I was able to properly write and test code it did not matter what I used as both companies had licenses for the top IDEs (JetBrains suite, Visual Studio, etc.), and would buy one-offs if you wanted to use something else. There was always a general team convention simply due to ease of use, but I occasionally opted for a heavily modified VSCode workspace over PyCharm and the like.

  • TamperMonkey (I've been told to use ViolentMonkey instead as TamperMonkey isn't open source) and the script here. Then you can run a script to periodically log into your account in a headless browser and click the button. Unfortunately there's no coupon API so this is the best solution I could think of.

  • Because they're used absolutely everywhere, and often back large portions of Internet infrastructure. I'm a backend developer and we have thousands of "bots" running at any given time to keep our systems going. They generate traffic equivalent to thousands of people and are maintained by a 3 person dev team. This is for a relatively small company. When I was at AWS the scale was much more unfathomable.

  •  
        
    // ==UserScript==
    // @name         Safeway Clip All Coupons Button
    // @version      0.1
    // @description  Add convenient button to automatically load and clip all coupons on Safeway's ForU page
    // @match        https://www.safeway.com/foru/coupons-deals.html*
    // @icon         data:image/png;base64,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
    // @grant        none
    // ==/UserScript==
    
    (function() {
        'use strict';
    
        const couponGridContainer = document.getElementsByClassName('coupon-grid-container')[0];
    
        let clipButton = document.createElement('button');
        clipButton.addEventListener('click', clipCoupons);
        clipButton.innerHTML = '<span>Clip All Coupons</span>';
        clipButton.classList.add('btn');
        clipButton.classList.add('btn-secondary');
        clipButton.style.width = '175px';
    
        couponGridContainer.insertBefore(clipButton, couponGridContainer.firstChild);
    })();
    
    async function clipCoupons() {
        console.log('Clipping coupons...');
        let load_more = document.getElementsByClassName('load-more')[0];
        while (load_more != undefined) {
            load_more.click()
            await new Promise(r => setTimeout(r, 1000));
            window.scrollTo(0, document.body.scrollHeight);
            load_more = document.getElementsByClassName('load-more')[0];
        }
        let coupons = document.getElementsByClassName("grid-coupon-btn");
        for (let coupon of coupons) coupon.click();
        console.log('Finished clipping coupons!');
    }