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

May 2017

The moment we’ve all (not) been waiting for: a @WikiLiveMon and @mediagalleries breaking news candidate. [CC: @WikiResearch 😉] twitter.com/mediagalleries…

via Echofon

It may sound like a minor feature, but @webkit adding <link rel=”preload”> support is a massive performance boost trac.webkit.org/changeset/2172… 👍 twitter.com/webkit/status/…

via Echofon

@mathias Wow, this is great news for all Google developers (and RegExp performance in V8). Congratulations and welcome!

via Echofon in reply to mathias

umaar Dev Tips: DevTools umaar.com/dev-tips/148-s… Compare the improvements to your page over time with the Timeline History feature. (Experimental) pic.twitter.com/aysQexTwmu

via Twitter Web Client (retweeted on 6:59 PM, May 31st, 2017 via Echofon)

wa7son .@emilbayes gives you the lowdown on how to properly store user passwords securely on your server youtu.be/EAaweXzUVh4

via Twitter for iPhone (retweeted on 6:53 PM, May 31st, 2017 via Echofon)

mathias Node.js v8.0.0 is out: nodejs.org/en/blog/releas…

…and it includes npm v5.0.0blog.npmjs.org/post/161081169…L3

🎉

via Tweetbot for Mac (retweeted on 12:08 AM, May 31st, 2017 via Echofon)

“The perfect preload will always be slightly slower than the perfect HTTP/2 push […, h]owever, preloading is […] simpler & easier to debutwitter.com/jaffathecake/s…BMoV

via Echofon

motherboard Wikipedia’s switch to HTTPS has successfully fought government censorship: bit.ly/2rZpJM7 pic.twitter.com/0a16hiWhxN

via TweetDeck (retweeted on 8:58 PM, May 30th, 2017 via Echofon)

There’re a lot of common misconceptions out about PWAs (my talk: twitter.com/tomayac/status…). @ade_oshineye debunks some more: ⤵️ twitter.com/ade_oshineye/s…

via Echofon

umaar Dev Tips: DevTools: Render Performance Tips ⚡ - umaar.com/dev-tips/147-r… Understand your FPS score and potential scrolling performance issues pic.twitter.com/U51bt03IHp

via Twitter Web Client (retweeted on 8:09 PM, May 29th, 2017 via Echofon)

poshaughnessy Payment Handler API gets first public draft. Web apps can handle Payment Requests via a service worker: w3.org/blog/wpwg/2017… pic.twitter.com/P6HC8OcJFT

via Twitter Web Client (retweeted on 1:59 PM, May 29th, 2017 via Echofon)

@pistenprinz @rFleshgrinder Prediction: most time is gonna be spent on agreeing whether it should be called uu_id() or uuid()… ng

via Echofon in reply to pistenprinz

justinobeirne New Essay: “A Year of Google Maps & Apple Maps”
justinobeirne.com/a-year-of-goog… pic.twitter.com/0dJNuB9K36

via Twitter Web Client (retweeted on 12:33 PM, May 28th, 2017 via Echofon)

DasSurma When things end up being simpler than anticipated:

CustomElements + async/await to show a spinner when loading takes too long. pic.twitter.com/hc0GDTjIbk

via TweetDeck (retweeted on 7:11 PM, May 26th, 2017 via Echofon)

There is now an extension for Facebook’s Instant Articles SDK that auto-converts articles to @AMPhtml: developers.facebook.com/docs/instant-a…. Interesting…

via Echofon

igrigorik thinking of adding push notifications, or requesting permissions? Read these best practices: bit.ly/2pVj3xi. pic.twitter.com/uqfl4iKs7G

via TweetDeck (retweeted on 7:02 PM, May 25th, 2017 via Echofon)

brad_frost What is the Future of Front End Web Development? @chriscoyier has some great thoughts: css-tricks.com/future-front-e… pic.twitter.com/hitLOnuk3n

via Twitter Web Client (retweeted on 7:00 PM, May 25th, 2017 via Echofon)

Thanks for the feedback, @piecioshka! Your post is a great 🇵🇱 read! Maybe add an “activate” handler for cache house-keeping. @code_europe twitter.com/piecioshka/sta…

via Echofon

emilbayes Amazing audience at @code_europe, and great questions! My slides are here: github.com/emilbayes/code…

