Hello.

I am Paul Kinlan.

A Developer Advocate for Chrome and the Open Web at Google.

Performance and Resilience: Stress-Testing Third Parties by CSS Wizardry

Paul Kinlan

Я был в Китае пару недель назад в День разработчиков Google, и я показывал всех своим QRCode scanner, он отлично работал, пока я не вышел в автономный режим. Когда пользователь был в автономном режиме (или частично подключен), камера не запустилась, а это означало, что вы не можете привязать QR-коды. Мне потребовался возраст, чтобы понять, что происходит, и оказалось, что я ошибочно начал работу с камерой в своем «onload» событии, и запрос Google Analytics зависает и не разрешается своевременно.

Read More

Chrome Bug 897727 - MediaRecorder using Canvas.captureStream() fails for large canvas elements on Android

Paul Kinlan

В выходные я играл с видео кодеком эффектов Boomerang, вы можете получить его работу в режиме реального времени (я объясню позже). Я работал над Chrome на рабочем столе, но он никогда не будет работать должным образом в Chrome на Android. См. Код здесь. Похоже, когда вы используете captureStream () на <canvas>, который имеет относительно большое разрешение (1280x720 в моем случае), MediaRecorder API не сможет кодировать видео, и это не будет ошибкой, и вы не можете обнаружить, что он не может кодировать видео раньше времени.

Read More

Why Microsoft and Google love progressive web apps | Computerworld

Paul Kinlan

Хорошая статья о PWA из Mike Elgan. Я не уверен в цели Microsoft с PWA, но я думаю, что наша задача довольно проста: мы хотим, чтобы пользователи мгновенно получали доступ к контенту и функциям и таким образом, как они ожидают, что смогут взаимодействовать с ним на своих устройствах. Интернет должен охватывать всех через каждое подключенное устройство, и пользователь должен иметь доступ к их предпочтительной форме, в качестве приложения, если это так, как они ожидают (мобильный, может быть), или голос на помощнике и т.

Read More

894556 - Multiple video tracks in a MediaStream are not reflected on the videoTracks object on the video element

Paul Kinlan

Первая проблема, которую я нашел, пытается создать видеоредактор в Интернете (0). У меня есть несколько видеопотоков (рабочий стол и веб-камера), и я хотел иметь возможность переключаться между видеопотоками на один элемент видео, чтобы я мог быстро переключаться между веб-камерой и рабочим столом, а не прерывать «MediaRecorder». Похоже, вы должны сделать это, переключив свойство selected на объектvideoTracks на <video>, но вы не можете, массив треков содержит только 1 элемент (первый видео трек на MediaStream).

Read More

Barcode detection in a Web Worker using Comlink

Paul Kinlan

Я большой поклонник QRCodes, они очень простой и опрятный способ обмена данными между реальным миром и цифровым миром. В течение нескольких лет у меня был небольшой побочный проект под названием QRSnapper & mdash; ну, у него было несколько имен, но это тот, который я поселил в & mdash; который использует API getUserMedia для получения живых данных с камеры пользователя, чтобы он мог сканировать QR-коды в ближайшем реальном времени. Целью приложения было поддерживать 60 кадров в секунду в пользовательском интерфейсе и почти мгновенное обнаружение QR-кода, это означало, что мне пришлось ввести код обнаружения в веб-рабочего (довольно стандартный материал).

Read More

Running FFMPEG with WASM in a Web Worker

Paul Kinlan

