<?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-21033065</id><updated>2011-11-27T16:32:58.093-08:00</updated><category term='ethics'/><category term='linux'/><category term='firefox'/><category term='opensource'/><category term='ipod'/><category term='software'/><category term='gadgets'/><category term='Thunderbird'/><category term='Amazon.com'/><category term='blackhat'/><category term='internet'/><category term='opendns'/><category term='pidgin'/><category term='urlhacks'/><category term='Ubuntu'/><category term='windowshacks'/><category term='bash'/><category term='mythtv'/><category term='blogs'/><category term='hardware'/><category term='mc2xml'/><category term='backup'/><title type='text'>Ramblings of the Engineman</title><subtitle type='html'>Technology tips and interesting hacks that I encounter in my day to day life.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://iamtheengineman.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://iamtheengineman.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Engineman</name><uri>http://www.blogger.com/profile/01340980558656389906</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>17</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-21033065.post-7812680873927024521</id><published>2008-10-06T13:03:00.000-07:00</published><updated>2008-10-06T13:17:46.967-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='mc2xml'/><category scheme='http://www.blogger.com/atom/ns#' term='mythtv'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>mc2xml on ubuntu</title><content type='html'>I recently switched to &lt;a href="http://mc2xml.110mb.com/"&gt;mc2xml&lt;/a&gt; for grabbing TV listings from TitanTV.  The service doesn't always respond in a timely manner and so I needed a script to retry a couple of times in case it failed the first time.   Here is the bash script that I wrote to retry every 60 seconds for 15 minutes.  I hope that it helps someone else.&lt;br /&gt;&lt;pre onclick="" style="background-color: #ebebe4; border: 1px solid rgb(164, 185, 127); color: black; height: 200px; overflow: auto; width: 500px;"&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;servicebusy=2&lt;br /&gt;repeats=0&lt;br /&gt;maxrepeats=15&lt;br /&gt;&lt;br /&gt;cd /home/user/mc2xml&lt;br /&gt;./mc2xml&lt;br /&gt;errorcode=$?&lt;br /&gt;&lt;br /&gt;echo Error Code == $errorcode&lt;br /&gt;&lt;br /&gt;while [[ $errorcode -eq $servicebusy ]]; do&lt;br /&gt;if [[ $repeats -ge $maxrepeats ]]; then&lt;br /&gt;exit -1&lt;br /&gt;fi&lt;br /&gt;let "repeats += 1"&lt;br /&gt;echo repeating in 60 seconds \( try $repeats of $maxrepeats \)&lt;br /&gt;sleep 60&lt;br /&gt;./mc2xml&lt;br /&gt;errorcode=$?&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;mythfilldatabase --refresh-all --file 1 xmltv.xml&lt;/pre&gt;I run it every night with the following command in my crontab&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;39 2 * * 1-7 bash /home/user/mc2xml/do_mythfill_fixed.sh&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21033065-7812680873927024521?l=iamtheengineman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iamtheengineman.blogspot.com/feeds/7812680873927024521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21033065&amp;postID=7812680873927024521' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default/7812680873927024521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default/7812680873927024521'/><link rel='alternate' type='text/html' href='http://iamtheengineman.blogspot.com/2008/10/mc2xml-on-ubuntu.html' title='mc2xml on ubuntu'/><author><name>Engineman</name><uri>http://www.blogger.com/profile/01340980558656389906</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-21033065.post-1795627729821106292</id><published>2008-05-22T10:17:00.001-07:00</published><updated>2008-10-06T13:18:57.255-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='opendns'/><category scheme='http://www.blogger.com/atom/ns#' term='opensource'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>inadyn, opendns, and Ubuntu</title><content type='html'>I have been using DNS services from &lt;a href="http://www.opendns.org/"&gt;OpenDNS.org &lt;/a&gt;for a little while now, and I am very happy with some of the features that they provide such as URL shortcuts and finely grained internet filtering.  However, in order to use the features, I have to keep my dynamic IP address up to date with their DNS-O-Matic service.  Their &lt;a href="https://www.dnsomatic.com/wiki/software"&gt;list of clients&lt;/a&gt; includes inadyn, which is available through Ubuntu but doesn't include DNS-O-Matics ssl extensions and so I compiled my own version and installed it.&lt;br /&gt;&lt;br /&gt;Here are the steps I followed:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Download modified inadyn source code from &lt;a href="http://www.opendns.com/support/ddns_files/inadyn.source.v1.99.zip"&gt;OpenDNS&lt;/a&gt; -- &lt;span style="font-family:courier new;"&gt;wget http://www.opendns.com/support/ddns_files/inadyn.source.v1.99.zip&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Unzip the source code -- &lt;span style="font-family:courier new;"&gt;unzip inadyn.source.v1.99.zip&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;sudo apt-get build-dep inadyn&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;sudo apt-get install libcurl4-openssl-dev&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;cd &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;inadyn.source.v1.99&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;make&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;sudo cp -p bin/linux/inadyn /usr/local/sbin/.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Create a script named &lt;span style="font-family:courier new;"&gt;inadyn&lt;/span&gt; in &lt;span style="font-family:courier new;"&gt;/etc/init.d&lt;/span&gt; so that it will launch automatically on startup.&lt;br /&gt;&lt;pre style="border: 1px solid rgb(164, 185, 127); overflow: auto; background-color: rgb(235, 235, 228); color: rgb(0, 0, 0); width: 500px; height: 200px;" onclick=""&gt;#! /bin/sh&lt;br /&gt;&lt;br /&gt;### BEGIN INIT INFO&lt;br /&gt;# Provides:          inadyn&lt;br /&gt;# Required-Start:    $network&lt;br /&gt;# Required-Stop:     $syslog&lt;br /&gt;# Should-Start:      $named $syslog&lt;br /&gt;# Should-Stop:       $syslog $network&lt;br /&gt;# Default-Start:     2 3 4 5&lt;br /&gt;# Default-Stop:      0 1 6&lt;br /&gt;# Short-Description: Dynamic IP Adress updater&lt;br /&gt;# Description:       inadyn is a program that updates services such as&lt;br /&gt;#                    dyndns.org and dnsomatic.com when the host's external&lt;br /&gt;#                    external IP address changes.&lt;br /&gt;### END INIT INFO&lt;br /&gt;&lt;br /&gt;set -e&lt;br /&gt;&lt;br /&gt;# /etc/init.d/inadyn: start and stop the inadyn daemon&lt;br /&gt;&lt;br /&gt;DAEMON=/usr/local/sbin/inadyn&lt;br /&gt;INADYN_ENABLE=true&lt;br /&gt;INADYN_OPTS=''&lt;br /&gt;INADYN_CONFIG_FILE=/etc/inadyn.conf&lt;br /&gt;&lt;br /&gt;test -x $DAEMON || exit 0&lt;br /&gt;&lt;br /&gt;. /lib/lsb/init-functions&lt;br /&gt;. /etc/default/rcS&lt;br /&gt;&lt;br /&gt;export PATH="${PATH:+$PATH:}/usr/sbin:/sbin:/usr/local/sbin"&lt;br /&gt;&lt;br /&gt;case "$1" in&lt;br /&gt;start)&lt;br /&gt;     if "$INADYN_ENABLE"; then&lt;br /&gt;         log_daemon_msg "Starting inadyn daemon" "inadyn"&lt;br /&gt;         if [ ! -s "$INADYN_CONFIG_FILE" ]; then&lt;br /&gt;             log_failure_msg "missing or empty config file $INADYN_CONFIG_FILE"&lt;br /&gt;             log_end_msg 1&lt;br /&gt;             exit 1&lt;br /&gt;         fi&lt;br /&gt;         if start-stop-daemon --start --quiet \&lt;br /&gt;             --pidfile /var/run/inadyn.pid --make-pidfile\&lt;br /&gt;             --exec $DAEMON&lt;br /&gt;         then&lt;br /&gt;             rc=0&lt;br /&gt;         else&lt;br /&gt;             rc=1&lt;br /&gt;         fi&lt;br /&gt;         if [ $rc -eq 0 ]; then&lt;br /&gt;             log_end_msg 0&lt;br /&gt;         else&lt;br /&gt;             log_end_msg 1&lt;br /&gt;         fi&lt;br /&gt;     else&lt;br /&gt;         if [ -s "$INADYN_CONFIG_FILE" ]; then&lt;br /&gt;             [ "$VERBOSE" != no ] &amp;amp;&amp;amp; log_warning_msg "inadyn daemon not enabled in /etc/init.d/inadyn, not starting..."&lt;br /&gt;         fi&lt;br /&gt;     fi&lt;br /&gt;     ;;&lt;br /&gt;stop)&lt;br /&gt;     log_daemon_msg "Stopping inadyn daemon" "inadyn"&lt;br /&gt;     start-stop-daemon --stop --quiet --oknodo --exec $DAEMON&lt;br /&gt;     log_end_msg $?&lt;br /&gt;     ;;&lt;br /&gt;restart)&lt;br /&gt;     set +e&lt;br /&gt;     if $INADYN_ENABLE; then&lt;br /&gt;         log_daemon_msg "Restarting inadyn daemon" "inadyn"&lt;br /&gt;         start-stop-daemon --stop --quiet --oknodo --exec $DAEMON || true&lt;br /&gt;         sleep 1&lt;br /&gt;         if start-stop-daemon --start --quiet \&lt;br /&gt;             --pidfile /var/run/inadyn.pid --make-pidfile \&lt;br /&gt;             --exec $DAEMON&lt;br /&gt;         then&lt;br /&gt;             rc=0&lt;br /&gt;         else&lt;br /&gt;             rc=1&lt;br /&gt;         fi&lt;br /&gt;         if [ $rc -eq 0 ]; then&lt;br /&gt;             log_end_msg 0&lt;br /&gt;         else&lt;br /&gt;             log_end_msg 1&lt;br /&gt;         fi&lt;br /&gt;     else&lt;br /&gt;         [ "$VERBOSE" != no ] &amp;amp;&amp;amp; log_warning_msg "inadyn daemon not enabled in /etc/default/inadyn, not starting..."&lt;br /&gt;     fi&lt;br /&gt;     ;;&lt;br /&gt;&lt;br /&gt;*)&lt;br /&gt;     echo "Usage: /etc/init.d/inadyn {start|stop|restart}"&lt;br /&gt;     exit 1&lt;br /&gt;esac&lt;br /&gt;&lt;br /&gt;exit 0&lt;/pre&gt;&lt;/li&gt;&lt;li style="font-family: courier new;"&gt;sudo update-rc.d -f inadyn defaults&lt;/li&gt;&lt;li&gt;Create an &lt;span style="font-family:courier new;"&gt;inadyn.conf&lt;/span&gt; file in &lt;span style="font-family:courier new;"&gt;/etc&lt;/span&gt;&lt;br /&gt;&lt;pre style="border: 1px solid rgb(164, 185, 127); overflow: auto; background-color: rgb(235, 235, 228); color: rgb(0, 0, 0); width: 500px; height: 200px;" onclick=""&gt;background&lt;br /&gt;syslog&lt;br /&gt;&lt;br /&gt;update_period_sec 600 # Check for a new IP every 600 seconds&lt;br /&gt;secure&lt;br /&gt;&lt;br /&gt;# Enter your DynDNS username and password here&lt;br /&gt;username &amp;lt;USERNAME GOES HERE&amp;gt;&lt;br /&gt;password &amp;lt;PASSWORD GOES HERE&amp;gt;&lt;br /&gt;&lt;br /&gt;# What kind of host is being updated? Choices are dyndns@dyndns.org, statdns@dyndns.org, custom@dyndns.org&lt;br /&gt;dyndns_server_name updates.dnsomatic.com&lt;br /&gt;dyndns_server_url /nic/update?&lt;br /&gt;alias &amp;lt;DNS-O-Matic SERVICE 1 GOES HERE&amp;gt;&lt;br /&gt;alias &amp;lt;DNS-O-Matic SERVICE 2 GOES HERE&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-family:courier new;"&gt;/etc/init.d/inadyn start&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;all done inadyn is now installed and will keep DNS-o-Matic apprised of you IP address.&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/21033065-1795627729821106292?l=iamtheengineman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iamtheengineman.blogspot.com/feeds/1795627729821106292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21033065&amp;postID=1795627729821106292' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default/1795627729821106292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default/1795627729821106292'/><link rel='alternate' type='text/html' href='http://iamtheengineman.blogspot.com/2008/05/inadyn-opendns-and-ubuntu.html' title='inadyn, opendns, and Ubuntu'/><author><name>Engineman</name><uri>http://www.blogger.com/profile/01340980558656389906</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>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21033065.post-3223689830582320015</id><published>2008-05-22T09:56:00.001-07:00</published><updated>2008-10-06T13:18:21.933-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='mythtv'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>New MythTV Box</title><content type='html'>I just put together a new MythTV box with an &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A%2F%2Fwww.amazon.com%2FIntel-Retail-Boxed-E7200-Processor%2Fdp%2FB0017OGTS0%2F&amp;amp;tag=theengstipb06-20&amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=9325"&gt;Intel Core2 Duo E7200&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=theengstipb06-20&amp;amp;l=ur2&amp;amp;o=1" alt="" style="border: medium none  ! important; margin: 0px ! important; display: none;" border="0" height="1" width="1" /&gt; processor and a Gigabyte &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A%2F%2Fwww.amazon.com%2Fgp%2Fproduct%2FB000Y0ZGGO%2F&amp;amp;tag=theengstipb06-20&amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=9325"&gt;GA-73PVM-S2H&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=theengstipb06-20&amp;amp;l=ur2&amp;amp;o=1" alt="" style="border: medium none  ! important; margin: 0px ! important; display: none;" border="0" height="1" width="1" /&gt;.  My build was based on one I found on &lt;a href="http://www.nslms.com/2008/02/25/linux-1080p-htpc/"&gt;another blog&lt;/a&gt;, and so far I am very pleased with the results.  I used &lt;a href="http://www.mythbuntu.org/"&gt;MythBuntu 8.04&lt;/a&gt; for the OS, and despite the fairly minimal install MythBuntu provides, I have gotten everything working rather quickly.  I intend to document a couple of the tweaks that I have to make in order to get everything working just right.&lt;br /&gt;&lt;br /&gt;Here is a list of the additional packages that I have installed so far with apt-get:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;unzip&lt;/li&gt;&lt;li&gt;nvidia-glx-new&lt;/li&gt;&lt;li&gt;nvidia-settings&lt;/li&gt;&lt;li&gt;sysvconfig &lt;span style="font-style: italic;"&gt;(I like to use the Fedora/RH style 'service' script to stop and restart services)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;hdhomerun-config&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21033065-3223689830582320015?l=iamtheengineman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iamtheengineman.blogspot.com/feeds/3223689830582320015/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21033065&amp;postID=3223689830582320015' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default/3223689830582320015'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default/3223689830582320015'/><link rel='alternate' type='text/html' href='http://iamtheengineman.blogspot.com/2008/05/new-mythtv-box.html' title='New MythTV Box'/><author><name>Engineman</name><uri>http://www.blogger.com/profile/01340980558656389906</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-21033065.post-4692810849368009728</id><published>2007-12-21T20:06:00.000-08:00</published><updated>2008-01-03T08:28:21.461-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='opensource'/><title type='text'>MythFrontend over VNC</title><content type='html'>Sometimes I like to access my &lt;a href="http://mythtv.org"&gt;MythTV&lt;/a&gt; box over &lt;a href="http://tightvnc.org"&gt;VNC&lt;/a&gt;.  However, MythFrontend's default settings use OpenGL which doesn't play nicely with VNC.  I found adding a parameter to the mythfrontend command forces it to use the QT painter instead of OpenGL which makes everything work perfectly (except for video of course).  Since my MythTV box doesn't normally have a keyboard attached to it, and I find that using the remote to make changes in the setup can sometimes be tedious, so I use this trick to make things a little bit easier.  Here's the command:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;mythfrontend -O ThemePainter=qt&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21033065-4692810849368009728?l=iamtheengineman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iamtheengineman.blogspot.com/feeds/4692810849368009728/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21033065&amp;postID=4692810849368009728' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default/4692810849368009728'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default/4692810849368009728'/><link rel='alternate' type='text/html' href='http://iamtheengineman.blogspot.com/2007/12/mythfrontend-over-vnc.html' title='MythFrontend over VNC'/><author><name>Engineman</name><uri>http://www.blogger.com/profile/01340980558656389906</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-21033065.post-5570103927104632895</id><published>2007-11-30T09:12:00.000-08:00</published><updated>2008-01-03T08:30:13.981-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blackhat'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='windowshacks'/><category scheme='http://www.blogger.com/atom/ns#' term='opensource'/><title type='text'>Circumventing restrictive firewalls using SSH for fun and profit</title><content type='html'>I occasionally need to find a way to route network traffic from my machine through another machine in order to circumvent a draconian firewall or a network resource on a private machine.  I order to get started you'll need a shell account on the remote computer.  This could be as simple as signing up for a free ssh account from a site like those listed &lt;a href="http://www.red-pill.eu/freeunix.shtml"&gt;here&lt;/a&gt;.  You could also setup an SSH server like &lt;a href="http://www.itefix.no/phpws/index.php?module=pagemaster&amp;amp;PAGE_user_op=view_page&amp;amp;PAGE_id=12&amp;amp;MMN_position=22:22"&gt;copSSH&lt;/a&gt;  on your Windows machine if you don't have access to a Linux machine somewhere and don't want to be restricted by the restrictions placed on most free SSH accounts.&lt;br /&gt;&lt;br /&gt;Once you have ssh access to the remote machine then you can fire up &lt;a href="http://www.chiark.greenend.org.uk/%7Esgtatham/putty/"&gt;Putty&lt;/a&gt;.  Enter in the hostname  in the hostname field and then  in the &lt;i&gt;Connection-&gt;SSH-&gt;Tunnels&lt;/i&gt; configuration panel put 8080 in the  "Source Port" box, select the Dynamic option, and click "Add".  Click "Open" and then login to the remote host like normal. &lt;br /&gt;If you happen to be on a machine that has openSSH installed, then you can just type "&lt;b&gt;ssh -D &amp;lt;remote hostname&amp;gt;&lt;/b&gt;" to acheive the same effect.&lt;br /&gt;&lt;br /&gt;After the connection has been established you should be able to set any of your internet based programs that can use a SOCKS proxy to use the address "localhost:8080" as a proxy server.  All of your data will then be automagically rerouted through an encrypted connection between the two computers and appear to be originating from the remote host instead of your local machine.  Some of the programs that work well with this method are &lt;a href="http://Pidgin.im"&gt;Pidgin&lt;/a&gt;, &lt;a href="http://www.getfirefox.com"&gt;Firefox&lt;/a&gt;,  and bit torrent clients like &lt;a href="http://azureus.sourceforge.net/"&gt;Azureus&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21033065-5570103927104632895?l=iamtheengineman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iamtheengineman.blogspot.com/feeds/5570103927104632895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21033065&amp;postID=5570103927104632895' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default/5570103927104632895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default/5570103927104632895'/><link rel='alternate' type='text/html' href='http://iamtheengineman.blogspot.com/2007/11/circumventing-restrictive-firewalls.html' title='Circumventing restrictive firewalls using SSH for fun and profit'/><author><name>Engineman</name><uri>http://www.blogger.com/profile/01340980558656389906</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-21033065.post-8126497107517494245</id><published>2007-11-29T11:26:00.001-08:00</published><updated>2008-03-07T11:38:00.385-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pidgin'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='opensource'/><title type='text'>Pidgin Portable updated to version 2.3</title><content type='html'>I have packaged a version of PidginPortable using Pidgin 2.3 and the &lt;a href="http://iamtheengineman.blogspot.com/2007/10/upgrading-pidginportable-to-version-221.html"&gt;method that I described earlier&lt;/a&gt; for Pidgin 2.2.1.  You can download the file from here:&lt;br /&gt;&lt;br /&gt;&lt;strike&gt;&lt;a href="http://www.mediafire.com/?8mmnmtxs9jc"&gt;http://www.mediafire.com/?8mmnmtxs9jc&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;edit:Pidgin did a quick update to version 2.3.1.  Please use this new download link to get the latest version.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mediafire.com/?7g1p29yfyjx"&gt;http://www.mediafire.com/?7g1p29yfyjx&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strike&gt;&lt;br /&gt;&lt;br /&gt;UPDATE:  &lt;a href="http://portableapps.com/apps/internet/pidgin_portable"&gt;PortableApps.com&lt;/a&gt; has released an official version of Pidgin 2.4 so I will no longer be updating my version.  Thanks to all of you who used it while it was needed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21033065-8126497107517494245?l=iamtheengineman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iamtheengineman.blogspot.com/feeds/8126497107517494245/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21033065&amp;postID=8126497107517494245' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default/8126497107517494245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default/8126497107517494245'/><link rel='alternate' type='text/html' href='http://iamtheengineman.blogspot.com/2007/11/pidgin-portable-updated-to-version-23.html' title='Pidgin Portable updated to version 2.3'/><author><name>Engineman</name><uri>http://www.blogger.com/profile/01340980558656389906</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-21033065.post-6597727230334916850</id><published>2007-10-15T10:18:00.002-07:00</published><updated>2008-01-03T08:28:55.518-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windowshacks'/><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><title type='text'>Suspend to RAM to save power</title><content type='html'>Today is Blog Action Day, and so I thought that I would write a bit about how I save energy while still maintaining an (almost) always on computer.&lt;br /&gt;&lt;br /&gt;Every modern computer supports Suspend to RAM, but in my experience, few people use it.  Most people either leave their computer on all of the time for convenience or turn it off when they are done with it in order to save power.  Suspend to RAM allows you to have the best of both worlds very little power usage when it is suspended and instant availability when you are ready to use it again.&lt;br /&gt;&lt;br /&gt;Basically, when your computer enters the Suspend to RAM (or goes to "sleep") everything inside the computer gets turned off except for the memory.  This includes all of the fans, hard drives, video cards, etc.  For all intents and purposes your computer will appear to be off except for possibly a small light somewhere on the computer that blinks to show that the computer is still on.  When you wake the computer back up again, everything should appear exactly as it was before the computer went to sleep in less than 5 seconds.&lt;br /&gt;&lt;br /&gt;Here are some simple tips on how to get started using Suspend to RAM mode on your Windows PC:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Open the "Power Management" control panel icon (Start-&gt;Run-&gt;"powercfg.cpl" works too)&lt;/li&gt;&lt;li&gt;Adjust the System Standby time to match your needs.&lt;/li&gt;&lt;li&gt;I prefer to put my computer to sleep and wake it up with the power button.  I want to enable this function, then click the "Advanced" tab and change the "When I press the power button on my Computer" setting to be "Standby".&lt;/li&gt;&lt;/ol&gt;Now you should be all set to go.  Your computer should go to sleep after a short period of time, and it will wake back up when you press a key on the keyboard or press the power button on the computer again.&lt;br /&gt;&lt;br /&gt;Unfortunately there are a lot of things that can go wrong with this process.  The most common problem that I have encountered is that the computer doesn't shut down completely and the fans and hard drives are still running.  In this case doing one of the two following tricks normally fixes the problem:&lt;span onload="makeCollapsible(document.getElementById('STRTSP_Troubleshooting'));"&gt;&lt;br /&gt;&lt;ul id="STRTSP_Troubleshooting"&gt;&lt;li&gt;Disable the "Allow this device to bring the computer out of Standby" setting for all of your USB devices.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Right click on "My computer and select "Manage", then open the "Device Manager"  (or Start-&gt;Run-&gt;"devmgmt.msc")&lt;/li&gt;&lt;li&gt;Double click on the device to bring up the properties window&lt;/li&gt;&lt;li&gt;Make sure that "Allow this device to bring the computer out of Standby" is not checked in the "Power Management" tab&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;a href="http://searchwinit.techtarget.com/tip/0,289483,sid1_gci963543,00.html"&gt;Change the power scheme to "Portable/Laptop"&lt;/a&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Open Power Options in the Control Panel (&lt;span onload="makeCollapsible(document.getElementById('STRTSP_Troubleshooting'));"&gt;or Start-&gt;Run-&gt;"powercfg.cpl")&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span onload="makeCollapsible(document.getElementById('STRTSP_Troubleshooting'));"&gt;Change the Power Scheme to "Portable/Laptop"&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span onload="makeCollapsible(document.getElementById('STRTSP_Troubleshooting'));"&gt;Check to see whether the fans still run in Standby&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span onload="makeCollapsible(document.getElementById('STRTSP_Troubleshooting'));"&gt;If the problem is fixed, then you should be able to change the Power Options to custom times without a problem.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span onload="makeCollapsible(document.getElementById('STRTSP_Troubleshooting'));"&gt;This solution may seem a little bit sketchy since it doesn't seem to change anything that you couldn't change already, but there is definitely something that gets reset with this hack.  I once had a machine that wouldn't sleep properly and using this hack fixed the problem.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/span&gt;If you need more help, there are a couple of people with more detailed writeups that you can follow: (&lt;a href="http://www.exoid.com/?page_id=47"&gt;exoid.com&lt;/a&gt;) (&lt;a href="http://blog.jillesvangurp.com/2006/03/19/suspend-to-ram/"&gt;jillesvangurp.com&lt;/a&gt;) (&lt;a href="http://thegreenbutton.com/forums/thread/29899.aspx"&gt;thegreenbutton.com&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;So how much power does this actually save?  On my desktop, which I consider to be fairly average, I used a Kill-A-Watt meter to measure the power draw of my computer.  While running, the machine uses ~150 Watts.  If I suspend the machine, then I only draw ~8Watts.  For a 24-Hour period that is a savings of about 3.4 KW-Hrs!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21033065-6597727230334916850?l=iamtheengineman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iamtheengineman.blogspot.com/feeds/6597727230334916850/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21033065&amp;postID=6597727230334916850' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default/6597727230334916850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default/6597727230334916850'/><link rel='alternate' type='text/html' href='http://iamtheengineman.blogspot.com/2007/10/suspend-to-ram-to-save-power.html' title='Suspend to RAM to save power'/><author><name>Engineman</name><uri>http://www.blogger.com/profile/01340980558656389906</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-21033065.post-5186381347196419275</id><published>2007-10-09T07:01:00.000-07:00</published><updated>2008-01-03T08:28:11.567-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pidgin'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='opensource'/><title type='text'>Upgrading PidginPortable to version 2.2.1</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.pidgin.im/"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://img114.imageshack.us/img114/3790/pidginvz3.gif" alt="" border="0" /&gt;&lt;/a&gt;If you don't want to read the whole post, here is a link to the download:&lt;br /&gt;&lt;a href="http://www.mediafire.com/?4q1dovsuto5"&gt;PidginPortable 2.2.1&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I use Pidgin for most of my IM needs, and in order to keep my logs all in one place, I use the PortableApps.com version of PidginPortable and keep it on my USB Drive.&lt;br /&gt;&lt;br /&gt;However, the version of PidginPortable on &lt;a href="http://www.portableapps.com/"&gt;PortableApps.com&lt;/a&gt; hasn't been updated since mid August and is still stuck at version 2.1.1 while the latest official release is 2.2.1 which includes several important &lt;a href="http://developer.pidgin.im/wiki/ChangeLog"&gt;new features&lt;/a&gt; (such as MySpaceIM protocol), bug fixes, and even an important security fix.  I finally got annoyed at being stuck with version 2.1.1 (especially since every time I started PidginPortable up I got a reminder message saying that there was a newer version available), and I decided to see if there was an easy way to upgrade the PortableApps distribution to 2.2.1.&lt;br /&gt;&lt;br /&gt;It actually turned out to be really easy.  All you need to do to upgrade is to replace the files in your "PidginPortable\App\Pidgin" folder with the same files from the current release of Pidgin.  Unfortunately there isn't a binary only distribution on the Pidgin SourceForge page, so I installed Pidgin on my computer using the packaged installer and copied the files out of the installation directory.  I also used &lt;a href="http://upx.sourceforge.net/"&gt;upx&lt;/a&gt; to compress the pidgin.exe in order to save a little bit of space.&lt;br /&gt;&lt;br /&gt;In order to make it easier for others who may be looking for the same thing, I have posted my updated version of PidginPortable on mediafire.com.  Here is a link:&lt;br /&gt;&lt;br /&gt;&lt;strike&gt;http://www.mediafire.com/?4q1dovsuto5&lt;/strike&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;edit: I have updated to version 2.3 please use this new download link&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://www.mediafire.com/?8mmnmtxs9jc"&gt;http://www.mediafire.com/?8mmnmtxs9jc&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21033065-5186381347196419275?l=iamtheengineman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iamtheengineman.blogspot.com/feeds/5186381347196419275/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21033065&amp;postID=5186381347196419275' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default/5186381347196419275'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default/5186381347196419275'/><link rel='alternate' type='text/html' href='http://iamtheengineman.blogspot.com/2007/10/upgrading-pidginportable-to-version-221.html' title='Upgrading PidginPortable to version 2.2.1'/><author><name>Engineman</name><uri>http://www.blogger.com/profile/01340980558656389906</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>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21033065.post-3603075744461859010</id><published>2007-10-05T10:51:00.000-07:00</published><updated>2007-10-09T12:00:04.242-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogs'/><category scheme='http://www.blogger.com/atom/ns#' term='blackhat'/><title type='text'>Fake Credit Card Numbers</title><content type='html'>Today I registered for a local engineering conference.  Although my registration was free, for some reason their eCommerce site wanted a credit card number.  Well, I don't particularly care to give my credit card out to just anyone on the internet, so what do I do, and why does their site want my credit card number if they aren't planning to charge it for anything?&lt;br /&gt;&lt;br /&gt;Of course, I did the only reasonable thing a security concious engineer could do, I did a quick search for "&lt;a href="http://www.google.com/search?q=fake+visa+number+generator"&gt;fake visa number generators&lt;/a&gt;" on the internet and found this gem of a site:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.darkcoding.net/index.php/credit-card-numbers/"&gt;http://www.darkcoding.net/index.php/credit-card-numbers/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Then, I took the first number off of the list, made up an expiration date and CVV number, and tried it out.  Two pages later I got a lovely confirmation stating that my registration had been accepted.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_vC4XcfKxmPw/RwUq-kYB44I/AAAAAAAAAOY/mka-QOAn7uQ/s1600-h/registration.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_vC4XcfKxmPw/RwUq-kYB44I/AAAAAAAAAOY/mka-QOAn7uQ/s320/registration.jpg" alt="" id="BLOGGER_PHOTO_ID_5117543805981156226" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21033065-3603075744461859010?l=iamtheengineman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iamtheengineman.blogspot.com/feeds/3603075744461859010/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21033065&amp;postID=3603075744461859010' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default/3603075744461859010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default/3603075744461859010'/><link rel='alternate' type='text/html' href='http://iamtheengineman.blogspot.com/2007/10/fake-credit-card-numbers.html' title='Fake Credit Card Numbers'/><author><name>Engineman</name><uri>http://www.blogger.com/profile/01340980558656389906</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://3.bp.blogspot.com/_vC4XcfKxmPw/RwUq-kYB44I/AAAAAAAAAOY/mka-QOAn7uQ/s72-c/registration.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21033065.post-3536355900260370039</id><published>2007-10-04T08:28:00.000-07:00</published><updated>2008-01-03T08:29:41.672-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ethics'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><title type='text'>To scrape or not to scrape?</title><content type='html'>Recently Zap2It, the company which had been providing &lt;a href="http://www.amazon.com/gp/search?ie=UTF8&amp;keywords=XML&amp;tag=theengstipb06-20&amp;index=books&amp;linkCode=ur2&amp;camp=1789&amp;creative=9325"&gt;XML&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=theengstipb06-20&amp;amp;l=ur2&amp;amp;o=1" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt; based TV listings for free to open source software such as &lt;a href="http://www.mythtv.org/"&gt;MythTV&lt;/a&gt;, decided to shutdown their free XMLTV service.  The "official" replacement for the service is a non-profit startup, &lt;a href="http://schedulesdirect.com/"&gt;SchedulesDirect&lt;/a&gt;.  They now provide XML TV listings for a very reasonable price of $20/year.&lt;br /&gt;&lt;br /&gt;I always have a hard time forking over money for something that I can get for free elsewhere, and in the wake of the labs.zap2it.com closure several enterprising individuals have developed programs which &lt;i&gt;scrape&lt;/i&gt; TV listings from commercial websites.  One of these is a &lt;a href="http://www.perl.com/"&gt;PERL&lt;/a&gt; program called &lt;a href="http://www.google.com/search?q=zap2xml"&gt;Zap2XML&lt;/a&gt;.  I can report that the program works great, and there are even a couple of setup guides floating around around that &lt;a href="http://willtofly.com/mythtv/"&gt;target MythTV users&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;However, the use of the program in my opinion constitutes a bit of a moral and ethical dilemma.  You see there is the little problem of the fact that when I signed up for a free Zap2it.com account, I agreed to their &lt;a href="http://www.zap2it.com/services/site/zap-termsofservice,0,7891102.story"&gt;Terms of Service&lt;/a&gt; which say "You may not scrape or otherwise copy our Content without permission" which technically prohibits me from scraping their website.  However, their TOS also says, "you may download or print a single copy of any portion of the Content solely for your personal, non-commercial use".  I believe that even though they prohibit me from scraping their website for listings with a program like Zap2XML, that as long as I am using it only for "personal, non-commercial use" that I am probably ok.&lt;br /&gt;&lt;br /&gt;I believe that their reason for prohibiting scraping is two-fold.  One, it prevents other websites from scraping Zap2It's TV listings (which they paid TMS a lot of money for) and then rebranding the content and displaying elsewhere.  I am clearly not doing this, but the second reason is an even bigger moral dilemma.  You see Zap2It (as well as 90% of the rest of the internet) depends upon advertising revenues to cover at least part of the cost of their doing business, and when I use a program like Zap2XML to scrape listings from their website I am obtaining content from them without viewing their advertising.  Some people have argued that this is stealing, and this leads into the even bigger question of the morality behind online advertising and ad blockers such as &lt;a href="http://adblockplus.org/"&gt;Adblock Plus&lt;/a&gt; which is a whole other ball of wax that I don't really want to get into right now, but suffice it to say that I believe that there is some validity to arguments on both sides of the issue&lt;br /&gt;&lt;br /&gt;I believe that this issue is the second reason why Zap2It specifically prohibits scrapers.  They are providing content that costs them money to produce.  Additionally there are costs involved in bandwidth and servers, and they believe that they have a right to recover part of those costs through advertising revenues.  Now, I am not opposed to their collecting ad revenues from my viewing of their website, but I also feel like I have the right to select which content I view and how I view it, and so for now I am using Zap2XML.&lt;br /&gt;&lt;br /&gt;Anyways, I just thought that I would throw some of this issue out there and see how my readers feel about this issue.  Please feel free to post any and all comments or opinions that you might have on the morality  and ethics behind this issue.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21033065-3536355900260370039?l=iamtheengineman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iamtheengineman.blogspot.com/feeds/3536355900260370039/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21033065&amp;postID=3536355900260370039' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default/3536355900260370039'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default/3536355900260370039'/><link rel='alternate' type='text/html' href='http://iamtheengineman.blogspot.com/2007/10/to-scrape-or-not-to-scrape.html' title='To scrape or not to scrape?'/><author><name>Engineman</name><uri>http://www.blogger.com/profile/01340980558656389906</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>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-21033065.post-6241990861777464521</id><published>2007-09-24T10:24:00.000-07:00</published><updated>2008-01-03T08:29:27.208-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thunderbird'/><category scheme='http://www.blogger.com/atom/ns#' term='backup'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='opensource'/><title type='text'>Mozy Online Backup: Simple, Automatic, Secure</title><content type='html'>I installed the &lt;a href="https://mozy.com/?ref=Y6ZR2M"&gt;Mozy backup client&lt;/a&gt; a while ago and never thought twice about it silently backing up my files.  Fast forward to last week when I tried installing the &lt;a href="http://enigmail.mozdev.org/"&gt;Enigmail extension&lt;/a&gt; for &lt;a href="http://www.mozilla.com/en-US/thunderbird/"&gt;Thunderbird&lt;/a&gt;.  I originally installed Enigmail so that I could exchange encrypted emails with a Client who insisted on using &lt;a href="http://www.gnupg.org/"&gt;GPG&lt;/a&gt; instead of &lt;a href="http://en.wikipedia.org/wiki/S/MIME"&gt;S/MIME&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The Enigmail installation monkeyed around with lots of my Thunderbird settings including adding an extra link to download IMAP messages from the server that I had to click everytime that I wanted to read a message.  After messing around with things for a few minutes, I decided to give up on Enigmail and ditch it in favor of &lt;a href="http://firegpg.tuxfamily.org/"&gt;FireGPG&lt;/a&gt;.  However, even after uninstalling Enigmail the problems persisted.  I probably could have figured out how to get everything back to normal, but my Thunderbird was almost unusable as it was and I just wanted my email program back to normal.&lt;br /&gt;&lt;br /&gt;For a moment I pondered with dread what it would take to reinstall Thunderbird and redo all of the customization I had done to personalize the app over the last three years, when suddenly I realized that this was a perfect time to try out a restore from Mozy.  Fortunately I had included my Thunderbird directory in my Mozy backup set, so I did a quick restore of my prefs.js file, and when I restarted Thunderbird, lo and behold, everything was back to normal.  Here are the steps that I followed in case someone else needs to do the same thing.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;I shutdown Thunderbird so that it wasn't running.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;I opened the Mozy Virtual Drive in My Computer.&lt;/li&gt;&lt;li&gt;I navigated to the Mozilla Thunderbird profile directory. (C:\Documents and Settings\&lt;username&gt;\Application Data\Thunderbird\Profiles\)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;I right clicked on the profile folder and chose "Change Time..." to select yesterday's backup.&lt;/li&gt;&lt;li&gt;I right clicked on the "prefs.js" file and chose "Restore" to restore the old file over the new file.&lt;/li&gt;&lt;li&gt;I restarted Thunderbird and everything was back the way it should be.&lt;/li&gt;&lt;/ol&gt;Thanks a lot mozy!  You saved my day.&lt;br /&gt;&lt;br /&gt;Here is what some other people are saying about Mozy&lt;br /&gt;&lt;a href="http://ptech.wsj.com/archive/ptech-20061214.html" title="Make  Backing Up Your Files Safe"&gt;Walter S. Mossberg, The Wall Street Journal&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.businessweek.com/magazine/content/07_26/b4040435.htm?chan=search" title="Remote Backups for Less "&gt;Larry Armstrong, BusinessWeek&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21033065-6241990861777464521?l=iamtheengineman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iamtheengineman.blogspot.com/feeds/6241990861777464521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21033065&amp;postID=6241990861777464521' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default/6241990861777464521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default/6241990861777464521'/><link rel='alternate' type='text/html' href='http://iamtheengineman.blogspot.com/2007/09/mozy-online-backup-simple-automatic.html' title='Mozy Online Backup: Simple, Automatic, Secure'/><author><name>Engineman</name><uri>http://www.blogger.com/profile/01340980558656389906</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-21033065.post-1943809172486804871</id><published>2007-09-21T07:22:00.000-07:00</published><updated>2007-09-21T08:06:56.023-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><title type='text'>Lots and lots of tabs</title><content type='html'>One of the things that I love most about &lt;a href="http://www.getfirefox.com/"&gt;Firefox&lt;/a&gt; is tabbed browsing.  Most day I have between 10-20 tabs open.  I don't know that I'm quite what you would call a &lt;a href="http://blogs.danieloskarsson.se/2006/07/ive-become-tabaholic.html"&gt;tabaholic&lt;/a&gt; (maybe I'm still in denial), but I definitely have a problem.  Tab scrolling in Firefox 2 is utterly worthless in my opinion.  I mean what's the point if I can't see all of my lovely tabs at once.  I tried the &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/1343"&gt;Vertigo&lt;/a&gt; extension, but the vertical tabs just didn't do it for me.  Then, today, during another one of my marathon development/working/surfing sessions I discovered by &lt;a href="http://www.howtogeek.com/howto/internet/firefox/make-firefox-use-multiple-rows-of-tabs/"&gt;the How to Geek&lt;/a&gt; that clued me in to the &lt;a href="https://addons.mozilla.org/firefox/addon/1122"&gt;Tab Mix Plus&lt;/a&gt; extension.  Now I can have my tabs arranged in multiple rows so that I can have my tabs and see them too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21033065-1943809172486804871?l=iamtheengineman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iamtheengineman.blogspot.com/feeds/1943809172486804871/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21033065&amp;postID=1943809172486804871' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default/1943809172486804871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default/1943809172486804871'/><link rel='alternate' type='text/html' href='http://iamtheengineman.blogspot.com/2007/09/lots-and-lots-of-tabs.html' title='Lots and lots of tabs'/><author><name>Engineman</name><uri>http://www.blogger.com/profile/01340980558656389906</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-21033065.post-8133571100487449439</id><published>2007-05-24T22:07:00.000-07:00</published><updated>2007-09-21T08:06:24.462-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='firefox'/><category scheme='http://www.blogger.com/atom/ns#' term='blogs'/><category scheme='http://www.blogger.com/atom/ns#' term='urlhacks'/><title type='text'>Docufarm without the extension</title><content type='html'>Today I found a groovy new website &lt;a href="http://www.docufarm.com/"&gt;Docufarm&lt;/a&gt; that lets you preview .pdf, .doc, and .ppt files without downloading them.  This is a real benefit when I want to quickly view a document without loading up a different program (especially a really slow memory hog like Acrobat).&lt;br /&gt;&lt;br /&gt;However, at least for now the website doesn't provide an easy way to preview a document that I want to view without using their Firefox extension.  I'm not always using a computer that I can install extensions on, but a &lt;a href="http://docufarm.blogspot.com/2007/05/to-be-clear-about-security.html"&gt;blog post on their site&lt;/a&gt; gave me a pointer that I can use to DocuFarm any document that I want without using the extension.  Simply prepending the url with&lt;br /&gt;&lt;br /&gt;http://www.docufarm.com/view.jsp?url=&lt;br /&gt;&lt;br /&gt;will do the trick.  Nifty!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;Update:&lt;/span&gt;  Docufarm now lets you copy and paste a URL &lt;a href="http://http://docufarm.blogspot.com/2007/06/paste-urls-in-our-search-box.html"&gt;directly into their search box&lt;/a&gt; at &lt;a href="http://iamtheengineman.blogspot.com/2007/05/www.docufarm.com" rel="nofollow"&gt;http://www.docufarm.com&lt;/a&gt;.  So this hack is no longer necessary, but it might be useful if you wanted to add it to document links on your own site.&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21033065-8133571100487449439?l=iamtheengineman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iamtheengineman.blogspot.com/feeds/8133571100487449439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21033065&amp;postID=8133571100487449439' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default/8133571100487449439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default/8133571100487449439'/><link rel='alternate' type='text/html' href='http://iamtheengineman.blogspot.com/2007/05/docufarm-with-extension.html' title='Docufarm without the extension'/><author><name>Engineman</name><uri>http://www.blogger.com/profile/01340980558656389906</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-21033065.post-116301326323157592</id><published>2006-11-08T11:04:00.000-08:00</published><updated>2007-09-21T07:44:12.708-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='opensource'/><category scheme='http://www.blogger.com/atom/ns#' term='ipod'/><title type='text'>DivX to iPod the Open Source way</title><content type='html'>So I went looking today for some info on how to convert DivX shows to an iPod compatible H.264 format.  There are lots of commercial solutions out there, but I prefer to find free software.  I looked for a long while and finally found &lt;a href="http://mediacoder.sourceforge.net/"&gt;Mediacoder&lt;/a&gt;.  Here are instruction on how to convert your divx files for your video ipod in 6 easy steps.&lt;br /&gt;&lt;br /&gt;1. Go to &lt;span style="font-size:100%;"&gt;&lt;a href="http://mediacoder.sourceforge.net/"&gt;http://mediacoder.sourceforge.net/&lt;/a&gt;&lt;/span&gt; and download Mediacoder&lt;br /&gt;2. &lt;span style="font-size:100%;"&gt;Install Mediacoder and run it.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;3. Select Add File and add the divx file&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;4. Select devices button&lt;/span&gt;&lt;br /&gt;5. &lt;span style="font-size:100%;"&gt;Select extension-&gt;digital media player&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;6. Press "start" to the left of the ipod.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Shazaaam! divx to ipod.&lt;/span&gt;  in six easy steps.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/6596/2124/1600/mediacoder.png"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/6596/2124/400/mediacoder.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21033065-116301326323157592?l=iamtheengineman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iamtheengineman.blogspot.com/feeds/116301326323157592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21033065&amp;postID=116301326323157592' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default/116301326323157592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default/116301326323157592'/><link rel='alternate' type='text/html' href='http://iamtheengineman.blogspot.com/2006/11/divx-to-ipod-open-source-way.html' title='DivX to iPod the Open Source way'/><author><name>Engineman</name><uri>http://www.blogger.com/profile/01340980558656389906</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-21033065.post-116258190207190057</id><published>2006-11-03T11:21:00.000-08:00</published><updated>2007-09-21T07:41:34.424-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gadgets'/><title type='text'>Solar Powered battery Charger</title><content type='html'>This isn't really a tip so much as a cool gadget.  My dad and I have talked for a while about including a solar powered battery charger  with our emergency kits.  I finally found one today: &lt;a href="http://store.sundancesolar.com/solbatchar.html"&gt;Sundance Solar&lt;/a&gt;.  Sundance solar also has a good selection of solar panels that I might use for some DIY electronics projects.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21033065-116258190207190057?l=iamtheengineman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iamtheengineman.blogspot.com/feeds/116258190207190057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21033065&amp;postID=116258190207190057' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default/116258190207190057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default/116258190207190057'/><link rel='alternate' type='text/html' href='http://iamtheengineman.blogspot.com/2006/11/solar-powered-battery-charger.html' title='Solar Powered battery Charger'/><author><name>Engineman</name><uri>http://www.blogger.com/profile/01340980558656389906</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-21033065.post-115481290318826699</id><published>2006-08-05T14:20:00.000-07:00</published><updated>2008-01-03T08:29:10.172-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windowshacks'/><title type='text'>Manually Open the Safely remove hardware window</title><content type='html'>Sometimes you need to remove an external hard drive or other piece of hardware from your Windows machine, but for some reason the little "Safely Remove Hardware" icon is missing from the System tray.  With this tip you can open the Safely remove hardware window if that icon is missing.&lt;br /&gt;&lt;br /&gt;copy and paste this into Start-&gt;Run:&lt;br /&gt;&lt;br /&gt;RunDll32.exe shell32.dll,Control_RunDLL hotplug.dll&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21033065-115481290318826699?l=iamtheengineman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iamtheengineman.blogspot.com/feeds/115481290318826699/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21033065&amp;postID=115481290318826699' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default/115481290318826699'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default/115481290318826699'/><link rel='alternate' type='text/html' href='http://iamtheengineman.blogspot.com/2006/08/manually-open-safely-remove-hardware.html' title='Manually Open the Safely remove hardware window'/><author><name>Engineman</name><uri>http://www.blogger.com/profile/01340980558656389906</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-21033065.post-115199094033761895</id><published>2006-07-03T22:26:00.000-07:00</published><updated>2007-09-21T07:43:40.824-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Amazon.com'/><category scheme='http://www.blogger.com/atom/ns#' term='urlhacks'/><title type='text'>Show only items from Amazon.com</title><content type='html'>I occasionally shop on &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A%2F%2Fwww.amazon.com%2F&amp;amp;tag=theengstipb06-20&amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=9325"&gt;Amazon.com&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=theengstipb06-20&amp;amp;l=ur2&amp;amp;o=1" alt="" style="border: medium none  ! important; margin: 0px ! important; display: none;" border="0" height="1" width="1" /&gt;, and sometimes I find it useful to show only items from &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A%2F%2Fwww.amazon.com%2F&amp;amp;tag=theengstipb06-20&amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=9325"&gt;Amazon.com&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=theengstipb06-20&amp;amp;l=ur2&amp;amp;o=1" alt="" style="border: medium none  ! important; margin: 0px ! important; display: none;" border="0" height="1" width="1" /&gt; in order to qualify for free shipping.  I found that adding this text to the end of the URL will show only items from &lt;a href="http://www.amazon.com/gp/redirect.html?ie=UTF8&amp;amp;location=http%3A%2F%2Fwww.amazon.com%2F&amp;amp;tag=theengstipb06-20&amp;amp;linkCode=ur2&amp;amp;camp=1789&amp;amp;creative=9325"&gt;Amazon.com&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=theengstipb06-20&amp;amp;l=ur2&amp;amp;o=1" alt="" style="border: medium none  ! important; margin: 0px ! important; display: none;" border="0" height="1" width="1" /&gt;.&lt;br /&gt;&lt;br /&gt;&amp;amp;field-enc-merchantbin=ATVPDKIKX0DER&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/21033065-115199094033761895?l=iamtheengineman.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://iamtheengineman.blogspot.com/feeds/115199094033761895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=21033065&amp;postID=115199094033761895' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default/115199094033761895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/21033065/posts/default/115199094033761895'/><link rel='alternate' type='text/html' href='http://iamtheengineman.blogspot.com/2006/07/show-only-items-from-amazoncom.html' title='Show only items from Amazon.com'/><author><name>Engineman</name><uri>http://www.blogger.com/profile/01340980558656389906</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></feed>
