<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>schmichael&#039;s blog &#187; IT</title>
	<atom:link href="http://blog.schmichael.com/category/technology/it/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.schmichael.com</link>
	<description>good good study, day day up</description>
	<lastBuildDate>Wed, 16 May 2012 23:59:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Join #webdevpdx on Freenode</title>
		<link>http://blog.schmichael.com/2008/10/31/join-webdevpdx-on-freenode/</link>
		<comments>http://blog.schmichael.com/2008/10/31/join-webdevpdx-on-freenode/#comments</comments>
		<pubDate>Fri, 31 Oct 2008 17:59:33 +0000</pubDate>
		<dc:creator>Michael Schurter</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[irc]]></category>
		<category><![CDATA[Portland]]></category>
		<category><![CDATA[webdev]]></category>

		<guid isPermaLink="false">http://michael.susens-schurter.com/blog/?p=433</guid>
		<description><![CDATA[Chris just created a channel for web developers in Portland, OR on Freenode, so if you&#8217;re a web developer (or sysadmin or dba or designer or manager forced to deal with us webdevs) come on in! #webdevpdx on irc.freenode.net New &#8230; <a href="http://blog.schmichael.com/2008/10/31/join-webdevpdx-on-freenode/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://twitter.com/chrispitzer/status/983462380">Chris just created a channel for web developers in Portland, OR</a> on Freenode, so if you&#8217;re a web developer (or sysadmin or dba or designer or manager forced to deal with us webdevs) come on in!</p>
<p><a href="irc://irc.freenode.net/webdevpdx">#webdevpdx on irc.freenode.net</a></p>
<p>New to IRC?  Try one of these clients:</p>
<ul>
<li><a href="http://pidgin.im/">Pidgin</a> (but not really <a href="http://trac.adiumx.com/wiki/InternetRelayChat">Adium</a>)</li>
<li><a href="https://addons.mozilla.org/en-US/firefox/addon/16">Chatzilla</a></li>
<li>and of course <em>The Client of the Future:</em> <strong><a href="http://www.irssi.org">irssi</a></strong></li>
</ul>
<p><small><strong>Update:</strong> I should have mentioned I&#8217;m <em>schmichael</em> on IRC.</small></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.schmichael.com/2008/10/31/join-webdevpdx-on-freenode/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Summer of Hacks</title>
		<link>http://blog.schmichael.com/2008/05/13/summer-of-hacks/</link>
		<comments>http://blog.schmichael.com/2008/05/13/summer-of-hacks/#comments</comments>
		<pubDate>Tue, 13 May 2008 14:22:15 +0000</pubDate>
		<dc:creator>Michael Schurter</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[denyhosts]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[linode]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://michael.susens-schurter.com/blog/?p=317</guid>
		<description><![CDATA[My Linode has been experiencing a huge number of brute force login attempts in the past week. I don&#8217;t keep detailed statistics, but I would guess there have been 300 attempts in the past week as opposed to the usual &#8230; <a href="http://blog.schmichael.com/2008/05/13/summer-of-hacks/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>My <a href="http://www.linode.com/">Linode</a> has been experiencing a huge number of brute force login attempts in the past week.  I don&#8217;t keep detailed statistics, but I would guess there have been <strong>300 attempts in the past week</strong> as opposed to <em>the usual rate of about 500 attempts over 200 days (2-3 attempts per day)</em>.</p>
<p><a href="http://denyhosts.sourceforge.net/">Denyhosts</a> has been doing its job perfectly.  It should be illegal to run a Internet exposed SSH server without it or a similar tool.*</p>
<p>Thanks to HoopyCat in #linode for pointing me to a <a href="http://isc.sans.org/diary.html?storyid=4408">SANS Internet Storm Center article explaining the <em>Summer of Hacks</em></a> phenomenon. </p>
<p><small>* Unless of course you only accept key based logins.</small></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.schmichael.com/2008/05/13/summer-of-hacks/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Easy Rsync Remote Backups Using SSH Keys</title>
		<link>http://blog.schmichael.com/2008/03/19/easy-rsync-remote-backups-using-ssh-keys/</link>
		<comments>http://blog.schmichael.com/2008/03/19/easy-rsync-remote-backups-using-ssh-keys/#comments</comments>
		<pubDate>Thu, 20 Mar 2008 04:25:18 +0000</pubDate>
		<dc:creator>Michael Schurter</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[backups]]></category>
		<category><![CDATA[keys]]></category>
		<category><![CDATA[rsync]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://michael.susens-schurter.com/blog/2008/03/19/easy-rsync-remote-backups-using-ssh-keys/</guid>
		<description><![CDATA[Rsync is an excellent file transfer utility thats especially well suited for backing up files over the Internet because it only transfers the data that has changed. A friend asked me how to set it up, so I thought I&#8217;d &#8230; <a href="http://blog.schmichael.com/2008/03/19/easy-rsync-remote-backups-using-ssh-keys/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.samba.org/rsync/">Rsync</a> is an excellent file transfer utility thats especially well suited for backing up files over the Internet because it only transfers the data that has changed.  A friend asked me how to set it up, so I thought I&#8217;d post what I sent him here.</p>
<p><strong>Goal:</strong> Backup a directory from computer <code>Zim</code> to computer <code>Ark</code></p>
<p><strong>Details:</strong>  </p>
<ul>
<li>Both <code>Zim</code> and <code>Ark</code> are subdomains of <code>example.com</code></li>
<li>The user on <code>Ark</code> which receives the backup files is named <code>backupuser</code></li>
<li>The user on <code>Zim</code> with access to the files you want to backup is named <code>steve</code></li>
</ul>
<p><strong>Prerequisites:</strong></p>
<ul>
<li><a href="http://openssh.org/">ssh</a> installed on both hosts</li>
<li><a href="http://www.samba.org/rsync/download.html">rsync</a> installed on both hosts</li>
</ul>
<ol>
<li>Login to <code>Zim</code> via <code>ssh</code>:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">ssh</span> steve<span style="color: #000000; font-weight: bold;">@</span>zim.example.com</pre></div></div>

</li>
<li>Generate a <code>ssh</code> key pair using:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">ssh-keygen</span> <span style="color: #660033;">-t</span> rsa
<span style="color: #000000; font-weight: bold;">&lt;</span>press enter when prompted where to save the key<span style="color: #000000; font-weight: bold;">&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;</span>press enter twice when asked <span style="color: #000000; font-weight: bold;">for</span> a passphrase<span style="color: #000000; font-weight: bold;">&gt;</span></pre></div></div>

</li>
<li>To use the key to login to <code>Ark</code> remotely without manually entering a password you need to copy the public key from <code>Zim</code> to <code>Ark</code> using:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">ssh-copy-id <span style="color: #660033;">-i</span> .ssh<span style="color: #000000; font-weight: bold;">/</span>id_rsa.pub backupuser<span style="color: #000000; font-weight: bold;">@</span>ark.example.com</pre></div></div>

<p>If you don&#8217;t have <code>ssh-copy-id</code> on your system, get a new system.  <img src='http://blog.schmichael.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />   If thats not possible you can download the script with:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">wget</span> <span style="color: #660033;">-O</span> ssh-copy-id http:<span style="color: #000000; font-weight: bold;">//</span>cvsweb.mindrot.org<span style="color: #000000; font-weight: bold;">/</span>index.cgi<span style="color: #000000; font-weight: bold;">/</span>~checkout~<span style="color: #000000; font-weight: bold;">/</span>openssh<span style="color: #000000; font-weight: bold;">/</span>contrib<span style="color: #000000; font-weight: bold;">/</span>ssh-copy-id?<span style="color: #007800;">rev</span>=<span style="color: #000000;">1.6</span>;content-type=text<span style="color: #000000; font-weight: bold;">%</span>2Fplain <span style="color: #000000; font-weight: bold;">&amp;&amp;</span> <span style="color: #c20cb9; font-weight: bold;">chmod</span> +x ssh-copy-id</pre></div></div>

<p>Then retry the above command only you&#8217;ll need to prepend a &#8220;./&#8221;:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">.<span style="color: #000000; font-weight: bold;">/</span>ssh-copy-id <span style="color: #660033;">-i</span> .ssh<span style="color: #000000; font-weight: bold;">/</span>id_rsa.pub backupuser<span style="color: #000000; font-weight: bold;">@</span>ark.example.com</pre></div></div>

</li>
<li>Verify the key copied properly by attempting to login to <code>Ark</code>.  You should <em>not</em> be prompted for a password:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">ssh</span> backupuser<span style="color: #000000; font-weight: bold;">@</span>ark.example.com</pre></div></div>

</li>
<li>Logout of <code>Ark</code>.  The key is setup, so you&#8217;re now ready to rsync files without having to manually enter a password.</li>
<li>Test rsync by choosing a small file to backup and using:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">rsync <span style="color: #660033;">-tP</span> <span style="color: #000000; font-weight: bold;">/</span>some<span style="color: #000000; font-weight: bold;">/</span>small<span style="color: #000000; font-weight: bold;">/</span>testfile backupuser<span style="color: #000000; font-weight: bold;">@</span>ark.example.com:<span style="color: #000000; font-weight: bold;">/</span>tmp</pre></div></div>

<p>A nice little progress bar should be displayed as the file is transferred.  Confirm that &#8220;testfile&#8221; is now in <code>/tmp</code> on <code>Ark</code>.</li>
<li>You&#8217;re finally ready to do a real rsync like:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">rsync <span style="color: #660033;">-t</span> <span style="color: #000000; font-weight: bold;">/</span>directory<span style="color: #000000; font-weight: bold;">/</span>to<span style="color: #000000; font-weight: bold;">/</span>backup<span style="color: #000000; font-weight: bold;">/*</span> backupuser<span style="color: #000000; font-weight: bold;">@</span>ark.example.com:<span style="color: #000000; font-weight: bold;">/</span>existing<span style="color: #000000; font-weight: bold;">/</span>backup<span style="color: #000000; font-weight: bold;">/</span>directory</pre></div></div>

<p><strong>Note:</strong> There are several useful options for rsync.  Check <code>man rsync</code> to find out more.</p>
<ul>
<li><code>-p</code> &#8212; preserve permissions (useful for backups, use -E if you only care about the executable bit)</li>
<li><code>-r</code> &#8212; recursively backup directories.</li>
<li><code>-z</code> &#8212; compressed uncompressed files</li>
<li>And just FYI: <code>-t</code> tells rsync to use the last modified timestamp to determine whether or not to transfer files.  It makes rsync a <em>lot</em> faster at determining whether or not files have changed.</li>
</ul>
</li>
<li>To schedule the backup to take place nightly at 1:13 AM edit your crontab using <code>crontab -e</code> and insert the following line:

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000;">13</span> <span style="color: #000000;">1</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> <span style="color: #000000; font-weight: bold;">*</span> rsync <span style="color: #660033;">-qt</span> <span style="color: #000000; font-weight: bold;">/</span>directory<span style="color: #000000; font-weight: bold;">/</span>to<span style="color: #000000; font-weight: bold;">/</span>backup<span style="color: #000000; font-weight: bold;">/*</span> backupuser<span style="color: #000000; font-weight: bold;">@</span>ark.example.com:<span style="color: #000000; font-weight: bold;">/</span>existing<span style="color: #000000; font-weight: bold;">/</span>backup<span style="color: #000000; font-weight: bold;">/</span>directory</pre></div></div>

</li>
</ol>
<p><strong>Caveats:</strong></p>
<ul>
<li>These instructions will <em>push</em> files from <code>Zim</code> to <code>Ark</code>.  There&#8217;s no reason why <code>Ark</code> couldn&#8217;t <em>pull</em> files from <code>Zim</code>.  In fact, this is often <strong>more secure</strong> if <code>Zim</code> is a web server with a larger attack surface than <code>Ark</code>.  Mea culpa.</li>
<li>If the IP address of <code>Ark</code> is dynamic, use a service like <a href="http://www.dyndns.com">dyndns.com</a>.  Otherwise SSH will give you errors.</li>
<li><em>Major security warning:</em>  If someone breaks into <code>Zim</code>, they can also delete all of your backups on <code>Ark</code>.  Never ever ever use the <code>root</code> user for backups on <code>Ark</code>.  You can use the <code>root</code> user on <code>Zim</code> to send the backups, but its best to have a special backup user setup on <code>Ark</code> to receive the backup.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.schmichael.com/2008/03/19/easy-rsync-remote-backups-using-ssh-keys/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Permanent home for firewall-admin</title>
		<link>http://blog.schmichael.com/2008/02/17/permanent-home-for-firewall-admin/</link>
		<comments>http://blog.schmichael.com/2008/02/17/permanent-home-for-firewall-admin/#comments</comments>
		<pubDate>Sun, 17 Feb 2008 20:42:43 +0000</pubDate>
		<dc:creator>Michael Schurter</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[cherrypy]]></category>
		<category><![CDATA[genshi]]></category>
		<category><![CDATA[iptables]]></category>

		<guid isPermaLink="false">http://michael.susens-schurter.com/blog/2008/02/17/permanent-home-for-firewall-admin/</guid>
		<description><![CDATA[The little recipe I posted for a dedicated Linux firewall with a CherryPy powered administrative interface finally has a permanent home over at Google Code. Many thanks to Kyle Waremburg for creating the project page and helping me develop firewall-admin! &#8230; <a href="http://blog.schmichael.com/2008/02/17/permanent-home-for-firewall-admin/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The <a href="http://michael.susens-schurter.com/blog/2007/11/06/recipe-for-a-transparent-linux-firewall-and-cherrypy-control-panel/">little recipe I posted</a> for a dedicated Linux firewall with a CherryPy powered administrative interface finally has a <a href="http://code.google.com/p/firewall-admin/">permanent home over at Google Code</a>.</p>
<p>Many thanks to Kyle Waremburg for creating the project page and helping me develop <a href="http://code.google.com/p/firewall-admin/">firewall-admin</a>!  I hope other people find it useful.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.schmichael.com/2008/02/17/permanent-home-for-firewall-admin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hostname Tab-Completion for OpenSSH</title>
		<link>http://blog.schmichael.com/2008/01/30/hostname-tab-completion-for-openssh/</link>
		<comments>http://blog.schmichael.com/2008/01/30/hostname-tab-completion-for-openssh/#comments</comments>
		<pubDate>Wed, 30 Jan 2008 15:10:37 +0000</pubDate>
		<dc:creator>Michael Schurter</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[shortcuts]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://michael.susens-schurter.com/blog/2008/01/30/hostname-tab-completion-for-openssh/</guid>
		<description><![CDATA[I use OpenSSH daily. In fact the only app I probably use more is vim. However, until yesterday I was typing out the full username and hostname when using ssh: &#160;&#160;&#160;ssh username@ridiculouslylong.domain.com Ugh Using the same username makes life a &#8230; <a href="http://blog.schmichael.com/2008/01/30/hostname-tab-completion-for-openssh/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I use <a href="http://openssh.org/">OpenSSH</a> daily.  In fact the only app I probably use more is <a href="http://www.vim.org/">vim</a>.  However, until yesterday I was typing out the full username and hostname when using ssh:</p>
<p><code>&nbsp;&nbsp;&nbsp;ssh username@ridiculouslylong.domain.com</code></p>
<p><strong>Ugh</strong></p>
<p>Using the same username makes life a bit simpler:</p>
<p><code>&nbsp;&nbsp;&nbsp;ssh ridiculouslylong.domain.com</code></p>
<p><strong>Meh</strong>, better, but I&#8217;m <em>really</em> lazy!</p>
<p>I&#8217;d heard about tab-completion for hostnames from various blogs, but never knew how to do it.  I hopped into #debian and thirty seconds later someone had kindly told me about <code><b>~/.ssh/config</b></code></p>
<p>Not only is any host listed in your <code>~/.ssh/config</code> auto-completed on the command line by hitting tab, but you can also specify what username to connect as!  So my .ssh/config file looks something like:</p>
<p><code>Host host1.domain.com<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;User randomuser<br />
Host www.somewhereelse.com<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;User someotheruser<br />
Host mail.domain2.com<br />
Host domain3.com</code></p>
<p>Now I can just type:<br />
<code>&nbsp;&nbsp;&nbsp;ssh h&lt;TAB&gt;&lt;ENTER&gt;</code><br />
to connect to <em>host1.domain.com</em> as <em>randomuser</em>.</p>
<p><b>Beautiful.</b></p>
<p>Check out <code>man ssh_config</code> for details and other options.</p>
<p>Also, if you&#8217;re not using <a href="http://en.wikipedia.org/wiki/Ssh-agent">ssh keys</a> instead of passwords, you&#8217;re doing too much work.  <a href="http://www.gnome.org/projects/seahorse/">Seahorse</a> makes SSH keys simple.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.schmichael.com/2008/01/30/hostname-tab-completion-for-openssh/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Wireless Bridges are a Scam</title>
		<link>http://blog.schmichael.com/2007/12/18/wireless-bridges-are-a-scam/</link>
		<comments>http://blog.schmichael.com/2007/12/18/wireless-bridges-are-a-scam/#comments</comments>
		<pubDate>Tue, 18 Dec 2007 18:04:36 +0000</pubDate>
		<dc:creator>Michael Schurter</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[access point]]></category>
		<category><![CDATA[bridge]]></category>
		<category><![CDATA[linksys]]></category>
		<category><![CDATA[tomato]]></category>
		<category><![CDATA[wifi]]></category>

		<guid isPermaLink="false">http://michael.susens-schurter.com/blog/2007/12/18/wireless-bridges-are-a-scam/</guid>
		<description><![CDATA[Disclaimer: I am not a hardware guy. The days when I enjoyed cracking open a computer case and poking around are long since past. These days if I can&#8217;t fix something via keyboard, I want no part of it. Unfortunately, &#8230; <a href="http://blog.schmichael.com/2007/12/18/wireless-bridges-are-a-scam/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Disclaimer: I am not a hardware guy.  The days when I enjoyed cracking open a computer case and poking around are long since past.  These days if I can&#8217;t fix something via keyboard, I want no part of it.</p>
<p>Unfortunately, for a client I needed to extend a LAN from Building A across 30 feet of asphalt to Building B.  Time to don my Net Admin hat to install a nice straightforward WiFi bridge.</p>
<p>Despite already owning a <a href="http://en.wikipedia.org/wiki/WRT54G">Linksys WRT54G series router</a>, I decided to just pickup 2 Linksys <a href="http://www.linksys.com/servlet/Satellite?c=L_Product_C2&#038;childpagename=US%2FLayout&#038;cid=1134692497433&#038;pagename=Linksys%2FCommon%2FVisitorWrapper&#038;lid=9743339789B32">WET54G</a> wireless bridges (version 3.1).  The <b>bridges are actually <em>more</em> expensive than routers.</b>  But that just means they&#8217;re better suited for their simple task, right?  Wrong&#8230;</p>
<p>The 2 WET54Gs have been nothing but trouble for me.  Their web interface sometimes redirects to the hardcoded IP address.  They drop their connection and require resetting a lot.  They just don&#8217;t work reliably.</p>
<p>So I flashed the WRT54G with Tomato firmware to replace one of the WET54Gs, and so far things are working much better.</p>
<p>If I&#8217;ve never mentioned it before: <b>I love <a href="http://www.polarcloud.com/tomato">Tomato</a> firmware.</b>  I&#8217;ve been using it at home for ages and <b>never</b> have to reset it.  The <a href="http://en.wikibooks.org/wiki/Tomato_Firmware#Features">features</a> are outstanding (QoS with ACK Prioritization is a lifesaver when working over SSH).</p>
<p>From now on anytime I need a WiFi router, access point, or bridge, I&#8217;m going to buy a WRT54G and put Tomato on it.  Its cheaper than buying specialized Access Points or Bridges and has lots more features.</p>
<p>Did I mention Tomato generates sexy real-time graphs in SVG?  Have a screenshot:</p>
<div><a href="http://michael.susens-schurter.com/files/tomato-firmware.png"><img src="http://michael.susens-schurter.com/files/tomato-firmware.thumb.png" alt="Tomato Firmware Bandwidth Graph" /></a></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.schmichael.com/2007/12/18/wireless-bridges-are-a-scam/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

