idTech 4 WebAssembly port – Doom 3 Demo

This article is a repost promoting content originally published elsewhere. See more things Dan's reposted.

Doom 3 running in Dan's web browser

Back in 2011, some folks cross-compiled Doom (the original, not the reboot, obviously) to JavaScript, leveraging the capabilities of the then-relatively-young <canvas> element and APIs. I was really impressed to see that JavaScript had come so far and that performance on desktop devices was so slick. Sure, this was an 18-year-old video game, but it was playable in a browser, which was a long way from the environment for which it was originally developed.

Now Doom 3‘s playable in a browser, and my mind’s blown all over again. This follows almost the same curve – Doom 3’s 16 years old – but it still goes to show that there’s little limit to the power of client-side browser programming. They’ve done this magic with WebAssembly; while WebAssembly goes slightly against my ideas about the open-source nature of the Web, I still respect the power it commands to do heavyweight crunching tasks like this one.

How long until AAA developers start developing with the Web as an additional platform?

That Discomfort You’re Feeling Is Grief

This article is a repost promoting content originally published elsewhere. See more things Dan's reposted.

There is something powerful about naming this as grief. It helps us feel what’s inside of us. So many have told me in the past week, “I’m telling my coworkers I’m having a hard time,” or “I cried last night.” When you name it, you feel it and it moves through you. Emotions need motion. It’s important we acknowledge what we go through.

Scott makes a good point; the experience of the coronavirus crisis and lockdowns is distinctly grief-like. Insofar as the Kübler-Ross model is applicable in general, it’s a good predictor of individuals’ reactions to their temporary “new normal”. But the lesson to take from this article, I think, isn’t about understanding the feelings and behaviour of your fellow humans but, as the author says, in giving a name to your own.

The realisation that what you’re experiencing is grief and that it’s okay to need an indefinite amount of time to process that is empowering and reassuring.

Apple just killed Offline Web Apps while purporting to protect your privacy

This article is a repost promoting content originally published elsewhere. See more things Dan's reposted.

On the face of it, WebKit’s announcement yesterday titled Full Third-Party Cookie Blocking and More sounds like something I would wholeheartedly welcome. Unfortunately, I can’t because the “and more” bit effectively kills off Offline Web Apps and, with it, the chance to have privacy-respecting apps like the prototype I was exploring earlier in the year based on DAT.

Block all third-party cookies, yes, by all means1. But deleting all local storage (including Indexed DB, etc.) after 7 days effectively blocks any future decentralised apps using the browser (client side) as a trusted replication node in a peer-to-peer network. And that’s a huge blow to the future of privacy.

Like Aral and doubtless many others, I was initially delighted to see that Safari has beaten Chrome to the punch, blocking basically all third-party cookies through its Intelligent Tracking Protection. I don’t even routinely use Safari (although I do block virtually all third-party and many first-party cookies using uMatrix for Firefox), but I loved this announcement because I knew that this, coupled with Google’s promise to (eventually) do the same in their browser, would make a significant impact on the profitability of surveillance capitalism on the Web. Hurrah!

But as Aral goes on to point out, Apple’s latest changes also effectively undermines the capability of people to make Progressive Web Applications that run completely-offline, because their new privacy features delete the cache of all offline storage if it’s not accessed for 7 days.

PWAs have had a bumpy ride. They were brought to the foreground by Apple in the first place when Steve Jobs suggested that something-like-this would be the way that apps should one day be delivered to the iPhone, but then that idea got sidelined by the App Store. In recent years, we’ve begun to see the concept take off again as Chrome, Firefox and Edge gradually added support for service workers (allowing offline-first), larger local storage, new JavaScript interfaces for e.g. cameras, position, accelerometers, and Bluetooth, and other PWA-ready technologies. And for a while I thought that the day of the PWA might be drawing near… but it looks like we might have to wait a bit longer.

I hope that Google doesn’t follow Apple’s lead on this particular “privacy” point, although I’m sure that it’s tempting for them to do so. Offline Web applications have the potential to provide an open, simple, and secure ecosystem for the “apps” of tomorrow, and after several good steps forwards… this week we took a big step back.

Local

This article is a repost promoting content originally published elsewhere. See more things Dan's reposted.

How are you doing? Are you holding up okay?

It’s okay if you’re not. This is a tough time.

It’s very easy to become despondent about the state of the world. If you tend to lean towards pessimism, The Situation certainly seems to be validating your worldview right now.

I’m finding that The Situation is also a kind of Rorschach test. If you’ve always felt that humanity wasn’t deserving of your faith—that “we are the virus”—then there’s plenty happening right now to bolster that opinion. But if you’ve always thought that human beings are fundamentally good and decent, there’s just as much happening to reinforce that viewpoint.

Jeremy shares some great tips on seeing the best in humanity and in the world as we work through the COVID-19 crisis. Excellent.

