• 3 Posts
  • 35 Comments
Joined 1 year ago
cake
Cake day: May 31st, 2023

help-circle





  • 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.


  • What a weird take. You’re allowed to pay for whatever you’d like. Personally, I can’t afford to pay for any JetBrains product, even if I wanted to.

    Not only are there alternatives which may be better overall or better suited to someone’s needs, that wasn’t even my point. My point was more that it is only temporarily free, and so the parent commenter’s comment of “it’s free” should be taken with a grain of salt if you’re considering the product.

    Moreover, we’re in the Open Source community: Fleet is neither free nor open source, and pointing that out here is relevant.




  • 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.




  • but I wonder whether some form of dehumidification specifically, rather than just cooling, could also aid survival?

    The issue is that in general, dehumidification is energy intensive, just as cooling is. In fact, one of the best ways to dehumidify air is to cool it down. Other non-mechanical solutions, like chemical solutions (e.g., dry hygroscopic material with large surface area) don’t have an energy cost during their use, but they have an energy cost in their production and renewal. For example, to dry the hygroscopic material back out to recycle it and re-use it, you must supply a lot of heat energy.

    I would be interested in an energy consumption comparison though, between: cooling air to keep it under the red area of the curve; dehumidifying air to keep it under the red area of the curve; and some combination of the two (as most air conditioning units do). It may be the case that dehumidifying is less energy intensive.




  • Have you been keeping up with the story? Few people are saying there is absolutely zero value in telemetry as a concept. Most people have an issue with it being on by default. For a FOSS community, especially one who tries to act as if privacy matters, the very nature of the concept “telemetry that’s on by default” is the problem. I wouldn’t personally use the phrase corporate shilling because I think it’s not the most precise descriptor of the situation, but it’s not entirely innacurate either. I think all of their talk about “it’s anonymized” or “it’s not excessive” or what have you is just distraction: the real issue is that it’s on by default.