Malformed OPML
My OPML files are not correctly formatted, specifically with unescaped apostrophes in attributes. This issue affects users of my Ajax Tagger v2, but I haven't received reports of any problems so far. 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!)
C#/.Net on the XBox 260 360, maybe one day
I've noticed a lot of searches related to C# and Xbox 360 development. While it's unclear what the future holds, some recent posts suggest that using the CLR on the Xbox 360 may be possible someday. Whether this will open up homebrew development remains uncertain, especially considering potential licensing restrictions. Though it's unlikely, we can still hold onto a glimmer of hope! Read More
Google Search: ebay asp.net api soap wsdl [part deux]
This post is a follow-up to my earlier one about using SOAP requests in ASP.Net to access the eBay API. I've finally figured out how to make it work! A few key things to note: most requests need the "version" attribute, some require the "DetailLevel" attribute, and you'll need an eBay Authentication Token (a cryptographic hash) for security. When using the WSDL URL, remember to include query string parameters so eBay knows what to do. I've included some sample C# code demonstrating how to build the request URL, set credentials, and handle the response. Read More
Google Search: ajax definition .net for dummies
This post explains AJAX (Asynchronous JavaScript and XML) and its use in .NET. AJAX allows web pages to update small sections without reloading the entire page, improving user experience. Traditional ASP.NET (1.x) struggles with this as it's designed to reload entire pages. However, .NET's flexible request pipeline allows plugins/HTTPHandlers to manage AJAX requests, enabling developers to execute specific methods within a page. The post lists several .NET AJAX frameworks, including AjaxPro, Arshad.NET, and AjaxAspects, and points readers to ajaxpatterns.org for more options. Read More
Google Search: ebay asp.net api soap wsdl
I'm exploring the eBay API using ASP.NET and SOAP. It's proving a bit cumbersome due to its monolithic structure. Ideally, each API call would have its own WSDL and SOAP interface for easier management. Currently, I'm stuck on generating a User Token for authentication, having tried my developer account, regular eBay account, and a new account without success. Any advice on obtaining a User Token would be greatly appreciated! Read More
Google Search: why use sealed classes?
I had a comprehensive blog post on sealed classes and their benefits within Google Search, but unfortunately, it was lost. I plan to rewrite it soon. Read More
Project Origami
I'm not as impressed by Project Origami as others seem to be. While the idea of an ultra-mobile PC is appealing, and I'd like to own one, it feels like a somewhat predictable development in technology. Read More
Feed or Email Delivery
I'm considering adding an email subscription option for blog updates, as an alternative to RSS/ATOM feeds. Would you subscribe to email updates if offered? Read More
Google Search: C#, Finding the Locale
This post discusses how to determine a user's locale in C#. For ASP.NET applications, the Request.UserLanguages
array provides the user's preferred languages, with the first element being the primary locale. This can be used to set the thread's culture using CultureInfo.CreateSpecificCulture()
. In Windows Forms or services, the current culture can be accessed via Thread.CurrentThread.CurrentCulture
and several properties like TwoLetterISOLanguageName
or DisplayName
allow retrieval of locale information.
Read More
Google Search: find file extension with regex in c#
This post addresses a common search query: how to find file extensions using regular expressions in C#. I provide several regex examples for this purpose, including variations for finding extensions only at the end of a string and for specifically finding three-letter extensions. Read More
Microformat proposal
I'm exploring the idea of a "Questions and Answers" microformat to add semantic meaning to questions and their corresponding answers within text. I propose using <span class=qa><span class=question>Where does paul kinlan live?</span><span class=answer>liverpool</span></span>
as a potential structure. This could be beneficial for search functionality, allowing search engines to index question-answer pairs instead of entire pages. I'm looking for feedback on whether this is a valuable concept, worth pursuing, or if it has already been discussed elsewhere.
Read More
Updated UI
I've given kinlan.co.uk a fresh coat of paint with a new Blogger Template. It's cleaner, faster, and easier on the eyes. I'm planning some more small tweaks in the near future, stay tuned! Read More
Been on training
I've just completed a Mastering UML training course at IBM Education Services in London. It was a good course and I learned a lot, particularly because the instructor, Chas Weaver, incorporated his own experiences. The only downside was the lack of Internet access. Read More
Bill Hill on IE7 Cleartype
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
C# CSS Classname Regex
I've updated my C# regex for extracting CSS class names to correctly handle URLs in CSS properties like url(someimage.png)
. The previous version incorrectly matched file extensions. The improved regex uses a negative lookbehind assertion (?<!url\s*\(.*)
to prevent matching class names within url()
declarations. It now accurately extracts class names, even with variations in spacing within the url()
function.
Read More
Not going to update the style of this site
I've been considering updating the website's design as mentioned before, but haven't found one that is both simple and aesthetically pleasing. I may update it in the future when I have more time. Read More
Coding Horror
I love Coding Horror and want to emulate its crisp, clean design on my own blog. My current design is bloated, slow, and hard to read. I plan to back up my template and experiment with a simpler layout next week. Read More
Openseach and IE7 Beta 2 update
I've updated my Opensearch implementation based on feedback from Michael Fagan. Changes include correcting the short name length, fixing capitalization issues, and adding an RSS search URL using Google Blog Search. Unfortunately, full A9.com integration isn't possible because the search engine isn't on my domain. While proxying results is an option, I feel that would be unfair to Google. Read More
Google Adsense for Search and IE7 Openseach Provider
I contacted Google about using my AdSense account with IE7's SiteSearch through OpenSearch. Unfortunately, they don't currently allow anything but their own search boxes. I think this is a limitation and they said they'd consider it, but for now, using AdSense with IE7's OpenSearch provider is not permitted. Read More
Google Search and IE 7 Search Provider
I've added a custom search provider to my blog using Google Search for Internet Explorer 7 Beta 2 users. It lets you easily search my site's content. The provider is set up using an OpenSearch XML file linked in each page's header. Not sure about Google's terms on this, so I'll remove it if there's an issue. Hopefully, this example helps others implement search providers. Read More