via Twitter Web Client (retweeted on 5:40 PM, May 25th, 2017 via Twitter Lite)

.@code_europe, go to Cupertino (4:15pm) & learn about our demo tool PWAssemble: bit.ly/codeeurope-pwa… ⚙️ App: bit.ly/pwassemble-cod… pic.twitter.com/O3AbIouoxO

via Twitter for iPhone

Great slide deck by @stefanjudis on the various new Observer APIs in modern browsers. twitter.com/stefanjudis/st…

via Echofon

Interested in what sites already use Service Workers? Install the 👷Service Worker Detector extension: chrome.google.com/webstore/detai…

via Echofon

Facebook’s Prepack lib (prepack.io)—mentioned in Jakub Sowiński’se talk—is worth keeping in mind. Also: Lighthousepic.twitter.com/XR0k78uHV7V7

via Echofon

LeaVerou CSS-in-JS is a cry for help. We at @csswg should pay attention to this and address the issues before it gets worse.
twitter.com/markdalgleish/…

via Twitter for iPhone (retweeted on 8:33 AM, May 25th, 2017 via Echofon)

The @CommitStrip’s take on dealing with callback hell in JavaScript: commitstrip.com/en/2017/05/22/…. 😂

via Twitter for iPhone

Johnson & Johnson are moving to @AMPhtml, I had the pleasure of working w/ them; thanks for ping, @sandysakharkar-youtube.com/watch?v=e8jB2f…o.twitter.com/sandysakharkar…a

via Twitter Web Client

Small world indeed-@NOtherDevv & I bump together ate, are hit by the same bug in@samsunginternett &@poshaughnessyy connects the ⠡twitter.com/poshaughnessy/…F

via Twitter Web Client

@poshaughnessy @NOtherDev @samsunginternet …But only
console.log(new URLSearchParams(‘id=1’).get(‘id’));
🐛 Bug: i@samsunginternetet, the ‘?’ is _not_ ignoreddeveloper.mozilla.org/en-US/docs/Web…Fp

via Twitter Web Client in reply to tomayac

@poshaughnessy @NOtherDev @samsunginternet Found it:
console.log(new URLSearchParams(‘?id=1’).get(‘id’));
console.log(new URLSearchParams(‘id=1’).get(‘id’));
Both print 1 on Chrome…

via Twitter Web Client in reply to poshaughnessy

@NOtherDev Works for fetch(), and apparently postMessage works w/ Response objects (developer.mozilla.org/en-US/docs/Web…), but can’t intercept all reqs.

via Echofon in reply to NOtherDev

@Lady_Ada_King @poshaughnessy Call me stupid, but on the Nexus 5X I only see the Beta, not the Stable version. I swear neither were there (on the 5X) when I checked last. pic.twitter.com/c2bE0RqWpP

via Twitter Lite in reply to Lady_Ada_King

@Lady_Ada_King @poshaughnessy Wow, is that new? It wasn’t in the Store when I checked a couple weeks ago. On Nexus 5X: Beta. Pixel: Regular.

via Echofon in reply to Lady_Ada_King

@poshaughnessy @samsunginternet (First and foremost thanks for looking into this. I would just do it myself, if I had a Samsung phone.)

via Echofon in reply to poshaughnessy

@poshaughnessy: @NOtherDev says bit.ly/pwassemble-cod… doesn’t work on @samsunginternet, but I’ve no Samsung to debug. Idea? Context: ⤵️ twitter.com/tomayac/status…

via Twitter for iPhone

Thanks for the picture, @TKreczmar. Too bad the iPhone was locked, else it would have been a great side-by-side on iOS & Android shot..twitter.com/TKreczmar/stat…nl

via Twitter Lite

The Twitter Lite PWA forgets draft tweets and lets you upload four pics to then only include one. Known issues, @necolas?

via Twitter Lite

Very meta moment to see my tweet in the PWA: bit.ly/pwassemble-cod…. It’s now available offline—accessible from my home screen.pic.twitter.com/zRTTJbA4Vpp

via Twitter Lite

.@NOtherDev addresses the 🐘 in the room at his talk: (native) app fatigue. You know whatwebcando.today? to the rescue! pic.twitter.com/chP9RD2eQ7

via Twitter Lite

