<?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; Gadgets/Hack</title>
	<atom:link href="http://www.mattcutts.com/blog/type/gadgetshack/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>Finding the best cell phone carrier</title>
		<link>http://www.mattcutts.com/blog/map-cell-phone-strength/</link>
		<comments>http://www.mattcutts.com/blog/map-cell-phone-strength/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 15:20:35 +0000</pubDate>
		<dc:creator>Matt Cutts</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Gadgets/Hack]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://www.mattcutts.com/blog/?p=3624</guid>
		<description><![CDATA[Okay, someone tell me if this device exists (or build it!). I want a device where I can pay $10-15 to get a gadget in the mail. The gadget would sit in my pocket for a week wherever I go. The device would record cell phone signal strength for each of the four major U.S. [...]]]></description>
			<content:encoded><![CDATA[<p>Okay, someone tell me if this device exists (or build it!). I want a device where I can pay $10-15 to get a gadget in the mail. The gadget would sit in my pocket for a week wherever I go. The device would record cell phone signal strength for each of the four major U.S. carriers every few seconds. After a week or so, the device would deliver the verdict on which cell phone carrier would have the strongest signal for me. Then I could mail the device back so someone else could use it &#8212; sort of a Netflix-like model to temporarily borrow this device.</p>
<p>At any point, I could go to a web page to view a map of where I&#8217;d been. The page would show a &#8220;heat map&#8221; of signal strength for each carrier or frequency band. Maybe I could also slice/dice by time or see the total number of readings in each location. I&#8217;m pretty sure you could rig this up out of 2-3 cell phones running Android in the worst case.</p>
<p>So far, I&#8217;ve found:</p>
<p><strong>Android</strong></p>
<p>- <a href="http://sites.google.com/site/androiddevelopmentproject/home/rf-signal-tracker">RF Signal Tracker</a> is a nice app to collect and map signal strength data. It looks like it can upload to <a href="http://www.opencellid.org/">OpenCellID</a>, which is a project to create an open database of cell IDs (numbers that correspond to cells).<br />
- <a href="http://www.panix.com/~mpoly/android/antennas/r1.0/">Antennas</a> is a pretty cool free app to show you nearby antennas and signal strength. It can even export some data in KML for use with Google Maps/Earth, but it doesn&#8217;t seem to make a heat map that could be easily grokked.<br />
- <a href="http://www.sensorly.com/">Sensorly</a> has a free Android app, but they seem to want you to pay to zoom in closer than city level. I&#8217;m willing to do that, but didn&#8217;t see the for-pay addon in the Android Market.</p>
<p><strong>iPhone</strong></p>
<p>- I also found an <a href="http://www.sudobility.com/Signals.html">iPhone app called Signals</a> that will continuously collect signal data and upload it.<br />
- AT&#038;T offers an iPhone app called <a href="http://www.wired.com/gadgetlab/2009/12/iphone-app-reports-dropped-calls-poor-voice-quality-to-att/">Mark the Spot</a> to report dropped calls, no coverage, etc. I have to admit that I don&#8217;t understand why this is manual though. Personally, I&#8217;d want my phone to ping my carrier with its location every time the phone dropped a call.</p>
<p><strong>Web</strong></p>
<p>- <a href="http://www.signalmap.com/">SignalMap</a> is a website to (manually!) submit the number of bars for a location. It doesn&#8217;t appear to have any mobile app to back it up. Likewise, <a href="http://www.deadcellzones.com/">Dead Cell Zones</a> and <a href="http://www.gotreception.com/">Got Reception?</a> appear to rely on manual reports. I don&#8217;t think manual reports is the best way to tackle cell phone coverage maps though &#8212; you really want an app for this.<br />
- <a href="http://www.cellreception.com/">http://www.cellreception.com/</a> has the standard manual reports data, but also will map the location of cell phone towers based on the location of cell phone towers registered with the FCC.<br />
- <a href="http://www.rootwireless.com/">Root Wireless</a> powers the <a href="http://reviews.cnet.com/cell-phone-coverage-map/">cell phone signal strength maps</a> that CNET uses, but I didn&#8217;t see any apps I could download or install on a phone. I registered to be a beta tester a long time ago, but no one ever contacted me.</p>
<p>That&#8217;s what I could find. <strong>Do you know of any good Android (or iPhone) programs to collect, map, or upload cell phone strength measurements?</strong> If so, let me know in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mattcutts.com/blog/map-cell-phone-strength/feed/</wfw:commentRss>
		<slash:comments>42</slash:comments>
		</item>
		<item>
		<title>30 Day checkin: book challenge</title>
		<link>http://www.mattcutts.com/blog/30-day-checkin-book-challenge/</link>
		<comments>http://www.mattcutts.com/blog/30-day-checkin-book-challenge/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 06:23:49 +0000</pubDate>
		<dc:creator>Matt Cutts</dc:creator>
				<category><![CDATA[30 days]]></category>
		<category><![CDATA[Gadgets/Hack]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.mattcutts.com/blog/?p=3032</guid>
		<description><![CDATA[So how did I do on the &#8220;15 books in 30 days&#8221; challenge? Not too badly&#8211;I made it through 12 books. I could probably have squeezed in three more books, but I&#8217;d rather take my time and enjoy books than artificially force things for a deadline. I&#8217;ll make up those last three books later.  [...]]]></description>
			<content:encoded><![CDATA[<p>So how did I do on the <a href="http://www.mattcutts.com/blog/30-day-reports/">&#8220;15 books in 30 days&#8221;</a> challenge? Not too badly&#8211;I made it through 12 books. I could probably have squeezed in three more books, but I&#8217;d rather take my time and enjoy books than artificially force things for a deadline. I&#8217;ll make up those last three books later. <img src='http://www.mattcutts.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>This month is really busy with some internal Google projects&#8211;don&#8217;t worry, not related to webspam&#8211;so I&#8217;m not planning to do a new 30 day challenge this month. I have kept biking in to work and I&#8217;m enjoying it more lately. I think I&#8217;ll enjoy biking even more after I bling my bike out with the full-color LED lights I bought from <a href="http://www.monkeylectric.com/">MonkeyLectric</a> at <a href="http://www.makerfaire.com/">Maker Faire</a>. Here&#8217;s an image from MonkeyLectric&#8217;s gallery to show you what they look like:</p>
<p><center><img src="http://www.mattcutts.com/images/monkeylectric.jpg" alt="MonkeyLectric LED Bike lights" /></center></p>
<p>I have to say, they&#8217;re a big step up from my <a href="http://www.tireflys.com/bicycle.html">Tireflys</a>, which are just LEDs that stick on the stem valve of your bike tire.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mattcutts.com/blog/30-day-checkin-book-challenge/feed/</wfw:commentRss>
		<slash:comments>35</slash:comments>
		</item>
		<item>
		<title>Hidden Google Gem: My Tracks</title>
		<link>http://www.mattcutts.com/blog/hidden-google-gem-my-tracks/</link>
		<comments>http://www.mattcutts.com/blog/hidden-google-gem-my-tracks/#comments</comments>
		<pubDate>Fri, 28 Aug 2009 05:57:49 +0000</pubDate>
		<dc:creator>Matt Cutts</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[Gadgets/Hack]]></category>
		<category><![CDATA[Google/SEO]]></category>

		<guid isPermaLink="false">http://www.mattcutts.com/blog/?p=2987</guid>
		<description><![CDATA[I&#8217;ve really enjoyed making videos for webmasters. In the most recent recording session, we decided that it would be fun to talk about some of the &#8220;hidden gems&#8221; of Google: features, products, or tips that you might not know about, but you might like.
One of my favorite hidden Google gems is a program for Android [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve really enjoyed making videos for webmasters. In the most recent recording session, we decided that it would be fun to talk about some of the &#8220;hidden gems&#8221; of Google: features, products, or tips that you might not know about, but you might like.</p>
<p>One of my favorite hidden Google gems is a program for Android phones called <a href="http://mytracks.appspot.com/">My Tracks</a>. I like it enough that we made a short video about it. Enjoy!</p>
<p><center><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/OEsVDUdzloE&#038;hl=en&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/OEsVDUdzloE&#038;hl=en&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object></center></p>
<p>As always, you can watch more videos on the official <a href="http://www.youtube.com/user/GoogleWebmasterHelp">webmaster video channel</a> on YouTube.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mattcutts.com/blog/hidden-google-gem-my-tracks/feed/</wfw:commentRss>
		<slash:comments>46</slash:comments>
		</item>
		<item>
		<title>My review of the iPhone 3GS</title>
		<link>http://www.mattcutts.com/blog/iphone-3gs-review/</link>
		<comments>http://www.mattcutts.com/blog/iphone-3gs-review/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 04:22:57 +0000</pubDate>
		<dc:creator>Matt Cutts</dc:creator>
				<category><![CDATA[Gadgets/Hack]]></category>
		<category><![CDATA[iPhone]]></category>

		<guid isPermaLink="false">http://www.mattcutts.com/blog/?p=2712</guid>
		<description><![CDATA[Disclaimer: This post is entirely my personal opinion. I also own an HTC T-Mobile G1, which runs Google&#8217;s Android operating system.
I picked up the new iPhone 3G S this Friday and I thought I&#8217;d jot down a few thoughts:
The Good:
- The iPhone 3GS is considerably faster than the iPhone 3G. Especially in the browser, you&#8217;ll [...]]]></description>
			<content:encoded><![CDATA[<p><em>Disclaimer: This post is entirely my personal opinion. I also own an <a href="http://www.htc.com/www/product/g1/overview.html">HTC T-Mobile G1</a>, which runs Google&#8217;s Android operating system.</em></p>
<p>I picked up the new iPhone 3G S this Friday and I thought I&#8217;d jot down a few thoughts:</p>
<p><strong>The Good:</strong><br />
- The iPhone 3GS is <strong>considerably faster</strong> than the iPhone 3G. Especially in the browser, you&#8217;ll notice pages render faster. JavaScript-heavy pages (such as the mobile web version of Gmail) execute much more smoothly. The iPhone 3GS feels less like an underpowered mobile phone and more like a powerful pocket computer that can keep up with its owner.<br />
- The built-in video camera is very cool. I expect a corresponding spike in home videos. For example, here&#8217;s my cat Ozzie playing with a toy:</p>
<p><center><object width="640" height="505"><param name="movie" value="http://www.youtube.com/v/cMcKgfbMm3k&#038;hl=en&#038;fs=1&#038;"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/cMcKgfbMm3k&#038;hl=en&#038;fs=1&#038;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="505"></embed></object></center></p>
<p>More seriously, within about five years, for any group of 10 or more people, at least a few will have a video camera built into their phone. That&#8217;s a very <a href="http://www.youtube.com/results?search_type=&#038;search_query=iran+election&#038;aq=f">powerful trend</a> in a lot of ways.<br />
- I tend to <a href="http://www.techcrunch.com/2009/06/20/flip-has-little-chance-in-an-iphone-world/">agree with Michael Arrington</a> that no one with an iPhone 3GS needs a Flip video camera now. Cisco bought Pure Digital Technologies, the makers of the Flip, for <a href="http://news.cnet.com/8301-1023_3-10199960-93.html">almost $600 million dollars</a> about three months ago. That might prove to be good timing on Pure Digital&#8217;s part.<br />
- Lots of small changes in OS 3.0 are quite nice, such as showing outgoing vs. incoming calls in the &#8220;Recents&#8221; list.</p>
<p><strong>The Bad:</strong><br />
- Apple&#8217;s iPhone philosophy has always seemed to me to be about simplicity. The single button forced a constrained elegance on the iPhone&#8217;s interface. In providing some newer features, the iPhone 3G S feels less like an iPhone and more like someone shoveled in a lot of features. I didn&#8217;t really need copy/paste, and it seems to pop up at random inconvenient times: double-tap a word if you&#8217;re not in the browser; in the browser, hold your finger on some text. Except the copy handles don&#8217;t seem to show up on the web pages I want, and sometimes unwanted copy handles appear when I&#8217;m just scrolling with my finger.<br />
- The iPhone 3GS is not the huge leap that the iPhone or the iPhone->iPhone 3G was. I do think that leaves some opportunities for Android, Palm, and other competitors.<br />
- Battery life has been worse so far for me. I&#8217;ve been using the phone more and it&#8217;s only been a few days, so I&#8217;m not going to jump to conclusions on this yet. Apple also recommends that you let the phone <a href="http://www.apple.com/batteries/iphone.html">run down completely at least once a month</a>, and I haven&#8217;t done that yet. I expect that battery life will be better for most people.<br />
- Not a great name; the &#8220;GS&#8221; part makes me think of <a href="http://www.ghostscript.com/">Ghostscript</a>. A few days ago, I would have said that the &#8220;iPhone Video&#8221; is a much better name, but it&#8217;s true that the speed bump is more noticeable than the video. I still think Apple could have come up with a better name than &#8220;iPhone 3G S&#8221; though. I&#8217;m sure someone who knows about Mercedes Benz cars knows the difference between the E class, the SLK class, or the GL 420 CDI, but most normal people don&#8217;t know what a bunch of letters and numbers mean.</p>
<p><strong>The Ugly:</strong><br />
- On my previous iPhone (the 3G), the metal band around the front matched smoothly with the black plastic back. On the new iPhone 3GS, I can feel the seam where the band meets the plastic. On the front of the phone, when I flick my finger off the glass, I can feel the seam of the metal band there too.<br />
- In my personal opinion, someone miscalculated in charging iPhone 3G owners $200 extra to upgrade. New iPhone 3G S customers pay $199 (16GB) or $299 (32GB); many early adopters would have to pay $399 (16GB) or $499 (32GB) to upgrade. The CPU speed bump and video abilities aren&#8217;t enough to counteract what many early adopters will perceive as a bit of a slap in the face. Last year, the line for the iPhone 3G at Valley Fair stretched outside the building most of the day. When I went to get my iPhone 3G S on the release day at Valley Fair this year, there was no line at all.</p>
<p>And remember that early adopters often give their previous phones to family members. In my case, two other relatives are taking our older iPhone 3G phones and moving from a different carrier to AT&#038;T. By charging early adopters more, AT&#038;T ensures that more people will hang on to their old phones instead giving them to other people, many of whom would then become AT&#038;T/iPhone customers. By limiting the &#8220;trickle down&#8221; effect as older iPhones go to family members, AT&#038;T is missing a chance to gain more marketshare by acquiring additional new customers.</p>
<p>I&#8217;ll be interested to see how Apple and AT&#038;T react. AT&#038;T has already allowed some (but not all) iPhone 3G owners to upgrade without paying an &#8220;early adopter penalty.&#8221; And Apple can move quickly and decisively when needed&#8211;remember the $200 iPhone price drop in 2007 just a short time after the iPhone was released? Of course, it&#8217;s possible that penalizing early adopters is all part of some four-dimensional chess game that Apple is playing. If Apple decides to terminate its exclusive U.S. deal with AT&#038;T in a year or so, maybe it didn&#8217;t want a bunch of people signing up for two-year contracts this time around? Right now I&#8217;m puzzled by what appears to me to be a misstep, but the folks at Apple are smart, so I&#8217;d be willing to believe that Apple has good reasons for what they&#8217;re doing.</p>
<p>Should you upgrade? That&#8217;s something only you can answer. If you still have a non-smartphone or an original iPhone, it&#8217;s probably worth it. If you have an iPhone 3G (especially if you&#8217;re not eligible for the discounted upgrade yet), you might try OS 3.0 and see if that&#8217;s enough. I decided to get the 3G S and I&#8217;m glad that I did. I fill all sorts of idle moments with surfing, <a href="http://twitter.com/mattcutts">tweeting</a>, and checking my mail. The iPhone 3G S makes all those activities much faster and more pleasurable. Overall I&#8217;m quite happy with my iPhone 3G S.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mattcutts.com/blog/iphone-3gs-review/feed/</wfw:commentRss>
		<slash:comments>76</slash:comments>
		</item>
		<item>
		<title>Android barcode scanner in 6 lines of Python code</title>
		<link>http://www.mattcutts.com/blog/android-barcode-scanner/</link>
		<comments>http://www.mattcutts.com/blog/android-barcode-scanner/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 21:53:24 +0000</pubDate>
		<dc:creator>Matt Cutts</dc:creator>
				<category><![CDATA[Gadgets/Hack]]></category>

		<guid isPermaLink="false">http://www.mattcutts.com/blog/?p=2620</guid>
		<description><![CDATA[After my last video about using a barcode scanner to add and search books in your library, I was feeling pretty happy. Bar code scanners are pretty cheap&#8211;mine cost about $65. But then Google released the Android Scripting Environment (ASE) and it turns out that you don&#8217;t even need a bar code scanner. Instead, you [...]]]></description>
			<content:encoded><![CDATA[<p>After my last video about <a href="http://www.mattcutts.com/blog/scan-and-search-books/">using a barcode scanner to add and search books in your library</a>, I was feeling pretty happy. Bar code scanners are pretty cheap&#8211;mine cost about $65. But then <a href="http://google-opensource.blogspot.com/2009/06/introducing-android-scripting.html">Google released the Android Scripting Environment (ASE)</a> and it turns out that you don&#8217;t even need a bar code scanner. Instead, you can use an Android phone such as the G1.</p>
<p>Just as a proof-of-concept, here&#8217;s a barcode scanner written in six lines of Python code:</p>
<p>import android<br />
droid = android.Android()<br />
code = droid.scanBarcode()<br />
isbn = int(code['result']['SCAN_RESULT'])<br />
url = &#8220;http://books.google.com?q=%d&#8221; % isbn<br />
droid.startActivity(&#8216;android.intent.action.VIEW&#8217;, url)</p>
<p>Thanks to fellow Googler Vijayakrishna Griddaluru for sending me this sample code. Visiting the resulting url offers the option to add that book to your library:</p>
<p><center><img src="http://www.mattcutts.com/images/android-barcode-scanner.png" alt="Android bar code scanner" /></center></p>
<p>Pretty easy, huh? You can <a href="http://code.google.com/p/android-scripting/">read all about the new scripting environment</a>. Not only can you scan bar codes, <strong>you can use text-to-speech, make phone calls, send text messages, read sensor data, and find your location&#8211;all from easy scripts</strong>. One person wrote a script to go into silent mode when the phone is placed screen-down on the table. It took less than 20 lines of code, and that&#8217;s including comments!</p>
<p>The Android Scripting Environment should make fun projects even easier. Brad Fitzpatrick wrote about using his <a href="http://brad.livejournal.com/2394707.html">Android phone to open his garage door automatically</a> when his motorcycle gets close to home. Now those sorts of projects are even easier to write. <img src='http://www.mattcutts.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.mattcutts.com/blog/android-barcode-scanner/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
		<item>
		<title>Search your bookshelf with a $65 barcode scanner</title>
		<link>http://www.mattcutts.com/blog/scan-and-search-books/</link>
		<comments>http://www.mattcutts.com/blog/scan-and-search-books/#comments</comments>
		<pubDate>Sun, 07 Jun 2009 18:53:43 +0000</pubDate>
		<dc:creator>Matt Cutts</dc:creator>
				<category><![CDATA[Gadgets/Hack]]></category>

		<guid isPermaLink="false">http://www.mattcutts.com/blog/?p=2602</guid>
		<description><![CDATA[(Okay, if TechCrunch wrote about my video then I should probably at least do a blog post too.)
Last year I suggested potential Summer of Code projects and one of my favorite suggestions was &#8220;How about a good open-source program to manage your book library? Something like the Delicious Library program, but that works with Linux?&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>(Okay, if <a href="http://www.techcrunch.com/2009/06/07/scan-your-books-and-search-them-on-google/">TechCrunch wrote about my video</a> then I should probably at least do a blog post too.)</p>
<p>Last year I <a href="http://www.mattcutts.com/blog/summer-of-code-2008-21-potential-projects/">suggested potential Summer of Code projects</a> and one of my favorite suggestions was &#8220;How about a good open-source program to manage your book library? Something like the <a href="http://www.delicious-monster.com/">Delicious Library</a> program, but that works with Linux?&#8221; In the blog comments, <a href="http://www.colehour.com/">Colin Colehour</a> left an <a href="http://www.mattcutts.com/blog/summer-of-code-2008-21-potential-projects/#comment-123820">excellent comment</a>: &#8220;Matt, Can’t you use Google Books to keep track of your book library at home? You can add books that you own to the ‘my library’ list and then export that as an xml file and they have RSS feeds.&#8221;</p>
<p>The suggestion was so obvious that I smacked my head. Why install software at all when a website will store the data for you? The only problem was how to tell Google which books I own. Well, there&#8217;s a neat hack for this too: Amazon carries the <a href="http://www.amazon.com/Contact-Barcode-Scanner-Rugged-Design/dp/B000GGTTC8/">Adesso NuScan 1000 bar code scanner</a> for $65.44 with free shipping. I&#8217;m sure you can get barcode scanners for cheaper (anyone remember the <a href="http://en.wikipedia.org/wiki/CueCat">CueCat scanner</a> that was free?), but the Adesso had good reviews.</p>
<p>With that, adding your books to Google&#8217;s <a href="http://books.google.com/googlebooks/mylibrary/">My Library</a> feature is simplicity itself&#8211;the Google Books team has tweaked the workflow so that you can barcode scan and add lots of books very quickly. Here&#8217;s the video to demonstrate:</p>
<p><center><object width="640" height="385"><param name="movie" value="http://www.youtube.com/v/Q95ywcuGuTM&#038;hl=en&#038;fs=1&#038;hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/Q95ywcuGuTM&#038;hl=en&#038;fs=1&#038;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed></object></center></p>
<p>Why would you record which books you own in the first place? The immediate reason is that you can run full-text searches against the books in your library. That&#8217;s right: <strong>just by scanning bar codes, you can search over the text of books you own</strong>. Down the road, I can easily imagine other uses. Wouldn&#8217;t it be great if you could upload your list of books to Amazon, and it would automatically suggest other books you should read? Or avoid suggesting books that you already own? <a href="http://news.cnet.com/8301-17939_109-10258575-2.html">Josh Lowensohn mentions</a> another great reason to do this: it creates a record for insurance purposes.</p>
<p>Once you have your book list, there are social networks for book lovers such as <a href="http://www.goodreads.com/">Goodreads</a> and <a href="http://www.librarything.com/">LibraryThing</a>. And please note: this isn&#8217;t the only way to scan your books. <a href="http://www.delicious-monster.com/">Delicious Library 2</a> is $40 commercial software for the Mac that can use your Mac&#8217;s built-in webcam.</p>
<p>Special thanks to <a href="http://wysz.com/">Michael &#8216;Wysz&#8217; Wyszomierski</a> for recording and producing this video. I love that he showed the computer&#8217;s screen and showed an &#8220;action shot&#8221; of scanning the books.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mattcutts.com/blog/scan-and-search-books/feed/</wfw:commentRss>
		<slash:comments>41</slash:comments>
		</item>
		<item>
		<title>Use a Wii Balance Board with Linux</title>
		<link>http://www.mattcutts.com/blog/linux-wii-balanceboard/</link>
		<comments>http://www.mattcutts.com/blog/linux-wii-balanceboard/#comments</comments>
		<pubDate>Fri, 22 May 2009 18:22:13 +0000</pubDate>
		<dc:creator>Matt Cutts</dc:creator>
				<category><![CDATA[Gadgets/Hack]]></category>

		<guid isPermaLink="false">http://www.mattcutts.com/blog/?p=1836</guid>
		<description><![CDATA[In this post you&#8217;ll learn how to make a working Bluetooth weight sensor + fast real-time graphical display with about 200 lines of Python code. You can code any Nintendo Wii-like video game for Ubuntu/Linux and the Nintendo Balance Board very easily. Here&#8217;s a video demonstration:

This post assumes that you can already communicate with a [...]]]></description>
			<content:encoded><![CDATA[<p>In this post you&#8217;ll learn how to make a working Bluetooth weight sensor + fast real-time graphical display with about 200 lines of Python code. You can code any Nintendo Wii-like video game for Ubuntu/Linux and the Nintendo Balance Board very easily. Here&#8217;s a video demonstration:</p>
<p><object width="700" height="421"><param name="movie" value="http://www.youtube.com/v/t4UciZLl2Hk&#038;hl=en&#038;fs=1&#038;hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/t4UciZLl2Hk&#038;hl=en&#038;fs=1&#038;hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="700" height="421"></embed></object></p>
<p>This post assumes that you can already <a href="http://www.mattcutts.com/blog/linux-wiimote-via-bluetooth/">communicate with a Wiimote on Linux</a>. See my earlier post  if you haven&#8217;t done that.</p>
<p>You&#8217;ll need Subversion and autoconf installed if you haven&#8217;t already installed it. I think the <a href="http://abstrakraft.org/cwiid/ticket/45">official/full list of packages</a> to install is</p>
<blockquote><p>
sudo apt-get install autoconf autogen automake gcc bluetooth libbluetooth2-dev libgtk2.0-dev pkg-config python2.5-dev flex bison subversion
</p></blockquote>
<p>You must also install the development package for <a href="http://www.bluez.org/">BlueZ</a>, which is the official Linux Bluetooth protocol stack:</p>
<blockquote><p>
sudo apt-get install libbluetooth-dev
</p></blockquote>
<p>Make a directory to hold your code:</p>
<blockquote><p>mkdir ~/wiibalance<br />
cd ~/wiibalance</p></blockquote>
<p>Check out the <a href="http://abstrakraft.org/cwiid/">CWiid</a> (get it? CWiid? Seaweed?) library using Subversion:</p>
<blockquote><p>svn co http://abstrakraft.org/cwiid/svn/</p></blockquote>
<p>When I checked CWiid out, it was up to version 183.</p>
<p>Compile the library, e.g. </p>
<blockquote><p>
cd ~/wiibalance/svn/trunk<br />
autoconf<br />
<code>./configure --libdir=/usr/lib</code> (according to <a href="http://abstrakraft.org/cwiid/ticket/45">this page</a>, you need the libdir parameter on Ubuntu)<br />
make<br />
sudo make install
</p></blockquote>
<p>Now apply the patch to CWiid to add the Balance board. Go to <a href="http://abstrakraft.org/cwiid/ticket/63">http://abstrakraft.org/cwiid/ticket/63</a>, click on balance.diff, then at the bottom of the resulting page, click on &#8220;Original Format&#8221; to download the diff as a raw text file. Do the same to download the &#8220;weighdemo.py&#8221; file. Now apply the balance.diff patch:</p>
<blockquote><p>
<code>patch --dry-run -b -p0 &lt; balance.diff</code> <strong>(this command tests that everything would apply without errors)</strong><br />
patch -b -p0 &lt; balance.diff
</p></blockquote>
<p>Finally, compile the code and install it:</p>
<blockquote><p>
make<br />
sudo make install
</p></blockquote>
<p>Then you can play with the weighdemo.py script. You&#8217;ll want to change the line &#8220;sys.path.insert(0, &#8216;/home/tbble/code/cwiid/svn/cwiid/python/build/lib.linux-x86<br />
_64-2.5/&#8217;)&#8221; to point to the right place on your system, e.g. /home/<em>youraccountname</em>/wiibalance/svn/trunk/python/build/lib.linux-i686-2.5/ . And you may need to disable the &#8220;if wiimote.state['ext_type'] != cwiid.EXT_BALANCE&#8221; if statement. I also added a few lines to print out the values and calibration numbers for the four sensors. Here&#8217;s what I get when I run my program:</p>
<blockquote><p>
$ ./weighdemo.py<br />
Put Wiimote in discoverable mode now (press 1+2)&#8230;<br />
Type q to quit, or anything else to report your weight</p>
<p>right_top 2249 [2293, 4004, 5725]<br />
right_bottom 1467 [1449, 3155, 4874]<br />
left_top 12471 [12476, 14238, 16015]<br />
left_bottom 6822 [6848, 8581, 10325]<br />
-0.58kg<br />
Type q to quit, or anything else to report your weight</p>
<p>right_top 3618 [2293, 4004, 5725]<br />
right_bottom 3983 [1449, 3155, 4874]<br />
left_top 14208 [12476, 14238, 16015]<br />
left_bottom 9621 [6848, 8581, 10325]<br />
82.18kg
</p></blockquote>
<p>In this run, the first example is weighing with nothing on the scale. The second example is with me standing on the scale.</p>
<p>Here&#8217;s what you need to know. First, absorb this info from the <a href="http://en.wikipedia.org/wiki/Wii_Balance_Board">Wikipedia entry</a>:</p>
<blockquote><p>Although the Japanese packaging states that it is designed to support people weighing up to 136 kilograms (300 pounds) and the &#8220;Western&#8221; Balance Board up to 150 kg (330 pounds), they are actually the same board. The packaging differs due to laws in Japan and other nations regarding weights and measures. While the board only displays weight readings up to what is printed on the packaging, the actual physical structure of the board can withstand much greater force equivalent to around 300 kg (660 pounds).</p></blockquote>
<p>Okay, so the Wii Balance Board is certified for 300 pounds (136 kg) in Japan and 330 pounds (150 kg) in the U.S. The Wii Balance Board has four sensors, so each sensor is certified for up to 136 kg / 4 = 34 kg per sensor in Japan or 150 kg / 4 = 37.5kg per sensor in the United States. Now that you&#8217;ve been schooled on that, the following <a href="http://wiibrew.org/wiki/Wii_Balance_Board#Calibration_Data">Wii Balance Board calibration information</a> from WiiBrew will make more sense.</p>
<p>Each sensor returns 2 bytes of data and also has six bytes of calibration data. Think of it as a 16 bit number and three calibration numbers, that are also 16 bits apiece. The three calibration numbers correspond to the sensor reading for 0 kg, 17 kg, and 34 kg (those numbers should look familiar if you look at the previous paragraph). So if sensor #1 gives a value of 5725 and the 34 kg number is also 5725, then that sensor is reporting exactly 34 kg of weight on it.</p>
<p>The <a href="http://wiibrew.org/wiki/Wii_Balance_Board#Calibration_Data">WiiBrew page</a> says &#8220;Calculating the weight on each sensor simply involves interpolating between the two calibration values your reading falls between (or using the higher two values if your reading exceeds the highest calibration value), and the total weight on the board is the sum of these [four sensor] values.&#8221;</p>
<p>With that info, let&#8217;s go back to one of my sensor readings and convert it to actual kg. Take the reading &#8220;right_top 3618 [2293, 4004, 5725]&#8220;. The sensor value is 3618, which is between the 0 kg calibration number of 2293 and the 17 kg calibration number of 4004. So the weight on the right_top sensor is 17kg * (3618-2293)/(4004-2293) or 17kg * 0.7744 or 13.2 kg. I tend to put my weight on the back of my feet, which is why 13.2 kg is a little lower than my total weight (82 kg) divided by the four sensors, which would be 20.5 kg per sensor.</p>
<p>If your eyes haven&#8217;t completely glazed over, the upshot is that <strong>the Balance Board has four independent weight sensors, each calibrated to kilograms, and you can read those sensors in real-time over Bluetooth</strong>. Translating the sensor values into weight only takes four lines of Python code. From there, you can do anything you want with that data. Play a game, <a href="http://google-latlong.blogspot.com/2009/01/flying-through-google-earth-at-macworld.html">hook your Wii Balance Board up to Google Earth</a>, or you can even <a href="http://www.mattcutts.com/blog/write-google-spreadsheet-from-python/">automatically upload your weight to a Google Spreadsheet</a>.</p>
<p>For example, you can run the command &#8220;sudo apt-get install python-pygame&#8221; to install <a href="http://www.pygame.org/">pygame</a>. Then go back to <a href="http://abstrakraft.org/cwiid/ticket/63">this page</a> and download the scalesgui.py and system.ini files as you did before (click on them, then click on &#8220;Original Format&#8221; at the bottom of the resulting page). Make scalesgui.py executable with &#8220;chmod a+x scalesgui.py&#8221; and comment out the &#8220;EXT_BALANCE&#8221; if statement, then run &#8220;./scalesgui.py&#8221; and this is what you&#8217;ll see:</p>
<p><center><img src="http://www.mattcutts.com/images/scalesgui.png" alt="Scalesgui program" /></center></p>
<p>This is a snapshot, but the program runs just as fast as any video game. You can lean and move the circle around really fast. And in the bottom right, you can see that I weigh 81.74 kg, which is <a href="http://www.google.com/search?q=81.74+kg+in+pounds">about 180 pounds</a>.</p>
<p>I know this is a long post, but the upshot is that <strong>with 10-15 minutes of work, you can use a Wii Balance Board as a real-time sensor with Linux</strong>. I hope you have fun!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mattcutts.com/blog/linux-wii-balanceboard/feed/</wfw:commentRss>
		<slash:comments>42</slash:comments>
		</item>
		<item>
		<title>My 8.7M pixel display</title>
		<link>http://www.mattcutts.com/blog/three-screen-desktop/</link>
		<comments>http://www.mattcutts.com/blog/three-screen-desktop/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 05:50:51 +0000</pubDate>
		<dc:creator>Matt Cutts</dc:creator>
				<category><![CDATA[Gadgets/Hack]]></category>
		<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://www.mattcutts.com/blog/?p=2332</guid>
		<description><![CDATA[A while ago I wrote about Synergy and showed a picture of my desktop as of July 2007:

That&#8217;s two 24&#8243; Dell monitors (one for a Windows computer, the other for a Linux computer). I&#8217;ve had that setup for a couple years and I recently decided it was time to upgrade. So I bought a 30&#8243; [...]]]></description>
			<content:encoded><![CDATA[<p>A while ago I <a href="http://www.mattcutts.com/blog/how-to-configure-synergy-in-six-steps/">wrote about Synergy</a> and showed a picture of my desktop as of July 2007:</p>
<p><center><img src="http://www.mattcutts.com/images/desk-july-2007.jpg" alt="My desktop in July 2007" /></center></p>
<p>That&#8217;s two 24&#8243; Dell monitors (one for a Windows computer, the other for a Linux computer). I&#8217;ve had that setup for a couple years and I recently decided it was time to upgrade. So I bought a 30&#8243; Dell UltraSharp 3008WFP monitor. Now my desktop looks like this:</p>
<p><center><img src="http://www.mattcutts.com/images/desktop-monster-small.jpg" alt="My desktop in April 2009" /></center></p>
<p>The two left monitors are Windows XP, the right monitor is Ubuntu. From left to right, I have seven browsers open showing my blog, the Google webmaster blog, Techmeme, Friendfeed, Twitter, Google News, and the Google homepage. I love how much screen real estate this setup gives me (a little over 8.7 million pixels).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mattcutts.com/blog/three-screen-desktop/feed/</wfw:commentRss>
		<slash:comments>79</slash:comments>
		</item>
		<item>
		<title>Ubuntu 9.04 boots in 7.83 seconds!</title>
		<link>http://www.mattcutts.com/blog/ubuntu-904-boots-in-175-seconds/</link>
		<comments>http://www.mattcutts.com/blog/ubuntu-904-boots-in-175-seconds/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 06:22:22 +0000</pubDate>
		<dc:creator>Matt Cutts</dc:creator>
				<category><![CDATA[Gadgets/Hack]]></category>
		<category><![CDATA[Linux/Ubuntu]]></category>

		<guid isPermaLink="false">http://www.mattcutts.com/blog/?p=2340</guid>
		<description><![CDATA[Recently I treated myself to a solid-state drive (SSD). That&#8217;s essentially a hard-drive made out of memory chips. I bought the Intel X25-E Extreme, which uses faster single-level cell (SLC) memory chips instead of slower multi-level cell (MLC) memory chips.
I wanted to put the drive through its paces, so I decided to see how fast [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I treated myself to a solid-state drive (SSD). That&#8217;s essentially a hard-drive made out of memory chips. I bought the <a href="http://www.intel.com/design/flash/nand/extreme/index.htm">Intel X25-E Extreme</a>, which uses faster single-level cell (SLC) memory chips instead of slower multi-level cell (MLC) memory chips.</p>
<p>I wanted to put the drive through its paces, so I decided to see how fast I could boot Ubuntu and start Firefox. It turns out that Ubuntu 9.04, code-named Jaunty Jackalope, is <a href="http://www.ubuntu.com/testing/jaunty/beta">just a few days away</a>, and one of the features listed is &#8220;significantly improved boot performance.&#8221; Perfect! I installed Ubuntu 8.10 from a CD and then followed the <a href="http://www.ubuntu.com/testing/jaunty/beta#Upgrading%20from%20Ubuntu%208.10">incredibly easy instructions</a> to upgrade to the beta of 9.04.</p>
<p>So how fast did Ubuntu 9.04 boot with a solid-state drive? <strong>Really freaking fast</strong>. Like, &#8220;I can&#8217;t believe it&#8217;s already done&#8221; fast. Well, here, watch for yourself:</p>
<p><center><object width="640" height="505"><param name="movie" value="http://www.youtube.com/v/5GKohxZHNg4&#038;hl=en&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/5GKohxZHNg4&#038;hl=en&#038;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="505"></embed></object></center></p>
<p>Total boot time from pressing power to Firefox loaded was about 22.5 seconds, with about 5 seconds of BIOS display on a Thinkpad. Subtracting out the Thinkpad BIOS display time, that means that Ubuntu 9.04 booted into Firefox in about 17.5 seconds. I think I&#8217;m going to have a lot of fun with this hard drive. Oh, and Ubuntu 9.04 looks really interesting too. <img src='http://www.mattcutts.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>For the folks that are curious, I <a href="http://www.howtogeek.com/howto/ubuntu/change-the-grub-menu-timeout-on-ubuntu/">changed the GRUB boot loader time out</a> from three seconds to zero, <a href="http://thirderror.com/article/enable-auto-login-for-ubuntu/">enabled automatic login</a> to my account, then I added Firefox to default list of startup services.</p>
<p><strong>Added</strong>: I collected a couple <a href="http://www.mattcutts.com/images/ubuntu-ssd-jaunty-20090413-1.png">boot</a> <a href="http://www.mattcutts.com/images/ubuntu-ssd-jaunty-20090413-2.png">charts</a> by using <a href="http://www.bootchart.org/">bootchart</a>. As Ryan said in a comment, I ran sudo apt-get install pybootchartgui bootchart , then rebooted, then collected the image in /var/log/bootchart . If I&#8217;m reading the images correctly, it&#8217;s claiming 8.67 seconds for one boot-up and 8.69 seconds for the other boot-up.</p>
<p><strong>Added</strong>: Okay, I reinstalled Ubuntu 9.04 so I could use ext4 and it shaved almost a second off the boot time! Check out <a href="http://www.mattcutts.com/images/ubuntu-ssd-jaunty-jaunty-20090413-3.png">this image</a> which shows a 7.83 second boot time. <img src='http://www.mattcutts.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.mattcutts.com/blog/ubuntu-904-boots-in-175-seconds/feed/</wfw:commentRss>
		<slash:comments>78</slash:comments>
		</item>
		<item>
		<title>Hacking Google: Retro Links Revives Old Google Feature</title>
		<link>http://www.mattcutts.com/blog/retro-links/</link>
		<comments>http://www.mattcutts.com/blog/retro-links/#comments</comments>
		<pubDate>Mon, 30 Mar 2009 19:05:18 +0000</pubDate>
		<dc:creator>Matt Cutts</dc:creator>
				<category><![CDATA[Gadgets/Hack]]></category>
		<category><![CDATA[Google/SEO]]></category>

		<guid isPermaLink="false">http://www.mattcutts.com/blog/?p=1809</guid>
		<description><![CDATA[Google sometimes turns off features. One such feature that I remember fondly is that at the bottom of Google&#8217;s search results, we offered nine other search engine suggestions. The idea was if you didn&#8217;t find what you were searching for on Google, you could click on the other links and easily run the same search [...]]]></description>
			<content:encoded><![CDATA[<p>Google sometimes turns off features. One such feature that I remember fondly is that at the bottom of Google&#8217;s search results, we offered nine other search engine suggestions. The idea was if you didn&#8217;t find what you were searching for on Google, you could click on the other links and easily run the same search somewhere else. Luckily, due to an <a href="http://www.google.com/mentalplex/MP_results.html">April Fool&#8217;s joke about the Mentalplex</a>, you can still see what these links looked like:</p>
<p><center><img src="http://www.mattcutts.com/images/retro-links1.png" alt="Other search engines in 2000" /></center></p>
<p>Many of these search engines consolidated or changed focus over time. Plus I&#8217;m guessing that every search engine in the world wanted to be on the list, which must have been really annoying for whichever Google person had to maintain that list of links. I think the list of other search engines dwindled down and eventually Google just turned the feature off.</p>
<p>Recently I was describing this feature to <a href="http://tiffography.com/">Tiffany Lane</a>, another engineer at Google, and she had a great idea. Why not recreate this search feature on Google with modern search engines and websites? Because of the pain of maintaining an &#8220;official&#8221; list, we probably couldn&#8217;t turn this on for every user (plus not every user wants a lot of extra links added to their search results). But why not provide a completely unofficial option that people could install?</p>
<p>Thus was born <a href="http://www.mattcutts.com/retrolinks/">Retro Links</a>, which is a Greasemonkey script to add new search options to Google&#8217;s search results page. When Retro Links is installed, it looks like this:</p>
<p><center><img src="http://www.mattcutts.com/images/retro-links2.png" alt="Retro Links" /></center></p>
<p>Unlike the original feature, Retro Links lets you select which search engines to show from 42 different websites and search engines, then saves those preferences. It&#8217;s also very easy to add a new search engine in the JavaScript file.</p>
<p><strong>Installation</strong></p>
<p>Get Retro Links here: <a href="http://www.mattcutts.com/retrolinks/retrolinks.user.js">http://www.mattcutts.com/retrolinks/retrolinks.user.js</a></p>
<p>To install Retro Links you will need to be using <a href="http://www.mozilla.com/firefox/">Firefox</a> and have <a href="https://addons.mozilla.org/en-US/firefox/addon/748">Greasemonkey</a> installed. Once Greasemonkey is running then you can click on the link above and you will be prompted to install the script. To see that it is working you can do a Google search &#8211; the links will be inserted near the bottom of the Google search results page.</p>
<p><strong>Configuration</strong></p>
<p>Configuring Retro Links is really simple. Suppose that you want to change the default <a href="http://www.amazon.com/">Amazon</a> link to search on <a href="http://www.yelp.com/">Yelp</a>. Just click on the [+] link to the right of the search engines and select Yelp from the drop-down box:</p>
<p><center><img src="http://www.mattcutts.com/images/retro-links3.png" alt="Changing search engines in Retro Links" /></center></p>
<p>When you&#8217;re happy with your search engines, click the &#8220;Save&#8221; button to save your preferences.</p>
<p><strong>Questions</strong></p>
<p><em>What if the site I want is not one of the 42 options?</em><br />
You can add more sites to the options by making a simple code change. To edit the code go to Tools -> Greasemonkey -> Manage User Scripts, select Retro Links and click the Edit button. Simply add the name and url of the new site to the RL_LINK_OPTIONS array, following the examples that are already there.</p>
<p><em>How do I turn on/off the update notification?</em><br />
The script checks to see if a newer version is available once per day. If an update is available a red box will appear in the bottom right corner of the page with a link to download the latest version. If you want to stop checking for updates go to Tools -> Greasemonkey -> User Script Commands and select Retro Links -> Never check for updates. To start checking again select Retro Links -> Check for updates daily.</p>
<p><strong>Disclaimer</strong></p>
<p>Finally, Tiffany wanted to make sure that I included this quick disclaimer: &#8220;Retro Links is not an official Google project. I chose which links to include based on my personal preferences and web surfing habits. These decisions do not represent the opinions of my employer.&#8221; Tiffany, thanks for writing this great script!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mattcutts.com/blog/retro-links/feed/</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
	</channel>
</rss>
