<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3338128750432104713</id><updated>2012-01-16T11:16:52.208-08:00</updated><category term='high-pitch'/><category term='whining'/><category term='crackling noise'/><category term='high-frequency'/><title type='text'>Joshua Redstone's Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://joshuaredstone.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://joshuaredstone.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Josh</name><uri>http://www.blogger.com/profile/05824098668540667172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_xApetGAM4oo/SYFAh_c9ZAI/AAAAAAAAAkU/9EXbUWOrP64/S220/DSC00569.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>28</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3338128750432104713.post-3502249066398096420</id><published>2011-08-21T21:52:00.000-07:00</published><updated>2011-08-21T22:06:46.907-07:00</updated><title type='text'>How to stream audio from mog.com on Ubuntu laptop to remote linux box</title><content type='html'>The problem:  I recently got a linux set-top box that I have connected to my stereo in my living room.  I use the internet music service mog.com and I'd like to be able to play it on my stereo and control it from my linux laptop.&lt;br /&gt;&lt;br /&gt;I've tried lots of approaches that didn't work, like using vnc/nx/etc and setting up pulseaudio with module-tunnel-sink.&lt;br /&gt;&lt;br /&gt;The way that seems to work the best for me is to first, setup pulseaudio on the settop box to install the module-native-protocol-tcp by adding the following line to /etc/pulse/default.pa:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/16&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;and restart pulseaudio with:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;pulseaudio --kill ; pulseaudio --start&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This tells pulseaudio to accept network connections from other machines on the local network.&lt;br /&gt;&lt;br /&gt;Then, on my laptop, I run google-chrome as follows:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;PULSE_SERVER=tcp:[settop box hostname] google-chrome --user-data-dir=/home/redstone/tmp/chrome-mog --app=http://mog.com&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This starts a separate chrome session that will stream audio to the settop box. Note:  you are free to simultaneously start google-chrome without the flags and start a google chrome sessions that will use your local laptops speakers as well.  The reason for the user-data flags is that you can only specify the pulse server to use when chrome starts a new session, and if you don't start chrome with the user-data flags, it will just open a new window in your existing chrome session rather than start a new one.&lt;br /&gt;&lt;br /&gt;You may want to run:&lt;br /&gt;&lt;code&gt;PULSE_SERVER=tcp:[settop box hostname] pavucontrol&lt;/code&gt;&lt;br /&gt;to fiddle with the audio settings on the settop box.&lt;br /&gt;&lt;br /&gt;I suspect that this approach should work with any other internet music streaming service like spotify/pandora/etc.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3338128750432104713-3502249066398096420?l=joshuaredstone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joshuaredstone.blogspot.com/feeds/3502249066398096420/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://joshuaredstone.blogspot.com/2011/08/how-to-stream-audio-from-mogcom-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/3502249066398096420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/3502249066398096420'/><link rel='alternate' type='text/html' href='http://joshuaredstone.blogspot.com/2011/08/how-to-stream-audio-from-mogcom-on.html' title='How to stream audio from mog.com on Ubuntu laptop to remote linux box'/><author><name>Josh</name><uri>http://www.blogger.com/profile/05824098668540667172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_xApetGAM4oo/SYFAh_c9ZAI/AAAAAAAAAkU/9EXbUWOrP64/S220/DSC00569.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3338128750432104713.post-259803503650735310</id><published>2011-08-20T21:52:00.001-07:00</published><updated>2011-08-20T21:54:44.146-07:00</updated><title type='text'>Back and internal pictures of Niles Audio PS-1 Phono/Aux A-B Switcher</title><content type='html'>For those of you who are considering buying a Niles Audio PS-1 and are wondering what it looks like on the back and inside, I took a few pics.  Here they are:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-aCPVpc2BPNw/TlCPUPD2jdI/AAAAAAAAA1c/S3OGteF4Nx0/s1600/IMG_20110820_214444.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://1.bp.blogspot.com/-aCPVpc2BPNw/TlCPUPD2jdI/AAAAAAAAA1c/S3OGteF4Nx0/s320/IMG_20110820_214444.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5643167910898077138" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-kKuhxxMyhmU/TlCPYNPtWSI/AAAAAAAAA1k/1C0f3RizzBw/s1600/IMG_20110820_214709.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 240px; height: 320px;" src="http://4.bp.blogspot.com/-kKuhxxMyhmU/TlCPYNPtWSI/AAAAAAAAA1k/1C0f3RizzBw/s320/IMG_20110820_214709.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5643167979130411298" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3338128750432104713-259803503650735310?l=joshuaredstone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joshuaredstone.blogspot.com/feeds/259803503650735310/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://joshuaredstone.blogspot.com/2011/08/back-and-internal-pictures-of-niles.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/259803503650735310'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/259803503650735310'/><link rel='alternate' type='text/html' href='http://joshuaredstone.blogspot.com/2011/08/back-and-internal-pictures-of-niles.html' title='Back and internal pictures of Niles Audio PS-1 Phono/Aux A-B Switcher'/><author><name>Josh</name><uri>http://www.blogger.com/profile/05824098668540667172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_xApetGAM4oo/SYFAh_c9ZAI/AAAAAAAAAkU/9EXbUWOrP64/S220/DSC00569.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-aCPVpc2BPNw/TlCPUPD2jdI/AAAAAAAAA1c/S3OGteF4Nx0/s72-c/IMG_20110820_214444.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3338128750432104713.post-4613631375177658028</id><published>2011-08-20T12:21:00.000-07:00</published><updated>2011-08-20T12:36:27.058-07:00</updated><title type='text'>Subscribing to a twitter feed in Google reader</title><content type='html'>Google reader is a bit picky about the types of feed URLs you can paste into it to subscribe to feeds.  I found that the following works:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;http://api.twitter.com/1/statuses/user_timeline/[username].atom&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;where you substitute [username] for the actual usename.  For example, to subscribe in google reader to Facebook's twitter feed (&lt;a href="http://twitter.com/#!/facebook"&gt;http://twitter.com/#!/facebook&lt;/a&gt;) you click on 'Add a subscription' in reader.google.com and paste in:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;http://api.twitter.com/1/statuses/user_timeline/facebook.atom&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;There is more documentation on this API at &lt;a href="https://dev.twitter.com/docs/api/1/get/statuses/user_timeline"&gt;https://dev.twitter.com/docs/api/1/get/statuses/user_timeline&lt;/a&gt;.  It's listed at the bottom in the 'Extended description' section with the words 'not recommended' :).  The 'recommended' API, using URL parameters, doesn't work in google reader.  Further note:  I initially tried getting RSS feed format to work and didn't have any luck.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3338128750432104713-4613631375177658028?l=joshuaredstone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joshuaredstone.blogspot.com/feeds/4613631375177658028/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://joshuaredstone.blogspot.com/2011/08/subscribing-to-twitter-feed-in-google.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/4613631375177658028'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/4613631375177658028'/><link rel='alternate' type='text/html' href='http://joshuaredstone.blogspot.com/2011/08/subscribing-to-twitter-feed-in-google.html' title='Subscribing to a twitter feed in Google reader'/><author><name>Josh</name><uri>http://www.blogger.com/profile/05824098668540667172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_xApetGAM4oo/SYFAh_c9ZAI/AAAAAAAAAkU/9EXbUWOrP64/S220/DSC00569.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3338128750432104713.post-2938645341371888783</id><published>2011-08-20T09:22:00.000-07:00</published><updated>2011-08-20T09:29:36.821-07:00</updated><title type='text'>Plotting the ratio of two stocks</title><content type='html'>I found a website, stockcharts.com, that let's you plot the ratio of two stocks.  In the 'symbol' field, you specify the two stocks separated by a ':'.  For example, "goog:$SPX" to plot the ratio of Google and the S&amp;P 500.  As a side note, there is a link partway down, 'linkable version' that let's you bookmark the chart.  A recent one I was interested in:&lt;br /&gt;&lt;br /&gt;   &lt;a href="http://stockcharts.com/h-sc/ui?s=GOOG:$SPX&amp;p=D&amp;yr=1&amp;mn=0&amp;dy=0&amp;id=p20725672205"&gt;GOOG versus S&amp;P 500 over the past year&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3338128750432104713-2938645341371888783?l=joshuaredstone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joshuaredstone.blogspot.com/feeds/2938645341371888783/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://joshuaredstone.blogspot.com/2011/08/plotting-ratio-of-two-stocks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/2938645341371888783'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/2938645341371888783'/><link rel='alternate' type='text/html' href='http://joshuaredstone.blogspot.com/2011/08/plotting-ratio-of-two-stocks.html' title='Plotting the ratio of two stocks'/><author><name>Josh</name><uri>http://www.blogger.com/profile/05824098668540667172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_xApetGAM4oo/SYFAh_c9ZAI/AAAAAAAAAkU/9EXbUWOrP64/S220/DSC00569.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3338128750432104713.post-2485848193501193926</id><published>2011-03-07T19:24:00.000-08:00</published><updated>2011-07-26T21:28:49.419-07:00</updated><title type='text'>Hot-water shower in my car for after surfing</title><content type='html'>One of the pain points to surfing in the winter is showering off in the ice-cold showers that are common in beach parking lots.   So I built a hot-water shower contraption that I can load in the trunk of my car to provide a hot shower after surfing.&lt;p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/-IivTyAsyi8w/TXWih4pCPSI/AAAAAAAAAyQ/NGCRZixMpns/s1600/193332_10150440079500157_753470156_17638980_818391_o.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://1.bp.blogspot.com/-IivTyAsyi8w/TXWih4pCPSI/AAAAAAAAAyQ/NGCRZixMpns/s200/193332_10150440079500157_753470156_17638980_818391_o.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5581546016219479330" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p&gt;Basically, I bought a 12V water pump and attached it to a cigarette lighter power plug.  I use the pump to pump water from a 5 gallon storage tank to a hand-held shower head.  The idea is that I fill the tank with hot water from my bathtub before I head out surfing, I put the tank and pump in my car trunk, and, after I'm done surfing, I plug in the pump and shower off with the water from the tank.  By the time I'm done surfing, the water should have cooled to a pleasant temperature.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;I've tested the electrical work and full system test to come soon!&lt;br /&gt;Here's a pic of the work area while I was putting it together:&lt;br /&gt;&lt;p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/-sN3LmKs5_z4/TXWjT1GRFEI/AAAAAAAAAyY/r5tnS3CZr2E/s1600/194226_10150440022370157_753470156_17638291_3176224_o.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://4.bp.blogspot.com/-sN3LmKs5_z4/TXWjT1GRFEI/AAAAAAAAAyY/r5tnS3CZr2E/s200/194226_10150440022370157_753470156_17638291_3176224_o.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5581546874261804098" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;Update 3/12/2011&lt;/b&gt;: &lt;br /&gt;Surf shower v1.5. The water system test was a success! The pump has quick-connect plugs to which you attach the hoses.  Mechanically, they are rather fragile.  To protect the quick connects, I've mounted the pump inside a rubbermaid tub and used electric conduit clamps padded with a bit of neoprene to guide the hoses so that the hoses can flex and move around without straining the connectors. I also mounted a lighted power switch on the other side of the tub. I used a copy of the disappointing 'The World is Flat' book as a backstop for the drill and cutting board for the neoprene.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/-5yWHmIQhK8Q/TXwKmMvAqGI/AAAAAAAAAyg/gD4RYzeP1AE/s1600/IMG_20110312_155949.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://3.bp.blogspot.com/-5yWHmIQhK8Q/TXwKmMvAqGI/AAAAAAAAAyg/gD4RYzeP1AE/s200/IMG_20110312_155949.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5583349289402280034" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;Update 7/12/2011&lt;/b&gt;: &lt;br /&gt;I've been using the shower regularly after surfing and it works wonderfully.  The 5-gallon tank has turned out to be a good size.  Most full-flow shower heads flow at a rate of 2 to 2.5 gallons-per-minute.  So a 5-gallon tank (which weighs 40 pounds, when full) will last a bit over 2 minutes of continuous usage.  I find that by turning off the water switch on the shower head while I soap, I end up using about 3 to 4 gallons of water, and usually have plenty left over at the end.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Here's the final setup:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-neUcO6X2qZs/Ti-TUuZK_VI/AAAAAAAAA1U/I9cRP5yL8_k/s1600/IMG_20110726_212109.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://2.bp.blogspot.com/-neUcO6X2qZs/Ti-TUuZK_VI/AAAAAAAAA1U/I9cRP5yL8_k/s320/IMG_20110726_212109.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5633883643124055378" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The water flows out of the resevoir, through the strainer (the black circular device attached to the tube), to the pump, then from the pump to the hand-held shower head.  There is a lighted rocker switch mounted on the right side of the tub.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3338128750432104713-2485848193501193926?l=joshuaredstone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joshuaredstone.blogspot.com/feeds/2485848193501193926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://joshuaredstone.blogspot.com/2011/03/hot-water-shower-in-my-car-for-after.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/2485848193501193926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/2485848193501193926'/><link rel='alternate' type='text/html' href='http://joshuaredstone.blogspot.com/2011/03/hot-water-shower-in-my-car-for-after.html' title='Hot-water shower in my car for after surfing'/><author><name>Josh</name><uri>http://www.blogger.com/profile/05824098668540667172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_xApetGAM4oo/SYFAh_c9ZAI/AAAAAAAAAkU/9EXbUWOrP64/S220/DSC00569.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-IivTyAsyi8w/TXWih4pCPSI/AAAAAAAAAyQ/NGCRZixMpns/s72-c/193332_10150440079500157_753470156_17638980_818391_o.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3338128750432104713.post-6289430703572046422</id><published>2010-12-24T13:32:00.000-08:00</published><updated>2010-12-24T13:59:20.224-08:00</updated><title type='text'>Making slipper-socks from socks</title><content type='html'>I decided to try my hand at making slipper socks.  I wasn't satisfied with just wearing through athletic socks around the house and thought slippers were too hot and didn't cover the ankles.  To make slipper socks:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Start with a &lt;a href="https://www.smartwool.com/phd/"&gt;choice sock&lt;/a&gt;&lt;br /&gt;&lt;li&gt;Put them on and trace out the outline of your feet on a piece of cardboard.&lt;br /&gt;&lt;li&gt;Cut out the shapes&lt;br /&gt;&lt;li&gt;Use the outlines to cut out a piece of fabric that has non-slip surface on one side (got it from a fabric store)&lt;br /&gt;&lt;li&gt;Put the cardboard into the sock to hold the shape, and then glue the fabric to the sock, using fabric glue.  &lt;br /&gt;&lt;li&gt;For good measure, I then added a felling stitch around the edges to help hold the fabric on in case the glue doesn't hold.&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;And the results:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_xApetGAM4oo/TRUUIBgrJ3I/AAAAAAAAAwk/PFJsd8DKz0M/s1600/IMG_20101224_125927.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://3.bp.blogspot.com/_xApetGAM4oo/TRUUIBgrJ3I/AAAAAAAAAwk/PFJsd8DKz0M/s200/IMG_20101224_125927.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5554367843508365170" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_xApetGAM4oo/TRUUUY8M05I/AAAAAAAAAws/SMKH1eMvxfw/s1600/IMG_20101224_130022.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 200px; height: 150px;" src="http://1.bp.blogspot.com/_xApetGAM4oo/TRUUUY8M05I/AAAAAAAAAws/SMKH1eMvxfw/s200/IMG_20101224_130022.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5554368055956263826" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Quiet an exceptional piece of work, if I do say so myself :).  One refinement I want to try next time around:  When glueing the fabric to the sock, rather than pressing it against the sock with the cardboard inside, instead press it against the sock with your foot inside.  I introduced a small registration problem with I pressed the fabric - I didn't quite center it to where my foot naturally rests in the sock.  It's possible you could get away without using the cardboard at all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3338128750432104713-6289430703572046422?l=joshuaredstone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joshuaredstone.blogspot.com/feeds/6289430703572046422/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://joshuaredstone.blogspot.com/2010/12/making-slipper-socks-from-socks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/6289430703572046422'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/6289430703572046422'/><link rel='alternate' type='text/html' href='http://joshuaredstone.blogspot.com/2010/12/making-slipper-socks-from-socks.html' title='Making slipper-socks from socks'/><author><name>Josh</name><uri>http://www.blogger.com/profile/05824098668540667172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_xApetGAM4oo/SYFAh_c9ZAI/AAAAAAAAAkU/9EXbUWOrP64/S220/DSC00569.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_xApetGAM4oo/TRUUIBgrJ3I/AAAAAAAAAwk/PFJsd8DKz0M/s72-c/IMG_20101224_125927.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3338128750432104713.post-6081580368274674576</id><published>2010-12-16T19:39:00.001-08:00</published><updated>2010-12-17T17:51:53.268-08:00</updated><title type='text'>Full custom neoprene jacket for glass water bottle</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_xApetGAM4oo/TQrb9nKbsgI/AAAAAAAAAwM/OHIuBvPaaEQ/s1600/P1000479.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 150px; height: 200px;" src="http://2.bp.blogspot.com/_xApetGAM4oo/TQrb9nKbsgI/AAAAAAAAAwM/OHIuBvPaaEQ/s200/P1000479.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5551491342218801666" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;On vacation with some time on my hands, and figured what better time to construct a protective jacket for the perfect water bottle (&lt;a href="http://joshuaredstone.blogspot.com/2010/11/candidate-for-best-water-bottle.html"&gt;see my post earlier on the bottle&lt;/a&gt;).  Pictured here is the result of a sheet of neoprene laminated with a cloth-like layer, 8 coat hooks, 2 yards of 1mm yellow line and a few hours sewing sprinkled with the occasional curse.&lt;br /&gt;&lt;br /&gt;The intent is that the neoprene jacket will cushion the bottle if it falls on a hard surface so that it hopefully won't break.  The important areas protected are the corners because they are what is likely to hit a hard surface if the bottle falls on the ground.&lt;br /&gt;&lt;br /&gt;The reason for the separate pieces and line connecting is so that it is easy to remove and clean, and also so that you can see the contents of the bottle.&lt;br /&gt;&lt;br /&gt;Update:  As an alternative, I also tried a rough cut at a version using eyelets instead of stitching.   In the image below, I haven't glued the sides or anything, so it appears a bit flappy.  I like having a lower-profile to the protective case, but th eyelets pop out too easily.  Also, not sure how the glue will work to glue the edges of each piece together...&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_xApetGAM4oo/TQwTJwV4M_I/AAAAAAAAAwU/CNOQls6OjzQ/s1600/IMG_20101217_203817.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 150px; height: 200px;" src="http://2.bp.blogspot.com/_xApetGAM4oo/TQwTJwV4M_I/AAAAAAAAAwU/CNOQls6OjzQ/s200/IMG_20101217_203817.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5551833498957394930" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3338128750432104713-6081580368274674576?l=joshuaredstone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joshuaredstone.blogspot.com/feeds/6081580368274674576/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://joshuaredstone.blogspot.com/2010/12/full-custom-neoprene-jacket-for-glass.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/6081580368274674576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/6081580368274674576'/><link rel='alternate' type='text/html' href='http://joshuaredstone.blogspot.com/2010/12/full-custom-neoprene-jacket-for-glass.html' title='Full custom neoprene jacket for glass water bottle'/><author><name>Josh</name><uri>http://www.blogger.com/profile/05824098668540667172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_xApetGAM4oo/SYFAh_c9ZAI/AAAAAAAAAkU/9EXbUWOrP64/S220/DSC00569.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_xApetGAM4oo/TQrb9nKbsgI/AAAAAAAAAwM/OHIuBvPaaEQ/s72-c/P1000479.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3338128750432104713.post-4601934994037173238</id><published>2010-11-21T12:43:00.001-08:00</published><updated>2010-11-21T13:23:02.183-08:00</updated><title type='text'>A candidate for best water bottle</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_xApetGAM4oo/TOmEhZwsqaI/AAAAAAAAAtw/pCdSHYfFgyA/s1600/bottle4.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 59px; height: 100px;" src="http://1.bp.blogspot.com/_xApetGAM4oo/TOmEhZwsqaI/AAAAAAAAAtw/pCdSHYfFgyA/s200/bottle4.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5542106525841795490" /&gt;&lt;/a&gt;&lt;br /&gt;My quest to find the best bottle to drink water out of has ended, at least for now.  Read on...  results at the bottom.&lt;br /&gt;&lt;br /&gt;Background:&lt;br /&gt;&lt;br /&gt;I used to drink water out in disposable plastic bottles.  Then I started reusing the plastic bottles till I heard that disposable plastic bottles leach chemicals into the water and that reusing them is even worse.  I switched to plastic bottles (e.g., Nalgene), then heard about the BPA issues.  I started doing research and it seems like the next best thing was stainless steel bottles like &lt;a href="http://www.kleankanteen.com/products/classic/klean-kanteen-27oz-classic.php"&gt;Kleen Kanteen&lt;/a&gt;.  Stainless steel doesn't leach plastic chemicals, though it does affect the taste of the water a bit.  Kleen Kanteen is made out of food-grade stainless steel.&lt;br /&gt;&lt;br /&gt;To take it to the next level, there's a stainless-steel bottle originally made by &lt;a href="http://www.guyotdesigns.com/product.php?id_product=88"&gt;Guyot&lt;/a&gt; out of surgical-grade stainless-steel that I also started using.  Surgical-grade sounds like it just has to be better than food-grade, doesn't it?  I couldn't help myself.  I think technically, the main difference between the two is that surgical-grade steel (Guyot is 18/10, also known as 316 stainless steel) is a bit more resistant to corrosion in salt-water.  Yeah, I know that we're not using it to store ocean water, but it's the principle, right?  Maybe there's a couple of grains of salt in your water on occasion...   On the other hand, there is a concern that the nickel in the stainless steel isn't good for you.&lt;br /&gt;&lt;br /&gt;So what's the ideal bottle that doesn't leach chemicals or interact with the water in any way?  The gold standard for this is glass.   Turns out there are some consumer glass water bottle makers, like &lt;a href="http://www.lifefactory.com/products-beveragebottles"&gt;Lifefactory&lt;/a&gt; and &lt;a href="http://www.takeyausa.com/products/glass-water-bottles/classic-glass-water-bottle-22oz.html"&gt;Takeya&lt;/a&gt;.  I had two issues with these bottles.  First, the largest size is 22oz, which is a bit small for me.  Second, the bottles apparently may break if you put boiling water into them.  This is an issue because I use boiling water to clean my stainless steel water bottles.  I like cleaning with boiling water because you don't have to worry about soap residue taste and you know any bad stuff is killed.&lt;br /&gt;&lt;br /&gt;There's gotta be a better bottle!  Turns out that there is, though it's not for consumers.  Remember high-school chemistry class?  Glass is often used to contain chemicals.  If you look at chemistry supply websites, there is a class of glassware called "media storage bottles".  These bottles are intended to store potentially nasty chemicals, so the ability to store the chemical without leaching junk from the bottle is a priority.  I looked around for the best media bottle.  Some makers are &lt;a href="http://www.corning.com/lifesciences/us_canada/en/index.aspx"&gt;Corning&lt;/a&gt;, &lt;a href="http://www.us.schott.com/labware/english/products/duran/index.html"&gt;Schott/Duran&lt;/a&gt; and &lt;a href="http://www.wheatonsci.com/"&gt;Wheaton&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The best bottle I could find is.... [ drum roll please ]:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;a href="http://www.duran-group.com/en/products-solutions/laboratory-glassware/products/laboratory-glass-bottles/pressure-plus-laboratory-bottle.html#c2507"&gt;Duran Pressure-Plus Laboratory Bottle&lt;/a&gt;&lt;/b&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_xApetGAM4oo/TOmErn_95JI/AAAAAAAAAt4/h_-TBUdUqtw/s1600/bottle-big.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 133px; height: 200px;" src="http://3.bp.blogspot.com/_xApetGAM4oo/TOmErn_95JI/AAAAAAAAAt4/h_-TBUdUqtw/s200/bottle-big.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5542106701462627474" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Cool properties of this bottle:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Made from &lt;a href="http://www.us.schott.com/labware/english/products/duran/properties/index.html"&gt;Duran glass&lt;/a&gt;, which I think is basically Pyrex.  Check out the link for more info.  It can handle boiling water (and apparently contents up to 500 degrees Celsius).  It's super resistant to all kinds of chemicals and very inert.  It can handle thermal shock up to 100 degrees Celsius (e.g., boiling water on one side of the glass and an ice-cube on the other).  Also, the glass is pretty thick and sturdy, though I haven't dropped it yet.&lt;br /&gt;&lt;li&gt;The Pressure-plus bottle in particular can handle pressure between -1 bar (a vacuum inside of the bottle) and +1.5 bar (1.5 atmospheres of pressure pushing outward).  One caveat is that if there is a pressure differential between the inside/outside of the bottle, the thermal shock resistance is lower (they claim up to 30 degrees Celsius difference maximum when at maximum rated pressure).&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;The main downside to this bottle is that it's bulky and that it it doesn't come with any consumer niceties like a holding strap, a protective silicon case or a cap.  It takes a standard cap size called GL-45 - I use the cap from a runner-up bottle not described here from Corning.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3338128750432104713-4601934994037173238?l=joshuaredstone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joshuaredstone.blogspot.com/feeds/4601934994037173238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://joshuaredstone.blogspot.com/2010/11/candidate-for-best-water-bottle.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/4601934994037173238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/4601934994037173238'/><link rel='alternate' type='text/html' href='http://joshuaredstone.blogspot.com/2010/11/candidate-for-best-water-bottle.html' title='A candidate for best water bottle'/><author><name>Josh</name><uri>http://www.blogger.com/profile/05824098668540667172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_xApetGAM4oo/SYFAh_c9ZAI/AAAAAAAAAkU/9EXbUWOrP64/S220/DSC00569.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_xApetGAM4oo/TOmEhZwsqaI/AAAAAAAAAtw/pCdSHYfFgyA/s72-c/bottle4.jpg' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3338128750432104713.post-8549644300976915830</id><published>2010-05-06T11:23:00.000-07:00</published><updated>2010-05-06T12:51:14.633-07:00</updated><title type='text'>Getting MAME working on Ubuntu 9.10 (Karmic)</title><content type='html'>Getting Mame (the arcade game emulator) working on my Thinkpad T500 took the following steps:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Install mame and the pulse audio driver:&lt;pre class="jcodeblock"&gt;sudo aptitude install mame libsdl1.2debian-pulseaudio&lt;/pre&gt;&lt;br /&gt;&lt;li&gt;At this point, sounds was crackling, but enabling multithreading fixed that:&lt;pre class="jcodeblock"&gt;mame -multithreading&lt;/pre&gt;&lt;br /&gt;&lt;/ol&gt;And that's it.  I modified my /etc/sdlmame/mame.ini to enable multithreading, lower the volume, and have it run in a window rather than fullscreen so I don't need to specify those options on the command line.  Try 'man mame' for explanations of other options.  When starting mame, 'TAB' pops up the mame option menu including all the keyboard command mappings. 'ESC' quits the menu or the game.  '1' starts game play.&lt;br /&gt;&lt;br /&gt;Also, Mame seems to be the best supported emulator.  I tried to get a few others (nestra, fceu) working without success.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3338128750432104713-8549644300976915830?l=joshuaredstone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joshuaredstone.blogspot.com/feeds/8549644300976915830/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://joshuaredstone.blogspot.com/2010/05/getting-mame-working-on-ubuntu-910.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/8549644300976915830'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/8549644300976915830'/><link rel='alternate' type='text/html' href='http://joshuaredstone.blogspot.com/2010/05/getting-mame-working-on-ubuntu-910.html' title='Getting MAME working on Ubuntu 9.10 (Karmic)'/><author><name>Josh</name><uri>http://www.blogger.com/profile/05824098668540667172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_xApetGAM4oo/SYFAh_c9ZAI/AAAAAAAAAkU/9EXbUWOrP64/S220/DSC00569.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3338128750432104713.post-6617168916507317262</id><published>2010-04-15T19:57:00.000-07:00</published><updated>2010-04-15T20:01:14.239-07:00</updated><title type='text'>Sprint mobile broadband (Sierra 598) on Ubuntu 9.10</title><content type='html'>I was pleasantly surprised to find that plugging my Sprint mobile broadband dongle (it says Sierra Wireless USB 598 on the back) into my laptop running Ubuntu 9.10 worked out of the box!  After plugging in, go to the network icon in the toolbar and there appeared an entry for 'Mobile Broadband'.  I checked the checkbox underneath it, which took me through an easy setup wizard (selected 'USA' and 'Sprint') and it worked!  Warms my heart when Ubuntu works so well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3338128750432104713-6617168916507317262?l=joshuaredstone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joshuaredstone.blogspot.com/feeds/6617168916507317262/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://joshuaredstone.blogspot.com/2010/04/sprint-mobile-broadband-sierra-598-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/6617168916507317262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/6617168916507317262'/><link rel='alternate' type='text/html' href='http://joshuaredstone.blogspot.com/2010/04/sprint-mobile-broadband-sierra-598-on.html' title='Sprint mobile broadband (Sierra 598) on Ubuntu 9.10'/><author><name>Josh</name><uri>http://www.blogger.com/profile/05824098668540667172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_xApetGAM4oo/SYFAh_c9ZAI/AAAAAAAAAkU/9EXbUWOrP64/S220/DSC00569.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3338128750432104713.post-5767357453879709428</id><published>2009-12-22T20:52:00.000-08:00</published><updated>2009-12-22T21:08:16.692-08:00</updated><title type='text'>Replacing power-steering vacuum suction hose on 2001 Honda Civic</title><content type='html'>On a non-computer note, I had the misfortune of not replacing the power-steering reservoir in its bracket after changing the left headlight on my civic.  The hose connecting it to the power-steering pump rubber one of the belts, eventually puncturing the hose.  The fluid ran out of the system and my steering started making unhappy noises.  Then followed seven hours of me figuring out how to fix this on a Sunday when shops were closed.  The upshot was that I learned that the name of the hose is the power-steering suction hose, and it is a part available only at the dealer (costs &lt; $5).  It is a curved, molded tube about a foot long.  It looks a bit like a question mark.  It is distinct from the high-pressure hose and the return hose.  Here are the steps I took to replace it (after my temporary hack of duck-tape and epoxy):&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Turn off engine&lt;br /&gt;&lt;li&gt;Suck as much fluid as you can out of the power-steering reservoir with a turkey baster (literally) or some other such device.  I used a turkey baster with a straw on the end to reach a bit further in.  Deposit this fluid in a container that you can bring to an auto parts shop for proper disposal.&lt;br /&gt;&lt;li&gt;Take a pair of pliers, grab the spring-clamp attaching the suction tube to the reservoir and lower the clamp down the tube so it is no longer clamping the tube onto the reservoir.&lt;br /&gt;&lt;li&gt;Place a receptacle underneath the hose and reservoir to catch any fluid that spills out when you remove the hose from the reservoir.  I used a disposable plastic cup.&lt;br /&gt;&lt;li&gt;Remove the hose from the reservoir.  It comes off moderately easily.  A fair bit of fluid will drain out of the reservoir.&lt;br /&gt;&lt;li&gt;Place reservoir on a towel or something to catch any remaining drips.&lt;br /&gt;&lt;li&gt;Empty plastic cup&lt;br /&gt;&lt;li&gt;Repeat procedure for other end of hose.  Less fluid will spill out this time, but it may spill on the alternator, which probably is not good.&lt;br /&gt;&lt;li&gt;Remove hose from car, remove clamps from hose, and slide clamps onto replacement hose.&lt;br /&gt;&lt;li&gt;Reverse detachment procedure to reattach hose to pump and reservoir and move clamps back into place clamping the hose at each end.&lt;br /&gt;&lt;li&gt;Place reservoir back into holding bracket.&lt;br /&gt;&lt;li&gt;Fill up reservoir to min fill line with honda-compatible power steering fluid.&lt;br /&gt;&lt;li&gt;Start engine and turn off after a few seconds.  The fluid level in the reservoir will have dropped a bunch.&lt;br /&gt;&lt;li&gt;Add more fluid to reservoir to bring it back up to somewhere between min and max level.&lt;br /&gt;&lt;li&gt;Start engine and turn steering wheel stop to stop a few times.  Don't hold at a stop too long - this strains the pump.  The purpose of turning wheel a lot is to work out any air bubbles from the system.  I could not tell if this was effective.&lt;br /&gt;&lt;li&gt;Evaluate fluid level with engine off.&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3338128750432104713-5767357453879709428?l=joshuaredstone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joshuaredstone.blogspot.com/feeds/5767357453879709428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://joshuaredstone.blogspot.com/2009/12/replacing-power-steering-vacuum-suction.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/5767357453879709428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/5767357453879709428'/><link rel='alternate' type='text/html' href='http://joshuaredstone.blogspot.com/2009/12/replacing-power-steering-vacuum-suction.html' title='Replacing power-steering vacuum suction hose on 2001 Honda Civic'/><author><name>Josh</name><uri>http://www.blogger.com/profile/05824098668540667172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_xApetGAM4oo/SYFAh_c9ZAI/AAAAAAAAAkU/9EXbUWOrP64/S220/DSC00569.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3338128750432104713.post-4562504819292906552</id><published>2009-11-25T21:05:00.000-08:00</published><updated>2009-11-25T21:40:23.493-08:00</updated><title type='text'>Tether via USB from Android G1 to Ubuntu</title><content type='html'>I installed &lt;a href="http://www.cyanogenmod.com/"&gt;Cyanogen's mod version 4.2.5&lt;/a&gt; on my Android G1 phone, and it's been working great.  On feature that was added since version 4.2.3 is USB networking.  Turns out it's simple to use with Ubuntu 9.10 (Karmic).  It may work with earlier version as well.  The steps:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Check the box for 'Internet tethering' under Settings-&gt;Wireless controls&lt;br /&gt;&lt;li&gt;Plug G1 into Ubuntu box with USB cable.  Btw, looks like the order of these first two steps doesn't matter.&lt;br /&gt;&lt;li&gt;Click on the networking icon in your toolbar on the Ubuntu box.  In the menu that appears, I have an item entitled 'Wired Network (HTC Android Phone)'.  Underneath it is a choice 'ifupdown (bnep0)'.&lt;br /&gt;&lt;li&gt;Click on 'ifupdown (bnep0)'.&lt;br /&gt;&lt;li&gt;Now you should be connected to internet.&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;So this is pretty straightforward, and in particular, it doesn't seem that the Android application, &lt;a href="http://code.google.com/p/android-wired-tether/"&gt;Wired Tether for Root Users&lt;/a&gt;, is necessary.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3338128750432104713-4562504819292906552?l=joshuaredstone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joshuaredstone.blogspot.com/feeds/4562504819292906552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://joshuaredstone.blogspot.com/2009/11/tether-via-usb-from-android-g1-to.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/4562504819292906552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/4562504819292906552'/><link rel='alternate' type='text/html' href='http://joshuaredstone.blogspot.com/2009/11/tether-via-usb-from-android-g1-to.html' title='Tether via USB from Android G1 to Ubuntu'/><author><name>Josh</name><uri>http://www.blogger.com/profile/05824098668540667172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_xApetGAM4oo/SYFAh_c9ZAI/AAAAAAAAAkU/9EXbUWOrP64/S220/DSC00569.JPG'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3338128750432104713.post-712759393976981283</id><published>2009-10-05T21:34:00.001-07:00</published><updated>2009-10-05T21:58:21.038-07:00</updated><title type='text'>Howto transfer photos from Android G1 to computer via USB</title><content type='html'>I'm not sure why it was so hard to to figure this one out.  I wanted to transfer photos from my Android G1 to my linux laptop. Basically, you follow the following steps, many of which are from, &lt;a href="http://forums.t-mobile.com/tmbl/board/message?board.id=AndroidFAQs&amp;message.id=74"&gt;http://forums.t-mobile.com/tmbl/board/message?board.id=AndroidFAQs&amp;message.id=74&lt;/a&gt;:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Plug in USB cable to connect the phone and laptop&lt;br /&gt;&lt;li&gt;On the phone, go the notifications (drag down the top of the screen).  There should be a 'USB connected' notification.  Click on it.&lt;br /&gt;&lt;li&gt;Click on 'Mount'&lt;br /&gt;&lt;li&gt;On my Ubuntu desktop, under 'Places', a new option now shows up titled '1.0 GB Media'.  That is the connection to the Android phone.&lt;br /&gt;&lt;li&gt;For me, the option to open 'F-Spot' photo tool popped up.  I declined and used the built in file browser.  In either case, the photos are located in the folder dcim/Camera.&lt;br /&gt;&lt;li&gt;When finished manipulating the files, unmount the volume:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Go to Places -&gt; '1.0 GB Media' and opening up the file browser&lt;br /&gt;&lt;li&gt;Go to File and select 'Unmount Volume'&lt;br /&gt;&lt;li&gt;On the phone, go to the notifications pull down again and click on 'Turn off USB storage' and click on 'Turn Off'&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;li&gt;Unplug USB cable from phone and computer.&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3338128750432104713-712759393976981283?l=joshuaredstone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joshuaredstone.blogspot.com/feeds/712759393976981283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://joshuaredstone.blogspot.com/2009/10/howto-transfer-photos-from-android-g1.html#comment-form' title='18 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/712759393976981283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/712759393976981283'/><link rel='alternate' type='text/html' href='http://joshuaredstone.blogspot.com/2009/10/howto-transfer-photos-from-android-g1.html' title='Howto transfer photos from Android G1 to computer via USB'/><author><name>Josh</name><uri>http://www.blogger.com/profile/05824098668540667172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_xApetGAM4oo/SYFAh_c9ZAI/AAAAAAAAAkU/9EXbUWOrP64/S220/DSC00569.JPG'/></author><thr:total>18</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3338128750432104713.post-8881723644424181070</id><published>2009-06-14T09:20:00.000-07:00</published><updated>2009-06-14T09:29:19.274-07:00</updated><title type='text'>Jaunty and 2.6.30 kernel with Nvidia drivers</title><content type='html'>I recently upgraded to 2.6.30 on my Jaunty laptop and desktop.  Turns out there are some issues with the nvidia drivers that come with Jaunty and the newer 2.6.30 kernel.  The following upgrade process worked for me (based on the solution found at &lt;a href="https://bugs.launchpad.net/ubuntu/+source/nvidia-common/+bug/384639/comments/8"&gt;https://bugs.launchpad.net/ubuntu/+source/nvidia-common/+bug/384639/comments/8&lt;/a&gt;):&lt;br /&gt;&lt;ol&gt;&lt;li&gt;If you have Nvidia drivers then:&lt;br /&gt;  &lt;ol&gt;&lt;li&gt;Go to some temp directory  (&lt;code&gt;~/tmp&lt;/code&gt; for me)&lt;br /&gt;  &lt;li&gt;&lt;pre class="jcodeblock"&gt;wget -c http://archive.ubuntu.com/ubuntu/pool/restricted/n/nvidia-graphics-drivers-180/nvidia-180-kernel-source_180.60-0ubuntu1_i386.deb http://archive.ubuntu.com/ubuntu/pool/restricted/n/nvidia-graphics-drivers-180/nvidia-180-libvdpau_180.60-0ubuntu1_i386.deb http://archive.ubuntu.com/ubuntu/pool/restricted/n/nvidia-graphics-drivers-180/nvidia-glx-180_180.60-0ubuntu1_i386.deb&lt;/pre&gt;&lt;br /&gt;  &lt;li&gt;&lt;pre class="jcodeblock"&gt;sudo dpkg -i nvidia-180-kernel-source_180.60-0ubuntu1_i386.deb nvidia-180-libvdpau_180.60-0ubuntu1_i386.deb nvidia-glx-180_180.60-0ubuntu1_i386.deb&lt;/pre&gt;&lt;br /&gt;  &lt;/ol&gt;&lt;br /&gt;  &lt;li&gt;&lt;pre class="jcodeblock"&gt;wget -c http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.30/linux-headers-2.6.30-020630-generic_2.6.30-020630_i386.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.30/linux-headers-2.6.30-020630_2.6.30-020630_all.deb http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.30/linux-image-2.6.30-020630-generic_2.6.30-020630_i386.deb&lt;/pre&gt;&lt;br /&gt;  &lt;li&gt;&lt;pre class="jcodeblock"&gt;sudo dpkg -i linux-headers-2.6.30-020630-generic_2.6.30-020630_i386.deb linux-headers-2.6.30-020630_2.6.30-020630_all.deb linux-image-2.6.30-020630-generic_2.6.30-020630_i386.deb&lt;/pre&gt;&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3338128750432104713-8881723644424181070?l=joshuaredstone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joshuaredstone.blogspot.com/feeds/8881723644424181070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://joshuaredstone.blogspot.com/2009/06/jaunty-and-2630-kernel-with-nvidia.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/8881723644424181070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/8881723644424181070'/><link rel='alternate' type='text/html' href='http://joshuaredstone.blogspot.com/2009/06/jaunty-and-2630-kernel-with-nvidia.html' title='Jaunty and 2.6.30 kernel with Nvidia drivers'/><author><name>Josh</name><uri>http://www.blogger.com/profile/05824098668540667172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_xApetGAM4oo/SYFAh_c9ZAI/AAAAAAAAAkU/9EXbUWOrP64/S220/DSC00569.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3338128750432104713.post-7951948993498697071</id><published>2009-05-25T11:28:00.000-07:00</published><updated>2009-05-25T11:39:59.964-07:00</updated><title type='text'>[product-research]  wireless headset for pc and cell</title><content type='html'>I'm going to experiment with keeping notes on various product research expeditions I go on to see if it's useful to others (or myself).  This is the first one.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Goal&lt;/span&gt;:  I want a wireless stereo headset and microphone with good audio quality and long range that I can wear around the house.  Bluetooth isn't sufficient because of range.  The idea is that I can leave my cell phone and computer in my bedroom and wander around the house while on a cell call or VOIP call.  I was hoping that this headset would seamlessly work with my cellphone and computer and also have good enough quality that it could be used for music as well as voice.  It'd also be great if I could end calls from the headset.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Result&lt;/span&gt;: I couldn't find any product that quite does this, but 100m Class-1 bluetooth comes darn close.  All I need is a headset that has decent audio quality, and perhaps a repeater so my class-2 cellphone can get decent range.  Here are some options I'm considering:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.callpod.com/products/dragon"&gt;Callpod Dragon&lt;/a&gt; looks pretty darn close.  Class-1 Bluetooth (extended range), simultaneously can connect to PC and phone.  For max range, the PC and phone have to have Class-1 bluetooth connectivity.&lt;br /&gt;  &lt;ul&gt;&lt;li&gt;Class-1 dongle: &lt;a href="http://www.x-micro.com/main-product-dongle20plus.html"&gt;http://www.x-micro.com/main-product-dongle20plus.html&lt;/a&gt;&lt;br /&gt;     &lt;li&gt;&lt;a href="http://www.startech.com/item/USBBT1EDR-USB-Bluetooth-Adapter-Class-1.aspx"&gt;http://www.startech.com/item/USBBT1EDR-USB-Bluetooth-Adapter-Class-1.aspx&lt;/a&gt;&lt;br /&gt;    &lt;li&gt;Or search for [class-1 bluetooth] or [100 meter bluetooth]&lt;br /&gt;   &lt;/ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16826158069"&gt;Creative labs HS-1200&lt;/a&gt;.  72 foot range, RF, USB, good audio quality.  Range maybe insufficient and not sure how it would hook up to cell phone.&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.plantronics.com/north_america/en_US/products/cat1200043/cat5890032/prod5490008"&gt;Plantronics CS361N&lt;/a&gt;.  300 foot range, RF, analog RJ-9 connector.  no audio quality documented.  Could buy RJ-9 to 2.5mm connector.&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;Some other options I was toying with:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Get a bluetooth headset and get some sort of bluetooth repeater/antenna to extend range.  Just came across the CRAZY:  &lt;a href="http://www.aircable.net/host-xr.html"&gt;http://www.aircable.net/host-xr.html&lt;/a&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3338128750432104713-7951948993498697071?l=joshuaredstone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joshuaredstone.blogspot.com/feeds/7951948993498697071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://joshuaredstone.blogspot.com/2009/05/product-research-wireless-headset-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/7951948993498697071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/7951948993498697071'/><link rel='alternate' type='text/html' href='http://joshuaredstone.blogspot.com/2009/05/product-research-wireless-headset-for.html' title='[product-research]  wireless headset for pc and cell'/><author><name>Josh</name><uri>http://www.blogger.com/profile/05824098668540667172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_xApetGAM4oo/SYFAh_c9ZAI/AAAAAAAAAkU/9EXbUWOrP64/S220/DSC00569.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3338128750432104713.post-3272561302272441419</id><published>2009-05-25T09:44:00.000-07:00</published><updated>2009-05-25T10:20:35.932-07:00</updated><title type='text'>Android G1 Cupcake hacking links/summary</title><content type='html'>I have the G1 dev phone, but with the recent cupcake update, it got reverted to T-Mobile's stock OS.  In particular I lost root on the phone.  I ended up installing the JesusFreke OS on the phone, which is working well.  Here's what I figured out along the way.&lt;br /&gt;&lt;br /&gt;There are a few important concepts in G1 modding (please correct me where I'm wrong):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;SPL:  The Secondary-Program-Loader is a piece of firmware that is basically the bootloader - it loads the OS.  You want to replace this with a more fully functional version.  I use the &lt;a href="http://code.google.com/p/android-roms/wiki/Install_Hard_SPL"&gt;HardSPL&lt;/a&gt; loader.  This loader, as well as some of the other ones out there, gives you the option to use fastboot (&lt;a href="http://android-dls.com/wiki/index.php?title=Fastboot"&gt;here&lt;/a&gt; or &lt;a href="http://www.gotontheinter.net/content/fastboot-cheat-sheet"&gt;here&lt;/a&gt;), which lets you install on partitions on the phone and boot.&lt;br /&gt;&lt;li&gt;Recovery partition: There is a partition on the phone that has a kernel that is used only when the phone is booted into recovery mode (turn on holding power and home at the same time, then press alt+l to get to the menu).  Installing a custom image here, like JFv1.43_Recovery.zip from &lt;a href="http://code.google.com/p/android-roms/"&gt;android-roms&lt;/a&gt;, gives you an extra option in the recovery menu to use nandroid to backup your entire system (not sure if it includes the sdcard).  Usefull if you want to fiddle with your firmware or wiping your phone and want to be able to restore.&lt;br /&gt;&lt;li&gt;System ROM: This is the system that runs during normal booting and operation.  I replaced this with JesusFreke  JFv1.51_CRB43-ADP.zip using instructions &lt;a href="http://code.google.com/p/android-roms/wiki/Install_Custom_ROM"&gt;here&lt;/a&gt;.  It gives you a kernel set up for &lt;a href="http://code.google.com/p/android-wifi-tether/"&gt;wifi-tether&lt;/a&gt;, and also includes a couple of extra neat things like the ability to multi-touch pinch zoom in and out on the browser.  If you're just interested in wifi-teher, you probably don't need JesusFreke's ROM.  The wifi-tether link has an alternate kernel that is a smaller mod.  Note that installing the JesusFreke ROM recommends wiping the data on the phone.&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Android-roms at &lt;a href="http://code.google.com/p/android-roms/"&gt;http://code.google.com/p/android-roms/&lt;/a&gt; is a useful site that pulls together most of this info.  &lt;a href="http://jf.andblogs.net/"&gt;JesusFreke's blog&lt;/a&gt; has details on each ROM release and what was changed from the stock ROM.&lt;br /&gt;&lt;br /&gt;Finally, if you have an android dev phone and lost root with the cupcake update.  The directions at &lt;a href="http://forum.xda-developers.com/showthread.php?t=518251"&gt;http://forum.xda-developers.com/showthread.php?t=518251&lt;/a&gt; worked for me to regain it.  I think these directions require the custom SPL, such as HardSPL.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3338128750432104713-3272561302272441419?l=joshuaredstone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joshuaredstone.blogspot.com/feeds/3272561302272441419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://joshuaredstone.blogspot.com/2009/05/android-g1-cupcake-hacking-linkssummary.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/3272561302272441419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/3272561302272441419'/><link rel='alternate' type='text/html' href='http://joshuaredstone.blogspot.com/2009/05/android-g1-cupcake-hacking-linkssummary.html' title='Android G1 Cupcake hacking links/summary'/><author><name>Josh</name><uri>http://www.blogger.com/profile/05824098668540667172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_xApetGAM4oo/SYFAh_c9ZAI/AAAAAAAAAkU/9EXbUWOrP64/S220/DSC00569.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3338128750432104713.post-92142910808968121</id><published>2009-02-01T11:59:00.000-08:00</published><updated>2009-02-01T13:03:58.338-08:00</updated><title type='text'>Ubuntu Intrepid, Skype, and Alsa Settings</title><content type='html'>I finally figured out the magic incantations to get skype working with Ubuntu Intrepid 8.10 and pulseaudio, at least on my hardware.  I have &lt;code&gt;82801I (ICH9 Family) HD Audio Controller&lt;/code&gt; according to lshw and lspci.  I have a microphone connected to the front mic input.  The key was to ensure the alsa settings were correct.  Here were the steps:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Configure alsa using alsamixer, part of the Ubuntu alsa-utils package.  I think there are also gui interfaces to do this.  Here are some notes on settings:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;In the 'recording' section  (navigate with TAB), there are settings for both &lt;code&gt;capture&lt;/code&gt; and &lt;code&gt;capture 1&lt;/code&gt;.  &lt;b&gt;The key for me was to set &lt;code&gt;capture&lt;/code&gt; to &lt;code&gt;front mic&lt;/code&gt;&lt;/b&gt;.  I think this has changed from Hardy.  In Hardy, I had to set &lt;code&gt;capture 1&lt;/code&gt; to &lt;code&gt;front mic&lt;/code&gt;.  For good measure I set both to &lt;code&gt;front mic&lt;/code&gt;.&lt;br /&gt;&lt;li&gt;The &lt;code&gt;mic&lt;/code&gt; and &lt;code&gt;mic boost&lt;/code&gt; settings didn't seem to affect anything on my system.&lt;br /&gt;&lt;li&gt;The &lt;code&gt;front mic&lt;/code&gt; settings in 'playback' section apply to monitoring the mic input.  A good initial sanity check is to bump up the &lt;code&gt;front mic&lt;/code&gt; settings and make sure you hear the mic out of your speakers.&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;li&gt;Install the libasound2-plugins package.  &lt;code&gt;apt-cache show libasound2-plugins&lt;/code&gt; shows the version as 1.0.17-0ubuntu5 for me.&lt;br /&gt;&lt;li&gt;Make sure the microphone works in pulseaudio.  For this, the Ubuntu padevchooser package was handy.  Run it and it adds a tray icon.  I chose 'volume meter (recording)' from the drop-down menu.  This basically invoked pavumeter with the right args to show the mic level that pulseaudio reads.  At this point, when you tap your front mic, the vumeter window should show a bump in signal.&lt;br /&gt;&lt;li&gt;Start skype (I think I use the one from the medibuntu repository) and go to options -&gt; sound devices.  There are three main settings:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Sound in: pulse&lt;br /&gt;Sound out: pulse&lt;br /&gt;Ringing: pulse&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I set all to &lt;code&gt;pulse&lt;/code&gt;, but my guess is that &lt;code&gt;default&lt;/code&gt; is fine and defaults to pulse anyway.&lt;br /&gt;At this point the skype test call worked for me!&lt;br /&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3338128750432104713-92142910808968121?l=joshuaredstone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joshuaredstone.blogspot.com/feeds/92142910808968121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://joshuaredstone.blogspot.com/2009/02/ubuntu-intrepid-skype-and-alsa-settings.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/92142910808968121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/92142910808968121'/><link rel='alternate' type='text/html' href='http://joshuaredstone.blogspot.com/2009/02/ubuntu-intrepid-skype-and-alsa-settings.html' title='Ubuntu Intrepid, Skype, and Alsa Settings'/><author><name>Josh</name><uri>http://www.blogger.com/profile/05824098668540667172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_xApetGAM4oo/SYFAh_c9ZAI/AAAAAAAAAkU/9EXbUWOrP64/S220/DSC00569.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3338128750432104713.post-3030868865598458971</id><published>2009-01-29T20:55:00.001-08:00</published><updated>2009-01-30T12:05:20.411-08:00</updated><title type='text'>Comparison of Boston, San Francisco and Seattle on weather</title><content type='html'>I'm toying with moving to Boston from SF area and nature is a big factor.  Here's some data I'm looking at:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.wrcc.dri.edu/precip.html"&gt;Oregon Climate Service precipitation maps of the area&lt;/a&gt;.  Looks like Boston gets about as much rain as Seattle, and almost double SF area.&lt;br /&gt;&lt;li&gt;&lt;a href="http://ipcc-wg1.ucar.edu/wg1/Report/AR4WG1_Print_Ch11.pdf"&gt;Climate projects&lt;/a&gt; has data looking forward, page 890 has climate and rainfall projections. Looks like Boston will get a bit warmer and more rain.  CA and Seattle dry out a bit.&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.epa.gov/cgi-bin/broker?condition=active&amp;citycounty=county&amp;geocode=53033+06085+06081+25025&amp;_debug=2&amp;_service=aircomp&amp;_program=dataprog.wcj_bymonthyearhealth.sas&amp;submit=Compare+My+Air"&gt;Air quality summary&lt;/a&gt;.  Looks like Boston is worse than Seattle and SF, though the SF counties include gobs of costal area which biases the measurement.  &lt;a href="http://www.epa.gov/cgi-bin/broker?condition=active&amp;citycounty=county&amp;geocode=06085+06081+53033+25025&amp;_debug=2&amp;_service=aircomp&amp;_program=dataprog.wcj_bymonthhealth.sas&amp;submit=Compare+My+Air"&gt;Monthly breakdown&lt;/a&gt;&lt;br /&gt;&lt;li&gt;And browse some &lt;a href="http://factfinder.census.gov/"&gt;census data&lt;/a&gt; data such as &lt;a href="http://factfinder.census.gov/servlet/ThematicMapFramesetServlet?_bm=y&amp;-tree_id=4001&amp;-context=tm&amp;-errMsg=&amp;-states=&amp;-all_geo_types=N&amp;-redoLog=false&amp;-street=&amp;-tm_name=DEC_2000_SF1_U_M00022&amp;-ds_label=Census%202000%20Summary%20File%201%20%20SF%201%20%20100-Percent%20Data&amp;-tm_config=|b=50|l=en|t=4001|zf=0.0|ms=thm_def|dw=0.1353312709871897|dh=0.07571096062885775|dt=gov.census.aff.domain.map.EnglishMapExtent|if=gif|cx=-71.1305|cy=42.3934|zl=4|pz=4|bo=|bl=|ft=350:349:335:389:388:332:331|fl=403:381:204:380:369:379:368|g=05000US25017|ds=DEC_2000_SF1_U|sb=50|tud=false|db=140|mn=71|mx=154|cc=1|cm=1|cn=5|cb=|um=Males/100%20Females|pr=0|th=DEC_2000_SF1_U_M00261|sf=N|sg=&amp;-search_map_config=|b=50|l=en|t=4001|zf=0.0|ms=sel_00dec|dw=1.9557697048764706E7|dh=1.4455689123E7|dt=gov.census.aff.domain.map.LSRMapExtent|if=gif|cx=-1159354.4783500005|cy=7122022.5|zl=10|pz=10|bo=318:317:316:314:313:323:319|bl=362:393:358:357:356:355:354|ft=350:349:335:389:388:332:331|fl=403:381:204:380:369:379:368|g=14000US06075010200&amp;-PANEL_ID=tm_result&amp;-_lang=en&amp;-geo_id=05000US25017&amp;-CONTEXT=tm&amp;-city=&amp;-format=&amp;-ds_name=DEC_2000_SF1_U&amp;-zip=02140"&gt;median age&lt;/a&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3338128750432104713-3030868865598458971?l=joshuaredstone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joshuaredstone.blogspot.com/feeds/3030868865598458971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://joshuaredstone.blogspot.com/2009/01/comparison-of-boston-san-francisco-and.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/3030868865598458971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/3030868865598458971'/><link rel='alternate' type='text/html' href='http://joshuaredstone.blogspot.com/2009/01/comparison-of-boston-san-francisco-and.html' title='Comparison of Boston, San Francisco and Seattle on weather'/><author><name>Josh</name><uri>http://www.blogger.com/profile/05824098668540667172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_xApetGAM4oo/SYFAh_c9ZAI/AAAAAAAAAkU/9EXbUWOrP64/S220/DSC00569.JPG'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3338128750432104713.post-6618014461496054104</id><published>2009-01-19T15:44:00.001-08:00</published><updated>2009-01-19T17:15:17.493-08:00</updated><title type='text'>Using jgit with socks5 proxy on Ubuntu</title><content type='html'>I use &lt;a href="http://git.or.cz/gitwiki/EclipsePlugin"&gt;jgit&lt;/a&gt; to store my git repositories on Amazon S3.  On my laptop I also periodically connect to the internet through tetherbot, which uses a socks proxy (see earlier post for more details there).  I finally figured out how to get jgit, and I suppose other java applications working with the proxy.  Jgit is java based and you need to pass the right flags to java, as described at &lt;a href="http://java.sun.com/javase/6/docs/technotes/guides/net/proxies.html"&gt;http://java.sun.com/javase/6/docs/technotes/guides/net/proxies.html&lt;/a&gt;.  The flags are:&lt;code&gt;-DsocksProxyHost=localhost -DsocksProxyPort=1080&lt;/code&gt;.  I inserted the following code into the jgit program, before the &lt;code&gt;exec .... $java_args&lt;/code&gt; part:&lt;br /&gt;&lt;pre class="jcodeblock"&gt;if (netstat -pl --numeric-ports 2&gt;&amp;1 | grep ':1080.*adb' &gt; /dev/null); then&lt;br /&gt;    echo "Using Java socks5 proxy args"&lt;br /&gt;    java_args="$java_args -DsocksProxyHost=localhost -DsocksProxyPort=1080"&lt;br /&gt;fi&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I inserted the lines using emacs.  For some reason, xemacs and nano garbled the file when I tried editing it with them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3338128750432104713-6618014461496054104?l=joshuaredstone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joshuaredstone.blogspot.com/feeds/6618014461496054104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://joshuaredstone.blogspot.com/2009/01/using-jgit-with-socks5-proxy-on-ubuntu.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/6618014461496054104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/6618014461496054104'/><link rel='alternate' type='text/html' href='http://joshuaredstone.blogspot.com/2009/01/using-jgit-with-socks5-proxy-on-ubuntu.html' title='Using jgit with socks5 proxy on Ubuntu'/><author><name>Josh</name><uri>http://www.blogger.com/profile/05824098668540667172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_xApetGAM4oo/SYFAh_c9ZAI/AAAAAAAAAkU/9EXbUWOrP64/S220/DSC00569.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3338128750432104713.post-5497446001018086419</id><published>2009-01-17T09:47:00.001-08:00</published><updated>2009-01-19T15:42:48.752-08:00</updated><title type='text'>Transparent proxy in Ubuntu</title><content type='html'>I have a socks5 proxy on my machine (actually on my Android phone, but port-forwarded through adb), and want non-socks5 aware applications to be able to use it.  I tried &lt;a href="http://tsocks.sourceforge.net/"&gt;tsocks&lt;/a&gt;, but couldn't get it to work with wget - it wouldn't proxy the DNS resolution, even if I set the compile time flags.  I then switched to &lt;a href="http://proxychains.sourceforge.net/"&gt;proxychains&lt;/a&gt;, which works great with wget and other commandline utils.  The only issue is that proxychains does not seem to work with stand-alone java applications, failing in the connection library like:&lt;br /&gt;&lt;br /&gt;&lt;pre class="jcodeblock"&gt;&lt;br /&gt;Caused by: java.net.SocketException: Network is unreachable &lt;br /&gt;at java.net.PlainSocketImpl.socketConnect(Native Method) &lt;br /&gt;at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333) &lt;br /&gt;at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195) &lt;br /&gt;at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182) &lt;br /&gt;at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) &lt;br /&gt;at java.net.Socket.connect(Socket.java:519) &lt;br /&gt;at java.net.Socket.connect(Socket.java:469) &lt;br /&gt;at sun.net.NetworkClient.doConnect(NetworkClient.java:163) &lt;br /&gt;at sun.net.www.http.HttpClient.openServer(HttpClient.java:394) &lt;br /&gt;at sun.net.www.http.HttpClient.openServer(HttpClient.java:529) &lt;br /&gt;at sun.net.www.http.HttpClient.&lt;init&gt;(HttpClient.java:233) &lt;br /&gt;at sun.net.www.http.HttpClient.New(HttpClient.java:306) &lt;br /&gt;at sun.net.www.http.HttpClient.New(HttpClient.java:323) &lt;br /&gt;at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:837) &lt;br /&gt;at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:816) &lt;br /&gt;at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:703) &lt;br /&gt;at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1026) &lt;br /&gt;at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:373)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update: got this working with shell-wrapped jar files.  See next post&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3338128750432104713-5497446001018086419?l=joshuaredstone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joshuaredstone.blogspot.com/feeds/5497446001018086419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://joshuaredstone.blogspot.com/2009/01/transparent-proxy-in-ubuntu.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/5497446001018086419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/5497446001018086419'/><link rel='alternate' type='text/html' href='http://joshuaredstone.blogspot.com/2009/01/transparent-proxy-in-ubuntu.html' title='Transparent proxy in Ubuntu'/><author><name>Josh</name><uri>http://www.blogger.com/profile/05824098668540667172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_xApetGAM4oo/SYFAh_c9ZAI/AAAAAAAAAkU/9EXbUWOrP64/S220/DSC00569.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3338128750432104713.post-7549507585644397004</id><published>2009-01-17T09:26:00.000-08:00</published><updated>2009-09-07T13:05:00.363-07:00</updated><title type='text'>options for git on Amazon S3</title><content type='html'>Here's the options for backing up git on S3 as I see them now:&lt;ul&gt;&lt;br /&gt;  &lt;li&gt;&lt;a href="http://git.or.cz/gitwiki/EclipsePlugin"&gt;jgit&lt;/a&gt; - standalone java app that does git fetch and push to S3.  I currently use this one, but it doesn't work with transparent proxy apps such as &lt;a href="http://proxychains.sourceforge.net/"&gt;proxychains&lt;/a&gt;.  Occasionally I use an old laptop with no wifi or bluetooth, and so want to use a USB-tethered Android G1 for internet access.&lt;br /&gt;  &lt;li&gt;S3-backed Filesystems&lt;br /&gt;      &lt;ul&gt;&lt;li&gt;Jungledisk&lt;br /&gt;          &lt;li&gt;&lt;a href="https://fedorahosted.org/s3fs/"&gt;s3fs&lt;/a&gt;&lt;br /&gt;          &lt;li&gt;&lt;a href="http://code.google.com/p/s3fs/wiki/FuseOverAmazon"&gt;FuzeOverAmazon(also called s3fs)&lt;/a&gt;&lt;br /&gt;          &lt;li&gt;&lt;a href="http://code.google.com/p/s3fs-fuse/"&gt;s3fs-fuse&lt;/a&gt;&lt;br /&gt;      &lt;/ul&gt;&lt;br /&gt;   &lt;li&gt;&lt;a href="http://wiki.cs.pdx.edu/oss2009/index/projects/gits3.html"&gt;gits3&lt;/a&gt; - a git implementation that can push to s3.  Pretty new.  Is it stable yet?&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;I'm tempted to try the filesystem options, but I'm concerned about reliability and transparency (I want more visibility into how the S3 ops are going).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3338128750432104713-7549507585644397004?l=joshuaredstone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joshuaredstone.blogspot.com/feeds/7549507585644397004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://joshuaredstone.blogspot.com/2009/01/options-for-git-on-amazon-s3.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/7549507585644397004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/7549507585644397004'/><link rel='alternate' type='text/html' href='http://joshuaredstone.blogspot.com/2009/01/options-for-git-on-amazon-s3.html' title='options for git on Amazon S3'/><author><name>Josh</name><uri>http://www.blogger.com/profile/05824098668540667172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_xApetGAM4oo/SYFAh_c9ZAI/AAAAAAAAAkU/9EXbUWOrP64/S220/DSC00569.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3338128750432104713.post-5054904887918266741</id><published>2009-01-02T19:14:00.001-08:00</published><updated>2009-01-02T19:16:50.110-08:00</updated><title type='text'>Store git repository on Amazon S3</title><content type='html'>I keep my home dir and some other dirs in a few git repositories.  I used to back them up to slicehost, which I've been very happy with.  Since S3 has much lower storage charges, I modified my scripts to backup the repositories to S3 as well using jgit from &lt;a href="http://www.spearce.org/2008/07/using-jgit-to-publish-on-amazon-s3.html"&gt;here&lt;/a&gt;.  Figure I'll play around with it and see if the repositories get out of sync.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3338128750432104713-5054904887918266741?l=joshuaredstone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joshuaredstone.blogspot.com/feeds/5054904887918266741/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://joshuaredstone.blogspot.com/2009/01/store-git-repository-on-amazon-s3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/5054904887918266741'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/5054904887918266741'/><link rel='alternate' type='text/html' href='http://joshuaredstone.blogspot.com/2009/01/store-git-repository-on-amazon-s3.html' title='Store git repository on Amazon S3'/><author><name>Josh</name><uri>http://www.blogger.com/profile/05824098668540667172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_xApetGAM4oo/SYFAh_c9ZAI/AAAAAAAAAkU/9EXbUWOrP64/S220/DSC00569.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3338128750432104713.post-2332685985740691183</id><published>2009-01-02T18:42:00.000-08:00</published><updated>2009-05-17T11:33:12.636-07:00</updated><title type='text'>Bluetooth tethering from Ubuntu to Android G1</title><content type='html'>&lt;b&gt;Update: Looks like this does not work with the new Cupcake OS :(&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Yeah!  I finally got this working.  I got my Thinkpad T500 running Ubuntu Intrepid to connect via bluetooth to my Android G1.  So the laptop connects to the internet through whatever internet connection the phone has (Edge, 3G, or Wifi).  I'm writing this at a starbucks on my laptop, connected through my G1 to a TMobile hotspot (install the hotspot app on your G1 and reboot the phone.  You'll see a bullseye in the notification bar when you wifi connect to the hotspot on the phone)  Roughly the steps I did to tether were:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Get 'adb' installed from the Android dev tools.  I downloaded the whole sdk.&lt;br /&gt;&lt;li&gt;The main starting point is the blog entry at: &lt;a href="http://www.gotontheinter.net/content/second-g1-story-proper-bluetooth-tethering-how-short"&gt;http://www.gotontheinter.net/content/second-g1-story-proper-bluetooth-tethering-how-short&lt;/a&gt;&lt;br /&gt;&lt;li&gt;From there I got the files pand, iptables and bnep.ko and copy to /data/local/bin/, creating the dir if necessary.&lt;br /&gt;&lt;li&gt;Get busybox from &lt;a href="http://benno.id.au/blog/2007/11/14/android-busybox"&gt;http://benno.id.au/blog/2007/11/14/android-busybox&lt;/a&gt; and install in /data/busybox (it looks like the directory is hard-coded in that binary somewhere)&lt;br /&gt;&lt;li&gt;I did a bit of shell code to move to a subdirectory any binaries in busybox for which another version existed outside of busybox, except for ps.  I figured I trust the android ones more, but Android's ps was missing the all important 'w' option&lt;br /&gt;&lt;li&gt;Generate a file called /data/local/bin/tether.sh on the phone with the following contents:&lt;br /&gt;&lt;pre class="jcodeblock"&gt;#!/system/bin/sh&lt;br /&gt;# first copy all files to /data/local/bin&lt;br /&gt;&lt;br /&gt;if ! `echo $PATH | /data/busybox/grep /data/busybox &gt; /dev/null`; then&lt;br /&gt;    export PATH=/data/busybox:$PATH&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;pand_pidfile=/data/local/bin/pand.pid&lt;br /&gt;PAND_PID=0&lt;br /&gt;if [ -e $pand_pidfile ]; then&lt;br /&gt;    PAND_PID=`cat $pand_pidfile`&lt;br /&gt;    if [ "x" = "x$PAND_PID" ]; then&lt;br /&gt;        PAND_PID=0&lt;br /&gt;    else&lt;br /&gt;        if ! (ps | grep /data/local/bin/pand | grep -v grep &gt; /dev/null); then&lt;br /&gt;            PAND_PID=0&lt;br /&gt;        fi&lt;br /&gt;    fi&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;logfile=/data/local/bin/tether-log&lt;br /&gt;&lt;br /&gt;case "$1" in&lt;br /&gt;  start)&lt;br /&gt;    if ! lsmod | grep bnep &gt; /dev/null; then&lt;br /&gt; echo "Adding bnep kernel module"&lt;br /&gt; insmod /data/local/bin/bnep.ko || exit&lt;br /&gt;    fi&lt;br /&gt;    if [ 0 -eq $PAND_PID ]; then&lt;br /&gt; echo "Starting pand"&lt;br /&gt; rm $pand_pidfile &gt; /dev/null 2&gt;&amp;1&lt;br /&gt; PAND_PID=0&lt;br /&gt; rm $logfile &gt; /dev/null 2&gt;&amp;1 # if it exists&lt;br /&gt; /data/local/bin/pand --listen --role NAP --devup /data/local/bin/blue-up.sh --devdown /data/local/bin/blue-down.sh --pidfile $pand_pidfile || exit&lt;br /&gt;    fi&lt;br /&gt;    echo "Success"&lt;br /&gt;    ;;&lt;br /&gt;  stop)&lt;br /&gt;     if [ 0 -ne $PAND_PID ]; then&lt;br /&gt;  echo "Killing pand at pid $PAND_PID"&lt;br /&gt;  /data/local/bin/pand -K || exit&lt;br /&gt;  kill $PAND_PID || exit&lt;br /&gt;  rm $pand_pidfile &gt; /dev/null 2&gt;&amp;1 # Looks like pand may have removed it for us&lt;br /&gt;  sleep 1&lt;br /&gt;     fi&lt;br /&gt;     if lsmod | grep bnep &gt; /dev/null; then&lt;br /&gt;  echo "Removing bnep module"&lt;br /&gt;  rmmod bnep || exit&lt;br /&gt;     fi&lt;br /&gt;     echo "Success"&lt;br /&gt;     ;;&lt;br /&gt;  *)&lt;br /&gt;    echo "Usage: /data/local/bin/tether.sh {start|stop}"&lt;br /&gt;    exit 1&lt;br /&gt;esac&lt;br /&gt;exit 0&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;li&gt;Then put the following into /data/local/bin/blue-up.sh:&lt;br /&gt;&lt;br /&gt;&lt;pre class="jcodeblock"&gt;#!/system/bin/sh&lt;br /&gt;# blue-up.sh&lt;br /&gt;ifconfig bnep0 10.0.1.1 netmask 255.255.255.0 up&lt;br /&gt;/data/local/bin/iptables -F&lt;br /&gt;/data/local/bin/iptables -t nat -F&lt;br /&gt;/data/local/bin/iptables -t nat -A POSTROUTING -s 10.0.1.5 -j MASQUERADE&lt;br /&gt;/data/local/bin/iptables -t nat -A POSTROUTING -j ACCEPT&lt;br /&gt;echo 1 &gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;/data/busybox/udhcpd /data/local/bin/udhcpd.conf&lt;br /&gt;echo "Interface up " &gt;&gt; /data/local/bin/tether-log&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;li&gt;And the following goes into /data/local/bin/blue-down.sh:&lt;br /&gt;&lt;br /&gt;&lt;pre class="jcodeblock"&gt;#!/system/bin/sh&lt;br /&gt;# blue-down.sh&lt;br /&gt;&lt;br /&gt;udhcpd_pidfile=/data/local/bin/udhcpd.pid&lt;br /&gt;UDHCPD_PID=0&lt;br /&gt;if [ -e $udhcpd_pidfile ]; then&lt;br /&gt;    UDHCPD_PID=`cat $udhcpd_pidfile`&lt;br /&gt;    if [ "x" = "x$UDHCPD_PID" ]; then&lt;br /&gt;        UDHCPD_PID=0&lt;br /&gt;    fi&lt;br /&gt;fi&lt;br /&gt;echo "udhcpd at pid $UDHCPD_PID" &gt;&gt; /data/local/bin/tether-log&lt;br /&gt;if [ 0 -ne $UDHCPD_PID ]; then&lt;br /&gt;    echo "Trying to kill udhcpd at pid $UDHCPD_PID" &gt;&gt; /data/local/bin/tether-log&lt;br /&gt;    kill -1 $UDHCPD_PID  # 1 is SIGHUP&lt;br /&gt;    rm $udhcpd_pidfile&lt;br /&gt;fi&lt;br /&gt;ifconfig bnep0 down&lt;br /&gt;echo 0 &gt; /proc/sys/net/ipv4/ip_forward&lt;br /&gt;/data/local/bin/iptables -F&lt;br /&gt;/data/local/bin/iptables -F -t nat&lt;br /&gt;echo "Interface down " &gt;&gt; /data/local/bin/tether-log&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;li&gt;Make sure all '.sh' files and binaries in /data/local/bin have execute permissions.  E.g., do:&lt;br /&gt;&lt;pre class="jcodeblock"&gt;su&lt;br /&gt;chmod 755 /data/local/bin/*.sh&lt;br /&gt;chmod 755 /data/local/bin/pand&lt;br /&gt;chmod 755 /data/local/bin/iptables&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I think you can alternatively set execute permissions on your laptop before you copy the files over.&lt;br /&gt;&lt;li&gt;And the following in /data/local/bin/udhcpd.conf:&lt;br /&gt;&lt;pre class="jcodeblock"&gt;start 10.0.1.5&lt;br /&gt;end   10.0.1.5&lt;br /&gt;max_leases 1&lt;br /&gt;interface bnep0&lt;br /&gt;pidfile /data/local/bin/udhcpd.pid&lt;br /&gt;option dns 208.67.222.222 208.67.220.220  # Freedns dns servers&lt;br /&gt;option router 10.0.1.1&lt;br /&gt;option subnet 255.255.255.0&lt;br /&gt;option domain local&lt;br /&gt;option lease 1440 # 4 hours&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;Next, on your laptop machine, add a line to &lt;code&gt;/etc/network/interfaces&lt;/code&gt; to tell Ubuntu about the bnep0 interface:&lt;br /&gt;&lt;pre class="jcodeblock"&gt;iface bnep0 inet dhcp&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;li&gt;After modifying &lt;code&gt;/etc/network/interfaces&lt;/code&gt;, restart networking to pick up the change by executing:&lt;br /&gt;&lt;pre class="jcodeblock"&gt;$ sudo /etc/init.d/networking restart&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;li&gt;Install the pand utility by adding bluez-compat:&lt;br /&gt;&lt;pre class="jcodeblock"&gt;$ sudo aptitude install bluez-compat&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;li&gt;On my laptop, I have a script to start and stop things:&lt;br /&gt;&lt;pre class="jcodeblock"&gt;#!/bin/bash&lt;br /&gt;case "$1" in&lt;br /&gt;    start)&lt;br /&gt;      if ps ax | grep sbin/NetworkManager | grep -v grep &gt; /dev/null; then&lt;br /&gt;   echo "Halting NetworkManager"&lt;br /&gt;   /etc/init.d/NetworkManager stop || exit&lt;br /&gt;      fi&lt;br /&gt;      if ! (pand -l | grep bnep0 &gt; /dev/null); then&lt;br /&gt;   echo "Establishing bluetooth PAN connection"&lt;br /&gt;   pand --connect **:**:**:**:**:** -n || exit&lt;br /&gt;   if ! (pand -l | grep bnep0 &gt; /dev/null); then&lt;br /&gt;       echo "pand returned success but it looks like the connection was not made"&lt;br /&gt;       exit 1&lt;br /&gt;   fi&lt;br /&gt;   sleep 1&lt;br /&gt;      fi&lt;br /&gt;      if ! (ifconfig | grep bnep0 &gt; /dev/null); then&lt;br /&gt;   echo "Bringing up interface bnep0 with dhcp"&lt;br /&gt;   if cat /var/run/network/ifstate | grep bnep0; then&lt;br /&gt;       echo "ifup/down thinks interface is still up.  Down it first"&lt;br /&gt;       ifdown bnep0&lt;br /&gt;   fi&lt;br /&gt;   ifup bnep0 || exit&lt;br /&gt;      fi&lt;br /&gt;      echo "Success"&lt;br /&gt;      ;;&lt;br /&gt;    stop)&lt;br /&gt;      if (ifconfig | grep bnep0 &gt; /dev/null); then&lt;br /&gt;   echo "Taking down bnep0"&lt;br /&gt;   ifdown bnep0 || exit&lt;br /&gt;      fi&lt;br /&gt;      pand -K || exit # MUST be run as sudo, though it does not error out otherwise.&lt;br /&gt;      if ! ps ax | grep sbin/NetworkManager | grep -v grep &gt; /dev/null; then&lt;br /&gt;   echo "Restarting NetworkManager"&lt;br /&gt;   /etc/init.d/NetworkManager start || exit&lt;br /&gt;      fi&lt;br /&gt;      echo "Success"&lt;br /&gt;      ;;&lt;br /&gt;    *)&lt;br /&gt;      echo "Usage: sudo laptop-connect-tether {start|stop}"&lt;br /&gt;      exit 1&lt;br /&gt;esac&lt;br /&gt;exit 0&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Where you replace the '**:**...' with your phones hardware bluetooth address. [ Update: 'thwarted' says You can get your phone's bluetooth address in Settings | About Phone (bottom) | Status | Bluetooth Address (3rd from bottom) ]&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;So to use this, run &lt;code&gt;/data/local/bin/tether.sh start&lt;/code&gt; on your phone and then run the above script on your laptop with 'start' or 'stop' as desired.  Note that to start tether.sh:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;tether.sh file must be executable (see above)&lt;br /&gt;&lt;li&gt;you need to su before running&lt;br /&gt;&lt;li&gt;You must invoke the binary with an explicit pathname, e.g. './tether.sh' or '/data/local/bin/tether.sh'.  Just cd'ing into the dir and typing 'tether.sh' does not work.&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;If you get a &lt;code&gt;not found&lt;/code&gt; error when invoking tether.sh and you swear it really is there and you are trying this from windows, it may be that pasting the code to a file appended '^M' to the end of each line.  Consider using dos2unix to remove the extra characters.&lt;p&gt;&lt;br /&gt;&lt;br /&gt;Sorry this is a bit rough, but let me know if you find this useful or find bugs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3338128750432104713-2332685985740691183?l=joshuaredstone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joshuaredstone.blogspot.com/feeds/2332685985740691183/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://joshuaredstone.blogspot.com/2009/01/bluetooth-tethering-from-ubuntu-to.html#comment-form' title='38 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/2332685985740691183'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/2332685985740691183'/><link rel='alternate' type='text/html' href='http://joshuaredstone.blogspot.com/2009/01/bluetooth-tethering-from-ubuntu-to.html' title='Bluetooth tethering from Ubuntu to Android G1'/><author><name>Josh</name><uri>http://www.blogger.com/profile/05824098668540667172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_xApetGAM4oo/SYFAh_c9ZAI/AAAAAAAAAkU/9EXbUWOrP64/S220/DSC00569.JPG'/></author><thr:total>38</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3338128750432104713.post-1091627670554310928</id><published>2008-12-25T18:09:00.000-08:00</published><updated>2008-12-25T22:12:05.027-08:00</updated><title type='text'>T-mobile G1 new phone setup</title><content type='html'>I've been working on getting my G1 up and running productively.  Some notes on my experience:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The contact syncing mechanism had a problem in which when I deleted 200 contacts from my gmail list, I could not get the G1 to also delete the contacts.  I tried clearing the 'data' from the Contacts app (under settings-&gt;applications), but that didn't work.  Ended up doing a factory reset of the phone and starting over.&lt;br /&gt;&lt;li&gt;Visual voicemail would be great, but Phonefusion requires an SMS for each voicemail, and also it reroutes voicemail to its own server.  :(&lt;br /&gt;&lt;li&gt;Considered apps:&lt;br /&gt;  &lt;ul&gt;&lt;br /&gt;      &lt;li&gt;chompsms&lt;br /&gt;      &lt;li&gt;missed call&lt;br /&gt;      &lt;li&gt;any cut&lt;br /&gt;      &lt;li&gt;astro (file manager)&lt;br /&gt;      &lt;li&gt;toggle settings&lt;br /&gt;      &lt;li&gt;quickpedia&lt;br /&gt;      &lt;li&gt;chompsms&lt;br /&gt;  &lt;/ul&gt;&lt;br /&gt;&lt;li&gt;Installed apps:&lt;br /&gt;  &lt;ul&gt;&lt;li&gt;Xtremelabs Speedtest&lt;br /&gt;      &lt;li&gt;Tetherbot (from &lt;a href="http://graha.ms/androidproxy/"&gt;here&lt;/a&gt;) - update: actually, I may go with &lt;a href="http://www.gotontheinter.net/content/second-g1-story-proper-bluetooth-tethering-how-short"&gt;this&lt;/a&gt; or &lt;a href="http://forum.xda-developers.com/showthread.php?s=06c8c9679bb6cdbf5731681498aaf159&amp;t=451301&amp;page=2"&gt;this&lt;/a&gt;&lt;br /&gt;      &lt;li&gt;t-mobile hotspot&lt;br /&gt;      &lt;li&gt;sms popup&lt;br /&gt;      &lt;li&gt;power manager&lt;br /&gt;  &lt;/ul&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3338128750432104713-1091627670554310928?l=joshuaredstone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joshuaredstone.blogspot.com/feeds/1091627670554310928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://joshuaredstone.blogspot.com/2008/12/t-mobile-g1-new-phone-setup.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/1091627670554310928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/1091627670554310928'/><link rel='alternate' type='text/html' href='http://joshuaredstone.blogspot.com/2008/12/t-mobile-g1-new-phone-setup.html' title='T-mobile G1 new phone setup'/><author><name>Josh</name><uri>http://www.blogger.com/profile/05824098668540667172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_xApetGAM4oo/SYFAh_c9ZAI/AAAAAAAAAkU/9EXbUWOrP64/S220/DSC00569.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3338128750432104713.post-2740521763690039642</id><published>2008-12-25T16:48:00.000-08:00</published><updated>2008-12-25T16:59:09.144-08:00</updated><title type='text'>Howto create custom csv file to upload into gmail contacts</title><content type='html'>I recently got the T-Mobile G1 phone and wanted to transfer my contacts from my old phone to the G1.  The G1 syncs its contacts with gmail contacts, so I added them there.  How I pulled my contacts from my old Motorola E815 phone into a CSV is a tale for another blog, but it was painful.  Gmail has a page: &lt;a href="http://mail.google.com/support/bin/answer.py?answer=12119"&gt;http://mail.google.com/support/bin/answer.py?answer=12119&lt;/a&gt; that's supposed to specify how to create a csv file suitable for upload to gmail, but I found it useless because it didn't clearly define the set of acceptable field names.  In the end what worked for me was to first export a contact from gmail into a csv file in Outlook format.  The first line of that file has all of the field names.  I found that the gmail importer was robust to reordering of the field names and omitting field names.   It looks like there isn't an easy way to merge these contacts uploaded with email contact entries that already exist.&lt;br /&gt;&lt;br /&gt;For the record, here are the field names for Outlook's CSV format that gmail understands:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;Name,E-mail Address,Notes,E-mail 2 Address,E-mail 3 Address,Mobile Phone,Pager,Company,Job Title,Home Phone,Home Phone 2,Home Fax,Home Address,Business Phone,Business Phone 2,Business Fax,Business Address,Other Phone,Other Fax,Other Address&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3338128750432104713-2740521763690039642?l=joshuaredstone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joshuaredstone.blogspot.com/feeds/2740521763690039642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://joshuaredstone.blogspot.com/2008/12/howto-create-custom-csv-file-to-upload.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/2740521763690039642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/2740521763690039642'/><link rel='alternate' type='text/html' href='http://joshuaredstone.blogspot.com/2008/12/howto-create-custom-csv-file-to-upload.html' title='Howto create custom csv file to upload into gmail contacts'/><author><name>Josh</name><uri>http://www.blogger.com/profile/05824098668540667172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_xApetGAM4oo/SYFAh_c9ZAI/AAAAAAAAAkU/9EXbUWOrP64/S220/DSC00569.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3338128750432104713.post-1547926310807609268</id><published>2008-12-07T11:08:00.000-08:00</published><updated>2009-01-04T10:27:36.674-08:00</updated><title type='text'>Comparison of historical financial data accuracy among three providers</title><content type='html'>I had been using Yahoo finance's historical data for some quantitative modeling I have been dabbling with.  At one point, I noticed that that for two assets, Yahoo did not report closing prices on the same set of days.  That is, there was a day in which Yahoo reported a closing price for one but not the other.  So I started investigating the extent of data inconsistencies and here's the upshot:&lt;br /&gt;&lt;br /&gt;I compared two historical data sources and used a third to resolve disaggreements.  The first is &lt;br /&gt;Yahoo's historical data, which is free and is based on Commodity Systems, Inc. (CSI).  The second data source is Xignite, which costs about $160/month and is based on &lt;a href="http://xignite.com/ClientPartner/DataPartnerDirectory.aspx"&gt;some combination of DDF, Reuters, and Zacks&lt;/a&gt;.   When the two sources disagreed, I resolved it by consulting a third, marketwatch.com, which is free and based on &lt;a href="http://www.ftinteractivedata.com/"&gt;Interactive Data Pricing and Reference Data&lt;/a&gt;.  The comparison was of market days as well as closing prices.&lt;br /&gt;&lt;br /&gt;Here is the abbreviated raw output of my comparison script for two assets: VEURX and VBISX (Vanguard funds)&lt;br /&gt;&lt;br /&gt;&lt;pre class="jcodeblock"&gt;&lt;br /&gt;desktop:~/finance$ ./st.py veurx&lt;br /&gt;  Xignite/VEURX(2008-11-20 - 1994-01-04) vs Yahoo/VEURX(2008-11-13 - 1990-11-01)&lt;br /&gt;  WARNING: Xignite/VEURX is missing date 2006-01-13, present in Yahoo/VEURX and marketwatch.&lt;br /&gt;  WARNING: Xignite/VEURX is missing date 2004-05-26, present in Yahoo/VEURX and marketwatch.   &lt;br /&gt;  WARNING: Xignite/VEURX is missing date 2004-02-25, present in Yahoo/VEURX and marketwatch.   &lt;br /&gt;  WARNING: Xignite/VEURX is missing date 1995-07-12, present in Yahoo/VEURX and marketwatch.   &lt;br /&gt;  Xignite/VEURX leads with 5 extra points&lt;br /&gt;  Yahoo/VEURX goes further back 802 points&lt;br /&gt;  BAD DATA on 1994-02-08&lt;br /&gt;    Yahoo= 0.00350 Xignite=-0.00083 1994-02-08 1994-02-08          8.60000 8.57000 12.04000 12.05000&lt;br /&gt;    Xignite is the outlier&lt;br /&gt;  BAD DATA on 1994-02-09&lt;br /&gt;    Yahoo=-0.00465 Xignite= 0.00000 1994-02-09 1994-02-09          8.56000 8.60000 12.04000 12.04000&lt;br /&gt;    Xignite is the outlier&lt;br /&gt;  BAD DATA on 1994-03-01&lt;br /&gt;    Yahoo=-0.01175 Xignite=-0.02843 1994-03-01 1994-03-01          8.41000 8.51000 11.62000 11.96000&lt;br /&gt;    Xignite is the outlier&lt;br /&gt;  BAD DATA on 1994-03-02&lt;br /&gt;    Yahoo=-0.01665 Xignite= 0.00000 1994-03-02 1994-03-02          8.27000 8.41000 11.62000 11.62000&lt;br /&gt;    Xignite is the outlier&lt;br /&gt;  BAD DATA on 1994-03-04&lt;br /&gt;    Yahoo= 0.00963 Xignite= 0.00000 1994-03-04 1994-03-04          8.39000 8.31000 11.68000 11.68000&lt;br /&gt;    Xignite is the outlier&lt;br /&gt;  BAD DATA on 1994-03-07&lt;br /&gt;    Yahoo= 0.01192 Xignite= 0.02226 1994-03-07 1994-03-07          8.49000 8.39000 11.94000 11.68000&lt;br /&gt;    Xignite is the outlier&lt;br /&gt;  BAD DATA on 1994-05-26&lt;br /&gt;    Yahoo= 0.00239 Xignite=-0.01954 1994-05-26 1994-05-26          8.39000 8.37000 11.56936 11.79995&lt;br /&gt;    Xignite is the outlier&lt;br /&gt;  BAD DATA on 1994-05-27&lt;br /&gt;    Yahoo=-0.01073 Xignite= 0.01127 1994-05-27 1994-05-27          8.30000 8.39000 11.69969 11.56936&lt;br /&gt;    Xignite is the outlier&lt;br /&gt;  BAD DATA on 1994-06-27&lt;br /&gt;    Yahoo= 0.00000 Xignite= 0.01317 1994-06-27 1994-06-27          8.10000 8.10000 11.56936 11.41898&lt;br /&gt;    Yahoo is the outlier&lt;br /&gt;  BAD DATA on 1994-06-28&lt;br /&gt;    Yahoo= 0.01605 Xignite= 0.00260 1994-06-28 1994-06-28          8.23000 8.10000 11.59944 11.56936&lt;br /&gt;    Yahoo is the outlier&lt;br /&gt;  BAD DATA on 1994-07-18&lt;br /&gt;    Yahoo= 0.00000 Xignite= 0.00993 1994-07-18 1994-07-18          8.59000 8.59000 12.23104 12.11074&lt;br /&gt;    Yahoo is the outlier&lt;br /&gt;  BAD DATA on 1994-07-19&lt;br /&gt;    Yahoo= 0.00815 Xignite=-0.00164 1994-07-19 1994-07-19          8.66000 8.59000 12.21099 12.23104&lt;br /&gt;    Yahoo is the outlier&lt;br /&gt;  BAD DATA on 1996-02-20&lt;br /&gt;    Yahoo=-0.01214 Xignite= 0.00000 1996-02-20 1996-02-20          10.58000 10.71000 15.09505 15.09505&lt;br /&gt;    Xignite is the outlier&lt;br /&gt;  BAD DATA on 1996-02-21&lt;br /&gt;    Yahoo= 0.00567 Xignite=-0.00699 1996-02-21 1996-02-21          10.64000 10.58000 14.98949 15.09505&lt;br /&gt;    Xignite is the outlier&lt;br /&gt;  BAD DATA on 1998-05-19&lt;br /&gt;    Yahoo= 0.01495 Xignite= 0.00000 1998-05-19 1998-05-19          19.69000 19.40000 27.32290 27.32290&lt;br /&gt;    Xignite is the outlier&lt;br /&gt;  BAD DATA on 1998-05-20&lt;br /&gt;    Yahoo= 0.01524 Xignite= 0.03048 1998-05-20 1998-05-20          19.99000 19.69000 28.15558 27.32290&lt;br /&gt;    Xignite is the outlier&lt;br /&gt;  [ ...... omitted rest for brevity ....... ]&lt;br /&gt;  TOTAL: Yahoo=1.51066 Xignite=1.51084&lt;br /&gt;desktop:~/finance$ ./st.py vbisx&lt;br /&gt;  WARNING: Fabricating data for Yahoo/VBISX on 2003-11-28&lt;br /&gt;  Xignite/VBISX(2008-11-19 - 1994-03-10) vs Yahoo/VBISX(2008-11-10 - 1996-06-20)&lt;br /&gt;  WARNING: Xignite/VBISX is missing date 2004-05-26, present in Yahoo/VBISX and marketwatch.   &lt;br /&gt;  WARNING: Xignite/VBISX is missing date 2004-02-25, present in Yahoo/VBISX and marketwatch.   &lt;br /&gt;  Xignite/VBISX leads with 7 extra points&lt;br /&gt;  Xignite/VBISX goes further back 575 points&lt;br /&gt;  BAD DATA on 2004-04-20&lt;br /&gt;    Yahoo= 0.00000 Xignite=-0.00391 2004-04-20 2004-04-20          8.58000 8.58000 15.61512 15.67636&lt;br /&gt;    Yahoo is the outlier&lt;br /&gt;  BAD DATA on 2004-04-21&lt;br /&gt;    Yahoo=-0.00233 Xignite= 0.00098 2004-04-21 2004-04-21          8.56000 8.58000 15.63043 15.61512&lt;br /&gt;    Yahoo is the outlier&lt;br /&gt;  BAD DATA on 2008-10-31&lt;br /&gt;    Yahoo= 0.00101 Xignite= 0.00412 2008-10-31 2008-10-31          9.95000 9.94000 18.22287 18.14801&lt;br /&gt;    WARNING:  All prices agree with Marketwatch&lt;br /&gt;  TOTAL: Yahoo=0.88037 Xignite=0.88195&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;In general, over a bunch of assets, it seemed like Xignite's data was more buggy than Yahoo's.  The caveat here of course is that marketwatch is an independent data source.  I think it is because it sometimes agrees with Yahoo and sometimes with Xignite, though that's not conclusive.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3338128750432104713-1547926310807609268?l=joshuaredstone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joshuaredstone.blogspot.com/feeds/1547926310807609268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://joshuaredstone.blogspot.com/2008/12/comparison-of-historical-financial-data.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/1547926310807609268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/1547926310807609268'/><link rel='alternate' type='text/html' href='http://joshuaredstone.blogspot.com/2008/12/comparison-of-historical-financial-data.html' title='Comparison of historical financial data accuracy among three providers'/><author><name>Josh</name><uri>http://www.blogger.com/profile/05824098668540667172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_xApetGAM4oo/SYFAh_c9ZAI/AAAAAAAAAkU/9EXbUWOrP64/S220/DSC00569.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3338128750432104713.post-5561934708965186283</id><published>2008-12-07T10:56:00.000-08:00</published><updated>2008-12-07T11:01:55.690-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='crackling noise'/><category scheme='http://www.blogger.com/atom/ns#' term='whining'/><category scheme='http://www.blogger.com/atom/ns#' term='high-pitch'/><category scheme='http://www.blogger.com/atom/ns#' term='high-frequency'/><title type='text'>Lenovo T500 noise issue</title><content type='html'>So as many others have reported with other laptops, the Lenovo T500 makes a high-frequency whining noise.  After going through at least 6 cases with Lenovo tech-support (they had no idea what to make of it and kept thinking it was the fan), including replacing the fan, it got escalated, and tech support returned the laptop with 'CPU power management' disabled in BIOS.  Investigating further, and it looks like alternating the CPU to low power states C4 onwards causes it to make the noise.  Thinkwiki has a bunch of suggestions on reducing the noise, but the only one that reliably worked is to prevent the CPU from entering those states.  I found this is done either by the BIOS setting change, or I found that plugging in a USB mouse also prevented the CPU from entering the power saving state - as reported by powertop.    I'm running Ubuntu on it.  I've heard elsewhere people had tricks on windows to tell the OS how to schedule the power cycling, but I haven't tried them.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3338128750432104713-5561934708965186283?l=joshuaredstone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joshuaredstone.blogspot.com/feeds/5561934708965186283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://joshuaredstone.blogspot.com/2008/12/lenovo-t500-noise-issue.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/5561934708965186283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/5561934708965186283'/><link rel='alternate' type='text/html' href='http://joshuaredstone.blogspot.com/2008/12/lenovo-t500-noise-issue.html' title='Lenovo T500 noise issue'/><author><name>Josh</name><uri>http://www.blogger.com/profile/05824098668540667172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_xApetGAM4oo/SYFAh_c9ZAI/AAAAAAAAAkU/9EXbUWOrP64/S220/DSC00569.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3338128750432104713.post-1173234141613506327</id><published>2008-12-07T10:41:00.000-08:00</published><updated>2008-12-07T10:55:17.017-08:00</updated><title type='text'>Laptop power consumption</title><content type='html'>I recently got a Lenovo T500 based on the new Intel 4-series chipset.  It's pretty solidly built, except that the display has a dead pixel.   My first action was to get it to dual-boot Ubuntu and Vista - the hardest part was getting Vista not to hog the whole disk.  Maybe I'll write on that procedure sometime.  Also, the laptop makes a high-pitched noise that, after 4 tech-support services, was finally diagnosed as being due to CPU power management.  Apparently this happens on lots of laptops.  As the CPU goes into and out of low power states (C4 - C6), it emits the noise.  Lenovo's 'solution' was to disable CPU power management in BIOS.  I installed powertop, a nifty utility to measure power usage (though not sure if it captures ALL power consumed or just a subset) and did the following measurements.  The setup was the laptop running on battery power, with gmail running in firefox.  I wasn't interacting with it.&lt;br /&gt;&lt;br /&gt;&lt;table&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Mode&lt;/th&gt;&lt;th&gt;Power reported by powertop&lt;br /&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CPU power management disabled: LCD maximum brightness&lt;/td&gt;&lt;td&gt;19.8W&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CPU power management disabled: LCD minimum brightness&lt;/td&gt;&lt;td&gt;15.2W&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CPU power management enabled: LCD maximum brightness&lt;/td&gt;&lt;td&gt;18.7W&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CPU power management enabled: LCD minimum brightness&lt;/td&gt;&lt;td&gt;14.0W&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;CPU power management enabled: LCD minimum brightness, RF Kill switch on&lt;/td&gt;&lt;td&gt;13.0W&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;I also tried a bunch of the optimizations suggested at thinkwiki, such as disabling pcmcia and usb 1.1, and reducing disk writeback, but it didn't seem to make a difference.  Of course, that could be because powertop power reporting does not include those power drains in its numbers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3338128750432104713-1173234141613506327?l=joshuaredstone.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://joshuaredstone.blogspot.com/feeds/1173234141613506327/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://joshuaredstone.blogspot.com/2008/12/laptop-power-consumption.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/1173234141613506327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3338128750432104713/posts/default/1173234141613506327'/><link rel='alternate' type='text/html' href='http://joshuaredstone.blogspot.com/2008/12/laptop-power-consumption.html' title='Laptop power consumption'/><author><name>Josh</name><uri>http://www.blogger.com/profile/05824098668540667172</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='26' height='32' src='http://4.bp.blogspot.com/_xApetGAM4oo/SYFAh_c9ZAI/AAAAAAAAAkU/9EXbUWOrP64/S220/DSC00569.JPG'/></author><thr:total>0</thr:total></entry></feed>
