<?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>Matt Cutts: Gadgets, Google, and SEO &#187; How to</title>
	<atom:link href="http://www.mattcutts.com/blog/type/how-to/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mattcutts.com/blog</link>
	<description>neat fun stuff</description>
	<lastBuildDate>Tue, 16 Mar 2010 17:08:10 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>How to delete &#8220;nobody&#8221; files from a directory I own in FreeBSD?</title>
		<link>http://www.mattcutts.com/blog/how-to-delete-files-from-a-directory-i-own-in-freebsd/</link>
		<comments>http://www.mattcutts.com/blog/how-to-delete-files-from-a-directory-i-own-in-freebsd/#comments</comments>
		<pubDate>Sat, 13 Sep 2008 23:50:32 +0000</pubDate>
		<dc:creator>Matt Cutts</dc:creator>
				<category><![CDATA[How to]]></category>

		<guid isPermaLink="false">http://www.mattcutts.com/blog/?p=1016</guid>
		<description><![CDATA[Lazyweb, here&#8217;s a quick question for you. On a FreeBSD system, suppose I own a directory called &#8220;foo&#8221;. Inside that &#8220;foo&#8221; directory are some files (file1, file2, file3) owned by the &#8220;nobody&#8221; user. How do I delete those files? When I type the command &#8220;rm file1&#8243; I get the response &#8220;rm: file1: Permission denied&#8221; even [...]]]></description>
			<content:encoded><![CDATA[<p>Lazyweb, here&#8217;s a quick question for you. On a FreeBSD system, suppose I own a directory called &#8220;foo&#8221;. Inside that &#8220;foo&#8221; directory are some files (file1, file2, file3) owned by the &#8220;nobody&#8221; user. <strong>How do I delete those files?</strong> When I type the command &#8220;rm file1&#8243; I get the response &#8220;rm: file1: Permission denied&#8221; even though I own the parent foo directory.</p>
<p>Any suggestions? It&#8217;s on a machine where I don&#8217;t have root access.</p>
<p><strong>Update</strong>: Problem solved, but in an annoying way. The files were created by a PHP script, so I wrote a new PHP script to remove the files in question. It looked something like</p>
<p>&lt;?php<br />
unlink(&#8220;./advanced-cache.php&#8221;);<br />
unlink(&#8220;./wp-cache-config.php&#8221;);<br />
unlink(&#8220;./cache/meta/wp-cache-33c58158f712bca22c3414a8df924c46.meta&#8221;);<br />
unlink(&#8220;./cache/meta/wp-cache-8f9198130973778a72a378ce93042c4b.meta&#8221;);<br />
&#8230;<br />
unlink(&#8220;./cache/meta/wp-cache-a9e95ca4074fc06d9672d81133751b8e.meta&#8221;);<br />
rmdir(&#8220;./cache/meta&#8221;);<br />
?&gt;</p>
<p>This <a href="http://www.jaguarpc.com/forums/archive/index.php/t-3455.html">forum thread from 2001</a> describes the idea (thanks to Mark and the people that commented).</p>
<p>In case you&#8217;re wondering, pair Networks&#8217; FreeBSD systems really don&#8217;t work well with the WordPress &#8220;WP Cache&#8221; or &#8220;WP Super Cache&#8221; plug-ins, because both plugins make files owned by the &#8220;nobody&#8221; user which appear to be <strong>impossible to delete</strong> from the SSH command-line.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mattcutts.com/blog/how-to-delete-files-from-a-directory-i-own-in-freebsd/feed/</wfw:commentRss>
		<slash:comments>38</slash:comments>
		</item>
		<item>
		<title>Three tips for &#8220;company blogging&#8221;</title>
		<link>http://www.mattcutts.com/blog/three-tips-for-startup-bloggers/</link>
		<comments>http://www.mattcutts.com/blog/three-tips-for-startup-bloggers/#comments</comments>
		<pubDate>Mon, 25 Aug 2008 06:08:45 +0000</pubDate>
		<dc:creator>Matt Cutts</dc:creator>
				<category><![CDATA[How to]]></category>
		<category><![CDATA[Weblog/blog]]></category>

		<guid isPermaLink="false">http://www.mattcutts.com/blog/?p=994</guid>
		<description><![CDATA[This is my personal blog. I don&#8217;t run my draft posts by Google&#8217;s PR or legal team, other than maybe 2-3 times when I thought a post might have legal implications. But I have learned a few hard-won lessons. So, when someone recently asked me for tips about talking to the public, I couldn&#8217;t resist. [...]]]></description>
			<content:encoded><![CDATA[<p>This is my personal blog. I don&#8217;t run my draft posts by Google&#8217;s PR or legal team, other than maybe 2-3 times when I thought a post might have <a href="http://www.mattcutts.com/blog/confirming-a-penalty/">legal implications</a>. But I have learned a few hard-won lessons. So, when someone recently asked me for tips about talking to the public, I couldn&#8217;t resist. Whether you blog for the company officially or unofficially, here are my top three rules of thumb:</p>
<ol>
<li><strong>Don&#8217;t make hard promises about the future.</strong> One of the beauties of web-based software and services is you get to decide when to push out changes. Don&#8217;t give up that freedom by promising a feature to the outside world by a certain deadline. Maybe later you&#8217;ll decide that a different feature is a bigger win. Or you may want to hold off for a week to polish down the last rough edges on a product.</li>
<li><strong>Don&#8217;t trash talk a competitor.</strong> Your product should be strong enough that you don&#8217;t have to diss a competing company. Back in 2002, an article in the Boston Herald showed up about another search engine. The article claimed that &#8220;The entire XXXXXXXXX Catalog is updated every 9 to 11 days.&#8221; I knew for a fact that wasn&#8217;t true and at first I wanted to rip that claim to shreds like a bulldog. But (with the advice of some wiser Googlers), I decided to take the high road instead of picking a fight. In fact, claims like that motivated Google to be fresher and faster. Now I believe Google has the freshest index of any of the major web search engines.
<p>Sometimes other companies will throw dirt in your direction. In that case, the challenge is to correct any misperceptions without picking a fight. But first ask yourself: do you really need to respond at all? If not, then maybe it&#8217;s better not to get pulled into an argument where everyone involved loses a little credibility. So far I&#8217;ve written 10-15 draft posts (and who knows how many I&#8217;ve written in my head) where I was snarky about another search engine, and then not published the post. Each time when I look back after a few months, I&#8217;m glad that I didn&#8217;t post.</li>
<li><strong>Don&#8217;t post when you&#8217;re angry.</strong> This is probably the most important tip. If you have to write something, go ahead, but don&#8217;t press publish until you&#8217;ve slept on the situation or had a chance to calm down completely.</li>
</ol>
<p>I&#8217;ve broken each of these rules, and regretted it almost every time. What tips would you suggest when blogging about your company?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mattcutts.com/blog/three-tips-for-startup-bloggers/feed/</wfw:commentRss>
		<slash:comments>84</slash:comments>
		</item>
		<item>
		<title>A Quick Tutorial on JavaScript Bookmarklets</title>
		<link>http://www.mattcutts.com/blog/javascript-bookmarklet-basics/</link>
		<comments>http://www.mattcutts.com/blog/javascript-bookmarklet-basics/#comments</comments>
		<pubDate>Tue, 05 Aug 2008 05:25:57 +0000</pubDate>
		<dc:creator>Matt Cutts</dc:creator>
				<category><![CDATA[How to]]></category>
		<category><![CDATA[Web/Net]]></category>

		<guid isPermaLink="false">http://www.mattcutts.com/blog/?p=1002</guid>
		<description><![CDATA[Bookmarklets are very handy pieces of JavaScript code that you can bookmark. In HTML, if you want a link to open in a new window, you&#8217;d write it like this:
&#60;a href=&#8221;http://www.mattcutts.com/blog/&#8221; target=&#8221;_blank&#8221;&#62;Matt Cutts&#60;/a&#62;
Go on, try it on this link: Matt Cutts
If you wanted to create a bookmarklet to open a new window or tab, you&#8217;d [...]]]></description>
			<content:encoded><![CDATA[<p>Bookmarklets are very handy pieces of JavaScript code that you can bookmark. In HTML, if you want a link to open in a new window, you&#8217;d write it like this:</p>
<p>&lt;a href=&#8221;http://www.mattcutts.com/blog/&#8221; target=&#8221;_blank&#8221;&gt;Matt Cutts&lt;/a&gt;</p>
<p>Go on, try it on this link: <a href="http://www.mattcutts.com/blog/" target="_blank">Matt Cutts</a></p>
<p>If you wanted to create a bookmarklet to open a new window or tab, you&#8217;d do it like this:</p>
<p>javascript:(function(){ window.open(&#8216;http://www.cnn.com/&#8217;); })();</p>
<p>so the actual bookmarklet link that would appear in your HTML as</p>
<p>&lt;a href=&#8221;javascript:(function(){ window.open(&#8216;http://www.cnn.com/&#8217;); })();&#8221;&gt;CNN&lt;/a&gt;</p>
<p>and if you want to play with it, here&#8217;s the trivial <a href="javascript:(function(){ window.open('http://www.cnn.com/'); })();">CNN</a> example bookmarklet. On Firefox, you can drag the bookmarklet to your bookmarks bar. On Internet Explorer, you can right-click and select &#8220;Add to Favorites&#8230;&#8221;.</p>
<p>The reason I mention this is that <a href="http://bit.ly/go">bit.ly</a> is a url shortening service that I like, and they have a bookmarklet, but it replaces the page that you&#8217;re shortening. Their bookmarklet looks like this:</p>
<p>javascript:location.href=&#8217;http://bit.ly/?url=&#8217;+encodeURIComponent(location.href)</p>
<p>So suppose you find a new page that you want to twitter about or shorten the url for some reason. You want a bookmarklet that opens the bit.ly url in a new window or tab instead of replacing the current page. Combining the two bookmarkets, you&#8217;d get</p>
<p>javascript:(function(){ window.open(&#8216;http://bit.ly/?url=&#8217;+encodeURIComponent(location.href)); })();</p>
<p>and here is a bookmarklet for <a href="javascript:(function(){ window.open('http://bit.ly/?url='+encodeURIComponent(location.href)); })();">bit.ly</a> that opens your bit.ly url in a new window or tab. You can just drag the bookmarklet to your bookmarks folder. </p>
<p>That&#8217;s enough to get you started with bookmarklets, but you can <a href="http://subsimple.com/bookmarklets/default.asp">find more info about bookmarklets</a> by searching or by <a href="http://xenomachina.com/2007/03/easier-links-with-google-ajax-search.html">looking</a> <a href="http://www.micropersuasion.com/2008/06/measure-traffic.html">at</a> <a href="http://friendfeed.com/share/bookmarklet">example</a> <a href="http://googlereader.blogspot.com/2008/05/share-anything-anytime-anywhere.html">bookmarklets</a> around the <a href="http://googlesystem.blogspot.com/2007/07/useful-google-bookmarklets.html">web</a>. For example, industrial-strength bookmarklets often load JavaScript dynamically from a webserver. That way if you want to upgrade or improve the functionality of the bookmarklet, you can change the code on the webserver instead of asking every user to update their bookmark. On the other end of the spectrum, some quick-and-dirty bookmarklets don&#8217;t even bother escaping the url.</p>
<p><strong>I want to open a new tab, not a new window!</strong></p>
<p>Some webmasters want to choose between a link opening a new tab vs. a new window. I believe that you don&#8217;t get that choice &#8212; it&#8217;s up to the user and their web browser. For example, in Firefox a user can select their desired behavior under Tools → Options → Tabs → &#8220;New pages should be opened in:&#8221; and choose &#8220;a new tab&#8221;. Or to tweak the setting directly, the user can type &#8220;about:config&#8221; into the location bar/address bar and then modify the &#8220;browser.link.open_newwindow&#8221; option to be one of the following values:</p>
<p>1 = open new windows in the existing window<br />
2 = open new windows in a new window<br />
3 = open new windows in a new tab (this is the default in Firefox 2 and Firefox 3)</p>
<p>See this <a href="http://kb.mozillazine.org/About:config_entries">about:config</a> page for more info.</p>
<p>Likewise in Internet Explorer, the user can go into Tools → Internet Options → &#8220;Settings&#8221; button in the Tabs section and then under &#8220;When a pop-up is encountered:&#8221; choose &#8220;Always open pop-ups in a new tab&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mattcutts.com/blog/javascript-bookmarklet-basics/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
		<item>
		<title>5 Steps to Upgrade From a Hacked iPhone to an iPhone 3G</title>
		<link>http://www.mattcutts.com/blog/upgrade-to-an-iphone-3g/</link>
		<comments>http://www.mattcutts.com/blog/upgrade-to-an-iphone-3g/#comments</comments>
		<pubDate>Tue, 15 Jul 2008 16:51:55 +0000</pubDate>
		<dc:creator>Matt Cutts</dc:creator>
				<category><![CDATA[How to]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://www.mattcutts.com/blog/?p=981</guid>
		<description><![CDATA[I know what you&#8217;re thinking: &#8220;Matt, I hacked my original iPhone. Now I want to share in the iPhone 3G fun, but I&#8217;m worried that something horrible will happen if I upgrade to the iPhone 3G.&#8221;
Buck up, fellow iPhone hacker. I&#8217;ll tell you how to upgrade from your hacked Apple phone and keep all the [...]]]></description>
			<content:encoded><![CDATA[<p>I know what you&#8217;re thinking: &#8220;Matt, I hacked my original iPhone. Now I want to share in the iPhone 3G fun, but I&#8217;m worried that something horrible will happen if I upgrade to the iPhone 3G.&#8221;</p>
<p>Buck up, fellow iPhone hacker. I&#8217;ll tell you how to upgrade from your hacked Apple phone and keep all the settings you love from your original iPhone. The good news is that it&#8217;s not hard and there&#8217;s a set of five steps that will combine the comfort of your old settings with the joy of the new 3G iPhone. I&#8217;ll lead you through the steps.</p>
<p><strong>1. Upgrade iTunes and sync your old hacked iPhone</strong></p>
<p>Upgrade to iTunes 7.7 (or whatever the latest version is). Plug your hacked iPhone into your computer and make sure that you sync. When you sync, a <a href="http://support.apple.com/kb/HT1766">backup of your iPhone&#8217;s settings data</a> is stored in iTunes. Recharge the power in your old hacked iPhone and turn it off. If you want to be ultra-safe, see my post about <a href="http://www.mattcutts.com/blog/hack-your-iphone-back-up-your-data/">how to backup iPhone data</a>.</p>
<p><strong>2. Buy an iPhone 3G</strong></p>
<p>This step is time-consuming, but not hard. Apple has a page for its stores and after 9 p.m. you can <a href="http://www.apple.com/retail/iphone/availability.html">check the Apple iPhone availability</a> to find a store that has the new iPhone 3G. Hint: if there are multiple stores in your area, call each to see which has the shortest wait. When you buy the iPhone 3G, you don&#8217;t need to mention to the salespeople that your previous phone was hacked. Just buy the iPhone 3G and let them activate the phone in the store.</p>
<p><strong>3. Restore the backup of your hacked iPhone to your iPhone 3G</strong></p>
<p>(If you decide to &#8220;start fresh&#8221; with your new iPhone 3G and don&#8217;t want to restore contacts, bookmarks, music, etc. from your old phone, skip this step.)</p>
<p>Resist the temptation to start immediately customizing your iPhone 3G. You&#8217;re just going to override any changes when you restore your old iPhone&#8217;s settings anyway. In particular, make sure you keep the passlock (where you have to type a PIN to unlock your iPhone) off for the time being. Go home and plug your new iPhone 3G into the same computer with iTunes 7.7 where you did a sync on your old iPhone. iTunes will ask if you want to register your iPhone. I registered my iPhone, but I don&#8217;t think it was necessary &#8212; looking back, I think iTunes asked me to register to get permission to send me email offers. Next, iTunes will ask if you want to try 60 days free of MobileMe. I didn&#8217;t want that, so I declined. Only after those two offers did iTunes ask if I wanted to set up the new iPhone 3G as a new phone or restore from a backup. The choice looks like:</p>
<p><img src="http://www.mattcutts.com/images/restore-iphone.png" alt="iTunes offers to restore iPhone" /></p>
<p>Choose to restore from a backup and the last sync of your old hacked iPhone should be offered as a choice. Let iTunes restore the backup data and settings from your hacked iPhone to your new iPhone 3G. Once it&#8217;s done, pretty much everything should be like it was on your hacked iPhone. The iPhone 2.0 firmware adds some new options, so make sure you explore the settings menu and set any new options the way that you want. Also, if your iPhone is configured to fetch email, your email passwords on the new iPhone 3G will be empty. You will need to re-enter your email passwords.</p>
<p>Finally, if you want to use the Apple App Store, you may need to add a credit card or authorize your computer to purchase things, even if you only want to download free applications. I have a personal policy not to put my data where I can&#8217;t get it back out, so I tend to buy MP3s instead of buying music with proprietary Digital Rights Management (DRM) from the Apple Store. As a result, my computer had never been authorized to buy things from the Apple Store. To authorize your computer, in the iTunes program click Store->Authorize Computer&#8230; and enter your Apple ID. Once your computer is authorized, you might need to click Store->Check for Purchases&#8230; if you tried to download an application from the App Store before your computer was authorized.</p>
<p><strong>4. Upgrade your old iPhone to firmware version 2.0</strong></p>
<p>The iPhone running software version 2.0 has been hacked, so there&#8217;s no need to keep running old firmware on your old hacked iPhone. Plug your old hacked iPhone into the computer running iTunes 7.7 and make sure that iTunes is running. Under the &#8220;Devices&#8221; entry on the left hand side of iTunes, when you click on the iPhone device, you should see a screen with a &#8220;Check for Update&#8221; button. Click that button. I was running firmware version 1.1.1 and at first it offered me firmware version 1.1.4. So I exited iTunes, restarted iTunes, and clicked &#8220;Check for Update&#8221; again. Then it offered me firmware version 2.0. Click to install firmware version 2.0 on the old hacked iPhone.</p>
<p><strong>5. Erase the settings and data on your old iPhone</strong></p>
<p>One nice thing about the iPhone&#8217;s firmware version 2.0 is that it adds a &#8220;secure wipe&#8221; that attempts to erase all data completely from your iPhone. That means you can sell the old iPhone or give it to a friend without worrying about all those crazy pictures you took, the 1-900 numbers in your contacts, the <a href="http://www.slate.com/id/2183399/">SMS messages that reveal things you want to keep private</a>, etc. Here&#8217;s how to erase everything on your old iPhone. Eject the phone in iTunes, disconnect the phone from the computer, then press Settings, then General, then Reset, then Erase All Content and Settings, then Erase iPhone. You may have to confirm a couple times that yes, you really want to wipe your iPhone. The process takes about an hour, so I connected my iPhone to a cable that was plugged into a power outlet to ensure that the iPhone wouldn&#8217;t run out of power in the middle of wiping it.</p>
<p>When the iPhone is finished erasing itself, it&#8217;s suitable for giving to a family member or selling on eBay or whatever.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mattcutts.com/blog/upgrade-to-an-iphone-3g/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>How to stop junk mail</title>
		<link>http://www.mattcutts.com/blog/stop-junk-mail/</link>
		<comments>http://www.mattcutts.com/blog/stop-junk-mail/#comments</comments>
		<pubDate>Wed, 02 Jul 2008 17:40:13 +0000</pubDate>
		<dc:creator>Matt Cutts</dc:creator>
				<category><![CDATA[How to]]></category>
		<category><![CDATA[Productivity]]></category>

		<guid isPermaLink="false">http://www.mattcutts.com/blog/?p=973</guid>
		<description><![CDATA[I&#8217;ve been learning how to stop receiving junk mail, and I thought I&#8217;d share what I&#8217;ve learned.
Reducing Junk Mail
There are several services that will help you reduce your junk mail:
- GreenDimes offers a free basic service, but I decided to do their $20 one-time fee because it offered a few extra things I wanted. GreenDimes [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been learning how to stop receiving junk mail, and I thought I&#8217;d share what I&#8217;ve learned.</p>
<p><strong>Reducing Junk Mail</strong></p>
<p>There are several services that will help you reduce your junk mail:</p>
<p>- <a href="http://www.greendimes.com/">GreenDimes</a> offers a free basic service, but I decided to do their $20 one-time fee because it offered a few extra things I wanted. GreenDimes walks you through some easy steps that will reduce unsolicited mail, and also lets you decline catalogs. Each time you receive an unwanted catalog, you go to GreenDimes and type the name of the catalog in. GreenDimes takes care of removing you from that catalog&#8217;s mailing list. I&#8217;ve been quite happy with this service, especially since it&#8217;s a one-time fee.</p>
<p>- <a href="http://proquo.com/">ProQuo</a> is a free junk-mail reduction service. In the future, they intend to make money when consumers opt-in to request offers; ProQuo will make money from those advertisers. I tried this service today. It lets you stop many services with just a couple mouse clicks per service, but for about 50% of the marketers (maybe 10-15 of them) you have to print and send a letter or leave to an external website to complete a form. It&#8217;s still better than nothing though, because even if you&#8217;re lazy you can opt out of a lot of junk mail with just your mouse for free. Overall, the service is free, easy, and helps you opt out of a wide variety of lists.</p>
<p>- <a href="http://www.catalogchoice.org/">Catalog Choice</a> is a site solely for opting out of catalogs. It doesn&#8217;t tackle things like credit card offers, PennySaver, or list brokers, but the site is clean with a really nice user interface. One of the founders, Daniel Katz, has been <a href="http://www.pbs.org/moyers/journal/11162007/transcript4.html">interviewed by Bill Moyers</a>, so I trust that they&#8217;re a legit organization, even though their WHOIS information is private and there&#8217;s very little information about the group on their site. It sounds like three different environmental groups formed Catalog Choice as a non-profit. One piece of advice for Catalog Choice: please give a little more information about yourselves (e.g. history, founders, press) so that people can easily see that you&#8217;re legitimate.</p>
<p>- <a href="http://www.41pounds.org/">41pounds.org</a> charges $41 for five years of service. The name comes from the fact that they claim to block 41 pounds of junk mail per year for you. I haven&#8217;t tried this service.</p>
<p><strong>Contacting services directly</strong></p>
<p>- You can visit the webpage of the Direct Marketing Association (DMA) to opt-out online so that you don&#8217;t receive mail from companies that use DMA lists. The pretty url <a href="http://www.dmaconsumers.org/cgi/offmailinglist">http://www.dmaconsumers.org/cgi/offmailinglist</a> takes you to the url <a href="https://www.dmachoice.org/MPS/proto1.php">https://www.dmachoice.org/MPS/proto1.php</a> where you want to select option #3 (&#8220;Remove your name from DMA Member Prospect Lists&#8221;). You will have to provide a valid credit card number, but your credit card will not be charged.</p>
<p>- You can <a href="http://www.advo.com/consumersupport.html">opt out of ADVO</a> online.</p>
<p><strong>Other options</strong></p>
<p>- While you&#8217;re at it, why not place yourself on the &#8220;Do not call&#8221; list at <a href="https://www.donotcall.gov/">www.donotcall.gov</a> to prevent most telemarketers from calling you? All you need to give is your phone number and an email address, and you will be permanently opted out. <a href="http://www.fcc.gov/cgb/consumerfacts/tcpa.html">Read more about the do-not-call list</a> if you&#8217;re interested.</p>
<p>All these actions won&#8217;t eliminate junk mail completely, but it will prevent a lot of the junk from showing up in your mailbox. These aren&#8217;t affiliate links, just stuff that I think people will find handy. Good luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mattcutts.com/blog/stop-junk-mail/feed/</wfw:commentRss>
		<slash:comments>59</slash:comments>
		</item>
		<item>
		<title>Protect yourself: get a free credit report</title>
		<link>http://www.mattcutts.com/blog/free-credit-report/</link>
		<comments>http://www.mattcutts.com/blog/free-credit-report/#comments</comments>
		<pubDate>Tue, 01 Jul 2008 16:05:20 +0000</pubDate>
		<dc:creator>Matt Cutts</dc:creator>
				<category><![CDATA[How to]]></category>
		<category><![CDATA[Productivity]]></category>

		<guid isPermaLink="false">http://www.mattcutts.com/blog/?p=972</guid>
		<description><![CDATA[I wanted to write down 3-4 easy steps to protect yourself from identity theft and help you check your free annual credit reports.
Credit check options
- If you haven&#8217;t checked your credit in the last year, visit the official site that lets you get a free credit report from each of the three major credit bureaus. [...]]]></description>
			<content:encoded><![CDATA[<p>I wanted to write down 3-4 easy steps to protect yourself from identity theft and help you check your free annual credit reports.</p>
<p><strong>Credit check options</strong></p>
<p>- If you haven&#8217;t checked your credit in the last year, visit the official site that lets you get a free credit report from each of the three major credit bureaus. The site is <a href="http://www.annualcreditreport.com/">annualcreditreport.com</a> and you&#8217;ll have to be on the lookout for upsells like &#8220;Find out your credit score for $5.95&#8243; or &#8220;Sign up for a credit monitoring service.&#8221; But this option is a safe and free way to get access to your credit report from Experian, TransUnion, and Equifax.</p>
<p>- Suppose you don&#8217;t want credit card companies sending you offers by snail mail. After all, a thief could steal the offer from your mailbox and use it to open a credit card in your name. Again, there&#8217;s a free, official service from the three major credit bureaus to stop getting &#8220;free credit cards&#8221; offer by postal mail. The site is <a href="http://www.optoutprescreen.com">www.optoutprescreen.com</a>. You can opt-out online for five years, or print out and mail a piece of paper to do a permanent opt-out.</p>
<p>- If you had any type of open credit account between 1987 and May 28, 2008 (which is probably most adults in the United States), you can receive nine months of free credit monitoring. TransUnion, one of the big three credit unions, is settling a class action lawsuit and provides this monitoring for free if you sign up before September 24, 2008. The official site is <a href="https://www.listclassaction.com/">www.listclassaction.com</a> and you can choose from several options. I chose the nine month credit monitoring service.</p>
<p>If you think you might have been a victim of identity theft or are at higher risk for identity theft (e.g. someone stole a laptop that might have had personal information on it), you have a couple options. A <a href="http://www.fightidentitytheft.com/flag.html">fraud alert</a> requests that before a new lender opens up an account, they take extra steps to verify your identity like calling you on the phone. It should be free if you call the credit bureaus, but it only lasts for 90 days, so you would need to renew the fraud alert every three months.</p>
<p>Meanwhile, a <a href="http://www.fightidentitytheft.com/credit-freeze-laws-national.html">credit freeze</a> is just what it sounds like. It freezes your credit record completely, so that identity thieves should not be able to open new credit accounts in your name. A credit freeze costs $10 per credit bureau each time you want to freeze or un-freeze your credit record.</p>
<p>I used the first three websites earlier to get my free credit report, opt out of getting more credit card offers, and sign up to for a credit monitoring service. Again, all of these are free or official sites; I don&#8217;t get any money for recommending them. <img src='http://www.mattcutts.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Other options</strong></p>
<p>If you&#8217;re feeling ambitious, you can also get a public records report on yourself to see what turns up. I believe you can get this report free once a year as well from ChoicePoint. You can get more <a href="http://www.choicepoint.com/consumer/all_products.html">information here</a> but I believe the short answer is that you need to print, fill out, and mail this <a href="http://www.choicetrust.com/pdfs/CD107_CP-File-Disclosure-Request-Form_pg-3.pdf">one-page form</a> (PDF link). You need to include a photocopy of your driver&#8217;s license or other ID and a copy of a utility/phone/credit card bill &#8212; see the <a href="http://www.choicetrust.com/pdfs/CD107_CP-File-Disclosure-Request-Form_pg-1.pdf">instructions for the form</a> (PDF link) for more info.</p>
<p>Do you know of other ways to protect yourself from identity theft or otherwise monitor your credit record or score?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mattcutts.com/blog/free-credit-report/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
		<item>
		<title>Download, slice and dice podcasts on Linux</title>
		<link>http://www.mattcutts.com/blog/download-podcasts-on-linux/</link>
		<comments>http://www.mattcutts.com/blog/download-podcasts-on-linux/#comments</comments>
		<pubDate>Fri, 21 Mar 2008 04:56:42 +0000</pubDate>
		<dc:creator>Matt Cutts</dc:creator>
				<category><![CDATA[How to]]></category>
		<category><![CDATA[Linux/Ubuntu]]></category>
		<category><![CDATA[Music]]></category>

		<guid isPermaLink="false">http://www.mattcutts.com/blog/download-podcasts-on-linux/</guid>
		<description><![CDATA[I&#8217;m trying to replace my Windows applications with Linux applications. On Windows, I use I use Juice to download podcasts as MP3s. Recently I decided to switch over to Linux for receiving podcasts. After looking around at various podcast catchers (especially ones that ran on the command-line, so that I could automate them with a [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m trying to replace my Windows applications with Linux applications. On Windows, I use <a href="http://www.mattcutts.com/blog/review-juice/">I use Juice</a> to download podcasts as MP3s. Recently I decided to switch over to Linux for receiving podcasts. After looking around at various podcast catchers (especially ones that ran on the command-line, so that I could automate them with a cron job), I ran across <a href="http://podracer.sourceforge.net/">Podracer</a>. I decided to combine Podracer with a script to split long MP3s into shorter MP3s so that I could play them more easily in my car. Here&#8217;s what I did on my Ubuntu Linux machine:</p>
<p><strong>Step 1: Install and configure podracer</strong></p>
<p>I used these commands:<br />
sudo apt-get install podracer<br />
mkdir ~/.podracer<br />
vim ~/.podracer/subscriptions<br />
and add the url of a podcast, e.g. <a href="http://feeds.webmasterradio.fm/tdsc">http://feeds.webmasterradio.fm/tdsc</a> for <a href="http://dailysearchcast.com/">The Daily SearchCast</a>.</p>
<p>cp /etc/podracer.conf ~/.podracer/podracer.conf<br />
Edit ~/.podracer/podracer.conf so that you can pick the download directory you want. I changed<br />
#poddir=$HOME/podcasts/$(date +%Y-%m-%d)<br />
to<br />
poddir=$HOME/rawpodcasts<br />
because I want all my podcasts in one directory where I can do a batch process over them afterwards. Go ahead and run &#8220;mkdir ~/rawpodcasts&#8221; to create the directory that podcasts will be stored in.</p>
<p>sudo vim /usr/bin/podracer<br />
(it&#8217;s okay, Podracer is a shell script). Find the line that says<br />
m3u=$(date +%Y-%m-%d)-podcasts.m3u<br />
and comment it out so that podracer won&#8217;t automatically create an .m3u playlist as it downloads podcasts.</p>
<p>Run podracer in &#8220;catchup&#8221; mode to avoid downloading all the old podcasts from your subscriptions with &#8220;podracer -c&#8221;. podracer will create a file ~/.podracer/podcast.log to keep a record of all the podcasts that have been downloaded (the &#8220;-c&#8221; catchup mode creates this text file without actually downloading the MP3s). If you want to re-download a file (e.g. while you&#8217;re testing your configuration), you can edit the file ~/.podracer/podcast.log and just delete the line for any MP3 you want to re-download.</p>
<p><strong>Step 2: Install and configure mp3splt (optional)</strong></p>
<p>At a terminal window, type &#8220;sudo apt-get install mp3splt&#8221;. In Step 1, we configured Podracer to download podcasts as MP3s into a &#8220;rawpodcasts&#8221; directory. In this step, we&#8217;re going to take those long MP3s and split them into individual segments into a new &#8220;finishedpodcasts&#8221; directory. Make the &#8220;finishedpodcasts&#8221; directory with the command &#8220;mkdir ~/finishedpodcasts&#8221;.</p>
<p>Make a file /home/<em>username</em>/download-mp3s-and-process.sh that looks like this.</p>
<blockquote><p>#!/bin/bash</p>
<p># Run podracer to download any new podcasts<br />
/usr/bin/podracer</p>
<p># Now split the podcasts into segments<br />
for i in /home/<em>username</em>/rawpodcasts/*.mp3<br />
do<br />
  nicename=`basename $i .mp3`<br />
  # Send both stderr and stdout to /dev/null so that this is a quiet cron job<br />
  mp3splt -eqd /home/<em>username</em>/finishedpodcasts -o $nicename-@n $i &&gt; /dev/null<br />
done
</p></blockquote>
<p>This script will run podracer to download any new podcasts. Then we list all the MP3 files in the rawpodcasts directory and run mp3splt on each podcast. If you had a file test.mp3, you would be running the command</p>
<p>&#8220;mp3splt -eqd /home/matt/finishedpodcasts -o test-@n test.mp3 &&gt; /dev/null&#8221;</p>
<p>for example. What do the options to mp3splt mean?</p>
<p>-e means &#8220;split on sync errors.&#8221; If someone created an mp3 by concatenating multiple mp3s (e.g. with a program such as mp3wrap), that could cause sync errors. mp3splt looks at those sync errors to split the concatenated mp3 back into multiple mp3 files.</p>
<p>-q stands for &#8220;quiet.&#8221; Don&#8217;t ask user to respond to any questions. Normally &#8220;-e&#8221; says something like </p>
<blockquote><p>Mp3Splt 2.1 (2004/Sep/28) by Matteo Trotta <matteo .trotta@lib.unimib.it><br />
THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!<br />
MPEG 1 Layer 3 &#8211; 44100 Hz &#8211; Joint Stereo &#8211; 256 Kb/s &#8211; Total time: 35m.04s<br />
Processing file to detect possible split points, please wait&#8230;<br />
Total tracks found: 6<br />
Is this a reasonable number of tracks for this file? (y/n)<br />
</matteo></p></blockquote>
<p>Quiet mode suppresses this interactive question on the last two lines above.</p>
<p>-d is the directory to place the split mp3s.</p>
<p>-o lets you specific an output file. &#8220;@n&#8221; stands for the track number after splitting. So if test.mp3 were made out of two mp3 files, the output of the command above would be two files (in the finishedpodcasts directory) named test.mp3-001.mp3 and test.mp3-002.mp3 . It doesn&#8217;t hurt to run mp3splt on existing mp3s because it will just overwrite any old files that had been created.</p>
<p><strong>Step 3: Periodically download and process podcasts</strong></p>
<p>To download podcast files periodically and process them, make a crontab entry for podracer or your script. This will make the cron daemon run your script every few hours to download new mp3s.</p>
<p>I typed &#8220;crontab -e&#8221; and made the file look like this:</p>
<blockquote><p>
# At 3:03 am, 8:03 am, 10:03 am, 12:03 pm, and 4:03 pm, run this script<br />
3 3,8,10,12,16 * * * /home/<em>username</em>/download-mp3s-and-process.sh
</p></blockquote>
<p>Whenever you&#8217;re ready to put the podcasts on some type of media (SD Card, iPod, iPhone, whatever), just copy over anything from the finishedpodcasts directory (if you used mp3splt in step 2) or the rawpodcasts directory if you skipped step 2. Then delete anything left over in either directory.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mattcutts.com/blog/download-podcasts-on-linux/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
		</item>
		<item>
		<title>How to back up your Gmail on Linux in four easy steps</title>
		<link>http://www.mattcutts.com/blog/backup-gmail-in-linux-with-getmail/</link>
		<comments>http://www.mattcutts.com/blog/backup-gmail-in-linux-with-getmail/#comments</comments>
		<pubDate>Tue, 11 Mar 2008 07:31:17 +0000</pubDate>
		<dc:creator>Matt Cutts</dc:creator>
				<category><![CDATA[Gadgets/Hack]]></category>
		<category><![CDATA[Google/SEO]]></category>
		<category><![CDATA[How to]]></category>
		<category><![CDATA[Linux/Ubuntu]]></category>
		<category><![CDATA[Productivity]]></category>

		<guid isPermaLink="false">http://www.mattcutts.com/blog/backup-gmail-in-linux-with-getmail/</guid>
		<description><![CDATA[I really like Gmail, but I also like having backups of my data just in case. Here&#8217;s how to use a simple program called getmail on Unix to backup your Gmail or Google Apps email. We&#8217;ll break this into four steps.
 
Step 0: Why getmail?
If you browse around on the web, you&#8217;ll find several options [...]]]></description>
			<content:encoded><![CDATA[<p>I really like Gmail, but I also like having backups of my data just in case. Here&#8217;s how to use a simple program called <a href="http://pyropus.ca/software/getmail/">getmail</a> on Unix to backup your Gmail or Google Apps email. We&#8217;ll break this into four steps.</p>
<p><img src="http://www.mattcutts.com/images/gmail-glass.png" alt="Gmail image" /> </p>
<p><strong>Step 0: Why getmail?</strong></p>
<p>If you browse around on the web, you&#8217;ll find several options to help you download and backup your email. Here are a few:</p>
<ul>
<li>If you use Windows, you can <a href="http://mail.google.com/support/bin/answer.py?answer=38343">back up your email using Thunderbird</a> or you can <a href="http://mail.google.com/support/bin/answer.py?answer=77661">use Outlook to backup your email</a>.</li>
<li>If you run Mac OS X (Leopard), you can <a href="http://mail.google.com/support/bin/answer.py?answer=13275">back up your Gmail using Apple Mail</a>. For the rest of this post, I&#8217;ll assume you&#8217;re running a flavor of Linux such as Ubuntu.</li>
<li>If you need a ton of flexible power or run your own mail server, <a href="http://fetchmail.berlios.de/">fetchmail</a> could be a good choice.</li>
<li>If you want something really fast, <a href="http://open.nit.ca/wiki/index.php?page=RetchMail">retchmail</a> might fit your needs.</li>
<li>If you want a nice mix of simple configuration and flexibility, I really recommend a Python program called <a href="http://pyropus.ca/software/getmail/">getmail</a>. That&#8217;s what we&#8217;ll be using in this post.</li>
</ul>
<p><strong>Step 1: Install getmail</strong></p>
<p>On Ubuntu 7.10 (Gutsy Gibbon), you would type</p>
<blockquote><p>sudo apt-get install getmail4</p></blockquote>
<p>at a terminal window. Hey, that wasn&#8217;t so bad, right? If you use a different flavor of Linux, you can download getmail and install it with a few commands like this:</p>
<blockquote><p>
cd /tmp<br />
[Note: wget the tarball download link found at <a href="http://pyropus.ca/software/getmail/#download">http://pyropus.ca/software/getmail/#download</a> ]<br />
tar xzvf getmail*.tar.gz<br />
cd (the directory that was created)<br />
sudo python setup.py install
</p></blockquote>
<p><strong>Step 2: Configure Gmail and getmail</strong></p>
<p>First, <a href="http://mail.google.com/support/bin/answer.py?hl=en&#038;answer=13273">turn on POP in your Gmail account</a>. Because you want a copy of all your mail, I recommend that you choose the &#8220;Enable POP for all mail&#8221; option. On the &#8220;When messages are accessed with POP&#8221; option, I would choose &#8220;Keep Gmail&#8217;s copy in the Inbox&#8221; so that Gmail still keeps your email after you back up your email.</p>
<p>For this example, let&#8217;s assume that your username is bob@gmail.com and your password is bobpassword. Let&#8217;s also assume that you want to back up your email into a directory called gmail-archive and that your home directory is located at /home/bob/.</p>
<p>I have to describe a little about how mail is stored in Unix. There are a couple well-known methods to store email: mbox and Maildir. When mail is stored in mbox format, all your mail is concatenated together in one huge file. In the Maildir format, each email is stored in a separate file. Needless to say, each method has different strengths and weaknesses. For the time being, let&#8217;s assume that you want your email in one big file (the mbox format) and work through an example.</p>
<p><font color="blue">Example with mbox format</font></p>
<p>- Make a directory called &#8220;.getmail&#8221; in your home directory with the command &#8220;mkdir ~/.getmail&#8221;. This directory will store your configuration data and the debugging logs that getmail generates.<br />
- Make a directory called gmail-archive with the command &#8220;mkdir ~/gmail-archive&#8221;. This directory will store your email.<br />
- Make a file ~/.getmail/getmail.gmail and put the following text in it:</p>
<blockquote><p>
[retriever]<br />
type = SimplePOP3SSLRetriever<br />
server = pop.gmail.com<br />
username = <em>bob</em>@gmail.com<br />
password = <em>bobpassword</em></p>
<p>[destination]<br />
type = Mboxrd<br />
path = ~/gmail-archive/gmail-backup.mbox</p>
<p>[options]<br />
# print messages about each action (verbose = 2)<br />
# Other options:<br />
# 0 prints only warnings and errors<br />
# 1 prints messages about retrieving and deleting messages only<br />
verbose = 2<br />
message_log = ~/.getmail/gmail.log
</p></blockquote>
<p>- <strong>Added</strong>: Run the command &#8220;touch ~/gmail-archive/gmail-backup.mbox&#8221; . If you change the path in the file above, touch whatever filename you used. This command creates an empty file that getmail can then append to.</p>
<p>The file format should be pretty self-explanatory. You&#8217;re telling getmail to fetch your email from pop.gmail.com via a POP3 connection over SSL (which prevents people from seeing your email as it passes between Gmail and your computer). The [destination] section tells where to save your email, and in what format. The &#8220;Mboxrd&#8221; is a flavor of the mbox format &#8212; read this page on <a href="http://qmail.org/man/man5/mbox.html">mbox formats</a> if you&#8217;re really interested. Finally, we set options so that getmail generates a verbose log file that will help in case there are any snags.</p>
<p><font color="blue">Example with Maildir format</font></p>
<p>Suppose you prefer Maildir instead? You&#8217;d still run &#8220;mkdir ~/.getmail&#8221; and &#8220;mkdir ~/gmail-archive&#8221;. But the <a href="http://qmail.org/man/man5/maildir.html">Maildir format</a> uses three directories (tmp, new, and cur). We need to make those directories, so type &#8220;mkdir ~/gmail-archive/tmp ~/gmail-archive/new ~/gmail-archive/cur&#8221; as well. In addition, change the [destination] section to say</p>
<blockquote><p>
[destination]<br />
type = Maildir<br />
path = ~/gmail-archive/
</p></blockquote>
<p>Otherwise your configuration file is the same.</p>
<p><strong>Step 3: Run getmail</strong></p>
<p>The good news is that step 2 was the hard part. Run getmail with a command like &#8220;getmail -r /home/<em>bob</em>/.getmail/getmail.gmail&#8221; (use the path to the config file that you made in Step 2). With any luck, you&#8217;ll see something like</p>
<blockquote><p>
getmail version 4.6.5<br />
Copyright (C) 1998-2006 Charles Cazabon.  Licensed under the GNU GPL version 2.<br />
SimplePOP3SSLRetriever:<em>bob</em>@gmail.com@pop.gmail.com:995:<br />
  msg  1/99 (7619 bytes) from &lt;info@example.com&gt; delivered to Mboxrd /home/<em>bob</em>/gmail-archive/gmail-backup.mbox<br />
  msg  2/99 (6634 bytes) from &lt;sales@example.com&gt; delivered to Mboxrd /home/<em>bob</em>/gmail-archive/gmail-backup.mbox<br />
&#8230;<br />
  99 messages retrieved, 0 skipped<br />
Summary:<br />
Retrieved 99 messages from SimplePOP3SSLRetriever:<em>bob</em>@gmail.com@pop.gmail.com:995
</p></blockquote>
<p>Hooray! It works! But wait &#8212; I have over 99 messages, you say. Why did it only download 99 messages? The short answer is that Gmail will only let you down a few hundred emails at a time. You can repeat the command (let getmail finish each time before you run it again) until all of your email is downloaded.</p>
<p><strong>Step 4: Download new email automatically</strong></p>
<p>A backup is a snapshot of your email at one point in time, but it&#8217;s even better if you download and save new email automatically. (This step will also come in handy if you have a ton of Gmail and don&#8217;t want to run the command from Step 3 over and over again for hours to download all your mail.)</p>
<p>We&#8217;re going to make a simple cron job that runs periodically to download new email and preserve it. First, make a very short file called /home/<em>bob</em>/fetch-email.sh and put the following text in the file:</p>
<blockquote><p>
#!/bin/bash<br />
# Note: -q means fetch quietly so that this program is silent<br />
/usr/bin/getmail -q -r /home/<em>bob</em>/.getmail/getmail.gmail
</p></blockquote>
<p>Make sure that the file is readable/executable with the command &#8220;chmod u+rx /home/<em>bob</em>/fetch-email.sh&#8221;. If you want to make sure the program works, run the command &#8220;/home/<em>bob</em>/fetch-email.sh&#8221;. The program should execute without generating any output, but if there&#8217;s new email waiting for you it will be downloaded. This script needs to be silent or else you&#8217;ll get warnings when you run the script using cron.</p>
<p>Now type the command &#8220;crontab -e&#8221; and add the following entry to your crontab:</p>
<blockquote><p>
# Every 10 minutes (at 7 minutes past the hour), fetch my email<br />
7,17,27,37,47,57 * * * * /home/<em>bob</em>/fetch-email.sh
</p></blockquote>
<p>This crontab entry tells cron &#8220;Every 10 minutes, run the script fetch-email.sh&#8221;. If you wanted to check less often (maybe once an hour), change &#8220;7,17,27,37,47,57&#8243; to &#8220;7&#8243; and the cron job will run at 7 minutes after every hour. That&#8217;s it &#8212; you&#8217;re done! Enjoy the feeling of having a Gmail backup in case your net connection goes down.</p>
<p><strong>Bonus info: Back up in both mail formats at once!</strong></p>
<p>As I mentioned, mbox and Maildir have different advantages. The mbox format is convenient because you only need to keep track of one file, but editing/deleting email from that huge file is a pain. And when one program is trying to write new email while another program is trying to edit the file, things can sometimes go wrong unless both programs are careful. Maildir is more robust, but it chews through <a href="http://en.wikipedia.org/wiki/Inode">inodes</a> because each email is a separate file. It also can be harder to process Maildir files with regular Unix command-line tools, just because there are so many email files.</p>
<p>Why not archive your email in both formats just to be safe? The getmail program can easily support this. Just change your [destination] information to look like this:</p>
<blockquote><p>
[destination]<br />
type = MultiDestination<br />
destinations = (&#8216;[mboxrd-destination]&#8216;, &#8216;[maildir-destination]&#8216;)</p>
<p>[mboxrd-destination]<br />
type = Mboxrd<br />
path = ~/gmail-archive/gmail-backup.mbox</p>
<p>[maildir-destination]<br />
type = Maildir<br />
path = ~/gmail-archive/
</p></blockquote>
<p>Note that you&#8217;ll still have to run all the &#8220;mkdir&#8221; commands to make the &#8220;gmail-archive&#8221; directory, as well as the tmp, new, and cur directories under the gmail-archive directory.</p>
<p><strong>Bonus reading!</strong></p>
<p>What, you&#8217;re still here? Okay, if you&#8217;re still reading, here&#8217;s a few pointers you might be interested in:<br />
- The main getmail site includes a page with lots of <a href="http://pyropus.ca/software/getmail/getmailrc-examples">getmail examples</a> of configuration files. The <a href="http://pyropus.ca/software/getmail/">getmail</a> website has a ton of great documentation, too. Major props to Charles Cazabon for his getmail program.<br />
- This write-up from about a year ago covers <a href="http://georgedonnelly.com/15">how to back up Gmail</a> as well.<br />
- The author of getmail seems to hang out quite a bit on this <a href="http://news.gmane.org/gmane.mail.getmail.user">getmail mailing list</a>. See the main site for directions on signing up for the list.<br />
- If you&#8217;re interested in a more powerful setup (e.g. using Gmail + getmail + procmail), this is a <a href="http://www.linuxforums.org/misc/gmail_on_your_linux_box.html">useful page</a>.<br />
- For the truly sadistic, learn the difference between a Mail User Agent (MUA) and a Mail Transfer Agent (MTA) and <a href="http://wiki.mutt.org/?MailConcept">how email really gets delivered</a> in Unix.<br />
- I&#8217;ve been meaning to write all this down for months. Jeff Atwood&#8217;s <a href="http://www.codinghorror.com/blog/archives/001072.html">recent post</a> finally pushed me over the edge. Jeff describes a program that offers to &#8220;archive your Gmail&#8221; for $29.95, but when you give the program your username/password it secretly mails your username/password to the program&#8217;s creator. That&#8217;s pretty much pure evil in my book. And the G-Archiver program isn&#8217;t even needed! Because Gmail will export your email for free using POP or IMAP, it&#8217;s not hard to archive your Gmail. So I wrote up how I back up my Gmail in case it helps anyone else. Enjoy!</p>
<p><strong>Added March 16, 2008</strong>: Several people have added helpful comments. One of my favorites led me to a post by commenter <a href="http://dengpeng.name/blog/">Peng</a> about how to <a href="http://dengpeng.name/blog/2008/03/17/backup-gmail-via-imap-using-getmail/">back up Gmail with IMAP using getmail</a>. Peng describes how to back up the email by label as well. He mentions that you could use the search &#8220;after:2007/1/1 before:2007/3/31&#8243; and assign the label FY07Q1 to the search results, for example. Then you can back up that single label/mailbox by making the getmail config file look like this:</p>
<blockquote><p>[retriever]<br />
type = SimpleIMAPSSLRetriever<br />
server = imap.gmail.com<br />
username = username<br />
password = password<br />
mailboxes = (&#8220;FY07Q1&#8243;,)</p>
<p>[destination]<br />
type = Mboxrd<br />
path = ~/.getmail/gmail-backup-FY07Q1.mbox
</p></blockquote>
<p>Peng also mentions a nice bonus: since you&#8217;re backing up via IMAP instead of POP, there&#8217;s no download limit. That means that you don&#8217;t have to run the getmail program repeatedly. Thanks for mentioning that <a href="http://dengpeng.name/blog/">Peng</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mattcutts.com/blog/backup-gmail-in-linux-with-getmail/feed/</wfw:commentRss>
		<slash:comments>52</slash:comments>
		</item>
		<item>
		<title>An easy way to add new features to Google</title>
		<link>http://www.mattcutts.com/blog/adding-new-features-to-google/</link>
		<comments>http://www.mattcutts.com/blog/adding-new-features-to-google/#comments</comments>
		<pubDate>Tue, 26 Feb 2008 06:25:43 +0000</pubDate>
		<dc:creator>Matt Cutts</dc:creator>
				<category><![CDATA[Google/SEO]]></category>
		<category><![CDATA[How to]]></category>

		<guid isPermaLink="false">http://www.mattcutts.com/blog/adding-new-features-to-google/</guid>
		<description><![CDATA[Have you ever wanted to add a new feature to Google&#8217;s search results? There&#8217;s a really nice way to do it right now. If you&#8217;re not familiar with this functionality, it&#8217;s called a Subscribed Link, and it lets you &#8220;create custom search results that users can add to their Google search pages. You can display [...]]]></description>
			<content:encoded><![CDATA[<p>Have you ever wanted to add a new feature to Google&#8217;s search results? There&#8217;s a really nice way to do it right now. If you&#8217;re not familiar with this functionality, it&#8217;s called a <a href="http://www.google.com/coop/subscribedlinks/">Subscribed Link</a>, and it lets you &#8220;create custom search results that users can add to their Google search pages. You can display links to your services for your customers, provide news and status information updated in near-real-time, answer questions, calculate useful quantities, and more.&#8221; That page has a whole list of different ways to add new features to Google&#8217;s search results:</p>
<blockquote><p>
    * Create search results specific to your product, service, or expertise.<br />
    * Design a basic version in minutes to see how it works.<br />
    * Build a dynamic version using XML, TSV, or RSS files or feeds.<br />
    * Include images in your Subscribed Links.<br />
    * Include Google Gadgets in your Subscribed Links.<br />
    * Test your Subscribed Links interactively and get debugging messages.<br />
    * Define query patterns using lists of keywords or regular expressions.<br />
    * Invoke the calculator to help construct your results.
</p></blockquote>
<p>I like that Google provides an open system to add functionality to our search results. If this sounds interesting to you, check out this <a href="http://googlesystem.blogspot.com/2007/12/subscribe-to-custom-search-results.html">blog post</a> by Google OS (an unofficial blog), read through the <a href="http://www.google.com/coop/docs/guide_subscribed_links.html">subscribed links developer guide</a>, or check out the <a href="http://www.google.com/coop/docs/subscribedlinks/faq.html">Subscribed link FAQ</a>.</p>
<p>Let&#8217;s walk through an example. I often need to know what my IP address is. Usually I go to Google, search for [ip address], and click on one of the top results. That works okay, but I discovered that there&#8217;s an even easier way. Go to <a href="http://www.google.com/coop/profile?user=008782217800324848333">this page</a> and click on the &#8220;Subscribe&#8221; button.</p>
<p>Now when you go to Google and type a query like [my ip], you&#8217;ll see the answer right in your search results, like this:</p>
<p><img src="http://www.mattcutts.com/images/find-my-ip-address.png" alt="Find my ip address" /></p>
<p>I painted out my actual IP address, but you get the idea. Now if only <a href="http://aruljohn.com/">aruljohn.com</a> would add the query [ip address] to the list of queries that triggers a subscribed link, that will let me be lazy and continue doing the query that I&#8217;m used to. <img src='http://www.mattcutts.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>If you&#8217;d like to add some new functionality to Google, why not <a href="http://www.google.com/coop/subscribedlinks/">try it for yourself</a> today? I made a simple subscribed link that looks like this:</p>
<p><img src="http://www.mattcutts.com/images/subscribed-link.png" alt="Example subscribed link" /></p>
<p>in about a minute. It looks like you can make a subscribed link out of feeds very quickly. It looks like you can even add your own <a href="http://www.google.com/coop/docs/subscribedlinks/ui.html">flexible gadget</a> to Google&#8217;s search results, and it looks like this:</p>
<p><img src="http://www.mattcutts.com/images/ui-gadget.png" alt="Example gadget in search results" /></p>
<p>By the way, I originally wrote this post a little while ago focusing on how to find out your IP address with a specific subscribed link. After Yahoo announced their <a href="http://www.ysearchblog.com/archives/000523.html">&#8220;SearchMonkey&#8221; project</a> tonight (congrats to the Yahoo folks!), I figured I&#8217;d add in some details about Google&#8217;s <a href="http://www.google.com/coop/subscribedlinks/">Subscribed Links</a> and how to make a rich snippet result using Subscribed Links.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mattcutts.com/blog/adding-new-features-to-google/feed/</wfw:commentRss>
		<slash:comments>54</slash:comments>
		</item>
		<item>
		<title>How to use Google&#8217;s calculator: convert to hexadecimal, binary, and decimal</title>
		<link>http://www.mattcutts.com/blog/easy-tip-to-convert-hex-to-decimal/</link>
		<comments>http://www.mattcutts.com/blog/easy-tip-to-convert-hex-to-decimal/#comments</comments>
		<pubDate>Mon, 11 Feb 2008 06:21:51 +0000</pubDate>
		<dc:creator>Matt Cutts</dc:creator>
				<category><![CDATA[Google/SEO]]></category>
		<category><![CDATA[How to]]></category>
		<category><![CDATA[Productivity]]></category>

		<guid isPermaLink="false">http://www.mattcutts.com/blog/easy-tip-to-convert-hex-to-decimal/</guid>
		<description><![CDATA[One of Google&#8217;s goals is that you should be able to throw just about anything into a search box (package tracking numbers, airline flight numbers, etc.) and Google will try to do something reasonable, such as return the status of a flight. Recently I was trying to reverse engineer a USB protocol and needed to [...]]]></description>
			<content:encoded><![CDATA[<p>One of Google&#8217;s goals is that you should be able to throw just about anything into a search box (<a href="http://www.google.com/help/features.html#number">package tracking numbers</a>, <a href="http://www.google.com/help/features.html#travel">airline flight numbers</a>, etc.) and Google will try to do something reasonable, such as return the status of a flight. Recently I was trying to reverse engineer a USB protocol and needed to convert some numbers between base 16 (hexadecimal) and base 10 (decimal). On a hunch, I threw the conversion into a Google search box. Sure enough, it worked fine.</p>
<p>Converting hexadecimal to decimal with a search query like [<a href="http://www.google.com/search?q=0x607a+in+decimal">0x607a in decimal</a>]:</p>
<p><img src="http://www.mattcutts.com/images/convert-hex-to-base-10.png" alt="Convert hex to base10" /></p>
<p>Convert decimal to hexadecimal with a Google query like [<a href="http://www.google.com/search?q=1854+in+hex">1854 in hex</a>]:</p>
<p><img src="http://www.mattcutts.com/images/convert-decimal-to-hex.png" alt="Convert decimal to base 16" /></p>
<p>You can even convert hexadecimal to binary with a query like [<a href="http://www.google.com/search?q=0x770+in+binary">0x770 in binary</a>]:</p>
<p><img src="http://www.mattcutts.com/images/convert-base-16-to-base-2.png" alt="Convert base16 to base2" /></p>
<p>Of course, you can also use alternate queries like [<a href="http://www.google.com/search?q=convert+0x770+to+base+2">convert 0x770 to base 2</a>]. Pretty handy.</p>
<p><strong>Bonus tip</strong>: did you know that you can do currency conversion too? Just type something like [<a href="http://www.google.com/search?q=one+dollar+in+yuan">one dollar in yuan</a>]:</p>
<p><img src="http://www.mattcutts.com/images/convert-currency.png" alt="Convert my currency" /></p>
<p>If you have favorite tips for searches, leave them in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mattcutts.com/blog/easy-tip-to-convert-hex-to-decimal/feed/</wfw:commentRss>
		<slash:comments>55</slash:comments>
		</item>
	</channel>
</rss>
