<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/style/rss/rss_feed.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="/style/rss/rss_feed.css" type="text/css" media="screen" ?><rss version="2.0"><channel><title>Clipmarks | olivier's clips</title><link>http://clipmarks.com/clipper/olivier/</link><feedUrl>http://rss.clipmarks.com/clipper/olivier/</feedUrl><ttl>15</ttl><description>Clip, tag and save information that's important to you. Bookmarks save entire pages...Clipmarks save the specific content that matters to you!</description><language>en-us</language><item><title>BadDog</title><link>http://clipmarks.com/clipmark/E10F9703-710B-4AEC-8BC0-F229A345538F/</link><description>&lt;b&gt;clipped by:&lt;/b&gt; &lt;a href="http://clipmarks.com/clipper/olivier/"&gt;olivier&lt;/a&gt;&lt;br&gt;&lt;div border="2" style="margin-top: 10px; border:#000000 1px solid;" width="90%"&gt;&lt;div style="background-color:"&gt;&lt;div align="center" width="100%" style="padding:4px;margin-bottom:4px;background-color:#666666;overflow:hidden;"&gt;&lt;span style="color:#FFFFFF;font-weight:bold;"&gt;Clip Source: &lt;a style="color:#FFFFFF;" href="http://www.dailymotion.com/bookmarks/veilleperso/video/xzwtk_baddog" title="http://www.dailymotion.com/bookmarks/veilleperso/video/xzwtk_baddog"&gt;www.dailymotion.com&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding: 10px;"&gt;&lt;div&gt;[Video]&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;div style="margin-bottom: 40px;"&gt;Tags: &lt;a href="http://clipmarks.com/tags/humour/" rel="tag"&gt;humour&lt;/a&gt;, &lt;a href="http://clipmarks.com/tags/video/" rel="tag"&gt;video&lt;/a&gt;&lt;/div&gt;</description><clipSource>http://www.dailymotion.com/bookmarks/veilleperso/video/xzwtk_baddog</clipSource><pubDate>Thu, 01 Mar 2007 16:52:11 GMT</pubDate></item><item><title>Opening the source at Big in Japan</title><link>http://clipmarks.com/clipmark/1049AF28-C5DF-4817-BE2D-40C9CF521B20/</link><description>&lt;b&gt;clipped by:&lt;/b&gt; &lt;a href="http://clipmarks.com/clipper/olivier/"&gt;olivier&lt;/a&gt;&lt;br&gt;&lt;div border="2" style="margin-top: 10px; border:#000000 1px solid;" width="90%"&gt;&lt;div style="background-color:"&gt;&lt;div align="center" width="100%" style="padding:4px;margin-bottom:4px;background-color:#666666;overflow:hidden;"&gt;&lt;span style="color:#FFFFFF;font-weight:bold;"&gt;Clip Source: &lt;a style="color:#FFFFFF;" href="http://www.biggu.com/2006/11/14/opening-the-source-at-big-in-japan" title="http://www.biggu.com/2006/11/14/opening-the-source-at-big-in-japan"&gt;www.biggu.com&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;DIV class="post"&gt;
				&lt;P class="post-date"&gt;November 14, 2006&lt;/P&gt;
				&lt;SPAN class="posttitle"&gt;
					&lt;H3&gt;&lt;A title="Permanent%20Link:%20Opening%20the%20source%20at%20Big%20in%20Japan%21" rel="bookmark" href="http://www.biggu.com/2006/11/14/opening-the-source-at-big-in-japan"&gt;Opening the source at Big in Japan!&lt;/A&gt;&lt;/H3&gt;
				&lt;/SPAN&gt;
				
				&lt;P&gt;&lt;A href="http://www.opensource.org/index.php"&gt;&lt;IMG width="110" height="95" border="0" align="right" src="http://www.opensource.org/trademarks/opensource/web/opensource-110x95.png" alt="OSI%20logo" /&gt;&lt;/A&gt;The Big in Japan team is growing and our mission is becoming clear.  This morning while I was driving to work I was considering how much time we should invest in the free feed tools we built over the past year including &lt;A href="http://feedvault.biggu.com/"&gt;FeedVault&lt;/A&gt;, PodServe, FrankenFeed, elfURL, InstantFeed, QwikPing and SocialMail.  They need a lot of work to be relevant, but we are super busy working with our paying social media clients.  Do we have the time to support a suite of tools that were very hot a year ago, but cooling off by the day?&lt;/P&gt;
