<?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>Sleepiness in Seattle &#187; bookmark</title>
	<atom:link href="http://stanblog.jojoyao.com/tag/bookmark/feed/" rel="self" type="application/rss+xml" />
	<link>http://stanblog.jojoyao.com</link>
	<description>Stanley&#039;s Chat on the Technology and Business</description>
	<lastBuildDate>Tue, 21 Apr 2009 04:29:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>AddThis&#8217;s bookmarking products user engagement data, clipmarks missing</title>
		<link>http://stanblog.jojoyao.com/2007/03/addthiss-bookmarking-products-user-engagement-data-clipmarks-missing/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=addthiss-bookmarking-products-user-engagement-data-clipmarks-missing</link>
		<comments>http://stanblog.jojoyao.com/2007/03/addthiss-bookmarking-products-user-engagement-data-clipmarks-missing/#comments</comments>
		<pubDate>Wed, 21 Mar 2007 07:50:08 +0000</pubDate>
		<dc:creator>Stanley Yao</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[bookmark]]></category>
		<category><![CDATA[engagement]]></category>
		<category><![CDATA[feed]]></category>
		<category><![CDATA[mining]]></category>

		<guid isPermaLink="false">http://stanblog.jojoyao.com/newblog/?p=27</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<table cellspacing="0" cellpadding="0" style="border: 4px solid rgb(229, 229, 229); margin: 12px 0px; background: rgb(255, 255, 255) none repeat scroll 0% 50%; font-family: arial; color: rgb(51, 51, 51); -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; width: 100%; clear: left;">
