<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>techno.blog(&#34;Dion&#34;) &#187; Search</title>
	<atom:link href="http://almaer.com/blog/category/search/feed" rel="self" type="application/rss+xml" />
	<link>http://almaer.com/blog</link>
	<description>blogging about life, the universe, and everything tech</description>
	<lastBuildDate>Tue, 03 Jan 2012 19:27:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>OneRiot has entered your Google</title>
		<link>http://almaer.com/blog/oneriot-has-entered-your-google</link>
		<comments>http://almaer.com/blog/oneriot-has-entered-your-google#comments</comments>
		<pubDate>Wed, 12 Nov 2008 12:01:58 +0000</pubDate>
		<dc:creator>dion</dc:creator>
				<category><![CDATA[Search]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[oneriot]]></category>

		<guid isPermaLink="false">http://almaer.com/blog/oneriot-has-entered-your-google</guid>
		<description><![CDATA[Tobias Peggs told me about the rebranding of Me.dium to OneRiot to show the change in direction from a &#8220;social browsing&#8221; company to a real-time search solution.
As a little experiment, to coincide with their launch today, I whipped up a little bit of Greasemonkey goodness in the form of OneRiot in your Google.
The premise is [...]]]></description>
			<content:encoded><![CDATA[<p>Tobias Peggs told me about the rebranding of Me.dium to <a href="http://www.oneriot.com">OneRiot</a> to show the change in direction from a &#8220;social browsing&#8221; company to a real-time search solution.</p>
<p>As a little experiment, to coincide with their launch today, I whipped up a little bit of Greasemonkey goodness in the form of <a href="http://almaer.com/firefox/userscripts/oneriot-google.user.js">OneRiot in your Google</a>.</p>
<p>The premise is simple, and you have probably seen it before. When you do a Google search, this userscript will head over to OneRiot to do the search there. The top result will then pop-in to the results.</p>
<p>I always tend to do something like this when a new search engine comes out. I am not mentally going to switch from using Google, so bring the mountain to Mohamed and plug in the top result to Google itself. This way, if it shows me something truly new (read: not the same as what Google gives me and still useful) then I will maybe pay more attention to it in the future.</p>
<p>Most of the work itself is infrastructure crud to get around loading up jQuery. Oh for a better way to load standard libraries!</p>

<div class="wp_syntax"><div class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">// ==UserScript==</span>
<span style="color: #006600; font-style: italic;">// @name          OneRiot in your Google</span>
<span style="color: #006600; font-style: italic;">// @namespace     http://almaer.com/firefox/userscripts/</span>
<span style="color: #006600; font-style: italic;">// @description   Add a riot to your Google</span>
<span style="color: #006600; font-style: italic;">// @include       http://*google.com/search*</span>
<span style="color: #006600; font-style: italic;">// ==/UserScript==</span>
&nbsp;
<span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #006600; font-style: italic;">// Add jQuery</span>
	<span style="color: #003366; font-weight: bold;">var</span> $<span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> query <span style="color: #339933;">=</span> parseQuery<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> oneriotURL <span style="color: #339933;">=</span> <span style="color: #3366CC;">'http://www.oneriot.com/search?q='</span> <span style="color: #339933;">+</span> query<span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">var</span> script <span style="color: #339933;">=</span> document.<span style="color: #660066;">createElement</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'script'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	script.<span style="color: #660066;">src</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js'</span><span style="color: #339933;">;</span>
	script.<span style="color: #660066;">type</span> <span style="color: #339933;">=</span> <span style="color: #3366CC;">'text/javascript'</span><span style="color: #339933;">;</span>
	document.<span style="color: #660066;">getElementsByTagName</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'head'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">appendChild</span><span style="color: #009900;">&#40;</span>script<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #006600; font-style: italic;">// Check if jQuery's loaded</span>
	<span style="color: #003366; font-weight: bold;">function</span> jQueryCheck<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">typeof</span> unsafeWindow.<span style="color: #660066;">jQuery</span> <span style="color: #339933;">==</span> <span style="color: #3366CC;">'undefined'</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> window.<span style="color: #660066;">setTimeout</span><span style="color: #009900;">&#40;</span>jQueryCheck<span style="color: #339933;">,</span> <span style="color: #CC0000;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
		<span style="color: #000066; font-weight: bold;">else</span> <span style="color: #009900;">&#123;</span> $ <span style="color: #339933;">=</span> unsafeWindow.<span style="color: #660066;">jQuery</span><span style="color: #339933;">;</span> jQueryReady<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
	jQueryCheck<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #006600; font-style: italic;">// The Real Work</span>
	<span style="color: #003366; font-weight: bold;">function</span> jQueryReady<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		GM_xmlhttpRequest<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
		    method<span style="color: #339933;">:</span> <span style="color: #3366CC;">'GET'</span><span style="color: #339933;">,</span>
		    url<span style="color: #339933;">:</span> oneriotURL<span style="color: #339933;">,</span>
		    <span style="color: #000066;">onload</span><span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>response<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> <span style="color: #006600; font-style: italic;">// Get the first result from OneRiot</span>
				<span style="color: #003366; font-weight: bold;">var</span> resulttitle <span style="color: #339933;">=</span> response.<span style="color: #660066;">responseText</span>.<span style="color: #660066;">match</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/(\&lt;a class=&quot;result_title&quot;.*?\&lt;\/a\&gt;)/</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
				<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>resulttitle<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
					<span style="color: #003366; font-weight: bold;">var</span> title <span style="color: #339933;">=</span> $<span style="color: #009900;">&#40;</span>resulttitle<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #003366; font-weight: bold;">var</span> url <span style="color: #339933;">=</span> title.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'href'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #003366; font-weight: bold;">var</span> text <span style="color: #339933;">=</span> title<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span>.<span style="color: #660066;">textContent</span><span style="color: #339933;">;</span>
					<span style="color: #003366; font-weight: bold;">var</span> result <span style="color: #339933;">=</span> <span style="color: #3366CC;">'&lt;div id=&quot;oneriot&quot; style=&quot;padding: 2px;&quot;&gt;&lt;a href=&quot;http://oneriot.com/&quot; title=&quot;Visit oneriot.com&quot;&gt;&lt;img src=&quot;http://almaer.com/dion/images/oneriot_logo.png&quot; border=&quot;0&quot; style=&quot;margin-right: 4px;&quot;/&gt;&lt;/a&gt; &lt;a href=&quot;'</span> <span style="color: #339933;">+</span> url <span style="color: #339933;">+</span> <span style="color: #3366CC;">'&quot; title=&quot;View the OneRiot result&quot;&gt;'</span> <span style="color: #339933;">+</span> text <span style="color: #339933;">+</span> <span style="color: #3366CC;">'&lt;/a&gt; &lt;a href=&quot;'</span> <span style="color: #339933;">+</span> oneriotURL <span style="color: #339933;">+</span> <span style="color: #3366CC;">'&quot; style=&quot;color: #3399FF; padding: 0 8px;&quot; title=&quot;See more results for this query on the oneriot.com website&quot;&gt;more oneriot results&lt;/a&gt;&lt;/div&gt;'</span><span style="color: #339933;">;</span>
					$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'#ssb'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">after</span><span style="color: #009900;">&#40;</span>result<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// Add it to the Google DOM at the top</span>
				<span style="color: #009900;">&#125;</span>
		    <span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #006600; font-style: italic;">// Get the Google query from the query string</span>
	<span style="color: #003366; font-weight: bold;">function</span> parseQuery<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #003366; font-weight: bold;">var</span> result <span style="color: #339933;">=</span> window.<span style="color: #660066;">location</span>.<span style="color: #660066;">search</span>.<span style="color: #660066;">match</span><span style="color: #009900;">&#40;</span><span style="color: #009966; font-style: italic;">/\&amp;q=(.*?)\&amp;/</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>result <span style="color: #339933;">&amp;&amp;</span> result.<span style="color: #660066;">length</span> <span style="color: #339933;">&gt;</span> <span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #000066; font-weight: bold;">return</span> result<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p><img src='http://almaer.com/blog/uploads/oneriotatgoogle.png' alt='OneRiot at Google' border='0'/></p>
<p>OneRiot seems to do well for certain queries. This example does a good job at showing it off. In the Obama search, instead of just getting BarackObama.com, it shows recent news. That is why it is a nice complement to traditional search engines.</p>
<p>Kudos to the OneRiot team on the launch!</p>
]]></content:encoded>
			<wfw:commentRss>http://almaer.com/blog/oneriot-has-entered-your-google/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Groovy Lucene</title>
		<link>http://almaer.com/blog/groovy-lucene</link>
		<comments>http://almaer.com/blog/groovy-lucene#comments</comments>
		<pubDate>Fri, 22 Apr 2005 18:08:20 +0000</pubDate>
		<dc:creator>dion</dc:creator>
				<category><![CDATA[Groovy]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Search]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://almaer.com/blog2/groovy-lucene</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p>Lucene is one of my favourite opensource packages. I often find that I do need to &#8217;script&#8217; it so to speak, and <a href="http://javanicus.com/blog2/items/178-index.html">Jeremy Rayner</a> has shown how Groovy fits in.</p>
<p>He has taken some examples from <a href="http://www.lucenebook.com/">Lucene in Action</a>, and made them Groovy.</p>
<p>Very nice.</p>
]]></content:encoded>
			<wfw:commentRss>http://almaer.com/blog/groovy-lucene/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Google Personal, one step closer</title>
		<link>http://almaer.com/blog/google-personal-one-step-closer</link>
		<comments>http://almaer.com/blog/google-personal-one-step-closer#comments</comments>
		<pubDate>Wed, 20 Apr 2005 22:58:25 +0000</pubDate>
		<dc:creator>dion</dc:creator>
				<category><![CDATA[Google]]></category>
		<category><![CDATA[Search]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://almaer.com/blog2/google-personal-one-step-closer</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p>I have been wanting more of a personal touch from Google for awhile, and it looks like they are coming up with the goods.</p>
<p>Google Labs just came out with <a href="http://www.google.com/searchhistory/">Search History</a>, in beta.</p>
<p>Now you can choose to tell Google to watch over you and help out.</p>
<p>There are definitely privacy issues surrounding some of the more &#8216;out there&#8217; personal search features (e.g. social networking &#8216;those who searched also searched&#8217;) but it is great to see this first step, and I look forward to more!</p>
<p>I always like the integrated experience with Google. When I sign up for something I don&#8217;t have to go to a DIFFERENT place. www.google.com is still the entry point and it just knows that I want a personal touch.</p>
]]></content:encoded>
			<wfw:commentRss>http://almaer.com/blog/google-personal-one-step-closer/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Argos: Simple Java Search Engine Wrapper API</title>
		<link>http://almaer.com/blog/argos-simple-java-search-engine-wrapper-api</link>
		<comments>http://almaer.com/blog/argos-simple-java-search-engine-wrapper-api#comments</comments>
		<pubDate>Wed, 20 Apr 2005 22:26:24 +0000</pubDate>
		<dc:creator>dion</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Search]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://almaer.com/blog2/argos-simple-java-search-engine-wrapper-api</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p>Nick Lothian has put up a 0.1 release of a nice Search Engine wrapper API called <a href="https://argos.dev.java.net/">Argos</a>.</p>