&lt;P&gt;We learned quite a bit about development, rss, social media, web 2.0 and ruby on rails while developing them.  We learned even more about how hard it is to keep web services relevant.  We are still using custom versions (i.e. mash-ups) of the tools to support our own clients.&lt;/P&gt;
&lt;P&gt;So here is our proposal (instead of selling them on ebay).  We will open up the source code for each tool (with the exception of PodServe for now) using the &lt;A href="http://www.gnu.org/copyleft/gpl.html"&gt;GPL&lt;/A&gt; just as we did for &lt;A href="http://www.simpleticket.net"&gt;SimpleTicket&lt;/A&gt;.  What do we ask in return?  That anyone using the tools (i.e. building something from our initial work) contribute that work back into the SVN for that tool (FYI - the license requires it).  If you don’t want to, or can’t contribute your modifcations back just let us know and we will sell you a modified license.  The name Big in Japan is the property of our company as are the trade names associated with each tool.  Oh, and we will keep them running as hosted services as well (don’t email us ~ your data is safe).&lt;BR /&gt;
Check back soon for links to the SVN for each tool.  Hope you enjoy taking a look at the code…
&lt;/P&gt;
				
				&lt;DIV class="posted"&gt;
					&lt;A target="_blank" href="http://texasvc.weblogswork.com" class="posted-author"&gt;Alexander Muse&lt;/A&gt; | 
					&lt;A title="permanent%20link%20to%20this%20entry" class="posted-date" href="http://www.biggu.com/2006/11/14/opening-the-source-at-big-in-japan"&gt;9:07 am&lt;/A&gt; | 
					&lt;A class="posted-comments" href="http://www.biggu.com/2006/11/14/opening-the-source-at-big-in-japan"&gt;&lt;/A&gt;
					Tags: &lt;A rel="category%20tag" title="View%20all%20posts%20in%20Social%20Media" href="http://www.biggu.com/category/socialmedia/"&gt;Social Media&lt;/A&gt; ,  &lt;A rel="category%20tag" title="View%20all%20posts%20in%20biggu" href="http://www.biggu.com/category/biggu/"&gt;biggu&lt;/A&gt; | &lt;A target="_blank" href="http://del.icio.us/post?url=http://www.biggu.com/2006/11/14/opening-the-source-at-big-in-japan%26title=Opening%20the%20source%20at%20Big%20in%20Japan%21"&gt;Bookmark on del.icio.us&lt;/A&gt; | &lt;A target="_blank" href="http://digg.com/submit?phase=2%26url=http://www.biggu.com/2006/11/14/opening-the-source-at-big-in-japan%26title=Opening%20the%20source%20at%20Big%20in%20Japan%21"&gt;Digg It&lt;/A&gt;
				
				&lt;/DIV&gt;
			&lt;/DIV&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;div style="margin-bottom: 40px;"&gt;Tags: &lt;a href="http://clipmarks.com/tags/opensource/" rel="tag"&gt;opensource&lt;/a&gt;, &lt;a href="http://clipmarks.com/tags/web2.0/" rel="tag"&gt;web2.0&lt;/a&gt;, &lt;a href="http://clipmarks.com/tags/ruby/" rel="tag"&gt;ruby&lt;/a&gt;&lt;/div&gt;</description><clipSource>http://www.biggu.com/2006/11/14/opening-the-source-at-big-in-japan</clipSource><pubDate>Wed, 15 Nov 2006 01:20:36 GMT</pubDate></item><item><title>Hidden labels in Gmail</title><link>http://clipmarks.com/clipmark/152DC9FC-A6C4-4673-815F-E88EAE8D74B0/</link><description>&lt;b&gt;clipped by:&lt;/b&gt; &lt;a href="http://clipmarks.com/clipper/olivier/"&gt;olivier&lt;/a&gt;&lt;br&gt;&lt;b&gt;clipper's remarks:&lt;/b&gt;  How to optimize search in gmail with a few hidden labels &lt;br&gt;&lt;div border="2" style="margin-top: 10px; border:#000000 1px solid;" width="90%"&gt;&lt;div style="background-color:"&gt;&lt;div align="center" width="100%" style="padding:4px;margin-bottom:4px;background-color:#666666;overflow:hidden;"&gt;&lt;span style="color:#FFFFFF;font-weight:bold;"&gt;Clip Source: &lt;a style="color:#FFFFFF;" href="http://googlesystem.blogspot.com/2006/10/hidden-labels-in-gmail.html" title="http://googlesystem.blogspot.com/2006/10/hidden-labels-in-gmail.html"&gt;googlesystem.blogspot.com&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;DIV class="post"&gt;&lt;A name="115978474931390342"&gt;&lt;/A&gt;
     
    
    &lt;H3 class="post-title"&gt;
	 &lt;A href="http://googlesystem.blogspot.com/2006/10/hidden-labels-in-gmail.html"&gt; Hidden Labels in Gmail &lt;/A&gt;
    &lt;/H3&gt;
    

     
    &lt;P&gt;&lt;/P&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;IMG alt="" src="http://photos1.blogger.com/blogger/7506/607/1600/search-gmail-using-labels.gif" /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt;If you enable saving your chat history in Gmail, your conversations from Google Talk are saved as standard emails. To make them stand out from the rest of messages, Gmail adds two labels: &lt;SPAN&gt;chat&lt;/SPAN&gt; and &lt;SPAN&gt;chats&lt;/SPAN&gt;.&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;If you want to search your chats, you just have to add &lt;SPAN&gt;label:chat&lt;/SPAN&gt; to your query. If you want to search only your mail, exclude the chats by adding &lt;SPAN&gt;-label:chat&lt;/SPAN&gt;.&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;Gmail has many other hidden labels that can make your life easier, so you don't have to use the advanced search:&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;* &lt;SPAN&gt;label:inbox&lt;/SPAN&gt; - search only your Inbox. It's a good idea to keep your Inbox clean.&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;* &lt;SPAN&gt;label:star&lt;/SPAN&gt; (&lt;SPAN&gt;label:starred&lt;/SPAN&gt;) - search only your starred messages. You can use the star button like a bookmarking system. Star only important messages.&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;* &lt;SPAN&gt;label:draft&lt;/SPAN&gt; (or &lt;SPAN&gt;label:drafts&lt;/SPAN&gt;) - search only unfinished messages. Drafts could be used for storing notes or emails that must be sent later.&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;* &lt;SPAN&gt;label:sent&lt;/SPAN&gt; (or &lt;SPAN&gt;label:sentmail&lt;/SPAN&gt;, &lt;SPAN&gt;label:sent-mail&lt;/SPAN&gt;, &lt;SPAN&gt;label:sent mail&lt;/SPAN&gt; ) - search only sent mail. It may be useful to restrict your search only to messages you've sent, or only to messages you've received if you add a minus.&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;* &lt;SPAN&gt;label:all&lt;/SPAN&gt; (or &lt;SPAN&gt;label:allmail&lt;/SPAN&gt;, &lt;SPAN&gt;label:all-mail&lt;/SPAN&gt;, &lt;SPAN&gt;label:all mail&lt;/SPAN&gt; ) - search all your mail, including messages from Trash (&lt;SPAN&gt;label:trash&lt;/SPAN&gt;) and Spam (&lt;SPAN&gt;label:spam&lt;/SPAN&gt;).&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;* &lt;SPAN&gt;label:read&lt;/SPAN&gt; and &lt;SPAN&gt;label:unread&lt;/SPAN&gt;. Restrict your search only to read mail or unread mail. For example, to find all your sent messages that have unread replies, you can search for &lt;SPAN&gt;label:unread label:sent&lt;/SPAN&gt;.&lt;/DIV&gt;&lt;BR /&gt;&lt;DIV&gt;* &lt;SPAN&gt;label:voicemail&lt;/SPAN&gt; (or &lt;SPAN&gt;label:voicemails&lt;/SPAN&gt; ) - search only &lt;A href="http://googlesystem.blogspot.com/2006/07/google-talk-adds-voicemail-and-file.html"&gt;the voicemail received from a Google Talk user&lt;/A&gt;.&lt;/DIV&gt;&lt;BR /&gt;It's nice that you can combine all these labels with user-defined labels in a query. To show results that have both label A and label B, just search for &lt;SPAN&gt;label:A label:B&lt;/SPAN&gt;. To show results that have one of the labels A and B or both, just search for &lt;SPAN&gt;label:A OR label:B&lt;/SPAN&gt;.&lt;A&gt;&lt;/A&gt;&lt;A&gt;&lt;/A&gt;&lt;DIV&gt;&lt;/DIV&gt;


&lt;DIV&gt;


&lt;/DIV&gt;


    &lt;DIV class="post-footer"&gt;
      &lt;DIV&gt;&lt;A href="http://googlesystem.blogspot.com/2006/10/hidden-labels-in-gmail.html"&gt;Hidden Labels in Gmail&lt;/A&gt; by Ionut Alex. Chitu&lt;/DIV&gt;
&lt;DIV&gt;

&lt;A href="http://www.blogger.com/email-post.g?blogID=18157064%26postID=115978474931390342"&gt;Email to a friend&lt;/A&gt; 
 | &lt;A href="http://del.icio.us/post?url=http://googlesystem.blogspot.com/2006/10/hidden-labels-in-gmail.html%26title=Google%20Operating%20System:%20Hidden%20Labels%20in%20Gmail"&gt;Bookmark to del.icio.us&lt;/A&gt;
&lt;/DIV&gt;
    &lt;/DIV&gt;
  &lt;/DIV&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;div style="margin-bottom: 40px;"&gt;Tags: &lt;a href="http://clipmarks.com/tags/google/" rel="tag"&gt;google&lt;/a&gt;, &lt;a href="http://clipmarks.com/tags/gmail/" rel="tag"&gt;gmail&lt;/a&gt;, &lt;a href="http://clipmarks.com/tags/tips/" rel="tag"&gt;tips&lt;/a&gt;&lt;/div&gt;</description><clipSource>http://googlesystem.blogspot.com/2006/10/hidden-labels-in-gmail.html</clipSource><pubDate>Tue, 03 Oct 2006 09:57:38 GMT</pubDate></item><item><title>A New Way of Tracking Users' Browsing Habits</title><link>http://clipmarks.com/clipmark/A59D35C7-949C-432B-B4F0-17472A780059/</link><description>&lt;b&gt;clipped by:&lt;/b&gt; &lt;a href="http://clipmarks.com/clipper/olivier/"&gt;olivier&lt;/a&gt;&lt;br&gt;&lt;b&gt;clipper's remarks:&lt;/b&gt;  I know what you did last week &lt;img src="http://clipmarks.com/images/icons/smilies/wink.gif" alt="" /&gt; &lt;br&gt;&lt;div border="2" style="margin-top: 10px; border:#000000 1px solid;" width="90%"&gt;&lt;div style="background-color:"&gt;&lt;div align="center" width="100%" style="padding:4px;margin-bottom:4px;background-color:#666666;overflow:hidden;"&gt;&lt;span style="color:#FFFFFF;font-weight:bold;"&gt;Clip Source: &lt;a style="color:#FFFFFF;" href="http://techfoolery.com/archives/2006/08/21/2042/" title="http://techfoolery.com/archives/2006/08/21/2042/"&gt;techfoolery.com&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;DIV class="post"&gt;
				&lt;H2&gt;&lt;A href="http://techfoolery.com/archives/2006/08/21/2042/?PHPSESSID=ae52b760985f158b979ce0f62305d904"&gt;A New Way of Tracking Users' Browsing Habits&lt;/A&gt;&lt;/H2&gt;
				&lt;P class="date"&gt;
					Posted on Monday, August 21st, 2006 at 20:42 by &lt;A href="http://techfoolery.com/author/ross/?PHPSESSID=ae52b760985f158b979ce0f62305d904"&gt;Ross&lt;/A&gt;
				&lt;/P&gt;
				&lt;P class="permalink"&gt;
					&lt;A class="scrolling-link" href="%23comments"&gt;Jump to comments (14)  ↓&lt;/A&gt;
				&lt;/P&gt;
				
				&lt;P&gt;