Watching @pistenprinz talk about @trivago’s Design System. Compare the current trivago.com w/ the screenshot ⤵ pic.twitter.com/wABLFv0M02

via Echofon

Watching @emilbayes talk on creating & storing secure passwords, all wisdom united in his npm package: npmjs.com/package/secure…. pic.twitter.com/nZISIcj7CG

via Echofon

@iandevlin Mostly agree, this article explains the motivation quite well, though medium.com/seek-blog/a-un…. Guess it’s a matter of discipline.

via Echofon in reply to iandevlin

Produtive and fun pre-@code_europe hack session w/ @mafintosh and @emilbayes at Google Wrocław. Also: ☀️. twitter.com/mafintosh/stat…

via Echofon

@WikiResearch 👋 folks. Just in case anyone’s short of ideas, there’re some open issues in the Sheets add-on-github.com/tomayac/wikipe…c

via Echofon

@hsivonen @annevk I think @ldodds’ post xml.com/pub/a/2000/05/… helps put this in context. Relative URIs are (now: were?) the real troublemaker I guess…

via Twitter for iPhone in reply to hsivonen

@andreapernici We’re busy preparing a counter strike 😏 On a more serious note, I’ve pinged the Web Spam Team; grazie for raising the issue.

via Echofon in reply to andreapernici

csswizardry IE and Edge have a (non-official) `lazyload` attribute, used to lower resource priority: msdn.microsoft.com/en-us/library/… pic.twitter.com/jN6FWFs1ZJ

via Twitter Web Client (retweeted on 9:32 PM, May 20th, 2017 via Echofon)

“Progressive Web Gaps”: @addyosmani ups the ante by creating a video game for his talk at -youtu.be/aCMbSyngXB4r So much wisdom…

via Echofon

ReaderMeter “The Substantial Interdependence of Wikipedia and Google” —@_isaacljl@bhechth1drive.google.com/open?id=0B9n3j…fpic.twitter.com/SuyFUrbP2H2H

via TweetDeck (retweeted on 11:15 AM, May 20th, 2017 via Echofon)

The Google Chrome team have created a Time-to-Interactive polyfill: github.com/GoogleChrome/t….

via Echofon

soulislove We are looking for a Performance Lead at Wikimedia and I wrote about what we do in the team: peterhedenskog.com/blog/2017/05/j…

via TweetDeck (retweeted on 10:18 PM, May 19th, 2017 via Echofon)

Watch @emschec tell @trivago’s 🔐 HTTPS migration story: youtu.be/GoXgl9r0Kjk. Congratulations, @trivago_tech—double-featured at7!🍾twitter.com/EfeGurkan/stat…6

via Echofon

Hi @firefox 🦊🌎 developers! You can now install the 👷Service Worker Detector extension: addons.mozilla.org/en-US/firefox/…. (CC: @MozDevNet) pic.twitter.com/YXIfE4yPXy

via Echofon

ChromeDevTools Did you wake up on a mission to learn every perf feature in DevTools? Well friend, we’ve got a new doc just for you developers.google.com/web/tools/chro…

via Twitter Web Client (retweeted on 7:08 PM, May 18th, 2017 via Echofon)

Impressions from the AMP & PWA hackathon at Dublin. In just a couple of hours people went from RSS feed to @AMPhtml to PWA. 👍🏻 pic.twitter.com/7Sgi8AOvg3

via Twitter for iPhone

Running an AMP & PWA hackathon at the event in Dublin today 👩‍💻👨‍💻. Rules: docs.google.com/document/d/1qZ… Duct tape allowed… 17

via Twitter for iPhone

trivago_tech Thanks Tom. Also a proud moment for us! twitter.com/tomayac/status…

via TweetDeck (retweeted on 10:47 AM, May 18th, 2017 via Twitter Web Client)

igrigorik kudos to AMP team for a continuous stream of perf improvements: bit.ly/2rhdk8P - 50% less bytes on images & Brotli (-10%) for text! pic.twitter.com/VpTFOf7R53

via Twitter Web Client (retweeted on 8:19 AM, May 18th, 2017 via Echofon)

Companies with Progressive Web Apps rolled out to production. Happy to see my partner @trivago on it. 🎉 Congrats, @trivago_tech! pic.twitter.com/k8K4uyKTFT

via Echofon

