DevWeek Conference Day 1: Jeff Prosise's keynote covered the history of web programming, from CGI to ASP.NET AJAX and WPF/E. While I enjoyed his talk, I would've preferred more focus on the future. The "Attack and Defense" session was disappointing, lacking depth compared to available online resources. David Wheeler's "Practical Patterns" was a highlight, with clear explanations and code examples of design patterns. The vendor presence was smaller than expected. Infragistics showcased promising XAML controls, while TechExcel impressed with their enthusiasm and software demo. Other vendors, like NAG and the Enterprise Architect distributors, could have been more engaging.
Arrived at DevWeek 2007 last night. Looking forward to the keynote by Jeff Prosise on ASP.NET AJAX and then attending architect track sessions on securing ASP.NET 2.0 apps and practical patterns in .NET. Hoping to post summaries if internet access allows.
I finally got a Windows Live Writer plugin working after starting from scratch! Stay tuned as I'm planning to integrate my Ajax Tagger into the Windows Live Writer framework soon. This will be a cool experiment combining Web 2.0 APIs with Windows Live Writer.
This blog post shares a method for integrating Google Calendar into a website using PHP and JavaScript, based on an article from ajax.phpmagazine.net. The author also expresses interest in syncing their Blogger blog with their calendar.
I've created a new tool, AJAX Tagger, to help bloggers enhance their posts. It leverages AJAX to dynamically suggest related articles, topical tags, encyclopedia definitions, and images. It even integrates with your affiliate programs to recommend relevant products. Check it out and let me know what you think!
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.
A big thanks to the first person who Dugg my Ajax Tagger on Digg (I think it was Zoodle)! I'd love to hear your feedback on it, good or bad. Let me know what you think! :)
My OPML files are malformed, specifically the apostrophes in attributes aren't escaped. If you use my Ajax Tagger v2, I apologize for this error, but it seems like it hasn't impacted many users so far.
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.
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.
I'm developing Ajax Tagger 2.0 and need ideas for displaying related blogs within the application and its output. I'm also searching for a good search engine (besides Technorati and Google) to find related blogs and feeds. Any suggestions? Please email me or leave a comment.
I've updated the AJAX Tagger and moved it to a new subdomain: ajaxtag.kinlan.co.uk. This should make it easier to access. The old location (www.kinlan.co.uk/AjaxExperiments/AjaxTag2) will still work and be updated alongside the new address.
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!
The OPML output functionality in my AJAXTagger is now fixed! There was a bug caused by Internet Explorer's lack of support for the __proto__ construct, affecting how the script determined an object's type. This fix resolves the issue, ensuring compatibility with IE6 and IE7.
I was excited about the eBay API becoming free, hoping to build programs around it. However, I'm struggling to find a compelling project idea. Integrating it into my blog isn't feasible due to eBay's dynamic nature, and static integration wouldn't benefit my SEO. A potential idea is an AJAX interface for the Amazon books I feature, but my lack of commission potential is demotivating. My programs usually serve my needs first, like my AJAX Tagger, which helps me provide more info to readers. If I come up with any good eBay API ideas, I'll share them here.
Inspired by my recent success binding XAML directly to Amazon's web service, I'm exploring the possibility of extending this approach to other RESTful services. Imagine building applications, like my AJAX Tagger, entirely in XAML, without any C# code. This hinges on WPF's capabilities. Do you think it's feasible?
I've had people come to my blog searching for how to do threading in JavaScript. Unfortunately, I haven't found a way to do true threading in JavaScript. The closest solution I've found involves creating queues that hold work items. Every 250ms (or a developer-defined interval), the queue checks if work needs to be done and starts a task if none is already running. This approach mimics threading. Check out my AJAX Tagger 2.0 for a working example. If you have any insights on true threading in JavaScript, I'd love to hear them!
Many visitors are trying to access the AJAX Tagger via the non-functional AJAXTag23 test page. I need to update the link, directing them to the correct URL: http://www.kinlan.co.uk/AjaxExperiments/AjaxTag2 (AJAXTag2).
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've been working on AJAX Tagger version 2 and it's ready for everyday use! It leverages APIs from Yahoo, Amazon, Flickr, and Technorati, along with Wikipedia and even your own site's content to find related articles. It's all AJAX-based, uses a unique request queue, and outputs in both OPML and HTML. Plus, it even suggests related Amazon products. Currently, it's IE-only, so check it out at www.kinlan.co.uk/AjaxExperiments/AjaxTag2 and let me know your thoughts! The UI/UX needs some polish, but that's next on my list.
I've just started testing the Sphere Beta Program. While I appreciate the related blogs feature, I find the blog post search results less helpful. When I search for terms like "AJAX", the related blogs are more relevant than the actual posts returned. I'm not sure keyword searches within blog posts are effective for me. I'd love to see features like RSS subscriptions for results, customizable date ranges (e.g., between 2 and 4 months ago), and a "find similar blog posts" search option.
I've joined the Sphere Beta Program and have some initial thoughts. While I find the related blogs feature useful, the blog post search results for keywords like "AJAX" aren't quite hitting the mark. I'd love to see improvements such as RSS subscription options for results, more refined date filtering (e.g., between specific dates), and a "find similar posts" feature.
I'm curious why social bookmarking services like Simpy, Shadows, and del.icio.us prioritize a user's tags over a global view. When clicking a tag, I'd rather see globally relevant tagged pages than just those from a single user. A single user's tagging habits aren't as useful as seeing the broader community's perspective on a topic. Ideally, these services would offer a toggle between user-specific and global tag views.
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 changing the focus of AJAXTag. Instead of just giving users related information, I want to let readers explore and discover connections themselves. I'll create an interactive version of my blog, allowing users to generate an OPML file of related data. This is inspired by Memorandum, but focuses on user exploration within areas of interest. What are your thoughts?
I'm planning some exciting upgrades to my blog! Soon, each post will feature a dynamically generated section at the end, pulling in related content like searches, blogs, images, and Wikipedia articles, all based on the post's context. No caching for now, but I'm considering it for the future. You'll also be able to subscribe to an OPML file containing an outline of all this related information for each post.
I'm searching for social bookmarking services similar to Del.icio.us for integration with my AJAX-based DeliTag. This would allow uploading tags to multiple services simultaneously. So far, I've found Shadows, Simpy, Del.icio.us, and BlinkList (though the latter seems to be down). Any other suggestions are welcome!
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'm searching for del.icio.us alternatives to integrate into my AJAX DeliTag application. My goal is to enable simultaneous tag uploads to del.icio.us and other similar services.
I've just added a new feature to my website! Now, you can easily tag any page (except the main page) with relevant keywords and submit them directly to Del.icio.us. Just select the text, click "Generate Tags," choose the tags you want, enter your Del.icio.us credentials, and hit "Submit Tags." It's all AJAX-powered for a smooth experience. Currently works in IE6 and above, with Firefox compatibility coming soon. Try it out on this post!
I've created a tool called DeliTag that automatically suggests tags for any page on kinlan.co.uk and submits them to your Delicious account. It's a quick process: hit "Goto", let the page load, click "Analyze" to see tag suggestions, choose the ones you like, enter your Delicious credentials, and press "Submit". Keep in mind, this currently only works on my site and requires IE6+ with Cross Domain Data Island support. Passwords are sent as plain text, mimicking Delicious's own method. Let me know if you'd like to see this developed further!
YMDB.com is a great site for listing your favorite movies and finding others with similar tastes. While the current interface is a bit tedious for adding and sorting films, it's still a worthwhile resource. I'd love to see an AJAX-style update to improve the user experience. Check out my profile for some examples of how I use YMDB.
I've updated my AJAX application, DeliTag (The Delicious Tag Poster)! Now, when you select text within the IFRAME, the application will analyze only the selected text instead of the entire page. This makes tagging much more precise.
I have a new program idea: an automatic tag creator for Del.icio.us, similar to my Ajax Tagging Application. It would analyze a webpage's content to suggest relevant topical tags, which you could then select and use to upload the URL and tags to Del.icio.us. I believe this would be a useful tool. What are your thoughts?
I'm struggling to understand the practical uses of OPML, especially given the inconsistent use of attributes like 'type', 'url', and 'xmlurl'. While I'm developing a JavaScript OPML object model for my own projects (like a tagging system where OPML stores related links for blog posts), I haven't found a clear standard for defining outlines. It seems like the 'standard' emerges from popular usage rather than formal specification. I'm particularly interested in how to determine the file type of items within an OPML outline, as my current application only uses links for pages and images (feed support is still pending). The lack of clear semantics in OPML makes it difficult to build dynamic applications that can 'mash up' content from different sources based on the OPML structure.
I came across Matt Harrison's post discussing the challenges of choosing between various Ajax toolkits and frameworks, and it really resonated with me. He highlighted the OSA Foundation's survey of Ajax/JavaScript libraries, which covers a wide range of options like Dojo, DWR, JSON-RPC-JAVA, MochiKit, Prototype, Rico, SAJAX, Scriptaculous, Xajax, and Sack. It's fascinating to see how these libraries address different aspects of Ajax development. This makes me rethink my recent work on the backend XMLHttpRequest for Ajax Tagger Version 2, and whether leveraging existing solutions may have been more efficient. Links to the OSA Foundation, Michael Mahemoff's framework information, and my own previous blog post on Ajax layers are included for further exploration.
I'm working on a JavaScript Object Model for OPML and have found areas for improvement. I initially misunderstood the OPML spec, particularly regarding the attributes of the outline element, which are more flexible than I realized. This is important for handling things like files, links, HTML, and RSS. The current model has issues with proper quoting of characters like quotes and ampersands, but otherwise, the generated OPML XML seems good. I'll be updating the model to handle these attributes soon and will post more about the specific attributes in a future post.
I've updated Ajax Tagger Version 1 to clean up how Wikipedia article titles appear in search results. It now removes the "- Wikipedia, The Free Encyclopedia" suffix. This improves the result list's readability and still adheres to Wikipedia's linking policy by referencing Wikipedia elsewhere in the implementation.
I've created a basic JavaScript Object Model for OPML, which you can find here: http://www.kinlan.co.uk/AjaxExperiments/opml.js. It's not entirely finished yet, but the core structure is in place. I plan to write proper documentation soon.
I'm developing a JavaScript Object Model for OPML, a first as far as I know! This is essential for my AJAX Tagger version 2, enabling dynamic OPML creation, flexible saving options, and real-time user interaction updates.
I've just released version 2 of AJAX Tagger, and it now includes a Related Images feature! It pulls images from Flickr that you can easily insert into your blog posts. While it works great, be aware that downloading many images might be slow in Internet Explorer due to its concurrent request limit. I believe this is a fantastic addition and can significantly boost traffic to your blog, especially considering images are known to attract readers.
I've been pondering the use of tags lately, and noticed a lack of diversity in tagging practices. Many use tags for blog promotion or linking related content. I favor the latter, as it aids in content discovery. However, popular tags on sites like Technorati are often too broad (e.g., "books","blogs") making them less useful for finding niche communities. I propose using more specific sub-tags alongside broader ones. For example, if blogging about Asimov's Foundation series, include both "Asimov" and "Foundation Series" as tags. Tools like my Ajax Tagger and tagyu.com can help suggest relevant tags. I encourage everyone to use a wider range of tags to enrich the tag space and improve content discoverability.
I just discovered that Latricia updated the XML::Feed CPAN module to merge RSS/ATOM feeds into one ATOM feed. This is awesome! I had a similar idea for AJAX Tagger 2.0, where I wanted to offer a combined feed of all tagged results. If this module works as advertised, I can use it directly instead of building my own tool. This might be a better solution than my initial plan of using OPML.
I'm developing a complex new version of the AJAX Tagger (2.0) with enhanced features for adding data to journal entries. However, I'm curious if there's still interest in a simpler version like the original AJAX Tagger. Please share your thoughts and comments!
I've added Wikipedia document retrieval to my application, but there's a design flaw. Tags currently operate in isolation, unaware of each other's related Wikipedia articles. This can lead to duplicate content in the "related articles" section. To fix this, I need to implement a system that allows tags to share information and avoid redundancy, ultimately improving the user experience. Check out the current version here: http://www.kinlan.co.uk/AjaxExperiments/AjaxTag2
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.
Quick update on the AJAX Tagger 2 development. Priority queues are working well, but might need some tweaking on queue numbers and polling intervals. Querying Technorati for tag counts is proving slow (around 2 seconds per query). Any tips on speeding this up, perhaps by limiting the number of blogs returned? Currently working on improving the related documents results, which now includes counts for all selected tags, not just the last search. Need to refine this area. More updates to come!
I'm working on AJAX Tagger 2 and have implemented a priority queue system for AJAX requests. This system uses 5 queues and prioritizes urgent requests by placing them in the fastest cycling queue. Less urgent requests go into slower queues. Check out the demo to see how tag requests are prioritized and tag stats are fetched on a slower queue. The whole page is asynchronous!
Just a quick update on what I've been up to. I'm still working on AJAXTagger v2 whenever I can. It's coming along, but I ran into a few JavaScript issues. Big shoutout to the Dream Projections blog for a post that really helped me figure out how to call JavaScript Object methods with setInterval – super useful for the priority queueing system I'm building.
I'm seeking feedback on the AJAX Tagger I've implemented in my journal entries, specifically concerning the Wikipedia article links. Are they useful? Do you have any suggestions for improvement? You can email me at paul.kinlan@gmail.com or leave a comment.
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.
I'm looking for user feedback on the next version of the AJAX Tagger. Specifically, I'd like to know if users would prefer to have the option of placing Technorati tags inline with the blog post content, or if they prefer the current method of listing them at the end. Inline placement could be problematic because the Yahoo Term Extraction API sometimes uses phrases not found in the post itself.
I'm developing the next version of the AJAX Tagger and need your input! Currently, it enhances blog posts by linking to related blogs on Technorati. For the next version, I'm wondering if you'd prefer it to link to other sources like IceRocket or even Wikipedia. Let me know where you'd find automatic tag links most valuable.
I just got my first comment from a stranger, Gaby de Wilde, on my AJAX Tagger! He even used it on his site. I'm grateful for the feedback and plan to incorporate his suggestions in the next version. Check out his blog to see it in action, and please send me any feedback you have!
I'm really interested in ATLAS (AJAX), but I need to prioritize my time. I can't afford to get sidetracked by this project right now, especially since it's not .Net-based and my current work focuses on .Net.
I'm trying to be more diligent about documentation, but PDC distractions and the new MSN Search API have me sidetracked. The API's SOAP format and seeming redundancy with existing RSS search options make me question its value. Maybe I'll integrate it into AJAXTagger v2 if I can avoid feature creep. Check out my blog for MSN Search and Start.com developer program resources.
Microsoft's Start.com has launched a new developer API, possibly using the ATLAS framework (precursor to ASP.NET AJAX). It seems to focus on creating JavaScript-based "Gadgets," similar to RSS consumers, that need to be hosted on a server. The API also requires enabling cross-domain data sources in Internet Explorer, a topic I've discussed previously.
I've added a new search feature to my site that uses the Yahoo API to find related articles based on keywords. You can test it out at http://www.kinlan.co.uk/AjaxExperiments/AjaxTag. It's a work in progress, but more features are coming soon!
In part 8 of "Failures of my First AJAX Application," I discuss the lack of traffic generated by the application. Initially, I hoped for ad revenue, but I've realized that user engagement is more important. My focus now is on improving the application and planning a marketing campaign to highlight its benefits.
In this final part of "The Failures of my First AJAX Application" series, I reflect on the cross-browser compatibility issues I encountered. Focusing on Internet Explorer during development led to problems in Firefox, particularly with security errors (cross-domain data retrieval) and differences in the XML DOM model. The key takeaway is to consider cross-browser support from the outset, anticipating discrepancies between browsers and coding around missing features, similar to CSS development. The next version will prioritize cross-browser compatibility, potentially including Safari. This series has been invaluable for shaping the requirements of the upcoming version.
This is the fifth installment in my series on the AJAXTagger's failures. A major issue is its lack of intuitiveness. Users couldn't understand its purpose or how to use it without a demo. While it significantly reduced my tagging time, the next version needs improvements. I'm looking for feedback on how to make it more user-friendly, including better visual cues, a clearer UI, and improved documentation. Email me or comment with your suggestions!
This is the sixth part of my series on the failures of my first AJAX application, AJAXTagger. While I initially hoped it would be useful for everyone, it mainly ended up benefiting just me by simplifying the tagging process for my blog posts. Although it didn't meet my initial grand expectations, it was a valuable learning experience. The next version will prioritize my needs but also consider features that could benefit other users, ultimately adding value for my readers.
This is the seventh post in my series about the failures of my first AJAX application. My biggest failure? No one used it! I had these grand visions of tons of users, but it turned out I was the only one. So, I'm changing my strategy. I've started this blog to centralize all information about the AJAXTagger. My next step is promotion! I need users to try it, break it, and give me feedback. Email me or leave a comment with your suggestions!
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.
This blog post, the third in a series about my first AJAX application, focuses on the disastrous visual design. While the functionality is there, the UI is frankly terrible. I've realized my design skills are lacking, and though I have a vision, I struggle to bring it to life visually. The problem is that the application's logic is tightly coupled to the UI. Moving forward, I need to decouple these components. The next version will have a UI-agnostic data structure that the UI can interrogate. This separation will allow me to work on the AJAX framework, business logic, and UI independently.
In part two of this series on the failures of my first AJAX application, I discuss how my initial plan to reduce bandwidth by having the client directly access third-party web services didn't work out. Due to cross-domain scripting issues in Firefox and IE 6/7, I had to implement proxy scripts on my server. This means all client requests now go through my server, increasing my bandwidth demands. While using a proxy server offers benefits like hiding security information (like Technorati developer tokens) and enabling data manipulation/request merging, it comes with the major downside of increased bandwidth usage and the need to create/maintain proxy scripts. I hope to support cross-domain data sources in the next version to mitigate these issues but acknowledge there might still be scenarios where proxy scripts are necessary.
Start.com's AJAX web portal, which displays web feeds in an HTML interface, has been promoted to the main site. However, a persistent issue remains: the inability to cancel the close event on RSS feed panels, a problem previously highlighted and still unresolved.
This post discusses the shortcomings of my first AJAX application. While it successfully implemented Technorati tags, it failed to provide related search functionality, which I believe is crucial for offering readers valuable external resources and further learning opportunities. I aim to address this in the next version by incorporating related searches via Yahoo's API and relevant quick links, enhancing the overall user experience and educational value of my blog.
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.
I'm about to hit 100 posts! I also realized I forgot to post my Perl request forwarding scripts as promised, so I'll do that tonight. I'll also start discussing the issues with my first AJAX application.
In this installment, I reflect on the limitations of Blogger.com as a blogging platform. Despite its user-friendliness, several features fall short of my needs. The "Blogger For Microsoft Word" integration isn't particularly helpful, the WYSIWYG editor is inconsistent, and the available tags seem outdated. I crave more innovation, especially regarding feed customization and ping configuration. While AudioBlogging.com intrigues me, its practicality for someone in the UK is questionable. Ultimately, I desire greater control and configurability, but acknowledge Blogger's value as a free service.
Many complain AJAX breaks browser navigation, but I believe that pressing the back button should exit an AJAX application entirely. It's not AJAX itself, but poorly designed applications that break navigation and bookmarking. Google Maps has addressed bookmarking, but some applications aren't suited to web-style navigation or bookmarks. More thoughts on this to come. Comments welcome via email or the comments section.
This blog post, the sixth in my "Successes and Failures of my First AJAX Application" series, discusses how my blogging style is evolving. I'm focusing on improving my grammar, the topics I cover, post length, and what I include in my blogs. This self-reflection aims to improve how I communicate with my readers. More details on each area are available via the provided links.
This blog post discusses the ideal length of blog entries. It argues that both too short and too long posts can be detrimental to a blog's success. Short posts can appear superficial, while overly long ones can bore readers. The author aims for a balance, using shorter entries for critiques and longer, focused articles for more in-depth topics. This particular post, part of a series on the author's first AJAX application, exemplifies this approach by being broken down into smaller, manageable segments.
I've been reflecting on the direction of my blog, "C#, .Net Framework." I feel the name is too limiting, given my recent posts on topics like IE7, AJAX, Firefox, and XMLHttpRequest. I plan to broaden the scope while keeping the content technical. I also want to increase reader interaction, possibly by crowdsourcing a new name for the blog.
This blog post discusses the importance of balancing valuable content with helpful features. I currently offer content and features like Technorati tags, and plan to bring back related searches. The AJAX application I built helps create this value-added data, which I believe is key for reader engagement. I'm considering adding more data like citations and related searches, but I'm cautious about information overload. Maintaining these value-added sections is challenging (except for the now-easy Technorati tags). I'd love to hear your suggestions for other valuable data to include!
In this part of my series on my first AJAX application, the Technorati Tag Generator, I discuss its success in streamlining my blogging process. The generator significantly reduces the time I spend creating Technorati tags, saving me roughly 50 minutes per post. While I'm thrilled with this improvement, the current version lacks the Feedster and MSN search boxes present in my initial design. I plan to reintroduce these features in the next version, along with related search previews, to enhance the value and usability of my application. User feedback has highlighted the importance of these features, and their inclusion is crucial to achieving my goals for the project.
This post, part 8 of a series about my first AJAX application, discusses my return to Perl programming after a year of focusing on C# and .Net. I needed to solve cross-domain scripting issues when calling a web service directly from the webpage. My solution involved proxying the request through a Perl script on my server, which also hid my developer tokens. I found Perl's libraries easy to use and effective for this task. Future plans include more Perl scripting to aggregate data from different blogs and web services, leveraging the proxy to combine multiple calls and enhance functionality. I also learned a valuable lesson about using "content()" methods for POST operations instead of the query string.
I just discovered the Technorati Tagger application (http://www.ultraseeker.com/tagbuilder). It's decent, converting user-generated tags into XHTML. This represents the simpler half of what I'm aiming to build in my upcoming AJAX application.
In this part of my series on my AJAX application, I'm discussing the impact of external APIs. My use of APIs has made me realize how much more API access I want! I'd love to see broader API availability from feed/blog companies for statistics, retail companies for catalogs, news corporations for news feeds, and search companies for both results and more interesting APIs (like Yahoo's). Essentially, I want a central directory of companies offering these services, recognizing that I'm a consumer of their data. I'm also realizing how many APIs (REST and SOAP) are out there that I could leverage. I envision adding more dynamism to my apps, like analyzing blog post keywords to see their popularity, potential ad revenue, and related keywords. I could then cross-reference this with other sources to give viewers more feedback, such as related blog importance, link counts, and other connections. I could even offer localized product information, best buy deals, or second-hand options based on keywords. This isn't revolutionary, but I need help finding lists of companies that offer web APIs and useful RSS feeds. Readers, please share your knowledge!
My first post using the new Blogger Word Blogging tool! It's easy to use and publishes really fast. I'm curious about HTML control since my AJAX tool outputs HTML. A few quirks: smiley icons show as "(", apostrophes look odd, and images/tables aren't supported. Planning a follow-up post with my feature requests.
This is the fourth installment of my AJAX application development journey. I integrated the Technorati API, focusing on the Tag Query to gauge keyword popularity and refine tag selection for better exposure. While the API was helpful, it lacked features like tag ranking and related tags, and the TagQuery's slow performance forced its removal. Future development will involve optimizing the TagQuery (limiting results or using an asynchronous call manager) and potentially requesting a lightweight metadata interface from Technorati.
In this third part of my series on my first AJAX application, I'm diving into the power of the Yahoo! API. It's been a learning experience, and I'm incredibly impressed with how much it offers compared to Google's. I've been exploring the Term Extraction and Related Searches APIs, and I'm starting to think about how to use the Contextual Search API. The Term Extraction API is great for pulling out keywords, while the Related Searches API helps me find relevant search queries. My app combines these to analyze blog posts and generate related searches. I'm hoping to use the Contextual Search API to add targeted search results. Future versions will incorporate more APIs, possibly from Technorati, to enhance functionality. Stay tuned!
In part 2 of my AJAX application journey, I'm tackling browser compatibility issues between Firefox and Internet Explorer. Key differences include handling XML node text, event triggers for synchronous XmlHttpRequests, and table object model inconsistencies. Looking ahead, I'm planning to componentize my JavaScript for better management and browser caching, and create an event-driven object model for my next application to improve structure and cross-browser functionality. My focus will be on supporting the lowest common denominator for broader browser compatibility.
IE7's synchronous XmlHttpRequest locks up all browser tabs during long requests, not just the active tab. Is this behavior expected or a bug? If you've encountered this problem, please email me so I can investigate further.
I noticed a lack of referrals from Technorati and discovered my blogs weren't showing up in tag searches. The problem stemmed from my Technorati AJAX application, which was using single quotes instead of double quotes around the href attribute in the tag links. I've corrected the issue by changing the single quotes to double quotes in my application, and hopefully, this will resolve the problem with Technorati. While my application is now fixed, it raises the question of whether Technorati should be able to handle both single and double quotes.
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 noticed a difference in how Internet Explorer (versions 6 and 7) and Firefox handle synchronous XmlHttpRequests. In both browsers, you can send requests using JavaScript. However, after the synchronous send() call, Internet Explorer still triggers the onreadystatechange event, while Firefox does not. I need to research which behavior is correct and according to spec. If you happen to know, please email me!
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.
My AJAX application has a minor cross-site data access security issue, similar to one I've encountered in Firefox. A workaround in IE6/7 involves enabling "Access data sources across domains" in Internet Options -> Security -> Custom Level, though this isn't ideal.
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.
My previous blog post was successfully created using Kinlan's Automatic Tag Generator (powered by Yahoo!'s Web service). I'm excited about this and plan to include a link to the Ajax app in the next post. I'm also experimenting with Yahoo search and Technorati integration. I decided to include tags in this post by popular demand.