Jeremiah Grossman came up with a &lt;A href="http://jeremiahgrossman.blogspot.com/2006/08/i-know-where-youve-been.html"&gt;really clever way&lt;/A&gt; of using Javascript to find what pages you've visited recently. It goes like this: when a link has been visited, you can use the &lt;CODE&gt;:visited&lt;/CODE&gt; pseudo-class to style it. Using Javascript, you can walk through all of the links on your page and grab their styles; comparing a link's style to the style given to visited links in the CSS will tell you whether or not a site has been visited. Seems innocent enough, until you realize that this can be applied to a large list of links. A site will know whether or not have been to any of the sites on their list. Combine that with a little Ajax, a database and a cookie, and you can track where your return users have been over time.
&lt;/P&gt;
&lt;P&gt;
This technique is worrying, but probably not the end of privacy as we know it. It can only be applied to a finite list of links, so it's not able to find out all of the sites you've been to. It's done using Javascript, so you can't hide the fact that you're using it; the code can be obfuscated, but eventually someone will figure out that Evil Corp. is tracking whether users have visited their competitors' sites first. And it can be prevented by emptying your cache or reseting your visited links. It will be interesting to see if any popular sites risk the bad publicity of actually using this.
&lt;/P&gt;
&lt;P&gt;
Hats off to Jeremiah for coming up with this. Just goes to show what's possible with CSS and Javascript these days.
&lt;/P&gt;
&lt;P&gt;
&lt;STRONG&gt;Update:&lt;/STRONG&gt; Christian Heilmann got it to &lt;A href="http://icant.co.uk/sandbox/nickhistory.html"&gt;work with IE&lt;/A&gt; by using height and computedHeight instead of color.
&lt;/P&gt;
				
				&lt;DIV class="post-footer"&gt;


					&lt;P class="tags"&gt;
						Filed under: &lt;A rel="tag" href="http://techfoolery.com/tag/css"&gt;css&lt;/A&gt;, &lt;A rel="tag" href="http://techfoolery.com/tag/javascript"&gt;javascript&lt;/A&gt;, &lt;A rel="tag" href="http://techfoolery.com/tag/programming"&gt;programming&lt;/A&gt;, &lt;A rel="tag" href="http://techfoolery.com/tag/webdev"&gt;webdev&lt;/A&gt;
					&lt;/P&gt;

	
					&lt;P class="comment-info"&gt;
						&lt;A href="%23comments"&gt;14 Comments&lt;/A&gt;
					&lt;/P&gt;
		
					&lt;P class="share"&gt;
						&lt;STRONG&gt;Share this post:&lt;/STRONG&gt; 
						&lt;A href="http://digg.com/submit?phase=2%26url=http%3A%2F%2Ftechfoolery.com%2Farchives%2F2006%2F08%2F21%2F2042%2F%26title=A+New+Way+of+Tracking+Users%27+Browsing+Habits+-+techfoolery.com"&gt;digg&lt;/A&gt; 
						&lt;A href="http://www.furl.net/storeIt.jsp?u=http%3A%2F%2Ftechfoolery.com%2Farchives%2F2006%2F08%2F21%2F2042%2F%26t=A+New+Way+of+Tracking+Users%27+Browsing+Habits+-+techfoolery.com"&gt;furl&lt;/A&gt; 
						&lt;A href="http://del.icio.us/post?url=http%3A%2F%2Ftechfoolery.com%2Farchives%2F2006%2F08%2F21%2F2042%2F%26title=A+New+Way+of+Tracking+Users%27+Browsing+Habits+-+techfoolery.com"&gt;del.icio.us&lt;/A&gt; 
						&lt;A href="http://ma.gnolia.com/bookmarklet/add?url=http%3A%2F%2Ftechfoolery.com%2Farchives%2F2006%2F08%2F21%2F2042%2F%26title=A+New+Way+of+Tracking+Users%27+Browsing+Habits+-+techfoolery.com"&gt;ma.gnolia&lt;/A&gt;
					&lt;/P&gt;

				&lt;/DIV&gt;

			&lt;/DIV&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;div style="margin-bottom: 40px;"&gt;Tags: &lt;a href="http://clipmarks.com/tags/technology/" rel="tag"&gt;technology&lt;/a&gt;, &lt;a href="http://clipmarks.com/tags/javascript/" rel="tag"&gt;javascript&lt;/a&gt;, &lt;a href="http://clipmarks.com/tags/hack/" rel="tag"&gt;hack&lt;/a&gt;&lt;/div&gt;</description><clipSource>http://techfoolery.com/archives/2006/08/21/2042/</clipSource><pubDate>Thu, 24 Aug 2006 01:24:13 GMT</pubDate></item><item><title>Using capistrano with PHP</title><link>http://clipmarks.com/clipmark/1B3B38C7-9600-48CA-8E06-332DF757E77F/</link><description>&lt;b&gt;clipped by:&lt;/b&gt; &lt;a href="http://clipmarks.com/clipper/olivier/"&gt;olivier&lt;/a&gt;&lt;br&gt;&lt;b&gt;clipper's remarks:&lt;/b&gt;  Nice trick to use capistrano (RoR deployment tool) with PHP &lt;br&gt;&lt;div border="2" style="margin-top: 10px; border:#000000 1px solid;" width="90%"&gt;&lt;div style="background-color:"&gt;&lt;div align="center" width="100%" style="padding:4px;margin-bottom:4px;background-color:#666666;overflow:hidden;"&gt;&lt;span style="color:#FFFFFF;font-weight:bold;"&gt;Clip Source: &lt;a style="color:#FFFFFF;" href="http://nubyonrails.com/articles/read/460" title="http://nubyonrails.com/articles/read/460"&gt;nubyonrails.com&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;DIV id="article-460" class="atomentry"&gt;
  &lt;H2 class="title"&gt;
    Using Capistrano with Perl (or PHP) 
    &lt;SPAN class="comment_count"&gt;4&lt;/SPAN&gt;
  &lt;/H2&gt;

  &lt;P class="author"&gt;
    Posted by &lt;CITE&gt;topfunky&lt;/CITE&gt;
    &lt;ABBR title="2006-03-09T21:11:00+00:00" class="published"&gt;&lt;SPAN title="Thu, 09 Mar 2006 21:11:00 GMT" class="typo_date"&gt;on 03/09/2006&lt;/SPAN&gt;&lt;/ABBR&gt;
  &lt;/P&gt;

  &lt;DIV class="mint_summary"&gt;This page has been viewed 671 times since March 29, 2006&lt;/DIV&gt;

  &lt;DIV class="content"&gt;
    &lt;P&gt;&lt;STRONG&gt;&lt;SPAN class="caps"&gt;UPDATE&lt;/SPAN&gt;:&lt;/STRONG&gt; The &lt;CODE&gt;cap&lt;/CODE&gt; command can be used instead of &lt;CODE&gt;rake&lt;/CODE&gt;.&lt;/P&gt;


	&lt;P&gt;Theoretically, you can use the &lt;DEL&gt;Switchtower&lt;/DEL&gt; Capistrano deployment system with Perl, &lt;SPAN class="caps"&gt;PHP&lt;/SPAN&gt;, or any other system. I haven’t seen a tutorial for doing it with non-Rails systems, so here is how I did it tonight:&lt;/P&gt;


	&lt;UL&gt;
	&lt;LI&gt;Make the standard ‘public’, and ‘config’ folders that you are used to seeing in Rails.&lt;/LI&gt;
		&lt;LI&gt;Copy all your Perl or &lt;SPAN class="caps"&gt;PHP&lt;/SPAN&gt; files into ‘public’.&lt;/LI&gt;
		&lt;LI&gt;Copy this &lt;A href="http://topfunky.net/svn/shovel/blank/deploy.rb"&gt;starter deploy.rb&lt;/A&gt; file to &lt;CODE&gt;config/deploy.rb&lt;/CODE&gt;.&lt;/LI&gt;
		&lt;LI&gt;Make a restart task that does nothing (or restarts &lt;SPAN class="caps"&gt;FCGI&lt;/SPAN&gt;’s for the language in question).&lt;/LI&gt;
		&lt;LI&gt;Run &lt;CODE&gt;cap setup&lt;/CODE&gt;&lt;/LI&gt;
		&lt;LI&gt;Copy any relevant upload folders to shared/system/...&lt;/LI&gt;
		&lt;LI&gt;Make an &lt;CODE&gt;after_symlink&lt;/CODE&gt; task that symlinks from any relevant upload folders and makes Perl files executable:&lt;/LI&gt;
	&lt;/UL&gt;