ChromiumDev Twitter Lite sees 75% increase in tweets with new PWA and reduces Data usage. Read all about it 👉 developers.google.com/web/showcase/2…

via Twitter Web Client (retweeted on 9:18 PM, May 17th, 2017 via Echofon)

The Samsung Internet browser takes a more subtle approach to the “add to home screen” feature of Progressive Web Apps than Chrome. twitter.com/samsunginterne…

via Echofon

Slides from my talk on debunking common Progressive Web App misconceptions docs.google.com/presentation/d… 👷 👩‍💻 pic.twitter.com/k6QkIDwsm3

via Twitter Web Client

👷Service Worker Detector has a new home github.com/google/service… on the @Google 💙♥️💛💙💚♥️ @github repo. It also detects SW scope now 👍🏻

via Echofon

emschec Omgz, I/O talk Friday 8:30AM PST! HTTPS migration case studies from @CNET @trivago @RakutenJP @wordpressdotcom etc! events.google.com/io/schedule/?s…

via Twitter Web Client (retweeted on 11:28 PM, May 15th, 2017 via Twitter Web Client)

iOS 10.3.2 fixes important security issues-support.apple.com/en-us/HT207798h@webkitt: ~”Processing [malicious] web content may lead to universal XSS.”

via Echofon

MalwareTechBlog My blog post is done! Now you can read the full story of yesterday’s events here:
malwaretech.com/2017/05/how-to…

via Twitter Web Client (retweeted on 9:13 PM, May 13th, 2017 via Echofon)

pistenprinz “The Road to SVG and Custom Elements in Clarity Icons” by @mathis_scott medium.com/claritydesigns…

via Twitter Web Client (retweeted on 11:07 PM, May 12th, 2017 via Echofon)

kylealden Microsoft Edge: What’s new and what’s next for the web and web apps on Windows channel9.msdn.com/events/Build/2…

via Twitter for iPhone (retweeted on 10:06 PM, May 12th, 2017 via Echofon)

.@AaronGustafson’s slide deck has all the details about Microsoft’s PWA integration plans for Windows 10. It’s a brave new world 🌎. twitter.com/AaronGustafson…

via Echofon

Quick, everyone rush and add a “screenshots” section to their Web App Manifests: w3.org/TR/appmanifest…. twitter.com/RyannosaurusRe…

via Echofon

grigs Progressive Web App discoverability on Windows: Bing search results and Microsoft Store. pic.twitter.com/z6zFL1LCmT

via Tweetbot for iΟS (retweeted on 9:37 PM, May 12th, 2017 via Echofon)

The @MSEdgeDev team are doing an amazing job at bringing PWAs to Windows 10. Your turn, Apple! twitter.com/grigs/status/8…

via Echofon

intenttoship Blink: Intent to Ship: First Paint Timing API ift.tt/2q8bS7y

via IFTTT (retweeted on 9:33 PM, May 12th, 2017 via Echofon)

code_europe Meet up with @tomayac from @Google & discover all the benefits of PWAssemble. GET ticket to @code_europe: codeeurope.pl/en pic.twitter.com/oJ9ujpUwVt

via Twitter Web Client (retweeted on 8:03 PM, May 12th, 2017 via Twitter for iPhone)

jeffposnick The Chromium Security Team has compiled a new Service Worker Security FAQ:

sites.google.com/a/chromium.org…

via TweetDeck (retweeted on 9:54 PM, May 11th, 2017 via Echofon)

_developit 😬 I can’t stress this enough:
If you make changes to a client-rendered app,
check that it still works in Googlebot 🤖
google.com/webmasters/too… pic.twitter.com/dfySFnZxuK

via Twitter Web Client (retweeted on 9:45 PM, May 11th, 2017 via Echofon)

Exciting things coming in Media Query Level 4, this article demos them: css-tricks.com/mobile-small-p…. Complete example: rawgit.com/andresgalante/…

via Echofon

Thanks @pwaweekly for featuring 👷Service Worker Detector in the latest issue: pwaweekly.com/issues/13. Independent: recommend subscribing!

via Twitter for iPhone

“Upgrading Ele.me to Progressive Web App” medium.com/elemefe/upgrad… Quote: “we found multi-page PWA is kinda naturally PRPL!”

via Echofon

