Hello.

I am Paul Kinlan.

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

I love the web. The web should allow anyone to access any experience that they need without the need for native install or content walled garden.

IndexedDB as a Vector Database

Paul Kinlan

I created a simple vector database called "Vector IDB" that runs directly in the browser using IndexedDB. It's designed to store and query JSON documents with vector embeddings, similar to Pinecone, but implemented locally. The API is basic with insert, update, delete, and query functions. While it lacks optimizations like pre-filtering and advanced indexing found in dedicated vector databases, it provides a starting point for experimenting with vector search in the browser without relying on external services. The project was a fun way to learn about vector databases and their use with embeddings from APIs like OpenAI.

Read More

Bookmarklet: Eyedropper

Paul Kinlan

This blog post introduces a bookmarklet utilizing the EyeDropper API for quickly grabbing color information in Chromium-based desktop browsers. The bookmarklet simplifies color selection by opening the eyedropper tool and returning the chosen color's sRGBHex value in an alert box. A link to a related blog post about creating a similar Chrome extension is also included.

Read More

2020 Web

Paul Kinlan

This post explores the ever-evolving landscape of web technologies and their compatibility across different browsers and platforms. It examines tools like iwanttouse.com and other resources to determine what web features can be safely used in 2021. The discussion will also include insights from industry experts like Jason and Mathias Bynens regarding JavaScript best practices. Finally, the post proposes the innovative concept of adopting a "quirks mode" but tailored to specific years, which could offer greater control over web development.

Read More

How compatible is the web?

Paul Kinlan

This post explores the concept of web compatibility and whether it can be quantified. It draws parallels to the Receiver Operating Characteristic (ROC) curve, questioning if a similar metric could represent the trade-off between compatibility and feature availability. The post also examines how browser vendors' incentives influence feature adoption and proposes leveraging compatibility data sources like caniuse and web platform tests (WPT) to prioritize compatibility improvements. Potential tools, such as a compatibility bot and automated blog updates, are suggested to highlight these improvements.

Read More

Streaming Templates in node and the browser

Paul Kinlan

I needed a streaming template engine for a web app I'm building that works in Node.js, the browser, and service workers. Existing solutions like flora-tmpl were great for Node.js, but I needed something smaller and compatible with all environments. So, I created whatwg-flora-tmpl (name pending), a lightweight library based on the WhatWG Streams API. It uses template literals, handles dynamic content, and even supports nested streams. The example code demonstrates how it can be used to render HTML responses piece by piece instead of waiting for all data, significantly improving perceived performance. It's particularly useful for responses generated in service worker fetch events. Big thanks to Matthew Phillips, the creator of flora-tmpl, which served as the inspiration for this project.

Read More

Hiring: Chrome Privacy Sandbox Developer Advocate

Paul Kinlan

I'm looking for a Developer Advocate to join the Chrome team and help us improve web privacy. We have many ongoing and upcoming projects within the Privacy Sandbox initiative. This role will focus on advocating for cross-browser privacy solutions, working with external developers, and ensuring our internal teams prioritize user and developer needs. This will involve explaining potentially disruptive changes (like the SameSite cookie attribute update) and helping developers adapt.

Read More

Browser Bug Searcher

Paul Kinlan

Check out Browser Bug Searcher, a tool created by Robert Nyman and Eric Bidelman that helps you easily search for bugs across major browser engines. It's a super handy resource for staying up-to-date on the status of web platform features. I wish more bug trackers, like crbug and webkit, had easy RSS feed options like this so I could integrate them into my personal dashboard.

Read More

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

Paul Kinlan

I recently noticed Twitter has adopted the Well-Known URL for Changing Passwords, which is a simple yet effective way to improve user experience. This spec allows browsers to offer a UI for quick password resets without navigating complex site structures, simply by checking a well-known URL. This sparked an idea: could we expand this concept to other common user actions? Imagine well-known locations for managing GDPR consent, browser permissions, account details, or mailing list subscriptions. It's a powerful concept that could simplify many online interactions, and I've even raised an issue with Chrome to explore implementation.

