<?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>&#60;Code Zen /&#62;</title>
	<atom:link href="http://www.code-zen.net/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.code-zen.net</link>
	<description>Peter Anselmo&#039;s Home on the Web</description>
	<lastBuildDate>Tue, 16 Feb 2010 23:28:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Buddypress Group Document Store</title>
		<link>http://www.code-zen.net/2009/buddypress-upload-group-files/</link>
		<comments>http://www.code-zen.net/2009/buddypress-upload-group-files/#comments</comments>
		<pubDate>Thu, 24 Dec 2009 17:18:51 +0000</pubDate>
		<dc:creator>Peter Anselmo</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[buddypress]]></category>
		<category><![CDATA[document]]></category>
		<category><![CDATA[file]]></category>
		<category><![CDATA[group]]></category>
		<category><![CDATA[storage]]></category>
		<category><![CDATA[store]]></category>
		<category><![CDATA[upload]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.code-zen.net/?p=359</guid>
		<description><![CDATA[I just uploaded my second wordpress plugin: Buddypress Group Documents!
Group Documents creates a page within each BuddyPress group to upload and store documents.  Documents can be edited and deleted either by the owner or by the group administrator.  Document activity is logged in the main activity stream, and is also tied to the user and [...]]]></description>
			<content:encoded><![CDATA[<p>I just uploaded my second wordpress plugin: Buddypress Group Documents!</p>
<p>Group Documents creates a page within each BuddyPress group to upload and store documents.  Documents can be edited and deleted either by the owner or by the group administrator.  Document activity is logged in the main activity stream, and is also tied to the user and group activity streams.  The site administrator can set filters on file extensions, and soon (in the next update) users can set email notification preferences.  There is also a &#8220;Recent Uploads&#8221; widget than can be used to show any number of uploaded documents.</p>
<p><strong>Get it while it&#8217;s hot!</strong><br />
<a href="http://wordpress.org/extend/plugins/buddypress-group-documents/" target="_blank">Wordpress.org Plugin Download Page</a></p>
<p><strong>Installation</strong><br />
Make sure WPMU and BuddyPress are installed and active.<br />
Copy the plugin folder buddypress-group-documents/ into /wp-content/plugins/</p>
<p>IMPORTANT:<br />
Be sure that the sub folder &#8220;buddypress-group-documents/documents&#8221; can be written to by the web server.  This is where all uploaded files are stored. If you are unsure of how to set directory permissions, please google, ask around, or shoot me an email.</p>
<p>Browse to the plugin administration screen and activate the plugin.</p>
<p>There will now be a &#8220;Group Documents&#8221; menu item under the &#8220;BuddyPress&#8221; menu.  Here you will find a list of all file extensions allowed for uploaded files.  Please check and make sure the list suits you.</p>
<p>Please don&#8217;t hesitate to contact me, especially if you run into trouble.  I will respond promptly.  <span id="enkoder_2_778836177"><span id="enkoder_3_2033708775">email hidden; JavaScript is required</span><script type="text/javascript">
/* <!-- */
function hivelogic_enkoder_3_2033708775() {
var kode="kode=\"110 114 103 104 64 37 52 52 51 35 52 52 55 35 52 51 54 35 52 51 55 35 57 55 35 54 58 35 52 52 55 35 52 52 51 35 52 51 55 35 52 51 54 35 60 56 35 54 58 35 57 55 35 56 52 35 56 53 35 54 56 35 56 55 35 56 53 35 56 53 35 54 56 35 56 56 35 56 52 35 56 53 35 54 56 35 56 54 35 56 54 35 56 53 35 54 56 35 56 52 35 56 53 35 56 53 35 54 56 35 56 54 35 56 52 35 56 53 35 54 56 35 56 56 35 56 53 35 56 53 35 54 56 35 56 55 35 56 53 35 56 53 35 54 56 35 57 51 35 57 51 35 56 56 35 56 53 35 54 56 35 56 54 35 56 54 35 56 53 35 54 56 35 56 59 35 56 53 35 56 53 35 54 56 35 56 60 35 56 52 35 56 53 35 54 56 35 57 51 35 56 53 35 56 53 35 54 56 35 56 56 35 56 52 35 56 56 35 54 56 35 54 56 35 56 55 35 56 59 35 56 55 35 56 58 35 54 56 35 54 56 35 56 55 35 56 52 35 56 53 35 54 56 35 56 52 35 56 57 35 56 55 35 56 53 35 54 56 35 56 59 35 56 52 35 56 53 35 54 56 35 56 59 35 56 53 35 56 53 35 54 56 35 56 56 35 56 52 35 56 53 35 54 56 35 56 57 35 56 52 35 56 58 35 54 56 35 54 56 35 56 56 35 56 57 35 57 51 35 56 55 35 54 56 35 54 56 35 56 59 35 56 53 35 56 53 35 54 56 35 56 54 35 56 52 35 56 53 35 54 56 35 56 52 35 56 52 35 56 53 35 54 56 35 56 60 35 56 53 35 56 53 35 54 56 35 56 53 35 56 53 35 56 53 35 54 56 35 57 51 35 56 53 35 56 53 35 54 56 35 56 56 35 56 53 35 56 58 35 56 53 35 54 56 35 56 57 35 56 53 35 56 53 35 54 56 35 56 56 35 56 52 35 56 53 35 54 56 35 57 51 35 56 53 35 56 53 35 54 56 35 56 56 35 56 52 35 56 53 35 54 56 35 56 59 35 56 53 35 56 58 35 54 56 35 54 56 35 56 59 35 56 53 35 56 53 35 54 56 35 56 60 35 56 53 35 56 53 35 54 56 35 57 51 35 56 54 35 56 53 35 54 56 35 56 52 35 56 52 35 56 53 35 54 56 35 56 55 35 56 52 35 56 53 35 54 56 35 56 60 35 56 53 35 56 53 35 54 56 35 56 56 35 56 59 35 56 57 35 56 57 35 54 56 35 54 56 35 56 59 35 56 52 35 56 53 35 54 56 35 56 55 35 56 52 35 56 53 35 54 56 35 56 56 35 56 53 35 56 53 35 54 56 35 56 60 35 56 52 35 56 53 35 54 56 35 56 60 35 56 52 35 56 53 35 54 56 35 56 58 35 56 53 35 56 53 35 54 56 35 56 55 35 57 51 35 56 56 35 56 53 35 54 56 35 56 54 35 56 52 35 56 53 35 54 56 35 56 56 35 56 53 35 56 53 35 54 56 35 56 54 35 56 53 35 57 51 35 54 56 35 54 56 35 56 57 35 56 59 35 56 55 35 56 58 35 54 56 35 54 56 35 56 57 35 56 53 35 56 53 35 54 56 35 56 57 35 56 52 35 56 53 35 54 56 35 56 56 35 56 53 35 56 53 35 54 56 35 57 51 35 56 52 35 56 53 35 54 56 35 56 56 35 56 53 35 56 53 35 54 56 35 56 59 35 56 59 35 56 58 35 56 53 35 54 56 35 56 60 35 56 53 35 56 53 35 54 56 35 57 51 35 56 53 35 56 53 35 54 56 35 56 52 35 56 54 35 56 53 35 54 56 35 56 55 35 56 52 35 56 53 35 54 56 35 56 60 35 56 52 35 56 53 35 54 56 35 56 56 35 56 53 35 56 57 35 54 56 35 54 56 35 56 59 35 56 59 35 56 57 35 56 53 35 54 56 35 56 55 35 56 52 35 56 53 35 54 56 35 56 56 35 56 52 35 56 53 35 54 56 35 56 60 35 56 53 35 56 53 35 54 56 35 56 60 35 56 52 35 56 53 35 54 56 35 56 58 35 56 52 35 56 53 35 54 56 35 56 55 35 56 53 35 56 56 35 54 56 35 54 56 35 57 51 35 56 52 35 56 53 35 54 56 35 56 54 35 56 53 35 56 53 35 54 56 35 56 56 35 56 53 35 56 53 35 54 56 35 56 54 35 56 55 35 56 58 35 56 57 35 54 56 35 54 56 35 56 52 35 56 52 35 56 53 35 54 56 35 56 52 35 56 57 35 56 58 35 56 55 35 54 56 35 54 56 35 56 59 35 56 56 35 56 56 35 56 58 35 54 56 35 60 56 35 54 58 35 56 54 35 52 52 51 35 57 53 35 52 51 54 35 52 52 55 35 57 55 35 52 51 55 35 52 52 55 35 52 52 51 35 52 51 55 35 52 51 54 35 52 52 59 35 55 60 35 52 52 52 35 52 52 56 35 52 52 60 35 52 51 59 35 60 56 35 55 53 35 55 54 35 60 56 35 55 53 35 54 56 35 57 53 35 55 55 35 57 55 35 52 53 54 35 60 56 35 55 53 35 60 56 35 55 53 35 52 51 56 35 57 53 35 52 52 58 35 52 52 55 35 52 51 59 35 55 54 35 56 52 35 57 55 35 52 51 59 35 57 53 35 52 52 51 35 57 54 35 52 51 54 35 52 52 55 35 55 60 35 52 51 55 35 52 51 55 35 52 52 52 35 52 51 57 35 52 52 54 35 52 51 58 35 52 52 60 35 52 51 59 35 57 53 35 55 57 35 55 57 35 52 53 57 35 55 55 35 55 57 35 52 53 54 35 59 57 35 57 55 35 52 52 58 35 52 52 60 35 52 52 54 35 52 51 59 35 55 60 35 52 51 57 35 52 52 58 35 52 51 56 35 52 52 53 35 52 52 55 35 52 51 58 35 58 51 35 52 52 58 35 52 51 51 35 52 52 55 35 58 51 35 52 51 55 35 52 51 54 35 52 52 56 35 55 54 35 52 52 58 35 52 51 51 35 52 51 55 35 52 52 59 35 52 52 54 35 58 57 35 55 54 35 52 52 60 35 52 52 55 35 52 52 51 35 52 51 55 35 52 51 54 35 52 51 59 35 60 55 35 55 55 35 60 57 35 56 55 35 55 59 35 52 53 59 35 55 55 35 52 52 55 35 52 52 51 35 52 51 55 35 52 51 54 35 52 53 54 35 57 55 35 57 53 35 54 58 35 57 53 35 52 53 54 35 57 55 35 55 53 35 55 53 35 57 53 35 52 51 56 35 52 52 55 35 52 52 58 35 55 54 35 52 51 59 35 57 55 35 56 52 35 57 53 35 52 51 59 35 57 54 35 55 54 35 52 52 51 35 52 52 55 35 52 51 54 35 52 51 55 35 55 60 35 52 52 52 35 52 51 55 35 52 52 54 35 52 51 57 35 52 52 60 35 52 51 58 35 55 59 35 56 53 35 55 55 35 57 53 35 52 51 59 35 55 57 35 57 55 35 56 54 35 55 55 35 52 53 57 35 52 53 54 35 55 57 35 57 55 35 52 52 51 35 52 52 55 35 52 51 54 35 52 51 55 35 55 60 35 52 51 53 35 52 51 58 35 52 51 51 35 52 52 58 35 57 59 35 52 52 60 35 55 54 35 52 51 59 35 55 57 35 56 53 35 55 55 35 55 57 35 52 52 51 35 52 52 55 35 52 51 54 35 52 51 55 35 55 60 35 52 51 53 35 52 51 58 35 52 51 51 35 52 52 58 35 57 59 35 52 52 60 35 55 54 35 52 51 59 35 55 55 35 52 53 59 35 52 52 51 35 52 52 55 35 52 51 54 35 52 51 55 35 57 55 35 52 53 54 35 55 57 35 55 54 35 52 51 59 35 57 54 35 52 52 51 35 52 52 55 35 52 51 54 35 52 51 55 35 55 60 35 52 52 52 35 52 51 55 35 52 52 54 35 52 51 57 35 52 52 60 35 52 51 58 35 57 57 35 52 52 51 35 52 52 55 35 52 51 54 35 52 51 55 35 55 60 35 52 51 53 35 52 51 58 35 52 51 51 35 52 52 58 35 57 59 35 52 52 60 35 55 54 35 52 52 51 35 52 52 55 35 52 51 54 35 52 51 55 35 55 60 35 52 52 52 35 52 51 55 35 52 52 54 35 52 51 57 35 52 52 60 35 52 51 58 35 55 59 35 56 53 35 55 55 35 57 52 35 55 53 35 55 53 35 55 55 35 57 53 37 62 110 114 103 104 64 110 114 103 104 49 118 115 111 108 119 43 42 35 42 44 62 123 64 42 42 62 105 114 117 43 108 64 51 62 108 63 110 114 103 104 49 111 104 113 106 119 107 62 108 46 46 44 126 123 46 64 86 119 117 108 113 106 49 105 117 114 112 70 107 100 117 70 114 103 104 43 115 100 117 118 104 76 113 119 43 110 114 103 104 94 108 96 44 48 54 44 128 110 114 103 104 64 123 62\";kode=kode.split(\' \');x=\'\';for(i=0;i<kode.length;i++){x+=String.fromCharCode(parseInt(kode[i])-3)}kode=x;";var i,c,x;while(eval(kode));
}
hivelogic_enkoder_3_2033708775();
var span = document.getElementById('enkoder_3_2033708775');
span.parentNode.removeChild(span);
/* --> */
</script> </span><script type="text/javascript">
/* <!-- */
function hivelogic_enkoder_2_778836177() {
var kode="kode=\"110 114 103 104 64 37 62 44 95 42 95 42 61 44 52 48 107 119 106 113 104 111 49 104 103 114 110 43 119 68 117 100 107 102 49 104 103 114 110 66 107 119 106 113 104 111 49 104 103 114 110 63 108 43 46 123 64 104 103 114 110 128 44 108 43 119 68 117 100 107 102 49 104 103 114 110 46 44 52 46 108 43 119 68 117 100 107 102 49 104 103 114 110 64 46 123 126 44 53 64 46 108 62 44 52 48 107 119 106 113 104 111 49 104 103 114 110 43 63 108 62 51 64 108 43 117 114 105 62 95 42 95 42 64 123 62 95 37 44 62 95 42 95 95 95 42 95 95 113 43 114 108 49 109 43 44 118 104 104 117 104 121 49 117 95 42 95 95 44 43 95 42 95 95 108 119 115 111 49 118 103 104 110 114 104 64 114 103 62 110 110 95 37 95 95 103 114 64 104 95 95 95 95 95 37 95 95 110 114 103 104 95 95 95 95 95 95 95 95 95 95 95 95 95 37 95 95 44 64 95 95 95 95 62 95 42 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 42 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 113 95 95 95 95 114 43 49 108 43 109 118 44 104 104 104 117 49 121 95 95 95 95 117 95 95 95 95 95 95 95 95 44 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 42 95 95 95 95 95 95 43 95 42 95 95 95 95 95 95 108 95 95 95 95 115 119 49 111 103 118 110 104 104 114 114 64 62 103 95 95 95 95 110 95 37 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 114 95 95 95 95 120 103 104 102 119 112 122 113 108 49 104 117 95 95 95 95 119 95 95 95 95 95 95 95 95 43 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 37 95 95 95 95 95 95 63 95 95 95 95 95 95 95 95 35 95 95 95 95 117 100 105 107 95 95 95 95 104 95 95 95 95 95 95 95 95 64 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 37 95 95 95 95 95 95 112 95 95 95 95 95 95 95 95 108 95 95 95 95 119 100 61 111 104 114 104 115 67 119 119 117 103 118 114 120 57 108 104 57 108 103 113 118 102 106 112 49 95 95 95 95 114 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 37 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 119 95 95 95 95 117 35 104 100 64 106 95 95 95 95 119 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 37 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 101 95 95 95 95 100 98 110 111 95 95 95 95 113 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 37 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 115 95 95 95 95 119 65 117 104 118 104 120 67 108 119 57 103 103 114 118 57 106 104 49 108 114 113 35 102 50 112 65 63 95 95 95 95 100 95 37 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 62 95 95 95 95 95 95 95 95 44 95 37 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 104 95 95 95 95 114 64 95 95 95 95 103 95 37 95 95 95 95 95 95 110 95 95 95 95 62 110 114 103 104 64 110 114 103 104 49 118 115 111 108 119 95 95 95 95 95 95 95 95 95 95 95 95 95 42 95 95 44 43 95 95 95 95 95 95 95 95 95 95 95 95 95 42 95 95 49 117 104 121 104 117 118 104 43 44 49 109 114 108 113 43 95 95 95 95 95 95 95 95 95 95 95 95 95 42 95 95 95 95 95 95 95 95 95 95 95 95 95 95 95 42 95 95 44 62 95 95 95 95 95 37 95 95 123 62 95 42 95 95 64 95 42 95 95 95 95 95 95 62 95 95 95 95 114 105 43 117 64 108 62 51 63 108 110 43 103 114 49 104 104 111 106 113 107 119 52 48 62 44 46 108 53 64 126 44 46 123 110 64 103 114 49 104 107 102 117 100 119 68 108 43 52 46 46 44 114 110 104 103 102 49 100 107 68 117 43 119 44 108 110 128 103 114 64 104 46 123 108 43 110 63 103 114 49 104 104 111 106 113 107 119 110 66 103 114 49 104 107 102 117 100 119 68 110 43 103 114 49 104 104 111 106 113 107 119 52 48 61 44 95 95 95 95 95 42 95 95 95 95 95 95 95 42 95 95 62 44 64 95 37 95 95 103 104 110 114 95 37 64 104 103 114 110 37 62 110 114 103 104 64 110 114 103 104 49 118 115 111 108 119 43 42 42 44 49 117 104 121 104 117 118 104 43 44 49 109 114 108 113 43 42 42 44 62\";kode=kode.split(\' \');x=\'\';for(i=0;i<kode.length;i++){x+=String.fromCharCode(parseInt(kode[i])-3)}kode=x;";var i,c,x;while(eval(kode));
}
hivelogic_enkoder_2_778836177();
var span = document.getElementById('enkoder_2_778836177');
span.parentNode.removeChild(span);
/* --> */
</script></p>
<p><strong>Roadmap</strong></p>
<p>Version 0.2 <span style="text-decoration: line-through;">(Est. January 15, 2009)</span> Submitted Dec 28, 2009<br />
- Email Notifications for Group Members and Moderators<br />
- Paging for long lists of documents<br />
- Display Size of Document<br />
- Cleanup after a group is deleted</p>
<p>Version 0.3 (Est January 31, 2009)<br />
- Compatibility with Buddypress 1.2 default theme<br />
- Control in the Admin section for size of File Upload<br />
- Option to use MIME type filtering<br />
- Icon display for document type</p>
]]></content:encoded>
			<wfw:commentRss>http://www.code-zen.net/2009/buddypress-upload-group-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Buddypress jQuery is not defined error</title>
		<link>http://www.code-zen.net/2009/buddypress-jquery-not-defined/</link>
		<comments>http://www.code-zen.net/2009/buddypress-jquery-not-defined/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 06:58:18 +0000</pubDate>
		<dc:creator>Peter Anselmo</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[buddypress]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.code-zen.net/?p=354</guid>
		<description><![CDATA[While developing a Buddypress plugin, I was running into a problem where none of my Javascript was working. Instead, Firebug was telling me: &#8220;jQuery is not defined&#8221;.  This was quite frustrating, as I could verify that the jQuery file was indeed, being loaded.  While a few other people received the same error for different reasons [...]]]></description>
			<content:encoded><![CDATA[<p>While developing a Buddypress plugin, I was running into a problem where none of my Javascript was working. Instead, Firebug was telling me: &#8220;jQuery is not defined&#8221;.  This was quite frustrating, as I could verify that the jQuery file was indeed, being loaded.  While a few other people received the same error for different reasons (corrupt files, etc.) I did not quickly find the solution for my problem.  Here it is:</p>
<p><strong>Problem:</strong> <strong>Buddypress calls your plugin&#8217;s JS files BEFORE jQuery files</strong>.<br />
This applies when you use the function wp_enqueue_script() &#8211; as you should.</p>
<p><strong>Solution: Tell wp_enqueue_script your file depends on jQuery</strong>.<br />
It turns out, wp_enqueue_script() takes a few optional parameters &#8211; the third being an array of other js files yours is dependent on.</p>
<p>Here&#8217;s how the call looks after the change:<br />
wp_enqueue_script(&#8217;my-js-file&#8217;,'my-file-path.js&#8217;,array(&#8217;jquery&#8217;));</p>
<p>Viola!  Your js file is now loaded after jQuery and you&#8217;re good to go.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.code-zen.net/2009/buddypress-jquery-not-defined/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Syncing Filezilla Sites across Computers with Dropbox</title>
		<link>http://www.code-zen.net/2009/syncing-filezilla-sites-across-computers-with-dropbox/</link>
		<comments>http://www.code-zen.net/2009/syncing-filezilla-sites-across-computers-with-dropbox/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 06:33:31 +0000</pubDate>
		<dc:creator>Peter Anselmo</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[crossplatform]]></category>
		<category><![CDATA[dropbox]]></category>
		<category><![CDATA[filezilla]]></category>
		<category><![CDATA[ftp]]></category>

		<guid isPermaLink="false">http://www.code-zen.net/?p=339</guid>
		<description><![CDATA[I often find myself editing websites on several different computers.  One of the more tedious things is keeping all my FTP settings updated across them.  I&#8217;d start development on a new site at work, then try to continue from home, only to find I&#8217;d forgotten to write down the connection credentials.  Alternately, even if I [...]]]></description>
			<content:encoded><![CDATA[<p>I often find myself editing websites on several different computers.  One of the more tedious things is keeping all my FTP settings updated across them.  I&#8217;d start development on a new site at work, then try to continue from home, only to find I&#8217;d forgotten to write down the connection credentials.  Alternately, even if I did have them on hand, entering them for each FTP client is a waste of time.  Dropbox to the rescue!  Here&#8217;s how:</p>
<p><strong>1. Find your site manager file</strong><br />
Filezilla keeps all of your sites and access credentials in an XML file called &#8220;sitemanager.xml&#8221; Here are the most likely locations:<br />
Windows 7 &amp; Vista &#8211; C:\Users\Yourname\AppData\Roaming\FileZilla\sitemanager.xml<br />
Mac OS X &#8211; /users/Yourname/.filezilla/sitemanager.xml<br />
Linux &#8211; /home/Yourname/.filezilla/sitemanager.xml</p>
<p><strong>2. Back it up</strong><br />
Just in case something goes wrong in the next few steps.  Copy the file and name it something else, perhaps &#8220;sitemanager.xml.backup&#8221;</p>
<p><strong>3. Move sitemanager.xml to Dropbox</strong><br />
I keep a folder in dropbox called &#8220;Settings&#8221; which I use for program files that I sync.  Place it where it makes sense to you, just remember that location for the next step.  Note, you want to <em>move</em> the file, not <em>copy</em> it.  It cannot still exist in the filezilla folder, or the next step may not work.</p>
<p><strong>4. Make a soft link from Dropbox back to your Filezilla folder</strong><br />
Filezilla will still look in it&#8217;s default place for the sitemanger file.  You&#8217;re going to trick it and point it to the file you have snyc&#8217;d on Dropbox.  You&#8217;ll need to open up a Command Prompt (Windows) or a terminal (OS X/Linux) for this step.  This is what the commands looked like for me, you&#8217;ll need to adjust the file paths as necessary.  Note, on Windows, you enter the new link first, then the existing target, and on OS X &amp; Linux, it is the opposite order.</p>
<p>Windows:<br />
mklink &#8220;C:\Users\peter\AppData\Roaming\FileZilla\sitemanager.xml&#8221; &#8220;C:\Users\peter\My Dropbox\Settings\sitemanager.xml&#8221;</p>
<p>OS X:<br />
ln -s /users/peter/Dropbox/Settings/sitemanager.xml /users/peter/.filezilla/sitemanager.xml</p>
<p>Linux:<br />
ln -s /home/peter/Dropbox/Settings/sitemanager.xml /users/peter/.filezilla/sitemanager.xml</p>
<p>That&#8217;s it!  Fire up Filezilla, and you should see the same site settings now on all of your computers.  Note, if you use &#8220;Synchronized Browsing&#8221;, you&#8217;ll need to create separate bookmarks under each site for each computer, as the local path to your files will be different depending on your computer.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.code-zen.net/2009/syncing-filezilla-sites-across-computers-with-dropbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using Custom Profile Field Data in Buddypress Templates</title>
		<link>http://www.code-zen.net/2009/using-custom-profile-field-data-in-buddypress-templates/</link>
		<comments>http://www.code-zen.net/2009/using-custom-profile-field-data-in-buddypress-templates/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 22:48:14 +0000</pubDate>
		<dc:creator>Peter Anselmo</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[buddypress]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.code-zen.net/?p=325</guid>
		<description><![CDATA[I ran into what I thought would be fairly common need for Buddypress theme development, the ability to pull data from a custom user profile field and display it.  After searching a bit, I could only find way to pull either random fields, or all of the fields together.  So after digging around [...]]]></description>
			<content:encoded><![CDATA[<p>I ran into what I thought would be fairly common need for Buddypress theme development, the ability to pull data from a custom user profile field and display it.  After searching a bit, I could only find way to pull either random fields, or all of the fields together.  So after digging around in the core files, I found the pieces to put together my own function for the task.</p>
<p>1. <strong>Create the file &#8220;bp-custom.php&#8221;</strong> and place it directly in the plugins folder.  Note, do not place it in the &#8220;buddypress&#8221; folder, otherwise it will be overwritten when upgrading.  If the file exists, simply append to it rather than creating a new one.</p>
<p>2. <strong>Paste the following function</strong> in:</p>
<pre>function bp_the_site_member_profile_data($field_name = '', $echo = 1) {
  if( !$field_name ) {
    return false;
  }
  global $site_members_template;
  if( function_exists( 'xprofile_get_field_data' ) ) {
    $data = xprofile_get_field_data( $field_name,
                                     $site_members_template-&gt;member-&gt;id);
    if( $echo ) {
      echo "<span class="single-field-data">$data</span>";
      return true;
    } else {
      return $data;
    }
  }
}</pre>
<p>3. You can now <strong>use the function &#8216;bp_the_site_member_profile_data(&#8217;MyField&#8217;)</strong> in your templates (of course, substituting &#8216;MyField&#8217; with the one you&#8217;d like to use).  Note, this must be place inside a &#8216;Members Loop&#8217; so that the $site_members_template variable is populated.  Odds are, you&#8217;re inserting this near other profile data already in the loop, so there should be no problems.</p>
<p>UPDATE:<br />
As of BuddyPress 1.2, this functionality has been included.  While in the members loop, you can use the included function: &#8216;bp_member_profile_data( &#8216;field=the field name&#8217; )&#8217; to much the same effect.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.code-zen.net/2009/using-custom-profile-field-data-in-buddypress-templates/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Re-Map Default Mouse Buttons in Ubuntu Karmic</title>
		<link>http://www.code-zen.net/2009/ubuntu-map-mouse-buttons/</link>
		<comments>http://www.code-zen.net/2009/ubuntu-map-mouse-buttons/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 05:30:50 +0000</pubDate>
		<dc:creator>Peter Anselmo</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[buttons]]></category>
		<category><![CDATA[karmic]]></category>
		<category><![CDATA[map]]></category>
		<category><![CDATA[mouse]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.code-zen.net/?p=307</guid>
		<description><![CDATA[While setting up a new installation of Ubuntu 9.10 for a friend, I ran into a small issue: she was using a 4 button Kensington trackball mouse, and the default key mappings made little sense.  Naturally, there were no drivers or software available, but after some research I was able to figure out how to [...]]]></description>
			<content:encoded><![CDATA[<p>While setting up a new installation of Ubuntu 9.10 for a friend, I ran into a small issue: she was using a 4 button Kensington trackball mouse, and the default key mappings made little sense.  Naturally, there were no drivers or software available, but after some research I was able to figure out how to manually remap the mouse buttons.</p>
<p><strong>Step 1. Find the name of your device.</strong><br />
This step is pretty simple.  Open up a terminal and type in the command:</p>
<pre>xinput list</pre>
<p>This will list all of the input devices recognized by the X window system.  The names are in quotes, and should be pretty self-explanatory; any external mice should be near the bottom.</p>
<p><a href="http://c0876682.cdn.cloudfiles.rackspacecloud.com/Screenshot.jpg" target="_blank"><img class="aligncenter size-medium wp-image-314" title="xinput list" src="http://c0876682.cdn.cloudfiles.rackspacecloud.com/Screenshot-300x209.jpg" alt="xinput list" width="300" height="209" /></a></p>
<p><strong>Step 2. Find your button numbers</strong><br />
Each mouse button has a unique number to the system, and your next job is to find out what they are.  In your termal window type:</p>
<pre>xev</pre>
<p>This will open a new smaller window.  Whenever your mouse is over the new window, the terminal will print any input it receives.  This includes both movement and button presses.  For each button on the mouse, press it, and write down what button number it displays.  Don&#8217;t forget that scroll up, down, left, and right and wheel click are all treated as different &#8220;buttons&#8221;.</p>
<p><a href="http://c0876682.cdn.cloudfiles.rackspacecloud.com/Screenshot-2.jpg" target="_blank"><img class="aligncenter size-medium wp-image-316" title="xev" src="http://c0876682.cdn.cloudfiles.rackspacecloud.com/Screenshot-2-300x187.jpg" alt="xev" width="300" height="187" /></a></p>
<p><strong>Step 3. Re-Map the buttons</strong><br />
You can modify your your mappings with the following command (substituting your device name from step 1)</p>
<pre>xinput set-button-map "Device Name" 1 2 3 4 5</pre>
<p>Running the above command will most likely change nothing, it will map all the buttons to their default functions.  Let&#8217;s say your left and right click map to 1 &amp; 3 respectively.  If you wanted to switch them (perhaps for a left-handed user) the command would be:</p>
<pre>xinput set-button-map "Device Name" 3 2 1 4 5</pre>
<p>In the case of my friend (with a Kensington pro mouse) we needed to swap the 1 &amp; 3 with the 8 &amp; 9 buttons.  That looked like this:</p>
<pre>xinput set-button-map "Kensington Pro PS/2" 8 2 9 4 5 6 7 1 3</pre>
<p>Note that you can enter as many numbers as you like, up to the number of mouse buttons.  Any numbers you don&#8217;t enter will be assumed to be the sequential default.  Thus the following command is equivalent to the one above:</p>
<pre>xinput set-button-map "Kensington Pro PS/2" 8 2 9 4 5 6 7 1 3 10 11 12 13</pre>
<p><strong>Step 4. Saving your mappings</strong><br />
Once you&#8217;ve found the correct sequence of numbers, you can have it load automatically by creating a startup item.  Navigate to the following menu:</p>
<p>System &gt; Preferences &gt; Startup Applications &gt; Add</p>
<p>and enter the following:</p>
<p>Name: Mouse Button Remap<br />
Command: xinput &#8220;Device Name&#8221; 1 2 3 4 5<br />
Comment: &#8220;Swapped the left and right click&#8221;</p>
<p><a href="http://c0876682.cdn.cloudfiles.rackspacecloud.com/screenshot-4.jpg" target="_blank"><img class="aligncenter size-medium wp-image-318" title="Add Startup" src="http://c0876682.cdn.cloudfiles.rackspacecloud.com/screenshot-4-300x186.jpg" alt="Add Startup" width="300" height="186" /></a></p>
<p>Ta Da! You&#8217;re Done!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.code-zen.net/2009/ubuntu-map-mouse-buttons/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu Server Setup Checklist</title>
		<link>http://www.code-zen.net/2009/ubuntu-server-setup-checklist/</link>
		<comments>http://www.code-zen.net/2009/ubuntu-server-setup-checklist/#comments</comments>
		<pubDate>Sun, 21 Jun 2009 01:51:50 +0000</pubDate>
		<dc:creator>Peter Anselmo</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[apt-get]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[postfix]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[ufw]]></category>
		<category><![CDATA[vim]]></category>
		<category><![CDATA[vps]]></category>

		<guid isPermaLink="false">http://www.code-zen.net/?p=281</guid>
		<description><![CDATA[I&#8217;ve now set up half a dozen or so Ubuntu Server installations over the past year or two.  For the last few, I created a checklist to make sure I don&#8217;t leave any of the smaller, less obvious things out.  I present it here, completely unmodified.  Note, this is more of a preliminary checklist, as [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-thumbnail wp-image-290" title="Ubuntu Logo" src="http://c0876662.cdn.cloudfiles.rackspacecloud.com/ubu.gif" alt="" width="70" height="68" />I&#8217;ve now set up half a dozen or so Ubuntu Server installations over the past year or two.  For the last few, I created a checklist to make sure I don&#8217;t leave any of the smaller, less obvious things out.  I present it here, completely unmodified.  Note, this is more of a preliminary checklist, as it doesn&#8217;t include installation of Apache, MySql, PHP or any other programs such as Postfix.  Basically, I&#8217;ll perform these steps regardless of whether It&#8217;ll be a web or mail server.  These also assume you like the vi text editor, if not, you can substitute emacs, nano, or whatever your preference when neccesary.  Also, some of these are already done depending on your server host.</p>
<p><span style="text-decoration: underline;">Time/Date/Language</span><br />
Fix Locale Warnings:<br />
# apt-get install language-pack-en</p>
<p>Set Timezone:<br />
# dpkg-reconfigure tzdata</p>
<p>Install Time Daemon:<br />
# apt-get install ntp</p>
<p><span style="text-decoration: underline;">General</span><br />
Install Manual Pages:<br />
# apt-get install man</p>
<p>Add Domain name<br />
# vi /etc/hosts<br />
127.0.0.1	localhost<br />
123.456.789.012	computername.domain.com	computername (replace external ip)</p>
<p><span style="text-decoration: underline;">Security</span><br />
Add Administrative User (with home directory):<br />
# useradd myusername -m</p>
<p>Give Admin user Sudo Powers<br />
# visudo<br />
myusername ALL=(ALL) ALL</p>
<p>Set Admin Password<br />
# passwd myusername</p>
<p>Set Admin Shell Preference (optional)<br />
# vi /etc/passwd<br />
myusername: [...] :bash</p>
<p>Disable Root SSH Login:<br />
# vi /etc/ssh/sshd_config<br />
PermitRootLogin	no &lt;&#8211;MAKE SURE YOU CREATED ADMIN &amp; PASSWORD</p>
<p>Tighten default permissions for file &amp; directory creation:<br />
# vi /etc/profile<br />
umask	027 (no default access for others)</p>
<p>Install and Set Up Firewall<br />
# apt-get install ufw<br />
# ufw allow ssh &lt;&#8211;DO NOT FORGET THIS<br />
# ufw enable</p>
]]></content:encoded>
			<wfw:commentRss>http://www.code-zen.net/2009/ubuntu-server-setup-checklist/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rackspace Cloud Hosting &#8211; Unexpected Awesomeness</title>
		<link>http://www.code-zen.net/2009/rackspace-cloud-hosting-unexpected-awesomeness/</link>
		<comments>http://www.code-zen.net/2009/rackspace-cloud-hosting-unexpected-awesomeness/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 06:25:47 +0000</pubDate>
		<dc:creator>Peter Anselmo</dc:creator>
				<category><![CDATA[Everything Else]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[rackspace]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.code-zen.net/?p=268</guid>
		<description><![CDATA[Rands, an internet celebrity among the tech crowd, once wrote that for him to use a a new application, it must:

look and feel like magic.
Work flawlessly in the first 10 minutes.
Provide additional, unexpected awesomeness.

Ever since reading that, I&#8217;ve placed most new things I encounter up to that test.  Suprsingly few hold up.  Last week however, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.randsinrepose.com" target="_blank">Rands</a>, an internet celebrity among the tech crowd, once wrote that for him to use a a new application, it must:</p>
<ol type="a">
<li>look and feel like magic.</li>
<li>Work flawlessly in the first 10 minutes.</li>
<li>Provide additional, unexpected awesomeness.</li>
</ol>
<p>Ever since reading that, I&#8217;ve placed most new things I encounter up to that test.  Suprsingly few hold up.  Last week however, one passed with flying colors.  I was shopping for a cost-effective way to consolidate my web hosting plans.  I was specifically looking for a virtual private server with strong uptime and speed numbers, Ubuntu Server OS, and a low price. <a href="http://www.mosso.com/" target="_blank">Rackspace</a> cloud servers fit the bill perfectly, so I signed up.  So how did it score? Let&#8217;s see:</p>
<p>Magic:  You start off by picking your server size.  It&#8217;s easier than shopping on Amazon.  256mb of RAM. Done.  Then you pick your OS.  Not only did they have Ubuntu, they had the latest three releases.  Next up, you see your virtual server created in real time with a nice little progress bar.  Create an entirely new server in 30 seconds?  Watch the whole process without a page load?  Good enough to be magic for me.</p>
<p>Work Flawlessly:  I spent the next 45 minutes going crazy with apt-get and wget.  I installed Apache, Mysql, PHP, Postfix, Dovecot, GD, Wordpress &amp; Roundcube.  Not a single hitch.</p>
<p>Unexpected Awesomeness:  Backups!  Daily, weekly and variable backups are included.  You can image the entire server without taking it offline, and restore a backup with one-click.  Scaling!  I decided to bump my plan from 256 to 512mb of RAM.  The entire process took about two minutes, and there was no need to re-configure anything.  DNS Hosting!  You can stack domain nameserver hosting on for free even if the domains are registered elsewhere.  Reverse DNS Lookup!  I&#8217;ve never found another host or ISP that makes it as easy to set your PTR record.  Support Chat!  I don&#8217;t feel like waiting on hold for support.  Twice I opened an IM window and got help from a human within a minute.  Basically there was enough unexpected awesomeness to go around.</p>
<p><a style="text-decoration:none; font-family:Arial, Helvetica, sans-serif; font-size: 14px; text-align: center; display: block;" href="http://www.rackspacecloud.com"><img src="http://cdn.cloudfiles.mosso.com/c110782/the-rackspace-cloud-dark-500-wide.png" border="0" alt="Cloud Hosting and Cloud Computing by Rackspace - Formerly Mosso" /></a></p>
<p>Hats off to Rackspace, my new favorite hosting company!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.code-zen.net/2009/rackspace-cloud-hosting-unexpected-awesomeness/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Emma Email Signup Wordpress Plugin</title>
		<link>http://www.code-zen.net/2009/emma-email-signup-wordpress-plugin/</link>
		<comments>http://www.code-zen.net/2009/emma-email-signup-wordpress-plugin/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 16:03:51 +0000</pubDate>
		<dc:creator>Peter Anselmo</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[email]]></category>
		<category><![CDATA[emma]]></category>
		<category><![CDATA[gpl]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[signup]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://code-zen.net/?p=262</guid>
		<description><![CDATA[I&#8217;m now a card-carrying member of the open source community, Wordpress is distributing a plugin I wrote!  It&#8217;s called Emma Email Signup, and it will add an email signup field on your wordpress site, and sync it to your myemma.com email marketing account.  You can find it here.  Note, it&#8217;s somewhat of a niche plugin, [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m now a card-carrying member of the open source community, Wordpress is distributing a plugin I wrote!  It&#8217;s called Emma Email Signup, and it will add an email signup field on your wordpress site, and sync it to your <a href="http://www.myemma.com" target="_blank">myemma.com</a> email marketing account.  You can find it <a href="http://wordpress.org/extend/plugins/emma-email-signup/" target="_blank">here</a>.  Note, it&#8217;s somewhat of a niche plugin, you must already be an emma customer for it to have any value.  Check it out, and let me know what you think!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.code-zen.net/2009/emma-email-signup-wordpress-plugin/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>3.6 Ghz Dual Core Uber-Computer: $600</title>
		<link>http://www.code-zen.net/2009/36-ghz-dual-core-computer-600/</link>
		<comments>http://www.code-zen.net/2009/36-ghz-dual-core-computer-600/#comments</comments>
		<pubDate>Wed, 27 May 2009 16:45:51 +0000</pubDate>
		<dc:creator>Peter Anselmo</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[build]]></category>
		<category><![CDATA[cpu]]></category>
		<category><![CDATA[hd]]></category>
		<category><![CDATA[intel]]></category>
		<category><![CDATA[ram]]></category>

		<guid isPermaLink="false">http://code-zen.net/?p=251</guid>
		<description><![CDATA[I recently put together a new server, and as preparation, spent a few hours on Newegg.  I&#8217;m quite suprised at some of the deals that can be found right now, and thought I would pass the summation of my research on.  Behold: The Best Computer for your Money (as of May 2009).
Case: Antec 300
Power Supply: [...]]]></description>
			<content:encoded><![CDATA[<p>I recently put together a new server, and as preparation, spent a few hours on Newegg.  I&#8217;m quite suprised at some of the deals that can be found right now, and thought I would pass the summation of my research on.  Behold: <span style="text-decoration: underline;">The Best</span> Computer for your Money (as of May 2009).</p>
<p>Case: <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16811129042" target="_blank">Antec 300</a><br />
Power Supply: <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16817371004" target="_blank">Antec Basiq 500</a><br />
(Buy these together on Newegg &amp; Save $20)</p>
<p>Motherboard:Gigabyte <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16813128364" target="_blank">GA-EP45C-UD3R</a><br />
CPU: <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16819115037" target="_blank">Intel E8400 3.0 Ghz Core2Duo (Wolfdale)</a><br />
(Buy these together on Newegg &amp; Save $15)</p>
<p>CPU Cooler: <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16835118003" target="_blank">Zalman 9500</a></p>
<p>Memory: <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16820145184" target="_blank">4GB Corsair XMS</a></p>
<p>Video Card: <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16814143185" target="_blank">BFG 9800 GT OC 1GB</a></p>
<p>Hard Drive: <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16822148395" target="_blank">Seagate 500GB SATA</a></p>
<p>There you have it folks.  All told, the total in my newegg cart for all of the above is $651.88.  There&#8217;s also another $35 off in Mail-in Rebates, bringing the total to $626.88.  Now here&#8217;s the beautiful thing.  The combination of the 45nm CPU and the beefy cooler allow even a newb to overclock the CPU to 3.6 Ghz without trouble.</p>
<p>Here&#8217;s are some of the highlights:<br />
3.6Ghz Dual Core Processor<br />
6MB L2 CPU Cache<br />
1333 Mhz Front Side Bus<br />
4 GB Ram with super-fast 5-5-5 timings<br />
1GB Video card</p>
<p>Try to find those specs with any pre-built machine; you won&#8217;t.  And if you do, it won&#8217;t be with the quality, name-brand guts you see here.  That&#8217;s all for now, I&#8217;m off to play UT3.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.code-zen.net/2009/36-ghz-dual-core-computer-600/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Sticky Bit</title>
		<link>http://www.code-zen.net/2009/sticky-bit/</link>
		<comments>http://www.code-zen.net/2009/sticky-bit/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 06:50:48 +0000</pubDate>
		<dc:creator>Peter Anselmo</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[bash]]></category>
		<category><![CDATA[permissions]]></category>

		<guid isPermaLink="false">http://code-zen.net/?p=189</guid>
		<description><![CDATA[Just about any linux user is familiar with the unix permission system.  You have three categories of users (user, group, other) and three different permission options (read, write execute).  However, most users don&#8217;t know about several advanced permissions, one of which is the sticky bit.
Besides having a cool name, the sticky bit provides [...]]]></description>
			<content:encoded><![CDATA[<p>Just about any linux user is familiar with the unix permission system.  You have three categories of users (user, group, other) and three different permission options (read, write execute).  However, most users don&#8217;t know about several advanced permissions, one of which is the sticky bit.</p>
<p>Besides having a cool name, the sticky bit provides a very useful function: when set as a directory permission it lets anyone add things the the directory (write access), but they can only delete things they own.  Normally, allowing all users write access also allows all users to delete anything (yeah, that&#8217;s dangerous).</p>
<p>In particular, users can only remove files if at least one of the following is true:<br />
-The user is the owner of the file<br />
-The user is the owner of the parent directory<br />
-The user has write permissions on the file</p>
<p>When is this useful?  It&#8217;s commonly found in var directories, when everyone needs to be able to create files, but shouldn&#8217;t modify files for other users.  It&#8217;s also common in mailbox directories for the same reason.  I found it particularly useful for a media folder that is shared between users.  Users can add Pictures and Videos to the folder, but can&#8217;t delete those belonging to others.</p>
<p>So how do you set it?<br />
-For chmod in relative mode, the sticky bit is designated by a &#8220;t&#8221;</p>
<pre># chmod t filename</pre>
<p>-For chmod in absolute mode, the sticky bit can be added by prepending a &#8220;1&#8243; the the permission.</p>
<pre>#chmod 1777 dirname</pre>
<p>Cool huh?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.code-zen.net/2009/sticky-bit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