I’ve migrated my “Whom to Follow for Twitter” extension to MutationObserver. Performance 🙌 chrome.google.com/webstore/detai… pic.twitter.com/snqVB22gYk

via Echofon

Cool 😎, @Twitter Lite has a “twemoji” cache. It doesn’t contain all twemoji (github.com/twitter/twemoji), though😜. Good work, @necolas & team! pic.twitter.com/nbtFQFMNP5

via Twitter Web Client

Wow, @googledocs heavily uses Cache Storage! ICYMI, I added a Cache Storage inspector to 👷Service Worker Detector: chrome.google.com/webstore/detai…. pic.twitter.com/u0My2ID6Dt

via Twitter Web Client

👷Service Worker Detector v2.3.0 adds a 🛢 Cache Storage inspector to the Web Manifest & Service Worker code inspector-chrome.google.com/webstore/detai…Fpic.twitter.com/ZIXCYrb4Gff

via Twitter Web Client

Good list of tips for working with Service Workers from a recent talk by @popeindustries. Thanks for summarizing the presentation! twitter.com/popeindustries…

via Twitter Lite

andreasbovens “Quantum Up Close: What is a browser engine?” by our man @potch on hacks.mozilla.org/2017/05/quantu… — super nice overview! ⚙️🔩

via Twitter Web Client (retweeted on 7:09 PM, May 9th, 2017 via Echofon)

paul_irish Debugging Node.js with @ChromeDevTools is better now. 🛠 Updated guide: medium.com/@paul_irish/de…
(Spoiler alert: No more copying huge URLs)

via Twitter Web Client (retweeted on 8:48 PM, May 8th, 2017 via Echofon)

dalmaer “Our results show that the PWA and service workers
technology is promising in terms of energy efficiency” research.vu.nl/en/publication…

via Twitter Web Client (retweeted on 8:45 PM, May 8th, 2017 via Echofon)

addyosmani @cramforce @marjakh :) JS parse times on high-end phones + laptops vs. low-end/average are _so_ different. Hope we see more real-device testing as folks realize pic.twitter.com/uxMJQQ1FM1

via Twitter Web Client (retweeted on 9:28 AM, May 8th, 2017 via Twitter Web Client)

TalAter @tomayac @Paul_Kinlan @addyosmani @andreasbovens @ebidel @paul_irish I’m obsessed with UX opportunities in PWAs and devoted a chapter to get people thinking about it. See this great example from @flipkart_tech pic.twitter.com/tDy44RbHXs

via Twitter Web Client (retweeted on 7:33 AM, May 8th, 2017 via Twitter for iPhone)

@Paul_Kinlan @TalAter @addyosmani @andreasbovens @ebidel @paul_irish To reflect the Industry Opinion™ of the many (🇩🇪🇦🇹🇨🇭) companies I’ve pitched to: ✅predictability ❌voodoo; let users be in control, tho!

via Twitter for iPhone in reply to Paul_Kinlan

@Paul_Kinlan @TalAter @addyosmani @andreasbovens @ebidel @paul_irish Maybe clear predictable rules—hard (=code), soft (=engagement)—with a simple UI (“never show for $url”, “never show at all”) would work!? pic.twitter.com/nWJP2DjqbWbW

via Twitter for iPhone in reply to Paul_Kinlan

@Paul_Kinlan @TalAter @andreasbovens @addyosmani @ebidel @paul_irish This keeps changing, at one point registering an “empty” service worker was enough.

via Twitter Lite in reply to Paul_Kinlan

pistenprinz “A native font-stack” by @jamesf3rguson medium.com/skyscanner-des…

via Twitter Web Client (retweeted on 3:33 PM, May 6th, 2017 via Echofon)

samthor I just published “ES6 Modules in Chrome Canary (M60+)” medium.com/p/es6-modules-…

via Medium (retweeted on 9:39 AM, May 6th, 2017 via Echofon)

16 years ago, @firefox warned you when you entered an encrypted site. 😳 I couldn’t believe it & dug deep: bugzilla.mozilla.org/show_bug.cgi?i…. @emschec twitter.com/kdzwinel/statu…

via Twitter for iPhone

samccone Identifying the JavaScript slowdown. 🐢 ⚡🏇
Join me as I walk through finding the JS cost using @ChromeDevTools

youtube.com/watch?v=W4zp79…

