Hello. I am Paul Kinlan.

I lead the Chrome and the Open Web Developer Relations team at Google. Exploring the intersection of modern web design and future-facing technologies.

Stay in the loop.

I'm trialing a newsletter. Join for monthly insights into web dev, Chrome, and the open web.

alternate_email

Get in touch

Open to chat about Chrome or Web development.

Book a consultation
1 min read

Amazon Web Service API SOAP vs REST

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.
1 min read

Favorite Movies

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.
1 min read

Idea for another Program

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?
2 min read

RE: C# : Where do you define an enum

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.
4 min read

RE: OPML - Please enlighten me

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.
1 min read

OPML JavaScript Object Model Updates

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; }
2 min read

RE: C# : Where do you define an enum

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.
1 min read

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

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.