<?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-1557403331584851191</id><updated>2012-01-28T08:20:05.808-08:00</updated><category term='apache'/><category term='facebook'/><category term='mail'/><category term='virtualbox'/><category term='tweetdeck'/><category term='cvs'/><category term='emacs'/><category term='vi'/><category term='air'/><category term='wifi'/><category term='usb'/><category term='web'/><category term='vm'/><category term='autohotkey'/><category term='harmony remote'/><category term='tomato router'/><category term='networking'/><category term='roku'/><category term='tivo'/><category term='google docs'/><category term='android'/><category term='iphone'/><category term='qam'/><category term='git'/><category term='python'/><category term='rss'/><category term='twitter'/><category term='webscarab'/><category term='mac'/><category term='windows'/><category term='eclipse'/><category term='google site'/><category term='delicious backups'/><category term='hg'/><category term='blogging'/><category term='X11'/><category term='wii fit'/><category term='webgoat'/><title type='text'>How did I do that?</title><subtitle type='html'>This is me capturing various things so I remember how I did them. If anyone else finds them useful, great.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://vwelch.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://vwelch.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Von</name><uri>http://www.blogger.com/profile/05687325630634707896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>26</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1557403331584851191.post-8204349122184056177</id><published>2011-06-11T03:40:00.000-07:00</published><updated>2011-06-11T03:40:47.587-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='emacs'/><title type='text'>"setup.py test" throwing "ValueError: Empty module name"</title><content type='html'>Running 'setup.py test' suddenly started throwing a ValueError:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;$ /usr/bin/python ./setup.py test&lt;br /&gt;running test&lt;br /&gt;running egg_info&lt;br /&gt;writing pyVBox.egg-info/PKG-INFO&lt;br /&gt;writing top-level names to pyVBox.egg-info/top_level.txt&lt;br /&gt;writing dependency_links to pyVBox.egg-info/dependency_links.txt&lt;br /&gt;reading manifest file 'pyVBox.egg-info/SOURCES.txt'&lt;br /&gt;writing manifest file 'pyVBox.egg-info/SOURCES.txt'&lt;br /&gt;running build_ext&lt;br /&gt;Traceback (most recent call last):&lt;br /&gt;&amp;nbsp; File "./setup.py", line 17, in &lt;module&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; url = "http://github.com/von/pyVBox"&lt;br /&gt;...snip...&lt;br /&gt;&amp;nbsp; File "/System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/unittest.py", line 576, in loadTestsFromName&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; module = __import__('.'.join(parts_copy))&lt;br /&gt;ValueError: Empty module name&lt;/module&gt;&lt;/blockquote&gt;Poking around with pdb, it turns out it was because the name argument to loadTestsFromName():&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;(Pdb) print parts_copy&lt;br /&gt;['test', '', '#VirtualMachineTests']&lt;br /&gt;(Pdb) print name&lt;br /&gt;test..#VirtualMachineTests&lt;/blockquote&gt;&lt;br /&gt;Which turns out to be caused by a Emacs autosave file. I had unsaved changes in my Emacs buffer. Once I saved them, the autosave file went away and 'setup.py test' ran fine.&lt;br /&gt;&lt;br /&gt;Obviously some deeper problem here with setup.py tripping over these files.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1557403331584851191-8204349122184056177?l=vwelch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vwelch.blogspot.com/feeds/8204349122184056177/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vwelch.blogspot.com/2011/06/setuppy-test-throwing-valueerror-empty.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/8204349122184056177'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/8204349122184056177'/><link rel='alternate' type='text/html' href='http://vwelch.blogspot.com/2011/06/setuppy-test-throwing-valueerror-empty.html' title='&quot;setup.py test&quot; throwing &quot;ValueError: Empty module name&quot;'/><author><name>Von</name><uri>http://www.blogger.com/profile/05687325630634707896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1557403331584851191.post-7560798814436982575</id><published>2011-04-06T07:00:00.000-07:00</published><updated>2011-04-06T07:15:09.320-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mail'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><title type='text'>Apple Mail losing all state</title><content type='html'>Seen this scenario a couple of times:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Mac crashes&lt;/li&gt;&lt;li&gt;Reboot and when Mail starts up, it's lost all of it's state and wants me to re-enter all my accounts information.&lt;/li&gt;&lt;/ol&gt;Fortunately, all my email is in IMap, so it's just a matter of restoring Mail's state about my IMap accounts. This is done by shutting down Mail, replacing ~/Library/Preferences/com.apple.mail.plist with a good copy from a backup.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1557403331584851191-7560798814436982575?l=vwelch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vwelch.blogspot.com/feeds/7560798814436982575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vwelch.blogspot.com/2011/04/apple-mail-loosing-all-state.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/7560798814436982575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/7560798814436982575'/><link rel='alternate' type='text/html' href='http://vwelch.blogspot.com/2011/04/apple-mail-loosing-all-state.html' title='Apple Mail losing all state'/><author><name>Von</name><uri>http://www.blogger.com/profile/05687325630634707896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1557403331584851191.post-7982267104088034824</id><published>2011-03-12T20:00:00.000-08:00</published><updated>2011-03-15T18:13:42.753-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tomato router'/><category scheme='http://www.blogger.com/atom/ns#' term='wifi'/><title type='text'>Adding a Tomato router as a Wifi extender</title><content type='html'>I recently moved into a house with a finished basement, which really puts a crimp into my ability to run cat5 ethernet where I want it. So, I needed some wifi extension and the ability to support some devices without wifi capability.&lt;br /&gt;&lt;br /&gt;Since I'm using a &lt;a href="http://www.polarcloud.com/tomato"&gt;Tomato router&lt;/a&gt; which supports &lt;a href="http://en.wikipedia.org/wiki/Wireless_Distribution_System"&gt;WDS&lt;/a&gt;, I decided to add a second router and use WDS to turn it into an extender and a wired-to-wireless bridge.&lt;br /&gt;&lt;br /&gt;I bought another &lt;a href="http://www.amazon.com/Cisco-Linksys-WRT54GL-Wireless-G-Broadband-Compatible/dp/B000BTL0OA/ref=pd_ybh_3?pf_rd_p=280800601&amp;amp;pf_rd_s=center-2&amp;amp;pf_rd_t=1501&amp;amp;pf_rd_i=ybh&amp;amp;pf_rd_m=ATVPDKIKX0DER&amp;amp;pf_rd_r=1TJJD3HNYAPHG533X497"&gt;Cisco/Linksys WRT54GL&lt;/a&gt;&amp;nbsp;and installed Tomato 1.28. I basically did &lt;a href="http://v2kblog.blogspot.com/2009/01/installing-tomato-router.html"&gt;what I did last time&lt;/a&gt;, with a couple tweaks:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;I downloaded and unpacked the Tomato firmware.&lt;/li&gt;&lt;li&gt;Since my home LAN is not the default network (192.168.1.0) I was able to connect my laptop to the new router via an ethernet cable and communicate with it directly without having it connected to the rest of my LAN. If you are using 192.168.1.0 for your LAN, you can do the same but you'll probably need to swap back and forth by turning your airport interface on and off, and disconnecting the ethernet cable.&lt;/li&gt;&lt;li&gt;I skipped the factory reset and just did the upgrade. All went smoothly.&lt;/li&gt;&lt;li&gt;After changing the password, under Basic/Identification I changed the router name and under Administration I changed the color scheme.&lt;/li&gt;&lt;li&gt;I then followed t&lt;a href="http://www.polarcloud.com/tomatofaq#how_do_i_use_wds"&gt;he directions in the Tomato FAQ to set up WDS&lt;/a&gt; on both routers. The only hitch I had here is initially tried to use&amp;nbsp;"WPA/WPA2 Personal" and "TKIP/AES" instead of "WPA Personal" and "AES" as the FAQ suggests and I couldn't get that to work. Following the directions exactly and things worked fine.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;That's it - pretty darn easy. I've ordered a third WRT54GL to add a third repeater which I'll chain to the second to add another wired-to-wireless bridge. I expect that to go smoothly and will post when I've finished that.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update 3/15&lt;/b&gt;: Added a third router, chained to the second and all is working well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1557403331584851191-7982267104088034824?l=vwelch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vwelch.blogspot.com/feeds/7982267104088034824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vwelch.blogspot.com/2011/03/adding-tomato-router-as-wifi-extender.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/7982267104088034824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/7982267104088034824'/><link rel='alternate' type='text/html' href='http://vwelch.blogspot.com/2011/03/adding-tomato-router-as-wifi-extender.html' title='Adding a Tomato router as a Wifi extender'/><author><name>Von</name><uri>http://www.blogger.com/profile/05687325630634707896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1557403331584851191.post-7286892345018446756</id><published>2010-10-25T05:34:00.000-07:00</published><updated>2010-10-25T05:34:09.202-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Fix stuck install on Android</title><content type='html'>Application updated and got stuck on "Installing..." - I couldn't cancel, reinstall, etc.&lt;br /&gt;&lt;br /&gt;What worked for me was to follow the advice on &lt;a href="http://downloadandroid.info/2010/10/fix-for-market-apps-hanging-on-downloading-or-installing/"&gt;this page&lt;/a&gt; and Uninstall Updates for the Market app (#1 on the page).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1557403331584851191-7286892345018446756?l=vwelch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vwelch.blogspot.com/feeds/7286892345018446756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vwelch.blogspot.com/2010/10/fix-stuck-install-on-android.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/7286892345018446756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/7286892345018446756'/><link rel='alternate' type='text/html' href='http://vwelch.blogspot.com/2010/10/fix-stuck-install-on-android.html' title='Fix stuck install on Android'/><author><name>Von</name><uri>http://www.blogger.com/profile/05687325630634707896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1557403331584851191.post-8774362235283000396</id><published>2010-10-23T07:11:00.000-07:00</published><updated>2010-10-23T07:11:36.836-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='hg'/><title type='text'>Migrating from hg to git</title><content type='html'>So I had some stuff hosted by Google code using mercurial, but I mainly use git and I found going back and forth distracting, so I decided to move over to git. To do this I basically followed the guidance from &lt;a href="http://hedonismbot.wordpress.com/2008/10/16/hg-fast-export-convert-mercurial-repositories-to-git-repositories/"&gt;this post&lt;/a&gt; and used the &lt;a href="https://git.wiki.kernel.org/index.php/InterfacesFrontendsAndTools#hg-fast-export"&gt;fast-export&lt;/a&gt;  utility.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1557403331584851191-8774362235283000396?l=vwelch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vwelch.blogspot.com/feeds/8774362235283000396/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vwelch.blogspot.com/2010/10/migrating-from-hg-to-git.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/8774362235283000396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/8774362235283000396'/><link rel='alternate' type='text/html' href='http://vwelch.blogspot.com/2010/10/migrating-from-hg-to-git.html' title='Migrating from hg to git'/><author><name>Von</name><uri>http://www.blogger.com/profile/05687325630634707896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1557403331584851191.post-2450153089162070636</id><published>2010-08-19T19:24:00.001-07:00</published><updated>2010-08-19T19:24:12.345-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git'/><title type='text'>git: Pushing a new branch back to an origin</title><content type='html'>&lt;p&gt;OK, I know this is straight forward git stuff, but I just couldn't find a clear example anywhere. I cloned a remote git repository, created a new local branch and then wanted to push that branch back to the original remote repository (without merging it first).&lt;/p&gt;&lt;p&gt;First, I cloned a remote repository, e.g.:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;git clone git@github.com:von/sandbox.git&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Then I created a new branch locally and make changes in that branch:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;cd sandbox&lt;/p&gt;&lt;p&gt;git checkout -b new-branch&lt;/p&gt;&lt;p&gt;edit &amp;amp;&amp;amp; commit&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Now I pushed the new branch back to the remote repository (i.e. origin) without merging it into the main branch (i.e. master). To do this, while on new-branch, just do a git push origin HEAD, i.e.:&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;git checkout new-branch&lt;/p&gt;&lt;p&gt;git push origin HEAD&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Basically you are saying push to origin the current HEAD.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1557403331584851191-2450153089162070636?l=vwelch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vwelch.blogspot.com/feeds/2450153089162070636/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vwelch.blogspot.com/2010/08/git-pushing-new-branch-back-to-origin.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/2450153089162070636'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/2450153089162070636'/><link rel='alternate' type='text/html' href='http://vwelch.blogspot.com/2010/08/git-pushing-new-branch-back-to-origin.html' title='git: Pushing a new branch back to an origin'/><author><name>Von</name><uri>http://www.blogger.com/profile/05687325630634707896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1557403331584851191.post-5335436877338098929</id><published>2010-03-13T12:14:00.000-08:00</published><updated>2010-03-13T12:15:58.090-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Managing my websites with git</title><content type='html'>I use git following &lt;a href="http://dmiessler.com/blog/using-git-to-maintain-your-website"&gt;these directions  from Daniel Miessler&lt;/a&gt;.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1557403331584851191-5335436877338098929?l=vwelch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vwelch.blogspot.com/feeds/5335436877338098929/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vwelch.blogspot.com/2010/03/managing-my-websites-with-git.html#comment-form' title='15 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/5335436877338098929'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/5335436877338098929'/><link rel='alternate' type='text/html' href='http://vwelch.blogspot.com/2010/03/managing-my-websites-with-git.html' title='Managing my websites with git'/><author><name>Von</name><uri>http://www.blogger.com/profile/05687325630634707896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1557403331584851191.post-5832642165995237431</id><published>2010-02-18T21:28:00.000-08:00</published><updated>2010-02-19T05:38:41.467-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='autohotkey'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><title type='text'>Mapping control-click to right click in Windows VM on a Mac host</title><content type='html'>&lt;div&gt;&lt;div&gt;Problem: emulating a right click/control click in a Windows VM on a Mac host with Mac's one-button trackpad.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Quick work around: You can put two fingers on trackpad and click to simulate right click.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cleaner solution as &lt;a href="http://muffinresearch.co.uk/archives/2006/10/08/emulating-right-click-in-windows-under-parallels-desktop/"&gt;suggested by Muffin Research Labs&lt;/a&gt; is to use AutoHotKey to enable use of control-click to emulate right-click:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Download and install &lt;a href="http://www.autohotkey.com/"&gt;AutoHotKey&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;Right click on &lt;a href="http://github.com/von/sandbox/raw/master/autohotkey/cntrol-left-remap.ahk"&gt;contrl-left-remap.ahk&lt;/a&gt; and save to Windows VM.&lt;/li&gt;&lt;li&gt;Double click on contrl-left-remap.ahk, while it will appear nothing happens you should now be able to control-click on things and Windows should behave like you right-clicked (e.g. you'll get the context menu if you click on a file).&lt;/li&gt;&lt;li&gt;To have this persist past a reboot, copy contrl-left-remap.ahk to &lt;i&gt;C:/Program Files/All Users/Start Menu/Programs/Startup&lt;/i&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1557403331584851191-5832642165995237431?l=vwelch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vwelch.blogspot.com/feeds/5832642165995237431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vwelch.blogspot.com/2010/02/mapping-mac-command-click-to-right.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/5832642165995237431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/5832642165995237431'/><link rel='alternate' type='text/html' href='http://vwelch.blogspot.com/2010/02/mapping-mac-command-click-to-right.html' title='Mapping control-click to right click in Windows VM on a Mac host'/><author><name>Von</name><uri>http://www.blogger.com/profile/05687325630634707896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1557403331584851191.post-71523888643425859</id><published>2010-02-05T18:01:00.000-08:00</published><updated>2010-02-05T18:05:23.381-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google site'/><title type='text'>How to change title of Google site page</title><content type='html'>If you create a page in a Google site and then decide you need to change the title of the page (i.e. the &lt;i&gt;&amp;lt;title&amp;gt;&lt;/i&gt; element), there doesn't seem to be a straight forward way to do it. Here's what I found:&lt;div&gt;&lt;ol&gt;&lt;li&gt;Click on &lt;i&gt;More Actions&lt;/i&gt;/&lt;i&gt;Page Settings&lt;/i&gt;&lt;/li&gt;&lt;li&gt;Select &lt;i&gt;Show Page Title&lt;/i&gt; and &lt;i&gt;Save&lt;/i&gt;&lt;/li&gt;&lt;li&gt;Now select &lt;i&gt;Edit Page&lt;/i&gt;&lt;/li&gt;&lt;li&gt;The title of the page should be at the very top, simply edit it to what you want it to be.&lt;/li&gt;&lt;li&gt;Save the page.&lt;/li&gt;&lt;li&gt;The title should now be changed.&lt;/li&gt;&lt;li&gt;Disable &lt;i&gt;Show Page Title&lt;/i&gt; under &lt;i&gt;More Actions&lt;/i&gt;/&lt;i&gt;Page Settings&lt;/i&gt;.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1557403331584851191-71523888643425859?l=vwelch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vwelch.blogspot.com/feeds/71523888643425859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vwelch.blogspot.com/2010/02/how-to-change-title-of-google-site-page.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/71523888643425859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/71523888643425859'/><link rel='alternate' type='text/html' href='http://vwelch.blogspot.com/2010/02/how-to-change-title-of-google-site-page.html' title='How to change title of Google site page'/><author><name>Von</name><uri>http://www.blogger.com/profile/05687325630634707896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1557403331584851191.post-16779984193750252</id><published>2010-01-23T09:36:00.000-08:00</published><updated>2010-01-23T09:43:56.082-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='delicious backups'/><title type='text'>Backing up my Delicious bookmarks</title><content type='html'>I use &lt;a href="http://delicious.com/"&gt;Delicious&lt;/a&gt; for all &lt;a href="http://delicious.com/vwelch"&gt;my&lt;/a&gt; web bookmarks. I like it because it lets me tag bookmarks, write notes about them, and also access them easily from all my browsers and computers. Bookmarking pages to Delicious is easy thanks to an &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3615"&gt;add-on for Firefox&lt;/a&gt; and a &lt;a href="http://delicious.com/help/bookmarklets"&gt;bookmarklet&lt;/a&gt; for other browsers.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;While I've never had a problem with Delicious, like all services in the cloud, I do like to make a personal backup of my data. Deilcious makes this easy with a nice &lt;a href="http://delicious.com/help/api"&gt;HTTP API&lt;/a&gt;. So I wrote a &lt;a href="http://code.google.com/p/vons-scripts/source/browse/utils/delicious-backup.py"&gt;python script&lt;/a&gt; to pull down all my bookmarks as a xml file. I just run it as a cron job every night and it makes copy of all my bookmarks. This way if Delicious ever drops off the face of the earth, it may take some work, but I know I can reconstruct all my data.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1557403331584851191-16779984193750252?l=vwelch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vwelch.blogspot.com/feeds/16779984193750252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vwelch.blogspot.com/2010/01/backing-up-my-delicious-bookmarks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/16779984193750252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/16779984193750252'/><link rel='alternate' type='text/html' href='http://vwelch.blogspot.com/2010/01/backing-up-my-delicious-bookmarks.html' title='Backing up my Delicious bookmarks'/><author><name>Von</name><uri>http://www.blogger.com/profile/05687325630634707896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1557403331584851191.post-4911690355478455946</id><published>2009-11-29T15:25:00.000-08:00</published><updated>2009-11-29T15:28:15.994-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='virtualbox'/><category scheme='http://www.blogger.com/atom/ns#' term='usb'/><category scheme='http://www.blogger.com/atom/ns#' term='harmony remote'/><title type='text'>VirtualBox Harmony remote programming disconnects</title><content type='html'>Trying to program my Harmony remote from WinXP inside of VirtualBox, I kept getting disconnect errors. Poking around, I found &lt;a href="http://www.arsgeek.com/2007/10/24/get-usb-devices-mounted-on-your-virtualbox-xp-machine-in-gutsy-ubuntu-710/"&gt;these directions&lt;/a&gt; (last four paragraphs of the post) for setting up a filter in the virtual machine configuration so that it automatically connects the USB device (the problem apparently is the remote disconnects when rebooting and without the filter, the virtual machine can't find it then).&lt;br /&gt;&lt;br /&gt;&lt;div id="ui-datepicker-div" style="display: none;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1557403331584851191-4911690355478455946?l=vwelch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vwelch.blogspot.com/feeds/4911690355478455946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vwelch.blogspot.com/2009/11/virtualbox-harmony-remote-programming.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/4911690355478455946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/4911690355478455946'/><link rel='alternate' type='text/html' href='http://vwelch.blogspot.com/2009/11/virtualbox-harmony-remote-programming.html' title='VirtualBox Harmony remote programming disconnects'/><author><name>Von</name><uri>http://www.blogger.com/profile/05687325630634707896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1557403331584851191.post-4089160032987128939</id><published>2009-11-08T08:19:00.000-08:00</published><updated>2010-03-13T11:55:37.924-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='roku'/><category scheme='http://www.blogger.com/atom/ns#' term='networking'/><title type='text'>Roku N1000 and Linksys EZXS55W equals network woes</title><content type='html'>&lt;div&gt;&lt;b&gt;Updated 3/13/2010:&lt;/b&gt; I've become convince the Linksys in question was just flakey and this was nothing specific to the Roku.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;I recently moved my Roku N1000 Netflix streamer from one room to another. On hooking it up I found it performed horribly. Took minutes to start streaming a movie and then it would frequently "hiccup" and have to re-buffer.&lt;br /&gt;&lt;br /&gt;Long story short, looks like it just didn't get along with the Linksys EZXS55W 5-port switch I had there. Switch seems to work fine with everything else, so I just swapped it with another switch (different Linksys) and all was good.&lt;br /&gt;&lt;div id="ui-datepicker-div" style="display: none;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1557403331584851191-4089160032987128939?l=vwelch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vwelch.blogspot.com/feeds/4089160032987128939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vwelch.blogspot.com/2009/11/roku-n1000-and-linksys-ezxs55w-equals.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/4089160032987128939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/4089160032987128939'/><link rel='alternate' type='text/html' href='http://vwelch.blogspot.com/2009/11/roku-n1000-and-linksys-ezxs55w-equals.html' title='Roku N1000 and Linksys EZXS55W equals network woes'/><author><name>Von</name><uri>http://www.blogger.com/profile/05687325630634707896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1557403331584851191.post-7363463345476449249</id><published>2009-10-31T07:24:00.000-07:00</published><updated>2009-11-29T09:33:29.478-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='git'/><category scheme='http://www.blogger.com/atom/ns#' term='cvs'/><title type='text'>Using git with a cvs repository</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Edited 11/29/2009&lt;/span&gt;: Even better than the below, use &lt;a href="http://github.com/wu-lee/git-cvs"&gt;git-cvs&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;My situation: Developing for a software project that uses a CVS repository, but I really want to use &lt;a href="http://git-scm.com/"&gt;git&lt;/a&gt; because I do a lot of development off-line and hate waiting until I get back online to commit (it's a pain to separate different commits and I forget what I did and why).&lt;br /&gt;&lt;br /&gt;Poking around the web I found a couple of good blog posts (linked to at points in this post where I found them useful) on how to use git locally for a cvs repository. I weaved them together and here's what worked for me.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Prerequisite Software&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;First you need to &lt;a href="http://maymay.net/blog/2008/04/15/how-to-import-cvs-code-repositories-into-git-using-git-cvsimport/"&gt;have the appropriate software installed&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;Make sure you have git-core package with cvsimport functionality:&lt;br /&gt;&lt;pre class="source-code"&gt;&lt;code&gt;% git help -a | grep cvsimport&lt;br /&gt;cvsimport           merge-recursive     status&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Make sure cvsps is installed, which it wasn't in my case:&lt;br /&gt;&lt;pre class="source-code"&gt;&lt;code&gt;% cvsps&lt;br /&gt;cvsps: Command not found.&lt;/code&gt;&lt;/pre&gt;I installed on my Mac using port:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;% sudo port install cvsps&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;And then I found it:&lt;br /&gt;&lt;pre class="source-code"&gt;&lt;code&gt;% rehash&lt;br /&gt;% cvsps&lt;br /&gt;Can't open CVS/Repository: No such file or directory&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Overview&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_qisl6UCSRNE/SuxtI_i2XAI/AAAAAAAABLg/UxCHEwEazBY/s1600-h/git-cvs.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 301px;" src="http://4.bp.blogspot.com/_qisl6UCSRNE/SuxtI_i2XAI/AAAAAAAABLg/UxCHEwEazBY/s320/git-cvs.jpg" alt="" id="BLOGGER_PHOTO_ID_5398810054574365698" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;The image at right shows how the structure works. You start with your main cvs repository. You import this into a git staging repository. You don't do any work in the staging repository, it exists solely for importing from git.&lt;br /&gt;&lt;br /&gt;You will then clone the staging repository into a working git repository where you will do all your development.&lt;br /&gt;&lt;br /&gt;Then you'll have another cvs checkout of the main cvs repository. This is were you will integrate your changes made in your git repository back into cvs.&lt;br /&gt;&lt;br /&gt;Kudos to &lt;a href="http://issaris.blogspot.com/2005/11/cvs-to-git-and-back.html"&gt;Takis Blog&lt;/a&gt; for much of the mechanisms here, but note that this blog post is somewhat dated and the command syntax has changed (e.g. 'git-cvs-import' is now 'git cvs-import').&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Set up&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Make the git staging repository ("staging.git") and import the CVS repository (which for the sake of this post I'll call 'repo'):&lt;br /&gt;&lt;pre class="source-code"&gt;&lt;code&gt;&lt;br /&gt;% mkdir staging.git&lt;br /&gt;% cd staging.git&lt;br /&gt;% git cvsimport -p -x -v -d $CVSROOT repo&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;Add a tag to indicate current synch point with CVS:&lt;br /&gt;&lt;pre class="source-code"&gt;&lt;code&gt;&lt;br /&gt;% git tag CVS-LAST-EXPORT&lt;/code&gt;&lt;/pre&gt;Make your git working directory ("repo.git"):&lt;br /&gt;&lt;pre class="source-code"&gt;&lt;code&gt;% cd ..&lt;br /&gt;% git clone -l staging.git repo.git&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;And check out your cvs staging area:&lt;br /&gt;&lt;pre class="source-code"&gt;&lt;code&gt;% cd ..&lt;br /&gt;% cvs checkout -d staging.cvs repo&lt;span style="font-family:Georgia,serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;span style="font-weight: bold;"&gt;Pulling changes from cvs into git&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If changes are checked into CVS, pull them into your git staging area by doing the following (the same command you used to create it in the first place).&lt;br /&gt;&lt;pre class="source-code"&gt;&lt;code&gt;% cd staging.git&lt;br /&gt;% git cvsimport -a -p -x -v -d $CVSROOT foo&lt;/code&gt;&lt;/pre&gt;Then go to your working git directory and pull them in:&lt;br /&gt;&lt;pre class="source-code"&gt;&lt;code&gt;% cd ../repo.git&lt;br /&gt;% git pull&lt;/code&gt;&lt;/pre&gt;Resolve any conflicts and commit them:&lt;br /&gt;&lt;pre class="source-code"&gt;&lt;code&gt;# edit files&lt;br /&gt;% git commit -a&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;span style="font-weight: bold;"&gt;Pushing changes from git to cvs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Start by making sure your cvs staging repository is up to date:&lt;br /&gt;&lt;pre class="source-code"&gt;&lt;code&gt;% cd ../staging.cvs&lt;br /&gt;% cvs update&lt;/code&gt;&lt;/pre&gt;Now examine the list of commits back to last CVS-LAST-EXPORT tag and commit all that you want to commit:&lt;br /&gt;&lt;pre class="source-code"&gt;&lt;code&gt;% setenv GIT_DIR ../repo.git/.git&lt;br /&gt;% git log CVS-LAST-EXPORT..&lt;br /&gt;# For each git commit id, execute the following&lt;br /&gt;% git cvsexportcommit 547f3018a8f951dcc4187e5f171b337bfbad1883&lt;br /&gt;# The last line of the above comment, will be a 'cvs commit' which you will execute:&lt;br /&gt;% cvs commit -F .msg 'README'&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;Optionally you can add '-c' after "cvsexportcommit" and it will automatically commit for you if the change looks good.&lt;br /&gt;&lt;br /&gt;When you are done, mark the last commit you exported with a tag:&lt;br /&gt;&lt;pre class="source-code"&gt;&lt;code&gt;&lt;br /&gt;% git tag CVS-LAST-EXPORT&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Don't forget to unset the GITDIR environment variable when you are done:&lt;br /&gt;&lt;pre class="source-code"&gt;&lt;code&gt;% unsetenv GIT_DIR&lt;/code&gt;&lt;/pre&gt;After committing to cvs, go back and import the changes into your git staging and working repositories.&lt;br /&gt;&lt;br /&gt;That should do it. I'm sure I'll update this post as I refine the process.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update&lt;/span&gt; 11/1: Fixed typo with 'setenv GITDIR' command. Added CVS-LAST-EXPORT tag. Fixed '-p x' to '-p -x' options with 'git cvsimport'.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update 11/3&lt;/span&gt;: Added '-a' to 'git cvsimport' and note about '-c' to cvsexportcommit.&lt;br /&gt;&lt;div id="ui-datepicker-div" style="display: none;"&gt;&lt;/div&gt;&lt;div id="ui-datepicker-div" style="display: none;"&gt;&lt;/div&gt;&lt;div id="ui-datepicker-div" style="display: none;"&gt;&lt;/div&gt;&lt;div id="ui-datepicker-div" style="display: none;"&gt;&lt;/div&gt;&lt;div id="ui-datepicker-div" style="display: none;"&gt;&lt;/div&gt;&lt;div id="ui-datepicker-div" style="display: none;"&gt;&lt;/div&gt;&lt;div id="ui-datepicker-div" style="display: none;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1557403331584851191-7363463345476449249?l=vwelch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vwelch.blogspot.com/feeds/7363463345476449249/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vwelch.blogspot.com/2009/10/using-git-with-cvs-repository.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/7363463345476449249'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/7363463345476449249'/><link rel='alternate' type='text/html' href='http://vwelch.blogspot.com/2009/10/using-git-with-cvs-repository.html' title='Using git with a cvs repository'/><author><name>Von</name><uri>http://www.blogger.com/profile/05687325630634707896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_qisl6UCSRNE/SuxtI_i2XAI/AAAAAAAABLg/UxCHEwEazBY/s72-c/git-cvs.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1557403331584851191.post-6001100033431958881</id><published>2009-10-31T07:22:00.000-07:00</published><updated>2009-10-31T13:12:53.817-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='qam'/><category scheme='http://www.blogger.com/atom/ns#' term='tivo'/><title type='text'>Tuning in Digital Cable (QAM) channels on TivoHD</title><content type='html'>Just got a TivoHD. I know that Comcast in my area puts out digital channels (using what is called &lt;a href="http://en.wikipedia.org/wiki/QAM"&gt;QAM&lt;/a&gt;) and the Tivo supposedly could tune them in, but it wasn't at all clear to me how to get the Tivo to do that. Here's how.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Go to TiVo Central, Messages and Settings, Settings, Channels, Channel Scan.&lt;/li&gt;&lt;li&gt;Select "Scan for channels" and settle in for 10-15 minutes. In my case it was half way through before it even found any channels, but it ended up finding 200+!&lt;/li&gt;&lt;li&gt;After it was done, I went back to Live TV and looked for my new channels, but couldn't find any but the ones I had before. Hmmm...&lt;/li&gt;&lt;li&gt;Ah, select "Guide" and then press Enter to bring up the Guide Options. (&lt;span style="font-weight: bold;"&gt;Update&lt;/span&gt;: see end of post for what is probably a better approach than this.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;For "Channels" select "All"&lt;/li&gt;&lt;li&gt;Now you should see a bunch of new digital channels (they'll look like "12-1") in the Guide as well as when you surf through the channels.&lt;/li&gt;&lt;/ul&gt;Having figured that out, I still have to say I'm a little disappointed:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;There is no show information for any of the digital channels.&lt;/li&gt;&lt;li&gt;Most (90%+!) of the digital channels seem to have no actual content, I just see a grey screen.&lt;/li&gt;&lt;/ul&gt;Now I suspect neither of those is Tivo's fault, I suspect it's Comcast's.&lt;br /&gt;&lt;br /&gt;I'm not sure if there is anyway to have Tivo ignore the channels with no content. Plan to keep poking around with that.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update&lt;/span&gt;: If you go toTiVo Central, Messages and Settings, Settings, Channels, Channel List you can mark which digital channels you receive. Once you have done that, under the Guide Options, leave Channel at "Chans You Receive" and then you will just see the channels you get.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="ui-datepicker-div" style="display: none;"&gt;&lt;/div&gt;&lt;div id="ui-datepicker-div" style="display: none;"&gt;&lt;/div&gt;&lt;div id="ui-datepicker-div" style="display: none;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1557403331584851191-6001100033431958881?l=vwelch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vwelch.blogspot.com/feeds/6001100033431958881/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vwelch.blogspot.com/2009/10/tuning-in-digital-cable-qam-channels-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/6001100033431958881'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/6001100033431958881'/><link rel='alternate' type='text/html' href='http://vwelch.blogspot.com/2009/10/tuning-in-digital-cable-qam-channels-on.html' title='Tuning in Digital Cable (QAM) channels on TivoHD'/><author><name>Von</name><uri>http://www.blogger.com/profile/05687325630634707896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1557403331584851191.post-2928548155274863200</id><published>2009-10-27T03:15:00.000-07:00</published><updated>2009-10-27T03:17:26.817-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><title type='text'>Adding source code formatting to Blogger</title><content type='html'>I used this &lt;a href="http://userscripts.org/scripts/show/39190"&gt;greasemonkey script&lt;/a&gt;. Definitely a little clumsy as you need to edit your Blogger template and install &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/748"&gt;greasemonkey&lt;/a&gt;.&lt;br /&gt;&lt;div id="ui-datepicker-div" style="display: none;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1557403331584851191-2928548155274863200?l=vwelch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vwelch.blogspot.com/feeds/2928548155274863200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vwelch.blogspot.com/2009/10/adding-source-code-formatting-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/2928548155274863200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/2928548155274863200'/><link rel='alternate' type='text/html' href='http://vwelch.blogspot.com/2009/10/adding-source-code-formatting-to.html' title='Adding source code formatting to Blogger'/><author><name>Von</name><uri>http://www.blogger.com/profile/05687325630634707896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1557403331584851191.post-7150924684866798575</id><published>2009-10-27T03:00:00.000-07:00</published><updated>2009-11-24T04:41:50.160-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tweetdeck'/><category scheme='http://www.blogger.com/atom/ns#' term='air'/><title type='text'>TweetDeck install and 3003 error</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Update&lt;/span&gt; 11/23: Trying again with the 0.31.3 TweetDeck release, it installs fine. Shrug...&lt;br /&gt;&lt;br /&gt;I'm trying to install TweekDeck on my Mac and I keep getting a 3003 error.&lt;br /&gt;&lt;br /&gt;I turned on &lt;a href="http://kb2.adobe.com/cps/403/kb403123.html"&gt;logging of the application install&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;% touch ~/.airappinstall.log&lt;br /&gt;&lt;br /&gt;And the full log follows.&lt;br /&gt;&lt;br /&gt;&lt;pre class="source-code"&gt;&lt;code&gt;% cat .airappinstall.log&lt;br /&gt;waiting to receive open event&lt;br /&gt;UI SWF load is complete&lt;br /&gt;UI initialized&lt;br /&gt;enter waitingForOpen&lt;br /&gt;Unpackaging to /private/var/folders/t6/t6puj+oYFsmrOCU8+6+IHU+++TM/TemporaryItems/FlashTmp1&lt;br /&gt;unpackaging is complete&lt;br /&gt;application is bound to side-by-side version 1.0&lt;br /&gt;application is bound to this version of the runtime&lt;br /&gt;app id TweetDeckFast&lt;br /&gt;pub id FFF259DC0CE2657847BBB4AFF0E62062EFC56543.1&lt;br /&gt;Application not located&lt;br /&gt;Waiting for user confirmation&lt;br /&gt;User confirmed action: install&lt;br /&gt;creating native installer in: /private/var/folders/t6/t6puj+oYFsmrOCU8+6+IHU+++TM/TemporaryItems/FlashTmp2&lt;br /&gt;native installer creation complete&lt;br /&gt;Starting install&lt;br /&gt;Destination for installed application is /Applications&lt;br /&gt;stateInstalling: [ErrorEvent type="error" bubbles=false cancelable=false eventPhase=2 text="Unhandled exception Error: Directory can't be written to" errorID=5006]&lt;br /&gt;stateInstallingWithElevation: enter install&lt;br /&gt;stateInstallingWithElevation: /Library/Frameworks/Adobe AIR.framework/Versions/1.0/Adobe AIR Application Installer -runtime /Library/Frameworks -silent -logToStdout -url -location /Applications -desktopShortcut -programMenu file:///private/tmp/TweetDeck_0_30.0.air&lt;br /&gt;subinstaller: Starting silent app install of file:///private/tmp/TweetDeck_0_30.0.air&lt;br /&gt;subinstaller: UI SWF load is complete&lt;br /&gt;subinstaller: UI initialized&lt;br /&gt;subinstaller: Unpackaging to /private/var/folders/zz/zzzivhrRnAmviuee+++++++++++/TemporaryItems/FlashTmp0&lt;br /&gt;subinstaller: unpackaging is complete&lt;br /&gt;subinstaller: application is bound to side-by-side version 1.0&lt;br /&gt;subinstaller: application is bound to this version of the runtime&lt;br /&gt;subinstaller: app id TweetDeckFast&lt;br /&gt;subinstaller: pub id FFF259DC0CE2657847BBB4AFF0E62062EFC56543.1&lt;br /&gt;subinstaller: Application not located&lt;br /&gt;subinstaller: creating native installer in: /private/var/folders/zz/zzzivhrRnAmviuee+++++++++++/TemporaryItems/FlashTmp1&lt;br /&gt;subinstaller: native installer creation complete&lt;br /&gt;subinstaller: Starting install&lt;br /&gt;subinstaller: Destination for installed application is /Applications&lt;br /&gt;subinstaller: Beginning install&lt;br /&gt;subinstaller: Copying /private/var/folders/zz/zzzivhrRnAmviuee+++++++++++/TemporaryItems/FlashTmp1/Template to /Applications/TweetDeck.app&lt;br /&gt;subinstaller: chown of /Applications/TweetDeck.app completed with status 0&lt;br /&gt;subinstaller: Execution complete; beginning commit phase&lt;br /&gt;subinstaller: Commit complete&lt;br /&gt;subinstaller: starting cleanup of temporary files&lt;br /&gt;subinstaller: application installer exiting&lt;br /&gt;received unknown message type from subinstaller: done&lt;br /&gt;Failed during elevated install: 3003&lt;br /&gt;starting cleanup of temporary files&lt;br /&gt;application installer exiting&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The obvious line is the exception about "Directory can't be written to" - but what directory? /Applications? Well, it is actually writing /Applications/Tweekdeck.app but that applications isn't executable:&lt;br /&gt;&lt;br /&gt;&lt;pre class="source-code"&gt;&lt;code&gt;&lt;br /&gt;% open /Applications/TweetDeck.app/&lt;br /&gt;LSOpenFromURLSpec() failed with error -10661 for the file /Applications/TweetDeck.app.&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;Anyone have any suggestions?&lt;br /&gt;&lt;br /&gt;[Updated 10/27 to include link to Adobe KB article on logging.]&lt;br /&gt;&lt;br /&gt;&lt;div id="ui-datepicker-div" style="display: none;"&gt;&lt;/div&gt;&lt;div id="ui-datepicker-div" style="display: none;"&gt;&lt;/div&gt;&lt;div id="ui-datepicker-div" style="display: none;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1557403331584851191-7150924684866798575?l=vwelch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vwelch.blogspot.com/feeds/7150924684866798575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vwelch.blogspot.com/2009/10/tweetdeck-install-and-3003-error.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/7150924684866798575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/7150924684866798575'/><link rel='alternate' type='text/html' href='http://vwelch.blogspot.com/2009/10/tweetdeck-install-and-3003-error.html' title='TweetDeck install and 3003 error'/><author><name>Von</name><uri>http://www.blogger.com/profile/05687325630634707896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1557403331584851191.post-2220193055261062697</id><published>2009-10-18T08:53:00.000-07:00</published><updated>2009-10-18T09:06:40.505-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><category scheme='http://www.blogger.com/atom/ns#' term='google docs'/><title type='text'>Google Docs folder sharing and my iPhone</title><content type='html'>One of the the things that has constantly annoyed me about my iPhone is that Safari is lousy at remembering my passwords. And I tend to use long, random passwords, which means they are (1) hard to enter on the iPhone pseudo keyboard and (2) hard for me to remember. Most of the time on my laptop, I keep my passwords in &lt;a href="http://keepass.info/"&gt;KeePass&lt;/a&gt; and cut'n'paste them into whatever application needs them (and yes, I think this is more secure than trying to memorize all the hundred+ passwords I have, but that's another post).&lt;br /&gt;&lt;br /&gt;And yes, there are similar applications to KeePass for the iPhone, but I don't know any good way to sync my KeePass database with them.&lt;br /&gt;&lt;br /&gt;One of the things I really like to do on my iPhone is access a set of recipes I have in Google docs. But inevitably my login session has timed out, so I have to go back to my laptop, get my Google password and type it in. By the time I do all that, it's easier just to have used my laptop in the first place.&lt;br /&gt;&lt;br /&gt;However, when Google added the feature of &lt;a href="http://docs.google.com/support/bin/answer.py?hl=en&amp;amp;answer=158074"&gt;sharing whole folders&lt;/a&gt;, a solution popped into my head: &lt;a href="https://www.google.com/accounts/NewAccount"&gt;create a Google account&lt;/a&gt; just to use on my iPhone, give it a password I can actually remember, and then share my recipes with that account.&lt;br /&gt;&lt;br /&gt;Why not just give my main Google account a password I can remember? Well, because I actually have stuff accessible by that account I care about, so I want a strong password on it. But since my new iPhone Google account only has access to stuff I share with it, and most of that is read-only, if that password is guessed, the ramifications are much less.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="ui-datepicker-div" style="display: none;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1557403331584851191-2220193055261062697?l=vwelch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vwelch.blogspot.com/feeds/2220193055261062697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vwelch.blogspot.com/2009/10/google-docs-folder-sharing-and-my.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/2220193055261062697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/2220193055261062697'/><link rel='alternate' type='text/html' href='http://vwelch.blogspot.com/2009/10/google-docs-folder-sharing-and-my.html' title='Google Docs folder sharing and my iPhone'/><author><name>Von</name><uri>http://www.blogger.com/profile/05687325630634707896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1557403331584851191.post-3856423436194063726</id><published>2009-06-09T20:57:00.000-07:00</published><updated>2009-06-09T21:01:03.433-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eclipse'/><title type='text'>Installing Eclipse on my mac - ~/.eclipse write errors</title><content type='html'>Installing &lt;a href="http://www.eclipse.org/"&gt;Eclipse&lt;/a&gt; 3.4.2, I did my usual download the tarball and, as root, untar it into /Applications. It would run fine, but after I installed packages, I kept getting all sorts of random errors with regards to writing to ~/.eclipse after installing packages.&lt;br /&gt;&lt;br /&gt;The trick seems to be not to install it as root, but instead untar it as myself. Then it doesn't seem to create a ~/.eclipse and runs without errors.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1557403331584851191-3856423436194063726?l=vwelch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vwelch.blogspot.com/feeds/3856423436194063726/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vwelch.blogspot.com/2009/06/installing-eclipse-on-my-mac-eclipse.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/3856423436194063726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/3856423436194063726'/><link rel='alternate' type='text/html' href='http://vwelch.blogspot.com/2009/06/installing-eclipse-on-my-mac-eclipse.html' title='Installing Eclipse on my mac - ~/.eclipse write errors'/><author><name>Von</name><uri>http://www.blogger.com/profile/05687325630634707896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1557403331584851191.post-6767933826446332924</id><published>2009-05-31T10:29:00.000-07:00</published><updated>2009-05-31T18:58:28.555-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vm'/><category scheme='http://www.blogger.com/atom/ns#' term='python'/><category scheme='http://www.blogger.com/atom/ns#' term='virtualbox'/><title type='text'>Booting a VirtualBox VM from removable drive without the GUI</title><content type='html'>I recently installed &lt;a href="http://www.virtualbox.org/"&gt;VirtualBox&lt;/a&gt; on one of &lt;a href="http://v2kblog.blogspot.com/2009/05/installing-virtual-box.html"&gt;my Ubuntu systems&lt;/a&gt;. I was intrigued by the VBoxManage command line client and was wondering if it would be possible to boot a VirtualBox VM from a removal drive entirely with a script (i.e. without the GUI).&lt;br /&gt;&lt;br /&gt;The answer is yes. You can see the script in &lt;a href="http://code.google.com/p/vons-scripts/source/browse/virtualbox/vbox-add-vm.py"&gt;my google code repository&lt;/a&gt; (Updated to HG path).&lt;br /&gt;&lt;br /&gt;In short, you create the VM as usual using the GUI (in theory you should be able to do that from the command line as well, but I need to work out details with the networking). Then remove the harddrive from the VM and copy the .xml and .vdi file to the removable drive. Then go ahead and remove the VM and harddrive from the GUI.&lt;br /&gt;&lt;br /&gt;At this point you can boot the VM using something like the following:&lt;br /&gt;&lt;blockquote&gt;$ &lt;span style="color: rgb(255, 102, 102);"&gt;vbox-add-vm.py -v -H /media/truecrypt1/VM.vdi /media/truecrypt1/VM.xml&lt;/span&gt;&lt;/blockquote&gt;The script will automatically register the VM and hard drive, add the hard drive to the VM, boot the VM, wait for it to shut down and then unregister everything.&lt;br /&gt;&lt;br /&gt;The only hiccup at this point is if you have the GUI running, it seems to keep the VM open in some way that prevents you from ejecting the device.&lt;br /&gt;&lt;br /&gt;Since I finished this script I discovered the &lt;a href="http://blogs.sun.com/nike/entry/python_api_to_the_virtualbox"&gt;VirtualBox SDK with Python bindings&lt;/a&gt;. For v2 of the script, then would be a natural thing to leverage.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1557403331584851191-6767933826446332924?l=vwelch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vwelch.blogspot.com/feeds/6767933826446332924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vwelch.blogspot.com/2009/05/booting-virtualbox-vm-from-removable.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/6767933826446332924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/6767933826446332924'/><link rel='alternate' type='text/html' href='http://vwelch.blogspot.com/2009/05/booting-virtualbox-vm-from-removable.html' title='Booting a VirtualBox VM from removable drive without the GUI'/><author><name>Von</name><uri>http://www.blogger.com/profile/05687325630634707896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1557403331584851191.post-1945642332741394999</id><published>2009-05-09T15:43:00.000-07:00</published><updated>2009-05-09T15:45:21.772-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogging'/><title type='text'>Label Cloud on blog</title><content type='html'>I added a label cloud to the blog following &lt;a href="http://widget-based.blogspot.com/2006/11/blogger-label-cloud.html"&gt;these directions&lt;/a&gt;.  My only change was to set minFontSize to 10.&lt;br /&gt;&lt;br /&gt;Don't forget so save your template before you begin in case you screw up.&lt;br /&gt;&lt;pre class="code"&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1557403331584851191-1945642332741394999?l=vwelch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vwelch.blogspot.com/feeds/1945642332741394999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vwelch.blogspot.com/2009/05/label-cloud-on-blog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/1945642332741394999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/1945642332741394999'/><link rel='alternate' type='text/html' href='http://vwelch.blogspot.com/2009/05/label-cloud-on-blog.html' title='Label Cloud on blog'/><author><name>Von</name><uri>http://www.blogger.com/profile/05687325630634707896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1557403331584851191.post-730441431317608880</id><published>2009-05-02T04:21:00.000-07:00</published><updated>2009-05-31T10:41:35.124-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tomato router'/><category scheme='http://www.blogger.com/atom/ns#' term='wii fit'/><title type='text'>Getting my Wii Fit to talk to my Tomato Router</title><content type='html'>The situation: a Wii Fit and a  &lt;a href="http://v2kblog.blogspot.com/2009/01/installing-tomato-router.html"&gt;Linksys-Cisco WRT54GL&lt;/a&gt;&lt;a href="http://v2kblog.blogspot.com/2009/01/installing-tomato-router.html"&gt; running Tomato 1.23&lt;/a&gt;. Every time I tried to connect the Wii Fit to my WPA2 network, I kept getting the following error:&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;Error Code: 51330 Unable to connect to the Internet&lt;/blockquote&gt;&lt;blockquote&gt;&lt;/blockquote&gt;A quick google turned by &lt;a href="http://wiihacks.blogspot.com/2006/11/fix-for-wii-error-codes-51330-52030.html"&gt;this page&lt;/a&gt; which led me to start playing with by wireless and security settings. Long story short, here are the settings (under the "Basic" setup menu) I ended up with that worked for me. I'm not sure all are important, but I'm pretty sure the last two (Encryption and Security) are.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Channel 1&lt;br /&gt;B/G Mode: Mixed&lt;br /&gt;Encryption: TKIP/AES&lt;br /&gt;Security: WPA/WPA2 Personal&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1557403331584851191-730441431317608880?l=vwelch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vwelch.blogspot.com/feeds/730441431317608880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vwelch.blogspot.com/2009/05/getting-my-wii-fit-to-talk-to-my-tomato.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/730441431317608880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/730441431317608880'/><link rel='alternate' type='text/html' href='http://vwelch.blogspot.com/2009/05/getting-my-wii-fit-to-talk-to-my-tomato.html' title='Getting my Wii Fit to talk to my Tomato Router'/><author><name>Von</name><uri>http://www.blogger.com/profile/05687325630634707896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1557403331584851191.post-6360998621871733126</id><published>2009-04-27T20:30:00.000-07:00</published><updated>2009-04-27T20:30:00.334-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='facebook'/><category scheme='http://www.blogger.com/atom/ns#' term='twitter'/><category scheme='http://www.blogger.com/atom/ns#' term='rss'/><title type='text'>Wrangling Twitter, Facebook and Blog updates</title><content type='html'>I've got a number of blogs (&lt;a href="http://blog.vwelch.com/2009/01/why-blog.html"&gt;why?&lt;/a&gt;) and I wanted to hook them up such that new posts got fed automatically to my Twitter account and Facebook status. Here a few tools I've found useful to do this:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The &lt;a href="http://apps.new.facebook.com/twitter/"&gt;Twitter app&lt;/a&gt; in Facebook updates your Facebook status from Twitter.&lt;/li&gt;&lt;li&gt;Even better, &lt;a href="http://apps.facebook.com/selectivetwitter/?_fb_fromhash=4cb98608a550a08dedc8a4b30d420e38"&gt;Selective Twitter Status&lt;/a&gt;, lets you feed your tweets selectively to your Facebook status by ending them with #FB (kudos to &lt;a href="http://venturebeat.com/2009/04/15/stop-the-tweet-spam-two-ways-to-filter-twitter-into-facebook/"&gt;this post&lt;/a&gt; for the tip).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://pipes.yahoo.com/pipes/"&gt;Yahoo Pipes&lt;/a&gt; allows you to combine multiple RSS feeds into a single feed, which is usefule if you are using something like the next item. &lt;/li&gt;&lt;li&gt;To feed a single RSS feed into Facebook, under your Profile page click on Settings, then select Blog/RSS and give it the RSS url. This is nice because it will posts things as Noteson your Wall instead of in your status, but it's limited to a single feed (hence Yahoo Pipes is useful to use with this).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://twitterfeed.com/"&gt;TwitterFeed&lt;/a&gt; can post any number of RSS feeds to Twitter. It even supports &lt;a href="http://oauth.net/"&gt;OAuth&lt;/a&gt;, meaning you don't have to share your twitter username and password (plus you authenticate to TwitterFeed with &lt;a href="http://openid.net/"&gt;OpenId&lt;/a&gt;, which is cool).&lt;/li&gt;&lt;/ul&gt;So, what I actually do? The following:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;I used Selective Twitter Status to update my Facebook status via selective feeds.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;I used TwitterFeed to feed my blogs posts into Twitter. Since they don't have the "#fb" tage, Selective Twitter Status won't carry them over into Facebook.  &lt;/li&gt;&lt;li&gt;I used Yahoo Pipes to combine by blogs RSS feeds and then the Facebook RSS function (under Profile/Settings) to display the blog postings on my Facebook Wall.&lt;/li&gt;&lt;li&gt;To update my Twitter status I the &lt;a href="http://labs.mozilla.com/projects/ubiquity/"&gt;Ubiquity&lt;/a&gt; built in Twitter command in FireFox (&lt;a href="http://www.kimwoodbridge.com/how-to-twitter-with-the-ubiquity-firefox-extension/"&gt;nice post on using this&lt;/a&gt;).&lt;/li&gt;&lt;li&gt;I also have &lt;a href="http://vwelch.blogspot.com/2009/04/installing-tweetdeck-on-my-mac-and.html"&gt;started using TweetDeck&lt;/a&gt; to monitor Twitter and may start using it to update Twitter.&lt;/li&gt;&lt;li&gt;I also use Bookmarklets for &lt;a href="http://www.facebook.com/share_options.php"&gt;Sharing in Facebook&lt;/a&gt; and &lt;a href="http://googlesystem.blogspot.com/2008/01/share-almost-any-blog-post-in-google.html"&gt;Noting in Google Reader&lt;/a&gt; for sharing random stuff I run into on the net. I'm finding the Sharing in Facebook to be better since the result looks nicer with a thumbnail and quoted text.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1557403331584851191-6360998621871733126?l=vwelch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vwelch.blogspot.com/feeds/6360998621871733126/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vwelch.blogspot.com/2009/04/wrangling-twitter-facebook-and-blog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/6360998621871733126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/6360998621871733126'/><link rel='alternate' type='text/html' href='http://vwelch.blogspot.com/2009/04/wrangling-twitter-facebook-and-blog.html' title='Wrangling Twitter, Facebook and Blog updates'/><author><name>Von</name><uri>http://www.blogger.com/profile/05687325630634707896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1557403331584851191.post-3800708157545640812</id><published>2009-04-26T13:13:00.000-07:00</published><updated>2009-04-26T13:27:41.781-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='twitter'/><category scheme='http://www.blogger.com/atom/ns#' term='tweetdeck'/><category scheme='http://www.blogger.com/atom/ns#' term='air'/><title type='text'>Installing TweetDeck on my Mac  and "Error #2038"</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_qisl6UCSRNE/SfTC8HX7u7I/AAAAAAAABF4/cveH98yqDVM/s1600-h/screen-capture-090426-1.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 149px;" src="http://2.bp.blogspot.com/_qisl6UCSRNE/SfTC8HX7u7I/AAAAAAAABF4/cveH98yqDVM/s320/screen-capture-090426-1.jpg" alt="" id="BLOGGER_PHOTO_ID_5329098597113510834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;After installing &lt;a href="http://www.tweetdeck.com/beta/"&gt;TweetDeck&lt;/a&gt; on &lt;a href="http://v2kblog.blogspot.com/2009/04/installing-tweetdeck-on-ubuntu.html"&gt;my Ubuntu system&lt;/a&gt; I went to install it on my Mac (I love cross-platform apps), but the install kept failing with a "Error# 2038" error (see right).&lt;br /&gt;&lt;br /&gt;So I had installed Air some time ago for something else (hmmm, can't remember what), so I thought perhaps it needed an update. So I wandered over to &lt;a href="http://get.adobe.com/air/"&gt;Adobe&lt;/a&gt; and installed a new version.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_qisl6UCSRNE/SfTDS_V59lI/AAAAAAAABGA/RzN4wrOGE2I/s1600-h/screen-capture-090426-2.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 177px;" src="http://3.bp.blogspot.com/_qisl6UCSRNE/SfTDS_V59lI/AAAAAAAABGA/RzN4wrOGE2I/s320/screen-capture-090426-2.jpg" alt="" id="BLOGGER_PHOTO_ID_5329098990094513746" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This represented an upgrade from "1.1.0.5790" to "1.5.1.8210" (see left).&lt;br /&gt;&lt;br /&gt;And that did it - after that I went back to Tweetdeck and re-tried the install and it worked.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1557403331584851191-3800708157545640812?l=vwelch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vwelch.blogspot.com/feeds/3800708157545640812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vwelch.blogspot.com/2009/04/installing-tweetdeck-on-my-mac-and.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/3800708157545640812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/3800708157545640812'/><link rel='alternate' type='text/html' href='http://vwelch.blogspot.com/2009/04/installing-tweetdeck-on-my-mac-and.html' title='Installing TweetDeck on my Mac  and &quot;Error #2038&quot;'/><author><name>Von</name><uri>http://www.blogger.com/profile/05687325630634707896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_qisl6UCSRNE/SfTC8HX7u7I/AAAAAAAABF4/cveH98yqDVM/s72-c/screen-capture-090426-1.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1557403331584851191.post-258958294306868167</id><published>2009-04-22T20:14:00.000-07:00</published><updated>2009-04-22T20:24:36.091-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='vi'/><category scheme='http://www.blogger.com/atom/ns#' term='X11'/><title type='text'>DISPLAY causes vi (vim) to hang...</title><content type='html'>Ran into a problem  the other day that whenever I SSH'ed from hoe into a system at work and ran vi (OK, it's actually vim, but I'm old school and know it as "vi"), vi just hung. It took a good old ^C interrupt to get it to respond.&lt;br /&gt;&lt;br /&gt;I ran "strace vi file" and saw it was hanging on the network.&lt;br /&gt;&lt;br /&gt;Huh? It wasn't a network filesystem, so why is vi hanging on the network?&lt;br /&gt;&lt;br /&gt;Well, on a hunch, I unset my DISPLAY environment variable:&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="color: rgb(51, 51, 51);"&gt;% &lt;span style="color: rgb(255, 0, 0);"&gt;env | grep DISPLAY&lt;/span&gt;&lt;br /&gt;DISPLAY=c-XXX.hsd1.il.comcast.net:0.0&lt;br /&gt;%&lt;span style="color: rgb(255, 0, 0);"&gt; unsetenv DISPLAY&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;And then things worked fine.&lt;br /&gt;&lt;br /&gt;So vi was trying to do some X11 thing and was getting blocked by my ISP or my NAT router or something between me and work. What the heck vi (vim) is trying to do X11 I don't know....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1557403331584851191-258958294306868167?l=vwelch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vwelch.blogspot.com/feeds/258958294306868167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vwelch.blogspot.com/2009/04/display-causes-vi-vim-to-hang.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/258958294306868167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/258958294306868167'/><link rel='alternate' type='text/html' href='http://vwelch.blogspot.com/2009/04/display-causes-vi-vim-to-hang.html' title='DISPLAY causes vi (vim) to hang...'/><author><name>Von</name><uri>http://www.blogger.com/profile/05687325630634707896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1557403331584851191.post-7763482016807355724</id><published>2009-04-20T18:14:00.000-07:00</published><updated>2009-04-20T18:30:28.068-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><category scheme='http://www.blogger.com/atom/ns#' term='web'/><title type='text'>Creating a local virtual host for testing</title><content type='html'>I have a &lt;a href="http://www.vwelch.com"&gt;modest little website&lt;/a&gt;. It's nothing too fancy, but has some php and css that make it non-trivial, enough that I'm uncomfortable making changes to it live, so I wanted to set up a secondary test server to try things out on.&lt;br /&gt;&lt;br /&gt;Sounds easy enough, but where? A virtual host on the same server as my website seems logical enough, but I don't own the box it runs on, I get the space thanks to some generous friends and I didn't want to bug them for another favor to set up a virtual host.&lt;br /&gt;&lt;br /&gt;Thinking about it I realized I was already running Apache on my laptop, so in theory could set up a virtual host on it. I could use /etc/hosts to create a "test hostname" pointing at my localhost I could use in URLs. So that's what I went about doing.&lt;br /&gt;&lt;br /&gt;First, I added an entry to /etc/hosts:&lt;br /&gt;&lt;blockquote style="color: rgb(51, 51, 51);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;$grep test.vwelch.com /etc/hosts&lt;/span&gt;&lt;br /&gt;127.0.0.1       test.vwelch.com&lt;/blockquote&gt;Then I added the virtual host entry for test.vwelch.com to my Apache configuration so that it would recognize URLs using it and serve content from a separate location that it normally would. This is on a Mac, so the details here might vary based on your OS, but if you search for "virtual host configuration" and the name of your OS I suspect you'll find help.&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;$ cat /etc/apache2/other/vwelch.conf&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51);"&gt;NameVirtualHost test.vwelch.com&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51);"&gt;&lt;virtualhost&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51);"&gt;        ServerName test.vwelch.com&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51);"&gt;        DocumentRoot /usr/local/www/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51);"&gt;&lt;/virtualhost&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51);"&gt;&lt;directory&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51);"&gt;        Options FollowSymLinks ExecCGI&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51);"&gt;        AllowOverride All&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51);"&gt;        Order allow,deny&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51);"&gt;        Allow from all&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 51);"&gt;&lt;/directory&gt;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;Then I checked out a copy of my website from my git repository into /usr/local/www, restarted Apache ("apachectl restart") and pointed my web browser at "http://test.vwelch.com" and I had a complete copy of my website in a local playground that I could develop on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1557403331584851191-7763482016807355724?l=vwelch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vwelch.blogspot.com/feeds/7763482016807355724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vwelch.blogspot.com/2009/04/creating-local-virtual-host-for-testing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/7763482016807355724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/7763482016807355724'/><link rel='alternate' type='text/html' href='http://vwelch.blogspot.com/2009/04/creating-local-virtual-host-for-testing.html' title='Creating a local virtual host for testing'/><author><name>Von</name><uri>http://www.blogger.com/profile/05687325630634707896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1557403331584851191.post-4552444702116479370</id><published>2009-04-11T18:56:00.000-07:00</published><updated>2011-11-30T12:14:41.259-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webscarab'/><category scheme='http://www.blogger.com/atom/ns#' term='vm'/><category scheme='http://www.blogger.com/atom/ns#' term='webgoat'/><title type='text'>Creating a OWASP WebGoat Ubuntu-based VM</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_qisl6UCSRNE/SePkZuiyZqI/AAAAAAAABFs/MdW710SLl28/s1600-h/webgoat"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5324350315123861154" src="http://2.bp.blogspot.com/_qisl6UCSRNE/SePkZuiyZqI/AAAAAAAABFs/MdW710SLl28/s320/webgoat" style="cursor: pointer; float: right; height: 200px; margin: 0pt 0pt 10px 10px; width: 320px;" /&gt;&lt;/a&gt;&lt;br /&gt;I wanted to play with OWASP's &lt;a href="http://www.owasp.org/index.php/Category:OWASP_WebGoat_Project"&gt;WebGoat&lt;/a&gt;. So I created a Ubuntu Desktop VM, and installed Java and WebGoat. You also need a web proxy to do the lessons, so I installed WebScarab along with the FoxyProxy extension for FireFox to make using it easy. This post details all the steps I went through.&lt;br /&gt;&lt;br /&gt;I did find &lt;a href="http://marc.info/?l=owasp-webgoat&amp;amp;m=113260860928145&amp;amp;w=2"&gt;these directions&lt;/a&gt; for doing this similar. They are outdated, but kudos to them for some basic concepts I followed.&lt;br /&gt;&lt;br /&gt;[Update 11/30/2011: And there is now apparently &lt;a href="http://www.blogger.com/goog_1501573465"&gt;a &lt;/a&gt;&lt;a="href="http: 11="" 2011="" running-webgoat-owasp-in-ubuntu-vm.html"="" tostercrums.blogspot.com=""&gt;&lt;a href="http://tostercrums.blogspot.com/2011/11/running-webgoat-owasp-in-ubuntu-vm.html"&gt;new version&lt;/a&gt; of my directions.]&lt;br /&gt;&lt;br /&gt;I started with a fresh copy of a Ubuntu 8.0.4 Desktop image (I made my own, but you should be able to use an &lt;a href="http://www.vmware.com/appliances/directory/1224"&gt;existing image&lt;/a&gt;). Fire up the image, login in, fire up a terminal (&lt;span style="font-weight: bold;"&gt;Applications&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;Accessories&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;Terminal&lt;/span&gt;) and become root ("sudo -i").&lt;br /&gt;&lt;br /&gt;The first step was to install java:&lt;br /&gt;&lt;cite&gt;&lt;br /&gt;&lt;span style="color: #333333;"&gt;# apt-get-install sun-java6-bin sun-java6-jdk&lt;/span&gt;&lt;br /&gt;&lt;/cite&gt;&lt;br /&gt;Note that tomcat is now included with WebGoat, so there is no need to install it separately. The next step is to &lt;a href="http://code.google.com/p/webgoat/downloads/list"&gt;download WebGoat&lt;/a&gt;:&lt;br /&gt;&lt;cite&gt;&lt;br /&gt;&lt;span style="color: #666666;"&gt;# wget http://webgoat.googlecode.com/files/WebGoat-OWASP_Standard-5.2.zip&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666;"&gt;# unzip WebGoat-OWASP_Standard-5.2.zip&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666;"&gt;# mv WebGoat-5.2/ /usr/local&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666;"&gt;# cd /usr/local/WebGoat-5.2/&lt;/span&gt;&lt;br /&gt;&lt;/cite&gt;&lt;br /&gt;You will need to edit the webgoat.sh file to set JAVA_HOME and change the java version from 1.5 to 1.6. I use 'vi', you can use your favorite editor.&lt;br /&gt;&lt;cite&gt;&lt;br /&gt;&lt;span style="color: #666666;"&gt;#&lt;/span&gt;&lt;/cite&gt;&lt;cite style="color: #666666;"&gt; chmod 755 webgoat.sh&lt;/cite&gt;&lt;br /&gt;&lt;cite style="color: #666666;"&gt;&lt;span style="color: #666666;"&gt;# cp webgoat.sh webgoat.sh.orig&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666;"&gt;# vi webgoat.sh&lt;/span&gt;&lt;br /&gt;&lt;/cite&gt;&lt;br /&gt;Add "export JAVA_HOME=/usr/lib/jvm/java-6-sun" at the start of file, after the line with CATALINA_HOME. And then change the "1.5" on lines 17, 19, and 23 to "1.6".&lt;br /&gt;&lt;br /&gt;Next step was to install &lt;a href="http://www.owasp.org/index.php/Category:OWASP_WebScarab_Project"&gt;WebScarab&lt;/a&gt;, which is a proxy you'll need for WebGoat lessons. Download and install as follows:&lt;br /&gt;&lt;cite&gt;&lt;br /&gt;&lt;span style="color: #666666;"&gt;# cd /tmp&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666;"&gt;# wget http://dawes.za.net/rogan/webscarab/webscarab-current.zip&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666;"&gt;# unzip webscarab-current.zip&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666;"&gt;# mv webscarab-* /usr/local/webscarab&lt;/span&gt;&lt;br /&gt;&lt;/cite&gt;&lt;br /&gt;Now, to make it easy to use WebScarab from FireFox, I installed FoxyProxy into FireFox. Visit the &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/2464"&gt;FoxyProxy web page&lt;/a&gt;, install it and restart FireFox.&lt;br /&gt;&lt;br /&gt;When FireFox starts back up, configure FireProxy as follows:&lt;br /&gt;&lt;/a="href="http:&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Click on FoxyProxy icon in lower right and select &lt;span style="font-weight: bold;"&gt;Add New Proxy&lt;/span&gt;. The FireProxy window should appear. &lt;/li&gt;&lt;li&gt;On the &lt;span style="font-weight: bold;"&gt;General&lt;/span&gt; tab, under &lt;span style="font-weight: bold;"&gt;Proxy Name&lt;/span&gt; enter "WebScarab".&lt;/li&gt;&lt;li&gt;On the &lt;span style="font-weight: bold;"&gt;Proxy Details&lt;/span&gt; tab, select &lt;span style="font-weight: bold;"&gt;Manual Proxy Configuration&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;For &lt;span style="font-weight: bold;"&gt;Host or IP Address&lt;/span&gt; enter "127.0.0.1"&lt;/li&gt;&lt;li&gt;For &lt;span style="font-weight: bold;"&gt;Port&lt;/span&gt; enter "8008"&lt;/li&gt;&lt;li&gt;On the &lt;span style="font-weight: bold;"&gt;URL Patterns&lt;/span&gt; tab select &lt;span style="font-weight: bold;"&gt;Add New Pattern&lt;/span&gt;&lt;/li&gt;&lt;li&gt;For &lt;span style="font-weight: bold;"&gt;Pattern Name&lt;/span&gt; enter "WebGoat"&lt;/li&gt;&lt;li&gt;For &lt;span style="font-weight: bold;"&gt;Pattern URL&lt;/span&gt; enter "http://*127.0.0.1/WebGoat/*" (The first "*" here matches the "guest:guest" string for authentication.)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Click &lt;span style="font-weight: bold;"&gt;OK&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Close &lt;span style="font-weight: bold;"&gt;Proxy Settings&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Under &lt;span style="font-weight: bold;"&gt;Mode&lt;/span&gt; select &lt;span style="font-weight: bold;"&gt;Use proxies based on their pre-defined patterns and priorites&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Close &lt;span style="font-weight: bold;"&gt;FoxyProxy Options&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Now you probably want to open a couple of terminal windows (or tabs) one for WebScarab and one for WebGoat. In the first window fire up WebScarab:&lt;br /&gt;&lt;cite&gt;&lt;br /&gt;&lt;span style="color: #666666;"&gt;# java -jar &lt;/span&gt;&lt;/cite&gt;&lt;cite&gt;&lt;span style="color: #666666;"&gt;/usr/local/webscarab/&lt;/span&gt;&lt;/cite&gt;&lt;cite&gt;&lt;span style="color: #666666;"&gt;webscarab.jar&lt;/span&gt;&lt;br /&gt;&lt;/cite&gt;&lt;br /&gt;You should see a WebScarab window open after a moment.&lt;br /&gt;&lt;br /&gt;Then, in the other window, fire up WebGoat:&lt;br /&gt;&lt;cite&gt;&lt;br /&gt;&lt;span style="color: #666666;"&gt;# cd /usr/local/WebGoat-5.2&lt;br /&gt;# ./webgoat.sh start80&lt;/span&gt;&lt;br /&gt;&lt;/cite&gt;&lt;br /&gt;WebGoat will churn for a little bit, but then you should eventually see a message like "INFO: Server startup in 3546 ms". At this point you are ready to go by pointing your browser at &lt;a href="http://guest:guest@127.0.0.1/WebGoat/attack"&gt;&lt;cite&gt;http://guest:guest@127.0.0.1/WebGoat/attack&lt;/cite&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;At this point you should see not only WebGoat appear in your browser, but WebScarab should start displaying bunch of requests. Click on the image at the top of this post for what things should look like.&lt;br /&gt;&lt;br /&gt;That's as far as I've gotten. Next step will be to dive into WebGoat.&lt;br /&gt;&lt;a href="http://guest:guest@127.0.0.1/WebGoat/attack"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1557403331584851191-4552444702116479370?l=vwelch.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://vwelch.blogspot.com/feeds/4552444702116479370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://vwelch.blogspot.com/2009/04/creating-owasp-webgoat-ubuntu-based-vm.html#comment-form' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/4552444702116479370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1557403331584851191/posts/default/4552444702116479370'/><link rel='alternate' type='text/html' href='http://vwelch.blogspot.com/2009/04/creating-owasp-webgoat-ubuntu-based-vm.html' title='Creating a OWASP WebGoat Ubuntu-based VM'/><author><name>Von</name><uri>http://www.blogger.com/profile/05687325630634707896</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_qisl6UCSRNE/SePkZuiyZqI/AAAAAAAABFs/MdW710SLl28/s72-c/webgoat' height='72' width='72'/><thr:total>9</thr:total></entry></feed>
