Hello.

I am Paul Kinlan.

A Developer Advocate for Chrome and the Open Web at Google.

I love the web. The web should allow anyone to access any experience that they need without the need for native install or content walled garden.

Yahoo's API Terms and Conditions are really Harsh

Paul Kinlan

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

Ajax Tagger is Updated

Paul Kinlan

The Ajax Tagger has been updated with a number of bug fixes and improvements. Key changes include using my own Tag Directory for related tags, providing Yahoo search results as RSS in OPML output, and fixing issues with menu item classes, OPML apostrophe escaping, and image selection persistence. Planned future enhancements include a Blogger interface, Kelkoo integration, addressing a cross-domain CGI request security warning, and Del.icio.us OPML integration.

Read More

Update to AJAX Tagger OPML Ouput

Paul Kinlan

I've updated my Ajax Tagger 2.0 tool! It now provides related search results and outputs them as OPML, including RSS feeds for search engines like MSN, Technorati, and Google Blog Search. I'm looking for more search engines that offer RSS output. If you know of any, especially for Google or Yahoo, please share!

Read More

Yahoo Yay, Amazon Boo!

Paul Kinlan

I'm consistently impressed by Yahoo's web service team and their responsiveness to users. In contrast, Amazon's web service support is practically non-existent. My simple question about UK support for the TextStream parameter in AWS has gone unanswered for ages, and I know I'm not alone. Amazon, please step up your game!

Read More

Update To Ajax Tagger Verision 2

Paul Kinlan

I've updated my AJAX Tagger to Version 2! This release adds a simple but useful feature: you can now manually add your own tags in the tag list panel. This is really helpful when the Yahoo Developer Term Extraction API isn't sufficient for tagging, like when you need specific tags such as "C#" and ".Net".

Read More

Yahoo Term Extraction

Paul Kinlan

I'm exploring how to improve the relevance of Yahoo Term Extraction API results. My initial question to Yahoo revealed that their system uses a semantic network to relate words and phrases. I'm experimenting with a two-step process: first, extract terms without a query to identify the most relevant term, and second, use that term as a query in a second extraction to refine the results. This might improve relevance, though it doubles the number of API calls. I plan to test this in my DeliTag and AjaxTag applications.

Read More

Search Engine Results

Paul Kinlan

My website traffic this month is unusually high, almost matching the entire previous month's traffic in just eight days. Google seems to be the primary driver of this surge, sending a significantly larger number of visitors compared to other search engines like Yahoo and MSN. A majority of the searches are related to C#, which suggests I should continue focusing on that topic in my future posts.

Read More

Yahoo Context Search Was down

Paul Kinlan

My Wikipedia-based AJAX Tag and AJAX Tag 2 scripts were temporarily broken due to an issue with Yahoo's service. Big thanks to the Yahoo developer team, especially Toby Elliot, for quickly resolving the problem! Of all the Web 2.0 APIs I've used, Yahoo's has the most helpful and responsive support.

Read More

I am going to put DeliTag on the main page

Paul Kinlan

I'm excited to announce that DeliTag will be featured on the main page to increase visibility and usage. It will also be available on Tagger.Kinlan.co.uk. As a reminder, DeliTag is an AJAX-based mashup of Yahoo and Del.icio.us, allowing users to generate and post tags to Del.icio.us based on page content.

Read More

Yahoo API Developer Network

Paul Kinlan

I reported two issues with the Yahoo API over the weekend: one regarding the result number restriction not working as expected and another about the contextual term extraction API failing to process text after encountering HTML tags. Yahoo responded promptly on Monday, confirming that one issue is a bug being addressed and the other has already been fixed. I'm very impressed with their responsiveness and quick turnaround.

Read More

RE: Should I go with compression

Paul Kinlan

James Manning left a comment on my blog post about compression, pointing to a Microsoft article about built-in decompression support in .NET 2.0 for SOAP replies. While I appreciate the comment, Yahoo APIs don't use SOAP, so it won't be helpful in that context. However, this information could be useful for working with Amazon APIs, which do have a SOAP interface.

