Thomas Steiner (@tomayac)

Now at @tomayac@toot.cafe

The below is an off-site archive of all tweets posted by @tomayac ever

December 2018

RT @akent99: Nice little article on building Accessible web components - component developers need to do this, it cannot all be added later…

via Echofon

If you still (need to) care for browsers capable of decoding JPEG XR and are tempted to use the format—despite the… https://t.co/6P3pFIxuk7

via Echofon

RT @RyanTownsend: @derSchepp @JoubranJad @Souders @csswizardry We haven’t officially launched this… but what you’re looking for is: https…

via Echofon

Listing things you don’t know. ♥️ Love the concept.
High up on my 🔝 list: React & Redux. I get the general concepts… https://t.co/U3bni9ATBW

via Echofon

Gradient Image Placeholders: new tool “gip” by ⁦@stoyanstefanov⁩ for yet another placeholder technique. https://t.co/1BlyfmHsiw

via Twitter for iPhone

@argyleink Not a great analogy: there’s neither —quiet nor —fix.

via Echofon in reply to argyleink

RT @littledan: If you want to process binary or numerical data efficiently in JavaScript, consider TypedArrays. You can learn how from this…

via Echofon

Common CSS Issues For Front-End Projects: https://t.co/XGacyejmpV. Grab bag of tips that you might find useful.

via Echofon

addyosmani DevTools Tip: $_ in the Console returns the value of the last expression evaluated. pic.twitter.com/ZXfxaXExFo

via Twitter Ads Composer (retweeted on 10:35 AM, Dec 28th, 2018 via Echofon)

RT @DasSurma: Mini function of the day: `nextEvent()`.

Gives you a promise for the next event of a certain type. Really nice in conjuncti…

via Twitter for iPhone

RT @zachleat: Don’t Stop Learning https://t.co/E0dPb4HTLQ

