<?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>Xavisys&#187; plugin</title>
	<atom:link href="http://xavisys.com/tag/plugin/feed/" rel="self" type="application/rss+xml" />
	<link>http://xavisys.com</link>
	<description>Control Your Internet</description>
	<lastBuildDate>Tue, 16 Jun 2009 19:28:32 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Efficient Related Posts</title>
		<link>http://xavisys.com/2009/06/efficient-related-posts/</link>
		<comments>http://xavisys.com/2009/06/efficient-related-posts/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 19:27:51 +0000</pubDate>
		<dc:creator>Aaron D. Campbell</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[Related Posts]]></category>

		<guid isPermaLink="false">http://xavisys.com/?p=395</guid>
		<description><![CDATA[There is a problem with related posts plugins, and Efficient Related Posts is fixing that by approaching the problem from a different direction and offering a very different solution.  Basically, current related post plugins build the list of related posts on the fly when the user needs to view it.  Since blogs tend [...]]]></description>
			<content:encoded><![CDATA[<p>There is a <a href="http://wpinformer.com/problem-related-post-plugins/">problem with related posts plugins</a>, and Efficient Related Posts is fixing that by approaching the problem from a different direction and offering a very different solution.  Basically, current related post plugins build the list of related posts on the fly when the user needs to view it.  Since blogs tend to be viewed far more often than they are updated (often hundreds of times more often), these queries are run way more times than they need to be.  This not only wastes CPU cycles, but if the queries are slow (which they will be if you have 1000s of posts and tags) then the user gets a poor experience from slow page loads.</p>
<p>Here are some of the statistics. On <a href="http://wpinformer.com">WordPress Informer</a>, when it was very new (less than a month old) it had only 7 posts, and had received roughly 2000 pageviews. That’s pretty low, but lets take a look at it. About 700 of those visits were to the home page and about 1300 were to single post pages. If you only show related posts on single post pages (which is how we currently do it on there) then the related posts plugin has been run over 1300 times for only 7 posts, which is roughly 185 times per post! If I were to show related posts for each post on the front page then it would have run another 4000 times (which is a conservative estimate), bringing it to 757 times per post. If you think this seems excessive, lets take a look at the stats for <a href="http://webdevnews.net">Web Developer News</a>. It has had over 13,500 page views in the last 30 days. About 750 were to the home page, about 140 were to other static pages, roughly 550 were to tag pages, and another 250 were to miscellaneous pages such as search pages. That leaves 11,810 visits to single post pages and 21 posts during that same time. That’s about 562 times per post! If I added related posts to the home page, tag pages, and search pages it would need to be run roughly another 15,000 or 1,276 times per post.</p>
<p>In addition to the simple waste of memory and cpu cycles, putting the calculation of related posts on the front end means that when they start to slow down your users are left with a bad experience and slow loading pages. And they <strong>will</strong> slow down eventually, if your site gets big enough. I just recently worked on a site with more than 6,000 posts and over 1,800 tags (they offer investing advice, and have a lot of tags that correspond to ticker symbols). At that point, some of the related posts queries were taking 10 seconds to run. That’s really slow. We can do better than that right? Well it’s not easy but I think we can.</p>
<p>Efficient Related Posts moves all this effort into the admin section, finding related posts when a post is saved rather than when the user views it.  The advantage is that if the query is slow it happens less often and the post writer is the one that waits rather than the user (which I think is WAY better).</p>
<p>There are limitations.  For example, since the related posts are stored as post meta data, we only store a certain number of them (10 by default, but you can set it to whatever you want).  This means that if you decide you need to display more than 10, you need to have the plugin re-process all posts.  I generally display up to 5 related posts, but store 10 just in case I decide to display more in some areas.  Also, since the related posts are calculated when a post is saved, manually adding a tag through the database will have no effect on the related posts, although I recommend not doing that anyway.</p>
<p>Requires PHP5.</p>
]]></content:encoded>
			<wfw:commentRss>http://xavisys.com/2009/06/efficient-related-posts/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
		<item>
		<title>WordPress Upcoming Posts Widget</title>
		<link>http://xavisys.com/2009/04/wordpress-upcoming-posts-widget/</link>
		<comments>http://xavisys.com/2009/04/wordpress-upcoming-posts-widget/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 00:54:28 +0000</pubDate>
		<dc:creator>Aaron D. Campbell</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[widget]]></category>

		<guid isPermaLink="false">http://xavisys.com/?p=382</guid>
		<description><![CDATA[Upcoming Posts Widget acts very much like the recent posts widget, but displays scheduled posts instead of published ones.  It may eventually have options to show drafts too, but the jury&#8217;s still out.  Requires 2.8+ (WP_Widget is nice).
]]></description>
			<content:encoded><![CDATA[<p>Upcoming Posts Widget acts very much like the recent posts widget, but displays scheduled posts instead of published ones.  It may eventually have options to show drafts too, but the jury&#8217;s still out.  Requires 2.8+ (WP_Widget is nice).</p>
]]></content:encoded>
			<wfw:commentRss>http://xavisys.com/2009/04/wordpress-upcoming-posts-widget/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Better Text Widget</title>
		<link>http://xavisys.com/2009/04/text-widget/</link>
		<comments>http://xavisys.com/2009/04/text-widget/#comments</comments>
		<pubDate>Mon, 13 Apr 2009 22:53:24 +0000</pubDate>
		<dc:creator>Aaron D. Campbell</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[widget]]></category>

		<guid isPermaLink="false">http://xavisys.com/?p=355</guid>
		<description><![CDATA[WordPress has a built in text widget, but it has one major flaw.  There&#8217;s no good way to apply styles to individual text widgets.  This simple plugin adds a class to each text widget.  The class name is generated based on the title of the widget, and makes it very easy to [...]]]></description>
			<content:encoded><![CDATA[<p>WordPress has a built in text widget, but it has one major flaw.  There&#8217;s no good way to apply styles to individual text widgets.  This simple plugin adds a class to each text widget.  The class name is generated based on the title of the widget, and makes it very easy to have that fine-grain design control you need.</p>
]]></content:encoded>
			<wfw:commentRss>http://xavisys.com/2009/04/text-widget/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress Twitter Widget Pro 1.3.0 released!</title>
		<link>http://xavisys.com/2009/04/wordpress-twitter-widget-pro-130-released/</link>
		<comments>http://xavisys.com/2009/04/wordpress-twitter-widget-pro-130-released/#comments</comments>
		<pubDate>Sat, 11 Apr 2009 15:21:06 +0000</pubDate>
		<dc:creator>Aaron D. Campbell</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://xavisys.com/?p=348</guid>
		<description><![CDATA[I just uploaded version 1.3.0 of my WordPress Twitter Widget Pro plugin.  It has been updated to allow HTML in the title and error message, which will allow for more inventive titles (like the one currently being used in the sidebar here).  Additionally, the plugin no longer relies on you having a caching [...]]]></description>
			<content:encoded><![CDATA[<p>I just uploaded version 1.3.0 of my WordPress Twitter Widget Pro plugin.  It has been updated to allow HTML in the title and error message, which will allow for more inventive titles (like the one currently being used in the sidebar here).  Additionally, the plugin no longer relies on you having a caching solution installed and set up.  It now caches the tweets for 5 minutes using the built-in blog options functionality.  Twitter limits the number of requests you can make in any given hour, so this caching should <strong>greatly</strong> reduce the number of times you see the &#8220;twitter not available&#8221; error message.  Lastly, we phased out the old Snoopy class in favor of the new HTTP class.</p>
<p>Please discuss this plugin on the <a href="http://xavisys.com/wordpress-twitter-widget/">WordPress Twitter Widget</a> page.</p>
]]></content:encoded>
			<wfw:commentRss>http://xavisys.com/2009/04/wordpress-twitter-widget-pro-130-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Manual Related Links</title>
		<link>http://xavisys.com/2009/04/manual-related-links/</link>
		<comments>http://xavisys.com/2009/04/manual-related-links/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 22:45:49 +0000</pubDate>
		<dc:creator>Aaron D. Campbell</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://xavisys.com/?p=326</guid>
		<description><![CDATA[This WordPress plugin allows you to manually enter links that are related to a post.  They can be on any site and you can enter just the URL or an entire link (specifying the title attribute, onclicks, etc).  Additionally, since the links are stored at post meta data instead of being re-generated for [...]]]></description>
			<content:encoded><![CDATA[<p>This WordPress plugin allows you to manually enter links that are related to a post.  They can be on any site and you can enter just the URL or an entire link (specifying the title attribute, onclicks, etc).  Additionally, since the links are stored at post meta data instead of being re-generated for each page view, the load on the server and the wait time for your users is MUCH lower!</p>
<p>You can use the helper functions to display the related links in your theme or you can simply tell the plugin to automatically add them to posts or even just single posts.  The list of links is output as a semantic unordered list (ul) with an optional title.  Everything is well classed to make CSS styling easy.</p>
<p>This plugin is not an automatic solution like many related posts plugins, but works well for people who want total control of the related links (or have multiple sites they want to link between).</p>
]]></content:encoded>
			<wfw:commentRss>http://xavisys.com/2009/04/manual-related-links/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Get Free Web Designs Widget</title>
		<link>http://xavisys.com/2009/02/get-free-web-designs-widget/</link>
		<comments>http://xavisys.com/2009/02/get-free-web-designs-widget/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 23:05:14 +0000</pubDate>
		<dc:creator>Aaron D. Campbell</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://xavisys.com/?p=323</guid>
		<description><![CDATA[Not long ago Xavisys launched a new sister site, Get Free Web Designs. Now we&#8217;re releasing a WordPress plugin designed to give you a chance to take part in the action.  The Get Free Web Designs Widget allows you to display a feed of the most recent designs from Get Free Web Designs right [...]]]></description>
			<content:encoded><![CDATA[<p>Not long ago Xavisys launched a new sister site, <a title="GetFreeWebDesigns.com is a group of Open Source Website Designers providing free web design templates." href="http://www.getfreewebdesigns.com">Get Free Web Designs</a>. Now we&#8217;re releasing a WordPress plugin designed to give you a chance to take part in the action.  The Get Free Web Designs Widget allows you to display a feed of the most recent designs from <a title="GetFreeWebDesigns.com is a group of Open Source Website Designers providing free web design templates." href="http://www.getfreewebdesigns.com">Get Free Web Designs</a> right on your blog.</p>
<p>Worried about hotlinking to images that load slowly?  Don&#8217;t!  This plugin will cache the 20 most recent design thumbnails in a directory inside your uploads directory.  They&#8217;ll load as quickly as everything else on your site.  Then, when they get too old to show in the widget, they are removed, which means they&#8217;ll never waste space on your site.</p>
<p>If you want to see this plugin in action, check out <a href="http://webdevnews.net/">Web Developer News</a> or <a href="http://www.attackr.com/">Attackr &#8211; Designer News</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://xavisys.com/2009/02/get-free-web-designs-widget/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Twitter Widget Pro 1.2.2 Released!</title>
		<link>http://xavisys.com/2008/06/twitter-widget-pro-122-released/</link>
		<comments>http://xavisys.com/2008/06/twitter-widget-pro-122-released/#comments</comments>
		<pubDate>Thu, 26 Jun 2008 14:59:24 +0000</pubDate>
		<dc:creator>Aaron D. Campbell</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://xavisys.com/?p=150</guid>
		<description><![CDATA[I just uploaded version 1.2.2 of my WordPress Twitter Widget Pro plugin.  Since twitter has slowed down, a lot of people (especially on slower servers) have been getting the &#8220;Could not connect to Twitter&#8221; message when twitter was slow but not down.  I&#8217;ve added a setting on each widget to specify the number [...]]]></description>
			<content:encoded><![CDATA[<p>I just uploaded version 1.2.2 of my WordPress Twitter Widget Pro plugin.  Since twitter has slowed down, a lot of people (especially on slower servers) have been getting the &#8220;Could not connect to Twitter&#8221; message when twitter was slow but not down.  I&#8217;ve added a setting on each widget to specify the number of seconds to wait for Twitter.  It still defaults to 2 seconds, but you may have to bump it up.  Just remember that when twitter IS down, it will try for that full amount of time to reach them BEFORE your page loads, so don&#8217;t set it too high!</p>
<p>Please discuss this plugin on the <a href="/wordpress-twitter-widget/">Wordpress Twitter Widget</a> post.</p>
]]></content:encoded>
			<wfw:commentRss>http://xavisys.com/2008/06/twitter-widget-pro-122-released/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>WordPress Google Analytics 1.2.2 Released!</title>
		<link>http://xavisys.com/2008/06/wordpress-google-analytics-122-released/</link>
		<comments>http://xavisys.com/2008/06/wordpress-google-analytics-122-released/#comments</comments>
		<pubDate>Fri, 13 Jun 2008 14:50:24 +0000</pubDate>
		<dc:creator>Aaron D. Campbell</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[google analytics]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://xavisys.com/?p=149</guid>
		<description><![CDATA[I just uploaded version 1.2.2 of my WordPress Google Analytics plugin.  It squashes one major bug that has been plaguing some users.  Those that switch back and forth from visual to HTML editor, will not longer have problems with it getting stuck!
Please discuss this plugin on the WordPress Google Analytics Plugin post.
]]></description>
			<content:encoded><![CDATA[<p>I just uploaded version 1.2.2 of my WordPress Google Analytics plugin.  It squashes one major bug that has been plaguing some users.  Those that switch back and forth from visual to HTML editor, will not longer have problems with it getting stuck!</p>
<p>Please discuss this plugin on the <a href="http://xavisys.com/wordpress-google-analytics-plugin/">WordPress Google Analytics Plugin</a> post.</p>
]]></content:encoded>
			<wfw:commentRss>http://xavisys.com/2008/06/wordpress-google-analytics-122-released/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>WordPress Twitter Widget Pro 1.2.1 released!</title>
		<link>http://xavisys.com/2008/06/wordpress-twitter-widget-pro-121-released/</link>
		<comments>http://xavisys.com/2008/06/wordpress-twitter-widget-pro-121-released/#comments</comments>
		<pubDate>Tue, 10 Jun 2008 00:53:11 +0000</pubDate>
		<dc:creator>Aaron D. Campbell</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://xavisys.com/?p=145</guid>
		<description><![CDATA[I just uploaded version 1.2.1 of my WordPress Twitter Widget Pro plugin.  It includes the removal of the &#8220;friends feed&#8221; option, the addition of custom error message setting for when Twitter is down, and optional anonymous statistics collection (more on this in a moment).  Unfortunately, the database query that Twitter had to run [...]]]></description>
			<content:encoded><![CDATA[<p>I just uploaded version 1.2.1 of my WordPress Twitter Widget Pro plugin.  It includes the removal of the &#8220;friends feed&#8221; option, the addition of custom error message setting for when Twitter is down, and optional anonymous statistics collection (more on this in a moment).  Unfortunately, the database query that Twitter had to run to retrieve these feeds was contributing to their constant crashes.  They have removed this functionality, and have no immediate plans to add it back.  If they ever do, I&#8217;ll redo the plugin to use it.  I&#8217;m sorry, but it&#8217;s completely out of my hands.</p>
<p>Regarding the anonymous statistics collection, as my plugins are getting more and more popular (1000s of users now), I&#8217;m struggling to keep in touch with my plugin users.  Gathering some statistics will help me to design my plugins to meet the needs of the users.  This is not meant as an invasion of privacy, and you can easily disable it from the options page.<br />
<span id="more-145"></span><br />
Here is the data it collects and sends:</p>
<dl>
<dt>Plugin Name</dt>
<dd>I plan to eventually add this to more of my plugins, so this is used for me to tell sort the data by plugin.</dd>
<dt>Unique identifier</dt>
<dd>This is a hash (one way encryption) of the URL and a random number.  This simply helps eliminate duplicate info from being added to the pool of data.</dd>
<dt>Plugin Version</dt>
<dd>Just the version of the plugin.</dd>
<dt>PHP Version</dt>
<dd>Most of my plugins require PHP 5+, but not all of them and I would like to update the ones that don&#8217;t.  I&#8217;m hoping to see how many users are on an old version of PHP.</dd>
<dt>MySQL Version</dt>
<dd>Certain database queries can be vastly optimized on newer versions of MySQL, so this information could be very helpful.</dd>
<dt>Server Software</dt>
<dd>Microsofts IIS can cause a lot of problems for PHP applications, so knowing how many users are using IIS is important.</dd>
<dt>Memory Limit</dt>
<dd>Your web server puts a limit on the amount of memory a script can use.  This plugin should never come close to an average memory limit, but this is a statistic that will be nice to keep in mind as new plugins are developed.</dd>
</dl>
<p>For those that want to know, here is the code that collects the data:</p>
<pre class="brush: php">
$s[&#039;plugin&#039;] = &#039;Twitter Widget Pro&#039;;
$s[&#039;id&#039;] = $this-&gt;get_id();
$s[&#039;version&#039;] = TWP_VERSION;

$s[&#039;php_version&#039;] = phpversion();
$s[&#039;mysql_version&#039;] = @mysql_get_server_info($wpdb-&gt;dbh);
$s[&#039;server_software&#039;] = $_SERVER[&quot;SERVER_SOFTWARE&quot;];
$s[&#039;memory_limit&#039;] = ini_get(&#039;memory_limit&#039;);
</pre>
<p>Please discuss this plugin on the <a href="http://xavisys.com/wordpress-twitter-widget/">WordPress Twitter Widget</a></p>
]]></content:encoded>
			<wfw:commentRss>http://xavisys.com/2008/06/wordpress-twitter-widget-pro-121-released/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Google Analytics plugin 1.2.0 released!</title>
		<link>http://xavisys.com/2008/06/google-analytics-plugin-120-released/</link>
		<comments>http://xavisys.com/2008/06/google-analytics-plugin-120-released/#comments</comments>
		<pubDate>Mon, 09 Jun 2008 02:31:45 +0000</pubDate>
		<dc:creator>Aaron D. Campbell</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[google analytics]]></category>
		<category><![CDATA[plugin]]></category>

		<guid isPermaLink="false">http://xavisys.com/?p=144</guid>
		<description><![CDATA[A quick bugfix on the activation routines that generate the installation ID, released as 1.2.1.
I just uploaded version 1.2.0 of my WordPress Google Analytics plugin.  It includes some minor bug fixes, and updated options page, and optional anonymous statistics collection.  As my plugins are getting more and more popular (1000s of users now), [...]]]></description>
			<content:encoded><![CDATA[<p class="message">A quick bugfix on the activation routines that generate the installation ID, released as 1.2.1.</p>
<p>I just uploaded version 1.2.0 of my WordPress Google Analytics plugin.  It includes some minor bug fixes, and updated options page, and optional anonymous statistics collection.  As my plugins are getting more and more popular (1000s of users now), I&#8217;m struggling to keep in touch with my plugin users.  Gathering some statistics will help me to design my plugins to meet the needs of the users.  This is not meant as an invasion of privacy, and you can easily disable it from the options page.<br />
<span id="more-144"></span><br />
Here is the data it collects and sends:</p>
<dl>
<dt>Plugin Name</dt>
<dd>I plan to eventually add this to more of my plugins, so this is used for me to tell sort the data by plugin.</dd>
<dt>Unique identifier</dt>
<dd>This is a hash (one way encryption) of the URL and a random number.  This simply helps eliminate duplicate info from being added to the pool of data.</dd>
<dt>Plugin Version</dt>
<dd>Just the version of the plugin.</dd>
<dt>PHP Version</dt>
<dd>Most of my plugins require PHP 5+, this one does not, but I would like to update it.  I&#8217;m hoping to see how many users are on an old version of PHP.</dd>
<dt>MySQL Version</dt>
<dd>Certain database queries can be vastly optimized on newer versions of MySQL, so this information could be very helpful.</dd>
<dt>Server Software</dt>
<dd>Microsofts IIS can cause a lot of problems for PHP applications, so knowing how many users are using IIS is important.</dd>
<dt>Memory Limit</dt>
<dd>Your web server puts a limit on the amount of memory a script can use.  This plugin should never come close to an average memory limit, but this is a statistic that will be nice to keep in mind as new plugins are developed.</dd>
</dl>
<p>For those that want to know, here is the code that collects the data:</p>
<pre class="brush: php">
$s[&#039;plugin&#039;] = &#039;WP Google Analytics&#039;;
$s[&#039;id&#039;] = wpGoogleAnalytics::get_wgaId();
$s[&#039;version&#039;] = WGA_VERSION;

$s[&#039;php_version&#039;] = phpversion();
$s[&#039;mysql_version&#039;] = @mysql_get_server_info($wpdb-&gt;dbh);
$s[&#039;server_software&#039;] = $_SERVER[&quot;SERVER_SOFTWARE&quot;];
$s[&#039;memory_limit&#039;] = ini_get(&#039;memory_limit&#039;);
</pre>
<p>Please discuss this plugin on the <a href="http://xavisys.com/wordpress-google-analytics-plugin/">WordPress Google Analytics Plugin</a> post.</p>
]]></content:encoded>
			<wfw:commentRss>http://xavisys.com/2008/06/google-analytics-plugin-120-released/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>
