Archive for November, 2009
OpenSearch search providers and browsers
All the major browser vendors support the OpenSearch format (yes, this means including Microsoft IE8) for registering a search provider in your browser.
Writing a OpenSearch provider
Recently I wrote a search provider for my favorite book-buying site, Pustak.co.in:
<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/">
<ShortName>Pustak.co.in</ShortName>
<Description>Pustak.co.in provider</Description>
<InputEncoding>UTF-8</InputEncoding>
<Url type="text/html"
template="http://pustak.co.in/pustak/books/search?q={searchTerms}&type=book&page=1"/>
</OpenSearchDescription>
Hosting your search provider
To let people use your search provider, you need to host it in the web. For our example, let us assume that you host it here: http://yourhost/your_opensearch.xml.
The MIME type of this document can be left to its default application/xml, or can be made OpenSearch specific: application/opensearchdescription+xml.
Using JavaScript to register a provider
After deploying the OpenSearch XML in your host, we need to write a JavaScript function to register the provider with your browser:
<script type="text/javascript">
function registerYourSearchProvider(){
window.external.AddSearchProvider("http://yourhost/your_opensearch.xml");
}
</script>
This JavaScript worked with Firefox, IE8 and Google Chrome. Opera 10 was not able to understand it.
Auto-discovering OpenSearch providers
Recently when I saw my Google Chrome search providers, I saw this list:
I was surprised to see this list because there are providers that I have not added specifically. How was Google Chrome “discovering” these providers?
A look into the HTML source of one of the auto-registering search provider, I found the following info (in the <head> section):
<link rel="search"
href="/mavensearch.xml"
type="application/opensearchdescription+xml"
title="mavensearch.net" />
To let browsers auto-discover you as a search-provider, add the above in your sites!
WizTools.org: A history!
Writing OpenSource code has been one of my priorities. I have been doing it for years now. This is the story of how it all began.
2003
Before joining in a tech job, many people told me how routine tech job is. People give requirements, and the techies translate it to working code. This was frightening to me! So I decided, I will do all the mundane programming work quickly using automated scripts. I developed a TextEditor for this purpose. It was completely scriptable using BeanShell. This probably is my first OpenSource application. The Java package name started with com.indiwiz.*. The application was shared to the world from my site indiWiz.com.
2005-6
I had a huge collection of porn, and I was sharing my computer with my family. The system had dual boot with both Windows and Linux. I wanted a cross-platform application which would enable me to encrypt and decrypt my precious downloads. During free moments in office, I started exploring encryption and security. This resulted in the WizCrypt project. I learned a great deal when writing this project. This is the only project I have worked on which involved file-format design. For this project I did not want to have the package name starting with com.indiwiz.*. I found the com to be misleading of the purpose. I wanted a package name starting with org. Luckily, I came up with the name WizTools.org, and more luckily, it was available for registration. I grabbed it. Since that date, all my OpenSource work has been branded under this label.
2007
At this time I was working in SpikeSource with an interesting team. I started RESTClient project for testing RESTful WebServices. This was developed in collaboration with Ravi Subramanian (we lost Ravi in a accident in 2008). His sudden demise was a shock to me. This is the most popular product from the WizTools.org stable. It has the maximum community inputs. To broadcast updates of the WizTools.org project, I anticipated a need for a dedicated blog. Thus was wiztools.blogspot.com born.
Present
This is the period during which huge amount of effort and time was spent by me to stabilize and popularize RESTClient. I also started the WizTools.org mini-projects. The mini-projects was created to host all simpler applications without involving the cost (in terms of time) of creating a new project and associated repositories and mailing lists. At the time of writing, the mini-project hosts around 14 released tools/components, and few other productivity tools like JEdit macros and bookmarklets. We also have started some interesting new projects like Java Portlets (reusable JSR-286 portlets) and The Great Wall (micro-blogging web-application) recently.
Now, looking back at the projects available at WizTools.org, I recollect beautiful stories of my own needs for these projects. And the efforts my collaborators and I put to bring them in place.
After acquiring Ehcache, Terracotta now has Quartz in it’s fold
Terracotta has now acquired popular OpenSource Java scheduling library Quartz. This comes as a news few months after its acquisition of Ehcache. I am happy about this acquisition as it will ensure continued support and improvement of the Quartz project.
Subversion project moving into Apache Foundation
I was surprised when my friend Senthil (he is a Subversion committer) broke the news that Subversion project is moving to Apache Software Foundation. Read the official Collabnet announcement.
Linux: Diff between two folders
To find the files which are in one and not in the other:
$ diff -r folder1/ folder2/
To find the file content differences:
$ diff -r -N folder1/ folder2/
Google’s brand new language: Go
Google’s OpenSource blog announces a brand new language: Go. No, it is not a language running in the JVM. Reading the installation doc, it is understood that Go compilers support two OSes: Linux and Mac. By the way, did I mention the blog post announcing the language has signatures including Rob Pike and Ken Thompson?
SUN’s Zembly closing down!
This is the mail I received:
We regret to inform you that on November 30th, 2009 we will be suspending the zembly service. More than three years ago, we started this project with the goal of making it easy to create next-generation Web apps. Our original tagline was "Build the web, using the web," and the ideas we were incubating around platform-mediated Web applications, Web API mashups, and social programming were brand new. We learned a lot along the way. Your confidence and enthusiasm helped us improve the project and do amazing things that we never imagined when we began this journey. Thank you to everyone who's been with us through the ups and downs. It's heartening to see that many of the best ideas pioneered in zembly have started to appear elsewhere. With your support, we're proud to have contributed to the DNA of the Web. For more information about the zembly suspension, please refer to the FAQ section at http://zembly.com Finally, if you have questions, please contact us at zembly-support@sun.com All the best, -- The zembly team Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054
I liked Zembly when SUN first started it. It was damn easy to create mashups. But unfortunately, like SUN’s other products and services, I knew Zembly was sucking SUN’s money with no business model.