A response to the feedback from a tweet from long, long ago (okay, it’s been ten…

via Echofon

Creating and filling Arrays of arbitrary lengths in JavaScript by ⁦@rauschma.⁩

“[…] I wouldn’t worry too much abou… https://t.co/MYuXPkEwSx

via Twitter for iPhone

RT @ebidel: 🔯The 12 Days of Puppeteer 🤹🏻‍♂️🎁

“¸ Make your next screencast a breeze 💨. Launch 🚀2 or more pages side-by-side, visually compa…

via Echofon

RT @rauchg: Node.js HTTP fundamentals without frameworks. Great read:
https://t.co/iTWOC2LIOe

via Echofon

Server Timing as used by ⁦@Akamai⁩ today (and potential future use cases)—Neat advanced article including beginner-… https://t.co/24FJVTTlZH

via Twitter for iPhone

RT @ireaderinokun: New on bitsofcode! 💃🏿

“Understanding the Virtual DOM” https://t.co/GCSKF57cgN

via Echofon

Wielding the power of web transparency by ⁦@rick_viscomi⁩ https://t.co/i3MHHGHT8W

via Twitter for iPhone

RT @HenrikJoreteg: Whenever I talk about “using indexedDB.” What I’m actually referring to using it as an async, versioned, key-value store…

via Echofon

Performance Calendar » Is AVIF the future of images on the web? https://t.co/RaDmMVCmMU

via Twitter for iPhone

@argyleink @chromecanary 😂 The first time I did this I felt like the coolest hax0r in town, until I realized: “wait… https://t.co/hQiuQMOlyO

via Echofon

RT @CharlieCroom: If you’re using the Twitter PWA on Android, you can now “Share…” stories to a tweet in the web app with the new Chrome…

via Twitter for iPhone

RT @yoavweiss: I wrote some words summing up the recent @webperfwg face-to-face meeting at the @w3c TPAC https://t.co/HOeAwTht3x

via Twitter for iPhone

It doesn’t happen that often that the 🇩🇪 German IT press writes about the stuff I’m working on, but yesterday it ha… https://t.co/gq5Nrg9cAu

via Twitter Web Client

@simevidas Not in the current implementation state, but permission prompt or wake lock indication are definitely so… https://t.co/rxphodZkcq

via Twitter for iPhone from Hamburg, Germany

RT @torch2424: Just released my deep dive article / medium post into #webassembly vs. #javascript performance. Using different compiled cor…

via Echofon

Great approach for resolution-independent fallback or placeholder (SVG) images: https://t.co/cREIyrv1aQ.
🔏🔐💻🖥🔱
The… https://t.co/NliqgG9L7j

via Twitter Web Client

Dull Old Web Fart @brucel on the practical value of semantic HTML. ❤️ https://t.co/9psfLv05tz

via Twitter for iPhone

RT @ireaderinokun: New on bitsofcode! 💃🏿

“Handling broken images with the service worker” https://t.co/QIbyoaArC4

via Echofon

@mischmerz @ChromiumDev @petele @Wikipedia Silent (or as you call it “hidden”) push notifications were something we… https://t.co/YE9JkrFKJD

via Twitter Web Client

@myfrom13th It’s been like this “forever”, simply the notches now make the separation clearer.

via Twitter Lite in reply to myfrom13th

@aerotwist Happy birthday, mate! 🎂 I didn’t know we were that close date-wise: mine was yesterday. Off by one. Classic.

via Twitter for iPhone in reply to aerotwist from Hamburg, Germany

RT @marcushellberg: New 5-part text & video tutorial on building an app with #LitElement, covering:
🔥 #lithtml templating
⚛️ state manageme…

via Echofon

@marcushellberg @kennethrohde This is a really good tutorial! (Seems like the repo is private:… https://t.co/tQYMbDbILk

via Echofon

RT @ChromiumDev: ⏰Need to keep the screen or the device awake?

Most devices quickly go to sleep when left idle to save battery🔋, but did…

via Echofon

@simevidas Seems like you might be interested in the minutes of the @w3c workshop on permissions: https://t.co/f6aEompSfJ.

via Echofon

@justinribeiro @alexey_rodionov That’s a seriously cool app! You should chime in on https://t.co/ItBmAaoFhu (GitHub… https://t.co/lmGjbiDuES

via Echofon

A speedometer PWA that uses the Wake Lock API to request a `screen`-type wake lock to keep the screen on. 💌 https://t.co/HAA90cTg7V

via Echofon

RT @wesbos: 🔥 Intersection Observer is handy for when you need to disable a UI until something has been shown on screen. In this case we ca…

via Echofon

RT @katiehempenius: How to see all response headers used by a site (in Chrome):

- Type “has-response-header:”
- Dropdown of all headers ap…

via Echofon

RT @firt: BLE Beacons is coming to the Web!
Today WebBT is available only to connect to a well-known service, but it can’t be used to list…

via Echofon

RT @notwaldorf: Happy Monday! Here’s a ✨magical doodling app✨ I just built!

It uses Magenta’s SketchRNN model to complete a doodle you st…

via Echofon

RT @HelenSchrader19: “A step by step guide to monitoring the competition with the Chrome UX Report” by @rick_viscomi #DEVcommunity https://…

via Echofon

RT @rachelandrew: Next time you think “CSS is terrible, why can’t I just … ” why not find out why the property behaves like that? If noth…

via Echofon

RT @ireaderinokun: Loving all the responses from people who’ve found genuinely good use cases for pointer-events. I’m collecting them to ad…

via Echofon

@jonathandavis and @webkit might be interested in this thread by @HenrikJoreteg. The bug is here:… https://t.co/WSUgeaBM1b

via Echofon

For the impatient, the Wake Lock demos are:
1) 💬 Talking Wikipedia screensaver: https://t.co/vhyjCTJHrA
2) 💟 Run tr… https://t.co/oFmbWkIZkh

via Twitter for iPhone from Hamburg, Germany

