<?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>W-Shadow.com &#187; Blogging</title>
	<atom:link href="http://w-shadow.com/blog/category/blogging/feed/" rel="self" type="application/rss+xml" />
	<link>http://w-shadow.com</link>
	<description>Slightly Advanced Computer Stuff (and some magic)</description>
	<lastBuildDate>Thu, 05 Nov 2009 13:26:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Plugin Translators Wanted</title>
		<link>http://w-shadow.com/blog/2009/10/30/plugin-translators-wanted/</link>
		<comments>http://w-shadow.com/blog/2009/10/30/plugin-translators-wanted/#comments</comments>
		<pubDate>Fri, 30 Oct 2009 20:16:35 +0000</pubDate>
		<dc:creator>White Shadow</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[News and Rants]]></category>
		<category><![CDATA[broken link checker]]></category>
		<category><![CDATA[i18n]]></category>
		<category><![CDATA[internationalization]]></category>
		<category><![CDATA[l10n]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[translation]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress plugins]]></category>

		<guid isPermaLink="false">http://w-shadow.com/?p=1414</guid>
		<description><![CDATA[I&#8217;ve recently added internationalization support to my Broken Link Checker plugin, so if you like the plugin and would like to see it in your own language, consider contributing a translation! So far people are working, or have already sent in, localization files for the following languages :

Italian (complete; even got two &#8211; by Gianni [...]]]></description>
			<content:encoded><![CDATA[<p><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright size-full wp-image-1417" title="Internationalization!" src="http://w-shadow.com/wp-content/uploads/2009/10/flags.jpg" alt="Image credit : Rawkus @ sxc.hu" width="200" height="130" />I&#8217;ve recently added internationalization support to my <a href="http://w-shadow.com/blog/2007/08/05/broken-link-checker-for-wordpress/">Broken Link Checker plugin</a>, so if you like the plugin and would like to see it in your own language, consider contributing a translation! So far people are working, or have already sent in, localization files for the following languages :</p>
<ul>
<li>Italian (<em>complete; even got two &#8211; by Gianni Diurno and by Giacomo Ross. Whoops, my fault.</em>)</li>
<li>Danish (<em>complete; by <em>Georg S. Adamsen</em></em>)</li>
<li>Chinese, Simplified (<em>complete; by HankYang</em>)</li>
<li>Dutch (<em>complete; by Gideon van Melle</em>)</li>
<li>German (<em>complete; by Alex Frison</em>)</li>
<li>French (<em>complete; by Whiler</em><em></em>)</li>
</ul>
<p>If you&#8217;d like to create your own localization, please notify me via a comment or an email first so that I can add you to the list above. Otherwise we might get (another) tricky situation with two users sending in two independent translations for the same language.</p>
<p>Here are some useful resources related to plugin translation :</p>
<ul>
<li><a href="http://codex.wordpress.org/Translating_WordPress#Translation_Tools">List of translation tools at WordPress Codex</a></li>
<li><a href="http://urbangiraffe.com/articles/translating-wordpress-themes-and-plugins/">Translating WordPress Plugins &amp; Themes</a></li>
<li><a href="http://www.gnu.org/software/gettext/manual/html_node/PO-Files.html#PO-Files">PO file format</a></li>
<li><a href="http://www.gnu.org/software/gettext/manual/html_node/Header-Entry.html#Header-Entry">PO file header format</a></li>
</ul>
<hr/>Copyright &copy; 2009 <strong><a href="http://w-shadow.com">W-Shadow.com</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@w-shadow.com so we can take legal action immediately.]]></content:encoded>
			<wfw:commentRss>http://w-shadow.com/blog/2009/10/30/plugin-translators-wanted/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Get The Shiny New Premium Link Cloaker Now</title>
		<link>http://w-shadow.com/blog/2009/10/02/get-the-shiny-new-premium-link-cloaker-now/</link>
		<comments>http://w-shadow.com/blog/2009/10/02/get-the-shiny-new-premium-link-cloaker-now/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 19:19:29 +0000</pubDate>
		<dc:creator>White Shadow</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Making Money]]></category>
		<category><![CDATA[News and Rants]]></category>
		<category><![CDATA[affiliate marketing]]></category>
		<category><![CDATA[new version]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress plugins]]></category>

		<guid isPermaLink="false">http://w-shadow.com/?p=1315</guid>
		<description><![CDATA[During the last few months I have been working on an improved premium version of my popular link cloaking plugin. And now, on this unquestionably glorious day, I finally deem it sufficiently polished and bug-free to be ready for public release. So if you do affiliate marketing and want to protect your commissions, go check [...]]]></description>
			<content:encoded><![CDATA[<p>During the last few months I have been working on an improved premium version of my popular link cloaking plugin. And now, on this unquestionably glorious day, I finally deem it sufficiently polished and bug-free to be ready for public release. So if you do affiliate marketing and want to protect your commissions,<a href="http://eclipsecloaker.com/"> go check it out</a>! (This link will take you to the new website I&#8217;ve created specifically for this plugin.)</p>
<h3>Feature Highlights</h3>
<ul>
<li>Automatically cloak links in any part of your site. This means you can also cloak links in the sidebar, footer, etc.</li>
<li>Comes with multiple cloaking techniques, like the ability to display the cloaked link in a frame or hide the HTTP referer info.</li>
<li>Improved click statistics + optional Google Analytics integration.</li>
<li>Gives you more control over which links get cloaked &#8211; e.g. you can cloak a bunch of links based on their domain name.</li>
<li>Backwards compatible with the free version &#8211; the settings will be imported automatically and any links you&#8217;ve cloaked using the &lt;!&#8211;cloak&#8211;&gt; tag or the &#8220;Cloak All&#8221; mode will continue to be cloaked with no additional effort on your part. The old &#8220;static&#8221; cloaked links can be imported with a few clicks.</li>
<li>A new cool name &#8211; <em>Eclipse Link Cloaker</em> <img src='http://w-shadow.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ul>
<p>You can find a more complete list of features (along with screenshots and tutorials) <a href="http://eclipsecloaker.com/">on the plugins website</a>.</p>
<h3>Wait, &#8220;Premium&#8221;?</h3>
<p>Yes, that curious adjective means the plugin also comes with a price-tag. Not to worry though &#8211; during the initial release period you can grab the new plugin for a meagre sum of $25 and apply it&#8217;s awesome cloaking power to any number of sites. There&#8217;s even a 100% money-back guarantee, so you wouldn&#8217;t really be risking anything.</p>
<h3>Miscellaneous Notes</h3>
<p>Phew. I hope that didn&#8217;t sound too much like sales talk. Anyway, there are a few more minor points I&#8217;d like to mention :</p>
<ul>
<li>There will be an affiliate program with 50%-70% commissions. It&#8217;s already functional now (so if you have any special ideas, let me know), I just haven&#8217;t set up the public-facing affiliate how-to and such.</li>
<li>The plugin will have free, automatic updates and can be updated using the same interface that is used to update plugins hosted on wordpress.org.</li>
<li>Obviously, there&#8217;s a little bit of DRM involved.</li>
<li><code>mod_rewrite</code>/pretty permalinks are no longer required. The plugin automatically detects what kind permalink structure the user has and alters it&#8217;s cloaked URLs appropriately.</li>
</ul>
<p>If you have any questions or doubts, feel free to leave a comment.</p>
<hr/>Copyright &copy; 2009 <strong><a href="http://w-shadow.com">W-Shadow.com</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@w-shadow.com so we can take legal action immediately.]]></content:encoded>
			<wfw:commentRss>http://w-shadow.com/blog/2009/10/02/get-the-shiny-new-premium-link-cloaker-now/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How To Make WordPress Check For Updates Immediately</title>
		<link>http://w-shadow.com/blog/2009/10/01/force-update-check-plugin/</link>
		<comments>http://w-shadow.com/blog/2009/10/01/force-update-check-plugin/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 13:08:21 +0000</pubDate>
		<dc:creator>White Shadow</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[core upgrades]]></category>
		<category><![CDATA[downloads]]></category>
		<category><![CDATA[plugin updates]]></category>
		<category><![CDATA[theme updates]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress plugins]]></category>
		<category><![CDATA[WordPress updates]]></category>
		<category><![CDATA[WordPress upgrades]]></category>
		<category><![CDATA[wp]]></category>

		<guid isPermaLink="false">http://w-shadow.com/?p=1308</guid>
		<description><![CDATA[WordPress automatically checks for plugin, theme and core updates once every 12 hours. This is normally fine, but it can become annoying when you know there&#8217;s an important update or bugfix available yet it won&#8217;t show up in your Dashboard until the next time WP gets around to checking for it. Of course, you can [...]]]></description>
			<content:encoded><![CDATA[<p>WordPress automatically checks for plugin, theme and core updates once every 12 hours. This is normally fine, but it can become annoying when you <em>know</em> there&#8217;s an important update or bugfix available yet it won&#8217;t show up in your Dashboard until the next time WP gets around to checking for it. Of course, you can also install the update(s) manually, but surely that seems like too much work when you <em>should</em> be able to use the one-click upgrade function instead <img src='http://w-shadow.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<p>So I created <strong>Force Update Check</strong>, a small plugin that gives you the ability to make WP check for plugin, theme and core upgrades immediately. Just install it and go to <em>Plugins -&gt; Check Updates Now</em> whenever you want to run the update check. Alternatively, you can also find it in the list of installed plugin in  the <em>Plugins</em> tab and click the &#8220;Run&#8221; action link.</p>
<p>Here&#8217;s a screenshot of the plugin in action :  <img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-1307" title="Screenshot of the &quot;Force Update Check&quot; plugin" src="http://w-shadow.com/wp-content/uploads/2009/10/Force-Update-Check-screenshot.png" alt="Screenshot of the &quot;Force Update Check&quot; plugin" width="321" height="158" /></p>
<p>You can click the &#8220;Found XYZ updates!&#8221; links to go to the appropriate Dashboard tab and view/install the available updates.</p>
<h3>Download</h3>
<p><strong style="font-size:larger;"><a href="http://w-shadow.com/files/force-update-check.zip">force-update-check.zip</a></strong> (2 KB)</p>
<p><strong>Requirements</strong></p>
<ul>
<li>WordPress 2.8+</li>
</ul>
<hr/>Copyright &copy; 2009 <strong><a href="http://w-shadow.com">W-Shadow.com</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@w-shadow.com so we can take legal action immediately.]]></content:encoded>
			<wfw:commentRss>http://w-shadow.com/blog/2009/10/01/force-update-check-plugin/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Changelog Generator For WordPress Plugins</title>
		<link>http://w-shadow.com/blog/2009/08/20/changelog-generator-for-wordpress-plugins/</link>
		<comments>http://w-shadow.com/blog/2009/08/20/changelog-generator-for-wordpress-plugins/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 19:25:55 +0000</pubDate>
		<dc:creator>White Shadow</dc:creator>
				<category><![CDATA[Applications]]></category>
		<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[changelog]]></category>
		<category><![CDATA[PHP script]]></category>
		<category><![CDATA[plugin directory]]></category>
		<category><![CDATA[repository]]></category>
		<category><![CDATA[SVN]]></category>
		<category><![CDATA[Trac]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress plugins]]></category>

		<guid isPermaLink="false">http://w-shadow.com/?p=1276</guid>
		<description><![CDATA[A few months ago, WordPress.org introduced a new feature available to plugins hosted in the Plugin Directory &#8211; changelogs. Having an easily accessible changelog is certainly a usability plus, but I felt it created unnecessary work for plugin developers. Personally, I usually provide meaningful log messages (example) when uploading a new version of a plugin [...]]]></description>
			<content:encoded><![CDATA[<p>A few months ago, WordPress.org introduced a new feature available to plugins hosted in the Plugin Directory &#8211; <a href="http://westi.wordpress.com/2009/06/20/changelogs-changelogs-changelogs/">changelogs</a><span>. Having an easily accessible changelog is certainly a usability plus, but I felt it created unnecessary work for plugin developers. Personally, I usually provide meaningful log messages (</span><a href="http://plugins.trac.wordpress.org/log/broken-link-checker">example</a><span>) when uploading a new version of a plugin to the repository, so updating the changelog with pretty much the same information seems redundant.</span></p>
<p><span>This gave me the idea to write a PHP script that can generate a wordpress.org-compatible changelog from the revision log. It works for any plugin hosted in the official plugins directory and <span class="hiddenGrammarError">can be</span> a handy starting point for adding a changelog to plugins that don&#8217;t have it yet :</span></p>
<ul>
<li><strong><a href="http://w-shadow.com/wpchangelog/"><span>Run the changelog generator</span></a></strong></li>
<li><a href="http://w-shadow.com/files/wpchangelog.zip">Download the source code</a> (97 KB, requires PHP 5)</li>
</ul>
<p>For those too lazy to click one of the above links, here&#8217;s a screenshot :</p>
<p><a href="http://w-shadow.com/wpchangelog/"><img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-1278" title="Changelog generator for WordPress plugins" src="http://w-shadow.com/wp-content/uploads/2009/08/Changelog-Generator.png" alt="Changelog generator for WordPress plugins" width="490" height="205" /></a></p>
<p>And I really do need to stop making these small hacks <img src='http://w-shadow.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<hr/>Copyright &copy; 2009 <strong><a href="http://w-shadow.com">W-Shadow.com</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@w-shadow.com so we can take legal action immediately.]]></content:encoded>
			<wfw:commentRss>http://w-shadow.com/blog/2009/08/20/changelog-generator-for-wordpress-plugins/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Vote For The 2009 Open Source CMS Award Nominations</title>
		<link>http://w-shadow.com/blog/2009/08/19/open-source-cms-award/</link>
		<comments>http://w-shadow.com/blog/2009/08/19/open-source-cms-award/#comments</comments>
		<pubDate>Tue, 18 Aug 2009 21:31:39 +0000</pubDate>
		<dc:creator>White Shadow</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[News and Rants]]></category>
		<category><![CDATA[awards]]></category>
		<category><![CDATA[CMS]]></category>
		<category><![CDATA[contest]]></category>
		<category><![CDATA[open source cms]]></category>
		<category><![CDATA[Open Source CMS Award]]></category>
		<category><![CDATA[pictures]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://w-shadow.com/?p=1266</guid>
		<description><![CDATA[Packt Publishing is running their 2009 Open Source CMS Award, so go forth and nominate your favorite CMS for one of the award categories! And in case you&#8217;re not sure which CMS to vote for, here&#8217;s a friendly suggestion: 

Clik the image to go to the nomination screen with WordPress pre-selected  
Hat tip to [...]]]></description>
			<content:encoded><![CDATA[<p><em>Packt Publishing</em> is running their <em>2009 Open Source CMS Award</em>, so go forth and nominate your favorite CMS for one of the <a href="http://www.packtpub.com/award" class="broken_link" >award categories</a>! And in case you&#8217;re not sure which CMS to vote for, here&#8217;s a friendly suggestion: </p>
<p><a href="http://www.packtpub.com/nominate-overall-open-source-cms-award-winner?cms=wordpress" class="broken_link"  rel="nofollow"><img style=' display: block; margin-right: auto; margin-left: auto;'  src="http://w-shadow.com/wp-content/uploads/2009/08/I-want-YOU-WordPress.jpg" alt="I want YOU! To vote for WordPress" title="I want YOU! To vote for WordPress" width="425" height="538" class="aligncenter size-full wp-image-1265" /></a></p>
<p>Clik the image to go to the nomination screen with WordPress pre-selected <img src='http://w-shadow.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Hat tip to <a href="http://planetozh.com/blog/2009/08/2009-open-source-cms-award-nominate-wordpress/">Ozh</a> for the info.</p>
<hr/>Copyright &copy; 2009 <strong><a href="http://w-shadow.com">W-Shadow.com</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@w-shadow.com so we can take legal action immediately.]]></content:encoded>
			<wfw:commentRss>http://w-shadow.com/blog/2009/08/19/open-source-cms-award/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Ideas RSS Feed</title>
		<link>http://w-shadow.com/blog/2009/08/13/wordpress-ideas-rss-feed/</link>
		<comments>http://w-shadow.com/blog/2009/08/13/wordpress-ideas-rss-feed/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 19:13:07 +0000</pubDate>
		<dc:creator>White Shadow</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[rss feed]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress ideas]]></category>
		<category><![CDATA[Yahoo Pipes]]></category>

		<guid isPermaLink="false">http://w-shadow.com/?p=1258</guid>
		<description><![CDATA[WordPress.org has an Ideas section where users can post their suggestions for new WordPress features and comment on ideas posted by other users. If you&#8217;re a plugin developer or just someone who blogs about WP, this page is a good place to look for new&#8230; well, ideas. It doesn&#8217;t have an RSS feed though, so [...]]]></description>
			<content:encoded><![CDATA[<p><img style=' float: left; padding: 4px; margin: 0 7px 2px 0;'  src="http://w-shadow.com/wp-content/uploads/2009/08/1012471_19949056.jpg" alt="A lightbulb by CraigPJ @sxc.hu" title="Bright ideas (image credit : lightbulb by CraigPJ @ sxc.hu)" width="150" height="251" class="alignleft size-full wp-image-1261" />WordPress.org has an <a href="http://wordpress.org/extend/ideas/">Ideas section</a> where users can post their suggestions for new WordPress features and comment on ideas posted by other users. If you&#8217;re a plugin developer or just someone who blogs about WP, this page is a good place to look for new&#8230; well, ideas. It doesn&#8217;t have an RSS feed though, so I <a href="http://pipes.yahoo.com/pipes/pipe.info?_id=1097af1f2c4e2392f07d5b01ec5118b1">made one</a> with <em>Yahoo! Pipes</em>. Now you can <a href="http://pipes.yahoo.com/pipes/pipe.run?_id=1097af1f2c4e2392f07d5b01ec5118b1&#038;_render=rss">subscribe to this feed</a> and get notified about new feature suggestions as they are submitted. </p>
<p><em>Sidenote :</em> An RSS feed is not the only thing WordPress Ideas is missing usability-wise : the site only shows a handful of latest ideas, there&#8217;s no way to browse older submissions, no way to sort the results, the search page <em>also</em> displays only the first 20 or so results (regardless of the query!) and so on. It seems I&#8217;m not the only one to <a href="http://www.wptavern.com/an-idea-for-wordpress-ideas">notice this</a>, but so far the situation is unchanged.</p>
<p>I did write a scraper script and dump the entire idea list into a local MySQL database for easy searching, but I don&#8217;t think it would be legal for me to post that here <img src='http://w-shadow.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<hr/>Copyright &copy; 2009 <strong><a href="http://w-shadow.com">W-Shadow.com</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@w-shadow.com so we can take legal action immediately.]]></content:encoded>
			<wfw:commentRss>http://w-shadow.com/blog/2009/08/13/wordpress-ideas-rss-feed/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>&#8220;I&#8217;m In It For The Money&#8221;, Or My First Commercial Plugin</title>
		<link>http://w-shadow.com/blog/2009/08/07/my-first-commercial-plugin/</link>
		<comments>http://w-shadow.com/blog/2009/08/07/my-first-commercial-plugin/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 20:42:51 +0000</pubDate>
		<dc:creator>White Shadow</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[News and Rants]]></category>
		<category><![CDATA[commercial plugins]]></category>
		<category><![CDATA[GPL]]></category>
		<category><![CDATA[making money online]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress plugins]]></category>

		<guid isPermaLink="false">http://w-shadow.com/?p=1241</guid>
		<description><![CDATA[I&#8217;m planning to release my first commercial WordPress plugin later this month. The plugin will be an improved version of the Link Cloaking plugin and will include a bunch of new and exciting features, like cloaking links anywhere on the site (as opposed to only detecting links inside post/page content) and the ability to display [...]]]></description>
			<content:encoded><![CDATA[<p><img style=' float: left; padding: 4px; margin: 0 7px 2px 0;'  class="alignleft size-full wp-image-1246" title="WordPress software box" src="http://w-shadow.com/wp-content/uploads/2009/08/WordPress-box-done.jpg" alt="WordPress software box" width="220" height="264" />I&#8217;m planning to release my first commercial WordPress plugin later this month. The plugin will be an improved version of the <a href="http://w-shadow.com/blog/2007/07/28/link-cloaking-plugin-for-wordpress/">Link Cloaking plugin</a> and will include a bunch of new and exciting features, like cloaking links anywhere on the site (as opposed to only detecting links inside post/page content) and the ability to display the target page inside a frame.</p>
<p>Commercial plugins are a rare sight in the WordPress community, so I want to discuss the general idea of for-pay WP plugins in more detail and provide my take on the relevant issues that are often raised in this regard.</p>
<h3>Licensing Woes</h3>
<p>The first point of contention seems to be whether plugins have to be GPL-compatible. Since WordPress is GPL all &#8220;derivative work&#8221; must also use a compatible license, which would allow the user to freely modify and redistribute (or even resell) the source code &#8211; something that is certainly not conducive to plugin authors making a profit. This question basically boils down to deciding whether plugins qualify as &#8220;derivative work&#8221;. The short answer to that is &#8220;Yes, except for very complex plugins&#8221;. Otto explains it well in <a href="http://www.webmaster-source.com/2009/01/29/why-theyre-wrong-wordpress-plugins-shouldnt-have-to-be-gpl/#IDComment26889814">this comment</a> (excerpt) :</p>
<blockquote><p>Your simpler plugins are generally heavily derivative. They tend to be just a few functions, hooked directly into WordPress in specific places. The functions themselves derive their calling methods from the necessity of how WordPress expects them to hook in, and so they are derivatives of it.</p>
<p>Complex plugins, on the other hand, tend to be more independent. They have several files, their own mechanisms for operation, and sometimes there&#8217;s just one &#8220;plugin&#8221; file that hooks the WordPress bits up with the plugin&#8217;s bits. These have a better case for being separate works.</p></blockquote>
<p>Otto also mentions Bad Behaviour as an example of a complex plugin that is largely independent of the WordPress core and even has versions for other blogging systems. The caching plugin <a href="http://aciddrop.com/">PHP Speedy WP</a> might qualify as another mostly independent plugin.</p>
<p>Still, the majority of plugins are deeply integrated with WP and thus need to be GPL-licensed. So I&#8217;m also going to release my commercial plugin with a GPL-compatible license.</p>
<p>The next question is whether you can legally sell GPL software. This is an easy one to answer. Here&#8217;s what the <a href="http://www.gnu.org/licenses/gpl-faq.html#DoesTheGPLAllowMoney">official GPL FAQ</a> says about it :</p>
<blockquote><p><strong>Does the GPL allow me to sell copies of the program for money?</strong></p>
<p>Yes, the GPL allows everyone to do this. The right to sell copies is part of the definition of free software. Except in one special situation, there is no limit on what price you can charge. (The one exception is the required written offer to provide source code that must accompany binary-only release.)</p></blockquote>
<h3>The Very Model of a Businessman</h3>
<p>Of course, just slapping a &#8220;GPL&#8221; label on a for-pay plugin is hardly the solution &#8211; as I mentioned before, the first person who buys it could just turn around and start giving it away for free! So if you want to make money by creating GPL software you need concoct a business model that takes the peculiarities of this licensing scheme into account.</p>
<p>There are two possible business models that I can think of :</p>
<ul>
<li><strong>Paid support.</strong> Make the plugin itself free, but only charge for answering users&#8217; questions. Alternatively, sell the plugin and include &#8220;unlimited&#8221; support in the price.</li>
<li><strong>Service-based.</strong> This mostly applies only to plugins that act as wrappers for an online service/API. The plugin can be fully GPL-compliant and but access to the remote service needn&#8217;t be. For example, you can limit the number of API requests non-paying users can make, or offer access to additional API features for a modest subscription fee. This is the business model of plugins like Akismet and <a href="http://www.afterthedeadline.com/">After The Deadline</a>.</li>
</ul>
<p>I intend to use a combination of the two for my plugin.</p>
<h3>But Wait, Is There a Market?</h3>
<p>Finally, a perfectly legal business plan will be of no use if no-one wants to buy your software. I&#8217;ll readily admit that this problem isn&#8217;t limited to WP plugins, but it I must say it&#8217;s still especially pronounced in the WordPress community &#8211; people have grown used to getting free stuff. Premium themes are still a source of much contention and commercial plugins are extremely rare and, at least for the time being, confined to a few small niches.</p>
<p>The best solution I&#8217;ve seen suggested so far is creating an online store similar to the iPhone App Store. The main objection to this idea is that often users install a plugin just to see if it does what they want, and it would be wrong to force them to pay in advance for a product of unknown quality. However, this is a solvable problem. For example, you could just give the user a free 10-day trial and ask them to buy the plugin if they still want to use it afterwards. Make it so that unregistered users don&#8217;t get automatic updates, etc. This wouldn&#8217;t even be that hard to implement and enforce if done at the core level &#8211; the WordPress.org plugin repository already tracks what plugins you use.</p>
<p>Either way, it will probably be a while before we see anything like that implemented. Luckily my own commercial plugin falls under one of the few niches where paid plugins are relatively common and expected &#8211; Internet marketing. So I think I have a sufficiently good shot at selling a few copies and making an obscenely large sum of money <img src='http://w-shadow.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Comments and opinions are welcome.</p>
<hr/>Copyright &copy; 2009 <strong><a href="http://w-shadow.com">W-Shadow.com</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@w-shadow.com so we can take legal action immediately.]]></content:encoded>
			<wfw:commentRss>http://w-shadow.com/blog/2009/08/07/my-first-commercial-plugin/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Take Advantage of Social Proof for Fun and Profit</title>
		<link>http://w-shadow.com/blog/2009/06/09/take-advantage-of-social-proof-for-fun-and-profit/</link>
		<comments>http://w-shadow.com/blog/2009/06/09/take-advantage-of-social-proof-for-fun-and-profit/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 17:24:10 +0000</pubDate>
		<dc:creator>White Shadow</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[advertising]]></category>
		<category><![CDATA[lists]]></category>
		<category><![CDATA[popularity contest]]></category>
		<category><![CDATA[social marketing]]></category>
		<category><![CDATA[social proof]]></category>
		<category><![CDATA[subscribers]]></category>
		<category><![CDATA[traffic]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress plugins]]></category>

		<guid isPermaLink="false">http://w-shadow.com/?p=1148</guid>
		<description><![CDATA[Social proof is an easy way to bump your traffic figures a little bit and make yourself look more authoritative. Today I&#8217;ll show you five simple ways to apply it to your WordPress blog.
Preface
The essence of &#8220;social proof&#8221; is simple : when people don&#8217;t have a lot of information about something, they will usually look [...]]]></description>
			<content:encoded><![CDATA[<p><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright size-full wp-image-1155" title="Social Proof [image credit : michelini @ stock.xchng]" src="http://w-shadow.com/wp-content/uploads/2009/06/pointing-hands.jpg" alt="Social Proof [image credit : michelini @ stock.xchng]" width="300" height="218" /><a title="No love for the greedy wiki!" rel="nofollow" href="http://en.wikipedia.org/wiki/Social_Proof">Social proof</a> is an easy way to bump your traffic figures a little bit and make yourself look more authoritative. Today I&#8217;ll show you five simple ways to apply it to your WordPress blog.</p>
<h3>Preface</h3>
<p>The essence of &#8220;social proof&#8221; is simple : when people don&#8217;t have a lot of information about something, they will usually look at what other people think or do in a similar situation and act accordingly. This can happen both subconsciously (see e.g. the <a href="http://en.wikipedia.org/wiki/Halo_effect">halo effect</a>) and very explicitly, like when people check IMDB ratings before deciding which movie to see. You can use this behaviour to your advantage by presenting your visitors with positive social proof about your site or product.</p>
<p>And one last note before we go ahead with specific examples : obviously, social proof is only useful when it says something <em>good</em> about your offerings. If you don&#8217;t have much to show in the way of RSS subscribers (for example), just don&#8217;t display that number on your site.</p>
<h3>Five Glorious (Yet Subtle) Techniques</h3>
<h4>1. &#8220;Popular posts&#8221;</h4>
<p>This is one of the easiest approaches &#8211; simply put up a sidebar widget listing the most popular posts on your site. You can use a plugin like <a href="http://www.dyasonhat.com/wordpress-plugins/popularity-contest-plugin-wordpress-27-working-version/">Popularity Contest</a> or <a href="http://wordpress.org/extend/plugins/wordpress-popular-posts/">Popular Posts</a> to generate it based on view count, or just write the list yourself. This is especially useful for converting first-time visitors into returning readers as they will be more likely to see your best content and become properly impressed. As an added benefit, it also subtly shows that your site is popular enough to <em>have</em> a &#8220;Popular posts&#8221; list.</p>
<h4>2. Ratings</h4>
<p>Ratings are a double-edged sword. They&#8217;re easy to set up with a plugin like <a href="http://lesterchan.net/portfolio/programming/php/#wp-postratings">WP-PostRatings</a> and a 5-star rating on an article serves an obvious sign of quality for new visitors. However, you will need a sufficiently popular site to even <em>get</em> any ratings in the first place, and not all of them will be favorable. Also, the first few voters can have a huge influence on the eventual outcome because the later voters will take the current average rating into account when posting their own. There are, of course, ways to abuse this effect&#8230;</p>
<h4>3. Download count</h4>
<p>Do you offer downloads on your site? If yes, set up a download monitor and display the number of downloads to the visitors. Users are more likely to download something when they can see that a lot of other people have already done it. Basically, a download is also an indirect vote. You can use <a href="http://blue-anvil.com/archives/wordpress-download-monitor-3">WordPress Download Monitor</a> or <a href="http://lesterchan.net/portfolio/programming/php/#wp-downloadmanager">WP-DownloadManager</a> to add download monitoring to your site.</p>
<p><em>(Hmm, I really should take my own advice on this one.)</em></p>
<h4>4. Comment count</h4>
<p>Got an impressive number comments? <a href="http://planetozh.com/blog/my-projects/liz-strauss-comment-count-badge-widget-wordpress/">Show it off with a stylish badge</a>. This will show your visitors that discussion is welcomed on your site and encourage them to leave a comment of their own. As with visitor/download count, the amount of comments can also inform the user how obscenely popular your site is.</p>
<h4>5. Social bookmarking badges</h4>
<p>At least for the purposes of this post, social bookmarking is an off-site ratings system and should be treated appropriately. It&#8217;s also relatively niche, so, compared to on-site ratings, you will need considerably more visitors to get any number of votes. On the other hand, social bookmarking is <em>the</em> supreme example of social proof at work, so it would be <a href="http://www.thenoobcomic.com/index.php?pos=169">unforgivenable</a> not to include it in this post.</p>
<p>I won&#8217;t list any specific plugins for this one &#8211; you can find the relevant widget(s) on each particular site.</p>
<h3>The Closing Rant</h3>
<p>The above tips won&#8217;t make you an Internet celebrity overnight. However, little details like these can be what makes a potential reader/customer choose to trust your site over the myriad other sites in your niche. The success of social bookmarking, social marketing, and other &#8220;social-whatever&#8221; sites is a clear indication that people trust social proof works, often better than other types of advertising and PR.</p>
<p>It&#8217;s also an indication that we are sliding pleasantly towards the modes of communication popular with our honorable ancestors, the tribes-folk of the Hunter-Gatherer Town <img src='http://w-shadow.com/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
<hr/>Copyright &copy; 2009 <strong><a href="http://w-shadow.com">W-Shadow.com</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@w-shadow.com so we can take legal action immediately.]]></content:encoded>
			<wfw:commentRss>http://w-shadow.com/blog/2009/06/09/take-advantage-of-social-proof-for-fun-and-profit/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Advanced Spell Checker For WordPress</title>
		<link>http://w-shadow.com/blog/2009/06/02/advanced-spell-checker-for-wordpress/</link>
		<comments>http://w-shadow.com/blog/2009/06/02/advanced-spell-checker-for-wordpress/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 12:20:13 +0000</pubDate>
		<dc:creator>White Shadow</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[News and Rants]]></category>
		<category><![CDATA[news]]></category>
		<category><![CDATA[online spell check]]></category>
		<category><![CDATA[spell check]]></category>
		<category><![CDATA[spell checker]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress plugins]]></category>

		<guid isPermaLink="false">http://w-shadow.com/?p=1138</guid>
		<description><![CDATA[After the Deadline is an advanced spell checker plugin for WordPress that was released on Monday. In addition to the standard spell check and suggestions features, it also includes style and grammar checking. The plugin also lets you define custom dictionary of sorts &#8211; you can set it to always ignore certain words. Here&#8217;s the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.afterthedeadline.com/">After the Deadline</a><span> is an advanced spell checker plugin for WordPress that <span class="hiddenGrammarError">was released</span> on Monday. In addition to the standard spell check and suggestions features, it also includes style and grammar checking. The plugin </span><em>also</em> lets you define custom dictionary of sorts &#8211; you can set it to always ignore certain words. Here&#8217;s the plugin in action :  <img style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-1141" title="After the Deadline in action" src="http://w-shadow.com/wp-content/uploads/2009/06/after-the-deadline1.png" alt="After the Deadline in action" width="454" height="186" /></p>
<p><span>What I found especially interesting is how AtD can detect misused words. For example, most spell checkers would blindly assume that the sentence &#8220;I don&#8217;t know if it&#8217;s wrong or rite&#8221; is correct because the word &#8220;rite&#8221; is in their dictionary. &#8220;After the Deadline&#8221; <span class="hiddenSuggestion">on the other hand</span> uses contextual spell check and will flag &#8220;<span class="hiddenSpellError">rite</span>&#8221; as a mistake, suggesting you use &#8220;right&#8221; instead. Well, at least that&#8217;s the theory. I managed to get that particular example to work after a few tries, but apparently this feature still needs some work.</span></p>
<p>The plugin itself is actually a wrapper for the <a href="http://www.afterthedeadline.com/api.slp">AfterTheDeadline.com API service</a><span>. This means that like with Akismet, you will need to sign up for an account and get an API key before you can use the WP plugin. The service is free for casual users but large sites and prolific writers <span class="hiddenGrammarError">are encouraged</span> to upgrade to a subscription-based service plan.</span></p>
<p>The only drawback is that AtD only supports English and the author isn&#8217;t planning to add other languages anytime soon. Nevertheless, the plugin will certainly be useful to the myriad English bloggers, and also to people who aren&#8217;t native English speakers yet still choose to write in the de-facto <em>lingua franca</em>.</p>
<hr/>Copyright &copy; 2009 <strong><a href="http://w-shadow.com">W-Shadow.com</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@w-shadow.com so we can take legal action immediately.]]></content:encoded>
			<wfw:commentRss>http://w-shadow.com/blog/2009/06/02/advanced-spell-checker-for-wordpress/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Broken Link Checker 0.5 Available</title>
		<link>http://w-shadow.com/blog/2009/05/22/broken-link-checker-05/</link>
		<comments>http://w-shadow.com/blog/2009/05/22/broken-link-checker-05/#comments</comments>
		<pubDate>Fri, 22 May 2009 19:20:21 +0000</pubDate>
		<dc:creator>White Shadow</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[News and Rants]]></category>
		<category><![CDATA[broken link checker]]></category>
		<category><![CDATA[update]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[WordPress plugins]]></category>

		<guid isPermaLink="false">http://w-shadow.com/?p=1114</guid>
		<description><![CDATA[The latest version of Broken Link Checker for WordPress is now available on WordPress.org. If you&#8217;re already using the plugin you should get an update notification within 24 hours. Below you&#8217;ll find a list of changes and a bit commentary about the update.
Around 20 people downloaded the beta version. I haven&#8217;t received any death threats [...]]]></description>
			<content:encoded><![CDATA[<p>The latest version of <a href="http://w-shadow.com/blog/2007/08/05/broken-link-checker-for-wordpress/">Broken Link Checker for WordPress</a> is now available on WordPress.org. If you&#8217;re already using the plugin you should get an update notification within 24 hours. Below you&#8217;ll find a list of changes and a bit commentary about the update.</p>
<p>Around 20 people downloaded <a href="http://w-shadow.com/blog/2009/05/06/broken-link-checker-05-beta/">the beta version</a>. I haven&#8217;t received any death threats related to that release, so I&#8217;m just going to go ahead and presume there are no critical bugs in the new code. But if you do find anything that looks like a glitch feel free to report it in the comment section or via my contact page.</p>
<h3>What&#8217;s New</h3>
<ul>
<li>Check links in bookmarks (AKA the blogroll).</li>
<li>Check links in custom fields (optional). You need to list the custom fields you want to be checked in <em>Settings -&gt; Link Checker</em>. At the moment the plugin is only able to parse fields that contain a complete URL and nothing more. Note that when you add a new field to the configuration, it will take a while before the plugin re-parses your posts and detects the field values.</li>
<li>Manage all links from one page. You can view, edit or remove broken links, redirects and any other link in any post, custom field or the blogroll, from one page.</li>
<li>An all-new dashboard widget that displays status info about broken links. To save dashboard space you can close the widget and configure it to automatically pop open if problematic links are detected (this is actually on by default).</li>
<li>Improved database efficiency. For example, information about URLs and places where they are used is now stored separately. This is more elegant and enables some neat features.</li>
<li>Check each URL only once per the user-configured period (except broken links that are still double-checked). Previously, the plugin would check links that are used in X different posts X times in a row.</li>
<li>Link modifications are applied to all posts automatically. You can edit or delete a link via the plugin&#8217;s tab and all the posts, custom fields and bookmarks will be automatically updated to reflect the change.</li>
<li>Posts are only re-parsed when they change. Previously the plugin would periodically re-check each post for new links which was wasteful and hurt performance.</li>
<li>All received HTTP headers are now included in the detailed log (previously only the last one was shown).</li>
<li>Generally more informative logs.</li>
<li>You can quickly add URLs to the exclusion list by clicking the &#8220;Exclude&#8221; button.</li>
<li>Added paging support to the link list.</li>
<li>Everything runs on jQuery instead of Prototype now.</li>
<li>Everything is way more object-oriented now.</li>
<li>Everything uses AJAX the &#8220;proper&#8221; way now by calling <code>admin-ajax.php</code> instead of a separate plugin file.</li>
<li>Significantly improved database performance. Some queries are still slow since it&#8217;s not practical to put an index on a DATETIME column, but overall the plugin uses the WordPress DB much more efficiently.</li>
<li>Sorting features are gone, for now. I&#8217;ll probably add a number of sorting options in a later version.</li>
<li>Improved UI that&#8217;s more in line with WP 2.7 style. For example, most action links in the &#8220;Broken Links&#8221; tab only show up when you hover over the corresponding row.</li>
<li>Links in custom fields or the blogroll get an appropriate icon in the broken link list.</li>
<li>The URL editing feature is more elegant and there&#8217;s finally a &#8220;Cancel&#8221; button.</li>
<li>More intuitive AJAX behaviour. For example, when an AJAX call completes it will flash the appropriate row green or do something else to indicate that it was successful.</li>
<li>No more hidden debug output in HTML comments. I&#8217;ve switched to the excellent FirePHP + FireBug debugging combo and it works great.</li>
<li>Only one instance of the link checker can be active at one time. Previously it would just plough on, blissfully unaware of race conditions and other related nastiness. This behaviour was probably what caused the mysterious slowdowns and inexplicable bugs that a few users encoutered. Now the worker function uses file locking and will abort if there&#8217;s already another worker running.</li>
<li>The minimum required WordPress version is now 2.7. If you&#8217;re using something older, upgrade or get an older version of the plugin from the wordpress.org archives. Progress marches on, humans.</li>
</ul>
<h3>To-Do</h3>
<p>These are the features that will probably be implemented in the relatively near future (i.e. before the winter <img src='http://w-shadow.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ).</p>
<ul>
<li>Result sorting on the &#8220;Broken Links&#8221; page.</li>
<li>Cron support.</li>
<li>Some kind of pop-up tooltips for broken links in posts.</li>
<li>More optimization, e.g. don&#8217;t load the entire plugin when it&#8217;s not required.</li>
<li>An option to only check internal and/or external links.</li>
<li>Localization support.</li>
<li>Checking links in comments. <em>Maybe</em>. I&#8217;m still not convinced that would be all that useful.</li>
</ul>
<h3>1.0 ?</h3>
<p>In conclusion, I&#8217;m quite pleased with how the update has turned out. I was really tempted to break away from the fractional versioning scheme I&#8217;ve used for this plugin since the beginning and label this the true and complete &#8220;1.0&#8243; release, but the thought that there will almost certainly be a load of new bugs due to all the major changes made me reconsider. Maybe after all the to-do items are implemented&#8230; </p>
<p>By the time it gets to 1.0 this will probably the most powerful and robust plugin I&#8217;ve ever created. And then the robot uprising will happen.</p>
<hr/>Copyright &copy; 2009 <strong><a href="http://w-shadow.com">W-Shadow.com</a></strong>. This Feed is for personal non-commercial use only. If you are not reading this material in your news aggregator, the site you are looking at is guilty of copyright infringement. Please contact legal@w-shadow.com so we can take legal action immediately.]]></content:encoded>
			<wfw:commentRss>http://w-shadow.com/blog/2009/05/22/broken-link-checker-05/feed/</wfw:commentRss>
		<slash:comments>59</slash:comments>
		</item>
	</channel>
</rss>
