Hello.

I am Paul Kinlan.

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

A project that I thought was a good idea

Reading time: 3 minutes

I bought iforgive.eu and iforgiv.eu domains hoping to create something cool, but my initial ideas (a flower shop, a public forgiveness platform, and an open email apology site) were flawed due to practicality and potential abuse. Then I thought about a social charity platform ("If Or Give") or a Q&A site, but those didn't pan out either. So now, I'm thinking of just using it to host my .Net 2.0 experiments. Any suggestions? Let me know in the comments! 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!)

Test

Reading time: 1 minute

A test post exploring comments and other features. Read More

Topicala

Reading time: 1 minute

I've decided to make the Topicala software distributable so anyone can run it. I'll release the code soon, after re-deploying it under kinaln.co.uk. It'll be maintainable and modifiable, allowing others to have a similar setup on their own sites. If you're interested, let me know! Read More

Just Updated the Styles to this site

Reading time: 1 minute

I've given my website a fresh new look with a template of my own design! I'm currently working on ensuring it's compatible with Internet Explorer. Your feedback and suggestions are greatly appreciated! Read More

I am still not happy with the style of this site

Reading time: 1 minute

I'm going through a phase where I dislike my website's style and plan to redesign it when I have time. I've created a potential logo using vector graphics software and would love feedback. P.S. I'm much happier with the site's look now! Read More

My Dad has Started a blog!

Reading time: 1 minute

My dad has started a blog about cycling and how it has helped him improve his fitness. He's lost over 4 stone (27KG) by combining cycling with the Lifestyle and Weight Management Service. Check out his blog at http://frank.kinlan.co.uk and leave him some feedback! Read More

BBC Programme Calendar to iCal Works in Outlook 2007

Reading time: 1 minute

My BBC Programme Calendar to iCal mashup, which converts BBC program data to iCal, works seamlessly with Outlook 2007. Users can easily import program schedules by navigating to their account settings, clicking the internet calendars tab, clicking "new", and entering the URL of the desired program. For example football fans can import the data for the footie http://www.kinlan.co.uk/bbc/football. Read More

Testing From Microsoft Word 2007

Reading time: 1 minute

Just tested the blogging feature from Microsoft Word 2007 and it's pretty cool if it works as expected. I'm loving the new interfaces for Excel, Word, and PowerPoint, especially the ribbon. Visio, however, seems a bit stale. Smart Art looks promising, like CSS taken to the next level. I might just switch to Word 2007 for good! Read More

Yahoo's API Terms and Conditions are really Harsh

Reading time: 2 minutes

I've always been a fan of Yahoo's developer APIs due to their generous usage limits and flexible terms. However, recent changes to their T&Cs are concerning. They now prohibit displaying ads alongside Yahoo API results unless they're Yahoo Ads, and they forbid showing Yahoo search results next to other search engines' results. This impacts sites like Topicala.com and gada.be, as well as many example applications using Google AdSense. While their RSS feed search terms seem more lenient, allowing aggregation with other results and ads, the overall tightening of restrictions stifles innovation. I've updated Topicala.com to use the RSS feed as a workaround. I'm disappointed with Yahoo's approach, as proper attribution should be sufficient, especially when sites like mine prioritize Yahoo results. Until the licensing becomes more flexible, I can't recommend Yahoo's APIs. Read More

Topicala Needs your Help

Reading time: 1 minute

I'm building a hierarchical tag directory for Topicala and need your help populating it. You can add tags via the web interface or by using the API: http://www.topicala.com/api/add/[TagName] to add a new tag and http://www.topicala.com/api/add/[ParentTag]/[ChildTag] to create parent/child relationships. Your contributions will eventually allow users to filter search results more effectively. Read More

Adwords

Reading time: 1 minute

I'm experimenting with AdWords to drive traffic to both this site and Topicala.com. So far, I'm getting about 60 extra visitors per day to each site. I've tweaked my campaigns, disabling ads in Google's search results due to high costs. While I achieved a high volume of ad impressions (600,000) for kinlan.co.uk recently, the click-through rate remains low, and I need better insight into keyword performance and ad placement. I'd love to hear any marketing suggestions. If you arrived here through an AdSense ad, please share your feedback and the referring website. I'm considering using ads to promote specific blog posts for increased visibility. Read More

