<?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; fix</title>
	<atom:link href="http://maisonbisson.com/blog/post/tag/fix/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.5.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Fixing Batcache to Send The Correct Content-Type Header</title>
		<link>http://maisonbisson.com/blog/post/13773/fixing-batcache-to-send-the-correct-content-type-header/</link>
		<comments>http://maisonbisson.com/blog/post/13773/fixing-batcache-to-send-the-correct-content-type-header/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 17:19:12 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[batcache]]></category>
		<category><![CDATA[caching]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[memcached]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[workaround]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/?p=13773</guid>
		<description><![CDATA[
I&#8217;m a fan of Batcache, the Memcached-based WordPress full-page cache solution, but I&#8217;ve discovered that it ignores the content-type header set when the page is initially generated and re-sends all content with content-type: text/html. I posted a note about this at the WordPress support forums, but then I realized what the problem was: apache_response_headers() doesn&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-13773"><!-- &nbsp; --></abbr>
<p>I&#8217;m a fan of <a href="http://wordpress.org/extend/plugins/batcache/" title="WordPress › Batcache « WordPress Plugins">Batcache</a>, the Memcached-based WordPress full-page cache solution, but I&#8217;ve discovered that it ignores the <code>content-type</code> header set when the page is initially generated and re-sends all content with <code>content-type: text/html</code>. I <a href="http://wordpress.org/support/topic/263161" title="WordPress › Support » Batcache ignores content type header, sends everything as text/html">posted a note about this</a> at the WordPress support forums, but then I realized what the problem was: <a href="http://php.net/apache_response_headers" title="PHP: apache_response_headers - Manual"><code>apache_response_headers()</code></a> doesn&#8217;t return the content type, but <a href="http://php.net/headers_list" title="PHP: headers_list - Manual"><code>headers_list()</code></a> does.</p>
<p>The solution is to replace <code>apache_response_headers()</code> with <code>headers_list()</code> <a href="http://plugins.trac.wordpress.org/browser/batcache/trunk/advanced-cache.php#L93" title="/batcache/trunk/advanced-cache.php – WordPress Plugin Repository">in the code</a>, though <code>headers_list()</code> is PHP 5+ only, so it might be a while before we see a change like this committed. Still, I&#8217;ll shamelessly tag <a href="http://andy.wordpress.com/" title="Andy Skelton">Andy Skelton</a> (Batcache&#8217;s author) on it.</p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/13773/fixing-batcache-to-send-the-correct-content-type-header/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Many Eyes, Bugs Being Shallow, All That</title>
		<link>http://maisonbisson.com/blog/post/12134/many-eyes-bugs-being-shallow-all-that/</link>
		<comments>http://maisonbisson.com/blog/post/12134/many-eyes-bugs-being-shallow-all-that/#comments</comments>
		<pubDate>Tue, 20 May 2008 08:45:34 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[bugfix]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[permalinks]]></category>
		<category><![CDATA[register_taxonomy()]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/blog/?p=12134</guid>
		<description><![CDATA[
WordPress 2.5.1 added a really powerful feature to register_taxonomy(): automatic registration of permalinks and query vars to match the taxonomy. Well, theoretically it added that feature. It wasn&#8217;t working in practice. After some searching yesterday and today, I finally found the bug and worked up a fix. I made a diff and set off to [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-12134"><!-- &nbsp; --></abbr>
<p>WordPress 2.5.1 added a really powerful feature to <code>register_taxonomy()</code>: automatic registration of permalinks and query vars to match the taxonomy. Well, theoretically it added that feature. It wasn&#8217;t working in practice. After some searching yesterday and today, I finally found the bug and worked up a fix. I made a diff and set off to open a ticket in Trac.</p>
<p>On the one hand I&#8217;m glad I searched first, because it turns out that a ticket on the very same issue was <a href="http://trac.wordpress.org/ticket/6981">opened on May 16th</a> and it already <a href="http://trac.wordpress.org/changeset/7940">has a fix</a>. On the other hand, it&#8217;s kind of a kicker to have lost my chance at reporting the bug and submitting a fix by only a few days.</p>
<p>The fix is committed for WordPress 2.6, but I&#8217;ve done a workaround for 2.5.1 (workarounds are easier to manage than core code changes). I&#8217;d say I wish I searched Trac first, but I wouldn&#8217;t have known what to search for if I didn&#8217;t figure out how to fix the bug first. And I guess I really can&#8217;t complain about <a href="http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ar01s04.html">a community that quickly finds and fixes bugs</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/12134/many-eyes-bugs-being-shallow-all-that/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>WordPress Strips Classnames, And How To Fix It</title>
		<link>http://maisonbisson.com/blog/post/11674/wordpress-strips-classnames-and-how-to-fix-it/</link>
		<comments>http://maisonbisson.com/blog/post/11674/wordpress-strips-classnames-and-how-to-fix-it/#comments</comments>
		<pubDate>Tue, 15 May 2007 16:29:29 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[class names]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[kses]]></category>
		<category><![CDATA[semantic markup]]></category>
		<category><![CDATA[strip tags]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/blog/post/11674/#wordpress-strips-classnames-and-how-to-fix-it</guid>
		<description><![CDATA[
WordPress 2.0 introduced some sophisticated HTML inspecting and de-linting courtesy of kses.
kses is an HTML/XHTML filter written in PHP. It removes all unwanted HTML elements and attributes, and it also does several checks on attribute values. kses can be used to avoid Cross-Site Scripting (XSS), Buffer Overflows and Denial of Service attacks.
It&#8217;s a good addition, [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-11674"><!-- &nbsp; --></abbr>
<p>WordPress 2.0 introduced some sophisticated HTML inspecting and de-linting courtesy of <a href="http://sourceforge.net/projects/kses/">kses</a>.</p>
<blockquote><p>kses is an HTML/XHTML filter written in PHP. It removes all unwanted HTML elements and attributes, and it also does several checks on attribute values. kses can be used to avoid Cross-Site Scripting (XSS), Buffer Overflows and Denial of Service attacks.</p></blockquote>
<p>It&#8217;s a good addition, but it was also removing the class names from some of the elements of my posts. The result is that the following structured XHTML was coming through without any structure.</p>
<p><code>&lt;ul class=“fullrecord”&gt;<br />
&lt;li class=“title”&gt;&lt;h3&gt;Title&lt;/h3&gt;<br />
&lt;ul&gt;<br />
&lt;li&gt;The Effects Of A Modified Ball In Developing The Volleyball Pass And Set For High School Students&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;/li&gt;<br />
&lt;li class=“attribution”&gt;...</code></p>
<p>Without the semantic value of the classnames, the XHTML loses all the <a href="http://maisonbisson.com/blog/post/10729/">microformat</a><a href="http://microformats.org/">ting</a>, making it not only less re-usable/remixable but also harder to style.</p>
<p><code>&lt;ul&gt;<br />
&lt;li&gt;&lt;h3&gt;Title&lt;/h3&gt;<br />
&lt;ul&gt;<br />
&lt;li&gt;The Effects Of A Modified Ball In Developing The Volleyball Pass And Set For High School Students&lt;/li&gt;<br />
&lt;/ul&gt;<br />
&lt;/li&gt;<br />
&lt;li&gt;...</code></p>
<p>A <a href="http://wordpress.org/support/topic/53647" title="WordPress › Support » WP 2.0 tag and attribute stripping">WordPress form post</a> pointed me to the <code>includes/kses.php</code> file, where the <code>$allowedposttags</code> array set the standards for the acceptable tags and attributes. It begins like this:</p>
<p><code>$allowedposttags = array ('address' =&gt; array (), 'a' =&gt; array ('href' =&gt; array (), 'title' =&gt; array (), 'rel' =&gt; array ()...</code></p>
<p>It&#8217;s a hack, but changing the entries for some of the tags got me through.</p>
<p><code>'ul' =&gt; array ('class' =&gt; array())</code></p>
<p><tags>WordPress, strip tags, kses, code, fix, hack, class names, semantic markup</tags></p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/11674/wordpress-strips-classnames-and-how-to-fix-it/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>bsuite Bug Fixes (release b2v7)</title>
		<link>http://maisonbisson.com/blog/bsuite/</link>
		<comments>http://maisonbisson.com/blog/bsuite/#comments</comments>
		<pubDate>Mon, 16 Apr 2007 13:14:17 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[beta]]></category>
		<category><![CDATA[blog pulse]]></category>
		<category><![CDATA[bstat]]></category>
		<category><![CDATA[bstats]]></category>
		<category><![CDATA[bsuggestive]]></category>
		<category><![CDATA[bsuite]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[bug fix]]></category>
		<category><![CDATA[bug fixes]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[fixes]]></category>
		<category><![CDATA[graph]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[pulse]]></category>
		<category><![CDATA[recommendation system]]></category>
		<category><![CDATA[recommendations]]></category>
		<category><![CDATA[recommender]]></category>
		<category><![CDATA[recommending]]></category>
		<category><![CDATA[referrer]]></category>
		<category><![CDATA[related content]]></category>
		<category><![CDATA[search engine highlighting]]></category>
		<category><![CDATA[search term]]></category>
		<category><![CDATA[search term highlighting]]></category>
		<category><![CDATA[sehl]]></category>
		<category><![CDATA[stable]]></category>
		<category><![CDATA[statistics]]></category>
		<category><![CDATA[stats]]></category>
		<category><![CDATA[stats tracking]]></category>
		<category><![CDATA[tag]]></category>
		<category><![CDATA[tag management]]></category>
		<category><![CDATA[tag relationships]]></category>
		<category><![CDATA[tags]]></category>
		<category><![CDATA[usage]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress plugin]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/blog/post/11613/#bsuite-bug-fixes-release-b2v7</guid>
		<description><![CDATA[
Work on bsuite3 is progressing well, thanks to help from Zach and Matt, who are collaborating with me on completely rearchitecting how stats are collected and reported. This, however, is not bs3. It&#8217;s a transitional release intended to fix some bugs in b2 and make upgrading easier. This upgrade is recommended for all current bsuite [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-11613"><!-- &nbsp; --></abbr>
<div class="innerindex">
<h3>Contents:</h3>
<ol>
<li><a href="http://maisonbisson.com/blog/bsuite/#11613_bsuite-features_1">bsuite Features</a></li>
<li><a href="http://maisonbisson.com/blog/bsuite/#11613_fixedchangedadded_1">Fixed/Changed/Added</a></li>
<li><a href="http://maisonbisson.com/blog/bsuite/#11613_installation_1">Installation</a>
<ol>
<li><a href="http://maisonbisson.com/blog/bsuite/#11613_upgrading_1">Upgrading</a></li>
</ol>
</li>
<li><a href="http://maisonbisson.com/blog/bsuite/#11613_commands_1">Commands</a>
<ol>
<li><a href="http://maisonbisson.com/blog/bsuite/#11613_clear-bsuite_speedca_1">Clear bsuite_speedcache</a></li>
<li><a href="http://maisonbisson.com/blog/bsuite/#11613_rebuild-bsuite-tag-i_1">Rebuild bsuite tag index</a></li>
</ol>
</li>
<li><a href="http://maisonbisson.com/blog/bsuite/#11613_options_1">Options</a>
<ol>
<li><a href="http://maisonbisson.com/blog/bsuite/#11613_minimum-userlevel-to_1">Minimum userlevel to view bsuite reports</a></li>
<li><a href="http://maisonbisson.com/blog/bsuite/#11613_output-default-css_1">Output default CSS</a></li>
<li><a href="http://maisonbisson.com/blog/bsuite/#11613_default-pulse-graph-_1">Default pulse graph style</a></li>
<li><a href="http://maisonbisson.com/blog/bsuite/#11613_suggest-related-entr_1">Suggest related entries in post</a></li>
<li><a href="http://maisonbisson.com/blog/bsuite/#11613_tag-input-format_1">Tag input format</a></li>
<li><a href="http://maisonbisson.com/blog/bsuite/#11613_highlight-search-wor_1">Highlight search words and offer search help</a></li>
<li><a href="http://maisonbisson.com/blog/bsuite/#11613_filter-incoming-sear_1">Filter incoming search terms using comment moderation and blacklist words</a></li>
<li><a href="http://maisonbisson.com/blog/bsuite/#11613_ignore-hits-from-reg_1">Ignore hits from registered users at or above userlevel</a></li>
<li><a href="http://maisonbisson.com/blog/bsuite/#11613_ignore-hits-from-the_1">Ignore hits from these IP numbers</a></li>
</ol>
</li>
<li><a href="http://maisonbisson.com/blog/bsuite/#11613_tag-support_1">Tag Support</a></li>
<li><a href="http://maisonbisson.com/blog/bsuite/#11613_using-bsuite-functio_1">Using bsuite Functions</a></li>
<li><a href="http://maisonbisson.com/blog/bsuite/#11613_known-bugs_1">Known Bugs</a></li>
<li><a href="http://maisonbisson.com/blog/bsuite/#11613_money-grubbing_1">Money Grubbing</a></li>
</ol>
</div>
<p>Work on bsuite3 is progressing well, thanks to help from <a href="http://nosheep.net/">Zach</a> and <a href="http://borkweb.com/">Matt</a>, who are collaborating with me on completely rearchitecting how stats are collected and reported. This, however, is not bs3. It&#8217;s a transitional release intended to fix some bugs in b2 and make upgrading easier. This upgrade is recommended for all current bsuite users and new users.</p>
<h1 id="11613_bsuite-features_1" >bsuite Features</h1>
<ul>
<li>Tracks page loads (hits)</li>
<li>Tracks search terms used by visitors ariving at your site via search engines</li>
<li>Reports top-performing stories via a function that can be included in the sidebar</li>
<li>Reports recent comments via a function that can be included in the sidebar</li>
<li>Reports top search terms via a function that can be included in the sidebar</li>
<li>Outputs a pulse graph of activity on your site or specific stories</li>
<li>Lists related posts at the bottom of the current post’s content</li>
<li>Suggests posts that closely match the search criteria for visitors who arrive via search engines</li>
<li>Integrates <a href="http://maisonbisson.com/blog/post/10861/">bsuite_speedcache</a></li>
<li>Does some <a href="http://maisonbisson.com/blog/post/10922/">stuff with tags</a></li>
</ul>
<h1 id="11613_fixedchangedadded_1" >Fixed/Changed/Added</h1>
<ul>
<li>As mentioned above, a huge-but-invisible feature here is that this version includes some pieces that will make it easy to transition to the new plugin.</li>
<li>MySQL errors while creating the tables should now be fixed. It&#8217;s my shame that these have persisted so long.</li>
<li>The plugin now &#8220;rebuilds the tags table&#8221; as soon as you activate it. This is a good thing, but if you&#8217;ve got a huge number of posts (or a really short max execution time) it might cause a problem (please leave a comment if it does).</li>
<li>The related posts feature now works even if you aren&#8217;t tagging your posts. If there are no tags, the post&#8217;s title is used as a search string.</li>
<li>This list is probably incomplete and in some other way inaccurate. It’s not intentional, I’m just sloppy. Please leave comments with bug reports or corrections, I’ll do what I can to fix them.</li>
<li>Finally, I’m now hosting the download on a new server, so it won’t be subject to .Mac’s bandwidth consumption limits.</li>
</ul>
<p><span id="more-11613"></span></p>
<h1 id="11613_installation_1" >Installation</h1>
<ul>
<li>Download and unzip <a href="http://oz.plymouth.edu/~cbisson/projects/bsuite.zip">bsuite.zip</a></li>
<li>Place bsuite.php in you wp-content/plugins directory</li>
<li>Place spacer.gif in your wp-content directory</li>
<li>Log in to your WordPress <a href="http://codex.wordpress.org/Administration_Panels">admin panel</a> and <a href="http://codex.wordpress.org/Managing_Plugins#Plugin_management">activate the plugin</a>, then visit the new bsuite submenu of the <a href="http://codex.wordpress.org/Administration_Panels#Options_-_Configuration_Settings">options tab</a>. This will allow bsuite to create its database tables.</li>
<li>Stats collection will start automatically; you can see the results in the new bsuite Reports submenu of your Dashboard</li>
<li>Once installed, be sure to enable the options and consider customizing the look by adding the bsuite CSS to your theme’s CSS (<a href="http://oz.plymouth.edu/~cbisson/projects/bsuite.css">sample CSS here</a>).</li>
<li>In order to view the stats reports reports on your public pages, you’ll need to add the display functions to your pages.</li>
</ul>
<h2 id="11613_upgrading_1" >Upgrading</h2>
<ul>
<li>Upgrades from earlier versions of bsuite are easy, just replace the old <code>bsuite.php</code> file with the new one.</li>
<li>Don’t forget to visit the bsuite submenu of the <a href="http://codex.wordpress.org/Administration_Panels#Options_-_Configuration_Settings">options tab</a> so you can setup any new features.</li>
</ul>
<h1 id="11613_commands_1" >Commands</h1>
<p>The bsuite submenu of the options has a few command buttons:</p>
<ul>
<li>
<h2 id="11613_clear-bsuite_speedca_1" >Clear bsuite_speedcache</h2>
<p>The cache improves performance, but can sometimes get stale before its time. This command clears it.</li>
<li>
<h2 id="11613_rebuild-bsuite-tag-i_1" >Rebuild bsuite tag index</h2>
<p>bsuite maintains its tag index with every story edit. Use this command to bring old-content into the index or if you’ve edited the content in way WP doesn’t know about.</li>
</ul>
<h1 id="11613_options_1" >Options</h1>
<p>The bstat submenu of the options tab has a few configurable settings:</p>
<ul>
<li>
<h2 id="11613_minimum-userlevel-to_1" >Minimum userlevel to view bsuite reports</h2>
<p>The options are restricted to administrators, but you can choose who can view the reports.</li>
<li>
<h2 id="11613_output-default-css_1" >Output default CSS</h2>
<p>Some of the bsuite functions require CSS styles not found in the average style sheet. This will output default styles.</li>
<li>
<h2 id="11613_default-pulse-graph-_1" >Default pulse graph style</h2>
<p>This sets how values are interpolated in drawing the pulse graph. Experiment with the options to see how they work.</li>
<li>
<h2 id="11613_suggest-related-entr_1" >Suggest related entries in post</h2>
<p>This will insert a block of links at the tail of each (tagged) post’s content with links to related posts at your site.</li>
<li>
<h2 id="11613_tag-input-format_1" >Tag input format</h2>
<p>Name your style: square brackets or angle brackets / <code>&lt;tags></code> or <code>[tags]</code>.</li>
<li>
<h2 id="11613_highlight-search-wor_1" >Highlight search words and offer search help</h2>
<p>The first part of this should be obvious, but the real trick here is using those search words to offer other related content from your site to visitors. It works (and looks) a lot like the option above, but the suggestions only appear when search words are detected.</li>
<li>
<h2 id="11613_filter-incoming-sear_1" >Filter incoming search terms using comment moderation and blacklist words</h2>
<p>Referrer spam is as much of a problem as trackback spam. There are a few tricks in bstat to prevent the problem, but here’s one you can configure. Selecting this option tells bstat to not display search terms that contain words in your moderation list or blacklist.</li>
<li>
<h2 id="11613_ignore-hits-from-reg_1" >Ignore hits from registered users at or above userlevel</h2>
<p>No author wants to skew their stats just by poking around their own site.</li>
<li>
<h2 id="11613_ignore-hits-from-the_1" >Ignore hits from these IP numbers</h2>
<p>Sites with low traffic may find that activity by authors severely skews the stats tracking. Enter an IP address here to ignore it.</li>
</ul>
<h1 id="11613_tag-support_1" >Tag Support</h1>
<p>Until WordPress adopts a standardized way to manage tags, we’ll have to deal with things like this.</p>
<p>bsuite recognizes tags in three forms:</p>
<ul>
<li>Any link with a <a href="http://microformats.org/wiki/reltag"><code>rel=“tag”</code> attribute</a></li>
<li>Any number of single tags like this: <code>&lt;tag></code>tag name<code>&lt;/tag></code></li>
<li>A block of comma-delimited tags like this: <code>&lt;tags></code>WordPress, WordPress Plugin<code>&lt;/tags></code></li>
</ul>
<p>This appears to make it compatible with a number of existing tag management strategies now in use — including those used by <a href="http://ecto.kung-foo.tv/archives/001368.php">Ecto</a> and <a href="http://">SimpleTags</a>.</p>
<p>Tags are mapped to Technorati, but a future version will include an option to set other tag resolvers.</p>
<h1 id="11613_using-bsuite-functio_1" >Using bsuite Functions</h1>
<p>Function usage is unchanged from <a href="http://maisonbisson.com/blog/post/11390/">the last version</a>. Among the things at the top of the list for bs3: widgets.</p>
<h1 id="11613_known-bugs_1" >Known Bugs</h1>
<p>None yet, but I’m sure I’m forgetting something. Report what you find in the comments below.</p>
<h1 id="11613_money-grubbing_1" >Money Grubbing</h1>
<p>bsuite is <a href="http://www.gnu.org/copyleft/gpl.html">GPL-licensed</a> free software, but after some urging by friends, I&#8217;m opening the tip jar. If you use it and like it, let me know. And if you feel moved, leave a tip in the jar.</p>
<form action="https://checkout.google.com/cws/v2/Merchant/931882471552994/checkout" id="BB_BuyButtonForm" method="post" name="BB_BuyButtonForm">
<table cellpadding="5" cellspacing="0" width="1%">
<tr>
<td align="right" width="1%">
<select name="buyButtonCart">
                    <option value="PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxjaGVja291dC1zaG9wcGluZy1jYXJ0IHhtbG5zPSJodHRwOi8vY2hlY2tvdXQuZ29vZ2xlLmNvbS9zY2hlbWEvMiI+DQogIDxzaG9wcGluZy1jYXJ0Pg0KICAgIDxpdGVtcz4NCiAgICAgIDxpdGVtPg0KICAgICAgICA8cXVhbnRpdHk+MTwvcXVhbnRpdHk+DQogICAgICAgIDx1bml0LXByaWNlIGN1cnJlbmN5PSJVU0QiPjUuMDwvdW5pdC1wcmljZT4NCiAgICAgICAgPGl0ZW0tbmFtZT5Eb25hdGUgJDU8L2l0ZW0tbmFtZT4NCiAgICAgICAgPGl0ZW0tZGVzY3JpcHRpb24gLz4NCiAgICAgIDwvaXRlbT4NCiAgICA8L2l0ZW1zPg0KICA8L3Nob3BwaW5nLWNhcnQ+DQogIDxjaGVja291dC1mbG93LXN1cHBvcnQ+DQogICAgPG1lcmNoYW50LWNoZWNrb3V0LWZsb3ctc3VwcG9ydCAvPg0KICA8L2NoZWNrb3V0LWZsb3ctc3VwcG9ydD4NCjwvY2hlY2tvdXQtc2hvcHBpbmctY2FydD4NCg0K//separator///wH7cRg84KXJ5bs/p0xoxelqzYM=">&#x24;5.00 &#8211; Donate &#x24;5</option><br />
                    <option value="PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxjaGVja291dC1zaG9wcGluZy1jYXJ0IHhtbG5zPSJodHRwOi8vY2hlY2tvdXQuZ29vZ2xlLmNvbS9zY2hlbWEvMiI+DQogIDxzaG9wcGluZy1jYXJ0Pg0KICAgIDxpdGVtcz4NCiAgICAgIDxpdGVtPg0KICAgICAgICA8cXVhbnRpdHk+MTwvcXVhbnRpdHk+DQogICAgICAgIDx1bml0LXByaWNlIGN1cnJlbmN5PSJVU0QiPjEwLjA8L3VuaXQtcHJpY2U+DQogICAgICAgIDxpdGVtLW5hbWU+RG9uYXRlICQxMDwvaXRlbS1uYW1lPg0KICAgICAgICA8aXRlbS1kZXNjcmlwdGlvbiAvPg0KICAgICAgPC9pdGVtPg0KICAgIDwvaXRlbXM+DQogIDwvc2hvcHBpbmctY2FydD4NCiAgPGNoZWNrb3V0LWZsb3ctc3VwcG9ydD4NCiAgICA8bWVyY2hhbnQtY2hlY2tvdXQtZmxvdy1zdXBwb3J0IC8+DQogIDwvY2hlY2tvdXQtZmxvdy1zdXBwb3J0Pg0KPC9jaGVja291dC1zaG9wcGluZy1jYXJ0Pg0KDQo=//separator//UfRhTmuN9JxZ/cYOQNH96EW0+xM=">&#x24;10.00 &#8211; Donate &#x24;10</option><br />
                    <option value="PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxjaGVja291dC1zaG9wcGluZy1jYXJ0IHhtbG5zPSJodHRwOi8vY2hlY2tvdXQuZ29vZ2xlLmNvbS9zY2hlbWEvMiI+DQogIDxzaG9wcGluZy1jYXJ0Pg0KICAgIDxpdGVtcz4NCiAgICAgIDxpdGVtPg0KICAgICAgICA8cXVhbnRpdHk+MTwvcXVhbnRpdHk+DQogICAgICAgIDx1bml0LXByaWNlIGN1cnJlbmN5PSJVU0QiPjIwLjA8L3VuaXQtcHJpY2U+DQogICAgICAgIDxpdGVtLW5hbWU+RG9uYXRlICQyMDwvaXRlbS1uYW1lPg0KICAgICAgICA8aXRlbS1kZXNjcmlwdGlvbiAvPg0KICAgICAgPC9pdGVtPg0KICAgIDwvaXRlbXM+DQogIDwvc2hvcHBpbmctY2FydD4NCiAgPGNoZWNrb3V0LWZsb3ctc3VwcG9ydD4NCiAgICA8bWVyY2hhbnQtY2hlY2tvdXQtZmxvdy1zdXBwb3J0IC8+DQogIDwvY2hlY2tvdXQtZmxvdy1zdXBwb3J0Pg0KPC9jaGVja291dC1zaG9wcGluZy1jYXJ0Pg0KDQo=//separator//DBfWPm/LjmvvKwzyloydJLK6xTI=">&#x24;20.00 &#8211; Donate &#x24;20</option><br />
                    <option value="PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxjaGVja291dC1zaG9wcGluZy1jYXJ0IHhtbG5zPSJodHRwOi8vY2hlY2tvdXQuZ29vZ2xlLmNvbS9zY2hlbWEvMiI+DQogIDxzaG9wcGluZy1jYXJ0Pg0KICAgIDxpdGVtcz4NCiAgICAgIDxpdGVtPg0KICAgICAgICA8cXVhbnRpdHk+MTwvcXVhbnRpdHk+DQogICAgICAgIDx1bml0LXByaWNlIGN1cnJlbmN5PSJVU0QiPjUwLjA8L3VuaXQtcHJpY2U+DQogICAgICAgIDxpdGVtLW5hbWU+RG9uYXRlICQ1MDwvaXRlbS1uYW1lPg0KICAgICAgICA8aXRlbS1kZXNjcmlwdGlvbiAvPg0KICAgICAgPC9pdGVtPg0KICAgIDwvaXRlbXM+DQogIDwvc2hvcHBpbmctY2FydD4NCiAgPGNoZWNrb3V0LWZsb3ctc3VwcG9ydD4NCiAgICA8bWVyY2hhbnQtY2hlY2tvdXQtZmxvdy1zdXBwb3J0IC8+DQogIDwvY2hlY2tvdXQtZmxvdy1zdXBwb3J0Pg0KPC9jaGVja291dC1zaG9wcGluZy1jYXJ0Pg0KDQo=//separator//RY81IWA1wXQc6n4KAIHTxzOgno8=">&#x24;50.00 &#8211; Donate &#x24;50</option><br />
                    <option value="PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxjaGVja291dC1zaG9wcGluZy1jYXJ0IHhtbG5zPSJodHRwOi8vY2hlY2tvdXQuZ29vZ2xlLmNvbS9zY2hlbWEvMiI+DQogIDxzaG9wcGluZy1jYXJ0Pg0KICAgIDxpdGVtcz4NCiAgICAgIDxpdGVtPg0KICAgICAgICA8cXVhbnRpdHk+MTwvcXVhbnRpdHk+DQogICAgICAgIDx1bml0LXByaWNlIGN1cnJlbmN5PSJVU0QiPjEwMC4wPC91bml0LXByaWNlPg0KICAgICAgICA8aXRlbS1uYW1lPkRvbmF0ZSAkMTAwPC9pdGVtLW5hbWU+DQogICAgICAgIDxpdGVtLWRlc2NyaXB0aW9uIC8+DQogICAgICA8L2l0ZW0+DQogICAgPC9pdGVtcz4NCiAgPC9zaG9wcGluZy1jYXJ0Pg0KICA8Y2hlY2tvdXQtZmxvdy1zdXBwb3J0Pg0KICAgIDxtZXJjaGFudC1jaGVja291dC1mbG93LXN1cHBvcnQgLz4NCiAgPC9jaGVja291dC1mbG93LXN1cHBvcnQ+DQo8L2NoZWNrb3V0LXNob3BwaW5nLWNhcnQ+DQoNCg==//separator//s+L6saiSV8Sb4ChL9q7eVgG6lWA=">&#x24;100.00 &#8211; Donate &#x24;100</option><br />
                </select>
</td>
<td align="left" width="1%">
<input alt="" src="https://checkout.google.com/buttons/buy.gif?merchant_id=931882471552994&amp;w=117&amp;h=48&amp;style=white&amp;variant=text&amp;loc=en_US" type="image"/>
            </td>
</tr>
</table>
</form>
<p><tags>beta, blog pulse, bstat, bstats, bsuggestive, bsuite, bug, bug fix, bug fixes, bugs, fix, fixes, graph, plugin, pulse, recommendation system, recommendations, recommender, recommending, referrer, related content, search engine highlighting, search term, search term highlighting, sehl, stable, statistics, stats, stats tracking, tag, tag management, tag relationships, tags, usage, wordpress, wordpress plugin</tags></p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/bsuite/feed/</wfw:commentRss>
		<slash:comments>85</slash:comments>
		</item>
		<item>
		<title>Ecto vs. WordPress</title>
		<link>http://maisonbisson.com/blog/post/10839/making-ecto-work-with-wp-simple-tags/</link>
		<comments>http://maisonbisson.com/blog/post/10839/making-ecto-work-with-wp-simple-tags/#comments</comments>
		<pubDate>Thu, 01 Feb 2007 20:05:56 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[ecto]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[xmlrpc]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/blog/post/10839/</guid>
		<description><![CDATA[
Ecto is finally available in Intel optimized form, but WP 2.1&#8217;s XMLRPC breaks it. Cliffy, of all people, tells us how to fix it.
Now, when is Ecto 3 coming out?
Aside: this blog post explains how to hack up the XMLRPC to extract the tags Ecto is sending. This was interesting to me a long time [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-10839"><!-- &nbsp; --></abbr>
<p><a href="http://ecto.kung-foo.tv/" title="ecto">Ecto</a> is finally available in <a href="http://ecto.kung-foo.tv/archives/001736.php">Intel optimized form</a>, but <a href="http://wordpress.org/development/2007/01/ella-21/">WP 2.1</a>&#8217;s XMLRPC breaks it. Cliffy, of all people, tells us <a href="http://spiralbound.net/2007/01/30/ecto-is-busted-in-wordpress-21/">how to fix it</a>.</p>
<p>Now, <a href="http://blog.kung-foo.tv/archives/001731.html">when is Ecto 3 coming out</a>?</p>
<p>Aside: <a href="http://www.splyb.com/madfox/?p=48" title="????»Blog Archive » How to make ecto work with Jerome’s Keywords">this blog post</a> explains how to hack up the XMLRPC to extract the tags Ecto is sending. This was interesting to me a long time ago, but <a href="http://maisonbisson.com/blog/post/11390/#section-7">bsuite handles tags</a> entirely in the post content.</p>
<p><tags>xmlrpc, wordpress, fix, ecto</tags></p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/10839/making-ecto-work-with-wp-simple-tags/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Displaying Google Calendars in PHP iCal</title>
		<link>http://maisonbisson.com/blog/post/11490/displaying-google-calendars-in-php-ical/</link>
		<comments>http://maisonbisson.com/blog/post/11490/displaying-google-calendars-in-php-ical/#comments</comments>
		<pubDate>Mon, 13 Nov 2006 17:50:25 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[duration]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[gcal]]></category>
		<category><![CDATA[google calendars]]></category>
		<category><![CDATA[ical]]></category>
		<category><![CDATA[ics]]></category>
		<category><![CDATA[php icalendar]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/blog/post/11490/</guid>
		<description><![CDATA[
PHP iCalendar solves a couple problems I&#8217;m working on, but I needed a solution to fix the duration display for Gcal-managed ICS calendars.
As it turns out, a fix can be found in the forums, and the trick is to insert the following code in functions/ical_parser.php.

case 'DURATION':
	if (($first_duration == TRUE) &#038;&#038; (!stristr($field, '=DURATION'))) {
		ereg ('^P([0-9]{1,2}[W])?([0-9]{1,2}[D])?([T]{0,1})?([0-9]{1,2}[H])?([0-9]{1,2}[M])?([0-9]{1,}[S])?', $data, [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-11490"><!-- &nbsp; --></abbr>
<p><a href="http://phpicalendar.net/">PHP iCalendar</a> solves a couple problems I&#8217;m working on, but I needed a solution to <a href="http://phpicalendar.net/forums/showthread.php?t=1680" title="Google Calendar Update (easy!) - phpicalendar Forums">fix the duration display</a> for <a href="http://www.google.com/calendar/">Gcal-managed</a> <a href="http://en.wikipedia.org/wiki/ICalendar">ICS calendars</a>.</p>
<p>As it turns out, a fix can be <a href="http://phpicalendar.net/forums/showthread.php?t=1680">found</a> in the <a href="http://phpicalendar.net/forums/">forums</a>, and the trick is to insert the following code in <code>functions/ical_parser.php</code>.</p>
<pre style="width: 500px; overflow: auto;"><code>
case 'DURATION':
	if (($first_duration == TRUE) &#038;&#038; (!stristr($field, '=DURATION'))) {
		ereg ('^P([0-9]{1,2}[W])?([0-9]{1,2}[D])?([T]{0,1})?([0-9]{1,2}[H])?([0-9]{1,2}[M])?([0-9]{1,}[S])?', $data, $duration); 

		$weeks = str_replace('W', '', $duration[1]);
		$days = str_replace('D', '', $duration[2]);
		$hours = str_replace('H', '', $duration[4]);
		$minutes = str_replace('M', '', $duration[5]);
		$seconds = str_replace('S', '', $duration[6]);

		// Convert seconds to hours, minutes, and seconds
		if ($seconds > 60) {
			$rem_seconds = $seconds % 60;
			$minutes = $minutes + (($seconds - $rem_seconds) / 60);
			$seconds = $rem_seconds;
		}
		if ($minutes > 60) {
			$rem_minutes = $minutes % 60;
			$hours = $hours + (($minutes - $rem_minutes) / 60);
			$minutes = $rem_minutes;
		}

		$the_duration = ($weeks * 60 * 60 * 24 * 7) + ($days * 60 * 60 * 24) + ($hours * 60 * 60) + ($minutes * 60) + ($seconds);
		$first_duration = FALSE;
	}
	break;
</code></pre>
<p>Hopefully this gets worked into the baseline with the next release.</p>
<p><tags>bug, duration, fix, gcal, google calendars, ical, ics, php icalendar</tags></p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/post/11490/displaying-google-calendars-in-php-ical/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>bsuite Bug Fixes (release b2v6)</title>
		<link>http://maisonbisson.com/blog/bsuite/</link>
		<comments>http://maisonbisson.com/blog/bsuite/#comments</comments>
		<pubDate>Mon, 24 Jul 2006 16:39:28 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[beta]]></category>
		<category><![CDATA[blog pulse]]></category>
		<category><![CDATA[bstat]]></category>
		<category><![CDATA[bstats]]></category>
		<category><![CDATA[bsuggestive]]></category>
		<category><![CDATA[bsuite]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[bug fix]]></category>
		<category><![CDATA[bug fixes]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[fixes]]></category>
		<category><![CDATA[graph]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[pulse]]></category>
		<category><![CDATA[recommendation system]]></category>
		<category><![CDATA[recommendations]]></category>
		<category><![CDATA[recommender]]></category>
		<category><![CDATA[recommending]]></category>
		<category><![CDATA[referrer]]></category>
		<category><![CDATA[related content]]></category>
		<category><![CDATA[search engine highlighting]]></category>
		<category><![CDATA[search term]]></category>
		<category><![CDATA[search term highlighting]]></category>
		<category><![CDATA[sehl]]></category>
		<category><![CDATA[statistics]]></category>
		<category><![CDATA[stats]]></category>
		<category><![CDATA[stats tracking]]></category>
		<category><![CDATA[tag]]></category>
		<category><![CDATA[tag management]]></category>
		<category><![CDATA[tag relationships]]></category>
		<category><![CDATA[tags]]></category>
		<category><![CDATA[usage]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress plugin]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/blog/post/11390/</guid>
		<description><![CDATA[
Update: bugfix release b2v7 available.
It&#8217;s been a while since I released a new version of bsuite, my multi-purpose WordPress plugin. I&#8217;d been hoping to finish up a series of new features, but those have been delayed and this is mostly just a collection of bugfixes. This update is recommended for all bsuite users.
bsuite Features

Tracks page [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-11390"><!-- &nbsp; --></abbr>
<div class="innerindex">
<h3>Contents:</h3>
<ol>
<li><a href="http://maisonbisson.com/blog/bsuite/#11390_bsuite-features_1">bsuite Features</a></li>
<li><a href="http://maisonbisson.com/blog/bsuite/#11390_fixedchangedadded_1">Fixed/Changed/Added</a></li>
<li><a href="http://maisonbisson.com/blog/bsuite/#11390_installation_1">Installation</a></li>
<li><a href="http://maisonbisson.com/blog/bsuite/#11390_upgrading_1">Upgrading</a></li>
<li><a href="http://maisonbisson.com/blog/bsuite/#11390_commands_1">Commands</a></li>
<li><a href="http://maisonbisson.com/blog/bsuite/#11390_options_1">Options</a></li>
<li><a href="http://maisonbisson.com/blog/bsuite/#11390_tag-support_1">Tag Support</a></li>
<li><a href="http://maisonbisson.com/blog/bsuite/#11390_using-bsuite-functio_1">Using bsuite Functions</a></li>
<li><a href="http://maisonbisson.com/blog/bsuite/#11390_known-bugs_1">Known Bugs</a></li>
</ol>
</div>
<p><strong>Update:</strong> <a href="http://maisonbisson.com/blog/post/11613/">bugfix release b2v7 available</a>.</p>
<p>It&#8217;s been a while since I released a new version of <a href="http://maisonbisson.com/blog/post/10900/" title="bsuite WordPress Plugin (b2 release)">bsuite</a>, my multi-purpose WordPress plugin. I&#8217;d been hoping to finish up a series of new features, but those have been delayed and this is mostly just a collection of bugfixes. This update is recommended for all bsuite users.</p>
<h1 id="11390_bsuite-features_1" >bsuite Features</h1>
<ul>
<li>Tracks page loads (hits)<br /> </li>
<li>Tracks search terms used by visitors ariving at your site via search engines<br /> </li>
<li>Reports top-performing stories via a function that can be included in the sidebar<br /> </li>
<li>Reports recent comments via a function that can be included in the sidebar<br /> </li>
<li>Reports top search terms via a function that can be included in the sidebar<br /> </li>
<li>Outputs a pulse graph of activity on your site or specific stories<br /> </li>
<li><a href="http://maisonbisson.com/blog/post/10900/?bsuite_hilite=highlights+search+words&#038;bsuite_suggest=off">Highlights search words</a> used by visitors ariving at your site via search engines<br /> </li>
<li>Lists related posts at the bottom of the current post&#8217;s content<br /> </li>
<li>Suggests posts that closely match the search criteria for visitors who arrive via search engines<br /> </li>
<li>Integrates <a href="/blog/post/10861/">bsuite_speedcache</a><br /> </li>
<li>Does <a href="/blog/post/10922/">some stuff with tags</a></li>
</ul>
<h1 id="11390_fixedchangedadded_1" >Fixed/Changed/Added</h1>
<ul>
<li>The bsuite report consolidates the two uselessly differentiated top stories lists and <a href="http://www.flickr.com/photos/maisonbisson/196314951/">adds a top movers list</a>.<br /> </li>
<li>The report also includes a hugely <a href="http://www.flickr.com/photos/maisonbisson/196834225/">updated Quick Stats section</a> listing today&#8217;s current tally <em>and</em> a prediction of the day&#8217;s total along with other goodies.<br /> </li>
<li>The <a href="http://www.flickr.com/photos/maisonbisson/196314951/">table definitions have been updated</a> and optimized for better performance. <a href="http://nosheep.net/">Zach</a> contributed some optimizations to the <code>bstat_hitit()</code> function and underlying MySQL queries, and you&#8217;ll also find a number of small code optimizations scattered throughout.<br /> </li>
<li>This version finally <a href="http://maisonbisson.com/blog/post/11248/">creates and configures it&#8217;s tables automatically</a> upon activation. You no longer need to visit the plugin&#8217;s option screen for this to happen.<br /> </li>
<li>A fix to address a MySQL error for users running MySQL 5 has been long overdue. It&#8217;s in here.<br /> </li>
<li>Numbers in the reports are now formatted with commas or whatever local format you&#8217;ve set MySQL for, using <a href="http://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html">MySQL&#8217;s <code>FORMAT()</code> function</a>.<br /> </li>
<li><a href="http://maisonbisson.com/blog/post/11032/#comment-31803">As requested</a>, I&#8217;ve added a function &#8212; <code>bstat_hits()</code> &#8212; return just the hit count for a story or for the whole blog.<br /> </li>
<li><a href="http://maisonbisson.com/blog/post/11032/#comment-26916">As requested</a>, you can now manually clear the bsuite_speedcache.<br /> </li>
<li>As <a href="http://maisonbisson.com/blog/post/10900/#comment-33053">prompted, prodded, and cajoled</a>, I&#8217;ve finally made a change to report hits to the front page (and other pages without post IDs).<br /> </li>
<li>I did <a href="http://maisonbisson.com/blog/post/11188/">a bunch of thinking about tags</a> a while ago, and bsuite now keeps an index of tags in a separate table. I&#8217;ve got plans to use this for later features, but for now it&#8217;s just a curiosity that shouldn&#8217;t cause any problems.<br /> </li>
<li>You can now switch between &lt;tags&gt; or [tags] for compatibility with other plugins (such as <a href="http://maisonbisson.com/blog/post/11032/#comment-26884">noted here</a>) and with WP2&#8217;s WYSIWYG editor.<br /> </li>
<li>The code now properly calls <code>get_settings(’siteurl’)</code> instead of <code>get_settings(’home’)</code> to build the URL for the spacer.gif that builds the pulse graph, fixing the problem where <a href="http://maisonbisson.com/blog/post/10900/#comment-41808">the graph wouldn&#8217;t display</a> for some users.<br /> </li>
<li>Not changed, but at least answered: <a href="http://www.kickingdragon.com/">Eddie</a> commented <a href="http://maisonbisson.com/blog/post/10900/#comment-52951">to explain</a> that ‘–disable-bcmath’ can cause the <a href="http://maisonbisson.com/blog/post/10900/#comment-18232">undefined function errors</a> some people were getting. A later release may incorporate <a href="http://blog.pramudita.com/call-to-undefined-function-bcmod-in-bsuite-wordpress-plugin-solved.html">Pramudita&#8217;s fix</a>. <br /> </li>
<li>Also not in this version are <a href="http://maisonbisson.com/blog/post/10999/">the user-contributed tag features</a> I&#8217;d gotten so excited about. These just aren&#8217;t ready for primetime, but people who want to hack about in alpha-ville will find all the supporting code in there.<br /> </li>
<li>This list is probably incomplete and in some other way inaccurate. It&#8217;s not intentional, I&#8217;m just sloppy. Please leave comments with bug reports or corrections, I&#8217;ll do what I can to fix them.<br /> </li>
<li>Finally, I&#8217;m now hosting the download on a new server, so it won&#8217;t be subject to <a href="http://www.mac.com/1/bandwidth.html">.Mac&#8217;s bandwidth consumption limits</a>. <br />&nbsp;</li>
</ul>
<h1 id="11390_installation_1" >Installation</h1>
<p><strong>Update:</strong> <a href="http://maisonbisson.com/blog/post/11613/">bugfix release b2v7 available</a>.</p>
<ul>
<li>Download and unzip <a href="http://oz.plymouth.edu/~cbisson/projects/bsuite.zip">bsuite.zip</a><br /> </li>
<li>Place bsuite.php in you wp-content/plugins directory<br /> </li>
<li>Place spacer.gif in your wp-content directory<br /> </li>
<li>Log in to your WordPress <a href="http://codex.wordpress.org/Administration_Panels">admin panel</a> and <a href="http://codex.wordpress.org/Managing_Plugins#Plugin_management">activate the plugin</a>, then visit the new bsuite submenu of the <a href="http://codex.wordpress.org/Administration_Panels#Options_-_Configuration_Settings">options tab</a>. This will allow bsuite to create its database tables.
<p>Stats collection will start automatically; you can see the results in the new <strong>bsuite Reports</strong> submenu of your <a href="http://codex.wordpress.org/Administration_Panels#The_Dashboard">Dashboard</a><br /> </li>
<li>Once installed, be sure to enable the options and consider customizing the look by adding the bsuite CSS to your theme&#8217;s CSS (<a href="http://oz.plymouth.edu/~cbisson/projects/bsuite.css">sample CSS here</a>).</li>
</ul>
<p>In order to view the stats reports reports on your public pages, you&#8217;ll need to add the display functions to your pages.</p>
<h1 id="11390_upgrading_1" >Upgrading</h1>
<p><strong>Upgrades from earlier versions of bsuite</strong> are easy, just replace the old <code>bsuite.php</code> file with the new one.</p>
<p><strong>If you&#8217;re upgrading from bstat</strong> (which is so old I was tempted to remove this part of the docs), be sure to delete or deactivate the old plugin before activating the new one. Don&#8217;t forget to visit the bsuite submenu of the <a href="http://codex.wordpress.org/Administration_Panels#Options_-_Configuration_Settings">options tab</a> so you can setup all the new features.</p>
<h1 id="11390_commands_1" >Commands</h1>
<p>The bstat submenu of the options has a few command buttons:</p>
<ul>
<li>Clear bsuite_speedcache</p>
<p>The cache improves performance, but can sometimes get stale before its time. This command clears it.<br /> </li>
<li>Rebuild bsuite tag index
<p>bsuite maintains its tag index with every story edit. Use this command to bring old-content into the index or if you&#8217;ve edited the content in way WP doesn&#8217;t know about.<br /> </li>
</ul>
<h1 id="11390_options_1" >Options</h1>
<p>The bstat submenu of the options tab has a few configurable settings:</p>
<ul>
<li>Minimum userlevel to view bsuite reports</p>
<p>The options are restricted to users at <a href="http://codex.wordpress.org/User_Levels">userlevel</a> 8 or above, but you can choose who can view the reports.<br /> </li>
</ul>
<ul>
<li>Output default CSS</p>
<p>Some of the bsuite functions require CSS styles not found in the average style sheet. This will output default styles.<br /> </li>
</ul>
<ul>
<li>Default pulse graph style</p>
<p>This sets how values are interpolated in drawing the pulse graph. Experiment with the options to see how they work.<br /> </li>
</ul>
<ul>
<li>Suggest related entries in post</p>
<p>This will insert a block of links at the tail of each (tagged) post&#8217;s content with links to related posts at your site.<br /> </li>
</ul>
<ul>
<li>Tag input format</p>
<p>Name your style: square brackets or angle brackets / &lt;tags&gt; or [tags].<br /> </li>
</ul>
<ul>
<li>Highlight search words and offer search help</p>
<p>The first part of this <a href="http://www.alistapart.com/articles/searchhighlight/">should be obvious</a>, but the real trick here is using those search words to offer other related content from your site to visitors. It works (and looks) a lot like the option above, but the suggestions only appear when search words are detected.<br /> </li>
<li>Filter incoming search terms using comment moderation and blacklist words.
<p>Referrer spam is as much of a problem as trackback spam. There are a few tricks in bstat to prevent the problem, but here&#8217;s one you can configure. Selecting this option tells bstat to not display search terms that contain words in your <a href="http://codex.wordpress.org/Discussion_Options#Comment_Moderation">moderation list or blacklist</a>.</li>
</ul>
<ul>
<li>Ignore hits from registered users at or above userlevel</p>
<p>No author wants to skew their stats just by poking around their own site.<br /> </li>
<li>Ignore hits from these IP numbers.
<p>Sites with low traffic may find that activity by authors severely skews the stats tracking. Enter an IP address here to ignore it.</li>
</ul>
<h1 id="11390_tag-support_1" >Tag Support</h1>
<p>Until WordPress adopts a standardized way to manage tags, we&#8217;ll have to deal with things like this.</p>
<p>bsuite recognizes tags in three forms:</p>
<ul>
<li>Any link with a <a href="http://microformats.org/wiki/reltag">rel=“tag”</a> attribute<br /> </li>
<li>Any number of single tags like this: &lt;tag&gt;tag name&lt;/tag&gt;<br /> </li>
<li>A block of comma-delimited tags like this: &lt;tags&gt;WordPress, WordPress Plugin&lt;/tags&gt;<br /> </li>
</ul>
<p>This appears to make it compatible with a number of existing tag management strategies now in use &#8212; including those used by <a href="http://ecto.kung-foo.tv/archives/001368.php">Ecto</a> and <a href="http://www.broobles.com/scripts/simpletags/">SimpleTags</a>.</p>
<p>Tags in &lt;tag&gt; and &lt;tags&gt; tags are mapped to Technorati, but a future version will include an option to set other tag resolvers.</p>
<h1 id="11390_using-bsuite-functio_1" >Using bsuite Functions</h1>
<p>Though many bsuite features require no coding or modifications to theme files, there are a number of public functions available to display lists of top stories, recently commented stories, recent comments, recent incoming search terms, etc. Most of these functions take similar arguments and output their results in similar ways.</p>
<p><strong>Today&#8217;s Stats</strong></p>
<ul>
<li>bstat_todaypop</p>
<p>displays top stories for today only.<br /> </li>
<li>bstat_todayrefs
<p>displays top incoming search terms for today only.<br /> </li>
</ul>
<p>The functions <span style="font-family:monospace;">bstat_todaypop</span> and <span style="font-family:monospace;">bstat_todayrefs</span> each take the same arguments.</p>
<p>Usage:<br />
<span style="font-family:monospace;">bstat_todaypop({</span><span style="color:#00ff00;">count</span>}, “{<span style="color:#00ff00;">before</span>}”, “{<span style="color:#00ff00;">after</span>}”);</p>
<p><span style="font-family:monospace; color:#00ff00;">count</span> is the total number of results to output<br />
<span style="font-family:monospace; color:#00ff00;">before</span> is a string to output before each result<br />
<span style="font-family:monospace; color:#00ff00;">after</span> is a string to output after each result</p>
<p>Example:</p>
<pre>&lt;h2&gt;Today's Most Popular&lt;/h2&gt;
&lt;ul&gt;&lt;?php bstat_todaypop(15, “&lt;li&gt;”, “&lt;/li&gt;\n”); ?&gt;&lt;/ul&gt;
</pre>
<p><strong>Recent Stats</strong></p>
<ul>
<li>bstat_recentpop</p>
<p>displays top stories for the past x days. This function reveals more useful data on sites with low traffic, but is somewhat slower than bstat_todaypop.<br /> </li>
<li>bstat_recentrefs
<p>displays top incoming search terms for the past x days. This function reveals more useful data on sites with low traffic, but is somewhat slower than bstat_todayrefs.<br /> </li>
</ul>
<p>The functions <span style="font-family:monospace;">bstat_recentpop</span> and <span style="font-family:monospace;">bstat_recentrefs</span> each take the same arguments.</p>
<p>Usage:<br />
<span style="font-family:monospace;">bstat_recentrefs({</span><span style="color:#00ff00;">count</span>}, “{<span style="color:#00ff00;">days</span>}”, “{<span style="color:#00ff00;">before</span>}”, “{<span style="color:#00ff00;">after</span>}”);</p>
<p><span style="font-family:monospace; color:#00ff00;">count</span> is the total number of results to output<br />
<span style="font-family:monospace; color:#00ff00;">days</span> is the number of days back to look<br />
<span style="font-family:monospace; color:#00ff00;">before</span> is a string to output before each result<br />
<span style="font-family:monospace; color:#00ff00;">after</span> is a string to output after each result</p>
<p>Example:</p>
<pre>&lt;h2&gt;Incoming Search Terms This Week&lt;/h2&gt;
&lt;ul&gt;&lt;?php bstat_recentrefs(15, 7, “&lt;li&gt;”, “&lt;/li&gt;\n”); ?&gt;&lt;/ul&gt;
</pre>
<p><strong>Recent Discussion</strong></p>
<ul>
<li>bstat_discussionbypost</p>
<p>displays recently commented posts. Each post will appear only once.<br /> </li>
<li>bstat_discussionbycomment
<p>displays recent comments (and commenter). Better on sites with lots of community interaction.<br /> </li>
</ul>
<p>The functions <span style="font-family:monospace;">bstat_discussionbypost</span> and <span style="font-family:monospace;">bstat_discussionbycomment</span> each take the same arguments.</p>
<p>Usage:<br />
<span style="font-family:monospace;">bstat_discussionbypost({</span><span style="color:#00ff00;">count</span>}, “{<span style="color:#00ff00;">before</span>}”, “{<span style="color:#00ff00;">after</span>}”);</p>
<p><span style="font-family:monospace; color:#00ff00;">count</span> is the total number of results to output<br />
<span style="font-family:monospace; color:#00ff00;">before</span> is a string to output before each result<br />
<span style="font-family:monospace; color:#00ff00;">after</span> is a string to output after each result</p>
<p>Example:</p>
<pre>&lt;h2&gt;Incoming Search Terms This Week&lt;/h2&gt;
&lt;ul&gt;&lt;?php bstat_discussionbypost(15, “&lt;li&gt;”, “&lt;/li&gt;\n”); ?&gt;&lt;/ul&gt;</pre>
<p><strong>Special Functions</strong></p>
<ul>
<li>bstat_hits</p>
<p>displays the current and average daily page loads.<br /> </li>
</ul>
<p>Usage:<br />
<span style="font-family:monospace;"> bstat_hits([{</span><span style="color:#00ff00;">template</span>}, [{<span style="color:#00ff00;">post_id</span>}, [{<span style="color:#00ff00;">today_only</span>}]]]);</p>
<p><span style="font-family:monospace; color:#00ff00;">template</span> will be filled in with the appropriate values for <span style="font-family:monospace; color:#00ff00;">%%hits%%</span> and/or <span style="font-family:monospace; color:#00ff00;">%%avg%%</span>. If left blank, the default template is <span style="font-family:monospace; color:#00ff00;">%%hits%% hits, about %%avg%% daily</span><br />
<span style="font-family:monospace; color:#00ff00;">post_id</span> over-rides the detected post ID. Common values for this may include “0” to show stats for index pages, or “-1” to show stats for the entire blog (note that <span style="font-family:monospace; color:#00ff00;">%%avg%%</span> reports inaccurately with a “-1” value here)<br />
<span style="font-family:monospace; color:#00ff00;">today_only</span> returns the count for today (note that <span style="font-family:monospace; color:#00ff00;">%%avg%%</span> doesn&#8217;t make much sense here)</p>
<p>Example:</p>
<pre>&lt;?php bstat_hits('%%hits%% hits, about %%avg%% daily') ?&gt;</pre>
<p> prints something like “791 hits, about 10 daily”</p>
<pre>&lt;?php bstat_hits('%%hits%% page loads today', -1, 1) ?&gt;</pre>
<p> prints something like “5,950 page loads today”</p>
<ul>
<li>bstat_pulse</p>
<p>displays the “pulse” graph of hits over time.<br /> </li>
</ul>
<p>Usage:<br />
<span style="font-family:monospace;">bstat_pulse([{</span><span style="color:#00ff00;">post_id</span>}, [{<span style="color:#00ff00;">max_width</span>}, [{<span style="color:#00ff00;">display_text</span>}, [{<span style="color:#00ff00;">display_credit</span>}, [{<span style="color:#00ff00;">graph_accurate</span>}]]]]]);</p>
<p><span style="font-family:monospace; color:#00ff00;">post_id</span> is the post_id for the story, usually provided by a WP variable<br />
<span style="font-family:monospace; color:#00ff00;">max_width</span> is the maximum width the graph maw run<br />
<span style="font-family:monospace; color:#00ff00;">display_text</span> (acceptable values: 0 or 1), switch to display stats for total views and average views per day<br />
<span style="font-family:monospace; color:#00ff00;">display_credit</span> (acceptable values: 0 or 1), switch to display “powered by bstat” credit<br />
<span style="font-family:monospace; color:#00ff00;">graph_accurate</span> (acceptable values: 0 or 1), make smooth, accurate graphs or fuzzy (but not inaccurate) graphs</p>
<p>Example:</p>
<pre>&lt;h3&gt;Story pulse&lt;/h3&gt;&lt;?php bstat_pulse($id, 525, 1, 1, 1); ?&gt;</pre>
<ul>
<li>bstat_hitit</p>
<p>The hamster on a wheel that makes it all work. It records hits for each page load, and hits for each incoming search term.<br /> </li>
</ul>
<p><strong>This function is no longer necessary</strong>, as it is executed automatically via a plugin hook that runs every time the footer is called. Still, it&#8217;s around if you have content that you want to track outside that scope.</p>
<p>Example:</p>
<pre>&lt;?php // this is how it used to work, but it's automated now...
	global $id;
    if (!is_single() &#038;&#038; !is_page()) $id = 0;
	bstat_hitit($id, “read”);
	?&gt;
</pre>
<p><strong>note:</strong> (be careful of any “curly quotes” that might have been accidentally/automagically inserted in code samples)</p>
<h1 id="11390_known-bugs_1" >Known Bugs</h1>
<p>None yet, but I&#8217;m sure I&#8217;m forgetting something. Report what you find in the comments below.</p>
<p><tags>recommendation system, pulse, plugin, graph, fixes, fix, bugs, bug fixes, bug fix, bug, bsuite, bsuggestive, bstats, bstat, blog pulse, beta, recommendations, recommender, recommending, referrer, related content, search engine highlighting, search term, search term highlighting, sehl, statistics, stats, stats tracking, tag, tag management, tag relationships, tags, usage, wordpress, wordpress plugin</tags></p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/bsuite/feed/</wfw:commentRss>
		<slash:comments>77</slash:comments>
		</item>
		<item>
		<title>bsuite Bug Fixes (release b2v3)</title>
		<link>http://maisonbisson.com/blog/bsuite/</link>
		<comments>http://maisonbisson.com/blog/bsuite/#comments</comments>
		<pubDate>Thu, 15 Dec 2005 01:56:13 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[beta]]></category>
		<category><![CDATA[blog pulse]]></category>
		<category><![CDATA[bstat]]></category>
		<category><![CDATA[bstats]]></category>
		<category><![CDATA[bsuggestive]]></category>
		<category><![CDATA[bsuite]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[bug fix]]></category>
		<category><![CDATA[bug fixes]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[fixes]]></category>
		<category><![CDATA[graph]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[pulse]]></category>
		<category><![CDATA[recommendation system]]></category>
		<category><![CDATA[recommendations]]></category>
		<category><![CDATA[recommender]]></category>
		<category><![CDATA[recommending]]></category>
		<category><![CDATA[referrer]]></category>
		<category><![CDATA[related content]]></category>
		<category><![CDATA[search engine highlighting]]></category>
		<category><![CDATA[search term]]></category>
		<category><![CDATA[search term highlighting]]></category>
		<category><![CDATA[sehl]]></category>
		<category><![CDATA[statistics]]></category>
		<category><![CDATA[stats]]></category>
		<category><![CDATA[stats tracking]]></category>
		<category><![CDATA[tag]]></category>
		<category><![CDATA[tag management]]></category>
		<category><![CDATA[tag relationships]]></category>
		<category><![CDATA[tags]]></category>
		<category><![CDATA[usage]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress plugin]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/blog/?p=11032</guid>
		<description><![CDATA[
I&#8217;ve fixed another bug in bsuite b2, my multi-purpose plugin. This update is recommended for all bsuite users.
Fixed

Previous versions would throw errors at the bottom of the page when the http referrer info included search words from a recognized search engine.&#160;

Installation
Follow the directions for the bsuite b2 release. The download link there will always fetch [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-11032"><!-- &nbsp; --></abbr>
<div class="innerindex">
<h3>Contents:</h3>
<ol>
<li><a href="http://maisonbisson.com/blog/bsuite/#11032_fixed_1">Fixed</a></li>
<li><a href="http://maisonbisson.com/blog/bsuite/#11032_installation_1">Installation</a></li>
<li><a href="http://maisonbisson.com/blog/bsuite/#11032_bsuite-features_1">bsuite Features</a></li>
</ol>
</div>
<p>I&#8217;ve fixed another bug in <a href="http://maisonbisson.com/blog/post/10900/" title="bsuite WordPress Plugin (b2 release)">bsuite b2</a>, my multi-purpose plugin. This update is recommended for all bsuite users.</p>
<h1 id="11032_fixed_1" >Fixed</h1>
<ul>
<li>Previous versions would throw errors at the bottom of the page when the http referrer info included search words from a recognized search engine.<br />&nbsp;</li>
</ul>
<h1 id="11032_installation_1" >Installation</h1>
<p>Follow the directions for the <a href="http://maisonbisson.com/blog/post/10900/#section-3" title="bsuite WordPress Plugin (b2 release)">bsuite b2</a> release. The download link there will always fetch the <a href="http://homepage.mac.com/misterbisson/projects/bsuite.zip">current version</a>.</p>
<p><strong>Upgrades from earlier versions of bsuite</strong> are easy, just replace the old <code>bsuite.php</code> file with the new one. <strong>Upgrades from bstat</strong> follow the <a href="http://maisonbisson.com/blog/post/10900/#section-3" title="bsuite WordPress Plugin (b2 release)">same directions as before</a>.</p>
<h1 id="11032_bsuite-features_1" >bsuite Features</h1>
<ul>
<li>Tracks page loads (hits)<br />&nbsp;</li>
<li>Tracks search terms used by visitors ariving at your site via search engines<br />&nbsp;</li>
<li>Reports top-performing stories via a function that can be included in the sidebar<br />&nbsp;</li>
<li>Reports recent comments via a function that can be included in the sidebar<br />&nbsp;</li>
<li>Reports top search terms via a function that can be included in the sidebar<br />&nbsp;</li>
<li>Outputs a pulse graph of activity on your site or specific stories<br />&nbsp;</li>
<li><a href="http://maisonbisson.com/blog/post/10900/?bsuite_hilite=highlights+search+words&#038;bsuite_suggest=off">Highlights search words</a> used by visitors ariving at your site via search engines <strong>NEW!</strong><br />&nbsp;</li>
<li>Lists related posts at the bottom of the current post&#8217;s content <strong>NEW!</strong><br />&nbsp;</li>
<li>Suggests posts that closely match the search criteria for visitors who arrive via search engines <strong>NEW!</strong><br />&nbsp;</li>
<li>Integrates <a href="/blog/post/10861/">bsuite_speedcache</a> <strong>NEW!</strong><br />&nbsp;</li>
<li>Does <a href="/blog/post/10922/">some stuff with tags</a> <strong>NEW!</strong></li>
</ul>
<p><tags>search term highlighting, search engine highlighting, sehl, bsuggestive, recommendations, recommender, recommending, recommendation system, related content, tag, tags, tag management, tag relationships, beta, blog pulse, bsuite, bstat, bstats, graph, plugin, pulse, referrer, search term, statistics, stats, stats tracking, usage, wordpress, wordpress plugin, bug fix, fix, fixes, bug, bugs, beta, bug fixes</tags></p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/bsuite/feed/</wfw:commentRss>
		<slash:comments>48</slash:comments>
		</item>
		<item>
		<title>bsuite Bug Fixes (release b2b)</title>
		<link>http://maisonbisson.com/blog/bsuite/</link>
		<comments>http://maisonbisson.com/blog/bsuite/#comments</comments>
		<pubDate>Sat, 03 Dec 2005 16:17:38 +0000</pubDate>
		<dc:creator>Casey Bisson</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[beta]]></category>
		<category><![CDATA[blog pulse]]></category>
		<category><![CDATA[bstat]]></category>
		<category><![CDATA[bstats]]></category>
		<category><![CDATA[bsuggestive]]></category>
		<category><![CDATA[bsuite]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[bug fix]]></category>
		<category><![CDATA[bug fixes]]></category>
		<category><![CDATA[bugs]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[fixes]]></category>
		<category><![CDATA[graph]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[pulse]]></category>
		<category><![CDATA[recommendation system]]></category>
		<category><![CDATA[recommendations]]></category>
		<category><![CDATA[recommender]]></category>
		<category><![CDATA[recommending]]></category>
		<category><![CDATA[referrer]]></category>
		<category><![CDATA[related content]]></category>
		<category><![CDATA[search engine highlighting]]></category>
		<category><![CDATA[search term]]></category>
		<category><![CDATA[search term highlighting]]></category>
		<category><![CDATA[sehl]]></category>
		<category><![CDATA[statistics]]></category>
		<category><![CDATA[stats]]></category>
		<category><![CDATA[stats tracking]]></category>
		<category><![CDATA[tag]]></category>
		<category><![CDATA[tag management]]></category>
		<category><![CDATA[tag relationships]]></category>
		<category><![CDATA[tags]]></category>
		<category><![CDATA[usage]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wordpress plugin]]></category>

		<guid isPermaLink="false">http://maisonbisson.com/blog/?p=10994</guid>
		<description><![CDATA[
I&#8217;ve fixed a couple bugs in bsuite b2, released last week.
Fixes

A bug with search word highlighting that caused it to litter the display in some cases.&#160;
A silly mistake of mine that cause a mysql error for some users.

Installation
Follow the directions for the bsuite b2 release. The download link there will always fetch the current version.
Upgrades [...]]]></description>
			<content:encoded><![CDATA[<abbr class="unapi-id" title="maisonbisson-10994"><!-- &nbsp; --></abbr>
<div class="innerindex">
<h3>Contents:</h3>
<ol>
<li><a href="http://maisonbisson.com/blog/bsuite/#10994_fixes_1">Fixes</a></li>
<li><a href="http://maisonbisson.com/blog/bsuite/#10994_installation_1">Installation</a></li>
<li><a href="http://maisonbisson.com/blog/bsuite/#10994_bsuite-features_1">bsuite Features</a></li>
</ol>
</div>
<p>I&#8217;ve fixed a couple bugs in <a href="http://maisonbisson.com/blog/post/10900/" title="bsuite WordPress Plugin (b2 release)">bsuite b2</a>, released last week.</p>
<h1 id="10994_fixes_1" >Fixes</h1>
<ul>
<li>A bug with <a href="http://maisonbisson.com/blog/post/10900/?bsuite_hilite=Known+Bugs+buggy&#038;bsuite_suggest=off">search word highlighting</a> that caused it to litter the display in some cases.<br />&nbsp;</li>
<li>A silly mistake of mine that cause a <a href="http://maisonbisson.com/blog/post/10900/#comment-18307">mysql error</a> for some users.</li>
</ul>
<h1 id="10994_installation_1" >Installation</h1>
<p>Follow the directions for the <a href="http://maisonbisson.com/blog/post/10900/#section-3" title="bsuite WordPress Plugin (b2 release)">bsuite b2</a> release. The download link there will always fetch the <a href="http://homepage.mac.com/misterbisson/projects/bsuite.zip">current version</a>.</p>
<p><strong>Upgrades from bsuite b2</strong> are easy, just replace the old <code>bsuite.php</code> file with the new one. <strong>Upgrades from bstat</strong> follow the <a href="http://maisonbisson.com/blog/post/10900/#section-3" title="bsuite WordPress Plugin (b2 release)">same directions as before</a>.</p>
<h1 id="10994_bsuite-features_1" >bsuite Features</h1>
<ul>
<li>Tracks page loads (hits)<br />&nbsp;</li>
<li>Tracks search terms used by visitors ariving at your site via search engines<br />&nbsp;</li>
<li>Reports top-performing stories via a function that can be included in the sidebar<br />&nbsp;</li>
<li>Reports recent comments via a function that can be included in the sidebar<br />&nbsp;</li>
<li>Reports top search terms via a function that can be included in the sidebar<br />&nbsp;</li>
<li>Outputs a “pulse” graph of activity on your site or specific stories<br />&nbsp;</li>
<li><a href="http://maisonbisson.com/blog/post/10900/?bsuite_hilite=highlights+search+words&#038;bsuite_suggest=off">Highlights search words</a> used by visitors ariving at your site via search engines <strong>NEW!</strong><br />&nbsp;</li>
<li>Lists related posts at the bottom of the current post&#8217;s content <strong>NEW!</strong><br />&nbsp;</li>
<li>Suggests posts that closely match the search criteria for visitors who arrive via search engines <strong>NEW!</strong><br />&nbsp;</li>
<li>Integrates <a href="/blog/post/10861/">bsuite_speedcache</a> <strong>NEW!</strong><br />&nbsp;</li>
<li>Does <a href="/blog/post/10922/">some stuff with tags</a> <strong>NEW!</strong></li>
</ul>
<p><tags>search term highlighting, search engine highlighting, sehl, bsuggestive, recommendations, recommender, recommending, recommendation system, related content, tag, tags, tag management, tag relationships, beta, blog pulse, bsuite, bstat, bstats, graph, plugin, pulse, referrer, search term, statistics, stats, stats tracking, usage, wordpress, wordpress plugin, bug fix, fix, fixes, bug, bugs, beta, bug fixes</tags></p>
]]></content:encoded>
			<wfw:commentRss>http://maisonbisson.com/blog/bsuite/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
	</channel>
</rss>