Read More

Every browser should support a style of 'intent:' URL syntax

Paul Kinlan

Custom URL schemes for launching apps have limitations: single app handling, one-way data flow, lack of fallback, and limited mobile support. A better approach is needed, one that offers user choice, developer fallback, diverse data transport, web app registration, and online/offline functionality. Android's 'intent:' URL syntax offers a good starting point, abstracting service discovery and supporting fallback URLs. I propose exploring a new 'action:' scheme or 'web+action' to bridge web and native apps, providing a unified service resolution and registration system for a richer, more integrated user experience.

Read More

Triggering a native Share intent on Android from the web

Paul Kinlan

This story starts a long time, was tickled into existing after I visited FlipKart in Bangalore and was finalized after an internal conversation about the fact that it is impossible to trigger the share dialog in Android from the web. Lots of people want it, it turns out everyone thought it wasn't possible. It is.*

Read More

Bill Hill on IE7 Cleartype

Paul Kinlan

In this post, I share my support for Internet Explorer 7's decision to enable ClearType by default. Bill Hill's blog post on the topic highlights research demonstrating ClearType's positive impact on reading, IE's primary use case. Personally, I've found ClearType enhances readability and focus, though IE7 Beta 2 has presented rendering issues on platforms like Blogger.

Read More

Google Search Query: internet explorer 7 favorites

Paul Kinlan

I revisited my Internet Explorer 7 Favorites guide now that Beta 2 is available. Previously, Beta 1 had two major issues: the favorites menu would crash and, if the menu was large, it would fill and obscure the screen. Thankfully, both problems seem resolved in Beta 2; the menu is scrollable like in IE6 and no longer crashes.

Read More

Google Desktop Beta 2 and IE7

Paul Kinlan

Google Desktop Beta 2 is slowing down my computer significantly, affecting web browsing, IE7 tabbed browsing, and Blogger's editor. It also hogs CPU and makes Outlook integration and IMAP usage very slow. While the What's Hot widget and Gmail integration are nice, the lack of UK news and email ordering issues are disappointing. I plan to uninstall it soon.

Read More

IE7 Tabbed Browsing Annoyance Part 2

Paul Kinlan

IE7's synchronous XmlHttpRequest locks up all browser tabs during long requests, not just the active tab. Is this behavior expected or a bug? If you've encountered this problem, please email me so I can investigate further.

Read More

IE7 Crashes when Showing list of favorites

Paul Kinlan

My IE7 Beta 1 keeps crashing when I try to expand my favorites list, although it works fine in collapsed view. This might be related to the large number of unsorted favorites I have, as mentioned in my previous post. Has anyone else encountered this issue or found a solution? Please email me if you have any suggestions. I also plan to re-add searches to the sections below soon.

Read More

What I thought was a smart Idea.

Paul Kinlan

I had this brilliant idea to create a merged RSS feed using client-side processing. The idea was to have a main RSS feed that linked to other feeds. My custom XML would include a list of sources. Then, using XSLT in the browser, the client could merge these external feeds into a single view. It worked perfectly locally! However, I hit a roadblock with cross-domain security restrictions when I uploaded it to my server. The browser wouldn't let me pull in feeds from other domains due to security concerns. Additionally, client-side XSLT processing isn't universally supported. So, even if the security issue wasn't there, many feed readers wouldn't be able to display the merged feed. In the end, the project failed. But, I learned a lot about browser security, XSLT limitations and client/server interactions!

Read More

IE7 Suggestions For RSS Feeds

Paul Kinlan

I've been exploring the RSS features in IE7 Beta 1 and have a couple of suggestions. First, it would be great if we could add feeds to favorites directly from the feeds toolbar button, rather than having to navigate to the feed itself. It's an extra step when we've already decided we like the content enough to add it. Second, I'm curious about how IE7 discovers feeds on a page. Sometimes it works, sometimes it doesn't. Is it just looking for a specific link tag in the head section or is there more to it? It seems to struggle with feeds linked via anchor tags. Overall, I'm enjoying IE7 so far, just want to offer some feedback.

Read More