So yesterday was a weird day of:

a) Lamenting that web access is dependent on a few central services like Fastly.

b) Celebrating that iOS is going to pipe all web traffic through a VPN controlled by Apple.
(the VPN sounds good, and I imagine it could be disabled by the user in some way, but the juxtaposition was weird)
(I wonder if responses should pass a CORS check if the request was without credentials and everything went through the browser/OS VPN)

• • •

Missing some Tweet in this thread? You can try to force a refresh

Keep Current with Jake Archibald

Jake Archibald Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!


Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @jaffathecake

4 May
😬 localStorage is broken in Safari 14.1.

Tabs end up with seperate localStorage for reading, but the same localStorage for writing. This will likely result in data loss for users. (h/t @forresto)…
Also, any cross-tab communication that relies on the 'storage' event (such as BroadcastChannel polyfills) simply won't work.

If you need a workaround, here's a version of the above that uses:

➡️ indexedDB to store the data
➡️ service workers to broadcast changes to other tabs…
Read 4 tweets
10 Dec 20
A few people has trouble getting the new version of Here's what happened:
Part 1: I accidentally changed the URL of the service worker. That was just a dumb mistake…

I fixed that, but folks still weren't finding out about the update…
Squoosh has had an "update available" message since the start. It pops up when there's a service worker update. The code that handles this was split into its own module, since it isn't needed for the first interaction…
Read 8 tweets
20 Aug 20
Whenever I need to clamp a number between a `min` and a `max`, it takes me ages to convince myself this implementation is correct.

But yeah, it's easy! I just want the min of the max of the num and the min and the max. num = Math.min(Math.max(num, min), max);
The min of the max of the num and the min and the max. A licky boom boom down.
"@jaffathecake I actually don't have a problem reading that because I am very smart" yes well done mate thanks for getting in touch
Read 4 tweets
18 Apr 20
One of our cats is missing and it's basically fucking awful
I have a plan
It's 4:30am, and it's totally calm out for the first time in a while. If I call to the cat, I can hear him yowling, one, maybe two gardens down. Fuck. Now I just need to wait for a sensible time to knock on doors, and find a socially distant way to do this.
Read 81 tweets
15 Feb 20
@heydonworks Did I ever tell you about the time someone called the police on me because they found my email in the source of their webmail client?
Read 9 tweets
3 Jan 20
All code using array.reduce should be rewritten without array.reduce so it's readable by humans *mutes thread*
Ok ok, fair enough, there are cases where array.reduce is the best thing to use.

Specifically, cases where you want to look really smart and don't care about readability.
I mean, wtf: Messy array.reduce code example from
Read 13 tweets

Did Thread Reader help you today?

Support us! We are indie developers!

This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!

Follow Us on Twitter!