418teapot

joined 1 year ago
[–] [email protected] 8 points 1 week ago (1 children)

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!

[–] [email protected] 7 points 2 weeks ago* (last edited 2 weeks ago)

Best I can do is

"\ude41🙂".split("").reverse().join("")

returns "\ude42🙁"

[–] [email protected] 15 points 1 month ago

Yeah good point. I suppose the problem is this function that operates on numbers allows numeric strings to be passed in in the first place. The only place where I would really expect numeric strings to exist is captured directly from user input which is where the parsing into a numeric data type should happen, not randomly in a library function.

[–] [email protected] 31 points 1 month ago* (last edited 1 month ago) (2 children)

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
[–] [email protected] 1 points 7 months ago

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.

[–] [email protected] 5 points 7 months ago (10 children)

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
[–] [email protected] 1 points 11 months ago

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?

[–] [email protected] 2 points 11 months ago

That's wild, I've never seen an upside down port.

I agree reversibility is better and am happy usb c will finally kill this meme.

[–] [email protected] 53 points 11 months ago* (last edited 11 months ago)

I would have more sympathy for Youtube if 1. it wasn't the de-facto standard where essentially all video media gets uploaded to (which Youtube itself has done everything in its power to make happen) and 2. the company that owned it didn't also own the most popular phone OS, most popular search engine, most popular email provider, most popular ad network, most popular maps, most popular online office suite, most popular airline booking, 2nd most popular cloud hosting... The list goes on

Until a federated solution like peertube gains more traction I have no problem paying content creators directly via patreon, and do everything in my power to not pay Google a dime. Trust me, they can afford it just fine.

[–] [email protected] 1 points 11 months ago

Yeah that's fair. But I feel like I've seen these "USB superposition" memes since before IoT was even a thing.

[–] [email protected] 3 points 11 months ago* (last edited 11 months ago) (4 children)

Can someone explain to me why I keep reading about people having problems plugging in USB A connectors upside down? I feel like I'm taking crazy pills. Per the spec, the holes always go up. They indicate the correct way to plug in the port. Not only that, but the printed logo on the connector also always goes up.

The only time this is SLIGHTLY confusing is if you have a desktop tower where the motherboard is essentially mounted sideways, but for that case it just takes an extra second to think which way is "up" from the perspective of the motherboard.

And before anyone says "who reads the spec?", it feels like I subconsciously knew this for something like a decade before I even knew what a spec was.

view more: next ›