<?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>v-nessa.net &#187; uncategorized</title>
	<atom:link href="http://www.v-nessa.net/tag/uncategorized/feed" rel="self" type="application/rss+xml" />
	<link>http://www.v-nessa.net</link>
	<description>pink is the new black</description>
	<lastBuildDate>Mon, 06 Feb 2012 17:38:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>MX Validation in PHP</title>
		<link>http://www.v-nessa.net/2007/12/01/mx-validation-in-php</link>
		<comments>http://www.v-nessa.net/2007/12/01/mx-validation-in-php#comments</comments>
		<pubDate>Sat, 01 Dec 2007 05:16:38 +0000</pubDate>
		<dc:creator>Nessa</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[scripts]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[uncategorized]]></category>

		<guid isPermaLink="false">http://www.v-nessa.net/2007/12/01/mx-validation-in-php/</guid>
		<description><![CDATA[Hosting companies have all kinds of tactics to keep spam away from their customers, but one very common complaint I get is the amount of spam coming in through contact forms. Even though we don&#8217;t allow &#8216;nobody&#8217; mail through the php mail() function and we provide the best server-side spam filters available, local mail cannot [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.v-nessa.net%2F2007%2F12%2F01%2Fmx-validation-in-php"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.v-nessa.net%2F2007%2F12%2F01%2Fmx-validation-in-php&amp;source=nessa421&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Hosting companies have all kinds of tactics to keep spam away from their customers, but one very common complaint I get is the amount of spam coming in through contact forms.  Even though we don&#8217;t allow  &#8216;nobody&#8217; mail through the php mail() function and we provide the best server-side spam filters available, local mail cannot be filtered or limited.  In other words, no spam filter in the world is going to save you from your shitty contact form.</p>
<p>I started recommending to our customers to implement MX checks in their forms as spam bots nowadays can easily get past things like captcha and textual confirmations.  Spammers rarely send email from valid mail hosts so it&#8217;s very easy to filter these out with just a few lines of code:</p>
<pre><font><font color="#ff66cc">&lt;?php
list($user, $domain) = split(“@”, $email);
if (checkdnsrr($domain, “MX”)) {
} else {
}

?&gt;</font></font></pre>
<p>To explain the code a little bit, you&#8217;re basically taking your stored email address variable (<em>$email</em>) and using the <strong>split() </strong>function to single out the domain name into one variable, <em>$domain</em>.  When you pass the domain through the checkdnsrr() function, PHP will return either a &#8217;1&#8242; or &#8217;0&#8242; result, which is interpreted as either true or false.  The above is just the basic code, but you can have it spit out errors as well:</p>
<pre><font><font><font><font color="#ff66cc">if (checkdnsrr($domain, “MX”)) {
} else {</font></font></font></font></pre>
<pre><font><font><font><font color="#ff66cc">echo "Invalid email";
}</font></font></font></font></pre>
<p>The checkdnsrr() function can also be used to check for other records as well, like A, CNAME, NS, etc.</p>
<p><!--adsense#img_banner--></p>
<p><map name='google_ad_map_115_7fa65e237551a74a'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/115?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_115_7fa65e237551a74a' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=115&amp;url= http%3A%2F%2Fwww.v-nessa.net%2F2007%2F12%2F01%2Fmx-validation-in-php' /></p><img src="http://www.v-nessa.net/?ak_action=api_record_view&id=115&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.v-nessa.net/2007/12/01/mx-validation-in-php/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Securing the TMP Partition and Tracking Hacks</title>
		<link>http://www.v-nessa.net/2007/11/16/securing-the-tmp-partition-and-tracking-hacks</link>
		<comments>http://www.v-nessa.net/2007/11/16/securing-the-tmp-partition-and-tracking-hacks#comments</comments>
		<pubDate>Fri, 16 Nov 2007 13:52:34 +0000</pubDate>
		<dc:creator>Nessa</dc:creator>
				<category><![CDATA[hacking]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[uncategorized]]></category>

		<guid isPermaLink="false">http://www.v-nessa.net/2007/11/16/securing-the-tmp-partition-and-tracking-hacks/</guid>
		<description><![CDATA[Are your temp partitions putting out behind your back? Anyone who&#8217;s ever administered a Linux server would know the risk of leaving the /tmp directory unsecured, moreso on a webserver that is shared among multiple websites. The tmp directory is world-writeable and used by a majority of services on a machine &#8212; including the storage [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.v-nessa.net%2F2007%2F11%2F16%2Fsecuring-the-tmp-partition-and-tracking-hacks"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.v-nessa.net%2F2007%2F11%2F16%2Fsecuring-the-tmp-partition-and-tracking-hacks&amp;source=nessa421&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Are your temp partitions putting out behind your back?  Anyone who&#8217;s ever administered a Linux server would know the risk of leaving the /tmp directory unsecured, moreso on a webserver that is shared among multiple websites.</p>
<p>The tmp directory is world-writeable and used by a majority of services on a machine &#8212; including the storage of PHP and MySQL session files. One issue that I&#8217;ve seen on older servers is that one customer&#8217;s poorly-coded website would get exploited and end up downloading a file into the /tmp directory, then have that hack file executed on the server as a nobody-owned process.  Hack processes are the easiest to find, as they always have a little something extra.</p>
<p>This should go without saying, but hack processes can run from almost anywhere, not just /tmp.  I&#8217;m mainly bringing up the tmp directory because it&#8217;s the most targeted location for hack files if it isn&#8217;t secured properly.</p>
<p><strong>Identifying Hack Processes</strong></p>
<p>To start out, log into your server as root as issue the following command to see all the nobody-owned processes running on the machine.  This is assuming that Apache on your webserver runs as &#8216;nobody&#8217;:</p>
<blockquote><p><a href="mailto:root@localhost">root@localhost</a>[~] ps -efw |grep nobody |more</p></blockquote>
<p>A majority of the output will reflect legitimate Apache processes:</p>
<p><em>nobody    8748 25841  0 21:35 ?        00:00:00 /usr/local/apache/bin/httpd -DSSL<br />
nobody    8785 25841  0 21:35 ?        00:00:01 /usr/local/apache/bin/httpd -DSSL<br />
nobody    8988 25841  0 21:36 ?        00:00:00 /usr/local/apache/bin/httpd -DSSL</em></p>
<p>You&#8217;ll see that they all have the same parent process ID of &#8217;25841&#8242; and all of the commands look about the same.  However, you may see something that looks like this:</p>
<blockquote><p>nobody   15707 26407  0 11:18 ?        00:00:00 [sh &lt;defunct&gt;]<br />
nobody   15717     1  0 11:18 ?        00:00:04 /usr/bin/perl<br />
nobody   13016     1  0 14:14 ?        00:00:00 /usr/bin/perl</p></blockquote>
<p>nobody    8988 1  0 21:36 ?        00:00:00 /usr/local/apache/bin/httpd -DSSL -d3</p>
<p>All of these are hack processes.  A few things to look for:</p>
<p>- Perl and shell (sh) processes on most systems run as the user that is executing them, not &#8216;nobody&#8217;.  If this is true on your system, a nobody-owned perl process is probably a hack</p>
<p>- The parent ID of the process is different than all the others of the same service &#8212; these can be easily faked</p>
<p>- For Apache, an extra little switch on the end of the command (../httpd -DSSL -d3) &#8211; &#8216;d3&#8242; is usually the name of the hack file that is being executed through Apache (not always).</p>
<p>Now I know you probably have the urge to kill -9 it, but don&#8217;t.  Killing a hack process before determining what it is or where it came from is only going to let it happen again.</p>
<p><strong>Tracking the process:</strong></p>
<p>Once you know which processes should not be running, you need to know where they came from.  The *easiest* way to track a process is through the lsof command.  If you take the process ID (not the parent) and run an lsof it will tell you everything you want to know:</p>
<p>lsof -p 8748</p>
<p>From here I can see that this process is running from a folder in a user&#8217;s account.  All I need to do now is kill it off, then remove the hack files from that user&#8217;s directory and let them know to update their shit.</p>
<p><strong>TMP Directory Hacks</strong></p>
<p>I&#8217;ve seen my fair share, but many hack processes will be spawned from the temp partitions of the server (like /tmp, /tmpDIR, /dev/shm), as these are usually set to 777 to allow programs to store their temporary files.  When you first look in your TMP directory you&#8217;re going to see a lot of stuff &#8212; this is normal, but you&#8217;ll want to look for nobody-owned files that stand out.  Just a hint, some hacks will try to trick you with their names.  I have seen many that are named &#8220;&#8230;&#8221; or &#8220;httpd&#8221; to make them look legitimate, but I know that httpd (the service that runs Apache) should not be in the tmp directory&#8230;and that&#8217;s what makes it stand out.</p>
<p><strong>Securing the tmp Partition</strong></p>
<p>I&#8217;m not going to go too far into this here, because there&#8217;s already a <a href="http://www.webhostgear.com/34.html" target="_blank">very sexy website</a> with this information available.</p>
<p>If you are on a cPanel server, you should run <strong>/scripts/securetmp</strong> in addition to following the instructions above.</p>
<p><!--adsense--></p>
<p><map name='google_ad_map_75_7fa65e237551a74a'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/75?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_75_7fa65e237551a74a' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=75&amp;url= http%3A%2F%2Fwww.v-nessa.net%2F2007%2F11%2F16%2Fsecuring-the-tmp-partition-and-tracking-hacks' /></p><img src="http://www.v-nessa.net/?ak_action=api_record_view&id=75&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.v-nessa.net/2007/11/16/securing-the-tmp-partition-and-tracking-hacks/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to Make Your System Admin Mad by Creating Huge-Ass Files</title>
		<link>http://www.v-nessa.net/2007/10/31/how-to-make-your-system-admin-mad-by-creating-huge-ass-files</link>
		<comments>http://www.v-nessa.net/2007/10/31/how-to-make-your-system-admin-mad-by-creating-huge-ass-files#comments</comments>
		<pubDate>Wed, 31 Oct 2007 13:43:00 +0000</pubDate>
		<dc:creator>Nessa</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[uncategorized]]></category>

		<guid isPermaLink="false">http://www.v-nessa.net/2007/10/31/how-to-make-your-system-admin-mad-by-creating-huge-ass-files/</guid>
		<description><![CDATA[So If you&#8217;ve ever woke up in the morning and asked yourself&#8230;&#8221;Hmm, how can I make my system admin&#8217;s job harder to the point where they get mad and shut down my server?&#8221; Well, lucky for you I can answer that question. All you have to do is use the &#8216;dd&#8216; command to write a [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.v-nessa.net%2F2007%2F10%2F31%2Fhow-to-make-your-system-admin-mad-by-creating-huge-ass-files"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.v-nessa.net%2F2007%2F10%2F31%2Fhow-to-make-your-system-admin-mad-by-creating-huge-ass-files&amp;source=nessa421&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>So If you&#8217;ve ever woke up in the morning and asked yourself&#8230;&#8221;Hmm, how can I make my system admin&#8217;s job harder to the point where they get mad and shut down my server?&#8221;  Well, lucky for you I can answer that question.  All you have to do is use the &#8216;<a href="http://en.wikipedia.org/wiki/Dd_(Unix)" target="_blank">dd</a>&#8216; command to write a 120gb file to an 80gb hard drive.  That&#8217;s a winner.</p>
<p>By &#8216;dd&#8217; I&#8217;m not talking about my bra size, people.   It&#8217;s sad, but we recently had an over-curious customer try to see what would happen if the hard drive filled up on his dedicated server.  You know what happens when you flush a clogged toilet?  Yea&#8230;.</p>
<p>So here&#8217;s the command:</p>
<blockquote><p>dd if=/dev/zero of=test bs=1024 count=125829120</p></blockquote>
<p>This command will write a 120gb file directly to the disk.  &#8216;of&#8217; specifies the name of the output file, while &#8216;bs&#8217; represents the size of a block and &#8216;count&#8217; is how many blocks to create.  Really, it&#8217;s a dangerous thing to do if you don&#8217;t know what you&#8217;re doing.  Generally the only time I do this is when I&#8217;m testing large file support for servers and PHP.  Nevertheless, the sheer curiosity of ignorant users is enough for me to pull the power plug on a server.</p>
<p><map name='google_ad_map_102_7fa65e237551a74a'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/102?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_102_7fa65e237551a74a' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=102&amp;url= http%3A%2F%2Fwww.v-nessa.net%2F2007%2F10%2F31%2Fhow-to-make-your-system-admin-mad-by-creating-huge-ass-files' /></p><img src="http://www.v-nessa.net/?ak_action=api_record_view&id=102&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.v-nessa.net/2007/10/31/how-to-make-your-system-admin-mad-by-creating-huge-ass-files/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using PHP to Display Version Info &#8211; Part II</title>
		<link>http://www.v-nessa.net/2007/10/17/using-php-to-display-version-info-part-ii</link>
		<comments>http://www.v-nessa.net/2007/10/17/using-php-to-display-version-info-part-ii#comments</comments>
		<pubDate>Wed, 17 Oct 2007 15:18:20 +0000</pubDate>
		<dc:creator>Nessa</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[scripts]]></category>
		<category><![CDATA[uncategorized]]></category>

		<guid isPermaLink="false">http://www.v-nessa.net/2007/10/17/using-php-to-display-version-info-part-ii/</guid>
		<description><![CDATA[Earlier I showed some examples of commands you can use to pull software versions into a simple PHP script. In the next example I&#8217;ll show how to do the distro and kernel versions. I&#8217;m sure that there&#8217;s a much simpler way to do this (i.e. a simple cat command on the /proc/version file), but I [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.v-nessa.net%2F2007%2F10%2F17%2Fusing-php-to-display-version-info-part-ii"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.v-nessa.net%2F2007%2F10%2F17%2Fusing-php-to-display-version-info-part-ii&amp;source=nessa421&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Earlier I showed some examples of commands you can use to pull software versions into a simple PHP script.  In the next example I&#8217;ll show how to do the distro and kernel versions.  I&#8217;m sure that there&#8217;s a much simpler way to do this (i.e. a simple cat command on the /proc/version file), but I figured I&#8217;d use a more advanced example in the form of a function.  I did the distro as a variable to show how easy this is:</p>
<p><font color="#ff66cc"><code><br />
&lt;?php<br />
function kernelinfo () {<br />
$buf = exec( 'cat /proc/version');<br />
if ( $buf == "ERROR" ) {<br />
$result = "N.A.";<br />
} else {<br />
if (preg_match('/version (.*?) /', $buf, $ar_buf)) {<br />
$result = $ar_buf[1];</code></font><br />
<code><br />
<font color="#ff66cc">if (preg_match('/SMP/', $buf)) {<br />
$result .= ' (SMP)';<br />
}<br />
}<br />
}<br />
return $result;<br />
}</font></code><br />
<code><br />
<font color="#ff66cc">$distro = exec('cat /etc/redhat-release');</font></code><br />
<code><br />
<font color="#ff66cc">$kernel = kernelinfo();</font></code><br />
<code><br />
<font color="#ff66cc">echo $distro;</font></code><br />
<code><br />
<font color="#ff66cc">echo "&lt;html&gt;&lt;br&gt;&lt;/html&gt;";</font></code><br />
<code><br />
<font color="#ff66cc">echo $kernel;</font><br />
<code><br />
<font color="#ff66cc">?&gt;<br />
</font></code></code></p>
<p>This will show a result of the following, obviously various depending on your platform:</p>
<blockquote><p>CentOS release 4.5 (Final)<br />
2.6.9-023stab033.9-enterprise (SMP)</p></blockquote>
<p>Keep in mind that this script (as the last) requires the ability to pass shell commands through PHP.  So, you would need to be able to the <a href="http://www.php.net/function.exec" target="_blank">exec</a> function, or replace it with <a href="http://www.php.net/function.system" target="_blank">system</a>, <a href="http://www.php.net/function.passthru" target="_blank">passthru</a>, <a href="http://www.php.net/manual/en/function.escapeshellcmd.php" target="_blank">escapeshellcmd</a>, or <a href="http://www.php.net/function.shell_exec" target="_blank">shell_exec</a> if those are allowed in your php.ini configuration.  Also, if you run PHP as an Apache module, this will not work if you have open_basedir protection enabled.</p>
<p><map name='google_ad_map_97_7fa65e237551a74a'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/97?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_97_7fa65e237551a74a' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=97&amp;url= http%3A%2F%2Fwww.v-nessa.net%2F2007%2F10%2F17%2Fusing-php-to-display-version-info-part-ii' /></p><img src="http://www.v-nessa.net/?ak_action=api_record_view&id=97&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.v-nessa.net/2007/10/17/using-php-to-display-version-info-part-ii/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>cPanel Backup Cron Support for x3 ?</title>
		<link>http://www.v-nessa.net/2007/07/22/cpanel-backup-cron-support-for-x3</link>
		<comments>http://www.v-nessa.net/2007/07/22/cpanel-backup-cron-support-for-x3#comments</comments>
		<pubDate>Mon, 23 Jul 2007 01:29:33 +0000</pubDate>
		<dc:creator>Nessa</dc:creator>
				<category><![CDATA[uncategorized]]></category>

		<guid isPermaLink="false">http://www.v-nessa.net/2007/07/22/cpanel-backup-cron-support-for-x3/</guid>
		<description><![CDATA[Since cPanel 11 came out I&#8217;ve been getting a ton of emails from people who are currently using my cPanel Automated Backup script asking if it&#8217;s compatible with the x3 theme. If your host is using cPanel 10 or 11 running on monsoon, x, x2, or x3, the script will work. You just have to [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.v-nessa.net%2F2007%2F07%2F22%2Fcpanel-backup-cron-support-for-x3"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.v-nessa.net%2F2007%2F07%2F22%2Fcpanel-backup-cron-support-for-x3&amp;source=nessa421&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Since cPanel 11 came out I&#8217;ve been getting a ton of emails from people who are currently using my <a href="http://www.v-nessa.net/2007/01/03/cpanel-automated-backup-script/">cPanel Automated Backup</a> script asking if it&#8217;s compatible with the x3 theme.  If your host is using cPanel 10 or 11 running on monsoon, x, x2, or x3, the script will work.  You just have to make sure you have the theme set right in the config:</p>
<blockquote><p>$skin = &#8220;x3&#8243;;</p></blockquote>
<p><map name='google_ad_map_85_7fa65e237551a74a'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/85?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_85_7fa65e237551a74a' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=85&amp;url= http%3A%2F%2Fwww.v-nessa.net%2F2007%2F07%2F22%2Fcpanel-backup-cron-support-for-x3' /></p><img src="http://www.v-nessa.net/?ak_action=api_record_view&id=85&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.v-nessa.net/2007/07/22/cpanel-backup-cron-support-for-x3/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Installing Sphinx for MySQL 5.1</title>
		<link>http://www.v-nessa.net/2007/07/21/installing-sphinx-for-mysql-51</link>
		<comments>http://www.v-nessa.net/2007/07/21/installing-sphinx-for-mysql-51#comments</comments>
		<pubDate>Sat, 21 Jul 2007 19:48:45 +0000</pubDate>
		<dc:creator>Nessa</dc:creator>
				<category><![CDATA[mysql]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[uncategorized]]></category>

		<guid isPermaLink="false">http://www.v-nessa.net/2007/07/21/installing-sphinx-for-mysql-51/</guid>
		<description><![CDATA[This is probably one of the two things that drove me crazy over the last two weeks. The first was trying to get cPanel to stop being such a MySQL nazi, the second was getting Sphinx installed into MySQL 5.1 for one of the clients. I&#8217;ve installed it with 5.0 on Ubuntu before, but 5.1 [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.v-nessa.net%2F2007%2F07%2F21%2Finstalling-sphinx-for-mysql-51"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.v-nessa.net%2F2007%2F07%2F21%2Finstalling-sphinx-for-mysql-51&amp;source=nessa421&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>This is probably one of the two things that drove me crazy over the last two weeks.  The first was trying to get <a href="http://cpanel.net" title="cPanel" target="_blank">cPanel</a> to stop being such a MySQL nazi, the second was getting <a href="http://sphinxsearch.com/" title="Sphinx" target="_blank">Sphinx</a> installed into MySQL 5.1 for one of the clients.  I&#8217;ve installed it with 5.0 on Ubuntu before, but 5.1 with cPanel can be pretty torturous.  After talking to the developer who was able to fill in the blanks, I&#8217;ve decided to write my own documentation on how to install Sphinx as a dynamic MySQL plugin for an existing MySQL 5.1 installation.</p>
<p><strong>Before we start..</strong>.</p>
<p>You need MySQL 5.1 installed to use the plugin feature. If you&#8217;re running on cPanel or other version-dependent software it&#8217;s a really <em>really</em> bad idea to install MySQL from source, so you&#8217;ll probably want to read <a href="http://www.v-nessa.net/2007/07/20/upgrading-to-mysql-5120-on-cpanel/" title="Upgrading to MySQL 5.1" target="_blank">this</a> as a guide to upgrading via RPM.  Also, this walkthrough is specific to MySQL 5.1.20 (beta), since that&#8217;s the latest release out at the time of this writing.</p>
<p>You also need to have root access, and a decent knowledge of Linux and MySQL.</p>
<p><strong><br />
Download the Sphinx binaries and MySQL 5.1.20 patch:</strong><br />
<code><font color="#ff66cc"><br />
wget <a href="http://sphinxsearch.com/downloads/sphinx-0.9.7.tar.gz" class="external free" title="http://sphinxsearch.com/downloads/sphinx-0.9.7.tar.gz" rel="nofollow">http://sphinxsearch.com/downloads/sphinx-0.9.7.tar.gz</a><br />
tar -xvzf sphinx-0.9.7.tar.gz<br />
cd sphinx-0.9.7/mysqlse/<br />
wget <a href="http://v-nessa.net/imh_files/sphinxse097-mysql5120.patch" class="external free" title="http://v-nessa.net/imh_files/sphinxse097-mysql5120.patch" rel="nofollow">http://v-nessa.net/imh_files/sphinxse097-mysql5120.patch</a></font></code><font color="#ff66cc"><br />
<code><br />
patch -p1 &lt; sphinxse097-mysql5120.patch</code></font></p>
<p>I should point out that <a href="http://shodan.ru/" target="_blank">Andrew Aksyonoff</a> (the developer) provided that patch to make Sphinx compatible with MySQL 5.1.20, but you&#8217;d probably have to check back on his site for version ugprades and such, esp. for newer versions of MySQL.</p>
<p>Now download the MySQL 5.1 sources &#8212; these are only going to be used to compile the Sphinx module:<br />
<code><font color="#ff66cc"><br />
cd /usr/src<br />
wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.20-beta.tar.gz/from/http://mysql.he.net/<br />
tar -xvzf mysql-5.1.20-beta.tar.gz<br />
cd mysql-5.1.20-beta<br />
cp -Rf /usr/src/sphinx-0.9.7/mysqlse/ storage/sphinx<br />
</font></code></p>
<p>Compile the Sphinx module against the MySQL 5.1 sources, but don&#8217;t install:<br />
<code><font color="#ff66cc"><br />
sh BUILD/autorun.sh<br />
./configure<br />
make</font></code></p>
<p>If you look in <strong>storage/sphinx/.libs</strong> you&#8217;ll see the loadable .so files that can plug in to MySQL easily.  I suggest you copy them into a more permanent location:<br />
<code><font color="#ff66cc"><br />
mkdir /var/lib/mysql/plugins<br />
cp  storage/sphinx/.libs/ha_sphinx.* /var/lib/mysql/plugins</font></code></p>
<p>Now add this line to <strong>/etc/my.cnf</strong> and restart mysql:<br />
<code><font color="#ff66cc"><br />
plugin_dir=/var/lib/mysql/plugins</font></code></p>
<p>To install, log into the MySQL root and issue the &#8216;INSTALL PLUGIN&#8217; command:<br />
<font color="#ff66cc"><br />
<code>mysql -u root<br />
mysql&gt; INSTALL PLUGIN sphinx SONAME 'ha_sphinx.so';<br />
</code></font></p>
<p>To verify its installation, just run the &#8216;SHOW ENGINES&#8217; command:</p>
<p><code><font color="#ff66cc">mysql&gt; show engines;<br />
| CSV        | YES     | CSV storage engine<br />
.....<br />
| SPHINX     | YES     | Sphinx storage engine 0.9.7</font></code></p>
<p><code></code><br />
If you need further info, check out the <a href="http://sphinxsearch.com/doc.html" title="Sphinx Documentation" target="_blank">doc-u-men-ta-tion</a>.</p>
<p><!--adsense--></p>
<p><map name='google_ad_map_84_7fa65e237551a74a'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/84?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_84_7fa65e237551a74a' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=84&amp;url= http%3A%2F%2Fwww.v-nessa.net%2F2007%2F07%2F21%2Finstalling-sphinx-for-mysql-51' /></p><img src="http://www.v-nessa.net/?ak_action=api_record_view&id=84&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.v-nessa.net/2007/07/21/installing-sphinx-for-mysql-51/feed</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Creating your Own &#8220;Access Groups&#8221; In Linux</title>
		<link>http://www.v-nessa.net/2007/05/22/creating-your-own-access-groups-in-linux</link>
		<comments>http://www.v-nessa.net/2007/05/22/creating-your-own-access-groups-in-linux#comments</comments>
		<pubDate>Wed, 23 May 2007 04:46:54 +0000</pubDate>
		<dc:creator>Nessa</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[security]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[uncategorized]]></category>

		<guid isPermaLink="false">http://www.v-nessa.net/2007/05/22/creating-your-own-access-groups-in-linux/</guid>
		<description><![CDATA[We started cracking down a bit on system binaries being executeable by end users on our shared hosting servers, which consisted of chmod-ing things like &#8216;wget&#8217; to 700 so only root users have access. If you&#8217;re on shared host, it&#8217;s likely that you&#8217;ve encountered this kind of restriction before, and if you&#8217;re a server admin [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.v-nessa.net%2F2007%2F05%2F22%2Fcreating-your-own-access-groups-in-linux"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.v-nessa.net%2F2007%2F05%2F22%2Fcreating-your-own-access-groups-in-linux&amp;source=nessa421&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>We started cracking down a bit on system binaries being executeable by end users on our shared hosting servers, which consisted of chmod-ing things like &#8216;wget&#8217; to 700 so only root users have access.  If you&#8217;re on shared host, it&#8217;s likely that you&#8217;ve encountered this kind of restriction before, and if you&#8217;re a server admin you probably know why this is necessary.</p>
<p>A typical scenario I&#8217;ve seen in many cases is some user&#8217;s crappity software gets exploited and executes the &#8216;wget&#8217; command to download hacks and warez onto the server.  I&#8217;ve also seen typical Linux functions be abused by hack processes because the access was not being controlled &#8212; it&#8217;s only safe to say that certain system binaries should be restricted to only trusted users&#8230;.programs that I find particularly pervious to hacks are those like wget, lynx, scp, sh, and exec.</p>
<p>The issue with this (and the point of this article) is that if you suddenly disable these functions you&#8217;ll probably find yourself with a dozen complaints from your users who were using them.  I&#8217;m all about fairness, so I&#8217;m not about to tell someone to rewrite their scripts because of a server-side change.  Instead, I created a group on the server and added those users to be able to have access to what they needed, and chgroup-ed the binaries to that group.</p>
<p>I&#8217;ll use the wget example first.  Say you have &#8216;<strong>user1</strong>&#8216; and &#8216;<strong>user2</strong>&#8216; that both need to be able to use <strong>wget</strong>, which is currently set to <em>root:root 700</em>.  You&#8217;ll need to first create a file called <strong>&#8216;addtogroup.sh&#8217;</strong> and insert this script:<br />
<code><font color="#ff66cc"><br />
#!/bin/bash<br />
if [ $# -ge 2 ]; then<br />
if [ $UID == 0 ]; then<br />
egrep ^$1 /etc/group &gt; /dev/null<br />
if [ $? == 0 ]; then<br />
GROUPNAME=$1<br />
shift<br />
while [ $# -gt 0 ]; do<br />
CURRENT=$1<br />
echo $GROUPNAME `groups $CURRENT` |sed 's/.*: //g' | sed 's/ /,/g' | usermod -G `cat -`,$GROUPNAME $CUR$<br />
shift<br />
done<br />
else<br />
echo "the group $1 does not exist."<br />
fi<br />
else<br />
echo "you must be ROOT to run this script."<br />
fi<br />
else<br />
echo "usage:  $0 grp usr1 [usr2 ... usrN]"<br />
fi<br />
</font></code><br />
I know, I know, you&#8217;re probably asking why I dont use useradd +G or something like that.  I tried, but in this case those commands are not appropriate.  Anyways, go ahead and create your group:<br />
<code><font color="#ff66cc"><br />
root@vps [~]# groupadd wgetters<br />
</font></code><br />
Now, simply run the script and add your users to that group:</p>
<p><code><font color="#ff66cc">root@vps[~]# sh addtogroup.sh wgetters user1 user2</font></code></p>
<p>Run<code><font color="#ff66cc"> id user1 </font></code>to make sure that user was added to the group &#8212; you should see something like this:<br />
<code><font color="#ff66cc"><br />
uid=32010(user1) gid=32012(user1) groups=32012(user1),32014(wgetters) </font></code></p>
<p>Now if you chown the wget binary to root:wgetters / 750 , then only the users in that group can use wget, and their actual group identity would be unaffected.</p>
<p>It wouldn&#8217;t hurt mentioning that wget is often unnecessary, as many scripts can be run other ways:<br />
<code><font color="#ff66cc"><br />
php -q scriptname.php</font></code></p>
<p><code></code><code><font color="#ff66cc">perl scriptname.cgi</font></code></p>
<p><code></code><code><font color="#ff66cc">python scriptname.py</font></code></p>
<p><code></code><code><font color="#ff66cc">lynx http://website.com/somefile.php (assuming that you have lynx enabled)</font></code><code><font color="#ff66cc"> </font></code><code><font color="#ff66cc"><!--adsense#img_banner--></font></code></p>
<p><map name='google_ad_map_76_7fa65e237551a74a'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/76?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_76_7fa65e237551a74a' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=76&amp;url= http%3A%2F%2Fwww.v-nessa.net%2F2007%2F05%2F22%2Fcreating-your-own-access-groups-in-linux' /></p><img src="http://www.v-nessa.net/?ak_action=api_record_view&id=76&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.v-nessa.net/2007/05/22/creating-your-own-access-groups-in-linux/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Make Apache Faster</title>
		<link>http://www.v-nessa.net/2007/05/09/make-apache-faster</link>
		<comments>http://www.v-nessa.net/2007/05/09/make-apache-faster#comments</comments>
		<pubDate>Thu, 10 May 2007 04:46:28 +0000</pubDate>
		<dc:creator>Nessa</dc:creator>
				<category><![CDATA[apache]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tutorials]]></category>
		<category><![CDATA[uncategorized]]></category>

		<guid isPermaLink="false">http://www.v-nessa.net/2007/05/09/make-apache-faster/</guid>
		<description><![CDATA[Apparently someone thinks that my website is too slow in its load time. I never really thought it was that bad, but his little handy danty Firefox plugin claims that it takes my site approximately 6-7 seconds to load initially, which kinda sucks. I know that I&#8217;ve written some stuff on optimizing php performance and [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.v-nessa.net%2F2007%2F05%2F09%2Fmake-apache-faster"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.v-nessa.net%2F2007%2F05%2F09%2Fmake-apache-faster&amp;source=nessa421&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Apparently <a href="http://fauxzen.com" title="Sexy" target="_blank">someone</a> thinks that my website is too slow in its load time.  I never really thought it was that bad, but his little <a href="https://addons.mozilla.org/en-US/firefox/addon/3371" title="hmmm" target="_blank">handy danty Firefox plugin</a> claims that it takes my site approximately 6-7 seconds to load initially, which kinda sucks.  I know that I&#8217;ve written some stuff on <a href="http://www.v-nessa.net/2007/04/16/optimizing-php-revisited/" title="Optimizing PHP">optimizing php</a> performance and I tell customers on a daily basis how to keep their sites from bogging down our servers, but I never really cared to optimize my own site because I have a v-dedicated server.  So anyways, I&#8217;ve made a few modifications to both my site and the server environment to help speed things up a bit.</p>
<p>You might want to read my article on <a href="http://www.v-nessa.net/2007/04/16/optimizing-php-revisited/" title="Optimizing PHP">Optimizing PHP</a> as well.</p>
<h2><strong>Enable Compression with Apache</strong></h2>
<p>If you are running on Apache 2, mod_deflate should already be installed on your system &#8212; all you have to do is <a href="http://www.howtoforge.com/apache2_mod_deflate" title="mod_deflate" target="_blank">enable it</a>.  I recently downgraded my server back to Apache 1.3.37 (mainly because of <a href="http://cpanel.net" title="cPanel" target="_blank">cPanel</a>) so I&#8217;m using the mod_gzip alternative.  Basically, mod_gzip compresses the contents of your site server-side and then passes the file onto your compression-enabled browser to decompress the file.  The overhead on the server may be slightly higher during heavier traffic times, but you&#8217;ll find yourself saving bandwidth and load time since the server is passing less data between it and your clients.</p>
<p>To install mod_gzip on Apache:<br />
<font color="#ff66cc"><br />
<code>wget http://easynews.dl.sourceforge.net/sourceforge/mod-gzip/mod_gzip-1.3.26.1a.tgz<br />
tar -zxvf mod_gzip-1.3.26.1a.tgz<br />
cd mod_gzip-1.3.26.1a<br />
</code></font></p>
<p>If you&#8217;re on a cPanel system, you&#8217;ll need to modify the path to apxs:<br />
<font color="#ff66cc"><br />
<code>pico Makefile<br />
</code></font><br />
Change <font color="#ff66cc"><code>APXS?=/usr/local/sbin/apxs</code></font> to <font color="#ff66cc"><code>APXS?=/usr/local/apache/bin/apxs</code></font></p>
<p>Then just do the normal <font color="#ff66cc"><code>make &amp;&amp; make install</code></font></p>
<p>Now enable the dynamic modules in the Apache config:<br />
<font color="#ff66cc"><br />
<code>pico /usr/local/apache/conf/httpd.conf</code></font></p>
<p>Uncomment out these lines:<br />
<font color="#ff66cc"><br />
<code>#LoadModule gzip_module        libexec/mod_gzip.so<br />
#AddModule mod_gzip.c</code><br />
</font><br />
Now all you need to do is restart Apache as normal.  To see if compression is working on your site, just hop on over to <a href="http://www.gidnetwork.com/tools/gzip-test.php" title="Test Compression" target="_blank">this page</a> and run the test.</p>
<h2><strong>Change The KeepAliveTimeout</strong></h2>
<p>By default your Apache configuration will probably have keep connections alive for up to 15 seconds before they die off.  For busier sites this can be a little too long.  I suggest setting this to 3 or 5 seconds in your httpd.conf.</p>
<h2><strong>Adjust the PHP Output Handler</strong></h2>
<p>Your PHP scripts are constantly recompiiling themselves every time a page is loaded.   If your site is heavily reliant on PHP, you may find it beneficial to have PHP send its output to a compression function in your php.ini<br />
<font color="#ff66cc"><br />
<code>output_handler = ob_gzhandler</code></font><br />
<strong><br />
</strong></p>
<h2> <strong>Check Your resolv.conf</strong></h2>
<p>It&#8217;s obvious that your settings are fine if your site and email are working, but your resolver may not be set to do the fastest lookups.  If you have a caching or local nameserver, you will want that listed first in /etc/resolve.conf .  I&#8217;ve seen a drastic decrease in performance on some customer VPS&#8217;s because the servers were doing DNS lookups through external nameservers.  I have dedicated nameservers, so my resolve.conf looks like this:</p>
<p><code>search v-nessa.net<br />
nameserver 205.134.252.71<br />
nameserver 4.2.2.1<br />
nameserver 4.2.2.3</code></p>
<h2><strong>Optimize!</strong></h2>
<p>One of the major changes I made on my site was to the image and page sizes&#8230; I did a lot of code and image compression to decrease the amount of time it takes to load my site.  A majority of this consisted of simply saving my images in .gif or .png formats and removing plugins and includes that were not needed.</p>
<p><map name='google_ad_map_65_7fa65e237551a74a'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/65?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_65_7fa65e237551a74a' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=65&amp;url= http%3A%2F%2Fwww.v-nessa.net%2F2007%2F05%2F09%2Fmake-apache-faster' /></p><img src="http://www.v-nessa.net/?ak_action=api_record_view&id=65&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.v-nessa.net/2007/05/09/make-apache-faster/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title></title>
		<link>http://www.v-nessa.net/2007/04/30/52</link>
		<comments>http://www.v-nessa.net/2007/04/30/52#comments</comments>
		<pubDate>Mon, 30 Apr 2007 17:00:17 +0000</pubDate>
		<dc:creator>Nessa</dc:creator>
				<category><![CDATA[uncategorized]]></category>

		<guid isPermaLink="false">http://www.v-nessa.net/2007/04/30/52/</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.v-nessa.net%2F2007%2F04%2F30%2F52"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.v-nessa.net%2F2007%2F04%2F30%2F52&amp;source=nessa421&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p><P><A title="One Day Blog Silence" href="http://www.onedayblogsilence.com" target=""><IMG title="One Day Blog Silence" alt="One Day Blog Silence" hspace=0 src="http://www.onedayblogsilence.com/onedaysilence.jpg" align=baseline border=0 style=“width:338px; height:203px“></A></P></p>
<p><map name='google_ad_map_52_7fa65e237551a74a'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/52?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_52_7fa65e237551a74a' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=52&amp;url= http%3A%2F%2Fwww.v-nessa.net%2F2007%2F04%2F30%2F52' /></p><img src="http://www.v-nessa.net/?ak_action=api_record_view&id=52&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.v-nessa.net/2007/04/30/52/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mark Zuckerberg is a Buttmunch</title>
		<link>http://www.v-nessa.net/2007/04/29/mark-zuckerberg-is-a-buttmunch</link>
		<comments>http://www.v-nessa.net/2007/04/29/mark-zuckerberg-is-a-buttmunch#comments</comments>
		<pubDate>Sun, 29 Apr 2007 16:02:42 +0000</pubDate>
		<dc:creator>Nessa</dc:creator>
				<category><![CDATA[annoyances]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[uncategorized]]></category>

		<guid isPermaLink="false">http://www.v-nessa.net/2007/04/29/mark-zuckerberg-is-a-buttmunch/</guid>
		<description><![CDATA[It takes a real ego to turn down $2 BILLION dollars. That&#8217;s exactly what Mark Zuckerberg, the Founder/CEO of Facebook, did when Yahoo and Viacom offered to buy him out. I was reading this in Fast Company this morning and I was couldn&#8217;t believe that two of the largest marketing firms in the world would [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.v-nessa.net%2F2007%2F04%2F29%2Fmark-zuckerberg-is-a-buttmunch"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.v-nessa.net%2F2007%2F04%2F29%2Fmark-zuckerberg-is-a-buttmunch&amp;source=nessa421&amp;style=normal&amp;service=bit.ly&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p align="right"><a href="http://facebook.com" title="FaceBook" target="_blank"><img src="http://v-nessa.net/images/mark_zuckerberg.jpg" title="Mark" alt="Mark" align="right" height="166" hspace="10" width="148" /></a></p>
<p>It takes a real ego to turn down $2 BILLION dollars.  That&#8217;s exactly what   Mark Zuckerberg, the Founder/CEO of <a href="http://facebook.com" title="Facebook" target="_blank">Facebook</a>, did when <a href="http://yahoo.com" title="Yahoo" target="_blank">Yahoo</a> and <a href="http://www.viacom.com/" title="Viacom" target="_blank">Viacom</a> offered to buy him out.   I was reading this in <a href="http://www.fastcompany.com/homepage/index.html" title="Fast Company Magazine" target="_blank">Fast Company</a> this morning and I was couldn&#8217;t believe that two of the largest marketing firms in the world would want to buy a MySpace wannabe.  I can&#8217;t really blame him for turning it down, though&#8230;since in a couple years his little business might be worth twice that much.  According to Fast Company, the worth of Facebook is based these facts:</p>
<ul>
<li>It consists of over 47,000 college, high school, employee, and regional networks</li>
<li>It handles over 600 million searches and mor than 30 billion page views a month</li>
<li>It&#8217;s the 6th most-trafficked site in the U.S.</li>
<li>It&#8217;s the biggest photo sharing site on the web, with 6 milling being added daily to it&#8217;s database of over 1 billion</li>
<li>It grows at an average percent of 3% a week, which is a lot faster than my boobs grow.</li>
</ul>
<p>Even though this kid could probably buy all the pocket protectors he wants, I&#8217;m still not sure of what he was deserving of a 7-page long article in FC.  There&#8217;s nothing interesting enough about this kid to hold my attention for 7 pages, considering that in high school I ordered the cliffs notes for the <em>Joy Luck Club</em>, then ended up hiring some guy to write my paper because it was still too long.</p>
<p>You can read the online version of the article <a href="http://www.fastcompany.com/magazine/115/open_features-hacker-dropout-ceo.html" title="lalalala" target="_blank">here</a>.</p>
<p><iframe src="http://www.p3bannerexchange.com/image.php?id=95&amp;size=2" marginheight="0" marginwidth="0" vspace="0" hspace="0" frameborder="0" height="60" scrolling="no" width="468">&amp;lt;br /&amp;gt;</iframe></p>
<p><map name='google_ad_map_55_7fa65e237551a74a'>
<area shape='rect' href='http://imageads.googleadservices.com/pagead/imgclick/55?pos=0' coords='1,2,367,28' />
<area shape='rect' href='http://services.google.com/feedback/abg' coords='384,10,453,23'/></map>
<img usemap='#google_ad_map_55_7fa65e237551a74a' border='0' src='http://imageads.googleadservices.com/pagead/ads?format=468x30_aff_img&amp;client=&amp;channel=&amp;output=png&amp;cuid=55&amp;url= http%3A%2F%2Fwww.v-nessa.net%2F2007%2F04%2F29%2Fmark-zuckerberg-is-a-buttmunch' /></p><img src="http://www.v-nessa.net/?ak_action=api_record_view&id=55&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.v-nessa.net/2007/04/29/mark-zuckerberg-is-a-buttmunch/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