<tbody>
<tr>
<td valign="top"><!-- BEGIN_CLIP_CONTENT ID:714E197F-7159-44B2-96B0-D0F32C0A070E:1 CLIPMARKS.COM --></p>
<div style="background-color: rgb(255, 255, 255);" class="CM_CTB_Content_Wrap">
<div style="border-bottom: 1px solid rgb(220, 220, 220); white-space: nowrap; margin-bottom: 8px; background-color: rgb(238, 238, 238); background-image: url(http://clipmarks.com/images/source-bg.gif); background-repeat: repeat-x; height: 24px; line-height: 24px; vertical-align: middle; padding-bottom: 4px; color: rgb(102, 102, 102); font-size: 10px;"><a title="go to this clipmark" href="http://clipmarks.com/clipmark/714E197F-7159-44B2-96B0-D0F32C0A070E/"><img width="19" height="19" border="0" style="border: medium none ; margin: 0px 4px; vertical-align: middle; display: inline; float: none;" alt="" src="http://clipmarks.com/images/clip-icon.gif" /></a>clipped from <a style="color: rgb(21, 126, 186); font-size: 11px;" href="http://www.techcrunch.com/2007/03/05/addthis-widget-gathering-lots-of-interesting-data/" title="http://www.techcrunch.com/2007/03/05/addthis-widget-gathering-lots-of-interesting-data/">www.techcrunch.com</a></div>
<blockquote cite="http://www.techcrunch.com/2007/03/05/addthis-widget-gathering-lots-of-interesting-data/" style="border: medium none ; margin: 4px 0px 8px; padding: 0px 8px; background: transparent none repeat scroll 0% 50%; text-align: left; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial;">
<div align="center"><img alt="" src="http://content5.clipmarks.com/blog_cache/www.techcrunch.com/img/EC2B0984-318A-40D6-B245-1052A7BB2A54" /></div>
</blockquote>
</div>
<p><!-- END_CLIP_CONTENT --></td>
</tr>
</tbody>
</table>
<div> This is a really smart idea that produces very interesting data.  Unfortunately, clipmarks, a favorite bookmarking tool of mine, is not measured, because it requires a client browser plug-in to be installed and thus can&#8217;t be included by the AddThis widget.  A surprise is that google bookmarks is as popular as del.icio.us, but its functionality and usability is far behind del.icio.us, digg, and clipmarks.</p>
<p>From the user experience point of view, the AddThis button could be more dynamic.  The icons on the button could be clickable, so that there is no need to pop-up another window to choose the bookmarking site.  This makes the bookmarking experience more convenient.  For example, the small bookmark icons on the button could be displayed based on the user&#8217;s profile, current bookmarking choice, and aggregated popularity.  If the user logins to AddThis, the user&#8217;s preferred bookmarking sites&#8217; icons will be on the button as shortcuts.  Otherwise, the last bookmarking sites that were chosen on this browser session will be on the button.  The &quot;&#8230;&quot; icon will pop-up a window that contains all other icons that are not directly accessible on the button. </p></div>
<div style="margin: 12px 4px;">
<table width="100%" cellspacing="0" cellpadding="0" style="font-size: 11px;">
<tbody>
<tr>
<td><strong>&nbsp;</strong></td>
<td align="right"><a title="go to clipmarks.com" href="http://clipmarks.com"><img width="68" height="16" border="0" style="border: medium none ;" alt="powered by clipmarks" src="http://clipmarks.com/images/post-by-clipmarks.png" /></a></td>
</tr>
</tbody>
</table>
</div>
]]></content:encoded>
			<wfw:commentRss>http://stanblog.jojoyao.com/2007/03/addthiss-bookmarking-products-user-engagement-data-clipmarks-missing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Extract Favorite Websites Collection from Bookmark RSS feeds</title>
		<link>http://stanblog.jojoyao.com/2007/02/extract-favorite-websites-collection-from-bookmark-rss-feeds/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=extract-favorite-websites-collection-from-bookmark-rss-feeds</link>
		<comments>http://stanblog.jojoyao.com/2007/02/extract-favorite-websites-collection-from-bookmark-rss-feeds/#comments</comments>
		<pubDate>Sun, 25 Feb 2007 18:11:41 +0000</pubDate>
		<dc:creator>Stanley Yao</dc:creator>
				<category><![CDATA[.NET]]></category>
		<category><![CDATA[bookmark]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[favorite]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false">http://stanblog.jojoyao.com/newblog/?p=17</guid>
		<description><![CDATA[
]]></description>
			<content:encoded><![CDATA[<p>Bookmarking a website and bookmarking an article are different usage of the bookmarking tools.  You may want to have a clean collection of all your favorite websites and on the other hand you may want to bookmark multiple good articles from the same website.  This way your bookmark collection is a mixture of both.  This is my little frustration of using sites like <a href="http://del.icio.us/">http://del.icio.us/</a>.  It&#8217;s great in collect articles and links, but not so great to keep a clean list of my favorite <strong>websites</strong>.  Although I can use a different bookmarking tool (e.g., <a href="http://favorites.live.com/">http://favorites.live.com/</a>, which could sync with IE bookmarks) to collect just sites, it&#8217;d be nice if I could keep them in one place.  So I developed a custom web control that could be put on your website to display all the websites of a list of <a href="http://del.icio.us/">http://del.icio.us/</a> RSS feeds in the order of popularity.  Multiple articles of each websites are collapsed into one entry shown for that website, and the number of the articles bookmarked from that site is used as the indicator of the popularity of that site within the RSS feeds.  So the more articles of a website that are bookmarked, the more popular the website is.  In my example of using this web control, I put my bookmark feeds and the del.icios.us homepage hotlist feeds in so that I will get a list of all the websites either I bookmarked or on the hostlist. </p>
<div>
<table border="0" style="border-collapse: collapse;">
<colgroup>
<col style="width: 575px;"></col>
</colgroup>
<tbody valign="top">
<tr>
<td style="border: 0.5pt solid black; padding-left: 7px; padding-right: 7px;">
<p><span style="font-family: Courier New; font-size: 10pt;"><span style="color: blue;">&lt;</span><span style="color: rgb(163, 21, 21);">cc1</span><span style="color: blue;">:</span><span style="color: red;">BookmarkedWebsites<br />
&nbsp;&nbsp;&nbsp; id</span><span style="color: red;">=&quot;WebCustomControl1_1&quot;<br />
&nbsp;&nbsp;&nbsp; Url</span><span style="color: red;">=&quot;<a href="http://del.icio.us/rss/dbtu/; http://del.icio.us/rss/">http://del.icio.us/rss/dbtu/; http://del.icio.us/rss/</a>&quot;<br />
&nbsp;&nbsp;&nbsp; runat</span><span style="color: blue;">=&quot;server&quot;&gt;&lt;/</span><span style="color: rgb(163, 21, 21);">cc1</span><span style="color: blue;">:</span><span style="color: rgb(163, 21, 21);">BookmarkedWebsites</span><span style="color: blue;">&gt;</span></span></p>
</td>
</tr>
</tbody>
</table>
</div>
<p>The &quot;Url&quot; property of the control specifies a list of RSS feeds to extract from.  The delimiter is &quot;;&quot;. </p>
<p><a href="http://www.rssdotnet.com/">RSS.NET</a> library is used to parse the RSS feed.  The website part (domain) of the URL is extracted and used as the collapsing key. </p>
<div>
<table border="0" style="border-collapse: collapse;">
<colgroup>
<col style="width: 575px;"></col>
</colgroup>
<tbody valign="top">
<tr>
<td style="border: 0.5pt solid black; padding-left: 7px; padding-right: 7px;">
</p>
<p><span style="font-family: Courier New; font-size: 10pt;"> 								<span style="color: blue;">protected</span> 								<span style="color: blue;">override</span> 								<span style="color: blue;">void</span> RenderContents(<span style="color: rgb(43, 145, 175);">HtmlTextWriter</span> output)<br />
{<br />
<span style="color: blue;">&nbsp;&nbsp;&nbsp; // Get each individual RSS feed<br />
&nbsp;&nbsp;&nbsp; char</span>[] delimiters = { <span style="color: rgb(163, 21, 21);">&#8216;;&#8217;</span> };<br />
<span style="color: blue;">&nbsp;&nbsp;&nbsp; string</span>[] feeds = Url.Split(delimiters);<br />
<span style="color: rgb(43, 145, 175);">&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; // Get all websites<br />
&nbsp;&nbsp;&nbsp; SortedDictionary</span>&lt;<span style="color: blue;">string</span>, <span style="color: blue;">int</span>&gt; sites =<span style="color: blue;"><br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; new </span><span style="color: rgb(43, 145, 175);">SortedDictionary</span>&lt;<span style="color: blue;">string</span>, <span style="color: blue;">int</span>&gt;();<br />
<span style="color: blue;">&nbsp;&nbsp;&nbsp; foreach</span> (<span style="color: blue;">string</span> feedUrl <span style="color: blue;">in</span> feeds)<br />
&nbsp;&nbsp;&nbsp; {<br />
<span style="color: rgb(43, 145, 175);">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; RssFeed</span> feed = <span style="color: rgb(43, 145, 175);">RssFeed</span>.Read(feedUrl);<br />
<span style="color: blue;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; foreach</span> (<span style="color: rgb(43, 145, 175);">RssChannel</span> channel <span style="color: blue;">in</span> feed.Channels)<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br />
<span style="color: blue;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; foreach</span> (<span style="color: rgb(43, 145, 175);">RssItem</span> item <span style="color: blue;">in</span> channel.Items)<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br />
<span style="color: blue;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; string</span> link = item.Link.Scheme + <span style="color: rgb(163, 21, 21);">&quot;://&quot;</span> +<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; item.Link.Host;<br />
<span style="color: blue;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if</span> (sites.ContainsKey(link))<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sites[link]++;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
<span style="color: blue;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; else<br />
</span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; sites[link] = 1;<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp; }<span style="color: green;"><br />
</span></span></p>
</p>
<p><span style="font-family: Courier New; font-size: 10pt;"><span style="color: rgb(43, 145, 175);">&nbsp;&nbsp;&nbsp; // Reorder it on the number of occurrence (thus popularity)<br />
&nbsp;&nbsp;&nbsp; KeyValuePair</span>&lt;<span style="color: blue;">string</span>, <span style="color: blue;">int</span>&gt;[] popSites = <span style="color: blue;"><br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; new</span> <span style="color: rgb(43, 145, 175);">KeyValuePair</span>&lt;<span style="color: blue;">string</span>,<span style="color: blue;">int</span>&gt;[sites.Count];<br />
&nbsp;&nbsp;&nbsp; sites.CopyTo(popSites, 0);<br />
<span style="color: rgb(43, 145, 175);">&nbsp;&nbsp;&nbsp; Array</span>.Sort(popSites, <span style="color: blue;">new</span> 								<span style="color: rgb(43, 145, 175);">SitePopularityComparer</span>());<br />
<span style="color: blue;">&nbsp;&nbsp;&nbsp; foreach</span> (<span style="color: rgb(43, 145, 175);">KeyValuePair</span>&lt;<span style="color: blue;">string</span>, <span style="color: blue;">int</span>&gt; s <span style="color: blue;">in</span> popSites)<br />
&nbsp;&nbsp;&nbsp; {<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; output.Write(<span style="color: rgb(163, 21, 21);">&quot;( &quot;</span> + s.Value + <span style="color: rgb(163, 21, 21);">&quot; ) &lt;a href=\&quot;&quot;</span> +<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; s.Key + <span style="color: rgb(163, 21, 21);">&quot;\&quot;&gt;&quot;</span>+ s.Key + <span style="color: rgb(163, 21, 21);">&quot;&lt;/a&gt;&lt;br /&gt;&quot;</span>);<br />
&nbsp;&nbsp;&nbsp; }<br />
} </span></p>
</p>
<p><span style="font-family: Courier New; font-size: 10pt;"><span style="color: blue;">public</span> 								<span style="color: blue;">class</span> 								<span style="color: rgb(43, 145, 175);">SitePopularityComparer</span> : <span style="color: rgb(43, 145, 175);">IComparer</span><br />
{<br />
<span style="color: blue;">&nbsp;&nbsp;&nbsp; int</span> 								<span style="color: rgb(43, 145, 175);">IComparer</span>.Compare(<span style="color: blue;">object</span> x, <span style="color: blue;">object</span> y)<br />
&nbsp;&nbsp;&nbsp; {<br />
<span style="color: blue;">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; return</span> ((<span style="color: rgb(43, 145, 175);">KeyValuePair</span>&lt;<span style="color: blue;">string</span>, <span style="color: blue;">int</span>&gt;)y).Value -<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ((<span style="color: rgb(43, 145, 175);">KeyValuePair</span>&lt;<span style="color: blue;">string</span>, <span style="color: blue;">int</span>&gt;)x).Value;<br />
&nbsp;&nbsp;&nbsp; }<br />
}</span></p>
</td>
</tr>
</tbody>
</table>
</div>
<p> The web control looks like the following:<br />
<a onclick="window.open('http://stanblog.jojoyao.com/myimg/sitelist.html','popup','width=281,height=354,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false" href="http://stanblog.jojoyao.com/myimg/sitelist.html"><img width="281" height="354" alt="" src="http://stanblog.jojoyao.com/myimg/sitelist-thumb.JPG" /></a><br />
&nbsp;
</p>
<p>Furthermore, it would be cooler to be able to sync this website list into the browser bookmark so that you can use them as your reading list even more conveniently.</p>
<p>The prototype source code can be downloaded here: <a href="http://stanblog.jojoyao.com/myupload/MyFavoriteWebSites.zip">MyFavoriteWebSites.zip</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://stanblog.jojoyao.com/2007/02/extract-favorite-websites-collection-from-bookmark-rss-feeds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