<p><b><u>About Argos</u></b></p>
<p>Argos is an open source (Apache licenced) Java library for accessing the search APIs provided by internet search engines. It provides a consistent, extensible and easy to use API, while supporting advanced features such as a paged request model and a simultaneous search across multiple engines.</p>
<p>Argos currently supports the following search engines:</p>
<ul>
<li>Blogdigger</li>
<li>Del.icio.us</li>
<li>Feedster</li>
<li>Google</li>
<li>Google Desktop Search</li>
<li>MSN Search</li>
<li>Technorati</li>
<li>Yahoo</li>
</ul>
<p>
Here is an example of running a simultanous search on MSN and Blogdigger:</p>
<blockquote><pre>
List&lt;Searcher&gt; searcherList = new LinkedList&lt;Searcher&gt;();
searcherList.add(new MSNWebSearcher());
searcherList.add(new BlogdiggerWebSearcher());

SimultaneousSearcher searcher = new SimultaneousSearcher(searcherList);

Iterator&lt;SearchResult&gt; it = searcher.search("Java");
while (it.hasNext()) {
SearchResult result = it.next();
System.out.println(result.getTitle() + " Address: " + result.getAddress());
}
</pre>
</blockquote>
<p>A nice simple API, and one consistent one for a group of search engines.</p>
]]></content:encoded>
			<wfw:commentRss>http://almaer.com/blog/argos-simple-java-search-engine-wrapper-api/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Meet Lucene via Erik Hatcher</title>
		<link>http://almaer.com/blog/meet-lucene-via-erik-hatcher</link>
		<comments>http://almaer.com/blog/meet-lucene-via-erik-hatcher#comments</comments>
		<pubDate>Tue, 01 Mar 2005 16:08:15 +0000</pubDate>
		<dc:creator>dion</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Search]]></category>
		<category><![CDATA[Tech]]></category>

		<guid isPermaLink="false">http://almaer.com/blog2/meet-lucene-via-erik-hatcher</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p>Erik Hatcher has published a <a href="http://www.javalobby.org/members-only/eps/meet-lucene/index.html">Meet Lucene online presentation</a> (slides + audio).</p>
<p>The presentation is a nice introduction to <a href="http://jakarta.apache.org/lucene" rel="lucene">Lucene</a>. There are still a lot of people out there who do not know about this open source gem, and if you haven&#8217;t had a chance to check it out, watch this.</p>
<p>One of the best reasons to watch it, is that you learn what Lucene IS and ISN&#8217;T. I still find that people assume it is a web crawler, rather than a search API.</p>
]]></content:encoded>
			<wfw:commentRss>http://almaer.com/blog/meet-lucene-via-erik-hatcher/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