RT @ChromiumDev: In response to @petele’s article on Wake Locks ☕🔒 (https://t.co/7u7nT4jjC0), @tomayac has been experimenting and created t…

via Twitter Web Client

For geeks like me who care about Oxford commas, watch https://t.co/SOAaKgplYU 🤔 regarding the new `Intl.ListFormat`… https://t.co/MFRTLiTQCu

via Twitter for iPhone from Hamburg, Germany

RT @ChromiumDev: Badging for App Icons? Yes please🙌
The Badging API is a new API that lets installed web apps to set an application-wide ba…

via Twitter for iPhone

@rowan_m I challenge you to MacGyver-ise (look how I en-GB’ed this for you!) the ultimate Feuerzange: https://t.co/hEyqKILmAD

via Twitter for iPhone from Hamburg, Germany

@kennethrohde I don’t think this was a design objective, but wasn’t involved at all. Probably best to reach out to… https://t.co/9DSvB6LMXr

via Twitter Web Client

@nekrtemplar @Paul_Kinlan IIRC the status bar had changes reg. dark mode in Oreo, but not sure. The spec is vague o… https://t.co/UUxIpAv68V

via Twitter Web Client

Design document for Chrome extensions with the future manifest v3: https://t.co/FBJt0Njojd. Some exciting changes i… https://t.co/Jq0OWieaBQ

via Twitter Web Client

RT @argyleink: Slick update to desktop #PWA’s on Mac if you’re using @chromecanary! Closer to the Linux and Chrome OS UI’s 😎 Look at Messag…

via Echofon

RT @slightlylate: Interesting; someone found my prototype: https://t.co/KhZrGj2tCq

via Twitter for iPhone

Even if you don’t use yall.js (yet another lazy loading library), the words of wisdom in the README are gold. ⤵️ https://t.co/w6xSG0CI4M

via Echofon

@fernap3 @v8js @ChromiumDev @bmeurer’s blog post https://t.co/xGsCqbP1lK has more background information on this.

via Twitter for iPhone

@feedly Thank you very much on behalf of all xkcd fans! 😃

via Echofon in reply to feedly

@feedly Could we get the alt text back in the new Feedly app, please? xkcd is nothing without alt text. xkcd.com/rss.xml

via Twitter for iPhone from Hamburg, Germany

RT @rowan_m: Practical advice thread from Starbucks on avoiding out of date Service Workers. https://t.co/ACRVU1bGLv

via Echofon

RT @ireaderinokun: New on bitsofcode! 💃🏿

“Using aria-live” https://t.co/BsylMNtLO9

via Echofon

I’m uncomfortably excited & strangely fascinated by this development. The Big Mac Index says a 🍔 is $2.19 in Indone… https://t.co/Pv0bqSkyrU

via Echofon

RT @jennylg: Web Developer Advocate at Google Tom Steiner @tomayac has a new series on @YouTube. ⚡️”Why build Progressive Web Apps?” ⚡️Chec…

via Twitter for iPhone

🤔 “What happens when [@npmjs] packages go bad?” wonders @jaffathecake and provides some answers: https://t.co/76XsbbJPX5.

via Twitter Web Client

All there is to know about prefetching: https://t.co/0415FF9jZD. Great overview by @katiehempenius! 💏 https://t.co/NDYuRr6whl

via Echofon

RT @ChromiumDev: 🔥 Class fields are coming to JavaScript!

Public class fields ship in @v8js v7.2 and Chrome 72, and work is underway to su…

via Echofon

RT @addyosmani: @puf It’s really nice. @igrigorik and @malchata have a write-up on the Save-Data header and .saveData over in https://t.co/…

via Echofon

@zachleat @rick_viscomi @leaverou had a great article on that recently-ish: https://t.co/MMIw2X0MAb.

via Echofon

@umaar Thanks for this and all other videos! On this one: Are there known “other tools” out there yet?

via Echofon in reply to umaar

RT @HenrikJoreteg: I have it on good authority (from several folks, actually) that if you want something addressed in Safari, complaining a…

via Echofon

RT @zachleat: @stoyanstefanov @dougsillars Great post @dougsillars!

Since you linked to one of the blog posts I’ve written maybe it’s okay…

via Echofon

Nice ⁦@HTTPArchive⁩ study by ⁦@dougsillars⁩ on the “Base64-encode all the things for the sake of making less HTTP r… https://t.co/remjRWDfnO

via Twitter for iPhone

Good article by @hdv on the `Element.scrollIntoView()` API (https://t.co/13ZTIZ6XXR) that has some experimental tri… https://t.co/ynfJ43cZsW

via Twitter for iPhone

RT @addyosmani: 🔢 Announcing… quicklink! <1KB library to..
âš¡ Automatically prefetch links in the viewport during idle time
⏳ Attempt to mak…

via Twitter Web Client

RT @andrey_l1nd3n: The only thing easier than getting #PushNotification subscription right is… getting it wrong. So, you, know… don’t.…

via Twitter for iPhone

RT @stubbornella: What do you think of this proposal for an http header that expresses the viewport? Feedback welcome! What would you build…

via Echofon

RT @ChromiumDev: 🎥 @DasSurma and @jaffathecake look how the web platform has improved by comparing old code to new code.

https://t.co/Mjdj…

via Echofon

RT @codepo8: Dynamically adjusting resources based on browser, network connection and device memory
https://t.co/gICMg3nVke

via Echofon

RT @andrey_l1nd3n: The #A2HS mini infobar in #Chrome is there for a (temporary) reason, but it certainly shouldn’t stop you using this one…

via Twitter for iPhone

RT @Souders: On the @SpeedCurve blog: JavaScript growth and third parties. The size of 3rd party JS since 2011 has octupled!
https://t.co/O…

via Echofon

RT @aleyda: PWAs SEO: Developing Optimized PWAs and How to Validate them - My latest post 🔲 💥🙌 https://t.co/bgGclPBxVs https://t.co/zy5C9I 

via Echofon

RT @DebugBear: Wrote a blog post about the performance impact of Chrome extensions https://t.co/rSgl7ATkkz https://t.co/MwJIL9v7sA

via Echofon

RT @devongovett: Really excited about the work we are doing on code splitting in Parcel 2! ✂️

Here is an example of a bundle with async de…

via Echofon

Badging for app icons by ⁦@petele⁩: https://t.co/RGNZ9MPkS8. We’re specifically looking for API and use cases feedback.

via Twitter for iPhone

@boleroo @ChromiumDev Thanks for the feedback. I’m not a native speaker of English, but doing my best and hoping to… https://t.co/EsOkBfKwob

via Twitter for iPhone from Hamburg, Germany

@AngularChicago @ChromiumDev
> Great example app thanks!
Thanks for the nice feedback!

Re: 1) What we can say publ… https://t.co/z5KqLDCxSO

via Twitter Web Client

@samthor Yes, you fixed it. They’re not flags anymore on iOS. 💍

via Echofon

Measuring Wikipedia page load times: “When working on a service used by millions, we focus on the 99th percentile a… https://t.co/lJG5cem3xv

via Twitter for iPhone

RT @cramforce: Intent to ship for stale-white-revalidate in Chrome! This has been specified in HTTP for ages, but no browser implemented it…

via Echofon

RT @DasSurma: 10 bucks says this string constant was defined by either a JavaDeveloper or a German.

‘XMLHttpRequestSynchronousInNonWorkerO…

via Echofon

RT @ChromeDevTools: A handy tip from “The Art of Debugging with Chrome DevTools” by @PrashantPalikhe:

Log objects instead of variables. De…

via Echofon

@jipfr @ChromiumDev @googlechrome 🤣Welcome to the German art of nested subordinate clauses translated to, erm, Engl… https://t.co/xLuU6XpFKU

via Twitter Web Client

RT @ChromiumDev: @tomayac ⚠️ Note that in @googlechrome currently there’s a temporary mini-infobar (https://t.co/UkpZQQapiG) that you can’t…

via Twitter Web Client

The third episode of “Why Build Progressive Web Apps” was the most fun to film, especially because we managed to fi… https://t.co/CQESFb1UuQ

via Twitter Web Client

@DasSurma 😂 This looks exactly like the version some of us found on a USB pen that had fallen off a truck back when… https://t.co/aRZg1UYAJC

via Echofon

Wow, @TomAnthonySEO has written a brilliant introduction to HTTP/1.1, HTTPS, and HTTP/2 that uses trucks as an anal… https://t.co/kp10GIOKEi

via Echofon

@meabed @addyosmani @cramforce @sebmarkbage @luke_wagner Yepp, sure, but they’re out of scope based on my rough def… https://t.co/iBMd2PASaz

via Twitter Web Client

@addyosmani @cramforce @sebmarkbage @luke_wagner So if it’s indeed that simple, why can’t we have nice things? Comi… https://t.co/wa0gugJDm3

via Twitter Web Client

Great post by @TimVereecke on (holistically) honoring the `Save-Data` HTTP header: https://t.co/hSerVX6ybo 💍 https://t.co/6CrkaCVn16

via Echofon

Regarding @HenrikJoreteg’s tweet quoted below, I wrote a 💉 paper about Service Worker APIs and Progressive Web App… https://t.co/Wgz2RnaI7d

via Echofon

@pbakaus I fully agree on your overall point, though: if this is the first time you encounter the issue of state ma… https://t.co/3QOpjyxngc

via Echofon

@pbakaus s/I couple/A couple/
s/your asking/you’re asking/

I like the article, and yes, AMP state management is fa… https://t.co/r3VoGBcePF

via Echofon

RT @WolfieChristl: Facebook adds 5 divs, 9 spans and 30 css classes to every single post in the timeline to make it more difficult to ident…

via Echofon

@rick_viscomi Wow 😲. Hope some are left when we all gather in NYC in January.

via Echofon

@zachleat @eleven_ty Love how flexible it is: no lock-in with any template language, I can just choose dynamically… https://t.co/IHL5uUWMb9

via Echofon

@zachleat Thanks a lot for building @eleven_ty! Impressed with the build speed. Hope to get more familiar with the platform in the future…

via Twitter Web Client in reply to tomayac

@mathias Thanks for open-sourcing https://t.co/O7cvLmJyPc! This is and was extremely helpful! Biggest pain point so… https://t.co/0DxtqdFg45

via Twitter Web Client

Following @v8js’ example (https://t.co/vkwt8663Kx), I’ve finally started migrating to @zachleat’s @eleven_ty, away… https://t.co/ufl8QmDdEK

via Twitter Web Client

Contributing to WebKit for a more predictable web platform: https://t.co/4Y2b8C6fV2. Good overview of what ⁦@igalia… https://t.co/sZXBQyuReE

via Twitter for iPhone

The Official AMP Plugin for WordPress https://t.co/0g3BMj7ZGz

via Echofon

Your actual mileage may vary, but there’re definitely baseline performance costs of JavaScript frameworks that you… https://t.co/akWAGcm6LK

via Twitter for iPhone

RT @argyleink: Fresh immutably deployed VisBug learning site https://t.co/jDM8S2x6GL ready for your tinkering and destruction!
It’s a ‘try…

via Echofon

@argyleink Nice URL you have there. 💍

via Echofon in reply to argyleink

Nice writeup of new tricks of the HAR comparison tool https://t.co/vls16RpA7d by @soulislove:… https://t.co/e1pHqG1KTJ

via Echofon

RT @umaar: Dev Tips - DevTools: 💡 How to use the new Logpoint feature - https://t.co/dvADfG5CW6 - Useful for quicker JavaScript debugging h…

via Echofon

RT @mhartington: Adding to the CSS Variables and Safari Dark-mode hype…Third part apps (like f.lux) can toggle macOS Dark mode at sunset.…

via Echofon

RT @jennylg: At Google’s #Conversions conference in #Dublin, Ireland 🇮🇪 last month we talked about “Progressive Web Apps, Payment Experienc…

via Twitter for iPhone

RT @ChromiumDev: 🔣Announcing Puppeteer for Firefox 🤹🏻‍♂️💕🦊

An experimental project for controlling Firefox using Puppeteer’s API. Still mi…

via Echofon

RT @v8js: 🔥 V8 v7.2 / Chrome 72 greatly improves the performance of spread elements of the form […x] or […x, y, z]. Here’s how we did i…

via Echofon

RT @feross: Good summary of JSON hijacking, if you’re not familiar.

Why Facebook’s API starts with a for loop https://t.co/mjEqlQbEjz http…

via Echofon

After all the rumors now @Microsoft’s official announcement: “Microsoft Edge: Making the web better through more op… https://t.co/Wl7W5qCOqR

via Echofon

zachleat Somewhere along the line jsdom became very powerful, wow. github.com/jsdom/jsdom

via Twitter Web Client (retweeted on 12:43 AM, Dec 6th, 2018 via Echofon)

Registering as a Share Target with the Web Share Target API, by @petele: https://t.co/CYBSIjwhA2.

via Echofon

If your site includes video livestreams, you can now use structured https://t.co/EDiFZGOW78 markup and the Indexing… https://t.co/KNKZicRiug

via Echofon

@magbicaleman You asked for a source: “Apple’s ARKit, Google’s Visual Core chip, native graphics APIs”—https://t.co/UDhiWeq2jK

via Twitter for iPhone from Hamburg, Germany

The biggest news in the Safari Technology Preview 71 announcement post in my opinion is that `IntersectionObserver`… https://t.co/CJ8rh74RYJ

via Echofon

@magbicaleman Agreed, the border gets pushed further and further. High-end gaming probably, but even this area is getting within reach.

via Twitter for iPhone in reply to magbicaleman from Hamburg, Germany

RT @TobiasDelorme: Using Push Notifications in Progressive Web Apps: Context/Timing is the Key - https://t.co/ueWGGAVwVr - #PWA #webapp #we…

via Twitter for iPhone

RT @jaffathecake: 🔝 Introducing Background Fetch.

➡️ Perform long-running fetches in the background.
➡️ Hear about the result in your serv…

via Echofon

RT @googlewmc: … and if you’re wondering about …. 💤 …. lazy-loaded images, we added some information about how to handle lazy-loading…

via Echofon

Looks like @RudyGiuliani is making a strong case for the .either top-level domain. I’m impatiently hovering over th… https://t.co/Q1Gj0WhBPg

via Echofon

@magbicaleman Yepp, especially as a crafter it initially hurts to accept this, but once you’re over it, it has its advantages as well.

via Twitter for iPhone in reply to magbicaleman from Hamburg, Germany

An Introduction to CSS Shapes: https://t.co/57jYOj5sYQ. Very instructional article with a convincing demo: https://t.co/LtEwdlfWhl. 🔺🔶🔵⬛

via Echofon for Android PRO

RT @KaiOStech: The Kai team is at #GoogleForIndonesia in Jakarta where Google just announced the new US$7 (!!) WizPhone that runs on KaiOS.…

via Echofon for Android PRO

RT @ChromiumDev: ➡️relative time format (like “5 minutes ago”) is now supported natively
➡️CSS `text-underline-position` is added for verti…

via Echofon for Android PRO

@JoubranJad With one gotcha: you can’t use it together with the `cursor` CSS property: https://t.co/pCSxamcU8w. A f… https://t.co/O7gdFyBmrw

via Twitter for iPhone from Hamburg, Germany

🔝 The video write-up of the 2nd episode of “Why Build Progressive Web Apps” on Push Notifications is out:

💉… https://t.co/QgRZ7X388P

via Twitter Web Client

RT @JoubranJad: I loved the intro of this video by @tomayac
https://t.co/yf7KR7L5tC
💯 accurate!

via Twitter for iPhone

RT @dalmaer: As someone who has worked with someone else for a long time. This sure does resonate. https://t.co/9UaqsnuvEX

via Echofon

RT @quasi: How fast are domains in Germany? We analyzed 300 Domains for loading speed with @ChromeUXReport data and published the leaderboa…

via Echofon

Hacking the perceived performance of websites: Great slide deck by @Mustafa_x! ⤵️ https://t.co/WHuEb5bJhn

via Echofon

@gregwhitworth @_zouhir @css @mgiuca Maybe something like `env(—has-back-button)` in the context of https://t.co/28Z19SQdcj.

via Echofon

@gregwhitworth @_zouhir @css “Shut up and take my money” feature… 💶

via Echofon

RT @ChromiumDev: 🔢 The second episode of “Why Build Progressive Web Apps” is out! Today, @tomayac talks about push notifications: Push, bu…

via Twitter Web Client

RT @ChromiumDev: 🙋‍♂️ More of a TL;DW (too long, didn’t watch) kind of person? @tomayac has worked on a write-up of last week’s video “Why…

via Twitter Web Client

RT @frontendfront: Everything about CSS environment variables https://t.co/NQFf1XdMXy

via Echofon

@zachleat @kylemathews @joeyquarters @DaryBarrio It’s all about privacy-preserving prefetching & making building ha… https://t.co/QC1aNmFUkp

via Echofon

Interesting article by @ireaderinokun on CSS reset frameworks in 2018. In my opinion, margin and padding inconsiste… https://t.co/6H9caik9SN

via Echofon

RT @JoubranJad: Wow flashy but I like it 😍
App Manifest’s theme_color is now styling the top bar

OS: Mac Mojave
Chrome: Canary (72)

⏳it’s…

via Echofon

RT @feross: Detect pressed keys via microphone audio capture in real-time. Uses training data captured by typing first. Very neat!

https:/…

via Echofon

RT @zhenpixels: After Netflix, Airbnb, Uber, etc. all revealed their own typefaces, I fell into a rabbit hole of finding out why.

https://…

via Echofon