via Twitter Web Client (retweeted on 11:21 PM, May 5th, 2017 via Echofon)

Well thought-through tech productivity tips by @twbartel (despite the clickbaity title): tombartel.de/blog/five-thin… 💭 twitter.com/twbartel/statu…

via Echofon

To clarify, the 🤦‍♀️ here’s that I’d indeed _expect_ Android Chrome to show the A2HS prompt: prefer native if possible, else prompt. @owencm

via Twitter for iPhone in reply to tomayac

Is your ’s “Add to home screen” prompt never showing? Are you preferring related iOS apps (and only those) on Android in your manifest?🤔 pic.twitter.com/ojNoiCiDwD

via Twitter Web Client

Every once in a while I update the @gnupg version in my email signature. Today was such a day..Gpic.twitter.com/kCetBbU4W5W5

via Twitter Web Client

slightlylate Oh look, @owencm and I turned this thread into an article!

medium.com/@slightlylate/… twitter.com/Lady_Ada_King/…

via Twitter Web Client (retweeted on 9:14 PM, May 4th, 2017 via Echofon)

MozDevNet 🎉 Firefox 54 developer-focused release notes! See what’s coming in mid-June: developer.mozilla.org/en-US/Firefox/…

via Sprout Social (retweeted on 8:57 PM, May 4th, 2017 via Echofon)

Great summary by @MozDevNet on debugging Web Push in @firefox. twitter.com/MozDevNet/stat…

via Echofon

Optimizing Web Fonts for Performance: the State of the Art-sitepoint.com/optimizing-web…W

via Echofon

samccone I can **finally** use sleep in javascript. 😴 pic.twitter.com/vfsaHQH2p0

via Twitter Web Client (retweeted on 6:11 PM, May 3rd, 2017 via Echofon)

stowball Chrome can now test how your page behaves when a particular script, stylesheet, or other resource isn’t available! developers.google.com/web/updates/20… pic.twitter.com/AGvb2D4jBf

via Twitter Web Client (retweeted on 6:10 PM, May 3rd, 2017 via Echofon)

tom_says_things It started with an idea one year ago, I’m incredibly proud to say the trivago Progressive Web App is now live: trivago.com

via TweetDeck (retweeted on 5:11 PM, May 3rd, 2017 via Twitter Web Client)

@kdzwinel Call me stupid, but I still don’t see this option. Not in chrome://flags, not in Chrome Dev Tools Experiments. 😐

via Echofon in reply to kdzwinel

@kdzwinel @umaar @ChromeDevTools How do I get the “Product” column? Thanks!

via Twitter for iPhone in reply to tomayac

jaffathecake 📝 ES2015 modules are landing in browsers! Here’s the HTML-specific stuff you need to know:

jakearchibald.com/2017/es-module…

via TweetDeck (retweeted on 7:37 PM, May 2nd, 2017 via Echofon)

Although I can’t reproduce it on neither Chrome 59 nor latest Canary, the feature looks super useful for finding performance culprits-@umaarrtwitter.com/umaar/status/8…P

via Echofon

Just leaving this statement by @dara_amber about today’s event :-) bit.ly/webshop-pwa 🛒 twitter.com/dara_amber/sta…

via Twitter for iPhone

addyosmani ES2015 Modules just landed in Chrome Canary! 🔥 Flip on “Experimental Web Platform features” to give them a spin. Feedback welcome. pic.twitter.com/rkP62NfHoB

via Twitter Web Client (retweeted on 8:59 AM, May 2nd, 2017 via Echofon)

If you’re into running virtual machines on macOS (and don’t care for Windows), Parallels Desktop Lite is 👍 and free-kb.parallels.com/en/123796A

via Echofon

ebidel “Getting Started With Headless Chrome” - developers.google.com/web/updates/20… 🚫👱🏼Screenshots, printing DOM, create PDF, debugging, using w/ Node, Docker.

via Twitter for Mac (retweeted on 5:46 PM, May 1st, 2017 via Echofon)

For a PWA, find out if the user has the related native app installed via navigator.getInstalledRelatedApps(): developers.google.com/web/updates/20…. 📱🛍

via Echofon

An article that suggests @Microsoft might decouple @MSEdgeDev updates from @Windows updates and so make it an evergreen browser 💚. Ship it! twitter.com/domenic/status…

via Twitter for iPhone