Read More

Related Wikipedia Articles in AjaxTagger v1 is broke

Paul Kinlan

The related Wikipedia articles feature in AjaxTagger v1 is temporarily broken due to an update in one of the Yahoo Perl Proxy Scripts for AjaxTagger v2. I plan to fix it soon.

Read More

Minor Test with AJAX Tagger

Paul Kinlan

I've been experimenting with the AJAX Tagger and integrated it with Wikipedia to generate related article links. It's pretty quick, generating relevant links in about a minute. There's a minor issue where sometimes the links point to Yahoo search results instead of directly to Wikipedia, which I'm investigating. I'm also looking for feedback on how to order the tags and related documents, so feel free to email me or leave a comment.

Read More

Ad Targeting by Yahoo! Publisher Network

Paul Kinlan

Yahoo! Publisher Network (YPN) now offers ad category targeting, similar to Google AdSense. This feature allows publishers to specify categories for their ads, resulting in more relevant ads for their audience. I'm excited about the potential of this for my own site and hope Google implements a similar feature in AdSense. I'm even considering incorporating this into future versions of AjaxTagger.

Read More

MSN are launching APIs

Paul Kinlan

MSN is launching APIs on Tuesday, September 13th, allowing developers to access their search results. More information will be available on the MSN developer site. I plan to explore these APIs and discuss my findings on this blog and on tagger.kinlan.co.uk. I hope they offer innovative features beyond basic search result access, similar to Yahoo's related searches, contextual searches, and term extraction.

Read More

The Failures of my First AJAX application: Part 4

Paul Kinlan

In this part of my series on my first AJAX application, I discuss how my initial hopes for AJAX as a solution to bandwidth and UI problems, and for speed improvements, weren't fully realized. The first version, which incorporated Technorati stats and Yahoo's TermExtraction API, was slow due to sequential queries and Technorati's performance. I removed these features because I wanted a fully rendered page, which negated AJAX benefits. The next version will be fully asynchronous, with a request manager for trickle filling and background processing. Check out my AJAX Technorati Tagger to see what I'm aiming for.

Read More

Just Looking at my Logs

Paul Kinlan

I checked my website logs using AWStats and noticed a few searches from Google and MSN, but none from Yahoo. One search caught my attention: "does blogging make money." I tried searching this phrase on both Google and MSN but couldn't find my blog post within the first 15 pages of results. If the person who searched for this and found my blog is reading this, I'd love to know how they found me! And to answer the question, no, blogging doesn't make me money (yet!).

Read More

Proxy Script To Yahoo API Term Extraction

Paul Kinlan

I've just finished creating a proxy script that allows access to the Yahoo Content Analysis API Term Extraction service from any browser, bypassing cross-site scripting issues. It works by taking a POST request, forwarding it to Yahoo, and returning the XML response. The code (Perl) is included in the post, and I've successfully tested it with IE6, IE7, and Firefox. Feel free to email me if you have any questions.

Read More

Proxy Script To Yahoo Related Searches

Paul Kinlan

This blog post introduces a Perl proxy script that leverages the Yahoo Related Suggestions API. Given a search term, the script queries Yahoo and returns a list of related search terms. This can be used to enhance search functionality by providing users with additional relevant search options. An example is given using the term "Kinlan" and the post links to a previous entry describing a proxy for the main Yahoo search API. The provided code snippet demonstrates how to construct the API call using LWP and CGI, requiring a valid Yahoo App ID.

Read More

Feedsters API

Paul Kinlan

The Feedster API has potential, but it's unclear what its purpose is. It would be more useful if it allowed content searches and provided metadata about searches, such as the number of blogs or pages a term appears in. Additional features like showing top searches and providing search result counts could be valuable. The current API requires a private key, which necessitates a proxy script for security. A simpler authentication method like Yahoo's Application ID would be preferred. Despite some limitations, the ability to publish search results as an RSS feed is a nice feature.

