2993 stories
·
1 follower

Health Data

2 Comments and 15 Shares
Donate now to help us find a cure for causality. No one should have to suffer through events because of other events.
Read the whole story
emrox
12 hours ago
reply
Hamburg, Germany
ameel
1 day ago
reply
Melbourne, Australia
Share this story
Delete
2 public comments
synapsecracklepop
1 day ago
reply
As a medical librarian, I can confirm that this is a comic about health data.
ATL again
taddevries
1 day ago
reply
Just wow!

The Surprising Truth About Pixels and Accessibility

1 Share

“Should I use pixels or rems?”. In this comprehensive blog post, we'll answer this question once and for all. You'll learn about the accessibility implications, and how to determine the best unit to use in any scenario.



Read the whole story
emrox
12 hours ago
reply
Hamburg, Germany
Share this story
Delete

Please stop making Discord servers for things that shouldn't be Discord servers

1 Comment

I am in 41 Discord servers. Some belong to livestreamers and their viewers, some are community hubs for small indie games, several are modding and speedrunning communities, and others just for small groups of friends. I've lurked in more than 41 at times, and even that number doesn't rival what some of my friends juggle. I've watched enough servers come and go and after seven years that I am begging everyone to stop making Discord servers for things that just don't need them.

Now that Discord has made itself the de facto gaming hangout space and is pushing for ubiquity in all online communities, it may feel like whatever you're organizing has to have a server for folks to join. 

I promise it doesn't.

Please don't start a Discord server if you are:

RECOMMENDED VIDEOS FOR YOU...

Steam Deck Review | In 60 Seconds

Want a quick runs down of the pros and cons of the Steam Deck? Check out our 60 second review.

0 seconds of 1 minute, 24 secondsVolume 0%

Press shift question mark to access a list of keyboard shortcuts

Play/PauseSPACE

Increase Volume

Decrease Volume

Seek Forward

Seek Backward

Captions On/Offc

Fullscreen/Exit Fullscreenf

Mute/Unmutem

Seek %0-9

PC Gamer's Assassin's Creed Tier List - Highlight #1

03:44

  • An overworked indie game dev without a community manager.
  • A modder who already has an account on NexusMods or ModDB.
  • A new Twitch streamer still learning to moderate your chat while live.
  • Using it as an alternative to a wiki for a game. Please no.

Reading patch notes in a chat log where every single message is highlighted with the equal importance of an @everyone tag, makes me want to scream.

Bug report channels are chaos: developers and modders get flooded with complaints about bugs, then discussions of the bug, and then 10 more people reporting the same bug. If you've ever been annoyed by duplicate issue threads on Reddit or a forum, know that Discord is far worse.

Back in 2015, Twitch livestreamers were some of the earliest adopters of Discord as a community space for their fans. I was one of them. We were all so fed up with Skype and Facebook groups and subreddits that Discord felt magical. It doesn't anymore: in 2022, your livestream probably doesn't need a server, either. Everyone watching is already in their own 41 servers, and getting any of them to treat yours as their main social space is a more difficult pitch than ever. I've watched those original 2015 servers shut down, and I've visited the wastelands of brand new Twitch streamer servers—sidebars of 20 preemptively created chat channels, all desolate.

Discord has made an effort to move beyond gaming with features targeted at taking on forums. These days you can customize your avatar and name per server, and side conversations can be pulled off into threads to avoid clogging a chat. But Discord servers are not forums—they're the overwrought descendants of the guild Trello and Skype combos that I once frequented as an MMO player. "Discord replaces forums" is just three words to start a fight with me. 

