Hello.

I am Paul Kinlan.

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

Screen Recorder: recording microphone and the desktop audio at the same time

Paul Kinlan

Tôi có một mục tiêu là xây dựng phần mềm ghi màn hình đơn giản nhất thế giới và tôi đã dần dần làm quen với dự án trong vài tháng qua (ý tôi là rất chậm). Trong các bài viết trước, tôi đã có được screen recording and a voice overlay bằng cách kết hợp với các luồng từ tất cả các nguồn đầu vào. Một điều khiến tôi nản lòng là tôi không thể tìm ra cách lấy âm thanh từ máy tính để bàn * và * phủ âm thanh từ loa.

Read More

Extracting text from an image: Experiments with Shape Detection

Paul Kinlan

Tôi đã có một chút thời gian sau khi Google IO và tôi muốn gãi ngứa lâu dài. Tôi chỉ muốn có thể sao chép văn bản được lưu giữ bên trong hình ảnh trong trình duyệt. Đó là tất cả. Tôi nghĩ rằng nó sẽ là một tính năng gọn gàng cho tất cả mọi người. Không dễ để thêm chức năng trực tiếp vào Chrome, nhưng tôi biết tôi có thể tận dụng hệ thống ý định trên Android và bây giờ tôi có thể làm điều đó với Web (hoặc ít nhất là Chrome trên Android).

Read More

New WebKit Features in Safari 12.1 | WebKit

Paul Kinlan

Cập nhật lớn cho Safari mới nhất! Tôi đã nghĩ rằng đây là một thông báo khá lớn và ngược lại với Google mà trước đây đã nói rằng Google Pay Lib là cách được đề xuất để thực hiện thanh toán … Yêu cầu thanh toán, nhưng đây không phải là PR trước. Payment Request is now the recommended way to pay implement Apple Pay on the web.

Read More

Offline fallback page with service worker

Paul Kinlan

