@marvinhagemeist Which button do you want me to click? With UI like this I always feel like I’m missing out. What if I want to “get started to switch to Preact�
Make it one button, and then branch off later:
1) I’m new and want to start fresh.
2)
RT @felipehoffa: I just published “Coronavirus in Wikipedia by language — visualized”
https://t.co/aAnEslFRHW
Dig in to see how the #Coro…
RT @AaronGustafson: In continuing to think about what features could help PWAs be more successful, we wanted to revisit the idea of enumera…
RT @othermaciej: The WebKit project has created a new space to host Explainers, early pre-incubation documents that we hope to promote to s…
@blairanderson @_developit @enric0x This, but with a wrapper is what was used on https://t.co/O7cvLmJyPc (https://t.co/hFR10RhYVr). Tables were a great choice, just need to make them scrollable. ðŸ’
If you’re in the “what Web APIs do sites actually use?†business (seen from a Chrome angle), the forum post in the quoted tweet â¤µï¸ by @rick_viscomi is a must read. Aced as always! 💠https://t.co/b23sUzCwZt
RT @argyleink: 🎨 a 4 corner layered gradient by stacking 2 simple linear gradients and using a linear mask to blend them together!
1 red t…
@RubenVerborgh Gelukkige verjaardag, feestvarken! 🎂 💥
I was interviewed about Project Fugu ðŸ¡, here’re my responses: â¤µï¸ https://t.co/e727oqBgoN
RT @philwalton: Fantastic thread from @IgorMinar that shows how (oftentimes) bundle bloat is simply due to the fact that developers aren’t…
RT @HTTPArchive: Out of the ~5M websites tracked by the HTTP Archive dataset, the number of sites that use service workers has grown rapidl…
heyawhite I am *SO* excited. @Google has released a technical writing course for engineers. This has been in the works for a long time, and I hope it has wide adoption. #writethedocs developers.google.com/tech-writing
@G4S90 You can check (as described in the blog post) if `Window.onbeforeinstallprompt` exists in their browser. Have you tried other WebView-based browsers? Again, it may simply be an engagement thing.
@G4S90 The criteria are defined here: https://t.co/jmcYZdZqiT. Maybe you’ve already installed the app? Or there’s not enough engagement? At least in theory the event is supported, which is what the feature detection looks for, and which is also stated
@G4S90 Thanks for the nice feedback. 😊
Regarding add to home screen, try sharing https://t.co/Igl4k6JgLU with yourself on Facebook’s Android app, it should show its own Install button that allows you to install the app.
RT @MasterDevwi: The edge://surf game is now available as the offline game in Microsoft Edge! We’ve made a ton of improvements based on you…
RT @natfriedman: ✨Shipping today on GitHub: multi-line suggestions! 🥳 https://t.co/aSSVpv5YOD
RT @cramforce: 💥 Just posted: A transcript of my @JSConfHi talk “Designing Even Larger Applications”.
Learn about:
🖼 tailoring abstraction…
RT @simonhearne: TIL: Network Error Logging natively supports report downsampling, you can see it in action on https://t.co/A4BXlfgJAP set…
@patmeenan @addyosmani @ChromeDevTools +1, this would be super useful.
Create Diagonal Layouts Like It’s 2020: https://t.co/LaVVZUNrzY. I like the way @supremebeing09 describes the different approaches to achieve this effect, trigonometry 🔠included…
Safari has gained support for the 🔋 Async Clipboard API! 🎉 Thanks, team @WebKit!
Try it with https://t.co/8jDvN3tBUh on an iOS device on iOS 13.4 beta 2 (build 17E5233g) and on Safari Tech Preview 100.
https://t.co/ai7wUMIwkD
@mcmd @yoavweiss @cramforce @bgalbs I tend to do a pile of email that’s accumulated over night in my mornings, and then during the day respond roughly within an hour after reception for incoming mails. I try not to block folks I work with who’re in di
RT @justinschuh: This is an unambiguously good move by Apple. Short certificate lifetimes and automated renewals are an essential component…
@andreban @Paul_Kinlan @alexborsody @nekrtemplar @firt @robinbakker @torgo @bfrancis @samsunginternet For more differences between WebView and real browser experience: https://t.co/A7rVyX9fEB.
ChromiumDev Web devs, we need your input!
Take the MDN Browser Compatibility Survey and help us understand what browser vendors can do to make your life better:
bit.ly/32rts88
@areinet @gsnedders @MarijnJH @janl (Hi, this is Tom from the 🡠Fugu team, caught this via a saved Twitter search for “project fugu”)
Did you follow up on the recommendation proposed in the last comment https://t.co/jVCpghEad2? It’s indeed not in-scop
@rob_dodson @davatron5000 @RealFavicon Coincidentally I’ve just landed a PR for https://t.co/Td9ah4AWNL that reflects this discussion: https://t.co/XAe7y9PUHK.
🔢 @Snugug and @petele have started to rework our Progressive Web Apps documentation. Be sure to bookmark 🔖 the new PWA landing page for all the existing and future content: https://t.co/xLLt8a62yN.
@_developit @addyosmani Just opened https://t.co/PFQDeuiEpF to make this happen. 💪
@xopek59 @RomainRouvoy @rudametw Not here specifically. I was mostly referring to privacy discussions we’re having around the Project Fugu APIs.
RT @tomayac: @addyosmani @_developit …And it’s recently learned new tricks: https://t.co/rMXTx9q6ia. Copy and paste images (PNG for now, mo…
@addyosmani @_developit …And it’s recently learned new tricks: https://t.co/rMXTx9q6ia. Copy and paste images (PNG for now, more soon) programmatically with JavaScript. Test it in https://t.co/Hrbhdhz6P9 (export, copy to clipboard).
🖼➡ï¸ðŸ”‹
@JoubranJad “Always start with a console.log(item)â€â€”Still my favorite way of debugging. 🙈
@xopek59 @RomainRouvoy @rudametw Very timely paper given recent discussions in the Web Standards world. Congratulations on the award! ðŸ’
@FakeUnicode Switzerland and Liechtenstein have ditched the ‘ß’, but it’s still a thing in Austria and Germany, as well as other German-writing regions in other countries.
@RReverser @hooraybuffer A more up-to-date implementation (but still based on Brill’s original approach) is https://t.co/d9AFzNlho2.
@RReverser @hooraybuffer You’re looking for part of speech taggers. The simplest and fastest (local running one) that I’m aware of is https://t.co/MSHVC2F795, which is based on https://t.co/StvZvONv41, which in turn is based on Brill’s work https://
In-Browser Performance Linting With Feature Policies, by â¦@tkadlec:â© https://t.co/iDKH3E9tbI. I love the development setup Tim describes here. ðŸ’
RT @simevidas: @tomayac @WebPlatformNews One day, we may have vertical-align: cap-middle https://t.co/KW4lSMrYRF 🤞
@NOtherDev Yeah, it was completely clear from the context, just a nit review comment :-)
@NOtherDev You write “the previous Service Worker that potentially contained different versions of the assets”, but the assets are not in the service worker but in the Cache.
Instead: “the previous Service Worker that potentially contained different meta
“Handling Service Worker updates—How to keep the app updated and stay sane,” great article by @NOtherDev: https://t.co/2nhiFNLqIs. ðŸ’
Interesting to compare to @DeanoHume’s https://t.co/0xX60Y6Qn8 and @workboxjs’s https://t.co/q2oTKGOr0B.
@NOtherDev @webmaxru @mayeedwin1 @poshaughnessy @AaronGustafson @Paul_Kinlan “Hard-refresh (Control+Shift+R-kind) is sufficient”: Probably add a note that this bypasses the service worker.
“potentially contained different versions of the assets”: Assumpt
@pes10k @johnwilander For the dare devils in you: https://t.co/ads0OSfXMK.
@canofsleep @ChromiumDev You’ll be able to store serialized file handles soon. Follow https://t.co/V9xDQee6YB for updates. Origin Trials typically cover about three versions of Chrome, anything longer would be against the idea (https://t.co/0ffrLpqIjd). T
@pes10k @johnwilander The illustration is just bonkers.
@pes10k @johnwilander “Conforming UAs may choose not to scroll automatically on navigation. Such UAs may, instead, provide UI to initiate the scroll (“click to scroll”) or none at all.â€â€”https://t.co/71qLLvDAnw
(Not trolling you by using a regular e
@jaffathecake @dfabu That’s a very fair point. I guess in a production app one would add some sort of loading indicator to the disabled button.
sebdedeyne `font-variant-numeric: tabular-nums` is one of my favorite CSS properties. It sets numbers as monospace, so they’re prettily aligned in tables.
Another use case I came across is this little character counter. Notice how much smoother it becomes with tabular nums. pic.twitter.com/BlMZhnOGng
If you’re licensing your images you can now make this information available via Google Image Search by specifying `aquireLicensePage` structured metadata. â¤µï¸ Coming soon to https://t.co/EDiFZGOW78. https://t.co/h8IfJ3rYlq
@jaffathecake @dfabu Ah, thanks; seeing it only now (my main Twitter client Echofon isn’t great at thread handling). For anyone following along: https://t.co/9rWI17diqm
@jaffathecake @dfabu (I don’t have a client render, though.)
@jaffathecake @dfabu How about disabling the button until the JS has loaded? I do that in browser-nativefs.glitch.me.
@WebPlatformNews I had a bug report for this exact behavior: https://t.co/mLUMVSCnXW.
@TheGreenGreek Thanks 😊. The switching happens by changing the `media` attribute of the `<link rel=”stylesheet” href=”foo.css” media=”(prefers-color-scheme: dark)”>`, see https://t.co/wIt4jxhtyD. It also emits an event (search the code for “COLOR_SCH
@samthor @philwalton I’ve had this once, too, a couple of days ago in Gmail when I wanted to print (to PDF) an email for an expense report. I ended up taking a screenshot. It hasn’t occurred since.
RT @m_ott: You just got to love this footnote by @chriscoyier. And it is your daily reminder that every time you hit publish on Medium, you…
Four creative ways to JavaScript timing in browsers that may be “[a] little too clever, might confuse your teammates/contributors,†but that are nevertheless fun, by â¦@alshakeroâ©. â± https://t.co/keiFqAHfSe
@html5test Seconds until they file a DMCA takedown request after you posting the screenshot: 3, 2, 1, busted. ðŸŽ
A list of shortcomings and/or annoyances in Apple’s `WKWebView`: https://t.co/kup53EhjW2. Via the tweet storm started in the quoted tweet. â¤µï¸ https://t.co/nUP8Ic7WNL
RT @WebPlatformNews: 🗞 Issue № 1035
1. z-index applies to grid and flex items as well
2. CSS middle value aligns with middle of x-height
3…
@cjamcl @dalmaer I never can remember what key on my keyboard to press when I see the glyph in a menu. But the train taking an _alt_ernative _opt_ional track is my favorite new mnemonic 🤯:
https://t.co/tU95pdZlDH
RT @grigs: Service Worker detector for Microsoft Edge from @tomayac https://t.co/5TDrMvqn0F
@DasSurma @rowan_m @Lady_Ada_King @jaffathecake Samsung Yepp: https://t.co/1iVdCkqWqg. The thing had just 32MB memory, I remember down-encoding my music to get like 15 tracks on the device. Classic first generation issue.
@jaffathecake Just forwarded you an email.
@jaffathecake @rowan_m @Lady_Ada_King @DasSurma For YouTube Premium users: there’s a setting that lets you bump up your offline mixtape from 20 songs to 100. You’ve probably seen this, but just in case you hadn’t…
RT @HenrikJoreteg: @jyasskin @gsnedders @yoavweiss @AutomatedTester As a data point: I’m a web dev focused on building and not involved in…
RT @anssik: These web games are so fast to load they could replace â€loading, plz wait†screens on JS-heavy sites to keep waiting customers…
Analogies work best for explaining complex things in simple terms, as proven once more by the brilliant @jaffathecake. The follow-up question is gold, too. â¤µï¸ https://t.co/KArCrD2b8L
I’ve just added 🔂 folder support to 💾 `browser-nativefs`, so you can work with directories in your web apps by—in the background—transparently either using the Native File System API or the legacy `<input type=file webkitdirectory>` fallback: ht
@MSEdgeDev @ChromiumDev @webkit @firefox Oh noes… 😱 Seems like my tweets caused it to go down. Y’all should probably just subscribe to the feed then…
Am I the last to learn about https://t.co/D3aqBSalcG? A syndicated view over:
💉 @MSEdgeDev’s https://t.co/MwKeMzoFqj
💉 @ChromiumDev’s https://t.co/QX78My4UU6
💉 @webkit’s https://t.co/QzFV273KYu
💉 @firefox’s https://t.co/2KvoAinpXO
And it has
@gregwhitworth @nsthorat Google has this, too, where you can reject someone for the role they interviewed for, but you’d recommend them for another role instead. I think they go back to square one(-ish) interview-wise then, since in many cases the other
@jeffposnick @rob_dodson LOL, same here. It looks like something the user needs to fill in.
@MSF_Jarvis @dknchris We’ve put `<dark-mode-toggle>`(https://t.co/o6TI7pnj1R) in the footer area on both https://t.co/ScxySRrn3M and my site https://t.co/kJcHWSneC5. But top right is a popular choice, too.
Further Research is Needed: xkcd.com/2268/. #xkcd #academia 😂
RT @jefbinomed: Find the slides of my presentation about #ProjectFugu @devfestparis https://t.co/wfwJ1PTrML https://t.co/vDcJ3vtuGT
@donavon @catalinred @ChromiumDev @domenic I’ve filed https://t.co/drelN1HaR7 for this a while ago.
RT @adrianholovaty: Prepare to be amazed by, and possibly addicted to, https://t.co/qCyBOtcin1 — an incredibly well designed geometric-patt…
RT @devdevcharlie: Lately, I’ve been learning more about how to use VoiceOver to better understand the experience of people who use it, and…
RT @cjamcl: The Lighthouse extension—now for Firefox!
https://t.co/5LmBCqbZkz
🔥🔥🔥
🦊🦊🦊
@samthor @simevidas Bring back `<discard>`: https://t.co/t1aiGvFzbD. It was just killed: https://t.co/nhB94IzCkL. Actually, probably don’t. 😃
@AaronGustafson @fox The numbers don’t compare 🎠to ðŸŽ, though. Just think health insurance, unemployment benefits, job protection, maternity & paternity leaves, vacation days… Doesn’t stop there. And no, I’m not saying these things don’t e
RT @ChromiumDev: Web NFC, AR, CSS and more update to Chrome 81✨
Check out this post for what’s coming next 💉
https://t.co/h2ZT4ucm9Q
@reillyeon WebSCSI was my “end of preso, let’s have an outlook at next steps†joke at Google Developer Days 2018 in Prague… At around 22:59 of https://t.co/PmUgI2focG.
@manucorporat @fractorious @sayhello @mkruisselbrink This should be the bug to track for that feature: crbug.com/955193.
@manucorporat @fractorious @sayhello @mkruisselbrink Yeah, file handles aren’t serializable yet, but this is coming.
RT @philnash: Thanks for having me speak tonight @melbjs. All the slides, links, docs and demos on the latest @ChromiumDev Project Fugu ex…
@ManishBisht02 @bookmyshow @ChromiumDev Nice implementation. Happy the API proved useful.
(CC: @agektmr)
Should your project use a Blockchain? xkcd.com/2267/ #xkcd
@manucorporat @fractorious @sayhello @mkruisselbrink The way I read the spec is that you need to run `chooseFileSystemEntries()` from the `Window` context (since it’s a file picker UI), but can then pass on the resulting `FileSystemHandle` to a `Worker`
codepo8 drop.lol
Interesting idea - a WebRTC based file transfer tool to send files from one computer to another. Like airdrop but for all.
@Snugug Oh my god, same here. The worst is that changing the video playback rate with @ChromeDevTools doesn’t change the separate progress bar speed that determines when you’ve “seen†the content.
RT @briankardell: New Post: Toward Responsive Elements
https://t.co/Q8qrDdlnSG
Wondering what’s up with ‘container queries’?…
Here’s an…
@alexey_rodionov @Vincent_Scheib Tracked in https://t.co/PHMn0RMQeF. What would you use this capability for?
@maddesigns Yeah, probably. See the quoted tweet for my previous response: https://t.co/pyq1RVfFgO
@JasonNeel I’d actually feature-test this to be on the completely safe side, as described here: https://t.co/pyq1RVfFgO
@hdv I do hope, else you could just wrap it in an “else†block with `prefers-reduced-data: no-preference` (after testing if the browser knows about the media feature (https://t.co/m43ppuLymY).
@rowan_m I’m intrigued to know what happens next, too, and wish I could subscribe here to find out:
[Accept] [Block]
RT @zcorpan: <img loading=”lazy”> was just merged to @htmlstandard! Excellent work by @domfarolino et al.
https://t.co/1IXFOqDh0e
@gregwhitworth My sincere condolences. What a tragic loss. 😔
Proposal:
“`css
header {
background-image: url(hi-res.jpg);
}
@​media (prefers-reduced-data: reduce) {
header {
background-image: url(low-res.jpg);
}
}
“`
In a nutshell, this makes https://t.co/lOtVdsrfxl and https://t.co/WhhqjPJV6X availab
RT @Snowden: Reporters following up on this story should look at the burning question @WashingtonPost inexplicably failed to raise: how the…
RT @Snowden: Dangerous by design: How the CIA and German BND conspired to sabotage the communications of allies and adversaries alike. http…
@mrdoob @Paul_Kinlan Yeah. I have a couple of ideas how to build upon this (standing on the shoulders of giants, as always). Watch this space, I’ll toy around in the next couple of days.
RT @Paul_Kinlan: Scroll to Text fragment bookmarklet (Chrome 81 only for now)
https://t.co/MyU1PWNPlK https://t.co/NOBTrfbHat
RT @ChromiumDev: This month’s #AskChrome is all about new Fugu capabilities ðŸ¡
Tag your questions with #AskChrome! @kosamari & @petele will…
No hard feelings, I assume best intentions of a junior reviewer or someone cracking a (bad) joke.
The other two reviews were favorable (2—Accept and 3—Strong Accept), so in other news: Project Fugu 🡠will be represen@TheWebConfWebConf in Taipei, Ta
A new low in the academic review process:
“This demo was obviously submitted to another conference (Woodstock ’18) and the authors did not even bother to remove references to that conference”.
This is straight from the @TheOfficialACM template: https://t
@fgnass Spot yourself in my picture? ðŸpic.twitter.com/dHbPAhDDiyDiy
ChromeDevTools Chrome DevTools helps you debug SameSite cookie issues. In Chrome 80, the Network Panel offers a filter for requests that were blocked from setting cookies. Reload the page while DevTools is open to see which cookies were blocked, and why. pic.twitter.com/NFv8WBOG9m
@zcorpan @davatron5000 One of the issues is that there is not just one icon for operating systems like Android, but actually several (https://t.co/1RVoRL0eV4), some of which might need manual adjustments in order to get the safe area and/or the cropping r
RT @EdgeDevTools: Kudos to @ericlaw for writing this incredibly useful blog post about everything browser related. A sure-fire bookmark for…
@MatthewRPalermo @ChromiumDev Nice TeX editor beta, love it. For Android support: it’s planned, track crbug.com/1011535 for updates.
RT @rowan_m: Another optical #illusion recreated in good ol’ HTML+CSS. This time: stepping feet 💣 Both rectangles are moving at the same sp…
@davatron5000 *Sigh*, yeah, for home screen icons browsers have to rely on what the operating system supports. We’ve been toying the idea of having the browser dynamically create what the OS needs.
RT @xopek59: New blog post on bot detection: https://t.co/6LBeu4dG6s
The blog post was briefly on the HN front page, always a good surpris…
@davatron5000 Maybe consider SVG favicons so you don’t have to ask the question at all. They’ve reached decent browser support (https://t.co/SKOA7sphOr) and you can do fun things with them like animate them (https://t.co/sreQ7aJ8Fb) or have a dark mod
RT @TejasKumar_: 🔥 HTML’s <q> element is a BEAST.
• Locale-aware
• Nests correctly
Incredibly useful for when you wonder how to write “qu…
@kinu @dominickng @domenic Thanks both. Makes immediate sense now (when I put myself in the shoes of a C programmer and recall how division works there).
@addyosmani I’ve switched and haven’t gone back. It’s a great coding font.
@gregwhitworth I only really kinda sorta know you from Twitter, but reading this update just made me cry. This is so unfair! No one should have to go through this. Wishing you and her a lot of strength!
@marvinhagemeist @phihag Sausage. Alles hat ein Ende, nur die Wurst hat zwei. End-to-End. You’re welcome. ðŸŒ
“[W]e continue to work on the “patch gapâ€, where security bug fixes are posted in our open-source code repository but then take some time before they are released as a Chrome stable update. We now make regular refresh releases every two weeks.â€â€”
In May 2018 I’ve reported a bug on `getUserMedia()` not working in iOS home screen apps (https://t.co/ZmvrYKQ5Xy). I’m happy to confirm that this works fine (again) as of iOS 13.4 beta 1 (Build 17E5223h) after having regressed in iOS 13.2 beta 2. This
@aaronpeters This article was just referenced from @css again (https://t.co/cAkb2oPJar).
The current hardcoded eager-loading values can be seen in the code: https://t.co/pVdX6YjWBY (via @addyosmani’s https://t.co/l0UkEBQJ3a).
RT @petele: Just published the New in Chrome (80) updates post at https://t.co/csT8SClDnq. Lots of super cool new Fugu stuff in origin tria…
RT @christianliebel: It’s finally happening! We are thrilled to announce the first-ever @PWAConf on April 19 in London, curated by @thisisl…
RT @destroytoday: Today I learned you can move a screenshot area by holding the spacebar. 🤯 https://t.co/xq3dGC12iQ
Another Project Fugu 🡠API has received its 3rd LGTM of shipping approval—the Badging API: https://t.co/KeTWZh3LTo.
It’s been in @Paul_Kinlan’s 🔢 https://t.co/3mWRtUGf4Q for a while, but if you wanna use it for good not evil, here’s @petele
I’m happy to report that @MicrosoftEdge users can now install the 💷 Service Worker Detector extension from the Edge Add-on Store:
💉 https://t.co/12Am2X5S6x
It’s a neat complement to the @EdgeDevTools for you @MSEdgeDev folks and fully open-sou
RT @slightlylate: We’re now at the point where Project 🡠APIs are hitting Origin Trials and Stable regularly, and I couldn’t be prouder of…
EdgeDevTools The @MSEdgeDev DevTools are now localized in 10 languages! Try it out, and if we don’t support your language, let us know. To learn more check out @hiamerica’s blog: aka.ms/AA778cu pic.twitter.com/UjZKe8lfOc
@simevidas @mathias @CSSInRealLife @ChromeDevTools We were discussing having a global setting (https://t.co/oZKpkEjZwA).
Git Branch Autocompletion: https://t.co/8MDE2FJlCX. Useful little helper script by â¦@davidwalshblogâ©. ðŸ’
RT @TheFrosty: GitHub needs a dark-mode favicon https://t.co/TSCMAQiC7a https://t.co/nckrWvkWG0
@addyosmani @ChromeDevTools In case you want to play with this at home, the demo here is using @sarah_edo’s amazinpage-transitions.coma8.
RT @ChromiumDev: â° Chrome 80 is about to land and soon we will start ramping up the SameSite by default cookie enforcement. 🔜ðŸªâœ”ï¸ You still…
@dgrammatiko @slightlylate @hankchizljaw @philwalton has written about this pattern: https://t.co/0K9d01IDEJ.
@eriksen_dk @IMAC2 Both `env()` and `var()` have fallback values, (https://t.co/R3dBJK8A8f, https://t.co/FqOldK0sU0; search for “declaration-valueâ€), this would allow for further code simplification.
@argyleink Awesome! Love that you can swipe them, especially since I didn’t “learn†the stories format through Instagram. Swiping feels way more natural to me.
RT @IMAC2: Remember guys! ðŸ§
You should use the meta tag `viewport-fit=cover` to avoid white margins on devices with notch or any non stand…
RT @v8js: Understanding the ECMAScript spec, part 1: https://t.co/3ofhBiJtWY
In this article, @marjakh explains how JavaScript built-ins a…
@DotProto @_developit @brian_d_vaughn Sounds similar to Quick Tabs: https://t.co/Ic8RVm4K7Q.
@Anoesj The master bug to follow is https://t.co/zn6b8DIik8. The bug on serializing `FileSystemHandle` is https://t.co/PfEtE5uNZ6. It’s heavily being worked on. 😆
@SaraSoueidan @reederapp @viljamis Absolutely agree. Here’s a toggle approach that might be helpful: https://t.co/Cypl59ryNV. See it in action on https://t.co/O7cvLmJyPc (or my blog, https://t.co/8F8C10TARR).
@kunnendavid The “by David†overlay in the lower left corner covers the GitHub link on mobile. No way to tap it :-/
In the code, `true` can be shortened to `!0`.