Another reason why .Net 3.0 should be called .Net 2.5 (or something similar)

Reading time: 1 minute

This post agrees with Kirk Allen Evans's argument that .NET 3.0 should be named something closer to 2.5 due to its reliance on the 2.0 framework and compilers. The additive nature of the release doesn't warrant a full version number increment. Read More

.NET Framework 3.0

Reading time: 1 minute

Microsoft has renamed WinFX to .NET Framework 3.0. This new version will include the existing .NET Framework 2.0 components (ASP.NET, WinForms, ADO.NET, additional base class libraries, and the CLR) along with new technologies like WPF, WCF, WF, and WCS. However, there's no mention of C# 3.0 being included, and the author finds this renaming confusing and unnecessary. Read More

RE: Some things about XLinq

Reading time: 5 minutes

This post responds to Mike Champion's comment on my previous XLinq blog post. I clarify the XML file used (Wikipedia XML Abstract) and explain why I chose an XMLReader for its speed, especially when combined with custom data structures for a cyclic graph representation. XLinq's syntax and lambda expressions felt less intuitive for my task of converting XML into SQL statements. The project involves relating "title" elements with "sublink" entities, resulting in a complex graph structure not easily handled by XLinq without excessive data duplication and memory consumption. While XStreamingElement offers some improvement by avoiding redundant data scans, I desire deferred data loading for processing only necessary slices of the XML. This approach could handle selects, wheres, and counts efficiently in a single pass, and even joins with clever indexing. Defining a schema during XML iteration seems redundant when XLinq expressions already specify data requirements. Pre-loading entire XML documents into memory feels inefficient when only a small portion is used. I propose deferring data loading until needed, despite potential issues with repeated XDocument inspections. Ideally, XLinq should scale without forcing users to revert to less efficient methods due to data size limitations. I inquire about potential hard limits and scaling formulas related to XML document size in XLinq. Read More

Blogger Introduces RSS 2.0 Without telling anyone it seems

Reading time: 1 minute

Blogger has quietly rolled out RSS 2.0 support, which I discovered via reports and confirmed by IE7. Time to clean up my feeds! Read More

hCard

Reading time: 1 minute

I've added hCard, a microformat, to my blog. It makes my contact info machine-readable while still being visible to readers. It's basically an XHTML version of the vCard standard. I'm not totally sure I implemented it perfectly with the DIVs and spans, but check out the hCard creator tool if you're interested. Read More

Promoting a Comment to the Main Page about XLinq

Reading time: 2 minutes

I'm highlighting a comment from Mike Champion, XLinq's program manager at Microsoft, addressing the issue of querying large XML files with XLinq. He discusses their current investigation into this problem and seeks feedback on how large XML documents are typically structured. Specifically, he asks about the structure of my 900MB XML file to better understand user needs and design appropriate solutions within XLinq. He mentions exploring options like a LINQ-queryable XmlReader or a lazy evaluation approach similar to XStreamingElement, while aiming for simplicity and avoiding dependencies on schemas or XPath. He's open to further discussion via his blog's contact form. Read More

Back to playing with WPF

Reading time: 1 minute

I've reinstalled the latest WPF and WCF beta versions and I'm planning to write some blog posts about it very soon. I'm ready to dive back into WPF and share new insights. Read More

I wish I could easily move away from blogger

Reading time: 1 minute

I'm incredibly frustrated with Blogger's lack of updates, inconsistent publishing, and inflexibility. I wouldn't recommend it to anyone looking for a reliable blogging platform. Read More

Some things about XLinq

Reading time: 2 minutes

I've been experimenting with XLinq in C# 3.0, but I'm not impressed with its querying capabilities. It seems to require loading the entire XML document into memory, which caused problems when I tried to process a 900MB file. A simple XML reader was much more efficient for this task. I'd like to see an XLinq implementation that can process XML data in a streaming fashion, similar to SAX or XmlReader, to avoid memory issues. This would make it more practical for large documents. Perhaps XLinq already supports this, but I haven't found how. For now, it seems best suited for smaller files. Read More