Hello.

I am Paul Kinlan.

I lead the Chrome and the Open Web Developer Relations team at Google.

AI and Web Development

I've been thinking alot about how AI impacts the web

Amazon Web Service API SOAP vs REST

Reading time: 1 minute

I've been exploring the Amazon Web Service API, comparing its REST and SOAP interfaces. Initial impressions suggest the REST API is significantly faster, especially compared to my experiences using the SOAP API with C# and Web References. However, it's worth noting that these observations aren't based on rigorous testing and the different environments (Windows Forms vs. a Linux server on a fast network) could be influencing the perceived performance difference. Read More

I lead the Chrome Developer Relations team at Google.

We want people to have the best experience possible on the web without having to install a native app or produce content in a walled garden.

Our team tries to make it easier for developers to build on the web by supporting every Chrome release, creating great content to support developers on web.dev, contributing to MDN, helping to improve browser compatibility, and some of the best developer tools like Lighthouse, Workbox, Squoosh to name just a few.

I love to learn about what you are building, and how I can help with Chrome or Web development in general, so if you want to chat with me directly, please feel free to book a consultation.

I'm trialing a newsletter, you can subscribe below (thank you!)

Favorite Movies

Reading time: 1 minute

YMDB.com is a great site for listing your favorite movies and finding others with similar tastes. While the current interface is a bit tedious for adding and sorting films, it's still a worthwhile resource. I'd love to see an AJAX-style update to improve the user experience. Check out my profile for some examples of how I use YMDB. Read More

Further update to my AJAX Application DeliTag

Reading time: 1 minute

I've updated my AJAX application, DeliTag (The Delicious Tag Poster)! Now, when you select text within the IFRAME, the application will analyze only the selected text instead of the entire page. This makes tagging much more precise. Read More

Idea for another Program

Reading time: 1 minute

I have a new program idea: an automatic tag creator for Del.icio.us, similar to my Ajax Tagging Application. It would analyze a webpage's content to suggest relevant topical tags, which you could then select and use to upload the URL and tags to Del.icio.us. I believe this would be a useful tool. What are your thoughts? Read More

RE: C# : Where do you define an enum

Reading time: 2 minutes

In response to a comment on Abhinaba's blog, I argue that verbosity in code is generally preferable, especially when defining enums. While Intellisense can be helpful, it shouldn't dictate design decisions. Enums should ideally be defined within the class they're used, unless they're shared across multiple classes from the outset. This improves code clarity and makes dependencies explicit. For example, separate FileFilter and DirectoryFilter enums within their respective classes are better than generic namespace-level filters. Read More

RE: OPML - Please enlighten me

Reading time: 4 minutes

I'm struggling to understand the practical uses of OPML, especially given the inconsistent use of attributes like 'type', 'url', and 'xmlurl'. While I'm developing a JavaScript OPML object model for my own projects (like a tagging system where OPML stores related links for blog posts), I haven't found a clear standard for defining outlines. It seems like the 'standard' emerges from popular usage rather than formal specification. I'm particularly interested in how to determine the file type of items within an OPML outline, as my current application only uses links for pages and images (feed support is still pending). The lack of clear semantics in OPML makes it difficult to build dynamic applications that can 'mash up' content from different sources based on the OPML structure. Read More

OPML JavaScript Object Model Updates

Reading time: 1 minute

I've updated the OPML JavaScript Object Model to support OPML Attributes for Outlines, increasing flexibility for developers. I've also incorporated an instanceOf method (source unknown - please let me know if you recognize it!) to add type checking when inserting OPMLOutlineAttributes into the attribute array. The added instanceOf function is as follows:

function instanceOf(object, constructor)  while (object != null) {       if (object == constructor.prototype)          return true;       object = object.__proto__;    }    return false; }
Read More

RE: C# : Where do you define an enum

Reading time: 2 minutes

This post discusses the best placement for enum declarations in C#. While some argue that defining enums outside the class avoids extra typing, I believe that placing them inside the class improves code clarity, reduces ambiguity, and makes it easier to handle similarly named enums from different classes. IntelliSense helps with the extra typing. The original article argues against this, prioritizing less typing, but I find that less important than clarity and proper scoping. Read More