Read More

The Successes of my first AJAX Application: Part 1

Paul Kinlan

In this first installment of a series about my AJAX application journey, I'm sharing my initial success: learning to think asynchronously. The current app takes user-entered text, sends it to a Yahoo web service (via a local Perl script), gets "interesting" words, and then makes synchronous calls to Technorati for tag counts. This synchronous approach locks the browser, especially with multiple tags. The next version will use a queue and multiple asynchronous XMLHttpRequest objects managed by a thread manager to avoid browser lock-up. This will create a more responsive app where results appear as they become available. Key requirements for v2 include full asynchronicity, XMLHttpRequest management, a generic work queue, background task indicators, and a non-blocking UI. I'm also planning to develop a reusable object model.

Read More

Things I have learn't from my first Ajax Test

Paul Kinlan

My first foray into Ajax was a mixed bag, yielding both valuable lessons and frustrating setbacks. On the plus side, it sparked a deeper understanding of asynchronous coding, cross-browser compatibility (especially between Firefox and IE), and the potential of APIs like Yahoo! and Technorati. It also reignited my interest in Perl and prompted reflection on my blogging practices. However, the application fell short in several areas: it lacked search functionality, didn't reduce bandwidth, had a poor visual design, and wasn't user-friendly or impactful enough to generate feedback or traffic. Moving forward, I'll share my design process and desired improvements, starting with a clear requirements document. I'm eager to learn from this experience and create a more effective application.

Read More

AJAX Application Update

Paul Kinlan

I've been exploring how Microsoft's Start.com retrieves data from external web feeds. It appears they use a server-side script to tunnel requests to the remote server, effectively acting as a proxy. This workaround is necessary due to browser security restrictions that prevent cross-domain data fetching in Firefox and certain Internet Explorer configurations. Consequently, my AJAX application will need to handle the additional bandwidth required for retrieving data from Yahoo and Technorati directly, as redirecting XMLHttpRequest calls isn't a viable option.

Read More

AJAX Technorati Tagger

Paul Kinlan

I've created my first AJAX application, an AJAX Technorati Tagger, which can be found here. It allows users to input text, receive suggested Technorati tags (powered by Yahoo's web service), and generate a list of related keywords. It's still a work in progress with some bugs, but feedback is welcome!

Read More

Just a little something I am working on

Paul Kinlan

I'm developing an AJAX application to automatically generate Technorati, Feedster, and MSN search boxes with relevant tags for my blog posts. It's a JavaScript webservice queryer that uses results from one service as input for another. Currently, it only supports IE6/7 due to cross-domain data source import restrictions in Firefox. I'm exploring JavaScript code signing as a potential solution. The application integrates with Yahoo webservices, with plans to include Technorati and hopefully Feedster. There are security concerns regarding my Yahoo key. I aim to have a prototype available for feedback soon.

Read More

Are there any good Web Services out there?

Paul Kinlan

I'm exploring different web services, particularly for UK retailers like Tesco, Asda, or Virgin. I've tried Amazon's, which is decent, and Yahoo's, which I like. Ebay's looks interesting, but I'd rather not pay. I'm also looking at Alexa's and Google's. It's tough finding good resources on this, especially for UK retailers. I'd love to see APIs from companies like Tescos, Asda, Dixons, and others. If you know of any good web services, especially in the UK retail space, please share!

Read More

REST and SOAP

Paul Kinlan

I've been exploring Amazon's SOAP API and Yahoo's REST API and I'm quite impressed with both. I'm thinking about ways to make these two APIs interact and will share my ideas in a future post. I've also been working on using REST in .Net 1.1, which is a little tricky but possible, thanks to Martin G. Brown's work. The process involves using an XSD of the response, running it through XSD.exe to generate a Dataset object, and then processing the results. It's a similar concept to WSDL, but without the automatic stub generation. I'll post some Yahoo API code examples soon. I plan to look into Google's API as well, even though it's in beta with usage restrictions.

Read More