Nhiều năm trước, tôi đã thực hiện một số nghiên cứu về cách các ứng dụng gốc phản ứng với việc thiếu kết nối mạng. Mặc dù tôi đã mất liên kết đến phân tích (tôi có thể thề là trên Google+), câu chuyện bao quát là nhiều ứng dụng gốc gắn chặt với internet mà chúng chỉ cần từ chối hoạt động. Nghe có vẻ giống như rất nhiều ứng dụng web, điều khiến chúng khác biệt so với web là trải nghiệm vẫn là 'thương hiệu', Bart Simpson sẽ nói với bạn rằng bạn cần phải trực tuyến (ví dụ), và cho phần lớn các trải nghiệm web bạn nhận được 'Dino' (xem chrome: // dino).

Read More

Editor.js

Paul Kinlan

Tôi đã cập nhật bởi trình soạn thảo dựa trên Hugo để thử và sử dụng EditorJS, cũng như trình chỉnh sửa cho blog. Workspace in classic editors is made of a single contenteditable element, used to create different HTML markups. Editor.js workspace consists of separate Blocks: paragraphs, headings, images, lists, quotes, etc. Each of them is an independent contenteditable element (or more complex structure) provided by Plugin and united by Editor’s Core.

Read More

Debugging Web Pages on the Nokia 8110 with KaiOS

Paul Kinlan

Gần đây chúng tôi đã phát triển rất nhiều trên điện thoại tính năng và điều đó thật khó khăn, nhưng thú vị. Điều khó nhất là trên KaiOS, chúng tôi thấy không thể gỡ lỗi các trang web, đặc biệt là trên phần cứng mà chúng tôi có (Nokia 8110). Nokia là một thiết bị tuyệt vời, được xây dựng với KaiOS mà chúng ta biết dựa trên một cái gì đó giống với Firefox 48, nhưng nó bị khóa, không có chế độ nhà phát triển truyền thống như bạn có trên các thiết bị Android khác, có nghĩa là bạn không thể kết nối Firefox Web dễ dàng.

Read More

Object Detection and Augmentation

Paul Kinlan

Tôi đã chơi rất nhiều với Shape Detection API trong Chrome rất nhiều và tôi thực sự thích tiềm năng của nó, ví dụ như một QRCode detector rất đơn giản tôi đã viết cách đây rất lâu có một polyfill JS, nhưng sử dụng API new BarcodeDetector() nếu có. Bạn có thể thấy một số bản demo khác mà tôi đã tạo ở đây bằng cách sử dụng các khả năng khác của API phát hiện hình dạng: Face Detection , Barcode Detection và Text Detection .

Read More

Got web performance problems? Just wait...

Paul Kinlan

Tôi đã thấy một tweet của một người bạn tốt và đồng nghiệp, Mariko , về việc thử nghiệm trên một loạt các thiết bị cấp thấp giữ cho bạn thực sự có căn cứ. Bối cảnh của tweet là chúng tôi đang xem xét Phát triển Web như thế nào khi xây dựng cho người dùng sống hàng ngày trên các lớp thiết bị này. Nhóm hiện đang làm rất nhiều việc trong không gian này, nhưng tôi đã dành một ngày để xây dựng một trang web và thật khó để làm bất cứ điều gì hoạt động ở mức độ hợp lý thậm chí hơi hợp lý - đây là một số vấn đề mà tôi gặp phải:

Read More

Browser Bug Searcher

Paul Kinlan

Tôi chỉ phản ánh về một số work our team has done và tôi đã tìm thấy một dự án từ năm 2017 mà Robert Nyman và Eric Bidelman đã tạo ra. Browser Bug Searcher! . Thật đáng kinh ngạc khi chỉ với một vài lần nhấn phím, bạn đã có một cái nhìn tổng quan tuyệt vời về các tính năng yêu thích của mình trên tất cả các công cụ trình duyệt chính.

Read More

Github's Web Components

Paul Kinlan

Tôi đang tìm kiếm một trình soạn thảo đánh dấu nhanh trên https://www.webcomponents.org/ để tôi có thể đăng bài lên blog này dễ dàng hơn và tôi tình cờ tìm thấy một bộ các thành phần gọn gàng của github . Tôi biết rằng họ có <time-element> nhưng tôi không biết họ có một bộ phần tử hữu ích đơn giản và đẹp như vậy.

Read More

London from Kingscross

Paul Kinlan

Trông hôm nay đẹp quá.

Read More

The GDPR mess

Paul Kinlan

Cách chúng tôi (như một ngành công nghiệp) thực hiện sự đồng ý GDPR là một mớ hỗn độn. Tôi không chắc tại sao mọi người lại chọn bất cứ thứ gì ngoài 'Chỉ sử dụng cookie cần thiết', tuy nhiên tôi thực sự không thể biết được sự khác biệt giữa lựa chọn và sự đánh đổi của một trong hai lựa chọn, không đề cập đến chỉ sử dụng cookie cần thiết.

Read More

Brexit: History will judge us all

Paul Kinlan

Lịch sử sẽ phán xét tất cả chúng ta về mớ hỗn độn này, và tôi hy vọng nó sẽ là một trường hợp nghiên cứu cho tất cả các tác động của chủ nghĩa dân tộc, lợi ích cá nhân, sự kiêu ngạo của thực dân, người nổi tiếng. Đồ ngu.

Read More

Ricky Mondello: Adoption of Well-Known URL for Changing Passwords

Paul Kinlan

Ricky Mondello trên nhóm Safari vừa mới chia sẻ một lưu ý về cách Twitter sử dụng thông số ./well- Unknown / exchange -password. I just noticed that Twitter has adopted the Well-Known URL for Changing Passwords! Is anyone aware of other sites that have adopted it? Twitter’s implementation: https://twitter.com/.well-known/change-password; Github’s: https://github.com/.well-known/change-password; Specification :https://github.com/WICG/change-password-url Read full post . Tính năng này hoàn toàn vượt qua tôi nhưng đó là một ý tưởng gọn gàng: được cung cấp một tệp ở một vị trí nổi tiếng, trình duyệt có thể cung cấp giao diện người dùng cho người dùng cho phép họ nhanh chóng đặt lại mật khẩu mà không phải điều hướng giao diện người dùng phức tạp .

Read More

pinch-zoom-element

Paul Kinlan

Jake và nhóm đã xây dựng yếu tố tùy chỉnh khá tuyệt vời này để quản lý thu phóng pinch trên bất kỳ bộ HTML nào bên ngoài động lực học pinch-zoom của trình duyệt (nghĩ rằng phóng to khung nhìn di động). Yếu tố này là một trong những thành phần trung tâm mà chúng tôi cần cho ứng dụng squoosh mà chúng tôi đã xây dựng và phát hành tại Chrome Dev Summit (… Tôi nói rằng 'được phát hành tại Chrome Dev Summit' - Jake đã hiển thị cho mọi người tại Ngày nhà phát triển Google Trung Quốc mặc dù phần còn lại của đội bị cấm vận;) …)

Read More

Registering as a Share Target with the Web Share Target API

Paul Kinlan

Pete LePage giới thiệu API mục tiêu chia sẻ web và tính khả dụng trong Chrome thông qua bản dùng thử gốc Until now, only native apps could register as a share target. The Web Share Target API allows installed web apps to register with the underlying OS as a share target to receive shared content from either the Web Share API or system events, like the OS-level share button.

Read More

Why Build Progressive Web Apps: Push, but Don't be Pushy! Video Write-Up

Paul Kinlan

