• 0 Posts
  • 49 Comments
Joined 1 year ago
cake
Cake day: June 15th, 2023

help-circle
  • 418teapot@lemmy.worldtoSelfhosted@lemmy.worldProgrammatic access to discord
    link
    fedilink
    English
    arrow-up
    9
    arrow-down
    1
    ·
    2 months ago

    It is likely not worth your effort as whatever you come up with will likely result in discord deactivating your account for breaking their ToS, or them breaking their API forcing you to constantly play catch-up.

    This is why open communication protocols are so important. Email is still as ubiquitous as it is because it’s a protocol, not an API.

    I personally think it would be less overall effort to get your friends to switch to an open protocol like matrix, or XMPP than it would playing cat and mouse with proprietary APIs. But you do you, I wish you the best of luck!



  • I often take the expo bike path to Culver City. It should get better this year when they finally connect the bike path to Motor, but until they do I usually take one of two routes:

    • Take the expo bike path east until it ends at Overland, then take Northvale (a small residential street, but very hilly) Right on Motor (painted bike lanes but wide and feels fairly safe), Left on National (painted bike lanes, very low traffic), and when crossing Palms the expo bike path resumes again (you can get into the left hand turn lane on National but instead of completing it under the 10 just make a right onto the sidewalk to get back onto the bike path). You can take that all the way to Ivy station, or if you want to go further west I usually exit it at Durango, enter the parking lot there and cross Venice with the light onto Culver blvd which after 1 block has great bike lanes. You may be tempted to take Bagley but I recommend avoiding it, it’s one of the few crossings under the 10, so many cars are aggressive.

    • When I want to avoid the hills on Northvale, I exit the expo bike path onto Midvale, Right on Coventry, Left on Sprout, Right on Kelton (all of these are small residential streets). Then I take that all the way down to Venice. There’s a protected crosswalk on Kelton to cross National, a light on Palms. If you cut back over to Midvale via Charnock there’s a light on Venice. I’ve done this route very often and never encountered aggressive drivers on Kelton like I have taking other routes. You can also continue south on Midvale to Girard to Elenda which has a fantastic bike path – stop by cofax for a good coffee.

    Here is more information on the project to connect the bike path: https://ladotlivablestreets.org/projects/Exposition-Bike-Path-Northvale-Segment








  • 418teapot@lemmy.worldtoProgrammer Humor@programming.devaverage day in NPM land
    link
    fedilink
    English
    arrow-up
    34
    arrow-down
    4
    ·
    edit-2
    3 months ago

    It’s kind of insane how bad this whole is-number thing is. It’s designed to tell you if a string is numeric, but I would argue if you’re ever using that you have a fundamental design problem. I hate dynamic typing as much as anyone else, but if forced to use it I would at least try to have some resemblance of sanity by just normalizing it to an actual number first.

    Just fucking do this…

    const toRegexRange = (minStr, maxStr, options) => {
      const min = parseInt(minStr, 10);
      const max = parseInt(maxStr, 10);
      if (isNaN(min) || isNaN(max)) throw Error("bad input or whatever");
      // ...
    

    Because of the insanity of keeping them strings and only attempting to validate them (poorly) up front you open yourself up to a suite of bugs. For example, it took me all of 5 minutes to find this bug:

    toRegexRange('+1', '+2')
    // returns "(?:+1|+2)" which is not valid regexp
    




  • Since I like to use bemenu I just wrote the derivation myself, it’s super short and simple especially borrowing from the build.sh script in wofi-emoji repository. You can get the emoji data like so:

    emoji-data = pkgs.runCommand "emoji-data" {
            buildInputs = [ pkgs.cacert pkgs.curl pkgs.jq ];
            outputHashAlgo = "sha256";
            outputHash = "sha256-znAwFu0vq2B7lQ8uvG0xKv9j3jYr6P0CZpjoKMNPhZw=";
          } ''
            curl 'https://raw.githubusercontent.com/muan/emojilib/v3.0.6/dist/emoji-en-US.json' \
                | jq --raw-output '. | to_entries | .[] | .key + " " + (.value | join(" ") | sub("_"; " "; "g"))' \
                > $out
          '';
    

    And then write a small wrapper script of your liking. I’m using wtype and bemenu, but you could just as easily use wl-clipboard and rofi for instance. This is to me one of the huge benifits of nix, how you can slam these small scripts together and not worry about missing dependencies when taking the configuration to other systems.


  • Agreed, but my point is with a centralized network the lowest common denominator wins. There is no reason you can’t have QoL features on an open network, and thusly let everyone have the features that they care most about.

    Can you imagine what a shithole the internet would have been if email wasn’t federated an open? There is absolutely no way that whatever centralized bullshit would have spawned instead would already be either long gone or enshittified to the point of being useless.


  • Good for you, you have a short list of requirements out of a chat service and discord perfectly fills your niche. But different people have different requirements for chat, and they don’t align. And network effects force people who have differing requirements to use the service with the most users which sucks.

    For instance here are things that I require from any chat service that I use that discord completely falls flat at:

    • Ability to run it on my linux machine without using an electron client (npm is a huge mess of supply chain attacks and I refuse to run any software that is likely to contain dependencies from it)
    • Ability to run it on my AOSP phone which does not have any google play services installed
    • Ability to write software to back up messages without fear of a company changing their API and breaking my backup system




  • Definitely agree, but your link is protected by cloudflare (yet another centralized service destroying the internet) and therefore I’m unable to get through because I have privacy.resistFingerprinting enabled on my browser so cloudflare is unable to determine I’m human I suppose.

    I despire youtube and it’s monopoly, and I think it get’s an appropriate amount of hate on here and HN, but what confuses me to no end are the people who complain about youtube turn right around and constantly recommend cloudflare. Can someone explain what I am missing?