&lt;PRE&gt;desc 'Link to files'
task :after_symlink do
  run "chmod +x #{current_path}/public/*.pl" 
  run "ln -s #{shared_path}/file #{current_path}/public/file" 
end
&lt;/PRE&gt;

	&lt;UL&gt;
	&lt;LI&gt;Run &lt;CODE&gt;cap deploy&lt;/CODE&gt;&lt;/LI&gt;
	&lt;/UL&gt;


	&lt;P&gt;I used this with a Perl-based system and it worked successfully! Yay! Capistrano + Ruby deployment for non-Rails languages!&lt;/P&gt;


	&lt;H4&gt;See also&lt;/H4&gt;


	&lt;UL&gt;
	&lt;LI&gt;&lt;A href="http://www.whomwah.com/2006/05/21/deploying-wordpress-using-capistrano/"&gt;Deploying Wordpress with Capistrano&lt;/A&gt;&lt;/LI&gt;
	&lt;/UL&gt;

      
  &lt;/DIV&gt;

  &lt;UL class="meta"&gt;
    &lt;LI class="categories"&gt;Posted in &lt;A rel="tag" href="http://nubyonrails.com/articles/category/server"&gt;server&lt;/A&gt;, &lt;A rel="tag" href="http://nubyonrails.com/articles/category/rubyonrails"&gt;rubyonrails&lt;/A&gt;, &lt;A rel="tag" href="http://nubyonrails.com/articles/category/tutorials"&gt;tutorials&lt;/A&gt;&lt;/LI&gt;
    
    &lt;LI&gt;Meta 
      
      &lt;A rel="bookmark" href="http://nubyonrails.com/articles/read/460"&gt;permalink&lt;/A&gt;,
      &lt;A href="http://nubyonrails.com/xml/rss/article/460/feed.xml"&gt;rss&lt;/A&gt;,    
      &lt;A href="http://nubyonrails.com/xml/atom/article/460/feed.xml"&gt;atom&lt;/A&gt;   
    &lt;/LI&gt;
  &lt;/UL&gt;
  
  &lt;DIV class="leave_a_comment"&gt;
          &lt;A href="http://nubyonrails.com/articles/2006/03/09/using-capistrano-with-perl-or-php#comments"&gt;4 comments&lt;/A&gt; &lt;A href="http://nubyonrails.com/articles/2006/03/09/using-capistrano-with-perl-or-php"&gt;→&lt;/A&gt;
      &lt;/DIV&gt;