Я люблю FFMPEG.js, это аккуратный инструмент, который скомпилирован с помощью asm.js`and, и пусть он будет создавать JS-приложения, которые могут быстро редактировать видео. FFMPEG.js также работает с веб-рабочими, чтобы вы могли кодировать видео без блокировки основного потока. Я также люблю Comlink. Comlink позволяет мне легко взаимодействовать с веб-рабочими, выставляя функции и классы, не имея дело с сложным конечным автоматом postMessage. Недавно мне удалось объединить этих двух. Я экспериментировал с тем, чтобы экспортировать FFMPEG в Web Assembly (он работает - yay), и я хотел очистить всю работу postMessage в текущем проекте FFMPEG.

Read More

Translating a blog using Google Cloud Translate and Hugo

Paul Kinlan

Недавно я вернулся из поездки в Индию для участия в мероприятии Google4India (вскоре сообщается) и встретиться с большим количеством компаний и разработчиков. Одной из наиболее интересных изменений стало стремление к большему количеству контента на языке пользователей в стране, и это было особенно очевидно во всех продуктах Google, которые варьировались от упрощения поиска на языке пользователей, поиска контента, а также прочитать его пользователям в текстовой или речевой форме. Вся поездка заставила меня задуматься.

Read More

Apple - Web apps - All Categories

Paul Kinlan

Помните, когда веб-приложения были * рекомендованным способом использования приложений на iPhone? What are web apps? Learn what they are and how to use them. Читать полное сообщение. Примерно в 2013 году Apple начала перенаправлять каталог / webapps / top-level в / iphone / Дело в том, что каталог действительно хорош, многие приложения в нем все еще работают сегодня. Однако, глядя на AppStore, он решил намного больше проблем, которые были у разработчиков: Лучшее обнаружение и поиск именно потому, что AppStore был непосредственно на устройстве.

Read More

Gears API

Paul Kinlan

Я пишу сообщение в блоге о ранних API для мобильных веб-сайтов, и Алекс Рассел напомнил мне о Google Gears Gears modules include: LocalServer Cache and serve application resources (HTML, JavaScript, images, etc.) locally Database Store data locally in a fully-searchable relational database WorkerPool Make your web applications more responsive by performing resource-intensive operations asynchronously Читать полное сообщение. Я думаю, что интересно видеть, что AppCache и WebSQL, Geolocation и WebWorkers вышли из идей в Google Gears, и только последние два из них действительно выжили.

Read More

RSS Feed to Google Chat Webhook using Cloud Functions for Firebase and Superfeedr

Paul Kinlan

Мы часто используем Google Chat для общения через нашу команду - это похоже на нашу слабость; Мы также создаем много контента, доступного через RSS-каналы, у нас даже есть [команда, которую вы можете просмотреть) (http://devwebfeed.appspot.com). До недавнего времени я узнал, что создать простой простой почтовый бот через WebHooks довольно легко. дал мне идею, я могу создать простой сервис, который опросает RSS-каналы, а затем отправляет их на наш веб-сайт, который может отправлять сообщения прямо в наш командный чат.

Read More

'Moving to a Chromebook' by Rumyra's Blog

Paul Kinlan

Рут Джон перешла на Chrome OS (временно): The first thing, and possibly the thing with the least amount of up to date information out there, was enabling Crostini. This runs Linux in a container on the Chromebook, something you pretty much want straight away after spending 15 minutes on it. I have the most recent Pixel, the 256GB version. Here’s what you do. Go to settings. Click on the hamburger menu (top left) - right at the bottom it says ‘About Chrome OS’ Open this and there’s an option to put your machine into dev mode It’ll restart and you’ll be in dev mode - this is much like running Canary over Chrome and possibly turning on a couple of flags.

Read More

What are the pain points for web designers? - Mustafa Kurtuldu

Paul Kinlan

Мустафа пишет: Tooling is complicated, we are a tooling focused industry, and they change so much. I have used maybe rough eight different tools, from Photoshop to Sketch. That’s before we add prototyping tools to the mix. This may be something we just have to accept. After all, type standards only really started to settle in the 90s, and typography is a 500-year-old discipline. Designers are still finding it difficult to prove the importance of the process.

Read More

Page Lifecycle API - Philip Walton

Paul Kinlan

Филип Уолтон обладает огромным погружением в новый API, над которым работала команда Chrome, чтобы дать вам (разработчику) контроль за тем, как реагировать, когда браузер выгружает ваши вкладки. Application lifecycle is a key way that modern operating systems manage resources. On Android, iOS, and recent Windows versions, apps can be started and stopped at any time by the OS. This allows these platforms to streamline and reallocate resources where they best benefit the user.

Read More

Add to homescreen changes in Chrome 68 - Pete LePage

Paul Kinlan

Pete LePage пишет о важных изменениях в Add to Homescreen в Chrome Add to Home Screen changes If your site meets the add to home screen criteria, Chrome will no longer show the add to home screen banner. Instead, you’re in control over when and how to prompt the user. To prompt the user, listen for the beforeinstallprompt event, then, save the event and add a button or other UI element to your app to indicate it can be installed.

Read More

A one year PWA retrospective - Pinterest Engineering

Paul Kinlan

Большой обзор PWA Pinterest The verdict Now for the part you’ve all been waiting for: the numbers. Weekly active users on mobile web have increased 103 percent year-over-year overall, with a 156 percent increase in Brazil and 312 percent increase in India. On the engagement side, session length increased by 296 percent, the number of Pins seen increased by 401 percent and people were 295 percent more likely to save a Pin to a board.

Read More

Configuring hugo server to serve 'mjs' ES modules

Paul Kinlan

По умолчанию Hugo не поддерживает файлы .mjs с правильным типом контента. Фактически, только до недавнего времени hugo мог обслуживать более одного расширения файла на mime-тип. Похоже, что с v0.43 это было исправлено. [mediaTypes] [mediaTypes.“text/javascript”] suffixes = [“js”, “mjs”] Читать полное сообщение. Вышеприведенный код позволяет мне обслуживать файлы mjs для ES-модулей с правильным типом mime (модули примечаний должны обслуживаться с помощью «text / javascript»). Это необходимо только для локального тестирования, хостинг - это еще одна проблема :)

Read More

Thoughts on importing npm modules to the web as JavaScript modules

Paul Kinlan

У меня есть мысли о том, что я сделал вчера о ES-модулях I needed a quick way import a simple module get-urls into my project. The module is well tested and it does what I needed … ignore the fact that it’s pretty easy to implement in a couple of lines of JavaScript. The problem I had is that my project is built in ES6, uses modules and I didn’t want to have to bundle up using CommonJS (require).

Read More

This.Javascript: State of Browsers - YouTube

Paul Kinlan

Трейси Ли из The Dot организовал довольно аккуратный потоковый поток, который привел многих поставщиков браузеров, чтобы дать обзор того, над чем они работают: Browser representatives from Brave, Beaker, Edge, Chrome, & Mozilla get together to talk about recent updates and the state of browsers. Featured Speakers: Brendan Eich -  Creator of Javascript, Co-founder & CEO at Brave Software Paul Frazee - Works on Beaker Browser Matthew Claypotch - Developer Advocate at Mozilla Paul Kinlan - Senior Developer Advocate at Google Patrick Kettner - Edge at Microsoft Amal Hussein - Senior Open Web Engineer at Bocoup Tracy Lee - GDE, RxJs Core Team, This Dot Co-founder Читать полный пост.

Read More

PWACompat: the Web App Manifest for all browsers - @ChromiumDev

Paul Kinlan

Sam Thorogood из нашей команды пишет: You’ve designed a webapp, built its code and service worker, and finally added the Web App Manifest to describe how it should behave when ‘installed’ on a user’s device. This includes things like high-resolution icons to use for e.g. a mobile phone’s launcher or app switcher, or how your webapp should start when opened from the user’s home screen. And while many browsers will respect the Web App Manifest, not every browser will load or respect every value you specify.

Read More