<?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>MaisonBisson.com &#187; documentation</title>
	<atom:link href="http://maisonbisson.com/blog/post/tag/documentation/feed/" rel="self" type="application/rss+xml" />
	<link>http://maisonbisson.com</link>
	<description>A bunch of stuff I would have emailed you about.</description>
	<lastBuildDate>Sat, 14 Nov 2009 20:14:03 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Lessons Learned: Why It&#8217;s Better Not To Use Parentheses When They&#8217;re Optional</title>
		<link>http://maisonbisson.com/blog/post/13877/lessons-learned-why-its-better-not-to-use-parentheses-when-theyre-optional/</link>
		<comments>http://maisonbisson.com/blog/post/13877/lessons-learned-why-its-better-not-to-use-parentheses-when-theyre-optional/#comments</comments>
		<pubDate>Tue, 05 May 2009 17:07:53 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[parentheses]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[return()]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/?p=13877</guid>
		<description><![CDATA[
There it is in the PHP manual for return():
Note: since return() is a language construct and not a function, the parentheses surrounding its arguments are not required. It is common to leave them out, and you actually should do so as PHP has less work to do in this case.
I knew the parentheses were optional, but I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-13877"><!-- &nbsp; --></abbr>
<p>There it is in the <a href="http://php.net/return">PHP manual for <code>return()</code></a>:</p>
<blockquote><p>Note: since return() is a language construct and not a function, the parentheses surrounding its arguments are not required. It is common to leave them out, and you actually should do so as PHP has less work to do in this case.</p></blockquote>
<p>I knew the parentheses were optional, but I&#8217;ve been merrily using them all along. And I probably would have continued doing so until I saw the second note attached to the docs:</p>
<blockquote><p>Note: You should never use parentheses around your return variable when returning by reference, as this will not work. You can only return variables by reference, not the result of a statement. If you use return ($a); then you&#8217;re not returning a variable, but the result of the expression ($a) (which is, of course, the value of $a).</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/13877/lessons-learned-why-its-better-not-to-use-parentheses-when-theyre-optional/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing PHP APC On RHEL/CentOS</title>
		<link>http://maisonbisson.com/blog/post/12589/installing-php-apc-on-rhel-centos/</link>
		<comments>http://maisonbisson.com/blog/post/12589/installing-php-apc-on-rhel-centos/#comments</comments>
		<pubDate>Mon, 15 Sep 2008 00:08:34 +0000</pubDate>
		<dc:creator>Casey</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[apc]]></category>
		<category><![CDATA[Centos]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[rhel]]></category>
		<category><![CDATA[system administration]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/?p=12589</guid>
		<description><![CDATA[

Yum up some packages:

yum install php-pear php-devel httpd-devel


Install APC using pear (the pear installer is smarter than the pecl installer):
When the installer asks about APXS, say &#8216;no&#8217;. 

pear install pecl/apc


Tell PHP to load APC:

echo extension=apc.so &#62; /etc/php.d/apc.ini


Restart Apache:

/sbin/service httpd graceful



]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-12589"><!-- &nbsp; --></abbr>
<ol>
<li>Yum up some packages:

<div class="wp_syntax"><div class="code"><pre class="csh" style="font-family:monospace;">yum install php-pear php-devel httpd-devel</pre></div></div>

</li>
<li>Install APC using pear (the pear installer is smarter than the pecl installer):<br />
When the installer asks about APXS, say &#8216;no&#8217;. </p>

<div class="wp_syntax"><div class="code"><pre class="csh" style="font-family:monospace;">pear install pecl/apc</pre></div></div>

</li>
<li>Tell PHP to load APC:

<div class="wp_syntax"><div class="code"><pre class="csh" style="font-family:monospace;">echo extension=apc.so &gt; /etc/php.d/apc.ini</pre></div></div>

</li>
<li>Restart Apache:

<div class="wp_syntax"><div class="code"><pre class="csh" style="font-family:monospace;">/sbin/service httpd graceful</pre></div></div>

</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/12589/installing-php-apc-on-rhel-centos/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Installing memcached On CentOS/RHEL</title>
		<link>http://maisonbisson.com/blog/post/12440/installing-memcached-on-centos/</link>
		<comments>http://maisonbisson.com/blog/post/12440/installing-memcached-on-centos/#comments</comments>
		<pubDate>Mon, 08 Sep 2008 01:17:15 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Centos]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[memcached]]></category>
		<category><![CDATA[red hat]]></category>
		<category><![CDATA[rhel]]></category>
		<category><![CDATA[step by step]]></category>
		<category><![CDATA[vps]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/?p=12440</guid>
		<description><![CDATA[
Using info from CentOS forums, Sunny Walia and Ryan Boren, here&#8217;s how I got memcached running on my Dotster VPS:
Install libevent:

wget http://www.monkey.org/~provos/libevent-1.3e.tar.gz
tar zxvf libevent-1.3e.tar.gz
cd libevent-1.3e
&#160;
./configure
make
make install

Install memcached

wget http://danga.com:80/memcached/dist/memcached-1.2.5.tar.gz
tar zxvf memcached-1.2.5.tar.gz
cd memcached-1.2.5
&#160;
./configure
make
make install

We will start the server to use 30 megs of ram (-m 30), listen on ip 127.0.0.1 (-l 127.0.0.1) and run on port 11211 [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-12440"><!-- &nbsp; --></abbr>
<p>Using info from <a title="www.centos.org - Forums - CentOS 4 - Server Support - MemCached" href="http://www.centos.org/modules/newbb/viewtopic.php?post_id=26551&amp;topic_id=7975">CentOS forums</a>, <a title="Learn and Share" href="http://crazytoon.com/2008/01/20/memcached-how-do-you-install-memcached-centos-64-bit-linux-redhat-fedora/">Sunny Walia</a> and <a title="Memcached Backend « Ryan on WordPress" href="http://ryan.wordpress.com/2005/12/23/memcached-backend/">Ryan Boren</a>, here&#8217;s how I got memcached running on my <a href="http://www.anrdoezrs.net/click-2406739-10447876">Dotster VPS</a>:</p>
<p>Install libevent:</p>

<div class="wp_syntax"><div class="code"><pre class="sh" style="font-family:monospace;">wget http://www.monkey.org/~provos/libevent-1.3e.tar.gz
tar zxvf libevent-1.3e.tar.gz
cd libevent-1.3e
&nbsp;
./configure
make
make install</pre></div></div>

<p>Install memcached</p>

<div class="wp_syntax"><div class="code"><pre class="sh" style="font-family:monospace;">wget http://danga.com:80/memcached/dist/memcached-1.2.5.tar.gz
tar zxvf memcached-1.2.5.tar.gz
cd memcached-1.2.5
&nbsp;
./configure
make
make install</pre></div></div>

<p>We will start the server to use 30 megs of ram (-m 30), listen on ip 127.0.0.1 (-l 127.0.0.1) and run on port 11211 (-p 11211) as user &#8216;nobody&#8217; (-u nobody):</p>

<div class="wp_syntax"><div class="code"><pre class="sh" style="font-family:monospace;">memcached -u nobody -d -m 30 -l 127.0.0.1 -p 11211</pre></div></div>

<p>Get an error?</p>

<div class="wp_syntax"><div class="code"><pre class="sh" style="font-family:monospace;">memcached: error while loading shared libraries: libevent-1.3e.so.1: cannot open shared object file: No such file or directory</pre></div></div>

<p>Show it the path to the library:</p>

<div class="wp_syntax"><div class="code"><pre class="sh" style="font-family:monospace;">LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/12440/installing-memcached-on-centos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL Documentation</title>
		<link>http://maisonbisson.com/blog/post/12145/mysql-documentation/</link>
		<comments>http://maisonbisson.com/blog/post/12145/mysql-documentation/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 01:44:03 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Dispatches]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[funny]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[MySQL spatial functions]]></category>
		<category><![CDATA[spatial functions]]></category>
		<category><![CDATA[unimplemented]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/blog/?p=12145</guid>
		<description><![CDATA[
Found in the MySQL 5.0 Reference Manual:

Related(g1,g2,pattern_matrix)
Returns 1 or 0 to indicate whether the spatial relationship specified by pattern_matrix exists between g1 and g2. Returns –1 if the arguments are NULL. The pattern matrix is a string. Its specification will be noted here if this function is implemented.

(emphasis mine.)
]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-12145"><!-- &nbsp; --></abbr>
<p>Found in the <a href="http://dev.mysql.com/doc/refman/5.0/en/functions-that-test-spatial-relationships-between-geometries.html" title="MySQL :: MySQL 5.0 Reference Manual :: 18.5.6 Functions That Test Spatial Relationships Between Geometries">MySQL 5.0 Reference Manual</a>:</p>
<ul>
<li>Related(g1,g2,pattern_matrix)<br />
Returns 1 or 0 to indicate whether the spatial relationship specified by pattern_matrix exists between g1 and g2. Returns –1 if the arguments are NULL. The pattern matrix is a string. <strong>Its specification will be noted here if this function is implemented</strong>.</li>
</ul>
<p>(emphasis mine.)</p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/12145/mysql-documentation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>JSON on RHEL &amp; PHP 5.1.6</title>
		<link>http://maisonbisson.com/blog/post/12137/json-rhel-centos-php-516/</link>
		<comments>http://maisonbisson.com/blog/post/12137/json-rhel-centos-php-516/#comments</comments>
		<pubDate>Wed, 28 May 2008 14:12:28 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[install]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[red hat]]></category>
		<category><![CDATA[rhel]]></category>
		<category><![CDATA[system administration]]></category>
		<category><![CDATA[yum]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/blog/?p=12137</guid>
		<description><![CDATA[
Stuck with PHP 5.1.6 on RHEL or even CentOS (and a sysadmin who insists on using packages)? Need JSON? I did. The solution is easy:
yum install php-devel
pecl install json
The pecl install failed when it hit an 8MB memory limit, and I was clueless about how to fix it until I learned that the pecl installer [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-12137"><!-- &nbsp; --></abbr>
<p>Stuck with PHP 5.1.6 on RHEL or even CentOS (and a sysadmin who insists on using packages)? Need JSON? I did. The solution is easy:</p>
<p><code>yum install php-devel<br />
pecl install json</code></p>
<p>The pecl install failed when it hit an 8MB memory limit, and I was clueless about how to fix it until I learned that the pecl installer ignores the <code>php.ini</code>. Turns out the best solution is to use the pear installer (which does follow <code>php.ini</code> settings):</p>
<p><code>pear install pecl/json</code></p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/12137/json-rhel-centos-php-516/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>More bsuite Hacking</title>
		<link>http://maisonbisson.com/blog/post/11248/more-bsuite-hacking/</link>
		<comments>http://maisonbisson.com/blog/post/11248/more-bsuite-hacking/#comments</comments>
		<pubDate>Wed, 05 Apr 2006 16:41:13 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[bstat]]></category>
		<category><![CDATA[bsuite]]></category>
		<category><![CDATA[Chow Kah Soon]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[KahSoon.com]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[optimization]]></category>
		<category><![CDATA[update]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/blog/post/11248/</guid>
		<description><![CDATA[
Update: bugfix release b2v6 available.
Some conversations with Chow Kah Soon, who&#8217;s site is  full of diversions from work , finally convinced encouraged me to solve some small problems that were giving him big trouble. Chow Kah Soon is in the lucky, but rare, position of having over 20,000 unique daily visitors to his site, [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-11248"><!-- &nbsp; --></abbr>
<p><strong>Update:</strong> <a href="http://maisonbisson.com/blog/post/11390/">bugfix release b2v6 available</a>.</p>
<p>Some conversations with Chow Kah Soon, who&#8217;s site is <a href="http://www.kahsoon.com/" title="Addicting Games Funny Junk Video Clips - Kahsoon.com"> full of diversions from work </a>, finally <strike>convinced</strike> encouraged me to solve some small problems that were giving him big trouble. Chow Kah Soon is in the lucky, but rare, position of having over 20,000 unique daily visitors to his site, so he&#8217;s sort of my designated stress-tester.</p>
<p>After looking at the logs he shared with me, the table structure, and the queries in bsuite, it was pretty clear that I needed to make some changes to the indexes.</p>
<p>Optimizing the indexes was easy, but how can I make bsuite update those indexes on existing installs? That&#8217;s where <a href="http://codex.wordpress.org/Creating_Tables_with_Plugins">these docs</a> explaining WordPress&#8217; rather unique <a href="http://codex.wordpress.org/Creating_Tables_with_Plugins#Creating_and_Updating_the_Table">dbDelta</a> function come in:</p>
<blockquote><p>Instead of using a normal $wpdb query to make our table, there is a special function in WordPress that we&#8217;ll use that can create a table if it isn&#8217;t there, or change the structure if it doesn&#8217;t match the current table. This will come in very handy if we ever need to make changes to the MySQL structure in the future.</p></blockquote>
<p>The function&#8217;s a little finicky, and it took me a couple minutes to realize that it was tripping up on the backtick quotes (`) I had wrapped around my table and field names. But with that out of the way, it solves the big problem of how to easily add indexes to existing tables. What it doesn&#8217;t solve, sadly, is how to delete existing indexes that aren&#8217;t in the new table definition.</p>
<p>With the dbDelta function implemented, I also finally got around to implementing an auto-install hook that creates or re-configs the tables upon plugin activation. Here&#8217;s the <a href="http://codex.wordpress.org/Creating_Tables_with_Plugins#Calling_the_function">example from the docs</a>:</p>
<blockquote><p><code>add_action('activate_pluginurl','jal_install');</code></p></blockquote>
<p>But I had to Google for <a href="http://wordpress.org/support/topic/65500">this support forum post</a> to <a href="http://timvw.madoka.be/?p=535">understand</a> what the “pluginurl” should be.</p>
<blockquote><p>&#8230;you simply have to use the path of your plugin relative to /wp-content/plugins. Eg: you have a plugin in /wp-content/plugins/wp-spamfilter/wp-spamfilter.php then you have to call add_action as following:</p>
<p><code>add_action(‘activate_wp-spamfilter/wp-spamfilter.php’, ’somefunction’);</code></p></blockquote>
<p>Yes, all of these updates will be released soon. I promise.</p>
<p><tags>bstat, bsuite, Chow Kah Soon, documentation, KahSoon.com, mysql, optimization, update, wordpress</tags></p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/11248/more-bsuite-hacking/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Involvement, Inclusion, Collaboration</title>
		<link>http://maisonbisson.com/blog/post/11221/involvement-inclusion-collaboration/</link>
		<comments>http://maisonbisson.com/blog/post/11221/involvement-inclusion-collaboration/#comments</comments>
		<pubDate>Mon, 27 Mar 2006 17:12:31 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Libraries & Networked Information]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[collaboration]]></category>
		<category><![CDATA[commons]]></category>
		<category><![CDATA[community]]></category>
		<category><![CDATA[conversation]]></category>
		<category><![CDATA[decision making]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[inclusion]]></category>
		<category><![CDATA[involvement]]></category>
		<category><![CDATA[jeff nolan]]></category>
		<category><![CDATA[pete caputa]]></category>
		<category><![CDATA[promotion]]></category>
		<category><![CDATA[social calendaring]]></category>
		<category><![CDATA[social software]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/blog/post/11221/</guid>
		<description><![CDATA[<a href="http://worcester.typepad.com/pc4media" title="peter caputa">Peter Caputa</a> dropped a comment on <a href="http://jeffnolan.com/wp/2006/03/02/utr-zvents/" title="UTR - Zvents">Jeff Nolan</a>'s post about <a href="http://www.zvents.com/" title="Zvents - Main Page">Zvents</a>. The discussion was about how online event/calendar aggregators did business in a world where everything is rather thinly distributed. Part of the problem is answering how do you get people to contribute content -- post their events -- to a site that has little traffic, and how do you build traffic without content? The suggestion is that you have editorial staff scouring for content to build the database until reader contributions can catch up, and that's where Peter comes in, suggesting that content and traffic aren't where the value and excitement are: it's the opportunity to involve fans in the event planning and marketing process.]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-11221"><!-- &nbsp; --></abbr>
<p><a href="http://worcester.typepad.com/pc4media" title="peter caputa">Peter Caputa</a> dropped a comment on <a href="http://jeffnolan.com/wp/2006/03/02/utr-zvents/" title="UTR - Zvents">Jeff Nolan</a>&#8217;s post about <a href="http://www.zvents.com/" title="Zvents - Main Page">Zvents</a>. The discussion was about how online event/calendar aggregators did business in a world where everything is rather thinly distributed. Part of the problem is answering how do you get people to contribute content &#8212; post their events &#8212; to a site that has little traffic, and how do you build traffic without content? The suggestion is that you have editorial staff scouring for content to build the database until reader contributions can catch up, and that&#8217;s where Peter comes in, suggesting that content and traffic aren&#8217;t where the value and excitement are:</p>
<blockquote><p>At the end of the day, though, we need to bring the people that plan events together with the people that attend them, so that the planning happens together. Pulling massive amounts of data together and getting eyeballs doesn’t help event planners. <strong>What event planners need are tools that help them engage the attendees in the decision making process, promotion process and the documentation process of events.</strong> That&#8217;s what we aim to do.</p></blockquote>
<p>We&#8217;ve been talking about social calendaring, but Peter&#8217;s comments obviously address a much larger concept, one that suggests the web really is <a href="http://maisonbisson.com/blog/post/11100/">turning things upside down</a>. Now we&#8217;ve heard it from a dot-commer. We&#8217;ve heard it from the <a href="http://maisonbisson.com/blog/post/10953/" title="Internet, Interactivity, &#038; Youth « MaisonBisson.com">Pew Internet Project study on teens</a>. And we&#8217;ve heard it from <a href="http://www.theshiftedlibrarian.com/archives/2005/11/07/digital_utes.html" title="The Shifted Librarian: Digital Utes">Jenny Levine</a> when she talks about the “4Cs” of “conversation, community, commons, and collaboration.”</p>
<p><tags>collaboration, commons, community, conversation, decision making, documentation, inclusion, involvement, jeff nolan, pete caputa, promotion, social calendaring, social software</tags></p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/11221/involvement-inclusion-collaboration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Using XML In PHP5</title>
		<link>http://maisonbisson.com/blog/post/10901/php5-xml/</link>
		<comments>http://maisonbisson.com/blog/post/10901/php5-xml/#comments</comments>
		<pubDate>Tue, 22 Nov 2005 17:42:09 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[cdata]]></category>
		<category><![CDATA[docs]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php5]]></category>
		<category><![CDATA[simplexml]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[xml server]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/blog/?p=10901</guid>
		<description><![CDATA[
Everybody likes documentation. The Zend folks posted this overview and SimpleXML introduction The O&#8217;Reilly folks at ONLamp offered this guide to using SimpleXML. Of course, there&#8217;s always the SimpleXML docs at PHP.net.
Two problems: I haven&#8217;t encountered CDATA in my XML yet, but I do hope to develop a better solution than offered here when I [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-10901"><!-- &nbsp; --></abbr>
<p>Everybody likes documentation. The <a href="http://www.zend.com/">Zend folks</a> posted this <a href="http://www.zend.com/php5/articles/php5-xmlphp.php" title="Zend Technologies - PHP 5 In Depth - XML in PHP 5 - What's New?">overview</a> and <a href="http://www.zend.com/php5/articles/php5-simplexml.php" title="Zend Technologies - PHP 5 In Depth - SimpleXML">SimpleXML introduction</a> The O&#8217;Reilly folks at ONLamp offered this <a href="http://www.onlamp.com/pub/a/php/2004/01/15/simplexml.html" title="ONLamp.com: Using PHP 5's SimpleXML">guide to using SimpleXML</a>. Of course, there&#8217;s always the <a href="http://us2.php.net/simplexml" title="PHP: SimpleXML functions - Manual">SimpleXML docs</a> at PHP.net.</p>
<p>Two problems: I haven&#8217;t encountered <a href="http://changelog.ca/log/2005/06/14/php-simplexml-cdata-problem--and-my-solution" title="PHP SimpleXML CDATA Problem... and My Solution | By Charles Iliya Krempeaux, B.Sc. | ChangeLog.ca">CDATA in my XML</a> yet, but I do hope to develop a better solution than offered <a href="http://changelog.ca/log/2005/06/14/php-simplexml-cdata-problem--and-my-solution">here</a> when I do. The other is that SimpleXML chokes on illegal characters, a unfortunately common occurrence in documents coming from <a href="http://libdev.plymouth.edu/post/5">III&#8217;s XML Server</a>.<br />
<!-- technorati tags start -->
<p style="text-align:right;font-size:10px;">tags: <a href="http://www.technorati.com/tag/cdata" rel="tag">cdata</a>, <a href="http://www.technorati.com/tag/docs" rel="tag">docs</a>, <a href="http://www.technorati.com/tag/documentation" rel="tag">documentation</a>, <a href="http://www.technorati.com/tag/php" rel="tag">php</a>, <a href="http://www.technorati.com/tag/php5" rel="tag">php5</a>, <a href="http://www.technorati.com/tag/simplexml" rel="tag">simplexml</a>, <a href="http://www.technorati.com/tag/xml server" rel="tag">xml server</a>, <a href="http://www.technorati.com/tag/xml" rel="tag">xml</a></p>
<p><!-- technorati tags end --></p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/10901/php5-xml/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Helpful Pages In The Wordpress Codex</title>
		<link>http://maisonbisson.com/blog/post/10832/wordpress-codex/</link>
		<comments>http://maisonbisson.com/blog/post/10832/wordpress-codex/#comments</comments>
		<pubDate>Mon, 26 Sep 2005 00:18:00 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Blink]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress codex]]></category>
		<category><![CDATA[wordpress development]]></category>
		<category><![CDATA[wordpress documentation]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/blog/?p=10832</guid>
		<description><![CDATA[
The following pages from the WordPress Codex were surprisingly helpful recently:

Creating a Static Front Page « WordPress Codex
Creating Tables with Plugins « WordPress Codex
Alphabetizing Posts « WordPress Codex


tags: documentation, wordpress, wordpress codex, wordpress development, wordpress documentation

]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-10832"><!-- &nbsp; --></abbr>
<p>The following pages from the <a href="http://wordpress.org/">WordPress</a> <a href="http://codex.wordpress.org/">Codex</a> were surprisingly helpful recently:</p>
<ul>
<li><a href="http://codex.wordpress.org/Creating_a_Static_Front_Page" title="Creating a Static Front Page « WordPress Codex">Creating a Static Front Page « WordPress Codex</a></li>
<li><a href="http://codex.wordpress.org/Creating_Tables_with_Plugins" title="Creating Tables with Plugins « WordPress Codex">Creating Tables with Plugins « WordPress Codex</a></li>
<li><a href="http://codex.wordpress.org/Alphabetizing_Posts" title="Alphabetizing Posts « WordPress Codex">Alphabetizing Posts « WordPress Codex</a></li>
</ul>
<p><!-- technorati tags start -->
<p style="text-align:right;font-size:10px;">tags: <a href="http://www.technorati.com/tag/documentation" rel="tag">documentation</a>, <a href="http://www.technorati.com/tag/wordpress" rel="tag">wordpress</a>, <a href="http://www.technorati.com/tag/wordpress codex" rel="tag">wordpress codex</a>, <a href="http://www.technorati.com/tag/wordpress development" rel="tag">wordpress development</a>, <a href="http://www.technorati.com/tag/wordpress documentation" rel="tag">wordpress documentation</a></p>
<p><!-- technorati tags end --></p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/10832/wordpress-codex/feed/</wfw:commentRss>
		<slash:comments>36</slash:comments>
		</item>
		<item>
		<title>Doing Relevance Ranked Full-Text Searches In MySQL</title>
		<link>http://maisonbisson.com/blog/post/10752/making-mysql-do-relevance-ranked-full-text-searches/</link>
		<comments>http://maisonbisson.com/blog/post/10752/making-mysql-do-relevance-ranked-full-text-searches/#comments</comments>
		<pubDate>Tue, 06 Sep 2005 11:56:33 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[boolean search]]></category>
		<category><![CDATA[boolean searches]]></category>
		<category><![CDATA[boolean searching]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[db]]></category>
		<category><![CDATA[docs]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[full text]]></category>
		<category><![CDATA[full text index]]></category>
		<category><![CDATA[full text search]]></category>
		<category><![CDATA[full text searching]]></category>
		<category><![CDATA[fulltext]]></category>
		<category><![CDATA[fulltext search]]></category>
		<category><![CDATA[keywords]]></category>
		<category><![CDATA[match()]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[rank]]></category>
		<category><![CDATA[relevance]]></category>
		<category><![CDATA[relevance rank]]></category>
		<category><![CDATA[relevance ranked]]></category>
		<category><![CDATA[relevance ranking]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[search full text]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/blog/?p=10752</guid>
		<description><![CDATA[
I&#8217;m going out on a limb to say MySQL&#8217;s full-text indexing and searching features are underused. They appeared in MySQL 3.23.23 (most people are using 4.x, and 5 is in development), but it&#8217;s been news to most of the people I know.
Here&#8217;s the deal, the MATCH() function can search a full-text index for a string [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-10752"><!-- &nbsp; --></abbr>
<p>I&#8217;m going out on a limb to say MySQL&#8217;s full-text indexing and searching features are underused. They appeared in MySQL 3.23.23 (most people are using 4.x, and 5 is in development), but it&#8217;s been news to most of the people I know.</p>
<p>Here&#8217;s the deal, the <a href="http://dev.mysql.com/doc/mysql/en/fulltext-search.html">MATCH()</a> function can search a full-text index for a string of text (one or more words) and return relevance-ranked results. It&#8217;s at the core of the list of <a href="http://maisonbisson.com/blog/post/10770/">related links</a> at the bottom of every post here.</p>
<p>For that query, I put all the tag names into a single variable that might look like this:</p>
<blockquote><p>$keywords = “mysql database php select full-text search full-text searching docs documentation”</p></blockquote>
<p>Then I do a select that looks something like this:</p>
<blockquote><p>SELECT * FROM wp_posts WHERE MATCH(post_title,post_content) AGAINST(&#8217;$keywords&#8217;);</p></blockquote>
<p>The <a href="http://dev.mysql.com/doc/mysql/en/fulltext-search.html">docs</a> give a lot more detail, including how to do <a href="http://dev.mysql.com/doc/mysql/en/fulltext-boolean.html">boolean searches</a>.</p>
<p><!-- technorati tags start -->
<p style="text-align:right;font-size:10px;">tags: <a href="http://www.technorati.com/tag/boolean search" rel="tag">boolean search</a>, <a href="http://www.technorati.com/tag/boolean searches" rel="tag">boolean searches</a>, <a href="http://www.technorati.com/tag/boolean searching" rel="tag">boolean searching</a>, <a href="http://www.technorati.com/tag/database" rel="tag">database</a>, <a href="http://www.technorati.com/tag/db" rel="tag">db</a>, <a href="http://www.technorati.com/tag/docs" rel="tag">docs</a>, <a href="http://www.technorati.com/tag/documentation" rel="tag">documentation</a>, <a href="http://www.technorati.com/tag/full text" rel="tag">full text</a>, <a href="http://www.technorati.com/tag/full text index" rel="tag">full text index</a>, <a href="http://www.technorati.com/tag/full text search" rel="tag">full text search</a>, <a href="http://www.technorati.com/tag/full text searching" rel="tag">full text searching</a>, <a href="http://www.technorati.com/tag/fulltext" rel="tag">fulltext</a>, <a href="http://www.technorati.com/tag/fulltext search" rel="tag">fulltext search</a>, <a href="http://www.technorati.com/tag/keywords" rel="tag">keywords</a>, <a href="http://www.technorati.com/tag/match()" rel="tag">match()</a>, <a href="http://www.technorati.com/tag/mysql" rel="tag">mysql</a>, <a href="http://www.technorati.com/tag/rank" rel="tag">rank</a>, <a href="http://www.technorati.com/tag/relevance" rel="tag">relevance</a>, <a href="http://www.technorati.com/tag/relevance rank" rel="tag">relevance rank</a>, <a href="http://www.technorati.com/tag/relevance ranked" rel="tag">relevance ranked</a>, <a href="http://www.technorati.com/tag/relevance ranking" rel="tag">relevance ranking</a>, <a href="http://www.technorati.com/tag/search" rel="tag">search</a>, <a href="http://www.technorati.com/tag/search full text" rel="tag">search full text</a></p>
<p><!-- technorati tags end --></p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/10752/making-mysql-do-relevance-ranked-full-text-searches/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>PHP Developer Resources</title>
		<link>http://maisonbisson.com/blog/post/10712/extra-links/</link>
		<comments>http://maisonbisson.com/blog/post/10712/extra-links/#comments</comments>
		<pubDate>Tue, 16 Aug 2005 10:39:03 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Blink]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[docs]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[web scripting]]></category>

		<guid isPermaLink="false">http://www.maisonbisson.com/blog/?p=10712</guid>
		<description><![CDATA[
Somebody asked for some links to get started with PHP. Of course I lead them to the PHP.net official site, where the documentation is some of the best I&#8217;ve seen for any product.
I also suggested PHPDeveloper.org and PHPFreaks.com, though the truth is I usually Google any questions I have that the official docs don&#8217;t answer. [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-10712"><!-- &nbsp; --></abbr>
<p>Somebody asked for some links to get started with PHP. Of course I lead them to the <a href="http://www.php.net/" title="PHP: Hypertext Preprocessor">PHP.net</a> official site, where the documentation is some of the best I&#8217;ve seen for any product.</p>
<p>I also suggested <a href="http://www.phpdeveloper.org/" title="PHPDeveloper.org: PHP News, Views, and Community">PHPDeveloper.org</a> and <a href="http://www.phpfreaks.com/" title="PHP Help: PHP Freaks!">PHPFreaks.com</a>, though the truth is I usually Google any questions I have that the official docs don&#8217;t answer. Still, I&#8217;ve found some good info at both of those.</p>
<p>Finally, the <a href="http://www.ilovejackdaniels.com/php/php-cheat-sheet/" title="PHP Cheat Sheet - PHP - ILoveJackDaniels.com">PHP Cheat Sheet</a> at ILoveJackDaniels.com is pretty nice to have around (<a href="http://www.maisonbisson.com/blog/post/10715/">cheat sheets mentioned previously</a>).<br />
<!-- technorati tags start -->
<p style="text-align:right;font-size:10px;">tags: <a href="http://technorati.com/tag/docs" rel="tag">docs</a>, <a href="http://technorati.com/tag/documentation" rel="tag">documentation</a>, <a href="http://technorati.com/tag/php" rel="tag">php</a>, <a href="http://technorati.com/tag/web scripting" rel="tag">web scripting</a></p>
<p><!-- technorati tags end --></p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/10712/extra-links/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Be Better Dork: Command Line Stuff</title>
		<link>http://maisonbisson.com/blog/post/12591/be-better-dork-command-line-stuff/</link>
		<comments>http://maisonbisson.com/blog/post/12591/be-better-dork-command-line-stuff/#comments</comments>
		<pubDate>Wed, 15 Sep 2004 00:09:15 +0000</pubDate>
		<dc:creator>Casey</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[system administration]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/?p=12591</guid>
		<description><![CDATA[
Be geeky and look at the Apache modules:

/usr/sbin/httpd -l
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c

Set your path:

PATH=$PATH:/usr/sbin
export PATH

]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-12591"><!-- &nbsp; --></abbr>
<p>Be geeky and look at the Apache modules:</p>

<div class="wp_syntax"><div class="code"><pre class="csh" style="font-family:monospace;">/usr/sbin/httpd -l
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c</pre></div></div>

<p>Set your path:</p>

<div class="wp_syntax"><div class="code"><pre class="csh" style="font-family:monospace;">PATH=$PATH:/usr/sbin
export PATH</pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/12591/be-better-dork-command-line-stuff/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>