• 1 Post
  • 50 Comments
Joined 1 year ago
cake
Cake day: May 31st, 2023

help-circle
    • Decreased performance, as DRM is often hooked deep into event loops and adds non-negligible overhead.
    • Decreased privacy, as DRM often requires pinging an external server constantly.
    • Decreased security, as DRM is a black-box blob intentionally meant to be difficult to peer in to, and has been the target of attacks such as code execution vulnerabilities before.
    • If you own a game but don’t have an active internet connection, DRM may prevent you from playing the game.
    • If you own a game but have multiple computers, DRM may force you to buy multiple licenses when you’re only using one copy at a time (c.f., a physical CD with the game on it).
    • Eventually, a DRM company is going to go out of business or stop supporting old versions of their software; if you want to play an old game that had that DRM, you won’t be able to even if you own the game.
    • &c.

    DRM exists to "protect’ the software developer, i.e. protect profits by making sure every copy has been paid for and to force people to buy multiple copies in certain cases. DRM never has and never will be for your (the consumer’s) benefit.



  • Colloquial use of that word is not related to its technical use to describe a female dog in dog breeding. Colloquial use of the word is precisely driven by misogyny. Don’t try to play that game, it’s dishonest. Do you think the homophobic f-slur is acceptable because, after all, it is a technical term relating to bound wood fuel? If not, why is that not acceptable, but the one you’re using is? Historical linguistic justification for a word whose colloquial use has not been related to its historical meaning for a very long time is dishonest.

    By “otherwise discriminatory” I meant discriminatory in ways other than the two (sexism, ableism) that I explicitly mentioned; can you not think of other ways to discriminate? “Otherwise discriminatory” can include words that are specificaly xenophobic or racist, or homophobic. I didn’t bother doing a full inventory when I was illustrating a point.

    I find casual use of opaque blocklists without any second thought to their impact disturbing.

    It’s not opaque. The entire block list regex is publicly visible for every single instance. In fact, it’s in the page source of every single page you load. You’re simply uninformed. Moreover, if you think there was no second thought to it’s impact, you’re yet again uninformed. There was (and has been) discussion about it amongst developers and (early) users, and discussion continues; in fact, there was a post about it with large engagement maybe three days ago.

    I am not sure how I feel about enforcing a block list (and I said that in my previous comment), but one thing it does do, repeatedly, is illuminate how little people think about offensive things they say. Interestingly, more often than not, people would rather defend their use of misogynist language than consider using literally any other word in English or another language.





  • Depends on how much you want to set up. For my purposes, I just check for connectivity every minute, and record true or false as a new row in a sqlite database if there is connectivity.

    This is what I use on my raspberry pi,

    #!/usr/bin/env python3
    from datetime import datetime
    import sqlite3
    import socket
    from pathlib import Path
    
    try:
        host = socket.gethostbyname("one.one.one.one")
        s = socket.create_connection((host, 80), 2)
        s.close()
        connected = True
    except:
        connected = False
    timestamp = datetime.now().isoformat()
    
    db_file = Path(__file__).resolve().parent / 'Database.sqlite3'
    conn = sqlite3.connect(db_file)
    curs = conn.cursor()
    curs.execute('''CREATE TABLE IF NOT EXISTS checks (id INTEGER PRIMARY KEY AUTOINCREMENT, timestamp TEXT, connected INTEGER)>
    curs.execute('''INSERT INTO checks (timestamp, connected) VALUES (?, ?);''', (timestamp, 1 if connected else 0))
    conn.commit()
    conn.close()
    

    and I just have a crontab entry * * * * * ~/connectivity_check/check.py >/dev/null 2>&1 to run it every minute.

    Then I just check for recent disconnects via:

    $ sqlite3 ./connectivity_check/Database.sqlite3 'select count(*) from checks where connected = 0 order by timestamp desc;'
    

    Obviously, it’s not as full-featured as something with configurable options or a web UI etc, but for my purposes, it does exactly what I need with absolutely zero overhead.


  • In hindsight, yes. But there was no indiciation ahead of time that this situation would happen or was likely to happen. In fact, there was no more reason to believe a free ccTLD was any more likely than a paid ccTLD to cause a problem. The problem arises because a ccTLD’s host country can choose to remove any domain it wants, paid or not. One could argue that using a ccTLD at all was a mistake, but you’d have to look at precedent for ccTLD’s country’s doing this and see if it happens often or not.



  • They’re lucky their content is high quality because god damn the pre-roll and inline ads are always absolute fucking garbage. I know the show host doesn’t control what ads the network uses, but they’ve literlly had USA military recruiting ads on their show, which is peak irony.

    I’ve set my podcast player to skip the first X seconds to get past the pre-roll, and my finger is trained to skip-forward through the ads, but some automated system would make life a lot easier (and listening to Behind the Bastards more enjoyable).





  • There seem to be three categories for how podcasts deal with ad spots.

    Some podcasts mark their ads inline by using Chapter Markers. For example, ATP marks its ads by putting them in a new chapter with a name like “Ad: X”. In theory, you could have a player that skips any chapter who’s name begins with "Ad: ", though I don’t know of any existing apps that do that. Unfortunately, the number of podcasts using chapter markers seems to be a small portion of the podcasts I listen to, so this wouldn’t be very useful.

    Another method that could work on some podcasts that don’t use chapter markers is identifying a delineating tone. Using ATP as an example again, every ad spot starts with the same jingle, and ends with the same jingle. In theory, an app could skip the delineated sections. Mind you, this would require work from the user to set up (or it could be crowdsourced): you would have to tell the app what specific sound snippet delineates the ad read. Luckily, many podcasts seem to be structured in this way, with a clear audio cue to delineate ad spots.

    Then, you have really free-form podcasts where the hosts may just say, in everyday speech, something like “time for ads”, and the ads will insert. Sometimes it’s always the same phrase (e.g., the use of the phrase “the money zone” on MBMBAM), but that’s not always the case (e.g., there is seemingly no consistent verbiage in the Aunty Donna Podcast). This category is the most difficult to deal with.

    In summary, I don’t know of any existing apps that enable skipping ads for any of these three categories. Of the three categories, one is very easy to implement, one less easy, and one quite difficult. All potential solutions would require a shared/crowd-sourced database of which category each podcast falls into, at the least.







  • I’m not sure why people use anything other than Windows Defender. It literally shares signature databases with most of the large AVs, it doesn’t have any anti-features or isn’t itself malware/adware/spyware like commercial AVs, it’s tightly integrated but also easy to turn on or off (ever tried to uninstall an AV?), and no commercial AV is going to catch anything Windows Defender won’t. It’s also free and has no need to make money as a product in itself, and so there’s no motivation for bad behavior.

    The only features some commercial AVs have that Windows Defender doesn’t are things like DNS blocking or browser addons (which there are plenty of non-commercial/profit-motive-driven options for: uBlock origin, pi-hole/adguard home, etc).