Một bài viết và video và mẫu tuyệt vời của Thomas Steiner về các thông báo đẩy tốt trên web. A particularly bad practice is to pop up the permission dialog on page load, without any context at all. Several high traffic sites have been caught doing this. To subscribe people to push notifications, you use the the PushManager interface. Now to be fair, this does not allow the developer to specify the context or the to-be-expected frequency of notifications.

Read More

Maybe Our Documentation "Best Practices" Aren''t Really Best Practices

Paul Kinlan

Kayce Basques, một nhà văn công nghệ tuyệt vời trong nhóm của chúng tôi đã viết một bài báo khá tuyệt vời về kinh nghiệm của anh ta đo lường cách thức tài liệu tốt nhất hiện hành hoạt động tốt để giải thích tài liệu kỹ thuật. Thực tiễn tốt nhất theo nghĩa này có thể là các tiêu chuẩn công nghiệp nổi tiếng về văn bản kỹ thuật, hoặc nó có thể là hướng dẫn phong cách viết của công ty bạn.

Read More

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

Paul Kinlan

Tôi đã ở Trung Quốc vài tuần trước cho Ngày nhà phát triển của Google và tôi đã hiển thị cho mọi người [Trình quét QRCode] của tôi (0), nó hoạt động tốt cho đến khi tôi ngoại tuyến. Khi người dùng ngoại tuyến (hoặc được kết nối một phần) máy ảnh sẽ không khởi động, điều đó có nghĩa là bạn không thể chụp mã QR. Nó đã cho tôi một tuổi để làm việc ra những gì đang xảy ra, và nó chỉ ra tôi đã nhầm lẫn bắt đầu máy ảnh trong sự kiện onload của tôi và yêu cầu Google Analytics sẽ treo và không giải quyết một cách kịp thời.

Read More

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

Paul Kinlan

Vào cuối tuần, tôi đã chơi với bộ mã hóa video hiệu ứng Boomerang, bạn có thể làm cho nó hoạt động gần thời gian thực (tôi sẽ giải thích sau). Tôi đã làm việc trên Chrome trên máy tính để bàn, nhưng nó sẽ không bao giờ hoạt động bình thường trên Chrome trên Android. Xem mã ở đây. Có vẻ như khi bạn sử dụng captureStream () trên một <canvas>có độ phân giải tương đối lớn (1280x720 trong trường hợp của tôi) API MediaRecorder sẽ không thể mã hóa video và nó sẽ không lỗi và bạn không thể phát hiện ra rằng nó không thể mã hóa video trước thời hạn.

Read More

Why Microsoft and Google love progressive web apps | Computerworld

Paul Kinlan

Một bài đăng hay về PWA từ Mike Elgan. Tôi không chắc chắn về mục tiêu của Microsoft với PWA, nhưng tôi nghĩ rằng chúng tôi khá đơn giản: chúng tôi muốn người dùng có quyền truy cập vào nội dung và chức năng ngay lập tức và theo cách họ mong đợi để có thể tương tác với nó trên thiết bị của họ. Web sẽ tiếp cận mọi người trên mọi thiết bị được kết nối và người dùng có thể truy cập vào phương thức ưa thích của họ, dưới dạng ứng dụng nếu đó là cách họ mong đợi (di động, có thể) hoặc giọng nói trên trợ lý, v.

Read More

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

Paul Kinlan

Vấn đề đầu tiên tôi tìm thấy là cố gắng xây dựng trình chỉnh sửa video trên web. Tôi có nhiều luồng video (máy tính để bàn và web cam) và tôi muốn có thể chuyển đổi giữa các luồng video trên một phần tử video để tôi có thể nhanh chóng chuyển đổi giữa web cam và màn hình nền và không phá vỡ MediaRecorder. Có vẻ như bạn có thể làm điều đó thông qua việc chuyển đổi thuộc tính selected trên đối tượngvideoTracks trên <video>phần tử, nhưng bạn không thể, mảng các bản nhạc chỉ chứa 1 phần tử (đoạn video đầu tiên trên MediaStream).

Read More

Barcode detection in a Web Worker using Comlink

Paul Kinlan

Tôi là một fan hâm mộ lớn của QRCodes, họ rất đơn giản và gọn gàng để trao đổi dữ liệu giữa thế giới thực và thế giới kỹ thuật số. Trong một vài năm nay tôi đã có một dự án nhỏ bên gọi là QRSnapper & mdash; nó cũng có một vài cái tên, nhưng đây là cái tôi đã giải quyết trên & mdash; sử dụng API getUserMedia để lấy dữ liệu trực tiếp từ máy ảnh của người dùng để nó có thể quét mã QR trong thời gian thực gần.

Read More

Running FFMPEG with WASM in a Web Worker

Paul Kinlan

