<?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>The Reckless Geek</title>
	<atom:link href="http://www.threevolve.org/feed" rel="self" type="application/rss+xml" />
	<link>http://www.threevolve.org</link>
	<description>This Is Rubbish!</description>
	<lastBuildDate>Mon, 21 Jun 2010 15:29:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Use jQuery Validate to require users to select at least one checkbox</title>
		<link>http://www.threevolve.org/geekery/06-2010/use-jquery-validate-to-require-users-to-select-at-least-one-checkbox.html</link>
		<comments>http://www.threevolve.org/geekery/06-2010/use-jquery-validate-to-require-users-to-select-at-least-one-checkbox.html#comments</comments>
		<pubDate>Fri, 18 Jun 2010 20:04:37 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Geekery]]></category>

	<!-- AutoMeta Start -->
	<category>fruit</category>
	<category>error</category>
	<category>element</category>
	<category>checkboxes</category>
	<category>validate</category>
	<category>type</category>
	<category>fruitdesc</category>
	<category>insertafter</category>
	<category>fruit</category>
	<category>error</category>
	<category>element</category>
	<category>checkboxes</category>
	<category>validate</category>
	<category>type</category>
	<category>fruitdesc</category>
	<category>insertafter</category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://www.threevolve.org/?p=259</guid>
		<description><![CDATA[Have a list of HTML checkboxes, and want to require the user to check at least one? jQuery&#8217;s Validate plugin has you covered. First, you need to make the checkboxes into an array, because if you just name them all the same thing without it being an array, your POST value will just be the [...]]]></description>
			<content:encoded><![CDATA[<p>Have a list of HTML checkboxes, and want to require the user to check at least one?</p>
<p>jQuery&#8217;s <a href="http://docs.jquery.com/Plugins/Validation" target="_blank">Validate plugin</a> has you covered.</p>
<p>First, you need to make the checkboxes into an array, because if you just name them all the same thing without it being an array, your POST value will just be the last thing that was checked. Of course we want all of that data, not just the last one. So to do that, you just name them all the same thing with standard array square brackets at the end:</p>
<pre class="brush: html">
&lt;form action=&quot;something.php&quot; method=&quot;post&quot; id=&quot;fruitform&quot;&gt;
&lt;h4 id=&quot;fruitdesc&quot;&gt;What kind of fruit would you like?&lt;/h4&gt;
&lt;p&gt;&lt;input type=&quot;checkbox&quot; name=&quot;fruit[]&quot; value=&quot;apples&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;input type=&quot;checkbox&quot; name=&quot;fruit[]&quot; value=&quot;bananas&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;input type=&quot;checkbox&quot; name=&quot;fruit[]&quot; value=&quot;cherries&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;input type=&quot;checkbox&quot; name=&quot;fruit[]&quot; value=&quot;grapes&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;input type=&quot;checkbox&quot; name=&quot;fruit[]&quot; value=&quot;oranges&quot; /&gt;&lt;/p&gt;
&lt;p&gt;&lt;input type=&quot;submit&quot; value=&quot;Fruit!&quot; /&gt;&lt;/p&gt;
&lt;/form&gt;
</pre>
<p>Then, using the jQuery Validate plugin, make a rule for it, create an error message for it, and make sure the error is placed correctly. You MUST put quotes around the array name, or the square brackets mess it up:</p>
<pre class="brush: js">

$(&#039;#fruitform&#039;).validate({
    rules: {
        &quot;fruit[]&quot;: {
            required: true,
            minlength: 1
        }
    },
    messages: {
        &quot;fruit[]&quot;: &quot;Please select at least one type of fruit!&quot;
    },
    errorPlacement: function(error, element) {
        if (element.attr(&quot;name&quot;) == &quot;fruit[]&quot;) {
            error.insertAfter(&quot;#fruitdesc&quot;);
        }
        else {
            error.insertAfter(element);
        }
    }
});
</pre>
<p>Now it will require your users to pick at least one of your checkboxes.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.threevolve.org/geekery/06-2010/use-jquery-validate-to-require-users-to-select-at-least-one-checkbox.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Lunch Game</title>
		<link>http://www.threevolve.org/making-work-more-interesting/04-2010/the-lunch-game.html</link>
		<comments>http://www.threevolve.org/making-work-more-interesting/04-2010/the-lunch-game.html#comments</comments>
		<pubDate>Fri, 09 Apr 2010 16:28:50 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Making Work More Interesting]]></category>

	<!-- AutoMeta Start -->
	<category>winner</category>
	<category>winner</category>
	<category>lunch</category>
	<category>lunch</category>
	<category>ineligible</category>
	<category>game</category>
	<category>competitive</category>
	<category>group</category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://www.threevolve.org/?p=257</guid>
		<description><![CDATA[This is a pretty simple one. Lunch is already the second-best part of the day, and you&#8217;re about to make it fun and competitive! The Lunch Game&#8217;s purpose is to declare a daily &#8220;winner&#8221; of lunch, based on how awesome their lunch is. The rules are simple: Store-bought prepared meals, take out, delivery, etc are [...]]]></description>
			<content:encoded><![CDATA[<p>This is a pretty simple one.</p>
<p>Lunch is already the second-best part of the day, and you&#8217;re about to make it fun and competitive!</p>
<p>The Lunch Game&#8217;s purpose is to declare a daily &#8220;winner&#8221; of lunch, based on how awesome their lunch is.</p>
<p>The rules are simple:</p>
<ol>
<li>Store-bought prepared meals, take out, delivery, etc are ineligible to &#8220;Win Lunch&#8221;. Lunch participants must be home-made. (Go, leftovers!)</li>
<li>A winner will be determined by majority consensus within the entire group on the basis of &#8220;awesomeness&#8221;. Those with ineligible lunches can still participate in the determination of a winner.</li>
<li>If a winner can not be agreed upon, a neutral third-party must be brought in to declare a winner.</li>
<li>Make up your own rules to add on! Who cares? It&#8217;s just lunch :)</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.threevolve.org/making-work-more-interesting/04-2010/the-lunch-game.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lots of code soon</title>
		<link>http://www.threevolve.org/geekery/02-2010/lots-of-code-soon.html</link>
		<comments>http://www.threevolve.org/geekery/02-2010/lots-of-code-soon.html#comments</comments>
		<pubDate>Mon, 15 Feb 2010 03:02:41 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Geekery]]></category>

	<!-- AutoMeta Start -->
	<category>jquery</category>
	<category>recaptcha</category>
	<category>utilizing</category>
	<category>validate</category>
	<category>sharing</category>
	<category>share</category>
	<category>modified</category>
	<category>classes</category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://www.threevolve.org/?p=229</guid>
		<description><![CDATA[I&#8217;ve been a busy geek at my job, and as a result I have come up with some pretty cool stuff. I&#8217;ll be taking a bunch of functions and classes out of the context of the work projects I came up with them for, and sharing them here in an effort to share what I [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been a busy geek at my job, and as a result I have come up with some pretty cool stuff.</p>
<p>I&#8217;ll be taking a bunch of functions and classes out of the context of the work projects I came up with them for, and sharing them here in an effort to share what I have learned. Isn&#8217;t that the whole point of the Internet? The open sharing of knowledge? I think so.</p>
<p>So check back here soon for some pretty useful things I&#8217;ve made. Most of them incorporate jQuery plugins already created and some creative PHP, but I&#8217;ve modified them a bit to work in different ways.</p>
<p>Just a few:</p>
<p>- A self-validating contact form utilizing jQuery Validate and reCaptcha.<br />
- A photo upload/crop/share utility based on a jQuery plugin.<br />
- A simple jQuery/PHP/MySQL user registration system, utilizing jQuery Validate, jQuery Limit, and reCaptcha.</p>
<p>Plus more!</p>
<p>My hope is that someone will find them useful, no need to link back to me (nonsense when people require that &#8211; either give it away or don&#8217;t), but I&#8217;d love to hear how you&#8217;ve used and modified them!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.threevolve.org/geekery/02-2010/lots-of-code-soon.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Updated Password Generator</title>
		<link>http://www.threevolve.org/geekery/01-2010/updated-password-generator.html</link>
		<comments>http://www.threevolve.org/geekery/01-2010/updated-password-generator.html#comments</comments>
		<pubDate>Mon, 25 Jan 2010 22:23:52 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Geekery]]></category>

	<!-- AutoMeta Start -->
	<category>password</category>
	<category>generator</category>
	<category>mode</category>
	<category>added</category>
	<category>require</category>
	<category>advanced</category>
	<category>complex</category>
	<category>passwords</category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://www.threevolve.org/?p=223</guid>
		<description><![CDATA[Hey folks, I have made a ton of updates to the Pseudo-Random Pronounceable Password Generator, both aesthetic and functional. Check it out here. I also added an &#8220;advanced mode&#8221;, if you will, for those who require very long, very complex passwords. You can play with that here.]]></description>
			<content:encoded><![CDATA[<p>Hey folks,</p>
<p>I have made a ton of updates to the Pseudo-Random Pronounceable Password Generator, both aesthetic and functional.</p>
<p>Check it out <a href="http://threevolve.org/projects/password/new/index.html">here</a>.</p>
<p>I also added an &#8220;advanced mode&#8221;, if you will, for those who require very long, very complex passwords.</p>
<p>You can play with that <a href="http://threevolve.org/projects/password/new/mad/index.html">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.threevolve.org/geekery/01-2010/updated-password-generator.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>10 Things I Love About My Job</title>
		<link>http://www.threevolve.org/geekery/01-2010/10-things-i-love-about-my-job.html</link>
		<comments>http://www.threevolve.org/geekery/01-2010/10-things-i-love-about-my-job.html#comments</comments>
		<pubDate>Tue, 12 Jan 2010 18:43:16 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Real Life]]></category>

	<!-- AutoMeta Start -->
	<category>boop</category>
	<category>beep</category>
	<category>acknowledge</category>
	<category>glass</category>
	<category>parties</category>
	<category>extremely</category>
	<category>deathadder</category>
	<category>mouse</category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://www.threevolve.org/?p=221</guid>
		<description><![CDATA[I get to wear jeans and t-shirts. Every day. I have my own office, with big plate glass windows. I have an extremely fast workstation with a huge-ass monitor, and a Razer DeathAdder mouse. I get to do work I am proud of. My colleagues acknowledge that I probably know more about what I&#8217;m talking [...]]]></description>
			<content:encoded><![CDATA[<ol>
<li>I get to wear jeans and t-shirts. Every day.</li>
<li>I have my own office, with big plate glass windows.</li>
<li>I have an extremely fast workstation with a huge-ass monitor, and a Razer DeathAdder mouse.</li>
<li>I get to do work I am proud of.</li>
<li>My colleagues acknowledge that I probably know more about what I&#8217;m talking about than they do.</li>
<li>All of the doors here have keypads with secret codes. It&#8217;s sort of like working at NASA, but not quite as cool.</li>
<li>I know the code. beep boop beep beep boop</li>
<li>Someone is always leaving food in the breakroom, &#8220;free to hungry home&#8221;.</li>
<li>We have lots of parties, and when we do, we all get to drink beer at work.</li>
<li>It pays well, and the benefits are pretty good.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.threevolve.org/geekery/01-2010/10-things-i-love-about-my-job.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Replacing the alternator belt in a late Porsche 944 Non-Turbo</title>
		<link>http://www.threevolve.org/do-it-yourself/11-2009/replacing-the-alternator-belt-in-a-late-porsche-944-non-turbo.html</link>
		<comments>http://www.threevolve.org/do-it-yourself/11-2009/replacing-the-alternator-belt-in-a-late-porsche-944-non-turbo.html#comments</comments>
		<pubDate>Thu, 26 Nov 2009 16:44:35 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Do It Yourself]]></category>
		<category><![CDATA[Porsche 944]]></category>

	<!-- AutoMeta Start -->
	<category>turnbuckle</category>
	<category>bolts</category>
	<category>belt</category>
	<category>belts</category>
	<category>jack</category>
	<category>remove</category>
	<category>loosen</category>
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://www.threevolve.org/?p=207</guid>
		<description><![CDATA[WARNING! I am by no means a professional mechanic. Quite the opposite, in fact. This guide is provided as just that &#8211; a guide, and only a guide. This guide is not intended to be taken as professional advice, instruction, or as a factual tutorial. It expresses merely the single experience of me, the author. [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p><strong>WARNING! </strong>I am by no means a professional mechanic. Quite the opposite, in fact. This guide is provided as just that &#8211; a guide, and only a guide. This guide is not intended to be taken as professional advice, instruction, or as a factual tutorial. It expresses merely the single experience of me, the author. I do not guarantee or even imply that your experience will be exactly as described in this article. Work on your own car at your own risk. And <strong>please</strong>, if you do not feel comfortable with any of the procedures described in this article, take your car to a professional, experienced automotive technician who is familiar with your model of car, and has done this work before. If you do choose to perform your own work or repairs, please be careful, double-check everything, and don&#8217;t yell at me if your car bursts into flames, calls you vulgar names, and steals your wife.<em><br />
</em></p></blockquote>
<p>Be prepared!</p>
<p>You will need:</p>
<ul>
<li>Sturdy jackstands and a floor jack, or sturdy ramps. If your alternator belt has snapped, I would recommend a jack and jackstands, as pushing your immobile 944 up onto ramps is not going to be a fun thing to do.</li>
<li>A new alternator belt. Consult <a href="http://944online.com">944online.com</a> or <a href="http://autozone.com">Autozone</a> for the proper part. You will need a different one depending on whether or not your 944 has Air Conditioning.</li>
<li>A set of Metric wrenches and sockets. The largest being 17mm. You should have each size smaller as well.</li>
<li>A 17mm socket with a breaker bar. I did not have this, and had to use a 8&#8243; long wrench. The bolts were seized up pretty good, and it would have been a lot easier to get them off if I had a breaker bar. Don&#8217;t use a ratchet to try to free seized bolts. You WILL break it. Ask me how I know.</li>
<li>A can of WD-40. Saturate the bolts and turnbuckles in WD-40 before trying to remove them. This will help loosen them, and help keep them from seizing the next time you have to do this. Avoid getting WD-40 on any of the belt rollers. This is not good for the belts.</li>
<li>While you&#8217;re in there: A replacement power steering belt. You&#8217;ll have to take this off to remove the old alternator belt anyway, so why not replace it now? No extra work, just a good idea.</li>
<li>Orange grease soap/gritty soap/whatever other mechanic&#8217;s soap you prefer. You will need this. You are about to get very greasy. Oh, believe me, you <em>will </em>be greasy.</li>
<li>Clothes you don&#8217;t mind being black by the time you&#8217;re done.</li>
<li>Patience &#8211; this is not a hard job, but it can be time consuming, especially if you have stuck bolts. Don&#8217;t expect to be finished in 10 minutes. I would allow at least two hours for this job, if you have never done it before. That&#8217;s about how long it took me to do, and I had never done it before. Next time it will go a lot faster, as I WD-40&#8242;d all the bolts and stuff, and I won&#8217;t be spending a full hour trying to get them loose next time.</li>
</ul>
<p>Let&#8217;s get to it!</p>
<p>Here is a diagram of what the underside of the car will look like:</p>
<div id="attachment_209" class="wp-caption alignnone" style="width: 310px"><a href="http://www.threevolve.org/wp-content/uploads/2009/11/944-belts.png"><img class="size-medium wp-image-209" title="944-belts" src="http://www.threevolve.org/wp-content/uploads/2009/11/944-belts-300x212.png" alt="Click for full view" width="300" height="212" /></a><p class="wp-caption-text">Click for full view</p></div>
<ol>
<li>Jack up your 944 on the driver&#8217;s side from the jack point high enough so you can fit comfortably under the front of the car. The jack point is under the door, in the middle, marked by a little divot in the rocker panel. Make sure you get the jack on the jack point, or you&#8217;ll be removing it from the floor of your car. No bueno.</li>
<li>Get a jack stand under the frame as close to the engine as you can, on the driver side. Slowly let the jack down so the car rests securely on the jack stand. You definitely don&#8217;t want the car falling on your face. Blood on the underside of your car may hurt the resale value.</li>
<li>Get under the front and remove the bolts holding on the skid plate. You can remove the whole thing if you want, I chose to just remove the front bolts and let it droop down. I had plenty of room to work. Put your bolts somewhere safe, because losing bolts sucks.</li>
<li>Now that you can see the belts, it&#8217;s time to locate your two new best friends: the power steering pump turnbuckle and the A/C compressor turnbuckle. If you don&#8217;t know what a turnbuckle is, you should probably take your car to a shop to have this done..  Your mileage may vary, but on my car, the PS turnbuckle loosens in the direction of reverse turning wheels, and the A/C turnbuckle loosens in the opposite direction.</li>
<li>You will now need to loosen the PS turnbuckle enough to remove the PS belt. The PS belt needs to come off because it is blocking the Alt/AC belt from coming off. Once you have the PS belt off, loosen the AC turnbuckle until you can remove the Alt/AC belt. You may need to loosen it more than this for the new belt, depending on how worn the old one was.</li>
<li>Put on the new Alt/AC belt, and then put back the PS belt, or put on your new PS belt if you are doing both (might as well!). It&#8217;s easier to put both belts on, and then tension both.. but you can do one at a time if you like, it doesn&#8217;t really matter.</li>
<li>Turn the turnbuckles in the tightening direction until they are sufficiently tensioned. Take my advice at your own risk, but I tightened both belts until they each had about 1/2 inch of play, and they both seem to be doing fine.</li>
<li><strong>DO NOT FORGET TO TIGHTEN THE TURNBUCKLE STOP NUTS WHEN YOU&#8217;RE DONE!</strong> You do not want your belts losing tension!</li>
<li>Start up your car, and visually inspect the belts, make sure they are not wobbling or coming off, and not making any strange noises.</li>
<li>If all appears well, shut the car off, and re-secure the skid plate.</li>
<li>Clean up, and you&#8217;re done!</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.threevolve.org/do-it-yourself/11-2009/replacing-the-alternator-belt-in-a-late-porsche-944-non-turbo.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I had to walk home from work last night</title>
		<link>http://www.threevolve.org/do-it-yourself/11-2009/i-had-to-walk-home-from-work-last-night.html</link>
		<comments>http://www.threevolve.org/do-it-yourself/11-2009/i-had-to-walk-home-from-work-last-night.html#comments</comments>
		<pubDate>Thu, 19 Nov 2009 15:31:01 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Do It Yourself]]></category>
		<category><![CDATA[Porsche 944]]></category>

	<!-- AutoMeta Start -->
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://www.threevolve.org/?p=201</guid>
		<description><![CDATA[Because the alternator belt in our &#8217;87 Porsche 944 decided to go ahead and disintegrate. Luckily, it&#8217;s a $15 part, and an easy job, even for a novice tinkerer like me. I will be sure to post photos and an instructional guide on how to do it. Always good to know how to fix your [...]]]></description>
			<content:encoded><![CDATA[<p>Because the alternator belt in our &#8217;87 Porsche 944 decided to go ahead and disintegrate.</p>
<p>Luckily, it&#8217;s a $15 part, and an easy job, even for a novice tinkerer like me.</p>
<p>I will be sure to post photos and an instructional guide on how to do it. Always good to know how to fix your own car!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.threevolve.org/do-it-yourself/11-2009/i-had-to-walk-home-from-work-last-night.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Turning an $80 TV stand into a $300 TV stand</title>
		<link>http://www.threevolve.org/do-it-yourself/11-2009/turning-an-80-tv-stand-into-a-300-tv-stand.html</link>
		<comments>http://www.threevolve.org/do-it-yourself/11-2009/turning-an-80-tv-stand-into-a-300-tv-stand.html#comments</comments>
		<pubDate>Mon, 16 Nov 2009 19:23:06 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Do It Yourself]]></category>

	<!-- AutoMeta Start -->
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://www.threevolve.org/?p=189</guid>
		<description><![CDATA[My wife and I were in desperate need of a new TV stand. Beyond desperate, actually. Back in January when we moved back to Jackson we needed something to put our TV on. We were quite broke, so we ended up buying some cheap-o shelving units from Target. These were definitely not designed to hold [...]]]></description>
			<content:encoded><![CDATA[<p>My wife and I were in desperate need of a new TV stand. Beyond desperate, actually. Back in January when we moved back to Jackson we needed something to put our TV on. We were quite broke, so we ended up buying some cheap-o shelving units from Target. These were definitely not designed to hold an 80-lbs LCD television, and the top shelf had become warped from the weight.</p>
<p>We bought our first house back in October of this year, and one of the things we decided we really needed was a new TV stand. We&#8217;re not wealthy by any means, but we do like our stuff to look nice, which is the purpose of this post: <em>How to make something cheap look expensive.</em></p>
<p>After a good day of shopping, we finally ended up at Big Lots (who, by the way, has an excellent selection of pretty nice furniture for pretty great prices). We bought this:</p>
<div id="attachment_190" class="wp-caption alignnone" style="width: 250px"><a href="http://www.biglots.com/Furniture/item.aspx?cid=14&amp;scid=43&amp;iid=6647" target="_blank"><img class="size-full wp-image-190" src="http://www.threevolve.org/wp-content/uploads/2009/11/610009939.jpg" alt="610009939" width="240" height="240" /></a><p class="wp-caption-text">Sauder TV Stand from Big Lots</p></div>
<p>It&#8217;s made by Sauder, and it cost $80. It looks pretty nice, but it&#8217;s very plain and doesn&#8217;t look like something you would spend a lot of money on. For under $20, we&#8217;re making this TV stand look like one that would cost around $300.</p>
<p>All you need to start a similar project is:</p>
<ul>
<li>a relatively cheap piece of living room furniture (such as this)</li>
<li>a package of 400-grit sandpaper</li>
<li>2 cans of black spray lacquer (or more, or less, depending on the surface area of what you&#8217;re painting)</li>
<li>2 cans of clear spray urethane coating (or more&#8230; blah blah)</li>
<li>A dremel tool with a cloth buffing attachment</li>
</ul>
<p><em>NOTE! Do this in the garage. Or outside. If you do this in your kitchen, you will inhale a LOT of fumes, and you definitely do not want to wake up in the woods with a tattoo of a stripper&#8217;s name on your ass and an unmentionable piercing. No, I don&#8217;t want to talk about that example.</em></p>
<p>Our goal is to give it a sort of &#8220;distressed antique&#8221; finish. We&#8217;re painting it so that some of the original finish blends through the paint in certain areas, which gives it this really nice looking &#8220;bronze&#8221; appearance.</p>
<p>You want to rough up the original finish with the 400 grit sand paper. Don&#8217;t go too nuts, since you want the color to still be there for your effect. Just sand enough for the paint to stick.</p>
<p>Use the spray lacquer to make 2 or 3 light coats over the surface of the stand. Coat lighter over corners and detail parts, as we want these to be easily buffable to give the &#8220;bronze&#8221; look.</p>
<p>Once you have it painted with spray lacquer the way you want it, you&#8217;ll need to let it dry for at least 24 hours.</p>
<p>Once 24 hours have passed, take your dremel tool with the cloth buffing attachment, and go over the edges, corners, and detail pieces with it, until they look &#8220;faded&#8221; a bit to the original color. You don&#8217;t want to buff it out so much that it&#8217;s completely removed the lacquer, just enough so that it has a real dark brown showing through.</p>
<p>Once this is complete, and you are satisfied with how it looks, you need to protect that beautiful finish! Use the clear spray urethane coating. Make several light coats of it (follow the directions on the can) until it has a good strong coating that will stand up to your TV and A/V equipment being slid around on it. You definitely don&#8217;t want any scrapes or marks on it when you put your stuff back in after doing all this work!</p>
<p>I would recommend not doing this before assembly, but also not while fully assembled. Most items like this have you put it together into a few large pieces, and then assemble those pieces together. I would recommend doing this at that stage, it gives you fewer pieces to keep track of, but still gives you enough freedom to properly paint your piece of furniture.</p>
<p>After the urethane is allowed to fully dry (again, consult the can, this is usually at least 24 hours) put it together the rest of the way, take it inside and set up shop. You will love your elegant, stylish new TV stand!</p>
<p>Here are some in progress photos of ours:</p>
<p><a href="http://www.threevolve.org/wp-content/uploads/2009/11/IMG00277.jpg"><img class="alignnone size-medium wp-image-192" title="IMG00277" src="http://www.threevolve.org/wp-content/uploads/2009/11/IMG00277-300x225.jpg" alt="IMG00277" width="180" height="135" /></a> <a href="http://www.threevolve.org/wp-content/uploads/2009/11/IMG00278.jpg"><img class="alignnone size-medium wp-image-193" title="IMG00278" src="http://www.threevolve.org/wp-content/uploads/2009/11/IMG00278-300x225.jpg" alt="IMG00278" width="180" height="135" /></a> <a href="http://www.threevolve.org/wp-content/uploads/2009/11/IMG00279.jpg"><img class="alignnone size-medium wp-image-194" title="IMG00279" src="http://www.threevolve.org/wp-content/uploads/2009/11/IMG00279-300x225.jpg" alt="IMG00279" width="180" height="135" /></a> <a href="http://www.threevolve.org/wp-content/uploads/2009/11/IMG00280.jpg"><img class="alignnone size-medium wp-image-195" title="IMG00280" src="http://www.threevolve.org/wp-content/uploads/2009/11/IMG00280-300x225.jpg" alt="IMG00280" width="180" height="135" /></a> <a href="http://www.threevolve.org/wp-content/uploads/2009/11/IMG00281.jpg"><img class="alignnone size-medium wp-image-196" title="IMG00281" src="http://www.threevolve.org/wp-content/uploads/2009/11/IMG00281-300x225.jpg" alt="IMG00281" width="180" height="135" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.threevolve.org/do-it-yourself/11-2009/turning-an-80-tv-stand-into-a-300-tv-stand.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automatically create HTML links from plain-text URLs with PHP [AutoLink]</title>
		<link>http://www.threevolve.org/geekery/11-2009/automatically-create-html-links-from-plain-text-urls-with-php-autolink.html</link>
		<comments>http://www.threevolve.org/geekery/11-2009/automatically-create-html-links-from-plain-text-urls-with-php-autolink.html#comments</comments>
		<pubDate>Thu, 12 Nov 2009 21:17:08 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Site]]></category>

	<!-- AutoMeta Start -->
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://blog.threevolve.org/?p=150</guid>
		<description><![CDATA[I found this while building a project at work: http://www.gidforums.com/t-1816.html I was pulling text strings from an Atom feed in a PHP script, and some of them contained URLs. Obviously it&#8217;s beneficial and makes the program more functional if those URLs are clickable. Here is the code for the function: &#60;?php /** NAME : autolink() [...]]]></description>
			<content:encoded><![CDATA[<p>I found this while building a project at work: <a title="[function] AutoLink (converts URLS into links inside a string) - GIDForums" href="http://www.gidforums.com/t-1816.html" target="_blank">http://www.gidforums.com/t-1816.html</a></p>
<p>I was pulling text strings from an Atom feed in a PHP script, and some of them contained URLs. Obviously it&#8217;s beneficial and makes the program more functional if those URLs are clickable.</p>
<p>Here is the code for the function:</p>
<pre class="brush: php">
&lt;?php
/**
   NAME        : autolink()
   VERSION     : 1.0
   AUTHOR      : J de Silva
   DESCRIPTION : returns VOID; handles converting
                 URLs into clickable links off a string.
   TYPE        : functions
   ======================================*/

function autolink( &amp;$text, $target=&#039;_blank&#039;, $nofollow=true )
{
  // grab anything that looks like a URL...
  $urls  =  _autolink_find_URLS( $text );
  if( !empty($urls) ) // i.e. there were some URLS found in the text
  {
    array_walk( $urls, &#039;_autolink_create_html_tags&#039;, array(&#039;target&#039;=&gt;$target, &#039;nofollow&#039;=&gt;$nofollow) );
    $text  =  strtr( $text, $urls );
  }
}

function _autolink_find_URLS( $text )
{
  // build the patterns
  $scheme         =       &#039;(http:\/\/|https:\/\/)&#039;;
  $www            =       &#039;www\.&#039;;
  $ip             =       &#039;\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}&#039;;
  $subdomain      =       &#039;[-a-z0-9_]+\.&#039;;
  $name           =       &#039;[a-z][-a-z0-9]+\.&#039;;
  $tld            =       &#039;[a-z]+(\.[a-z]{2,2})?&#039;;
  $the_rest       =       &#039;\/?[a-z0-9._\/~#&amp;=;%+?-]+[a-z0-9\/#=?]{1,1}&#039;;
  $pattern        =       &quot;$scheme?(?(1)($ip|($subdomain)?$name$tld)|($www$name$tld))$the_rest&quot;;

  $pattern        =       &#039;/&#039;.$pattern.&#039;/is&#039;;
  $c              =       preg_match_all( $pattern, $text, $m );
  unset( $text, $scheme, $www, $ip, $subdomain, $name, $tld, $the_rest, $pattern );
  if( $c )
  {
    return( array_flip($m[0]) );
  }
  return( array() );
}

function _autolink_create_html_tags( &amp;$value, $key, $other=null )
{
  $target = $nofollow = null;
  if( is_array($other) )
  {
    $target      =  ( $other[&#039;target&#039;]   ? &quot; target=\&quot;$other[target]\&quot;&quot; : null );
    // see: http://www.google.com/googleblog/2005/01/preventing-comment-spam.html
    $nofollow    =  ( $other[&#039;nofollow&#039;] ? &#039; rel=&quot;nofollow&quot;&#039;            : null );
  }
  $value = &quot;&lt;a href=\&quot;$key\&quot;$target$nofollow&gt;$key&lt;/a&gt;&quot;;
} 

?&gt;</pre>
<p>And here is how to use it:</p>
<pre class="brush: php">
&lt;?php
// let&#039;s say we have a dummy string read from a file or db
$text = &#039;For more information, visit our website http://www.desilva.biz or
www.gidforums.com/ to discuss this. This topic is discussed here: 

http://www.gidforums.com/t-1787.html&#039;;

// first we pass it through htmlentities()
$text = htmlentities( $text );

// include the 3 functions above
include_once( &#039;includes/the_3_functions_above_are_in_this_file.php&#039; );
// NOW we run it through autolink()!
autolink( $text );
// display the text in a web page
echo $text.&quot;&lt;br /&gt;\r\n&quot;;
?&gt;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.threevolve.org/geekery/11-2009/automatically-create-html-links-from-plain-text-urls-with-php-autolink.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Running Apache on Low-Memory Systems</title>
		<link>http://www.threevolve.org/geekery/11-2009/running-apache-on-low-memory-systems.html</link>
		<comments>http://www.threevolve.org/geekery/11-2009/running-apache-on-low-memory-systems.html#comments</comments>
		<pubDate>Thu, 12 Nov 2009 19:17:27 +0000</pubDate>
		<dc:creator>Dan</dc:creator>
				<category><![CDATA[Geekery]]></category>
		<category><![CDATA[Site]]></category>

	<!-- AutoMeta Start -->
	<!-- AutoMeta End -->
	
		<guid isPermaLink="false">http://blog.threevolve.org/?p=146</guid>
		<description><![CDATA[I recently had to do some trial-and-error tuning of my Apache installation, as it&#8217;s running on a VPS with only 256MB of memory. When Apache starts leaking memory, a system with 256MB of RAM will start to swap out pretty quickly, and on a VPS, that means some serious, devastating lag. I found that on [...]]]></description>
			<content:encoded><![CDATA[<p>I recently had to do some trial-and-error tuning of my Apache installation, as it&#8217;s running on a VPS with only 256MB of memory. When Apache starts leaking memory, a system with 256MB of RAM will start to swap out pretty quickly, and on a VPS, that means some serious, devastating lag.</p>
<p>I found that on my system, with 256MB of RAM, the following settings in apache2.conf worked very well, and provide for good load times:</p>
<p><em>If you are using prefork MPM:</em></p>
<pre>&lt;IfModule mpm_prefork_module&gt;
 StartServers          2
 MinSpareServers       2
 MaxSpareServers      4
 MaxClients          100
 MaxRequestsPerChild 1000
&lt;/IfModule&gt;</pre>
<p><em>If you are using worker MPM:</em></p>
<pre>&lt;IfModule mpm_worker_module&gt;
 StartServers          2
 MaxClients          100
 MinSpareThreads      10
 MaxSpareThreads      40
 ThreadsPerChild      10
 MaxRequestsPerChild  1000
&lt;/IfModule&gt;</pre>
<p><em>On either MPM:</em></p>
<p>Set keep alive timeout to 5 seconds instead of the default 15 seconds.</p>
<p>Set apache&#8217;s timeout to 180 seconds instead of the default 300 seconds.</p>
<p><span style="color: #ff0000;"><strong>Warning!</strong></span> Do <span style="text-decoration: underline;"><strong>NOT</strong></span> just paste this stuff into your apache2.conf / httpd.conf file!!! Most of this stuff is already a setting in the file, and you need to <span style="text-decoration: underline;"><strong>change</strong></span> it, not <span style="text-decoration: underline;"><strong>add</strong></span> it.</p>
<p><em>Disclaimer: These settings worked well for me. I in no way warrant or claim that they will do anything good for anyone else, ever. I am not liable if you choose to use these settings and it makes matters worse, or causes your server to pack up its suitcase, steal your car and run away with the postman. Modifying these settings requires you to edit sensitive configuration files, do so at your own risk. </em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.threevolve.org/geekery/11-2009/running-apache-on-low-memory-systems.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