In the first frantic week after Elden Ring's launch I was hunting down CheatEngine tables, one of which was only being distributed on the creator's Discord server. Given Elden Ring's popularity, I wasn't surprised to find the place packed. The sidebar was already stacked with text chat channels for support, tutorials, and co-op, but also for memes, cats, and food. Why does a glorified devlog need a memes chat? (It doesn't.)

The rules channel had evolved rapidly and haphazardly, leaving no doubt that the server's creator was feeling a bit harried by their sudden small town-sized community of 15,000 members.

I suspect "I can't believe this had to be said" is a sentence painfully familiar to any community manager, amateur or professional.

Even if you've never seen someone learn about internet toxicity in real time, you've almost certainly been in a server where the owner forgot to take away permissions for members to @everyone in chat, leading to a nightmare surge of notifications. Maybe you've seen an overwhelmed server owner break under the pressure and nuke their entire community server, booting everyone and wiping entire channels.

I was in the Stardew Valley Expanded mod's community server when an unknown assailant deleted swaths of chat channels and remade everything to appear as if it were an official server for a small game called Potion Permit—whose developers had to clarify that they were not involved.

Even after witnessing so many slip ups, I find it difficult to draw hard lines around what shouldn't be a server.

Mods don't need Discord servers, but Stardew Valley Expanded is so enormous a mod that I see how players enjoy having it as a tentpole social space.

Indie games can have chaotic, unmanaged servers, but some have publishers handling that aspect, which has given me unforgettable experiences like accidentally attending a roleplay murder wedding.

Twitch streamers don't necessarily need a Discord server either, yet some giant communities like Red Dead Online's horse lovers seem to be doing great with theirs.

If you're dead-set on making a Discord server for a project that doesn't for sure need one, I'm begging you to use a few tricks to keep it manageable. Consider making the majority (or all) of your channels read-only. If this is a glorified billboard, no need for everyone to chime in. Enable the two-factor authentication requirement for anyone with moderation powers. No more hacker mutinies, please.

And for the love of all that is holy: skip the #memes channel. 

Read the whole story
emrox
1 day ago
reply
I guess that's also the case not just for gaming related projects, but also for any open source project. Chat content is not indexable, so it's a lot harder to find an already answered question.
Hamburg, Germany
Share this story
Delete

The Modern JavaScript Tutorial

1 Share

The Modern JavaScript Tutorial

Read the whole story
emrox
2 days ago
reply
Hamburg, Germany
Share this story
Delete

Wireless is a trap

1 Share

I used to be an anti-wire crusader. I hated the clutter of cables, and my tendency to unconsciously chew on them if they got anywhere near my face. But running into bug after tricky wireless bug—mostly while trying to make my video calls work better—I’ve apostasized. The more I’ve learned about wifi, Bluetooth and related protocols, the more I’m convinced that they’re often worse, on net, than wires.

For instance: most people, when their video call stutters, blame their Internet service provider. That’s understandable, since most ISPs are overpriced oligopolists with barely-usable software and horrible customer service. However, every time I can remember helping someone track down the source of their connection problems, the culprit has turned out to be their wifi. And often, the easiest fix has been to run a cable.

Wifi (and bluetooth, etc.) sucker you in by making it seem like they “just work.” But if you investigate, you’ll often find that the wireless link is operating in a degraded state that performs much worse than a wired equivalent. Since this degradation is silent, it’s often not obvious that the problem is the wireless—instead, you’ll probably conclude that it’s your device/software/self.

Over and over again, I’ve seen people fix some wireless-related problem and go “wow, I had no idea how much better this could be!"

Recently, I finally ragequit and replaced all my desk’s wireless devices with wired ones. While I had to invest a bit in figuring out cable management (and break my habit of chewing on headphone cables), I was able to achieve nearly the same level of tidiness, with much better reliability, quality and speed. I no longer have to worry about my equipment failing to pair, running out of battery, or spontaneously giving me garbled robot voice during a livestreamed talk. It’s dramatically reduced my level of device-related agony.

To illustrate the degree of agony I’m talking about, below I’ll cover some of the subtle, hard-to-notice but severe problems I’ve run into with wireless protocols. If you’re convinced, try out some wires—you, too, can figure out whether you’ve been a victim of the wireless trap.

Wifi

Interference. If multiple wireless networks are operating on the same “channel” (radio frequency band), their transmissions can interfere with each other. When that happens your device needs to re-send the same information, which makes your wifi slow.

You might think this could be solved by having routers automatically figure out the least interference-prone channel to use, but many of them seem to be quite bad at this. (Also, the old 2.4GHz wifi protocol was only allowed to use three non-overlapping channels.)

That means in dense areas (e.g. apartment buildings), routers will often pick a bad channel and end up interfering with each other. There’s no way for your router or device to notify you if it’s experiencing interference, so you’ll only learn about it if you know how fast your router “should” be and notice that it’s slower.

Dead zones. If you’re too far from your router, your computer may not be able to reliably receive the signal that the router is sending, or vice-versa. How far is “too far” can also be affected, sometimes in weird ways, by whatever walls or ceilings are in the way. Unless you know a lot about how radio waves interact with building materials, it’s hard to predict where your dead zones are.

The worst part is that many dead zones aren’t fully dead: your computer and the router will try to retransmit each data packet multiple times before giving up, and often it will eventually go through. If that’s what mostly happens, instead of a dead zone you’ll end up with a “slow zone” where your internet works, but is subtly crappy.

Of course, unless you’re keeping a close eye on your network performance statistics and how they relate to your spatial location, you’d never notice a slow zone. If you noticed anything, it would be that sometimes your internet is randomly worse than other times.

Polling. Any program on your computer can ask your wireless card to enumerate the nearby networks. This causes it to go into “polling mode,” where it spends less time transmitting data and more time listening for routers advertising their network info (it can’t transmit and receive at the same time). Thus, it will cause a sudden burst of network delays that can e.g. cause your video call to stutter or freeze for a few seconds.

Most programmers don’t realize that wireless polling interferes with network performance, so they ask the OS to poll with wild abandon. I’ve been burned by this many times.

The most egregious instance was when I noticed that my video calls sometimes stuttered with an oddly regular frequency. Here’s the tortuous process by which I tracked down the culprit:

  • I pinged my router every second for about 10 minutes, then plotted the output in Excel and confirmed that the slow pings were exactly 30 seconds apart. That made me guess it was probably a software problem.
  • I asked for help debugging it on Facebook and someone recommended enabling macOS wireless debug logging.

  • I enabled the debug logging and noticed that several apps, when I had them open, would requesting network scans, at times correlated to the increased ping latencies.

Qt included a component which would poll for networks every 30 seconds whenever a “network access manager” was instantiated, causing pretty much any Qt app using the network to degrade your wifi for ~5 out of every 30 seconds.

There were already multiple bug reports for this issue, one of which was declared “closed” by an engineer because they allowed users to use an environment variable to disable the polling.

Of course, this is an unbelievably useless “solution” because most users won’t realize that their wifi is degraded; those who do won’t realize that it’s Qt’s fault; and those who realize will still have a hard time Googling for the appropriate fix (let alone implementing it, unless they can code).

This behavior is so user-unfriendly, and the “fix” so laughable, that it seems likely that the Qt developers somehow failed to realize the severity of the problem—I’d guess it ruined video calls for on the order of a million people, since, for instance, it affected qBittorrent which has been downloaded 75m times. Most of those million people were probably not technical enough to figure out how to “set the QT_BEARER_POLL_TIMEOUT environment variable to -1.”

(Fortunately, it does look like in 2017—three years after the original bug report—they finally realized they should just stop polling and fixed the bug the right way.)

Qt was the worst offender, but it’s far from the only one. Even macOS had a bug for a while where the same thing would happen when you opened Spotlight (which I do frequently during video calls, if someone asked me to look at a particular file, or if I want to zone out and read the internet multitask). I had to fix it by disabling individual Spotlight result types until I found out which one was causing the problem. So it seems even Apple’s own developers don’t realize that wifi polling is a hazard.

Bluetooth audio

High latency. Most Bluetooth headsets introduce around 150-300ms of latency (the time between my computer receiving the audio from the Internet, and the sound coming out of the headphones). That means that if I’m chatting with a friend in New York, the audio data will take about 50ms to get from them to my computer, and, say, 200ms—4x as long—to get from my computer to my ears. Since high latency ruins the natural flow of conversations, I’d like to eliminate as much of it as I can.

It’s possible to find lower-latency Bluetooth headsets if they support the right “codec,” like “AptX Low Latency.” Of course, in addition to supporting the codec in theory, they have to agree with your computer to use it, which can sometimes fail. (The option to inspect which codec is being used is, of course, buried in various hidden menus and settings depending on your OS.)

Low quality. Related to the codec issue, many bluetooth devices will play high-quality audio when the microphone is turned off, but degrade to much lower-quality audio when it’s turned on. You can test this for yourself if you have a bluetooth headset: play music on it, then open your microphone settings to the page where it shows the mic input volume. You’ll probably hear the audio cut out for a second, then return at lower quality. (This happens even with devices you might expect to be high-end, like my Airpods Pro + 2018 Macbook Air.)

Bluetooth general

Bluetooth bugs. Even though all computers now have built-in Bluetooth, many Bluetooth accessories also ship with proprietary dongles that use a different protocol. (For instance, Jabra headsets, Logitech keyboards/mice, this headset mic.) These dongles apparently use different forms of wireless transmission because Bluetooth drains lots of power, adds latency, and is less reliable.

For instance, on my Mac’s built-in bluetooth, my mouse (a Logitech MX Master) displayed noticeable jank—stopping, then jumping, instead of moving smoothly. I’ve seen this happen on three different Macs, so it seems likely to be a software problem. When I switched to using Logitech’s dongle it stopped.

Similarly, when connected to Mac bluetooth, my Jabra Evolve 75 headset would frequently have the mic or sound drop. It (mostly) worked fine on its own dongle.

I’m not sure whether to blame Jabra/Logitech or Apple (or the Bluetooth standards body) for these problems. But either way, when device manufacturers are abandoning it for other protocols that require a dongle-per-device, we know Bluetooth has failed.

The original goal of Bluetooth was to unify different wireless devices in a single wireless radio and protocol, much like Harald Bluetooth unified Denmark. Meanwhile, here in reality, I recently had to buy a USB hub just for the dongles for my keyboard, mouse, headphones and microphone.

Reliability. Even with proprietary dongles, wireless devices are much less reliable than wired. For instance, I wrote above that my Logitech MX Master worked fine once I switched to the proprietary dongle, but that’s not quite true: it worked fine for a while, then one day it started janking again for no discernible reason. (That was the day I finally apostasized and threw out my desk’s wireless gear.)

I encounter other Bluetooth bugs that require me to un-pair and re-pair a few times a week. For instance, my AirPods sometimes “desynchronize” so that one is playing back audio a few milliseconds ahead of the other, causing a strange and really unpleasant echo effect.

Interference. One possible reason for poor reliability is that Bluetooth and 2.4GHz wifi interfere with each other. Much like wifi interference, your devices will never warn you if they’re experiencing interference; you’ll notice only because they suddenly become kind of crappy.

Charging. Not the fault of Bluetooth per se, but a downside of using too many wireless devices is that it’s really annoying to remember to keep them all charged. Mine tended to die at the least opportune times, e.g. during video calls.

Conclusion

Most of these problems shared a few things in common:

  • Things didn’t break completely, they just degraded. That’s probably the right call, but it meant that I didn’t immediately notice there was a problem.

  • Compounding this, I had no idea how well the device “should” work, so I took a long time to notice that it was in a degraded state.

  • Even once I was aware of the problem, it was hard or impossible to understand the root cause and fix it because I didn’t know the right diagnostics (or they didn’t exist).

I want my tools to be predictable—to have consistent performance and fail in ways that I understand. Wireless protocols are inherently more complex (because many devices share the same airspace) and have more different ways to fail, so they’re much less predictable than wires. For me, the convenience often isn’t worth that cost.

I still use wireless gear when it’s clearly worth it—for instance, I use wifi for my laptop since it moves around a lot, and I use a wireless charger for my phone since I don’t really care how fast it charges. But for serious work, I’ll spend the time to fiddle around with cable routing and wire everything.

This makes me wonder what the world would look like if we took 10% of the effort we currently spend on removing wires from everything, and put it into ingenious cable routing solutions instead. I’d bet that a lot of wireless-dependent activities like video calls would be way more pleasant.

Correction: a previous version of this post mistakenly described Bluetooth devices' proprietary dongles as Bluetooth dongles. Thanks to helpful Hacker News commenters for the correction, which even more strongly supports my point that Bluetooth sucks :)

Read the whole story
emrox
5 days ago
reply
Hamburg, Germany
Share this story
Delete

Commands.dev - find commands at the speed of thought

1 Share

A searchable, templated catalog of popular terminal commands curated from across the internet.

Pretty sweet resource from our friends at Warp. Contribute your own commands on GitHub.

Discuss on Changelog News

Read the whole story
emrox
6 days ago
reply
Hamburg, Germany
Share this story
Delete
Next Page of Stories