Tôi yêu FFMPEG.js, nó là một công cụ gọn gàng được biên dịch với asm.js` và nó cho phép tôi xây dựng các ứng dụng web JS có thể chỉnh sửa video nhanh chóng. FFMPEG.js cũng hoạt động với các nhân viên web để bạn có thể mã hóa video mà không chặn luồng chính. Tôi cũng yêu Comlink. Comlink cho phép tôi dễ dàng tương tác với các nhân viên web bằng cách trưng ra các hàm và các lớp mà không cần phải xử lý một máy trạng thái postMessage phức tạp.

Read More

Translating a blog using Google Cloud Translate and Hugo

Paul Kinlan

Gần đây tôi đã trở về từ một chuyến đi đến Ấn Độ để tham dự sự kiện Google4India (báo cáo sớm) và gặp gỡ nhiều doanh nghiệp và nhà phát triển. Một trong những thay đổi thú vị nhất được thảo luận là thúc đẩy nhiều nội dung hơn bằng ngôn ngữ của người dùng trong nước và đặc biệt rõ ràng trên tất cả các sản phẩm của Google, giúp tìm kiếm bằng ngôn ngữ người dùng dễ dàng hơn, để tìm nội dung, và cũng có thể đọc lại cho người dùng dưới dạng văn bản hoặc giọng nói.

Read More

Apple - Web apps - All Categories

Paul Kinlan

Hãy nhớ rằng khi các ứng dụng web được * a * đề xuất cách sử dụng các ứng dụng trên iPhone? What are web apps? Learn what they are and how to use them. Đọc toàn bộ bài đăng. Vào khoảng năm 2013, Apple bắt đầu chuyển hướng / webapps / thư mục cấp cao nhất đến / iphone / Vấn đề là, thư mục thực sự khá tốt, rất nhiều ứng dụng trong đó vẫn hoạt động hiện nay.

Read More

Gears API

Paul Kinlan

Tôi đang viết một bài đăng trên blog về API Web di động sớm và Alex Russell đã nhắc tôi về 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 Đọc toàn bộ bài đăng. Tôi nghĩ thật thú vị khi thấy rằng AppCache và WebSQL, Geolocation và WebWorkers xuất hiện từ những ý tưởng trong Google Gears và nó chỉ là hai ý tưởng sau đó thực sự tồn tại.

Read More

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

Paul Kinlan

Chúng tôi sử dụng Google Trò chuyện trong nội bộ rất nhiều để giao tiếp trong nhóm của chúng tôi - nó giống như chùng của chúng tôi; Chúng tôi cũng tạo nhiều nội dung có thể truy cập thông qua nguồn cấp dữ liệu RSS, thậm chí chúng tôi có feed nhóm mà tất cả các bạn có thể xem. Cho đến gần đây tôi mới phát hiện ra rằng việc tạo [bot đơn giản chỉ sau qua WebHooks] thật đơn giản (https://developers.

Read More

'Moving to a Chromebook' by Rumyra's Blog

Paul Kinlan

Ruth John đã chuyển sang Chrome OS (tạm thời): 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

Mustafa viết: 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

Philip Walton có một cái nhìn sâu sắc tuyệt vời vào một API mới mà nhóm Chrome đã làm việc để cung cấp cho bạn (nhà phát triển) kiểm soát cách phản hồi khi trình duyệt tải các tab của bạn xuống. 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.

Read More

Add to homescreen changes in Chrome 68 - Pete LePage

Paul Kinlan

Pete LePage viết về những thay đổi quan trọng đối với Thêm vào màn hình chính trong 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

Tổng quan về PWA của 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

Theo mặc định, Hugo không phân phối tệp .mjs với loại nội dung chính xác. Trong thực tế nó đã không được cho đến gần đây mà hugo có thể phục vụ nhiều hơn một phần mở rộng tập tin cho mỗi loại mime. Dường như với v0.43 điều này đã được sửa. [mediaTypes] [mediaTypes.“text/javascript”] suffixes = [“js”, “mjs”] Đọc toàn bộ bài đăng. Đoạn mã trên cho phép tôi phục vụ các tệp mjs cho các Mô-đun ES với kiểu mime chính xác (các mô-đun ghi chú cần được phân phát bằng ‘văn bản / javascript’).

Read More

Thoughts on importing npm modules to the web as JavaScript modules

Paul Kinlan

Tôi đã có những suy nghĩ về bài đăng tôi đã làm hôm qua về ES Module 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

Tracy Lee từ This Dot đã tổ chức một luồng trực tiếp khá gọn gàng đã mang lại nhiều nhà cung cấp trình duyệt để cung cấp tổng quan về những gì họ đang làm việc: 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 Đọc toàn bộ bài đăng.

Read More

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

Paul Kinlan

Sam Thorogood từ nhóm của chúng tôi viết: 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