Lea Verou, PhD
@lea.verou.me
I make things for making things.
@[email protected] on Mastodon, @leaverou elsewhere
https://lea.verou.me
@[email protected] on Mastodon, @leaverou elsewhere
https://lea.verou.me
In today’s episode of Useless Info I just learned about #JS:
Turns out you cannot subclass Proxy (because it has no prototype).
Nice try Lea 🥲
Turns out you cannot subclass Proxy (because it has no prototype).
Nice try Lea 🥲
October 29, 2025 at 1:07 AM
In today’s episode of Useless Info I just learned about #JS:
Turns out you cannot subclass Proxy (because it has no prototype).
Nice try Lea 🥲
Turns out you cannot subclass Proxy (because it has no prototype).
Nice try Lea 🥲
Yes, in all Safari the proxy is slower, though not tremendously so in desktop:
October 27, 2025 at 10:06 PM
Yes, in all Safari the proxy is slower, though not tremendously so in desktop:
After years of internalizing that JS proxies are suuuper slow, I was surprised to find that in Chrome, they seem faster for running function side effects than simply wrapping a function: jsbenchmark.com#eyJjYXNlcyI6...
October 27, 2025 at 9:08 PM
After years of internalizing that JS proxies are suuuper slow, I was surprised to find that in Chrome, they seem faster for running function side effects than simply wrapping a function: jsbenchmark.com#eyJjYXNlcyI6...
I’m in love with @sarahedo.bsky.social’s hand-drawn illustrations in her #jsconf slides 😍
Great talk too, I dig the high-level overview of how different platforms do UI, that’s exactly the kind of cross-pollination we need to design better APIs for the Web.
Great talk too, I dig the high-level overview of how different platforms do UI, that’s exactly the kind of cross-pollination we need to design better APIs for the Web.
October 14, 2025 at 2:21 PM
I’m in love with @sarahedo.bsky.social’s hand-drawn illustrations in her #jsconf slides 😍
Great talk too, I dig the high-level overview of how different platforms do UI, that’s exactly the kind of cross-pollination we need to design better APIs for the Web.
Great talk too, I dig the high-level overview of how different platforms do UI, that’s exactly the kind of cross-pollination we need to design better APIs for the Web.
✈️ I was puzzled why so many delays and cancellations so I made the mistake of googling it and now I’m terrified. 😰
October 13, 2025 at 8:36 PM
✈️ I was puzzled why so many delays and cancellations so I made the mistake of googling it and now I’m terrified. 😰
And it gets worse…
Suppose you’re taking a friend along on the trip, so you’re now 3 adults + 1 kid. Then with Family, you actually pay more!
And no, you cannot opt-out of it and book everyone on a regular Flex fare. Chances are, you likely wouldn't even know, and would be glad for the "discount"!
Suppose you’re taking a friend along on the trip, so you’re now 3 adults + 1 kid. Then with Family, you actually pay more!
And no, you cannot opt-out of it and book everyone on a regular Flex fare. Chances are, you likely wouldn't even know, and would be glad for the "discount"!
September 24, 2025 at 1:19 PM
And it gets worse…
Suppose you’re taking a friend along on the trip, so you’re now 3 adults + 1 kid. Then with Family, you actually pay more!
And no, you cannot opt-out of it and book everyone on a regular Flex fare. Chances are, you likely wouldn't even know, and would be glad for the "discount"!
Suppose you’re taking a friend along on the trip, so you’re now 3 adults + 1 kid. Then with Family, you actually pay more!
And no, you cannot opt-out of it and book everyone on a regular Flex fare. Chances are, you likely wouldn't even know, and would be glad for the "discount"!
That wipes out even that 5%, making the grand total of savings less than $1, an effective discount of 0%.
In fact, after I took these screenshots, the fare changed slightly so in the OP screenshots the difference is literally $0.00!
Surely, 0% is as bad as it gets, right? Wrong. [5/7]
In fact, after I took these screenshots, the fare changed slightly so in the OP screenshots the difference is literally $0.00!
Surely, 0% is as bad as it gets, right? Wrong. [5/7]
September 24, 2025 at 1:19 PM
That wipes out even that 5%, making the grand total of savings less than $1, an effective discount of 0%.
In fact, after I took these screenshots, the fare changed slightly so in the OP screenshots the difference is literally $0.00!
Surely, 0% is as bad as it gets, right? Wrong. [5/7]
In fact, after I took these screenshots, the fare changed slightly so in the OP screenshots the difference is literally $0.00!
Surely, 0% is as bad as it gets, right? Wrong. [5/7]
Exhibit A: ATH-VIE on Sep 30
2 adults: Flex is $319.88/pax
1 adult + 1 kid: Flex → Family, now $362/pax (+13%). Flex no longer bookable.
So how much is the actual discount?
$319.88 * 2 = $639.76
$362.13 * 1.6 = $579.408
2 - 579.408 / 319.88 = 18.9% off
But it’s actually even worse… [2/7]
2 adults: Flex is $319.88/pax
1 adult + 1 kid: Flex → Family, now $362/pax (+13%). Flex no longer bookable.
So how much is the actual discount?
$319.88 * 2 = $639.76
$362.13 * 1.6 = $579.408
2 - 579.408 / 319.88 = 18.9% off
But it’s actually even worse… [2/7]
September 24, 2025 at 1:19 PM
Exhibit A: ATH-VIE on Sep 30
2 adults: Flex is $319.88/pax
1 adult + 1 kid: Flex → Family, now $362/pax (+13%). Flex no longer bookable.
So how much is the actual discount?
$319.88 * 2 = $639.76
$362.13 * 1.6 = $579.408
2 - 579.408 / 319.88 = 18.9% off
But it’s actually even worse… [2/7]
2 adults: Flex is $319.88/pax
1 adult + 1 kid: Flex → Family, now $362/pax (+13%). Flex no longer bookable.
So how much is the actual discount?
$319.88 * 2 = $639.76
$362.13 * 1.6 = $579.408
2 - 579.408 / 319.88 = 18.9% off
But it’s actually even worse… [2/7]
I like Aegean Airlines but their "40% discount for children" is a scam.
tl;dr: The "40% off" is based on a fake inflated fare. The effective discount is 14% for 1 adult + 1 child, 0% for 2 adults + 1 child, and actually increases for adult:children ratios > 2:1 with no opt-out.
An exposé. [1/7]
tl;dr: The "40% off" is based on a fake inflated fare. The effective discount is 14% for 1 adult + 1 child, 0% for 2 adults + 1 child, and actually increases for adult:children ratios > 2:1 with no opt-out.
An exposé. [1/7]
September 24, 2025 at 1:19 PM
I like Aegean Airlines but their "40% discount for children" is a scam.
tl;dr: The "40% off" is based on a fake inflated fare. The effective discount is 14% for 1 adult + 1 child, 0% for 2 adults + 1 child, and actually increases for adult:children ratios > 2:1 with no opt-out.
An exposé. [1/7]
tl;dr: The "40% off" is based on a fake inflated fare. The effective discount is 14% for 1 adult + 1 child, 0% for 2 adults + 1 child, and actually increases for adult:children ratios > 2:1 with no opt-out.
An exposé. [1/7]
Computing some preliminary analysis over the #StateOfHTML pain points data and some …interesting patterns are emerging 🙃
September 22, 2025 at 2:20 PM
Computing some preliminary analysis over the #StateOfHTML pain points data and some …interesting patterns are emerging 🙃
Trying out ChatGPT Pro. It reminds me of some overconfident dudes I’ve worked with.
If you read its own commentary about what its doing, you expect to be floored by the quality of its results.
Then you look at the actual output and you’re like …that was it? That’s what all the fuss was about?
If you read its own commentary about what its doing, you expect to be floored by the quality of its results.
Then you look at the actual output and you’re like …that was it? That’s what all the fuss was about?
September 7, 2025 at 12:16 AM
Trying out ChatGPT Pro. It reminds me of some overconfident dudes I’ve worked with.
If you read its own commentary about what its doing, you expect to be floored by the quality of its results.
Then you look at the actual output and you’re like …that was it? That’s what all the fuss was about?
If you read its own commentary about what its doing, you expect to be floored by the quality of its results.
Then you look at the actual output and you’re like …that was it? That’s what all the fuss was about?
Despite leading this year’s #StateOfHTML survey, I procrastinated in typical me fashion and submitted my response in the last few hours — I had to beg @sachagreif.com to leave it open for just a little longer 🫣
If you’re like me, here’s the link: survey.devographics.com/en-US/survey...
If you’re like me, here’s the link: survey.devographics.com/en-US/survey...
September 1, 2025 at 11:29 AM
Despite leading this year’s #StateOfHTML survey, I procrastinated in typical me fashion and submitted my response in the last few hours — I had to beg @sachagreif.com to leave it open for just a little longer 🫣
If you’re like me, here’s the link: survey.devographics.com/en-US/survey...
If you’re like me, here’s the link: survey.devographics.com/en-US/survey...
This might be a nitpick but both 2 and 3 are correct, you *can* use @property to only define inheritance rules with no type information via syntax: “*”
August 13, 2025 at 11:58 PM
This might be a nitpick but both 2 and 3 are correct, you *can* use @property to only define inheritance rules with no type information via syntax: “*”
Re: inaccuracies the one that threw me the most was this one
*Any* color function can perform color space conversion (with relative colors) including color()
*Any* color function can perform color space conversion (with relative colors) including color()
August 13, 2025 at 11:50 PM
Re: inaccuracies the one that threw me the most was this one
*Any* color function can perform color space conversion (with relative colors) including color()
*Any* color function can perform color space conversion (with relative colors) including color()
Another day, another weird print-related #ChromeBug
I actually reported it this time: issues.chromium.org/issues/43489...
I actually reported it this time: issues.chromium.org/issues/43489...
July 29, 2025 at 6:16 PM
Another day, another weird print-related #ChromeBug
I actually reported it this time: issues.chromium.org/issues/43489...
I actually reported it this time: issues.chromium.org/issues/43489...
Lovely UX touch from ChatGPT: Holding down Cmd brings up a cheatsheet of keyboard shortcuts.
Help that is there when it’s needed and out of the way when it’s not.
Compare that to the common (anti)pattern where users must memorize a specific keyboard shortcut to bring this up (does anyone?).
Help that is there when it’s needed and out of the way when it’s not.
Compare that to the common (anti)pattern where users must memorize a specific keyboard shortcut to bring this up (does anyone?).
July 26, 2025 at 12:06 AM
Lovely UX touch from ChatGPT: Holding down Cmd brings up a cheatsheet of keyboard shortcuts.
Help that is there when it’s needed and out of the way when it’s not.
Compare that to the common (anti)pattern where users must memorize a specific keyboard shortcut to bring this up (does anyone?).
Help that is there when it’s needed and out of the way when it’s not.
Compare that to the common (anti)pattern where users must memorize a specific keyboard shortcut to bring this up (does anyone?).
Quick pulse check as @sachagreif.com and I finalize #StateOfHTML:
If you were presented with this question in a survey:
a) Do you know which options to check or would you be confused?
b) Are there any options you'd personally need to enter but are missing?
(this post may self-destruct tomorrow…)
If you were presented with this question in a survey:
a) Do you know which options to check or would you be confused?
b) Are there any options you'd personally need to enter but are missing?
(this post may self-destruct tomorrow…)
July 15, 2025 at 11:43 PM
Quick pulse check as @sachagreif.com and I finalize #StateOfHTML:
If you were presented with this question in a survey:
a) Do you know which options to check or would you be confused?
b) Are there any options you'd personally need to enter but are missing?
(this post may self-destruct tomorrow…)
If you were presented with this question in a survey:
a) Do you know which options to check or would you be confused?
b) Are there any options you'd personally need to enter but are missing?
(this post may self-destruct tomorrow…)
Just finished taking this year’s #StateOfCSS!
It was quite funny that there were CSS features I had designed where I had to select "Heard of it" because *technically* I haven't used them yet. 😅
If you plan to take it, do it now, it's closing very soon: stateofcss.com/en-US
It was quite funny that there were CSS features I had designed where I had to select "Heard of it" because *technically* I haven't used them yet. 😅
If you plan to take it, do it now, it's closing very soon: stateofcss.com/en-US
July 14, 2025 at 11:54 PM
Just finished taking this year’s #StateOfCSS!
It was quite funny that there were CSS features I had designed where I had to select "Heard of it" because *technically* I haven't used them yet. 😅
If you plan to take it, do it now, it's closing very soon: stateofcss.com/en-US
It was quite funny that there were CSS features I had designed where I had to select "Heard of it" because *technically* I haven't used them yet. 😅
If you plan to take it, do it now, it's closing very soon: stateofcss.com/en-US
[2/2]
When we manage, we apply the same systems to folks without that weight, so they FLY. No resistance. Just lift.
Add the diverse skillsets, innovative thinking, hyperfocus, pattern recognition, risk tolerance, and you’re shooting through the sky like a tiger defying the laws of gravity.
When we manage, we apply the same systems to folks without that weight, so they FLY. No resistance. Just lift.
Add the diverse skillsets, innovative thinking, hyperfocus, pattern recognition, risk tolerance, and you’re shooting through the sky like a tiger defying the laws of gravity.
June 14, 2025 at 6:39 PM
[2/2]
When we manage, we apply the same systems to folks without that weight, so they FLY. No resistance. Just lift.
Add the diverse skillsets, innovative thinking, hyperfocus, pattern recognition, risk tolerance, and you’re shooting through the sky like a tiger defying the laws of gravity.
When we manage, we apply the same systems to folks without that weight, so they FLY. No resistance. Just lift.
Add the diverse skillsets, innovative thinking, hyperfocus, pattern recognition, risk tolerance, and you’re shooting through the sky like a tiger defying the laws of gravity.
I LOVE this …Chart of Shame on webstatus.dev/stats “Features missing in only one browser”.
Even lets you click on individual data points and see which features each browser is holding the Web back from!
Hopefully it will motivate implementations of these features!
Even lets you click on individual data points and see which features each browser is holding the Web back from!
Hopefully it will motivate implementations of these features!
May 29, 2025 at 8:25 PM
I LOVE this …Chart of Shame on webstatus.dev/stats “Features missing in only one browser”.
Even lets you click on individual data points and see which features each browser is holding the Web back from!
Hopefully it will motivate implementations of these features!
Even lets you click on individual data points and see which features each browser is holding the Web back from!
Hopefully it will motivate implementations of these features!
TIL there are Japanese pills that make you sing better at karaoke and it is now my life quest to procure them 🥲
April 26, 2025 at 4:52 PM
TIL there are Japanese pills that make you sing better at karaoke and it is now my life quest to procure them 🥲
What a great day to have Unicode
April 25, 2025 at 4:43 AM
What a great day to have Unicode