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.
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.
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!
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!
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".
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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!).
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.
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.
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.
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.
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.
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.
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!
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.
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!
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.