&lt;/DIV&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;div style="margin-bottom: 40px;"&gt;Tags: &lt;a href="http://clipmarks.com/tags/development/" rel="tag"&gt;development&lt;/a&gt;, &lt;a href="http://clipmarks.com/tags/php/" rel="tag"&gt;php&lt;/a&gt;, &lt;a href="http://clipmarks.com/tags/capistrano/" rel="tag"&gt;capistrano&lt;/a&gt;&lt;/div&gt;</description><clipSource>http://nubyonrails.com/articles/read/460</clipSource><pubDate>Sat, 05 Aug 2006 12:26:19 GMT</pubDate></item><item><title>Web 2.0: The First 25,000 Users Are Irrelevant</title><link>http://clipmarks.com/clipmark/A91C278D-E171-4597-BAF7-FD48EB8EBBDD/</link><description>&lt;b&gt;clipped by:&lt;/b&gt; &lt;a href="http://clipmarks.com/clipper/olivier/"&gt;olivier&lt;/a&gt;&lt;br&gt;&lt;div border="2" style="margin-top: 10px; border:#000000 1px solid;" width="90%"&gt;&lt;div style="background-color:"&gt;&lt;div align="center" width="100%" style="padding:4px;margin-bottom:4px;background-color:#666666;overflow:hidden;"&gt;&lt;span style="color:#FFFFFF;font-weight:bold;"&gt;Clip Source: &lt;a style="color:#FFFFFF;" href="http://www.feld.com/blog/archives/001692.html" title="http://www.feld.com/blog/archives/001692.html"&gt;www.feld.com&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;H1&gt;&lt;strong&gt;Web 2.0: The First 25,000 Users Are Irrelevant&lt;/strong&gt;&lt;/H1&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;P&gt;For the past few months, whenever I talk to someone about a Web 2.0 application and hear that they already have “10,000 users”, I’ve been telling that them the first 25,000 users are irrelevant.&lt;/P&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;P&gt;&lt;a href="http://firstround.typepad.com/about.html"&gt;Josh Kopelman&lt;/a&gt; has a perfect post up today called &lt;a href="http://redeye.firstround.com/2006/05/53651.html"&gt;53,651&lt;/a&gt;.&amp;nbsp; This is the number of RSS subscribers to Michael Arrington’s great &lt;a href="http://www.techcrunch.com/"&gt;TechCruch blog&lt;/a&gt;, and is exactly at the core of the “first 25,000 user” issue.&amp;nbsp; Since there are 53,651 RSS subscribers of TechCrunch (at least as of 5/12/06) , if something gets reviewed there, it’s likely to get 5,000 to 10,000 users in the next 24 hours “just to try it out.”&amp;nbsp; As so many traffic graphs of these “TechCrunched” products show, there is a huge spike in use for a day or two, and then it goes right back down to where things were before they were TechCrunched.&amp;nbsp; For example:&lt;/P&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;P&gt;Unfortunately, many entrepreneurs (and many VCs) confused one time “tryout users” with real sustainable users.&amp;nbsp; As an analytics freak (I’ve invested in a number of web / Internet analytics related companies over the past 10 years, including NetGenesis, Service Metrics, and now &lt;a href="http://www.feedburner.com/"&gt;FeedBurner&lt;/a&gt;), you only have to ask two more questions to know whether (a) the company really understands its traffic / user base and (b) whether they’ve got the “first 25,000 user problem.”&lt;/P&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;P&gt;Thanks Josh for the outstanding post and putting the gap between the Web 2.0 geeks and Mainstreet USA front and center.&amp;nbsp; Remember - the first 25,000 users are the same dudes (such as me) that play with everything.&amp;nbsp; Oh – and yes – I’ve fallen victim to this also.&lt;/P&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;P&gt;It’s time to go La Vache hunting.&lt;/P&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;P&gt;&lt;img alt="Traffic" src="http://www.feld.com/blog/var/www/html/blog/images/traffic_small.jpg" border="0"&gt;&lt;/P&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;div style="margin-bottom: 40px;"&gt;Tags: &lt;a href="http://clipmarks.com/tags/startup/" rel="tag"&gt;startup&lt;/a&gt;, &lt;a href="http://clipmarks.com/tags/web2.0/" rel="tag"&gt;web2.0&lt;/a&gt;&lt;/div&gt;</description><clipSource>http://www.feld.com/blog/archives/001692.html</clipSource><pubDate>Mon, 29 May 2006 18:11:16 GMT</pubDate></item><item><title>Listen top pandora in Winamp</title><link>http://clipmarks.com/clipmark/58D3A42A-8B01-4F46-9D05-BA6E6C2F8116/</link><description>&lt;b&gt;clipped by:&lt;/b&gt; &lt;a href="http://clipmarks.com/clipper/olivier/"&gt;olivier&lt;/a&gt;&lt;br&gt;&lt;div border="2" style="margin-top: 10px; border:#000000 1px solid;" width="90%"&gt;&lt;div style="background-color:"&gt;&lt;div align="center" width="100%" style="padding:4px;margin-bottom:4px;background-color:#666666;overflow:hidden;"&gt;&lt;span style="color:#FFFFFF;font-weight:bold;"&gt;Clip Source: &lt;a style="color:#FFFFFF;" href="http://googlesystem.blogspot.com/2006/05/listen-to-pandora-in-winamp.html" title="http://googlesystem.blogspot.com/2006/05/listen-to-pandora-in-winamp.html"&gt;googlesystem.blogspot.com&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;DIV class='post'&gt;&lt;a name="114716779659039871"&gt;&lt;/a&gt;
     
    
    &lt;h3 class="post-title"&gt;
	 &lt;a href="http://googlesystem.blogspot.com/2006/05/listen-to-pandora-in-winamp.html"&gt; Listen To Pandora In Winamp &lt;/a&gt;
    &lt;/h3&gt;
    

     
    &lt;p style="margin-top: 15px;"&gt;&lt;/p&gt;&lt;div style="clear: both;"&gt;&lt;/div&gt;&lt;div style="float: right;"&gt;&lt;br&gt;&lt;a   href="http://photos1.blogger.com/blogger/7506/607/1600/pandora-winamp.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; cursor: pointer;" src="http://photos1.blogger.com/blogger/7506/607/320/pandora-winamp.png" alt="" border="0"&gt;&lt;/a&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;If you have the latest version of Winamp (namely, 5.21), you can add &lt;a href="http://blog.pandora.com/faq/"&gt;Pandora&lt;/a&gt;, a great online personalized radio, to Media Library.&lt;/div&gt;&lt;br&gt;Close Winamp, open&lt;br&gt;&lt;div&gt;C:\Program Files\ Winamp\Plugins\ml \ml_online.ini (change the location if you've installed Winamp elsewhere).&lt;/div&gt;&lt;br&gt;&lt;div&gt;Replace this line&lt;/div&gt;&lt;br&gt;&lt;div&gt;&lt;span style="font-style: italic;"&gt;ElementID7=-1&lt;/span&gt;&lt;/div&gt;&lt;br&gt;with&lt;br&gt;&lt;div&gt;&lt;span style="font-style: italic;"&gt;&lt;br&gt;ElementID7=7000&lt;br&gt;ElementIcon7=11003&lt;br&gt;ElementSubbed7=1&lt;br&gt;ElementName7=Pandora&lt;br&gt;ElementURL7=http://www.pandora.com/?cmd=tunermini&lt;br&gt;ElementID8=-1&lt;/span&gt;&lt;/div&gt;&lt;br&gt;&lt;div&gt;When you open Winamp again, go to Media Library/Online Services/Pandora. If you haven't got an account, you should make one. You can close Media Library and still listen to your radio.&lt;/div&gt;&lt;br&gt;You can find out more about Pandora from this &lt;a href="http://blog.pandora.com/faq/"&gt;FAQ&lt;/a&gt;.&lt;div style="clear: both; padding-bottom: 0.25em;"&gt;&lt;/div&gt;


&lt;div style="margin: 3px 0px;"&gt;


&lt;/div&gt;


    &lt;div class="post-footer"&gt;
      &lt;div&gt;&lt;a href="http://googlesystem.blogspot.com/2006/05/listen-to-pandora-in-winamp.html"&gt;Listen To Pandora In Winamp&lt;/a&gt; by Ionut Alex. Chitu&lt;/div&gt;
&lt;div&gt;

&lt;a href="http://www.blogger.com/email-post.g?blogID=18157064&amp;amp;postID=114716779659039871"&gt;Email to a friend&lt;/a&gt; 
 | &lt;a href="http://del.icio.us/post?url=http://googlesystem.blogspot.com/2006/05/listen-to-pandora-in-winamp.html&amp;amp;title=Google%20Operating%20System:%20Listen%20To%20Pandora%20In%20Winamp"  &gt;Bookmark to del.icio.us&lt;/a&gt;
&lt;/div&gt;
    &lt;/div&gt;
  &lt;/DIV&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;div style="margin-bottom: 40px;"&gt;Tags: &lt;a href="http://clipmarks.com/tags/music/" rel="tag"&gt;music&lt;/a&gt;, &lt;a href="http://clipmarks.com/tags/pandora/" rel="tag"&gt;pandora&lt;/a&gt;, &lt;a href="http://clipmarks.com/tags/winamp/" rel="tag"&gt;winamp&lt;/a&gt;&lt;/div&gt;</description><clipSource>http://googlesystem.blogspot.com/2006/05/listen-to-pandora-in-winamp.html</clipSource><pubDate>Sat, 13 May 2006 00:36:10 GMT</pubDate></item><item><title>Google Notebook from Google Labs</title><link>http://clipmarks.com/clipmark/437ECCB5-1566-4D4D-BD75-21919F44BA7C/</link><description>&lt;b&gt;clipped by:&lt;/b&gt; &lt;a href="http://clipmarks.com/clipper/olivier/"&gt;olivier&lt;/a&gt;&lt;br&gt;&lt;b&gt;clipper's remarks:&lt;/b&gt;  Looks like Google is ready to enter the online note taking/clipping market &lt;img src="http://clipmarks.com/images/icons/smilies/wink.gif" alt="" /&gt; &lt;br&gt;&lt;div border="2" style="margin-top: 10px; border:#000000 1px solid;" width="90%"&gt;&lt;div style="background-color:"&gt;&lt;div align="center" width="100%" style="padding:4px;margin-bottom:4px;background-color:#666666;overflow:hidden;"&gt;&lt;span style="color:#FFFFFF;font-weight:bold;"&gt;Clip Source: &lt;a style="color:#FFFFFF;" href="http://www.zorgloob.com/2006/05/google-notebook-communiqu-de-presse.asp" title="http://www.zorgloob.com/2006/05/google-notebook-communiqu-de-presse.asp"&gt;www.zorgloob.com&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;strong&gt;Google Notebook from Google Labs&lt;/strong&gt;&lt;/div&gt;&lt;br&gt;&lt;div&gt;Google Notebook is a simple way for users to save and organize their thoughts when conducting research online. This personal browser tool permits users to clip text, images, and links from the pages they're browsing, save them to an online "notebook" that is accessible from any computer, and share them with others.&lt;/div&gt;&lt;br&gt;&lt;div&gt;Google Notebook is an interactive scratch pad for every website a user visits, offering a single online location to collect web findings without having to leave the browser window. For example, if a user were planning a vacation, she could clip the most relevant materials on the pages she visits and add personal notes to help organize all of her research.&lt;/div&gt;&lt;br&gt;&lt;div&gt;Users can make their Google Notebook public and share the notes they've taken with others. As a result, the time and effort put into their research can be harnessed by the online community as a whole.&lt;/div&gt;&lt;br&gt;Google Notebook will be available next week from Google Labs at &lt;strong&gt;&lt;a href="http://www.google.com/notebook"&gt;www.google.com/notebook&lt;/a&gt;&lt;/strong&gt;.&lt;/BLOCKQUOTE&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;div style="margin-bottom: 40px;"&gt;Tags: &lt;a href="http://clipmarks.com/tags/clipping/" rel="tag"&gt;clipping&lt;/a&gt;, &lt;a href="http://clipmarks.com/tags/notebook/" rel="tag"&gt;notebook&lt;/a&gt;, &lt;a href="http://clipmarks.com/tags/web2.0/" rel="tag"&gt;web2.0&lt;/a&gt;, &lt;a href="http://clipmarks.com/tags/social+bookmarking/" rel="tag"&gt;social bookmarking&lt;/a&gt;&lt;/div&gt;</description><clipSource>http://www.zorgloob.com/2006/05/google-notebook-communiqu-de-presse.asp</clipSource><pubDate>Thu, 11 May 2006 03:40:03 GMT</pubDate></item><item><title>This May Help Your Firefox Memory Leak</title><link>http://clipmarks.com/clipmark/A897C505-7FBA-4008-9B55-2AC76CF55B06/</link><description>&lt;b&gt;clipped by:&lt;/b&gt; &lt;a href="http://clipmarks.com/clipper/olivier/"&gt;olivier&lt;/a&gt;&lt;br&gt;&lt;b&gt;clipper's remarks:&lt;/b&gt;  2 trucs pour réduire la tendance de firefox a dévorer la memoire vive &lt;br&gt;&lt;div border="2" style="margin-top: 10px; border:#000000 1px solid;" width="90%"&gt;&lt;div style="background-color:"&gt;&lt;div align="center" width="100%" style="padding:4px;margin-bottom:4px;background-color:#666666;overflow:hidden;"&gt;&lt;span style="color:#FFFFFF;font-weight:bold;"&gt;Clip Source: &lt;a style="color:#FFFFFF;" href="http://tech.cybernetnews.com/2006/03/26/this-may-help-your-firefox-memory-leak/" title="http://tech.cybernetnews.com/2006/03/26/this-may-help-your-firefox-memory-leak/"&gt;tech.cybernetnews.com&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;DIV class='post-content'&gt;	
	&lt;!-- google_ad_section_start--&gt;
	&lt;p&gt; &lt;/p&gt;&lt;center&gt;&lt;img src="http://tech.cybernetnews.com/wp-content/uploads/2006/03/FirefoxSketch.png" alt="TITLE"&gt;&lt;/center&gt;
&lt;p&gt;Now, this is by no means a REAL fix for the Firefox memory leak, but it certainly does appear to help it quite a bit. This little fix will move Firefox to your hard drive when you minimize it, and as a result it will take up less than 10MB of memory while minimized. So far, from my experiences with using this today, when you maximize Firefox it will obviously increase the memory usage. However, it does not seem to go back up to the insane amount that it was at before minimizing it. For example, Firefox was at 180MB of memory usage and then I minimized it and after a few seconds I maximized it. After maximizing it and continuing on my routine business it appeared to only have gone up to 60MB. This seems to be a good solution for me right now since I frequently maximize and minimize Firefox anyways.&lt;/p&gt;
&lt;p&gt;Now I know many people will say that Firefox will take longer to maximize since it will be located on the hard drive, but I haven’t noticed ANY delays. It is able to redraw itself just as quickly as if it was located in the ram (in my experience). Okay, now here are the few simple steps:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Open Firefox and go to the Address Bar. Type in &lt;em&gt;about:config&lt;/em&gt; and then press Enter.&lt;/li&gt;
&lt;li&gt;Right Click in the page and select &lt;em&gt;New -&amp;gt; Boolean&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;In the box that pops up enter &lt;em&gt;config.trim_on_minimize&lt;/em&gt;. Press Enter.&lt;/li&gt;
&lt;li&gt;Now select &lt;em&gt;True&lt;/em&gt; and then press Enter.&lt;/li&gt;
&lt;li&gt;Restart Firefox.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;See how quick and painless that was? At any rate you can always go back and delete the same setting that you just created if you start to experience any issues. I have also set the &lt;em&gt;browser.sessionhistory.max_total_viewers&lt;/em&gt; value to 0 because that will prevent Firefox from caching pages for the back button. This is also supposed to free up some memory that gets stolen.
&lt;/p&gt;
	&lt;!-- google_ad_section_end--&gt;
	
	&lt;div class="post-info"&gt;
		&lt;a href="http://tech.cybernetnews.com/2006/03/26/this-may-help-your-firefox-memory-leak/" rel="bookmark" title="Permanent Link: This May Help Your Firefox Memory Leak"&gt;Permalink&lt;/a&gt;	
				&lt;center&gt;


	&lt;/center&gt;
		&lt;br&gt;&lt;br&gt;	
			&lt;p&gt;&lt;b&gt;Additional Reading:&lt;/b&gt;
			&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://tech.cybernetnews.com/2006/04/04/reducing-your-memory-usage-in-firefox/" rel="bookmark" title="Permanent Link: Reducing Your Memory Usage In Firefox"&gt;Reducing Your Memory Usage In Firefox&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://tech.cybernetnews.com/2006/04/08/test-firefox-30-alpha-1-yes-that-says-30/" rel="bookmark" title="Permanent Link: Test Firefox 3.0 Alpha 1 … Yes, That Says 3.0!"&gt;Test Firefox 3.0 Alpha 1 … Yes, That Says 3.0!&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;
		
	&lt;/div&gt;
	&lt;div class="post-footer"&gt;&amp;nbsp;&lt;/div&gt;
									
	
&lt;/DIV&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;div style="margin-bottom: 40px;"&gt;Tags: &lt;a href="http://clipmarks.com/tags/firefox/" rel="tag"&gt;firefox&lt;/a&gt;, &lt;a href="http://clipmarks.com/tags/tips/" rel="tag"&gt;tips&lt;/a&gt;&lt;/div&gt;</description><clipSource>http://tech.cybernetnews.com/2006/03/26/this-may-help-your-firefox-memory-leak/</clipSource><pubDate>Mon, 10 Apr 2006 01:36:46 GMT</pubDate></item><item><title>Parse Technorati-style Tags from HTML</title><link>http://clipmarks.com/clipmark/D8FCD329-C8FA-4590-A971-D9F0299E5477/</link><description>&lt;b&gt;clipped by:&lt;/b&gt; &lt;a href="http://clipmarks.com/clipper/olivier/"&gt;olivier&lt;/a&gt;&lt;br&gt;&lt;b&gt;clipper's remarks:&lt;/b&gt;  Permet de récuperer les tags "à la technorati" qui se trouvent dans du code HTML &lt;br&gt;&lt;div border="2" style="margin-top: 10px; border:#000000 1px solid;" width="90%"&gt;&lt;div style="background-color:"&gt;&lt;div align="center" width="100%" style="padding:4px;margin-bottom:4px;background-color:#666666;overflow:hidden;"&gt;&lt;span style="color:#FFFFFF;font-weight:bold;"&gt;Clip Source: &lt;a style="color:#FFFFFF;" href="http://www.bigbold.com/snippets/posts/show/1758" title="http://www.bigbold.com/snippets/posts/show/1758"&gt;www.bigbold.com&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;H1&gt;Parse Technorati-style Tags from HTML &lt;span class="related"&gt;(&lt;a href="#related"&gt;See related posts&lt;/a&gt;)&lt;/span&gt;&lt;/H1&gt;&lt;/div&gt;&lt;/div&gt;&lt;hr size="2" color="#666666" /&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;DIV class='post-body'&gt;&lt;div&gt;An enhancement to the String class that parses out Technorati-style tags.  Uses Typo's strip_html method to remove img tags and other markup.&lt;/div&gt;&lt;br&gt;&lt;pre&gt;&lt;span class="keyword"&gt;class &lt;/span&gt;&lt;span class="class"&gt;String&lt;/span&gt;
  &lt;span class="comment"&gt;# Strips any html markup from a string&lt;/span&gt;
  &lt;span class="constant"&gt;TYPO_TAG_KEY&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="constant"&gt;TYPO_ATTRIBUTE_KEY&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="regex"&gt;[&lt;span class="escape"&gt;\w&lt;/span&gt;:_-]+&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;
  &lt;span class="constant"&gt;TYPO_ATTRIBUTE_VALUE&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="regex"&gt;(?:[A-Za-z0-9]+|(?:'[^']*?'|"[^"]*?"))&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;
  &lt;span class="constant"&gt;TYPO_ATTRIBUTE&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="regex"&gt;(?:&lt;span class="expr"&gt;#{TYPO_ATTRIBUTE_KEY}&lt;/span&gt;(?:&lt;span class="escape"&gt;\s&lt;/span&gt;*=&lt;span class="escape"&gt;\s&lt;/span&gt;*&lt;span class="expr"&gt;#{TYPO_ATTRIBUTE_VALUE}&lt;/span&gt;)?)&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;
  &lt;span class="constant"&gt;TYPO_ATTRIBUTES&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="regex"&gt;(?:&lt;span class="expr"&gt;#{TYPO_ATTRIBUTE}&lt;/span&gt;(?:&lt;span class="escape"&gt;\s&lt;/span&gt;+&lt;span class="expr"&gt;#{TYPO_ATTRIBUTE}&lt;/span&gt;)*)&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;
  &lt;span class="constant"&gt;TAG&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="punct"&gt;%r{&lt;/span&gt;&lt;span class="regex"&gt;&amp;lt;[!/?&lt;span class="escape"&gt;\[&lt;/span&gt;]?(?:&lt;span class="expr"&gt;#{TYPO_TAG_KEY}&lt;/span&gt;|--)(?:&lt;span class="escape"&gt;\s&lt;/span&gt;+&lt;span class="expr"&gt;#{TYPO_ATTRIBUTES}&lt;/span&gt;)?&lt;span class="escape"&gt;\s&lt;/span&gt;*(?:[!/?&lt;span class="escape"&gt;\]&lt;/span&gt;]+|--)?&amp;gt;&lt;/span&gt;&lt;span class="punct"&gt;}&lt;/span&gt;
  &lt;span class="keyword"&gt;def &lt;/span&gt;&lt;span class="method"&gt;strip_html&lt;/span&gt;
    &lt;span class="constant"&gt;self&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;gsub&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="constant"&gt;TAG&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;&lt;/span&gt;&lt;span class="punct"&gt;').&lt;/span&gt;&lt;span class="ident"&gt;gsub&lt;/span&gt;&lt;span class="punct"&gt;(/&lt;/span&gt;&lt;span class="regex"&gt;&lt;span class="escape"&gt;\s&lt;/span&gt;+&lt;/span&gt;&lt;span class="punct"&gt;/,&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt; &lt;/span&gt;&lt;span class="punct"&gt;').&lt;/span&gt;&lt;span class="ident"&gt;strip&lt;/span&gt;
  &lt;span class="keyword"&gt;end&lt;/span&gt;

  &lt;span class="keyword"&gt;def &lt;/span&gt;&lt;span class="method"&gt;tags&lt;/span&gt;
    &lt;span class="ident"&gt;scan&lt;/span&gt;&lt;span class="punct"&gt;(/&lt;/span&gt;&lt;span class="regex"&gt;&amp;lt;a&lt;span class="escape"&gt;\s&lt;/span&gt;+[^&amp;gt;]*&lt;span class="escape"&gt;\s&lt;/span&gt;*rel=&lt;span class="escape"&gt;\s&lt;/span&gt;*(.?)tag&lt;span class="escape"&gt;\1&lt;/span&gt;[^&amp;gt;]*&amp;gt;(.+?)&amp;lt;&lt;span class="escape"&gt;\/&lt;/span&gt;a&amp;gt;&lt;/span&gt;&lt;span class="punct"&gt;/&lt;/span&gt;&lt;span class="ident"&gt;i&lt;/span&gt;&lt;span class="punct"&gt;).&lt;/span&gt;
    &lt;span class="ident"&gt;map&lt;/span&gt; &lt;span class="punct"&gt;{&lt;/span&gt; &lt;span class="punct"&gt;|&lt;/span&gt;&lt;span class="ident"&gt;match&lt;/span&gt;&lt;span class="punct"&gt;|&lt;/span&gt; &lt;span class="ident"&gt;match&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;last&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;strip_html&lt;/span&gt; &lt;span class="keyword"&gt;rescue&lt;/span&gt; &lt;span class="constant"&gt;nil&lt;/span&gt; &lt;span class="punct"&gt;}.&lt;/span&gt;
    &lt;span class="ident"&gt;compact&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;select&lt;/span&gt; &lt;span class="punct"&gt;{&lt;/span&gt; &lt;span class="punct"&gt;|&lt;/span&gt;&lt;span class="ident"&gt;s&lt;/span&gt;&lt;span class="punct"&gt;|&lt;/span&gt; &lt;span class="punct"&gt;!&lt;/span&gt;&lt;span class="ident"&gt;s&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;strip&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;empty?&lt;/span&gt; &lt;span class="punct"&gt;}&lt;/span&gt;
  &lt;span class="keyword"&gt;end&lt;/span&gt;
&lt;span class="keyword"&gt;end&lt;/span&gt;

&lt;span class="comment"&gt;# Example usage&lt;/span&gt;

&lt;span class="ident"&gt;s&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="punct"&gt;%{&lt;/span&gt;&lt;span class="string"&gt;&amp;lt;a href="http://www.docstrangelove.com/tag/civil-war" rel="tag"&amp;gt;civil war&amp;lt;/a&amp;gt; &amp;lt;a href="http://www.technorati.com/tag/civil+war" rel="tag"&amp;gt;&amp;lt;img src="http://www.docstrangelove.com/wp-content/plugins/UltimateTagWarrior/technoratiicon.jpg" alt="Technorati tag page for civil war"/&amp;gt;&amp;lt;/a&amp;gt; &amp;lt;a href="http://www.docstrangelovecom/tag/iraq" rel="tag"&amp;gt;iraq&amp;lt;/a&amp;gt; &amp;lt;a href="http://www.technorati.com/tag/iraq" rel="tag"&amp;gt;&amp;lt;img src="http://www.docstrangelove.com/wp-content/plugins/UltimateTagWarrior/technoratiicon.jpg" alt="Technorati tag page for iraq"/&amp;gt;&amp;lt;/a&amp;gt;&lt;/span&gt;&lt;span class="punct"&gt;}&lt;/span&gt;

&lt;span class="ident"&gt;s&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;tags&lt;/span&gt;
&lt;span class="comment"&gt;# =&amp;gt; ["civil war", "iraq"]&lt;/span&gt;
&lt;/pre&gt;&lt;/DIV&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;div style="margin-bottom: 40px;"&gt;Tags: &lt;a href="http://clipmarks.com/tags/rails/" rel="tag"&gt;rails&lt;/a&gt;, &lt;a href="http://clipmarks.com/tags/programming/" rel="tag"&gt;programming&lt;/a&gt;, &lt;a href="http://clipmarks.com/tags/tags/" rel="tag"&gt;tags&lt;/a&gt;, &lt;a href="http://clipmarks.com/tags/snippet/" rel="tag"&gt;snippet&lt;/a&gt;&lt;/div&gt;</description><clipSource>http://www.bigbold.com/snippets/posts/show/1758</clipSource><pubDate>Sat, 25 Mar 2006 00:18:03 GMT</pubDate></item><item><title>event:Selectors for Prototype</title><link>http://clipmarks.com/clipmark/70339490-2D24-464D-875A-26BD10B11217/</link><description>&lt;b&gt;clipped by:&lt;/b&gt; &lt;a href="http://clipmarks.com/clipper/olivier/"&gt;olivier&lt;/a&gt;&lt;br&gt;&lt;b&gt;clipper's remarks:&lt;/b&gt;  Prototype integre maintenant un systeme similaire a celui de behaviour pour appliquer des scripts sur des elements CSS &lt;br&gt;&lt;div border="2" style="margin-top: 10px; border:#000000 1px solid;" width="90%"&gt;&lt;div style="background-color:"&gt;&lt;div align="center" width="100%" style="padding:4px;margin-bottom:4px;background-color:#666666;overflow:hidden;"&gt;&lt;span style="color:#FFFFFF;font-weight:bold;"&gt;Clip Source: &lt;a style="color:#FFFFFF;" href="http://ajaxian.com/archives/eventselectors-for-prototype" title="http://ajaxian.com/archives/eventselectors-for-prototype"&gt;ajaxian.com&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding: 10px;"&gt;&lt;div style="text-align:left;"&gt;&lt;DIV class='entry'&gt;

        &lt;p class="date"&gt;Wednesday, March 22nd, 2006&lt;/p&gt;
        &lt;h2 id="post-1012"&gt;&lt;a href="http://ajaxian.com/archives/eventselectors-for-prototype" rel="bookmark" title="Permanent Link to event:Selectors for Prototype"&gt;event:Selectors for Prototype&lt;/a&gt;&lt;/h2&gt;
        &lt;p class="meta"&gt;&lt;/p&gt;
        	&lt;p&gt;
According to &lt;a href="http://mir.aculo.us/articles/2006/03/21/event-selectors-for-prototype"&gt;this post&lt;/a&gt; on the mir.aculou.us website, Justin Palmer has &lt;a href="http://encytemedia.com/event-selectors/"&gt;released event:Selectors&lt;/a&gt;, a "method to cleanly use CSS pseudo selectors to assign DOM events to elements on the page."
&lt;/p&gt;
	&lt;p&gt;
The functionality, bearing resemblance to the &lt;a href="http://bennolan.com/behaviour"&gt;behaviour.js library&lt;/a&gt;, hooks into all of the latest Prototype functionality and adds a few tricks of its own. They provide a code example of how this new functionality can be used:
&lt;/p&gt;
	&lt;div class="syntax_hilite"&gt;
&lt;div id="javascript-1"&gt;
	&lt;div class="javascript"&gt;
&lt;span style="color: rgb(0, 51, 102); font-weight: bold;"&gt;var&lt;/span&gt; Rules = &lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;{&lt;/span&gt;&lt;br&gt;
&amp;nbsp; &lt;span style="color: rgb(51, 102, 204);"&gt;'#icons a:mouseover'&lt;/span&gt;: &lt;span style="color: rgb(0, 51, 102); font-weight: bold;"&gt;function&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;(&lt;/span&gt;element&lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;{&lt;/span&gt;&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: rgb(0, 51, 102); font-weight: bold;"&gt;var&lt;/span&gt; app = element.&lt;span style="color: rgb(0, 102, 0);"&gt;id&lt;/span&gt;;&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: rgb(0, 51, 102); font-weight: bold;"&gt;new&lt;/span&gt; Effect.&lt;span style="color: rgb(0, 102, 0);"&gt;BlindDown&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;(&lt;/span&gt;app + &lt;span style="color: rgb(51, 102, 204);"&gt;'-content'&lt;/span&gt;, &lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;{&lt;/span&gt;queue: &lt;span style="color: rgb(51, 102, 204);"&gt;'end'&lt;/span&gt;, duration: &lt;span style="color: rgb(128, 0, 0);"&gt;0&lt;/span&gt;.&lt;span style="color: rgb(128, 0, 0);"&gt;2&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;}&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;)&lt;/span&gt;;&lt;br&gt;
&amp;nbsp; &amp;nbsp;&lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;}&lt;/span&gt;,
	&lt;p&gt;&amp;nbsp; &amp;nbsp;&lt;span style="color: rgb(51, 102, 204);"&gt;'#icons a:mouseout'&lt;/span&gt;: &lt;span style="color: rgb(0, 51, 102); font-weight: bold;"&gt;function&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;(&lt;/span&gt;element&lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;)&lt;/span&gt; &lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;{&lt;/span&gt;&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: rgb(0, 51, 102); font-weight: bold;"&gt;var&lt;/span&gt; app = element.&lt;span style="color: rgb(0, 102, 0);"&gt;id&lt;/span&gt;;&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: rgb(0, 51, 102); font-weight: bold;"&gt;new&lt;/span&gt; Effect.&lt;span style="color: rgb(0, 102, 0);"&gt;BlindUp&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;(&lt;/span&gt;app + &lt;span style="color: rgb(51, 102, 204);"&gt;'-content'&lt;/span&gt;,&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;{&lt;/span&gt;queue: &lt;span style="color: rgb(51, 102, 204);"&gt;'end'&lt;/span&gt;, duration: &lt;span style="color: rgb(128, 0, 0);"&gt;0&lt;/span&gt;.&lt;span style="color: rgb(128, 0, 0);"&gt;2&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;}&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;)&lt;/span&gt;;&lt;br&gt;
&amp;nbsp; &lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;}&lt;/span&gt;&lt;br&gt;
&lt;span style="color: rgb(0, 102, 0); font-weight: bold;"&gt;}&lt;/span&gt;&lt;br&gt;
&amp;nbsp;&lt;/p&gt;&lt;/div&gt;
	&lt;/div&gt;
&lt;/div&gt;
        
        &lt;div class="feedback"&gt;&lt;/div&gt;
        &lt;p class="commentbar"&gt;
          Posted by &lt;cite&gt;Chris Cornutt&lt;/cite&gt; at 7:59 am&lt;br&gt;
                    &lt;/p&gt;&lt;div class="votio"&gt;&lt;div class="stars"&gt;
&lt;img src="http://ajaxian.com/wp-content/plugins/votio/star1.gif" alt="+" id="star_1012_1" class="star" onmouseover="votio_hover('star_1012',1,4.9)"  ;=""  &gt;&lt;img src="http://ajaxian.com/wp-content/plugins/votio/star1.gif" alt="+" id="star_1012_2" class="star" onmouseover="votio_hover('star_1012',2,4.9)"  ;=""  &gt;&lt;img src="http://ajaxian.com/wp-content/plugins/votio/star1.gif" alt="+" id="star_1012_3" class="star" onmouseover="votio_hover('star_1012',3,4.9)"  ;=""  &gt;&lt;img src="http://ajaxian.com/wp-content/plugins/votio/star1.gif" alt="+" id="star_1012_4" class="star" onmouseover="votio_hover('star_1012',4,4.9)"  ;=""  &gt;&lt;img src="http://ajaxian.com/wp-content/plugins/votio/star0.gif" alt="-" id="star_1012_5" class="star" onmouseover="votio_hover('star_1012',5,4.9)"  ;=""  &gt;&lt;/div&gt;&lt;div class="votes" id="votediv_1012"&gt;4.9 rating from 36 votes&lt;/div&gt;&lt;/div&gt;          &lt;span class="editlink"&gt;&lt;/span&gt;
            
        &lt;!--
        &lt;rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
	    xmlns:dc="http://purl.org/dc/elements/1.1/"
	    xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"&gt;
		&lt;rdf:Description rdf:about="http://ajaxian.com/archives/eventselectors-for-prototype"
    dc:identifier="http://ajaxian.com/archives/eventselectors-for-prototype"
    dc:title="event:Selectors for Prototype"
    trackback:ping="http://ajaxian.com/archives/eventselectors-for-prototype/trackback/" /&gt;
&lt;/rdf:RDF&gt;        --&gt;
      &lt;/DIV&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br&gt;&lt;div style="margin-bottom: 40px;"&gt;Tags: &lt;a href="http://clipmarks.com/tags/ajax/" rel="tag"&gt;ajax&lt;/a&gt;, &lt;a href="http://clipmarks.com/tags/javascript/" rel="tag"&gt;javascript&lt;/a&gt;&lt;/div&gt;</description><clipSource>http://ajaxian.com/archives/eventselectors-for-prototype</clipSource><pubDate>Wed, 22 Mar 2006 18:29:33 GMT</pubDate></item></channel></rss>