RE: Ping Part III: Adventures in Socket programming using System.Net

Reading time: 1 minute

I've posted another update to my ICMP ping tutorial series on MSDN Blogs. This installment focuses on crucial aspects like calculating checksums and serializing packets into byte arrays for transmission. While we haven't started sending data over the wire, understanding these concepts is vital for the next steps. Check out the post for more detail. Read More

Googles Blog Search is FAST at indexing

Reading time: 1 minute

Wow! Google Blog Search indexed my latest post in just minutes! I was amazed by how fast it appeared in the search results after uploading. I'm curious if other search engines are this quick. Technorati is fast, but I have to ping them. With Google, it just worked automatically. Big kudos to Google and possibly Blogger for the seamless integration! Read More

Little problem with my Atom Feed

Reading time: 1 minute

My Atom feed was truncating the description text, making it look odd. I've fixed the problem and hope it didn't affect my readers too much. Read More

Problem with JavaScript in IE7

Reading time: 1 minute

I've encountered a bug in IE6/7 where dynamically created checkboxes lose their checked status after being added to the document. Setting the checked property after appending the element seems to be a reliable workaround. If anyone knows why this behavior occurs, please contact me! Read More

RE: Ping Part II: Adventures in Socket programming using System.Net

Reading time: 1 minute

Part two of my C# Ping tutorial is now available! This installment dives into the structure of Ping packets and their place in the communication stack. It explores the fundamentals of how ping works, from sending echo packets to receiving echo responses and using response time to determine network connectivity. Read More

Note to self

Reading time: 1 minute

I need to remember to learn more about the Dojo Toolkit, a JavaScript library. Read More

RE: Ajax Framework Comparison

Reading time: 1 minute

I came across Matt Harrison's post discussing the challenges of choosing between various Ajax toolkits and frameworks, and it really resonated with me. He highlighted the OSA Foundation's survey of Ajax/JavaScript libraries, which covers a wide range of options like Dojo, DWR, JSON-RPC-JAVA, MochiKit, Prototype, Rico, SAJAX, Scriptaculous, Xajax, and Sack. It's fascinating to see how these libraries address different aspects of Ajax development. This makes me rethink my recent work on the backend XMLHttpRequest for Ajax Tagger Version 2, and whether leveraging existing solutions may have been more efficient. Links to the OSA Foundation, Michael Mahemoff's framework information, and my own previous blog post on Ajax layers are included for further exploration. Read More

RE: PING: Adventures in Socket programming using System.Net

Reading time: 1 minute

I'm back to blogging and starting a series on socket programming! First up: building a simple Ping client using System.Net.Sockets. I'll walk you through it, and as a starting point, you can check out the ICMP RFC. Stay tuned for more! Read More

Untitled

Reading time: 1 minute

I found a cool fisheye effect using Javascript at the Dojo Toolkit website. Check it out, it's neat, but I'm not sure how practical it is. Read More

Page Rank

Reading time: 1 minute

I'm curious about the hype surrounding Page Rank, especially with the upcoming update. Personally, I don't have any Page Rank and question its significance. Is it just a placebo, creating a false sense of understanding Google's algorithms? What are your thoughts? Read More

JavaScript OPML Object Model Update

Reading time: 1 minute

I'm working on a JavaScript Object Model for OPML and have found areas for improvement. I initially misunderstood the OPML spec, particularly regarding the attributes of the outline element, which are more flexible than I realized. This is important for handling things like files, links, HTML, and RSS. The current model has issues with proper quoting of characters like quotes and ampersands, but otherwise, the generated OPML XML seems good. I'll be updating the model to handle these attributes soon and will post more about the specific attributes in a future post. Read More

Ajax Tagger Version 1 Update to Wikipedia Documents

Reading time: 1 minute

I've updated Ajax Tagger Version 1 to clean up how Wikipedia article titles appear in search results. It now removes the "- Wikipedia, The Free Encyclopedia" suffix. This improves the result list's readability and still adheres to Wikipedia's linking policy by referencing Wikipedia elsewhere in the implementation. Read More