2010 Aug 20, 11:20
For a new project I'm working on involving IE's installed Accelerators and OpenSearch search providers via the Windows 7
Accelerator Platform, I've created a C#/COM interop class for those APIs.
Download the osinterop.cs interop file here.
technical accelerator csharp com 2009 Jul 17, 4:36"For Windows 7, we’ve added support for Federated Search using OpenSearch v1.1 and worked to make the experience a seamless one." Explorer in Win7 supports OpenSearch descriptions (that use RSS)
opensearch search windows win7 technical 2009 Jun 10, 3:36
I've made an OpenSearchDescriptionToHTML XSLT that given an OpenSearch description file produces
HTML that describes that file, lets you install it, or search with it. For example, here's a Google OpenSearch description that uses my
OpenSearchDescriptionToHTML XSLT.
I had just created an OpenSearch description for WolframAlpha at work and was going about the process of adding another install link to my search provider
page so that I could install it. Thinking about it, I realized I could apply an XSLT to the OpenSearch description XML to produce the HTML automatically so I wouldn't have to modify additional
documents everytime I create and want to install a new OpenSearch description. While I was in there writing the XSLT I figure why not let the user try out searching with the OpenSearch description
file too. And lastly I made the XSLT apply to itself to produce HTML describing its own usage.
Incidentally, I added WolframAlpha at work to replace my FileInfo search provider for the purposes of searching for information about
particular Unicode characters. For instance, look at WolframAlpha's lovely output for this search for "Bopomofo zh".
technical xml wolframalpha opensearchdescriptiontohtml xslt opensearch 2009 Apr 7, 9:02
I'm a big fan of the concept of registerProtocolHandler in HTML 5 and in FireFox 3, but not quite the implementation. From a high level, it allows web apps to register themselves as
handlers of an URL scheme so for (the canonical) example, GMail can register for the mailto URL scheme. I like the concept:
- Better integration of web apps with your system.
- Its easy for web apps to do.
- Links to URNs can now take the user to the sites the user prefers for the sort of thing identified by the URN. For example, if I have a physical address in HTML, instead of making that an http
link to Yahoo Maps, I can make the link a geo scheme URI and those who follow the link will get their preferred mapping site that
has registered for that scheme. Actually, looking at the geo scheme's RFC, maybe I'd rather use some other URN scheme to represent the physical location, but you get the point.
However, the way its currently spec'ed out I don't like the following:
- There's no way to know if you are the handler for a particular URL scheme which is an important question for web app URL protocol handler authors.
- There's no way to fallback to an http URL in the case that a particular URL scheme isn't registered. A suggested solution to testing the registration of a scheme is for browsers to provide an additional script method
to check if a scheme is registered. I don't like the idea of writing script that walks over all my page's links and rewrites them based on that method. I'd much rather see a declarative and
backwards compatible fallback mechanism, although I don't know what that would look like.
- There's no way to register for a namespace within the urn scheme URI, the info scheme URI, or the tag scheme URI. I want to register
info:lccn/... (Library of Congress Card Number identifiers) to LibraryThing or Amazon and I want to register urn:duri:... (dated URIs) to the Web Archive, among other things.
- Will this result in a proliferation of unregistered URL schemes with clashing namespaces? The ESW Wiki notes why this would be bad.
- And last, although this is nitpickier than the rest, I don't like the '%s' syntax used in the registration method. I'd much rather pass in an URL template, like the URL template used
in OpenSearch. If an URL template is used for matching rather than registering against a particular URL scheme, this could also allow for registering a namespace within a URN. For example
something along the lines of:
registerProtocolHandler("info:lccn/{lccnID}", "htttp://www.librarything.com/search_works.php?q={lccnID}", "LibraryThing LCCN")
url template registerprotocolhandler firefox technical url scheme protocol boring html5 uri urn 2008 Nov 9, 11:29
I finally replaced my old regular cell-phone which was literally being held together by a rubber band with a fancy new G1, my first Internet accessible phone.
I had to call the T-Mobile support line to get data added to my plan and the person helping me was disconcertingly friendly. She asked about my weekend plans and so I felt compelled to ask her the
same. Her plans involved replacing her video card so she could get back to World of Warcraft and do I enjoy computer gaming? I couldn't tell if she was genuine or if she was signing me up for
magazines.
I was with Sarah in her new car, trying out the phone's GPS functionality via Google Maps while she drove. I switched to Street View and happened to
find my car. It was a weird feeling, kind of like those Google
conspiracy videos.
The phone runs Google's open source OS and I really enjoy the application API. Its all in Java and URIs and mime-types are sort of
basics. Rather than invoking the builtin item picker control directly you invoke an 'intent' specifying the URI of your list of items, a mime-type describing the type of items in the list, and an
action 'PICK' and whatever is registered as the picker on the system pops up and lets the user pick from that list. The same goes if you want to 'EDIT' an image, or 'VIEW' an mp3.
I wanted to replace the Google search box gadget that appears on the home screen with my own search box widget that uses OpenSearch descriptors but apparently in the current API you can't make home screen gadgets without changing
parts of the OS. My other desired application is something to replace this GPS photo tracker device by recording my
location to a file and an additional program on my computer to apply those locations to photos.
tmobile personal api phone technical g1 android google 2008 Apr 7, 10:31
I now have search and an archive available for my site. I previously tried to setup crappy search by cheating using Yahoo Pipes and now
instead I have a slightly less crappy search that works over all of the content that I've produced on my blog, uploaded to flickr or youtube, or added to delicious.
You can now read my first LiveJournal blog post or, for probably
much more entertainment value, view all the photos and videos of Cadbury by searching for 'bunny'.
The search is only slightly less lame because although it searches over all my content, I still implemented it myself rather than getting a professional package. Also, the feed supports the same
search and archive as my homepage so you can subscribe to a feed of Cadbury if you're so inclined and just skip all this other boring
stuff. My homepage and feed implement the OpenSearch response elements and I've got an OpenSearch
search provider (source) as well.
technical search archive opensearch homepage 2008 Apr 3, 9:00
With the new features of IE8 there's several easy ways to integrate Gmail, Google's web mail service, for mail composition, searching, and monitoring that I enjoy using.
-
Composition
-
I made a Send via Gmail activity that allows you to select some text, a document, or link and via the activity menu open a new tab to compose a new message with the selection. Go to my activity page and click "Send via Gmail" (source) to install it. I found info on the gmail composition URL in the comments of this gmail howto article and used that in the
activity. I talked about activities previously.
-
Search
-
I've made a search provider that searches your gmail account. See my search provider page and select 'Gmail' (source) to install the Gmail search provider. Search providers aren't new to IE8 but this fits in with Gmail integration in IE. Again in the
comments of another howto I found information on a Gmail search URL.
-
Monitor
-
New to IE8 is authenticated feed support and favorites bar monitoring which combined with the Gmail inbox feed
means you can see when you get new mail in your favorites bar in IE. To do this, navigate to the feed https://mail.google.com/mail/feed/atom,
click 'Subscribe to this feed', then click on the Add button in the upper left (the star with plus icon) and select 'Monitor on Favorites Bar' to add this as a monitored item in the favorites
bar. Next, right click on the new item in your favorites bar, open the properties dialog, and enter your Gmail username and password into the new username and password fields. Now when you get
new mail the Gmail feed item will shine and bold and you'll be able to get to new messages in the dropdown. I described monitored feed items previously.
activity gmail search howto google ie feed rss opensearch 2008 Mar 5, 11:36
Internet Explorer 8 Beta 1 is available now. I can finally talk about some of the stuff I've been
working on for the past year or so: activities. Activities let you select a document,
some text on a document, or a link to a document and run that selection through a web service. For example, you could select a word on a webpage and look it up in Wikipedia, select an address and
map it on Yahoo Maps, select a webpage and translate it into English with Windows Live Translator, or select a link and add it to Digg.
IE8 comes installed with some activities based on Microsoft web services but there's a page you can go to to
install other activities. However, that page is missing some of my favorites that I use all the time, like del.icio.us.
Accordingly, I've put together a page of the activities I use. MSDN has all the info on creating Activities.
Activities are very similar to other existing features in other browsers including the ability to add context menu items to IE.
There's two important differences which make activities better. Activities have a preview window that pops out when you hover over an activity, which is useful to get in place information easily
provided by developers. The other is that the interface is explicit and takes after HTML FORMs and OpenSearch descriptions. Because the interface is explicitly described in XML (unlike the context
menu additions described above which run arbitrary script) we have the ability to use activities in places other than on a webpage in the future. And because activity definitions are similar to
HTML FORMs, if your webservice has an HTML FORM describing it you can easily create an activity.
microsoft technical activity openservice ie8 ie activities msdn 2007 Jun 5, 5:51Draft document on the parameter extension to OpenSearch in order to support POSTs from the OpenSearch description.
opensearch search browser specification xml 2007 Jun 5, 5:50Firefox's notes on their implementation of the OpenSearch description.
api browser firefox internet search opensearch programming reference mozilla mycroft specification 2007 Apr 8, 10:22Microsoft's page to add search providers to IE7. It also includes a simple tool to add search providers from any page.
ie ie7 search opensearch microsoft tool eric-lawrence 2007 Apr 8, 3:05Shortcut Tag?
I just saw this on
another user's delicious links:
a link to ESV search that's
tagged with, among other things, "shortcut:esv". When viewed on del.icio.us there's a text box that lets you search using that link. I hadn't seen this before, but it seems pretty cool and I'm
surprised I hadn't seen it previously. A delicious post with such a tag ends up looking like the following:
I tried searching for information on this and I've found
other delicious users doing the same thing,
but nothing about the tag itself. If you know any information especially official information from del.icio.us itself please post links in reply to this post. So without further preface here's what
I've learned about the del.icio.us shortcut tag.
How-to
To get a search box in your del.icio.us links make a post that satisfies the following requirements:
- One of the tags must begin with the text 'shortcut:'. You can have more text following that in the tag if you like but it must at least start with 'shortcut:'.
- The 'url' you post must be a shortcut url rather than an actual URL. It must contain a '%s' with a lowercase 's'. When you enter text into the textbox on the del.icio.us page the text will
replace the '%s' after being percent-encoded. For example 'http://www.google.com/search?hl=en&q=%s' is the shortcut url for Google and if you type 'foo bar' into the textbox the URI you will
navigate to would be 'http://www.google.com/search?hl=en&q=foo%20bar'.
Complaints
This is neat but I do have a few complaints:
- The text from the textbox is percent-encoded before replacing the '%s'. Most sites use application/x-www-form-urlencoded
which encodes spaces as '+' rather than '%20'.
- The shortcut url format seems to be taken from Mozilla's Firefox Custom Keywords. Its a shame it wasn't based on something more
adaptable like the OpenSearch URL template syntax.
- A '%s' in the url means technically what you're submitting to del.icio.us isn't a URI as defined by the standard.
- Allowing text after 'shortcut:' means you can't look at all of a user's shortcut using this tag.
The next step is to create a tool to sync my
IE7 search providers with my shortcuts saved to delicious...
technical howto tagging tool tag delicious 2007 Feb 22, 2:35Tool I've built that allows you to turn Mozilla's search descriptions into OpenSearch descriptions that may be used in IE7.
search ie ie7 browser me projects personal setupnewcomputer