Here’s What a Googol-to-One Gear Ratio Looks Like

This article is a repost promoting content originally published elsewhere. See more things Dan's reposted.

To celebrate being alive for a billion seconds, Daniel Bruin built a machine with 100 gears with a 10-to-1 gear ratio…meaning that the overall gear ratio is a googol-to-one. (A googol is 1 with 100 zeros.)

To turn the last gear in this train one full revolution, you’d need to turn the first gear 10,​000,​000,​000,​000,​000,​000,​000,​000,​000,​000,​000,​000,​000,​000,​000,​000,​000,​000,​000,​000,​000,​000,​000,​000,​000,​000,​000,​000,​000,​000,​000,​000,​000 times.

By my estimation, that’s enough gearing to allow you to winch the entire solar system, by hand, with ease. Assuming you can find a tow hitch on it somewhere.

IndieWebCamp London “Group Photo”

This article is a repost promoting content originally published elsewhere. See more things Dan's reposted.

Group picture @indiewebcamp London! #IndieWeb We had a good time “meeting” #Online during #COVID19

Group picture from IndieWebCamp London 2020

I’d hoped to attend IndieWebCamp London but after it got cancelled on account of Covid-19 we still managed to make it happen as a virtual meetup. 

Uplifting Diverse Genders: Beyond “Women and Non-Binary”

This article is a repost promoting content originally published elsewhere. See more things Dan's reposted.

Some organizations are beginning to take steps to be more inclusive by outlining in their mission statement that they welcome both women and non-binary people. However, this approach only scratches the surface of the needs for inclusion of diverse genders. While it’s certainly a good start, I’m here to discuss why the language of “Women and Non-Binary” can be problematic and how we can do better.

If your goal is to uplift marginalized genders, stating that your opportunity is open to “Women and Non-Binary people” has two important pitfalls:

  1. Including non-binary people in feminine coded spaces perpetuates the misconception that all non-binary people identify with aspects of femininity.
  2. Focusing only on non-binary people and women leaves out trans men, who are often overlooked and need just as much support.

Quinn Crossley acknowledges how good it is to have spaces for specific marginalised genders and how it’s even better to ensure that non-binary genders are considered too, but then they go even further by making four further recommendations, as follows:

  1. Remove gendered terms from your group’s name.
  2. Avoid language that lumps non-binary people in with a binary gender.
  3. Be specific about who is included in your mission statement.
  4. Use inclusive language when communicating with group members.

These are really great, and I’d recommend that you go read the original article (even if you have to put up with Medium’s annoying popups) if you’re looking for a fuller explanation of the arguments. What’s especially valuable about them, to me, is that they provide a framework for thinking differently about non-binary inclusion, as well as examples from which you can derive action points for your own groups. They’re all relatively-easy ideas to implement, too: if you’ve already got a moderately-inclusive group, you can make just a few minor tweaks to your stated values and your organisational language and reach a whole other level.

(Quick confession: I still don’t get the appeal of “folxs”, though; “folks” already felt to me personally to be completely free of gender. This might just be another one of those things I haven’t gotten my head around yet, though, like how – and I say this speaking as a bisexual person – there’s somehow necessarily always a difference between bisexuality and pansexuality.)

Why the GOV.UK Design System team changed the input type for numbers

This article is a repost promoting content originally published elsewhere. See more things Dan's reposted.

Android number pad

Using <input type="text" inputmode="numeric" pattern="[0-9]*"> allows for a degree of separation between how the user enters data (“input mode”), what the browser expects the user input to contain (type equals number), and potentially how it tries to validate it.

I’ve sung the praises of the GDS research team before, and it’s for things like this that I respect them the most: they’re knowing for taking a deep-dive user-centric approach to understanding usability issues, and they deliver valuable actionable answers off the back of it.

If you’ve got Web forms that ask people for numbers, this is how you should be doing it. If you’re doing so specifically for 2FA purposes, see that post I shared last month on a similar topic.

Bypassing AppProtocol Prompts

This article is a repost promoting content originally published elsewhere. See more things Dan's reposted.

Starting in Edge 82.0.425.0 Canary, a new flag is available.

Edge Canary showing an "Always allow [this website] to open links of this type..." checkbox

This is a good move; a relatively simple innovation that’s sure to help end-user security. If you can’t see what’s different above without following the link through to the original article, here’s the short version: an upcoming version of Edge will allow you to authorise a specific site to open a particular application to handle a link… without having to compromise by choosing either to (a) see the security dialog every single time (which teaches users to “just click OK”) or (b) allow the dialog to be suppressed for links that open a particular application (which makes it easier for bad guys to make poisonous links).

So you’ll be able to, for example, say “slack.com can open Slack for me, but other websites have to ask”. Nice.

I hope that other browser manufacturers follow suit, especially on mobile where the web/web-launched-native-app boundary has never been fuzzier.