<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-974881667516508122</id><updated>2011-11-27T16:11:57.097-08:00</updated><category term='linux'/><category term='open source bridge'/><category term='news'/><category term='oscon'/><category term='tips'/><category term='unix'/><category term='apology'/><category term='zsh'/><category term='bsd'/><category term='the lame bucket'/><category term='app engine'/><category term='help'/><category term='google'/><title type='text'>shell_sink</title><subtitle type='html'>Your Bash History On The Web</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://shell-sink.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/974881667516508122/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://shell-sink.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Shlomo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-974881667516508122.post-672434964141899137</id><published>2011-07-14T23:51:00.000-07:00</published><updated>2011-07-14T23:54:45.154-07:00</updated><title type='text'>Moved code to github.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-c4IpXl7_O-8/Th_kDi6iA8I/AAAAAAAAA2M/VB6DhKYju98/s1600/github-logo.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 400px;" src="http://2.bp.blogspot.com/-c4IpXl7_O-8/Th_kDi6iA8I/AAAAAAAAA2M/VB6DhKYju98/s400/github-logo.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5629468808799454146" /&gt;&lt;/a&gt;&lt;br /&gt;Yea this project is mothballed, but thought I would &lt;a href="https://github.com/joshuacronemeyer/shellsink"&gt;move the code&lt;/a&gt; over to github just in case.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/974881667516508122-672434964141899137?l=shell-sink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shell-sink.blogspot.com/feeds/672434964141899137/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=974881667516508122&amp;postID=672434964141899137' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/974881667516508122/posts/default/672434964141899137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/974881667516508122/posts/default/672434964141899137'/><link rel='alternate' type='text/html' href='http://shell-sink.blogspot.com/2011/07/moved-code-to-github.html' title='Moved code to github.'/><author><name>Shlomo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-c4IpXl7_O-8/Th_kDi6iA8I/AAAAAAAAA2M/VB6DhKYju98/s72-c/github-logo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-974881667516508122.post-2001133748465226076</id><published>2010-12-16T23:20:00.000-08:00</published><updated>2010-12-16T23:23:44.209-08:00</updated><title type='text'>Public Shellsink instance shutdown</title><content type='html'>I've turned off history.shellsink.com.  It makes sense since all the source code is in launchpad, and since hosting your own private shellsink on appengine is free.  Anyone still using shellsink can migrate to their own private shellsink server.  And now I can stop paying for the domain name and storing people's shell commands on my appengine account.  Thanks to everyone who contributed to the project.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/974881667516508122-2001133748465226076?l=shell-sink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shell-sink.blogspot.com/feeds/2001133748465226076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=974881667516508122&amp;postID=2001133748465226076' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/974881667516508122/posts/default/2001133748465226076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/974881667516508122/posts/default/2001133748465226076'/><link rel='alternate' type='text/html' href='http://shell-sink.blogspot.com/2010/12/public-shellsink-instance-shutdown.html' title='Public Shellsink instance shutdown'/><author><name>Shlomo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-974881667516508122.post-8439280846006649317</id><published>2010-12-09T15:53:00.000-08:00</published><updated>2009-01-02T09:40:18.697-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><category scheme='http://www.blogger.com/atom/ns#' term='bsd'/><title type='text'>Introducing shell_sink</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_CNrEtQlaUgk/ST8FCXM6ahI/AAAAAAAAAfA/0Tkzh0wULMQ/s1600-h/shellsink.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 198px; height: 200px;" src="http://1.bp.blogspot.com/_CNrEtQlaUgk/ST8FCXM6ahI/AAAAAAAAAfA/0Tkzh0wULMQ/s200/shellsink.jpg" alt="" id="BLOGGER_PHOTO_ID_5277942826447563282" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;h3&gt;What is it?&lt;/h3&gt;&lt;a href="http://history.shellsink.com/"&gt;Shell Sink&lt;/a&gt; is a web accessible version of your bash history.  Commands issued in bash are sent to &lt;a href="http://history.shellsink.com/"&gt;shell_sink&lt;/a&gt; by a simple &lt;a href="https://launchpad.net/shellsink"&gt;open source client application&lt;/a&gt;.  Once a command is in &lt;a href="http://history.shellsink.com/"&gt;shell_sink&lt;/a&gt; you can search, annotate and tag it.&lt;br /&gt;&lt;h3&gt;&lt;a name="TOC-Why-use-it-"&gt;&lt;/a&gt;Why use it?&lt;/h3&gt;If you've ever wasted time trying to remember a particular command line incantation, shell_sink is for you. It stores commands and makes them easily accessible with searching and tagging.  If you work on multiple computers shell_sink can aggregate your history across all machines.  System administrators can even use it to aggregate commands issued across an entire organization making them fully searchable. Never lose a command again.&lt;h3&gt;Who should use it?&lt;/h3&gt; shell_sink is for anyone with a unix system.  Linux, BSD, OSX, Solaris, Playskool.  It should be noted that shell_sink is currently under active development.&lt;br /&gt;&lt;h3&gt;&lt;a name="TOC-Getting-started:"&gt;&lt;/a&gt;Getting started:&lt;/h3&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://history.shellsink.com/" rel="nofollow"&gt;Login&lt;/a&gt; to shell_sink with your google account.&lt;/li&gt;&lt;li&gt;Copy your unique id from the Preferences page.&lt;/li&gt;&lt;li&gt;&lt;a href="http://shell-sink.blogspot.com/2008/12/installing-shellsink-client-application.html"&gt;Install&lt;/a&gt; the client application.&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;Questions, Issues:&lt;/h3&gt;The &lt;a href="http://groups.google.com/group/shell-sink"&gt;shell_sink google group&lt;/a&gt; is the place for questions and discussion.  The &lt;a href="https://bugs.launchpad.net/shellsink/"&gt;bug tracker&lt;/a&gt; is where to put your feature requests and issues pertaining to the shell_sink website.  The client is open source software.  Source code can be found &lt;a href="https://code.launchpad.net/shellsink"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/974881667516508122-8439280846006649317?l=shell-sink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shell-sink.blogspot.com/feeds/8439280846006649317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=974881667516508122&amp;postID=8439280846006649317' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/974881667516508122/posts/default/8439280846006649317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/974881667516508122/posts/default/8439280846006649317'/><link rel='alternate' type='text/html' href='http://shell-sink.blogspot.com/2008/12/introducing-shellsink.html' title='Introducing shell_sink'/><author><name>Shlomo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_CNrEtQlaUgk/ST8FCXM6ahI/AAAAAAAAAfA/0Tkzh0wULMQ/s72-c/shellsink.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-974881667516508122.post-7579010764868814379</id><published>2010-11-28T07:11:00.000-08:00</published><updated>2009-09-28T20:33:52.423-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='help'/><title type='text'>Installing the shell_sink client application</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_CNrEtQlaUgk/SVeYoO-EdHI/AAAAAAAAAfQ/An3GTUawNwQ/s1600-h/sinkinstall.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 182px;" src="http://2.bp.blogspot.com/_CNrEtQlaUgk/SVeYoO-EdHI/AAAAAAAAAfQ/An3GTUawNwQ/s200/sinkinstall.jpg" alt="" id="BLOGGER_PHOTO_ID_5284860504723190898" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Installing the sink client should be a snap.  There are only 2 steps:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Install the shellsink-client application&lt;/li&gt;&lt;li&gt;Configure a couple environment variables&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;The client is a python application that you can call from the command line to asynchronously upload a command and relevant tags to the shellsink server.  When properly configured it will run behind the scenes every time a command is issued.  It can also be easily disabled or enabled for times you don't want to log commands.  Here are detailed instructions for installation:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Debian Based Distributions&lt;br /&gt;&lt;/span&gt;If you have a Debian based distribution you can install shellsink-client by adding the shellsink repository to your apt sources.  Go to &lt;a href="https://launchpad.net/%7Eshellsink/+archive/ppa"&gt;this page&lt;/a&gt; for instructions and follow the instructions under the link that says "Technical details about this PPA."  Once you have added the shellsink repository you can update your package lists and install the client with&lt;pre&gt;sudo apt-get update&lt;br /&gt;sudo apt-get install shellsink&lt;/pre&gt; Finally, you must append &lt;a href="http://bazaar.launchpad.net/%7Ejoshuacronemeyer/shellsink/trunk/annotate/head%3A/client/bash_profile"&gt;this file&lt;/a&gt; to your ~/.bashrc to enable the client. Be sure to replace the default tags with your own meaningful tags and most importantly set the default id to whatever you see &lt;a href="http://history.shellsink.com/preferences"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Other Types of Unix&lt;br /&gt;&lt;/span&gt;For other flavors of unix you can download the shellsink-client executable &lt;a href="http://bazaar.launchpad.net/%7Ejoshuacronemeyer/shellsink/trunk/annotate/head%3A/client/shellsink-client"&gt;here&lt;/a&gt; and put it in your path. Once the client is installed you must set a few environment variables. Append the contents of &lt;a href="http://bazaar.launchpad.net/%7Ejoshuacronemeyer/shellsink/trunk/annotate/head%3A/client/bash_profile"&gt;this file&lt;/a&gt; to your .bashrc or .bash_profile.  If you use zsh see &lt;a href="http://shell-sink.blogspot.com/2009/02/using-shellsink-with-zsh-is-easy.html"&gt;this&lt;/a&gt; how-to. Be sure to change the id variable to be the one that was assigned to you by the shellsink server on the preferences page.  Also change the tags.  I always start with the name of the host machine as my base tag so I know which computer logged which command.&lt;br /&gt;&lt;br /&gt;Finally, just close your terminal and reopen it.  Type a command and go see if it has been logged to the shell_sink server.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/974881667516508122-7579010764868814379?l=shell-sink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shell-sink.blogspot.com/feeds/7579010764868814379/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=974881667516508122&amp;postID=7579010764868814379' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/974881667516508122/posts/default/7579010764868814379'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/974881667516508122/posts/default/7579010764868814379'/><link rel='alternate' type='text/html' href='http://shell-sink.blogspot.com/2008/12/installing-shellsink-client-application.html' title='Installing the shell_sink client application'/><author><name>Shlomo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_CNrEtQlaUgk/SVeYoO-EdHI/AAAAAAAAAfQ/An3GTUawNwQ/s72-c/sinkinstall.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-974881667516508122.post-7715116960224959747</id><published>2009-09-28T20:23:00.000-07:00</published><updated>2009-09-28T20:24:14.343-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source bridge'/><title type='text'>ShellSink adds inline tagging</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_CNrEtQlaUgk/SsF7XOWQY3I/AAAAAAAAArU/xwrXnkIpxhs/s1600-h/shell-sink-375x500.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 150px; height: 200px;" src="http://4.bp.blogspot.com/_CNrEtQlaUgk/SsF7XOWQY3I/AAAAAAAAArU/xwrXnkIpxhs/s200/shell-sink-375x500.jpg" alt="" id="BLOGGER_PHOTO_ID_5386722268230476658" border="0" /&gt;&lt;/a&gt;&lt;a href="https://launchpad.net/%7Eshellsink/+archive/ppa"&gt;Release 0.2.2&lt;/a&gt; adds a new feature.  You can add tags to a command at the same time as you execute it.  This is achieved by using inline comments.  Here is an example: &lt;pre&gt;cat /proc/cpuinfo #sysadmin:diagnostic&lt;/pre&gt;  That command will show up in your shellsink history with the tags sysadmin and diagnostic.  This nifty idea was given to me by Jesse Hallett at my shellsink presentation at the open source bridge conference in portland this summer.  Thanks Jesse.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/974881667516508122-7715116960224959747?l=shell-sink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shell-sink.blogspot.com/feeds/7715116960224959747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=974881667516508122&amp;postID=7715116960224959747' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/974881667516508122/posts/default/7715116960224959747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/974881667516508122/posts/default/7715116960224959747'/><link rel='alternate' type='text/html' href='http://shell-sink.blogspot.com/2009/09/shellsink-adds-inline-tagging.html' title='ShellSink adds inline tagging'/><author><name>Shlomo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_CNrEtQlaUgk/SsF7XOWQY3I/AAAAAAAAArU/xwrXnkIpxhs/s72-c/shell-sink-375x500.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-974881667516508122.post-1990233021079896262</id><published>2009-05-02T16:23:00.001-07:00</published><updated>2009-05-02T18:53:19.310-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='help'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><title type='text'>Filtering What Goes Into Your History</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_CNrEtQlaUgk/Sfz5AwY53AI/AAAAAAAAAnI/dpHauu2tN4g/s1600-h/hair-catcher.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 200px;" src="http://3.bp.blogspot.com/_CNrEtQlaUgk/Sfz5AwY53AI/AAAAAAAAAnI/dpHauu2tN4g/s200/hair-catcher.jpg" alt="" id="BLOGGER_PHOTO_ID_5331409850284497922" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;When I tell people about ShellSink, many of them say, "hey, that's a great idea!"  Then the little sysadmin perched on their shoulder crosses her arms and shakes her head.  "Tsk, tsk.  Storing your shell history on a remote server is not secure!", she says.  This is absolutely true.  Not only is your bash history passed via an insecure Http connection, but then it is stored unencrypted on Google's servers where a rogue Google employee, someone who hacked Google, or a rogue ShellSink admin could access them.  Don't use shellsink on a system that needs to be ultimately secure!&lt;br /&gt;&lt;br /&gt;However, Shellsink &lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;is&lt;/span&gt;&lt;/span&gt; safe to use.  If you use Google for email, calendar, documents, etc. then you already trust them with information that is probably more sensitive than your shell history. And if you don't trust me you can download the ShellSink source code and spin up your own server using Google's AppEngine. In any case you should still take some basic precautions.  Most importantly, never use inline passwords!! ShellSink will send anything your bash history captures.&lt;br /&gt;&lt;br /&gt;Here are several ways to safeguard yourself against sending sensitive information to ShellSink.&lt;a href="http://www.gnu.org/software/bash/manual/html_node/Bash-Variables.html#index-HISTCONTROL-196"&gt; One technique&lt;/a&gt; is to add the following to your .bashrc:&lt;br /&gt;&lt;pre&gt;HISTCONTROL=ignorespace;&lt;/pre&gt;Now any command you precede with a space will NOT be captured by the history, and thus will not be sent to the ShellSink server.  &lt;a href="http://www.gnu.org/software/bash/manual/html_node/Bash-Variables.html#index-HISTIGNORE-199"&gt;Another technique&lt;/a&gt; is to add the following to your .bashrc:&lt;br /&gt;&lt;pre&gt;HISTIGNORE="netstat*:sqlplus*"&lt;/pre&gt;In this example any command that starts with netstat or sqlplus will automatically be ignored by the shell history and ShellSink.  Both these techniques give you different granularity control over what gets sent to ShellSink.  The first technique works on a per command basis and the second covers all commands.&lt;br /&gt;&lt;br /&gt;Finally, there is the nuclear option:&lt;br /&gt;&lt;pre&gt;shellsink-client -d&lt;/pre&gt;This completely disables ShellSink for all terminals.  I don't really have much use for this one, but when you start to do something that you are ultra paranoid about, this is one way to be sure nothing is leaving your computer via ShellSink.  To re-enable ShellSink simply do this:&lt;br /&gt;&lt;pre&gt;shellsink-client -e&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/974881667516508122-1990233021079896262?l=shell-sink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shell-sink.blogspot.com/feeds/1990233021079896262/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=974881667516508122&amp;postID=1990233021079896262' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/974881667516508122/posts/default/1990233021079896262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/974881667516508122/posts/default/1990233021079896262'/><link rel='alternate' type='text/html' href='http://shell-sink.blogspot.com/2009/05/filtering-what-goes-into-your-history.html' title='Filtering What Goes Into Your History'/><author><name>Shlomo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_CNrEtQlaUgk/Sfz5AwY53AI/AAAAAAAAAnI/dpHauu2tN4g/s72-c/hair-catcher.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-974881667516508122.post-8226224876234469468</id><published>2009-05-02T15:55:00.001-07:00</published><updated>2009-05-02T16:14:53.346-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='news'/><category scheme='http://www.blogger.com/atom/ns#' term='oscon'/><category scheme='http://www.blogger.com/atom/ns#' term='open source bridge'/><title type='text'>ShellSink at the Open Source Bridge Conference</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh4.ggpht.com/_CNrEtQlaUgk/Se1A4upo4xI/AAAAAAAAAmo/jxgc-z7XxvE/os_bridge.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 250px; height: 125px;" src="http://lh4.ggpht.com/_CNrEtQlaUgk/Se1A4upo4xI/AAAAAAAAAmo/jxgc-z7XxvE/os_bridge.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I'm going to be in Portland for the &lt;a href="http://opensourcebridge.org/"&gt;Open Source Bridge Conference&lt;/a&gt; (OSB) to &lt;a href="http://opensourcebridge.org/sessions/87"&gt;talk about ShellSink&lt;/a&gt;.  The abstract I submitted is overly ambitious as I promised to cover shellsink usage, implementation as well as distribution via Launchpad.  I've decided to stick to usage and implementation of shellsink as I am giving &lt;a href="http://en.oreilly.com/oscon2009/public/schedule/detail/8025"&gt;a presentation entirely dedicated to distributing software via launchpad&lt;/a&gt; at OSCON this year.  Of course, OSB has the totally awesome 24hour hacker lounge as well as an entire day dedicated to uncoference antics and open space shennanigans, so if anyone feels shortchanged I'd be happy to spend some time talking about launchpad (or whatever) in any of those situations.  Please drop a line if you are going to be at OSCON or OSB this year.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/974881667516508122-8226224876234469468?l=shell-sink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shell-sink.blogspot.com/feeds/8226224876234469468/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=974881667516508122&amp;postID=8226224876234469468' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/974881667516508122/posts/default/8226224876234469468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/974881667516508122/posts/default/8226224876234469468'/><link rel='alternate' type='text/html' href='http://shell-sink.blogspot.com/2009/05/shellsink-at-open-source-bridge.html' title='ShellSink at the Open Source Bridge Conference'/><author><name>Shlomo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_CNrEtQlaUgk/Se1A4upo4xI/AAAAAAAAAmo/jxgc-z7XxvE/s72-c/os_bridge.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-974881667516508122.post-8190603542123238805</id><published>2009-02-26T21:29:00.001-08:00</published><updated>2009-02-26T22:42:36.209-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='the lame bucket'/><category scheme='http://www.blogger.com/atom/ns#' term='app engine'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Shellsink Nearing Free Quota</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_CNrEtQlaUgk/Sad6Zsx3qdI/AAAAAAAAAh4/6qy8RvZCKao/s1600-h/shellsinkdash.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 220px;" src="http://3.bp.blogspot.com/_CNrEtQlaUgk/Sad6Zsx3qdI/AAAAAAAAAh4/6qy8RvZCKao/s400/shellsinkdash.jpg" alt="" id="BLOGGER_PHOTO_ID_5307345267815066066" border="0" /&gt;&lt;/a&gt;Shellsink has been a pet project of my for the last few months, and it has been fun to put something new out there just to see how people react.  My main goal of course was to build something useful.  What I didn't anticipate was that I would have to begin paying for hosting so soon.  Unfortunately Google has rolled out the non free portion of app engine, and they have &lt;a href="http://code.google.com/appengine/docs/quotas.html#Free_Changes"&gt;announced resulting changes to the service&lt;/a&gt;.  I had hoped that ad revenue on the shellsink site would pay for whatever app engine hosting costs were incurred, but since 99% of use is at the command line, actually very very few ad impressions are viewed on the site.&lt;br /&gt;&lt;br /&gt;The short of this is that very soon shellsink will hit the data storage quota. 1GB of commands, tags, and annotations will have been logged and indexed on the shellsink site.  I an trying to get Google to lift the quota for my application. But I have little hope unless one of the Googlers using the service decides to intervene.  I expect that late next week shellsink.com will hit the quota and stop accepting commands.  BUMMER!&lt;br /&gt;&lt;br /&gt;The good news is that all data you have logged there will remain accessable, but if you are like me, that isn't much consolation.  So the other good news is that all the source code for the server is going to be in the shellsink Launchpad bazaar repo, so you can keep using shellsink by deploying to your own app engine account.  So, it looks like without a deux ex-machina that shellsink.com will have to morph into a non-centralized system.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;UPDATE: &lt;span style="color: rgb(0, 0, 0);"&gt;&lt;a href="http://groups.google.com/group/shell-sink/browse_thread/thread/9bb7c062af96cf19"&gt;There is a thread&lt;/a&gt; in the google group about this.&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/974881667516508122-8190603542123238805?l=shell-sink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shell-sink.blogspot.com/feeds/8190603542123238805/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=974881667516508122&amp;postID=8190603542123238805' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/974881667516508122/posts/default/8190603542123238805'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/974881667516508122/posts/default/8190603542123238805'/><link rel='alternate' type='text/html' href='http://shell-sink.blogspot.com/2009/02/shellsink-nearing-free-quota.html' title='Shellsink Nearing Free Quota'/><author><name>Shlomo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_CNrEtQlaUgk/Sad6Zsx3qdI/AAAAAAAAAh4/6qy8RvZCKao/s72-c/shellsinkdash.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-974881667516508122.post-1587544034579149252</id><published>2009-02-08T06:50:00.000-08:00</published><updated>2009-02-08T07:53:42.138-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zsh'/><category scheme='http://www.blogger.com/atom/ns#' term='help'/><category scheme='http://www.blogger.com/atom/ns#' term='news'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><title type='text'>Using shellsink with ZSH is easy</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_CNrEtQlaUgk/SY76nQHJMZI/AAAAAAAAAhI/tCdVaWp5bwE/s1600-h/pinksink.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 150px; height: 200px;" src="http://3.bp.blogspot.com/_CNrEtQlaUgk/SY76nQHJMZI/AAAAAAAAAhI/tCdVaWp5bwE/s200/pinksink.jpg" alt="" id="BLOGGER_PHOTO_ID_5300449363708424594" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;You don't have to use bash to use shellsink.  Shellsink will work with any shell that supports the following features:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Concept of a command that always executes before your command is run&lt;/li&gt;&lt;li&gt;Concept of a history file&lt;/li&gt;&lt;li&gt;Concept of appending to the history file each time you run a command&lt;/li&gt;&lt;/ul&gt;Z-Shell is another great shell and when configured correctly it supports all these things.  Here is a set of instructions to make shellsink work for zsh.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Grab the &lt;a href="http://bazaar.launchpad.net/%7Ejoshuacronemeyer/shellsink/trunk/download/head%3A/zshrc-20090208153124-2is3urbz824pq49s-1/zshrc"&gt;sample zshrc&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Concatenate that to ~/.zshrc&lt;/li&gt;&lt;li&gt;make a symlink from .bash_history to .zhistory like this:&lt;pre&gt;ln -s ~/.zhistory ~/.bash_history&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Restart your shell&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;Easy, right?  Here is a list of my References:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;http://en.gentoo-wiki.com/wiki/Zsh#Shell_History&lt;/li&gt;&lt;li&gt;man zshmisc&lt;/li&gt;&lt;li&gt;man zsh&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/974881667516508122-1587544034579149252?l=shell-sink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shell-sink.blogspot.com/feeds/1587544034579149252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=974881667516508122&amp;postID=1587544034579149252' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/974881667516508122/posts/default/1587544034579149252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/974881667516508122/posts/default/1587544034579149252'/><link rel='alternate' type='text/html' href='http://shell-sink.blogspot.com/2009/02/using-shellsink-with-zsh-is-easy.html' title='Using shellsink with ZSH is easy'/><author><name>Shlomo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_CNrEtQlaUgk/SY76nQHJMZI/AAAAAAAAAhI/tCdVaWp5bwE/s72-c/pinksink.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-974881667516508122.post-5006360580819163829</id><published>2009-01-19T21:05:00.000-08:00</published><updated>2009-01-19T21:18:13.100-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='the lame bucket'/><category scheme='http://www.blogger.com/atom/ns#' term='apology'/><category scheme='http://www.blogger.com/atom/ns#' term='news'/><title type='text'>ShellSink Server Upgrade</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_CNrEtQlaUgk/SXVdVHmT93I/AAAAAAAAAgk/WiEqZnjA_yE/s1600-h/usa.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 128px;" src="http://3.bp.blogspot.com/_CNrEtQlaUgk/SXVdVHmT93I/AAAAAAAAAgk/WiEqZnjA_yE/s200/usa.jpg" alt="" id="BLOGGER_PHOTO_ID_5293239554442262386" border="0" /&gt;&lt;/a&gt;On the same day that our government gets an upgrade, ShellSink gets an upgrade.  Specifically, a new version of the server is live!  The changes are all performance related and it enables me to bring the client behavior into line with the way google has designed app engine to scale. That is, to make lots of very simple requests instead of fewer complex requests. &lt;br /&gt;&lt;br /&gt;Unfortunately, this version is not backwards compatible with older versions of the client.  &lt;span style="font-weight: bold; font-style: italic;"&gt;You must upgrade your client!&lt;/span&gt;  Why would I make such a drastic change?  Simple, nobody is using shell_sink but me!  That means I'm sure 100% of my users will upgrade.  It doesn't explain why I need a blog entry to tell myself about it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/974881667516508122-5006360580819163829?l=shell-sink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shell-sink.blogspot.com/feeds/5006360580819163829/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=974881667516508122&amp;postID=5006360580819163829' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/974881667516508122/posts/default/5006360580819163829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/974881667516508122/posts/default/5006360580819163829'/><link rel='alternate' type='text/html' href='http://shell-sink.blogspot.com/2009/01/shellsink-server-upgrade.html' title='ShellSink Server Upgrade'/><author><name>Shlomo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_CNrEtQlaUgk/SXVdVHmT93I/AAAAAAAAAgk/WiEqZnjA_yE/s72-c/usa.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-974881667516508122.post-6891217275429177673</id><published>2009-01-07T23:14:00.000-08:00</published><updated>2009-01-07T23:53:47.329-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='help'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><title type='text'>How to use tags in the sink.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_CNrEtQlaUgk/SWWvnevy-DI/AAAAAAAAAfo/Kd_cifqnptU/s1600-h/1438761442_d524ca4574_m.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 133px;" src="http://3.bp.blogspot.com/_CNrEtQlaUgk/SWWvnevy-DI/AAAAAAAAAfo/Kd_cifqnptU/s200/1438761442_d524ca4574_m.jpg" alt="" id="BLOGGER_PHOTO_ID_5288826430219810866" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Tags can be useful in many different ways.  I thought I would share some of the ways I use tags.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Using tags to say what computer has logged the command&lt;/span&gt;: I set the SHELL_SINK_TAGS environment variable in my bash_profile to indicate what machine logged a particular command like this: &lt;pre&gt;SHELL_SINK_TAGS=myhost&lt;/pre&gt;  This is particularly useful because I let several machines log their commands to the same shell-sink account, and if I didn't do that I wouldn't be able to remember which machine logged what.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Using tags to group commands:&lt;/span&gt; Often times when I am working on a particular project I want to indicate that the commands I am issueing are related to that project.  This makes it easy to remember the context of commands in my history and helps me find things later.  Let's say I have a project called "gloop".  When I set down to work on gloop I'll set my tags environment variable to indicate that as follows:&lt;pre&gt;export SHELL_SINK_TAGS=$SHELL_SINK_TAGS:gloop&lt;/pre&gt;  Now any commands issue in the terminal I am working in will get tagged with gloop.  When I want to stop tagging with the gloop tag I simply issue the following command &lt;pre&gt;source ~/.bash_profile&lt;/pre&gt;.  If your SHELL_SINK_TAGS variable is defined in a different file than mine you will need to source the appropriate file for your environment.  On ubuntu that file is ~/.bashrc&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Using tags to control your RSS feed:&lt;/span&gt; If you go to the preferences page of your shellsink account you will see that you can turn on an rss feed.  You can also filter your rss feed by any tag, so if you only want people to be able to see certain commands in the feed you can choose the appropriate tag from the droplist. As soon as you select something in the droplist only commands with that tag will appear in your RSS feed.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Using tags to pull:&lt;/span&gt; The shellsink-client application normally just pushes your commands out to the server, but it can also pull commands from the server and put them into your history file.  If you issue &lt;pre&gt;shellsink-client -pt gloop&lt;/pre&gt;.  The most recent 20 commands tagged with gloop will be pulled into your bash history file.  This is especially useful for making all the commands for a particular task immediately available in your history file.&lt;/li&gt;&lt;/ol&gt;These are just a few of the ways you can use tags in shellsink.  Some things to remember while using tags.  Currently you can only add a maximum of four tags at a time.  When adding multiple tags from the client make sure you use a colon delimited list of tags.  When adding multiple tags from the web application use a comma delimited list of tags.  Enjoy, and please leave your own recipes for working with tags here in the comments.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;Photo Credit: &lt;a href="http://www.flickr.com/photos/thingsarebetterwithaparrott/"&gt;sarah parrott&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/974881667516508122-6891217275429177673?l=shell-sink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shell-sink.blogspot.com/feeds/6891217275429177673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=974881667516508122&amp;postID=6891217275429177673' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/974881667516508122/posts/default/6891217275429177673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/974881667516508122/posts/default/6891217275429177673'/><link rel='alternate' type='text/html' href='http://shell-sink.blogspot.com/2009/01/how-to-use-tags-in-sink.html' title='How to use tags in the sink.'/><author><name>Shlomo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_CNrEtQlaUgk/SWWvnevy-DI/AAAAAAAAAfo/Kd_cifqnptU/s72-c/1438761442_d524ca4574_m.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-974881667516508122.post-6890276779787911575</id><published>2008-12-27T14:25:00.001-08:00</published><updated>2009-01-04T21:54:31.049-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='the lame bucket'/><category scheme='http://www.blogger.com/atom/ns#' term='apology'/><category scheme='http://www.blogger.com/atom/ns#' term='app engine'/><title type='text'>Why search terms are restricted.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_CNrEtQlaUgk/SVawLS7hYRI/AAAAAAAAAfI/8aOJcUv_lNQ/s1600-h/google-app-engine.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px; height: 200px;" src="http://3.bp.blogspot.com/_CNrEtQlaUgk/SVawLS7hYRI/AAAAAAAAAfI/8aOJcUv_lNQ/s200/google-app-engine.png" alt="" id="BLOGGER_PHOTO_ID_5284604920872395026" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Currently you can only search for two keywords at a time.  Shellsink uses Google App Engine (GAE) as the underlying technology.  The keyword search implementation provided by GAE is currently quite limited.  There is: no substring matching, limited number of keywords and only fields of 500 characters or less are indexable. I know. It is a bummer.  Unfortunately, search is a complex problem and I don't have the brains to solve it.  I'm going to wait for google to solve it.  I predict later versions of the App Engine APIs will improve the search functionality and I look forward to removing these limitations just as soon as Google does.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/974881667516508122-6890276779787911575?l=shell-sink.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://shell-sink.blogspot.com/feeds/6890276779787911575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=974881667516508122&amp;postID=6890276779787911575' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/974881667516508122/posts/default/6890276779787911575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/974881667516508122/posts/default/6890276779787911575'/><link rel='alternate' type='text/html' href='http://shell-sink.blogspot.com/2008/12/why-search-terms-are-limited-to-two.html' title='Why search terms are restricted.'/><author><name>Shlomo</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_CNrEtQlaUgk/SVawLS7hYRI/AAAAAAAAAfI/8aOJcUv_lNQ/s72-c/google-app-engine.png' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
