Yahoo's API Terms and Conditions are really Harsh
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
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!)
Topicala Needs your Help
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
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)
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
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
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
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
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
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
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
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
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
C# 3.0
I recently commented on an old blog post about C# 3.0, expressing initial agreement with a sentiment against functional programming in the industry. However, upon reflection, I realized C# 3.0 isn't purely functional but rather integrates some academic concepts into a practical context for industry use. While still learning C# 3.0, functional programming, and LINQ, I've found my tests using these features to be clearer and more presentable. Although there's a learning curve, especially with the generic delegate syntax and translating between "SQL" and object syntax, I'm embracing the ongoing learning process. Read More
Sky+
I just got Sky+ installed and it's awesome! I've set it to record my favorite shows like Stargate SG1 and The Simpsons. I have the Toshiba 80GB model with two USB ports, but I've heard they're not functional. If you have any cool Sky+ tips, email me! Read More
Topicala now has its own Blog!
I'm thrilled to announce the launch of my new blog on topicala.com! Visit http://www.topicala.com/blog to stay updated on all the latest news and developments related to my Topicala aggregating search engine. Read More
A new .Net Blogger
My friend, Paul Pierce, has started a new blog! He plans to cover various topics, including .Net. He's already got a helpful post up about using NMock 2. I encourage you to check it out, it is very good - possibly even better than mine. Visit his blog here: http://www.paulpierce.co.uk Read More
C# 3.0 and XLinq
In this post, I explored C# 3.0 and XLinq by parsing a music style XML document from MusicMoz. I created a simple class "TagCategory" to store the style name and category. Then, using XLinq, I loaded the XML, extracted the "style" elements, and created a List of TagCategory objects. The code concisely retrieves and stores the data using object initializers. Feel free to share your feedback or suggestions for improvement! Read More
Topicala OPML Results are LAUNCHED!
I've just added OPML output to Topicala, my topical result aggregation engine. Now, all results displayed on the site are also available in OPML format. Check it out and let me know what you think! Read More
Topicala Is LAUNCHED!
I'm excited to announce the launch of my new project, Topicala! It's a topical search aggregator where you enter a topic and discover all the related information. It's almost complete, just needs a few bug fixes and OPML output. Try it out with some example searches and give me your feedback! Read More
Google Calander Mashup with BBC Programme Listing API
I've created a tool that converts BBC program listings into iCal format, allowing you to subscribe to a calendar of your favorite shows. Just add the program keyword to the end of "http://www.kinlan.co.uk/bbc/" (e.g., "http://www.kinlan.co.uk/bbc/breakfast") to get the iCal feed. You can then add this feed to Google Calendar, MS Outlook, or other calendar applications to stay updated on program schedules. I'm still developing this, so feedback and suggestions are welcome! Read More