<?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>Shawn Hogan Fan Club &#187; Server Admin</title>
	<atom:link href="http://www.shawnhogan.com/category/tech-stuff/server-admin/feed" rel="self" type="application/rss+xml" />
	<link>http://www.shawnhogan.com</link>
	<description>What the hell??!? (blah, blah of a wannabe alien)</description>
	<lastBuildDate>Wed, 15 May 2013 09:22:47 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4.2</generator>
		<item>
		<title>Solved!  ndbcluster ALTER TABLE yields &#8220;ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction&#8221;</title>
		<link>http://www.shawnhogan.com/2013/05/solved-ndbcluster-alter-table-yields-error-1205-hy000-lock-wait-timeout-exceeded-try-restarting-transaction.html</link>
		<comments>http://www.shawnhogan.com/2013/05/solved-ndbcluster-alter-table-yields-error-1205-hy000-lock-wait-timeout-exceeded-try-restarting-transaction.html#comments</comments>
		<pubDate>Wed, 15 May 2013 06:23:08 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[Server Admin]]></category>

		<guid isPermaLink="false">http://www.shawnhogan.com/?p=1021</guid>
		<description><![CDATA[This is mostly a reminder to myself&#8230; but maybe someone else will find it useful as well.
I migrated some databases to ndbcluster (some of the tables were fairly decent sized&#8230; 9GB for 1 table spanning 220M records), and was running into a problem where an ALTER TABLE to change the storage engine was  [...]]]></description>
			<content:encoded><![CDATA[<p>This is mostly a reminder to myself&#8230; but maybe someone else will find it useful as well.</p>
<p>I migrated some databases to ndbcluster (some of the tables were fairly decent sized&#8230; 9GB for 1 table spanning 220M records), and was running into a problem where an ALTER TABLE to change the storage engine was spewing out some cryptic error message like so:</p>
<p><strong>ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction</strong></p>
<p>Cryptic mainly because it was coming from MyISAM, which doesn&#8217;t have record locking.  Long story short is it&#8217;s not a setting in your my.cnf file for mysqld, rather a setting in your config.ini for ndbd.  The <strong>TransactionDeadlockDetectionTimeout</strong> setting defaults to 1200 (1.2 seconds), I ended up raising it to 24 hours just for purposes of migrating existing tables to ndbcluster (the setting of 86400000 ms is 24 hours).</p>
<p>Being relatively new to MySQL Cluster, it was also a good opportunity to practice making a config change and doing a rolling restart of the ndbd nodes to have no downtime.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shawnhogan.com/2013/05/solved-ndbcluster-alter-table-yields-error-1205-hy000-lock-wait-timeout-exceeded-try-restarting-transaction.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cacti Slow On Mac OS X (specifically RRDtool)</title>
		<link>http://www.shawnhogan.com/2011/11/cacti-slow-on-mac-os-x-specifically-rrdtool.html</link>
		<comments>http://www.shawnhogan.com/2011/11/cacti-slow-on-mac-os-x-specifically-rrdtool.html#comments</comments>
		<pubDate>Wed, 09 Nov 2011 09:19:38 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[Server Admin]]></category>

		<guid isPermaLink="false">http://www.shawnhogan.com/?p=972</guid>
		<description><![CDATA[So this has been driving me mad since I installed Mac OS X 10.7&#8230; Any time Cacti tried to output a graph, it would output, but it was painfully slow (like 30 seconds)&#8230; prior to installing 10.7, it was a fraction of a second.
Anyway&#8230; long story short is apparently RRDtool pulls the list of fonts from  [...]]]></description>
			<content:encoded><![CDATA[<p>So this has been driving me mad since I installed Mac OS X 10.7&#8230; Any time Cacti tried to output a graph, it would output, but it was painfully slow (like 30 seconds)&#8230; prior to installing 10.7, it was a fraction of a second.</p>
<p>Anyway&#8230; long story short is apparently RRDtool pulls the list of fonts from the system, and since it was running as the _www user, it was unable to write a the font cache to disk to make future font access fast.</p>
<p>Logging in as root and running the &#8220;fc-list&#8221; command to get a list of installed fonts fixed the problem.  The first time it ran it took 30 seconds (imagine that! heh), and subsequent times it was instant.  And Cacti graphs are back to being instant.  Hopefully this helps someone&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shawnhogan.com/2011/11/cacti-slow-on-mac-os-x-specifically-rrdtool.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Agnostic Servers</title>
		<link>http://www.shawnhogan.com/2011/08/agnostic-servers.html</link>
		<comments>http://www.shawnhogan.com/2011/08/agnostic-servers.html#comments</comments>
		<pubDate>Sun, 07 Aug 2011 23:56:16 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[Server Admin]]></category>

		<guid isPermaLink="false">http://www.shawnhogan.com/?p=969</guid>
		<description><![CDATA[Seagate is still not producing the hard drives I want for new servers in sufficient quantity, but they do seem to be actually producing them now.  I&#8217;ve seen places where I can get 30 of them lately&#8230; but I need 72.
I&#8217;m assuming I&#8217;ll be able to get them relatively soon and have started to think about  [...]]]></description>
			<content:encoded><![CDATA[<p>Seagate is still not producing the hard drives I want for <a href="http://www.shawnhogan.com/2011/05/starting-to-think-about-server-upgrades.html" target="_blank">new servers</a> in sufficient quantity, but they do seem to be actually producing them now.  I&#8217;ve seen places where I can get 30 of them lately&#8230; but I need 72.</p>
<p>I&#8217;m assuming I&#8217;ll be able to get them relatively soon and have started to think about how I want to lay the servers out architecturally.</p>
<p>As far as hardware goes, gigabit ethernet just really isn&#8217;t that fast these days&#8230; Real world use has being able to pass about 80MB/sec (theoretical maximum is about 110MB/sec).  When you have a cluster of servers passing massive amounts of data amongst themselves, 80MB/sec just doesn&#8217;t cut it.  Which is why the servers have Infinband QDR (40Gbit interconnects), so they should be able to pass 3.5GB/sec (ish) between themselves.</p>
<p>For software/services, I&#8217;m thinking maybe 12 identical servers that are more or less service agnostic&#8230; with each server being a web server, MySQL Cluster data node and a MySQL Cluster SQL node.  Then each server could probably be setup to handle 10,000 concurrent HTTP connections as well as 10,000 DB connections (1 per HTTP connection).  With 12 servers, you could have the capacity of 120k concurrent web connections, 120k DB connections capable of doing millions of SQL queries/sec.  If you need more capacity with anything, you could just bring online additional agnostic servers.</p>
<p>This of course is just in theory&#8230; who knows how it will test out in actual use, but it does seem like something worth testing at least.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shawnhogan.com/2011/08/agnostic-servers.html/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Router Firmware Upload From Mac Via Xmodem</title>
		<link>http://www.shawnhogan.com/2011/06/router-firmware-upload-from-mac-via-xmodem.html</link>
		<comments>http://www.shawnhogan.com/2011/06/router-firmware-upload-from-mac-via-xmodem.html#comments</comments>
		<pubDate>Sun, 05 Jun 2011 18:59:13 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[Server Admin]]></category>

		<guid isPermaLink="false">http://www.shawnhogan.com/?p=926</guid>
		<description><![CDATA[I had a switch that &#8220;lost&#8221; it&#8217;s operating system and was stuck in a reboot loop.  Long story short is I needed to upload the OS via a direct serial connection to fix it.  I didn&#8217;t have a Windows machine available, so I used my Mac and a Keyspan USA-19 (USB - DB9) thingie (heh).  This is mostly a  [...]]]></description>
			<content:encoded><![CDATA[<p>I had a switch that &#8220;lost&#8221; it&#8217;s operating system and was stuck in a reboot loop.  Long story short is I needed to upload the OS via a direct serial connection to fix it.  I didn&#8217;t have a Windows machine available, so I used my Mac and a Keyspan USA-19 (USB -> DB9) thingie (heh).  This is mostly a note for myself in case I need to ever do it again, and I forget.</p>
<p>Things that did not work&#8230;</p>
<ul>
<li>ZTerm let me get to the console just fine, but uploading the firmware with XModem failed for some reason (and you only found out it failed after a 3.5 hour upload time).</li>
<li>Keyspan device on Windows via Parallels (from all the Googling I did, apparently it&#8217;s just an known issue with that piece of hardware and Parallels and the drivers will not recognize it).</li>
<li>Virtual serial port in Windows/Parallels via a app called SerialClient (it was very difficult to find this app since the site that made it doesn&#8217;t exist anymore&#8230; people running Parallels said this worked for them, but it was many years ago&#8230; so maybe it was an older version of Mac OS X.  Either way, I couldn&#8217;t get the app to &#8220;connect&#8221;.).</li>
</ul>
<p>What DID work (thank God because I was running out of options)&#8230;</p>
<ol>
<li>Download/compile/install <a href="http://www.ohse.de/uwe/software/lrzsz.html">lrzsz</a> via <strong>./configure;make;make install</strong>.</li>
<li>From Terminal: <strong>screen /dev/tty.Keyserial1 57600</strong></li>
<li>Hit CONTROL+A</li>
<li>Type: <strong>:exec !! lsx -b -X ~/firmware_image.ros</strong></li>
</ol>
<p>It was infinitely faster than ZTerm (about 15 minutes vs. 3.5 hours), but more importantly it actually WORKED.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shawnhogan.com/2011/06/router-firmware-upload-from-mac-via-xmodem.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Starting To Think About Server Upgrades</title>
		<link>http://www.shawnhogan.com/2011/05/starting-to-think-about-server-upgrades.html</link>
		<comments>http://www.shawnhogan.com/2011/05/starting-to-think-about-server-upgrades.html#comments</comments>
		<pubDate>Sat, 28 May 2011 09:44:56 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[Server Admin]]></category>

		<guid isPermaLink="false">http://www.shawnhogan.com/?p=911</guid>
		<description><![CDATA[Amazing that it&#8217;s been half a decade now since we got the new blade servers that we are running on (got them in June of 2006).
Sadly, 12GB in a server just isn&#8217;t what it used to be and the database servers are really starting to feel strained as they beg for more memory.  Handling ~25GB of  [...]]]></description>
			<content:encoded><![CDATA[<p>Amazing that it&#8217;s been half a decade now since we got the new <a href="http://www.shawnhogan.com/2006/06/this-is-what-blade-servers-look-like.html">blade servers that we are running on</a> (got them in June of 2006).</p>
<p>Sadly, 12GB in a server just isn&#8217;t what it used to be and the database servers are really starting to feel strained as they beg for more memory.  Handling ~25GB of databases on servers with 12GB is just no bueno.  I thought of upgrading the RAM in the blades, but the maximum RAM the BIOS supports is 16GB, and all the DIMM slots are in-use&#8230; so it more or less would mean tossing all the existing RAM and buying 160GB of new RAM.  In the end spending that much money to gain 4GB per server isn&#8217;t really worth it (especially since 16GB wouldn&#8217;t really be enough either).</p>
<p>I started to do a little research on what would be some good options for upgrades&#8230; I think I want to stay away from blades simply because we did have the daughter card in the chassis fail once which took down all 10 blades (the daughter card controls the power buttons).  Buying 2 complete sets of blades/chassis is overkill just so you have stuff still up if one complete chassis goes down.  The &#8220;must haves&#8221; on my list are hot swappable drives with hardware RAID, hot swappable redundant power supply, some sort of 10Gbit/sec (or higher) connectivity for communicating between servers.  On top of it all, the servers need to be generally &#8220;dense&#8221; (I don&#8217;t want to take an entire rack of space).</p>
<p><img src="http://i.dell.com/resize.aspx/poweredge-c6100-314x314/295" style="float:right"><br />
<h2>PowerEdge C6100</h2>
<p>The <a href="http://www.dell.com/us/en/enterprise/servers/poweredge-c6100/pd.aspx?refid=poweredge-c6100" target="blank" rel="nofollow">Dell C6100</a> actually looked really nice at first glace&#8230;</p>
<h3>Pros</h3>
<ol>
<li>Super dense (4 servers in a 2U package)</li>
<li>Redundant power supplies (hot swap)</li>
<li>24 (!!) hot swap drives</li>
<li>Supports 10GbE or even QDR Infiniband (40Gbit/sec</ol>
<h3>Cons</h3>
<ol>
<li>Age &#8211; the server itself came out about 18 months ago without any refresh.  That means you have hard drive options and CPU options that are a year and a half old</li>
<li>Price &#8211; OMG&#8230; a single unit loaded up with 4 nodes, drives, RAM, Infiniband, etc. works out to <b>$54,709</b> (before tax).</li>
</ol>
<p>The age factor really becomes an issue when it comes to the disk drives&#8230; you can get 15k rpm drives in a 2.5&#8243; form factor, but Dell only offers 146GB models (there are 300GB models now).  The CPU isn&#8217;t really too bad&#8230; Dell&#8217;s fastest offering is the Xeon X5670&#8230; 2.93Ghz, 6 core @95 watts (wattage is important because of so much stuff crammed in there).  There is a slightly faster 95 watt, 6 core processor these days&#8230; the Xeon X5675&#8230; the same thing basically, just 3.06Ghz.  0.13Ghz speed difference isn&#8217;t a huge deal&#8230; but the hard drive difference is a big deal.</p>
<p>I started to think&#8230; well maybe I could just order it stripped down and then I could just replace the CPU/hard drives with better stuff.  Doing that, you still end up spending about $60,000 because you end up with 8 Xeon processors (valued at about $1,500 each that you just are going to throw away).</p>
<p>Then I started to think harder&#8230; Wait a minute&#8230; Dell doesn&#8217;t even make their own motherboards (at least I don&#8217;t think so)&#8230; so maybe I could find the source of these super dense motherboards and build my own systems (or just find the source of something similar&#8230; which ended up being the case).</p>
<p><img src="http://www.supermicro.com/a_images/products/superserver/2U/SYS-2026TT.jpg" style="float:right"><br />
<h2>SuperServer 2026TT-H6IBQRF</h2>
<p>What do we have here???  The Supermicro <a href="http://www.supermicro.com/products/system/2U/2026/SYS-2026TT-H6IBQRF.cfm" target="_blank" rel="nofollow">SuperServer 2026TT-H6IBQRF</a> is more or less the same thing&#8230; 4 servers per 2U, hot swap hard drives, same BIOS/chip/controllers&#8230; supports the same Xeon processor family (up to 95 watts)&#8230; And as a bonus, Infiniband QDR is built in (it&#8217;s a $2,596 add-on for the Dell server) as well as an LSI MegaRAID hardware RAID card (a $2,156 add-on for the Dell server).</p>
<p>So let&#8217;s add up the cost to build one of these things with the CPU/hard drives I actually would WANT&#8230;</p>
<ul>
<li>Chassis (includes 4 motherboards, 2 power supplies, hard drive carriers, etc. &#8211; <b>$4,630.98</b></li>
<li>Xeon X5675 3.06Ghz CPU &#8211; $1,347.84 each, so <b>$10,782.72</b> for 8</li>
<li>8GB ECC/Reg DIMM &#8211; $124.26 each, so <b>$5,964.48</b> for 48</li>
<li>600GB Seagate Savvio 10K.5 &#8211; $391 each, so <b>$9,384</b> for 24 (also 410% more capacity, 21% faster and 20% more reliable than the 146GB options from Dell)</li>
</ul>
<h3>Add It All Up&#8230;</h3>
<p><b>$30,761.88</b> would be the total cost (a savings of $24,138.82) and in the end you get slightly faster CPUs and *way* better hard drives.  So in a single 2U package, you end up with 48 Xeon cores at 3.06Ghz, 384GB of 1333Mhz memory, 14.4TB of drive space (9.6TB usable after it&#8217;s configured as double redundant parity striping with RAID-6&#8230; which should be able to do more than 750MB/sec read/write). 8 gigabit ethernet ports and 4 Infiniband QDR (40Gbit) I/O.</p>
<p>Get 2 or 3 of those rigs, and you have some nasty (in a good way) servers that would be gloriously fun to run MySQL Cluster, web servers and whatever else you want.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shawnhogan.com/2011/05/starting-to-think-about-server-upgrades.html/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>PXE/Network Boot Linux With Mac OS X Server</title>
		<link>http://www.shawnhogan.com/2011/05/pxe-network-boot-linux-with-mac-os-x-server.html</link>
		<comments>http://www.shawnhogan.com/2011/05/pxe-network-boot-linux-with-mac-os-x-server.html#comments</comments>
		<pubDate>Mon, 02 May 2011 21:02:36 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[Server Admin]]></category>

		<guid isPermaLink="false">http://www.shawnhogan.com/?p=888</guid>
		<description><![CDATA[So I was in a situation where I want to upgrade the operating system on 10 blade servers that are in a data center.  The problem is I really didn&#8217;t want to sit there and install the new operating systems on each one by one.  The other issue is the servers don&#8217;t have CD/DVD drives in them since are  [...]]]></description>
			<content:encoded><![CDATA[<p>So I was in a situation where I want to upgrade the operating system on 10 blade servers that are in a data center.  The problem is I really didn&#8217;t want to sit there and install the new operating systems on each one by one.  The other issue is the servers don&#8217;t have CD/DVD drives in them since are blades.</p>
<p>I have a couple older Xserve G5s in the facility, so I figured why not use them as network boot servers for the Linux machines?  By default OS X Server has a service for NetBoot (which is not the same thing and can really only be used to boot other Mac machines).  But Mac OS X Server also has all the underlying services already installed to make it able to be a server for PXE booting from normal Intel BIOS.</p>
<p>So what network services do we need exactly (at least for how I did it)?  <strong>DHCP</strong>,  <strong>NFS</strong>,  <strong>TFTP</strong> and optionally <strong>Web</strong> if you do an auto-install like I did.</p>
<h2>Preface</h2>
<p>This was written up in about 5 minutes mostly so I wouldn&#8217;t forget what I did in case I needed to do it again.  Some assumptions are made like you aren&#8217;t completely new to Linux/Mac OS X administration.  You can also have pxelinux boot to a operating system selection menu and some other things, but for what *I* wanted to do, I didn&#8217;t care about being able to boot into multiple operating systems/modes.</p>
<h2>Setting Up The Server</h2>
<p>Mac OS X Server makes it really simple to get DHCP, NFS and Web servers online since the normal Server Admin has a GUI for each.</p>
<p><img src="http://img580.imageshack.us/img580/2168/enableservices.png"></p>
<p>Mac OS X has a TFTP server installed by default, but there it&#8217;s not running by default and has no GUI.  You can of course enable/configure it from the shell, but just to make things simple, there is a free app you can download that will make configuring and starting the TFTP service simple (the app is just a configuration utility, so it does not need to run once you are finished, so adds no overhead).  You can <a href="http://ww2.unime.it/flr/tftpserver/" target="_blank">grab the app over here</a>.</p>
<p><img src="http://img850.imageshack.us/img850/4206/tftpserver.png"></p>
<h2>Files Served By TFTP</h2>
<p>I was installing openSUSE 11.4, so that is what my example revolves around&#8230; most Linux installations should be similar, if not identical.  First, make sure you have <strong><a href="http://syslinux.zytor.com/wiki/index.php/The_Syslinux_Project" target="_blank">syslinux</a></strong>, which you probably already have since most Linux distributions install it by default.</p>
<p>Copy <strong>/usr/share/syslinux/pxelinux.0</strong> to your Mac OS X TFTP Server: <strong>/private/tftpboot/pxelinux.0</strong></p>
<p>Create a directory on your Mac OS X Server: <strong>/private/tftpboot/pxelinux.cfg</strong>, and then create a file named <strong>default</strong> within that folder with the following:</p>
<fieldset>
<legend>default</legend>
<p><font face="Fixedsys">default os114-in</p>
<p>label os114-in<br />
kernel osuse11-4.krnl<br />
append initrd=osuse11-4.ird ramdisk_size=65536 install=nfs://10.211.55.5/images/opensuse10-4 autoyast=http://10.211.55.5/autoyast.xml splash=verbose showopts</font></fieldset>
<p>Obviously change the IP address to your Mac OS X Server IP address.  The <strong>autoyast</strong> part is optional and only needed if you have an auto-configuration file for YaST.</p>
<p>Now we want to grab two files from the installation DVD/.iso so we have the &#8220;real&#8221; kernel.</p>
<p>Copy <strong>/boot/x86_64/loader/linux</strong> from the installation DVD to your Mac OS X TFTP Server: <strong>/private/tftpboot/osuse11-4.krnl</strong> (notice the file rename)<br />
Copy <strong>/boot/x86_64/loader/initrd</strong> from the installation DVD to your Mac OS X TFTP Server: <strong>/private/tftpboot/osuse11-4.ird</strong> (notice the file rename here too)</p>
<h2>Special Options For DHCP Server</h2>
<p>There is not a GUI for adding special options to the DHCP server, but it&#8217;s easy enough to add them manually.  Just edit the <strong>/etc/bootpd.plist</strong> file, and add two keys/values to it (option 150 is the IP address of your TFTP server, option 67 is the kernel file name the TFTP server is serving):</p>
<p><img src="http://img135.imageshack.us/img135/1603/bootpd.png"></p>
<h2>NFS Sharing Of Installation DVD</h2>
<p>Edit your <strong>/etc/exports</strong> file, and add the following line to it:</p>
<p>/images/opensuse10-4 -ro</p>
<p>Then just copy the contents of the entire installation DVD to /images/opensuse10-4.  You can of course just do a symlink or something if you want.</p>
<h2>Cross Your Fingers&#8230;</h2>
<p>Hopefully if all goes well, you should see something along the lines of this when you choose to network boot a machine (for purposes of this video, I did it in a virtualized environment of Parallels so I didn&#8217;t need to boot any running servers):</p>
<p><iframe width="620" height="468" src="http://www.youtube.com/embed/1yqMaCbNtPc?html5=1" frameborder="0" allowfullscreen></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.shawnhogan.com/2011/05/pxe-network-boot-linux-with-mac-os-x-server.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A 3rd Party CAN Get You Banned From AdSense</title>
		<link>http://www.shawnhogan.com/2010/07/a-3rd-party-can-get-you-banned-from-adsense.html</link>
		<comments>http://www.shawnhogan.com/2010/07/a-3rd-party-can-get-you-banned-from-adsense.html#comments</comments>
		<pubDate>Thu, 15 Jul 2010 08:33:15 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[Server Admin]]></category>

		<guid isPermaLink="false">http://www.shawnhogan.com/?p=1004</guid>
		<description><![CDATA[Note: This was moved from blogs.digitalpoint.com to here, because well&#8230; blogs.digitalpoint.com is no longer a sub-domain we use (user blogs were wiped when we migrated to XenForo).

Update 3
Jul 25 @ 2:30 pm &#8211; One thing that I learned from this is you shouldn&#8217;t be dependent on something that  [...]]]></description>
			<content:encoded><![CDATA[<p><span style="font-weight:bold;font-size:20px;color:orange">Note: This was moved from blogs.digitalpoint.com to here, because well&#8230; blogs.digitalpoint.com is no longer a sub-domain we use (user blogs were wiped when we migrated to XenForo).<span></p>
<fieldset>
<legend>Update 3</legend>
<p><strong>Jul 25 @ 2:30 pm</strong> &#8211; One thing that I learned from this is you shouldn&#8217;t be dependent on something that ultimately you have no control over.  So I built an in-house advertising system that we are going to start using here.</p>
<p><a href="https://advertising.digitalpoint.com/" target="_blank">https://advertising.digitalpoint.com/</a></fieldset>
<fieldset>
<legend>Update 2</legend>
<p><strong>Jul 22 @ 1:14 pm</strong> &#8211; I got a formal apology from Google about it (or at least as close as one would expect).</p>
<blockquote><p>Thanks for following up with us.  Our AdSense representatives monitor all sites participating in Google&#8217;s AdSense program according to our Terms and Conditions and program policies. It appears that we sent the prior termination messaging was an error and I apologize for the confusion.</p>
<p>We have now re-enabled your account. Please note that because ad serving to your site was temporarily disabled, there may be a delay of up to 48 hours or more before ads begin appearing on your site again. We appreciate your patience.</p>
<p>Sincerely,</p>
<p>Sarah H.<br />
The Google AdSense Team</p></blockquote>
</fieldset>
<fieldset>
<legend>Update</legend>
<p><strong>Jul 21 @ 4:50 pm</strong> &#8211; I just noticed AdSense ads were working here again.  I checked my email and no notice from Google about it.  I tried logging into my AdSense account to see if I could access it now, and I *am* able to log in now&#8230; so I guess it was reversed.  {shrug}  Also, I just double checked how many impressions we&#8217;ve served up, and it wasn&#8217;t quite 1B&#8230; as of right now it&#8217;s 891,208,757 to date.  I was also able to confirm that the Allowed Sites whitelist was (and always has been) enabled for my account as I thought.</fieldset>
<p>I&#8217;ve heard people claim they were banned from AdSense unfairly for this, that and whatever other reason though the years&#8230; and to be honest, I just chalked it up to them doing something they shouldn&#8217;t have been and just not admitting it.</p>
<p>Low and behold, it *can* happen to even larger publishers (I believe we were approaching over 1,000,000,000 [yes, billion] AdSense impressions over the years).  <strong>Note:</strong> I can&#8217;t confirm the exact number because, well&#8230; my AdSense account was disabled.</p>
<p>We get advertising inquires daily and we even go so far as directing people to AdWords and explain to them how to use Site/Placement targeting if they wish to advertise on digitalpoint.com.  It&#8217;s less money for us, but in the end it&#8217;s easier and less to manage.  I would guess Google has gained at least 200 NEW AdWords advertisers because of this.</p>
<p>Even more ironic is we actually run the largest AdSense support site to help publishers.  Google&#8217;s own <a href="http://www.google.com/support/forum/p/AdSense" target="_blank">AdSense support site</a> has 75,783 discussions vs. 760,145 for our <a href="https://forums.digitalpoint.com/forums/adsense.27/" target="_blank">AdSense help forum</a>. We&#8217;ve even had <a href="https://forums.digitalpoint.com/members/adsenseadvisor.9278/" target="_blank">Google AdSense representatives posting</a> in our forum.</p>
<p><strong style="font-size:18px">The Warnings</strong><br />
In the last month, we received 30 warnings for running AdSense ads on non-compliant websites (gambling related).  These are sites that I don&#8217;t own, have no affiliation with, nor do I know who the owner is.  I have no idea why someone would want to use my AdSense publisher ID on their site, but I guess that&#8217;s beside the point really.  AdSense <a href="http://adsense.blogspot.com/2007/09/allowed-and-clear.html" target="_blank">allows you to set a whitelist</a> of your sites just so this doesn&#8217;t cause problems.  We have used this whitelist for a long time (since we first heard about it), and none of these gambling related sites were on our whitelist.</p>
<p>Hell, I even got an email from Google *because* I use a whitelist (and STILL didn&#8217;t turn off the whitelist function)&#8230;</p>
<blockquote><p><strong>Your Allowed Sites settings blocked $220 in earnings last week</strong></p>
<p>We noticed that you&#8217;ve been receiving ad activity on sites which aren&#8217;t included in your Allowed Sites list. If a URL displaying your AdSense ad code is not on your Allowed Sites list, ads will still be displayed, but you won&#8217;t receive any earnings for that URL.</p>
<p>For your reference, sites that display your ad code, but aren&#8217;t included in your Allowed Sites list generated roughly $220 from May 2 through May 8.</p></blockquote>
<p><strong style="font-size:18px">My Response</strong><br />
After seeing a zillion of these notices coming in, I responded and let them know that these are not my sites and that I use their whitelisting feature (and that none of these sites are on my whitelist).</p>
<p>Sarah H. from Google&#8217;s AdSense Team responded back a couple weeks later letting me know that, &#8220;<span style="background-color:#ff0">If that site or URL is not in the Allowed Sites List within your account, no further action is needed and this issue won&#8217;t negatively affect your account in any way.</span>&#8220;.  Alright&#8230; no further action is needed.</p>
<p><strong style="font-size:18px">Account Disabled</strong><br />
Fast forward a couple days and I get this email from Google letting me know my account is now disabled because of violations of program policies&#8230; specifically, <span style="background-color:#ff0">AdSense publishers are not permitted to place Google ads on sites with content related to gambling or casinos</span>.  I *still* don&#8217;t own a gambling/casino related site (nor have I ever), so I&#8217;m assuming it&#8217;s related to the 30 warnings I got in the last month for someone else trying to run my publisher ID on their sites.</p>
<p><img src="http://img534.imageshack.us/img534/8862/emails3.png"></p>
<p>While I still think the majority of people who claimed to have their AdSense account unfairly terminated are probably just whiners that got caught doing something they shouldn&#8217;t be, I can say for 100% certainty now that it can (and clearly does) happen sometimes.</p>
<p>I guess it&#8217;s time to finally start managing advertising in-house&#8230; Just one more thing to add to the &#8220;to-do&#8221; list.  /sigh</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shawnhogan.com/2010/07/a-3rd-party-can-get-you-banned-from-adsense.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>vBulletin 3.8.3 Upgrade&#8230;</title>
		<link>http://www.shawnhogan.com/2009/07/vbulletin-383-upgrade.html</link>
		<comments>http://www.shawnhogan.com/2009/07/vbulletin-383-upgrade.html#comments</comments>
		<pubDate>Fri, 24 Jul 2009 09:13:01 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[Server Admin]]></category>

		<guid isPermaLink="false">http://www.shawnhogan.com/2009/07/vbulletin-383-upgrade.html</guid>
		<description><![CDATA[Okay, gonna go ahead and upgrade the Digital Point Forums to vBulletin 3.8.3&#8230; Since so many of you are freaks and are on it 24/7, I made this post to keep you up to date on what&#8217;s going on (I&#8217;ll update it periodically throughout the process).  You can also use this blog post as the new temporary  [...]]]></description>
			<content:encoded><![CDATA[<p>Okay, gonna go ahead and upgrade the Digital Point Forums to vBulletin 3.8.3&#8230; Since so many of you are freaks and are on it 24/7, I made this post to keep you up to date on what&#8217;s going on (I&#8217;ll update it periodically throughout the process).  You can also use this blog post as the new temporary forum for all your discussion needs while I do the upgrade.  hah</p>
<p><center><img src="http://img154.imageshack.us/img154/5639/forumhjb.jpg"></center></p>
<ul>
<li><strong>3:26 am</strong> &#8211; Reading and posting seems to work&#8230; I suppose that&#8217;s good enough for now (still working on the other stuff, but don&#8217;t need to force everyone off to do it).
<li><strong>3:24 am</strong> &#8211; Skimming over various areas of the forum to see if things (mostly) work.  I could let you guys in before the templates are fully updated possibly.
<li><strong>3:22 am</strong> &#8211; New moderator permissions set
<li><strong>3:17 am</strong> &#8211; Static CSS files located on single server in web cluster and spread around properly (I hate this about vBulletin BTW&#8230; gimme a hook location to do it please!)
<li><strong>3:09 am</strong> &#8211; Core upgrade done.
<li><strong>3:07 am</strong> &#8211; Recoded some of the upgrade scripts so they aren&#8217;t making that change to the reputation table.  Will deal with issue this later instead.
<li><strong>3:00 am</strong> &#8211; Stupid reputation table was altered in 3.8.0 to not allow negative userids so it can accommodate 4 billion users instead of &#8220;only&#8221; 2 billion.  Stupid.  I used negative userids internally for some stuff.  /thinking what to do about this&#8230;
<li><strong>2:55 am</strong> &#8211; First problem&#8230; reputation table alterations not going well.  Going digging in raw database&#8230;
<li><strong>2:50 am</strong> &#8211; Running &#8220;ALTER TABLE pmtext&#8221; on DB servers.  That&#8217;s a big one&#8230; going to get another beer.
<li><strong>2:49 am</strong> &#8211; Up to version 3.8.0 alpha 1
<li><strong>2:43 am</strong> &#8211; It&#8217;s almost 3am.  If you are a cute girl reading this, please post your picture in the comments, k thanks.
<li><strong>2:41 am</strong> &#8211; I forgot we have to go through all versions to get to the newest&#8230; lol&#8230; going through 3.7.0 beta 4 at the moment.
<li><strong>2:40 am</strong> &#8211; Userlist rebuilding
<li><strong>2:36 am</strong> &#8211; Watching DB servers alter thread table for tagging support&#8230; (this is really boring)
<li><strong>2:34 am</strong> &#8211; Watching DB servers alter thread table for prefix support&#8230; /bored
<li><strong>2:30 am</strong> &#8211; New PHP files in place and synced across web server cluster
<li><strong>2:29 am</strong> &#8211; DB backup done
<li><strong>2:27 am</strong> &#8211; Thinking I might not have enough beer for this&#8230;
<li><strong>2:25 am</strong> &#8211; DB backup still running (it&#8217;s huge&#8230; many, many, many gigs)
<li><strong>2:18 am</strong> &#8211; Got beer and craisens
<li><strong>2:17 am</strong> &#8211; Backing up DB
<li><strong>2:13 am</strong> &#8211; Making this post
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.shawnhogan.com/2009/07/vbulletin-383-upgrade.html/feed</wfw:commentRss>
		<slash:comments>236</slash:comments>
		</item>
		<item>
		<title>Spam Blocker Works!</title>
		<link>http://www.shawnhogan.com/2009/07/spam-blocker-works.html</link>
		<comments>http://www.shawnhogan.com/2009/07/spam-blocker-works.html#comments</comments>
		<pubDate>Sat, 18 Jul 2009 09:32:58 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Server Admin]]></category>

		<guid isPermaLink="false">http://www.shawnhogan.com/2009/07/spam-blocker-works.html</guid>
		<description><![CDATA[Okay, so I decided not to blog for 2+ years to see if the spam blocker thing I made would work, and sure enough it did&#8230; After 2+ years, not a single spam comment got through&#8230; I&#8217;d say that was pretty good, eh?
On a better note, I have 2 years of life to write about now&#8230; stay tuned&#8230;   [...]]]></description>
			<content:encoded><![CDATA[<p>Okay, so I decided not to blog for 2+ years to see if the <a href="http://www.shawnhogan.com/2007/04/maybe-no-less-spam.html" target="_blank">spam blocker thing I made</a> would work, and sure enough it did&#8230; After 2+ years, not a single spam comment got through&#8230; I&#8217;d say that was pretty good, eh?</p>
<p>On a better note, I have 2 years of life to write about now&#8230; stay tuned&#8230; <img src='http://www.shawnhogan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.shawnhogan.com/2009/07/spam-blocker-works.html/feed</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Maybe No Less Spam?</title>
		<link>http://www.shawnhogan.com/2007/04/maybe-no-less-spam.html</link>
		<comments>http://www.shawnhogan.com/2007/04/maybe-no-less-spam.html#comments</comments>
		<pubDate>Wed, 25 Apr 2007 18:31:43 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[Blogs]]></category>
		<category><![CDATA[Server Admin]]></category>

		<guid isPermaLink="false">http://www.shawnhogan.com/?p=842</guid>
		<description><![CDATA[The comment spam on my blog here was getting to the point of just being silly&#8230; around 4,000 spam comments per day (breaks down to about one every 15 seconds 24/7).
I decided to try and do something about it so I don&#8217;t have to weed through them manually (the time consumption on this task is one of  [...]]]></description>
			<content:encoded><![CDATA[<p>The comment spam on my blog here was getting to the point of just being silly&#8230; around 4,000 spam comments per day (breaks down to about one every 15 seconds 24/7).</p>
<p>I decided to try and do something about it so I don&#8217;t have to weed through them manually (the time consumption on this task is one of the biggest reasons I don&#8217;t post as often as I used to).</p>
<p>So let&#8217;s see how it works&#8230; if you see me posting more often, then you know it worked.  <img src='http://www.shawnhogan.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.shawnhogan.com/2007/04/maybe-no-less-spam.html/feed</wfw:commentRss>
		<slash:comments>57</slash:comments>
		</item>
		<item>
		<title>Monitor Everything</title>
		<link>http://www.shawnhogan.com/2006/10/monitor-everything.html</link>
		<comments>http://www.shawnhogan.com/2006/10/monitor-everything.html#comments</comments>
		<pubDate>Thu, 26 Oct 2006 09:06:43 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[Server Admin]]></category>

		<guid isPermaLink="false">http://www.shawnhogan.com/2006/10/monitor-everything.html</guid>
		<description><![CDATA[Okay, is anyone tired of my server admin tips yet?  Yes?  Too bad.
Monitor everything&#8230; Put as much info at your finger tips as easily as possible.  Put that info in a place where you will always be looking at it for some reason.  For example, I made a vBulletin plug-in that monitors 4 memcached  [...]]]></description>
			<content:encoded><![CDATA[<p>Okay, is anyone tired of my server admin tips yet?  Yes?  Too bad.</p>
<p>Monitor everything&#8230; Put as much info at your finger tips as easily as possible.  Put that info in a place where you will always be looking at it for some reason.  For example, I made a vBulletin plug-in that monitors 4 memcached servers (including a latency test it runs) as well as 10 blade servers.  This shows every time I&#8217;m in the admin of the forum (which is a lot), so I can&#8217;t help but to not see it.</p>
<p>I wrote a little daemon that runs on my servers that can quickly report back whatever info I want (time, disk RAID status, server load, MySQL replication status, etc.)</p>
<p>The more info you have in one place (especially when you run a bunch of servers), the easier it is to see anything wrong.  For example, I had an issue with a web server serving requests slow one day&#8230; it ultimately ended up not being a problem with the web server, but the memcached server it was using.  The latency test was showing ~2,000 ms latency (2 seconds) vs. the normal 0.5 ms (1/2000 of a second).</p>
<p>And be proactive about monitoring stuff&#8230; don&#8217;t wait until something bad happens to start doing it!  Then it&#8217;s too late.</p>
<p><center><img src="http://img138.imageshack.us/img138/3971/monitorqa8.png"></center></p>
<p>Can I go to bed now?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shawnhogan.com/2006/10/monitor-everything.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>strace</title>
		<link>http://www.shawnhogan.com/2006/10/strace.html</link>
		<comments>http://www.shawnhogan.com/2006/10/strace.html#comments</comments>
		<pubDate>Wed, 25 Oct 2006 00:42:43 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Server Admin]]></category>

		<guid isPermaLink="false">http://www.shawnhogan.com/2006/10/strace.html</guid>
		<description><![CDATA[Yay, more server admin fun!     Here&#8217;s a useful *nix command that will let you determine what system calls a program uses&#8230;  For example, I wanted to double check that libevent calls within memcached were using epoll() and select() or poll() calls (epoll scales better) on my SuSE Linux  [...]]]></description>
			<content:encoded><![CDATA[<p>Yay, more server admin fun!  <img src='http://www.shawnhogan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />   Here&#8217;s a useful *nix command that will let you determine what system calls a program uses&#8230;  For example, I wanted to double check that libevent calls within memcached were using epoll() and select() or poll() calls (epoll scales better) on my SuSE Linux machines&#8230;</p>
<div style="margin:10px"><tt>server:~ # <strong>strace memcached -u root</strong></p>
<p>...clipped...<br />
epoll_ctl(5, EPOLL_CTL_ADD, 3, {EPOLLIN, {u32=5313904, u64=5313904}}) = 0<br />
epoll_ctl(5, EPOLL_CTL_ADD, 4, {EPOLLIN, {u32=5313920, u64=5313920}}) = 0<br />
epoll_ctl(5, EPOLL_CTL_ADD, 7, {EPOLLIN, {u32=5313968, u64=5313968}}) = 0<br />
epoll_wait(5, {}, 1024, 1000)           = 0</tt></div>
<p>Sure enough!  <img src='http://www.shawnhogan.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.shawnhogan.com/2006/10/strace.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Use Server-Side Caching When Possible (memcached)</title>
		<link>http://www.shawnhogan.com/2006/10/use-server-side-caching-when-possible-memcached.html</link>
		<comments>http://www.shawnhogan.com/2006/10/use-server-side-caching-when-possible-memcached.html#comments</comments>
		<pubDate>Tue, 24 Oct 2006 09:59:42 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Server Admin]]></category>

		<guid isPermaLink="false">http://www.shawnhogan.com/2006/10/use-server-side-caching-when-possible.html</guid>
		<description><![CDATA[Purely out of necessity, I&#8217;ve become a system administrator/architect for digitalpoint.com servers&#8230; and a few people have been asking me for general admin tips to make things stable and scalable, so here&#8217;s a good one for you&#8230;
Use memcached&#8230; no really, use it.
memcached is a distributed memory  [...]]]></description>
			<content:encoded><![CDATA[<p>Purely out of necessity, I&#8217;ve become a system administrator/architect for digitalpoint.com servers&#8230; and a few people have been asking me for general admin tips to make things stable and scalable, so here&#8217;s a good one for you&#8230;</p>
<p>Use <strong><a href="http://www.danga.com/memcached/" target="_blank" rel="nofollow">memcached</a></strong>&#8230; no really, use it.</p>
<p>memcached is a distributed memory caching system that allows multiple servers to access the same shared memory (you can use it just for single local server too of course).  You can cache pretty much anything&#8230; SQL query results (especially ones that can&#8217;t hit indexes), dynamically generated web pages, dynamic RSS feeds, etc.</p>
<p>If you compile the <a href="http://www.php.net/memcache" target="_blank" rel="nofollow">memcache()</a> functions/class directly into PHP, you have a an easy (yet powerful) way to incorporate it.</p>
<p>For example, let&#8217;s say I have some existing code that makes a call to some sort of API (I use memcached for the <a href="http://www.digitalpoint.com/tools/suggestion/">keyword suggestion tool</a> in this way)&#8230; you can add a couple lines of code to cache the results.</p>
<p>[code=php]$data = @file_get_contents ("http://some_api_call_url?keywords=$keywords");[/code]</p>
<p>could become this:</p>
<p>[code=php]$memcache = new Memcache;<br />
$memcache->addServer('192.168.1.1');<br />
$memcache->addServer('192.168.1.2');<br />
if (!$data = $memcache->get($keywords)) {<br />
	$data = @file_get_contents ("http://some_api_call_url?keywords=$keywords");<br />
	$memcache->set($keywords, $data, false, 86400); // 24 hour cache<br />
}<br />
$memcache->close();[/code]</p>
<p>Now we are only hitting the API for the same keywords once every 24 hours&#8230; that setup utilizes 2 memcached servers working as a single entity for pooling and failover.</p>
<p>I use memcache for all sorts of things (this blog&#8217;s pages are cached for 60 seconds as another example because <a href="http://www.shawnhogan.com/2006/04/wordpress-is-not-scaleable.html">WordPress sucks</a>, and protects against a massive influx of traffic [front-page digg for example]).</p>
<p>Here&#8217;s some things I personally use it for&#8230;</p>
<ul>
<li>Caching this blog&#8217;s pages (for 60 seconds)
<li>Caching <a href="http://www.digitalpoint.com/tools/suggestion/" target="_blank">Keyword Suggestion Tool</a> queries (for 7 days)
<li>Caching <a href="http://www.digitalpoint.com/tools/adsense-sandbox/" target="_blank">AdSense Sandbox</a> queries (for 24 hours)
<li>Temporary counters in <a href="http://www.php.net/manual/en/function.memcache-decrement.php" target="_blank">Keyword Tracker</a> (using <a href="http://www.php.net/manual/en/function.memcache-decrement.php" target="_blank" rel="nofollow">decrement()</a> for displaying remaining keywords on a &#8220;Check All&#8221;)
<li>Recent forum topics that show on all the webmaster tools
<li>vBulletin forum datastore
</ul>
<p>Any high-traffic site that is dynamically generated (especially if it includes SQL queries) could benefit from it&#8230; you could manage which memcache items need to be updated when you insert/update to the database, or an easy way to do it is just check the cache for the pages that potentially have high traffic&#8230; if they aren&#8217;t in the cache, put them in the cache with a certain expiration date.  Then the page is dynamically generated no more often than the cache expiration time (in the case of this blog, the pages are generated no more than once every 60 seconds).</p>
<p><strong>P.S. -</strong> Make sure you block outside access to your memcached port since there&#8217;s no authentication used!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shawnhogan.com/2006/10/use-server-side-caching-when-possible-memcached.html/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Linksys WRT54G Flashed With DD-WRT</title>
		<link>http://www.shawnhogan.com/2006/09/linksys-wrt54g-flashed-with-dd-wrt.html</link>
		<comments>http://www.shawnhogan.com/2006/09/linksys-wrt54g-flashed-with-dd-wrt.html#comments</comments>
		<pubDate>Thu, 28 Sep 2006 00:36:01 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[Server Admin]]></category>

		<guid isPermaLink="false">http://www.shawnhogan.com/2006/09/linksys-wrt54g-flashed-with-dd-wrt.html</guid>
		<description><![CDATA[I found some bugs in the web interface for a Linksys WRT54G router I bought to fix some 2Wire &#8220;issues&#8221;.  One of the bugs just would give me a false error when trying to do something and keep the form from being submitted.
Anyway, the short version of this entry is that I found out that you can  [...]]]></description>
			<content:encoded><![CDATA[<p>I found some bugs in the web interface for a Linksys WRT54G router I bought to <a href="http://www.shawnhogan.com/2006/09/linksys-fixes-2wire-shortcomings.html">fix some 2Wire &#8220;issues&#8221;</a>.  One of the bugs just would give me a false error when trying to do something and keep the form from being submitted.</p>
<p>Anyway, the short version of this entry is that I found out that you can flash your Linksys with an entirely new firmware.  Ultimately, I just wanted to fix the bug so I could do what the Linksys is supposed to do to begin with.  But after installing it, it looks like you can do all sorts of other interesting things&#8230; like run crontab processes (since it&#8217;s Linux).</p>
<p>Anyway, if you have a Linksys WRT54G (they are pretty popular), and you are a dork, you may want to give it a go&#8230; but don&#8217;t blame me if you screw yours up (mine was fine).</p>
<p><a href="http://www.dd-wrt.com/dd-wrtv2/ddwrt.php" target="_blank" rel="nofollow">http://www.dd-wrt.com/dd-wrtv2/ddwrt.php</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.shawnhogan.com/2006/09/linksys-wrt54g-flashed-with-dd-wrt.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Linksys Fixes 2Wire Shortcomings</title>
		<link>http://www.shawnhogan.com/2006/09/linksys-fixes-2wire-shortcomings.html</link>
		<comments>http://www.shawnhogan.com/2006/09/linksys-fixes-2wire-shortcomings.html#comments</comments>
		<pubDate>Tue, 12 Sep 2006 04:30:42 +0000</pubDate>
		<dc:creator>Shawn</dc:creator>
				<category><![CDATA[Server Admin]]></category>

		<guid isPermaLink="false">http://www.shawnhogan.com/?p=671</guid>
		<description><![CDATA[Did I tell you how much I hate the 2Wire router/gateway you have to use for fiber Internet connections?  You can&#8217;t get into the admin (which is web based) remotely, you can&#8217;t use DDNS so when your IP address changes weekly, you have no idea what it changed to, the firewall assumes you are an idiot  [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.linksys.com/servlet/Satellite?blobcol=urldata&#038;blobheadername1=Content-Type&#038;blobheadername2=Content-Disposition&#038;blobheadervalue1=image%2Fjpeg&#038;blobheadervalue2=inline%3B+filename%3Dwrt54g.jpg&#038;blobkey=id&#038;blobtable=MungoBlobs&#038;blobwhere=1130821060708&#038;ssbinary=true" align="right">Did I tell you how much I hate the <a href="http://www.shawnhogan.com/2006/08/dyndns-for-2wire-products.html" target="_blank" rel="nofollow">2Wire router/gateway</a> you have to use for fiber Internet connections?  You can&#8217;t get into the admin (which is web based) remotely, you can&#8217;t use DDNS so when your IP address changes weekly, you have no idea what it changed to, the firewall assumes you are an idiot and can&#8217;t do basic stuff with it, etc&#8230;</p>
<p>So the IP address changed over the weekend, and the only way to get the new IP is to drive out there and look to see what it is.  On the way out there, I had an idea&#8230; why not buy a Linksys WRT54G broadband router and just route all in-bound traffic to it.  Then you can use it&#8217;s firewall and DDNS functions.  So that&#8217;s what I did&#8230; and it works *so* much better&#8230; remote admin access and everything else.  I even tried to get tricky and route traffic to the Linksys and then right back to the 2Wire to see if I could get to it&#8217;s web admin remotely, but no such luck&#8230; It ends up redirecting it to a different URL (I&#8217;m assuming based on the client not being on the local network)&#8230; whatever that part isn&#8217;t that important anyway now.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shawnhogan.com/2006/09/linksys-fixes-2wire-shortcomings.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>
