<?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>Scott Yang's Playground &#187; WordPress</title>
	<atom:link href="http://scott.yang.id.au/tag/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://scott.yang.id.au</link>
	<description>Faith, Technology and Randomness in Life, According to Scott</description>
	<lastBuildDate>Thu, 09 Feb 2012 09:01:12 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Upgraded to WordPress 3.0</title>
		<link>http://scott.yang.id.au/2010/06/upgraded-to-wordpress-3-0/</link>
		<comments>http://scott.yang.id.au/2010/06/upgraded-to-wordpress-3-0/#comments</comments>
		<pubDate>Mon, 21 Jun 2010 11:42:04 +0000</pubDate>
		<dc:creator>scotty</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://scott.yang.id.au/?p=1953</guid>
		<description><![CDATA[Just ran this on my various blogs: $ svn switch http://core.svn.wordpress.org/tags/3.0 And navigate to the Admin pages of the blog. Done &#8212; WordPress upgraded to the latest and the greatest within seconds. Would be faster if something like git is used instead of subversion (which I found slower and slower than git or hg), but [...]]]></description>
			<content:encoded><![CDATA[<p>Just ran this on my various blogs:</p>
<pre class="code">
$ svn switch http://core.svn.wordpress.org/tags/3.0
</pre>
<p><img src="http://scott.yang.id.au/file/images/wordpress.png" width="113" height="113" alt="WordPress" class="floaty"/> And navigate to the Admin pages of the blog. Done &#8212; <a href="http://wordpress.org/">WordPress</a> upgraded to the latest and the greatest within seconds. Would be faster if something like git is used instead of subversion (which I found slower and slower than <a href="http://git-scm.com/">git</a> or <a href="http://mercurial.selenic.com/">hg</a>), but certainly no complain here.</p>
<p>As of WordPress 3.0 &#8212; not much changed on the surface. I am pretty sure <a href="http://ma.tt/">Matt</a> and gang have done the heart transplant under the bonnet, but these days I am so out of touch with the latest WordPress development I seriously have no idea what has been changed. It does chew up a bit more memory, which can be a problem if you are running tiny virtual servers.</p>
<p>So far so good.</p>
]]></content:encoded>
			<wfw:commentRss>http://scott.yang.id.au/2010/06/upgraded-to-wordpress-3-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress 2.8 &#8220;Baker&#8221; Released</title>
		<link>http://scott.yang.id.au/2009/06/wordpress-28-baker-released/</link>
		<comments>http://scott.yang.id.au/2009/06/wordpress-28-baker-released/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 02:34:08 +0000</pubDate>
		<dc:creator>scotty</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://scott.yang.id.au/2009/06/wordpress-28-baker-released/</guid>
		<description><![CDATA[Got it on WordPress&#8217; Twitter status: WordPress 2.8 &#8220;Baker&#8221; is now live to the world! http://bit.ly/wordpress28 (spread the good word) Yup. It is here, and you can read more about the new features here. To upgrade to the latest version using subversion while Automattic haven&#8217;t tagged the 2.8 &#8211; Go into your previously checked-out WordPress [...]]]></description>
			<content:encoded><![CDATA[<p>Got it on <a href="http://twitter.com/wordpress/status/2111652227">WordPress&#8217; Twitter status</a>:</p>
<blockquote><p>WordPress 2.8 &#8220;Baker&#8221; is now live to the world! http://bit.ly/wordpress28 (spread the good word)</p></blockquote>
<p>Yup. It is <a href="http://wordpress.org/development/2009/06/wordpress-28/">here</a>, and you can read more about the new features <a href="http://codex.wordpress.org/Version_2.8">here</a>. To upgrade to the latest version using subversion while Automattic haven&#8217;t tagged the 2.8 &#8211;</p>
<ol>
<li>Go into your previously checked-out WordPress directory</li>
<li>Run <code>svn switch -r 11549 http://svn.automattic.com/wordpress/trunk/</code></li>
<li>Navigate to http://yourblob/wp-admin/upgrade.php</li>
</ol>
<p>Done! You are running WordPress 2.8! Of course some plugins and themes might not work but who cares. You are now using the latest and greatest :) Most new features are admin panel related, but the one that interests me the most is:</p>
<ul>
<li>Support timezones and automatic daylight savings time adjustment</li>
</ul>
<p>Yes &#8212; it&#8217;s about time!</p>
]]></content:encoded>
			<wfw:commentRss>http://scott.yang.id.au/2009/06/wordpress-28-baker-released/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Open MicroBlogging on WordPress, Anyone?</title>
		<link>http://scott.yang.id.au/2008/09/open-microblogging-on-wordpress-anyone/</link>
		<comments>http://scott.yang.id.au/2008/09/open-microblogging-on-wordpress-anyone/#comments</comments>
		<pubDate>Tue, 02 Sep 2008 12:21:14 +0000</pubDate>
		<dc:creator>scotty</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Microblogging]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://scott.yang.id.au/?p=1785</guid>
		<description><![CDATA[I have been trying to install Laconi.ca so I can break free from Twitter, but haven&#8217;t really got around to it. Then here comes the thoughts for today &#8212; why there isn&#8217;t a Open Micro Blogging plugin for WordPress, so I can just Write a short 140-character micro-blog-post, and then assign it to a special [...]]]></description>
			<content:encoded><![CDATA[<p>I have been trying to install <a href="http://laconi.ca/">Laconi.ca</a> so I can break free from <a href="http://twitter.com/">Twitter</a>, but haven&#8217;t really got around to it. Then here comes the thoughts for today &#8212; why there isn&#8217;t a <a href="http://openmicroblogging.org/">Open Micro Blogging</a> plugin for WordPress, so I can just</p>
<ul>
<li>Write a short 140-character micro-blog-post, and then assign it to a special category.</li>
<li>It then pings all microblogging servers with my followers on it to update their message queue.</li>
<li>WordPress can also take incoming requests and then populate my message queue with those whom I follow.</li>
</ul>
<p>I guess things like Twitter-API emulation, XMPP integration, etc can all come later, so I just need one single WordPress installation to do both my regular blogging <b>and</b> my micro-blogging. Or maybe such plugin already exists?</p>
<p>I might actually sit down and look at how easy it is to implement something like this &#8212; if I have the time (i.e. no I don&#8217;t have time to do it). Going to <a href="http://www.microsoft.com.au/teched/">Microsoft Tech.Ed 2008</a> for the next 3 days to be brain-washed by the evil empire because somehow work signed me up for it. Really excited&#8230; <b>Not</b>! That means I&#8217;ll also miss out CityBibleForum tomorrow :(</p>
]]></content:encoded>
			<wfw:commentRss>http://scott.yang.id.au/2008/09/open-microblogging-on-wordpress-anyone/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>WordPress Plugins &#8211; check before you upgrade automatically</title>
		<link>http://scott.yang.id.au/2008/07/wordpress-plugins-check-before-you-upgrade-automatically/</link>
		<comments>http://scott.yang.id.au/2008/07/wordpress-plugins-check-before-you-upgrade-automatically/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 15:02:46 +0000</pubDate>
		<dc:creator>scotty</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://scott.yang.id.au/2008/07/wordpress-plugins-check-before-you-upgrade-automatically/</guid>
		<description><![CDATA[Back to the real reason why Permalink Redirect 2.0 was released. When you visit your WordPress&#8217; plugin manager page, and see the following notice&#8230; &#8230; do not click on &#8220;upgrade automatically&#8221;. Let me repeat, Do Not Click on Upgrade Automatically. Because if you do, you will not be upgraded to Permalink Redirect 1.0, but rather [...]]]></description>
			<content:encoded><![CDATA[<p>Back to the real reason why <a href="http://scott.yang.id.au/2008/07/permanent-redirect-20-released/">Permalink Redirect 2.0 was released</a>. When you visit your WordPress&#8217; plugin manager page, and see the following notice&#8230;</p>
<p style="text-align:center"><img src="http://scott.yang.id.au/file/images/permalink-redirect-upgrade.png" width="702" height="110" alt="Permalink Redirect Upgrade, or Not" style="padding:3px;border:#ccc solid 1px;"/></p>
<p>&#8230; do not click on &#8220;upgrade automatically&#8221;. Let me repeat, <b>Do Not Click on Upgrade Automatically</b>. Because if you do, you will <b>not</b> be <em>upgraded</em> to Permalink Redirect 1.0, but rather a completely different plugin will be installed.</p>
<p>Over the past week I have been notified by a few people about a strange behaviour after they have let the WordPress Automatic Plugin Upgrade to upgrade their Permalink Redirect plugin for them. Instead of getting an upgrade, another plugin of the same name, <a href="http://yoast.com/wordpress/permalink-redirect/">Permalink Redirect by Joost de Valk</a>, has been installed instead. It has been <a href="http://wordpress.org/support/topic/187400">asked on WordPress support forum</a>, and it turns out that Joost&#8217;s plugin has <a href="http://wordpress.org/extend/plugins/permalink-redirect/">registered the slug &#8220;permalink-redirect&#8221;</a> on WP&#8217;s plugin directory which I assume is where the version number is checked. So when Joost <a href="http://yoast.com/plugin-updates-july-2008/">bumped the version number to 1.0</a> a few days ago, suddenly everyone with Permalink Redirect installed gets that automatic upgrade option&#8230;</p>
<p>Here is what I have <a href="http://wordpress.org/support/topic/189210">posted on WordPress.org regarding this issue</a>, and so far there is no response.</p>
<blockquote>
<p>Hi. This is an issue recently raised by users of one of my WordPress plugin.</p>
<p>I wrote Permalink Redirect back in 2005 to solve the issue of canonical permalink URL, and it has been downloaded many times and installed on many WordPress sites. Its core functionality has been integrated into WordPress 2.5 although it is now doing a bit more that just fixing the permalink. Currently the version in my own Subversion repository is 0.8.5 and is compatible with WP 2/2.5/2.6.</p>
<p>Then one of my users notified me that when he visited the plugin management page, the Permalink Redirect plugin has been marked that a new version is now available. User has been given the option to download or upgrade it automatically. To his horror, after the upgrade my plugin now ceases to be installed, and a complete different plugin with the same name but different author is now installed and activated.</p>
<p>Doh.</p>
<p>Now my question is, how can two totally independent plugins with different author and different plugin URL be allowed to be replaced by one another? Moreover, I would like to know whether there&#8217;s any solution in this situation.</p>
<p>Cheers,<br/>Scott</p>
</blockquote>
<p>Being able to replace someone else&#8217;s WordPress plugin <em>almost-automatically</em> by registering the same name on WordPress.org &#8212; this is a <b>serious issue</b>. While the code is hosted on WordPress.org, but I do not thing the code is audited by Automattic/WordPress developers. There is one scenario &#8212; what if offending code that automatically insert spammy links to all your posts get automatically pushed to the end user? And I won&#8217;t even talk about worse or more evil scenarios.</p>
<p>I do not think two independent plugins sharing the same name is an issue (although I do suggest that you do a Google search before start writing a new one). It is also partly my fault for not registering mine with WordPress.org (but <em>why should it be centrally organised?</em>) Anyway. Make sure you check <b>very carefully</b> before clicking on &#8220;upgrade automatically&#8221;, or disable the automatic upgrade all together.</p>
<p>And the reason for Permalink Redirect 2.0? So it will be greater than 1.0 and you won&#8217;t be bothered by WordPress&#8217; &#8220;kind reminder&#8221; that you need to &#8220;upgrade&#8221;. Until Joost releases his next upgrade as Permalink Redirect 2008&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://scott.yang.id.au/2008/07/wordpress-plugins-check-before-you-upgrade-automatically/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Permanent Redirect 2.0 Released</title>
		<link>http://scott.yang.id.au/2008/07/permanent-redirect-20-released/</link>
		<comments>http://scott.yang.id.au/2008/07/permanent-redirect-20-released/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 13:28:27 +0000</pubDate>
		<dc:creator>scotty</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[permalink redirect]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://scott.yang.id.au/2008/07/permanent-redirect-20-released/</guid>
		<description><![CDATA[It has been a while &#8212; you might have thought that I have abandoned that little WordPress plugin. It has been hanging at 0.8.x for a long time, but Fear Not! Let me introduce &#8220;Permalink Redirect Two Point Oh&#8220;! When the Web is about to enter into the era of 3.5, I have finally finished [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://scott.yang.id.au/file/images/permalink-redirect-2.png" width="250" height="190" class="floaty" alt="Permalink Redirect 2.0"/> It has been a while &#8212; you might have thought that I have abandoned that <a href="http://scott.yang.id.au/code/permalink-redirect/">little WordPress plugin</a>. It has been hanging at 0.8.x for a long time, but <b>Fear Not</b>! Let me introduce &#8220;Permalink Redirect <b>Two Point Oh</b>&#8220;! When the Web is about to enter into the era of 3.5, I have finally finished my first 2.0 product.</p>
<p><a href="http://media.fucoder.com/permalink_redirect/permalink_redirect-2.0.zip"><b>Download Permalink Redirect 2.0</b></a> (5.0kb ZIP)</p>
<p>Installation should be straight forward if you have installed it before. Unzip it, and then copy the PHP file <code>ylsy_permalink_redirect.php</code> to your WordPress&#8217; plugin directory. Activate it from your Plugin Manager page. Done!</p>
<p><em>So what is new in Permalink Redirect 2.0?</em></p>
<p>Only one new bug fix &#8212; <b>rewrite of the old permalink structure redirect handling</b>.</p>
<p>Redirecting from the old permalink structure has been <a href="http://scott.yang.id.au/2007/04/permalink-redirect-070/">added quite a few ago</a>, but having it working is a bit of hit and miss. How it worked was appending the extra rewrite rules generated from the old structure to a list of existing rules to be checked during WordPress&#8217; request parsing process, similar to <a href="http://www.deanlee.cn/wordpress/permalinks-migration-plugin/">Dean Lee&#8217;s Permalinks Migration plugin</a>. It is <em>elegant</em>, but <em>does not always work</em>.</p>
<p>It was ineffective due to the way WordPress processes through those rewrite rules. Some permalink structures are more <em>aggressive</em> than the others, as their regular expressions pretty much match everything (for example <code>/%postname%/</code>). Therefore some rules never get executed, and those old permalinks will never get detected and redirected.</p>
<p>So here is my <em>less-elegant</em> (or maybe call it <b>hack&#8217;ish</b>) solution. We will manually run through those old rules again <em>after</em> the main request parsing but <em>before</em> checking for redirection, <strong>only if a 404 Not Found is detected</strong>. It involves creating some of the main WP objects again and run them through alternate rewrite rules generated from old permalink structures. It will then try to redirect to the canonical URL if one of the old rules returns positive result, otherwise it will continue to process 404 Not Found.</p>
<p>It&#8217;s quite a hack which exposes some of not so poetry code inside WordPress. At least it <em>works</em> (for me). It has been tested under WordPress <b>2.0.11</b>, <b>2.5.1</b> and <b>2.6</b>, but no guarantee that it will work for other future or past versions of WordPress. You ought to upgrade to the latest if you are using 2.1-2.3 anyway, <a href="http://scott.yang.id.au/2008/04/securing-your-blog-or-else/">or else&#8230;</a> As it does a bit of work <em>only</em> when 404 occurs, it should not affect normal page viewing but 404 page handling will be a tad slower.</p>
<p>So, please download it and test whether it is working for you if you have a strange redirect issue with old permalink structures.</p>
<p>Now, why <b>2.0</b>, especially when there has never been a 1.0? I will leave that to my next post &#8212; <a href="http://scott.yang.id.au/2008/07/wordpress-plugins-check-before-you-upgrade-automatically/">WordPress plugins &#8212; check before you upgrade automatically</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://scott.yang.id.au/2008/07/permanent-redirect-20-released/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>WordPress.com From LiteSpeed to Nginx</title>
		<link>http://scott.yang.id.au/2008/04/wordpresscom-from-litespeed-to-nginx/</link>
		<comments>http://scott.yang.id.au/2008/04/wordpresscom-from-litespeed-to-nginx/#comments</comments>
		<pubDate>Wed, 16 Apr 2008 00:43:58 +0000</pubDate>
		<dc:creator>scotty</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[litespeed]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://scott.yang.id.au/2008/04/wordpresscom-from-litespeed-to-nginx/</guid>
		<description><![CDATA[shyam: Goodbye Litespeed, hello Nginx, says WordPress.com. Apparently the reason to ditch LiteSpeed for Nginx is, according to Matt M (but no quotes), that WordPress wants to run open source for their full stack. LiteSpeed is a nice (but expensive) async-IO based web server that provides full Apache compatibility (which is not that useful if [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://fatalerror.wordpress.com/2008/04/14/goodbye-litespeed-hello-nginx-wordpresscom/">shyam: Goodbye Litespeed, hello Nginx, says WordPress.com</a>. Apparently the reason to ditch <a href="http://litespeedtech.com/">LiteSpeed</a> for <a href="http://nginx.net/">Nginx</a> is, according to Matt M (but no quotes), that WordPress wants to run open source for their full stack. LiteSpeed is a nice (but expensive) async-IO based web server that provides full Apache compatibility (which is not that useful if you just want to serve a single app). Another blow to the proprietary software?</p>
]]></content:encoded>
			<wfw:commentRss>http://scott.yang.id.au/2008/04/wordpresscom-from-litespeed-to-nginx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Securing Your Blog, or Else&#8230;</title>
		<link>http://scott.yang.id.au/2008/04/securing-your-blog-or-else/</link>
		<comments>http://scott.yang.id.au/2008/04/securing-your-blog-or-else/#comments</comments>
		<pubDate>Mon, 07 Apr 2008 05:30:42 +0000</pubDate>
		<dc:creator>scotty</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Spam]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://scott.yang.id.au/2008/04/securing-your-blog-or-else/</guid>
		<description><![CDATA[Deep Jive Interests: TailRank Exposes Massive Number Of Blogs Hacked &#8212; turns out all the latest spam sites are legitimate but hacked WordPress sites. I have also experienced a surge of trackback spams over the last couple of days, from hacked WordPress sites with their wp-content populated with static spammy content. WordPress 2.3.3 wasn&#8217;t even [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.deepjiveinterests.com/2008/04/07/breaking-tailrank-exposes-massive-number-of-blogs-hacked/">Deep Jive Interests: TailRank Exposes Massive Number Of Blogs Hacked</a> &#8212; turns out all the latest spam sites are legitimate but hacked WordPress sites. I have also experienced a surge of trackback spams over the last couple of days, from hacked WordPress sites with their <code>wp-content</code> populated with static spammy content. <a href="http://smackdown.blogsblogsblogs.com/2008/03/23/new-wordpress-233-exploitvulnerability-adds-spam-directory-wp-content1/">WordPress 2.3.3 wasn&#8217;t even safe</a>, although it was only superceded a few days earlier when 2.5 came out. And people are still discussing how much they hated WordPress 2.5 because of its new dashboard?! Maybe we should go back to writing static HTML files.</p>
]]></content:encoded>
			<wfw:commentRss>http://scott.yang.id.au/2008/04/securing-your-blog-or-else/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Update &#8211; Permalink Redirect and ESVPopup</title>
		<link>http://scott.yang.id.au/2008/04/update-permanent-redirect-and-esvpopup/</link>
		<comments>http://scott.yang.id.au/2008/04/update-permanent-redirect-and-esvpopup/#comments</comments>
		<pubDate>Tue, 01 Apr 2008 11:53:38 +0000</pubDate>
		<dc:creator>scotty</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[ESV]]></category>
		<category><![CDATA[esvpopup]]></category>
		<category><![CDATA[permalink redirect]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://scott.yang.id.au/?p=1735</guid>
		<description><![CDATA[Two small updates on my code snippet collections. Permalink Redirect 0.8.4 I have updated Permalink Redirect plugin to 0.8.4. The main functionality of this plugin has been replaced by WordPress&#8217; redirect_canonical() function since WP 2.3, but somehow some people are still using this plugin for its remaining functions (permalink structure changes, arbitrary path redirect, etc). [...]]]></description>
			<content:encoded><![CDATA[<p>Two small updates on my <a href="http://scott.yang.id.au/code/">code snippet collections</a>.</p>
<h3 id="toc-permalink-redirect-0-8-4">Permalink Redirect 0.8.4</h3>
<p>I have updated <a href="http://scott.yang.id.au/code/permalink-redirect/">Permalink Redirect</a> plugin to 0.8.4. The main functionality of this plugin has been replaced by WordPress&#8217; <code>redirect_canonical()</code> function since WP 2.3, but somehow some people are still using this plugin for its remaining functions (permalink structure changes, arbitrary path redirect, etc). 0.8.4 fixes an issue with arbitrary path redirect when the old path is now producing 404. It has also overwritten the <code>wp_redirect</code> function (taken from WP 2.5) so 301 redirect works properly on Lighty/Nginx setups.</p>
<h3 id="toc-esvpopup-1-4">ESVPopup 1.4</h3>
<p>Don&#8217;t you love browser incompatibility?! While everyone is trying to crack <a href="http://acid3.acidtests.org/">Acid3</a>, I am still trying to figure out why <code>event.clientX</code> on Safari is different from all the other browsers.</p>
<p>Anyway. <a href="http://scott.yang.id.au/code/esvpopup/">ESVPopup</a> 1.4 should work with Safari 3.0.x now.</p>
<p>Btw, this blog has also been upgraded to <a href="http://wordpress.org/development/2008/03/wordpress-25-brecker/">WordPress 2.5</a>. Nice new dashboard and so far everything works. Finger crossed.</p>
]]></content:encoded>
			<wfw:commentRss>http://scott.yang.id.au/2008/04/update-permanent-redirect-and-esvpopup/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Upgraded to WordPress 2.3.3 &#8216;Coz of Security Issues, Again!</title>
		<link>http://scott.yang.id.au/2008/02/upgraded-to-wordpress-233-coz-of-security-issues-again/</link>
		<comments>http://scott.yang.id.au/2008/02/upgraded-to-wordpress-233-coz-of-security-issues-again/#comments</comments>
		<pubDate>Wed, 06 Feb 2008 00:23:54 +0000</pubDate>
		<dc:creator>scotty</dc:creator>
				<category><![CDATA[Security]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://scott.yang.id.au/2008/02/upgraded-to-wordpress-233-coz-of-security-issues-again/</guid>
		<description><![CDATA[Went to the Aussie Bloggers forums this morning and spotted this post on an urgent WordPress upgrade (yes, I usually troll in the forums early in the morning instead of reading RSS feeds). WordPress 2.3.3 has been released fixing a few minor bugs and a security issue. Yes, again &#8212; less than two months after [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://scott.yang.id.au/file/images/wordpress-logo.png" width="238" height="50" alt="WordPress Logo" class="floaty"/> Went to the <a href="http://www.aussiebloggers.com.au/">Aussie Bloggers</a> forums this morning and spotted <a href="http://www.aussiebloggers.com.au/forum/index.php/topic,1141.msg7279.html">this post</a> on an urgent WordPress upgrade (yes, I usually troll in the forums early in the morning instead of reading RSS feeds). <a href="http://wordpress.org/development/2008/02/wordpress-233/">WordPress 2.3.3</a> has been released fixing a few minor bugs and a <strong>security issue</strong>. Yes, again &#8212; less than two months after WordPress 2.3.2 was released that fixed an issue exposing your draft posts. WordPress of 2008 almost felt like <a href="http://scott.yang.id.au/2005/08/sydney-and-phpbb/">phpBB2 of 2005</a> to me.</p>
<p>Yes. Please call all your friends who have a self-hosted WordPress blogs and get them to upgrade to the very latest version.</p>
<p>To see what has been changed from WordPress 2.3.2 to 2.3.3, you can use the following Subversion commands:</p>
<pre class="code">
$ svn diff --old=http://svn.automattic.com/wordpress/tags/2.3.2 \
           --new=http://svn.automattic.com/wordpress/tags/2.3.3
</pre>
<p>Which includes the diff of the five files that have been changed. The biggest change came from <code>xmlrpc.php</code>, in <a href="http://trac.wordpress.org/changeset/6715">change set 6715</a>, where <a href="http://boren.nu/">Ryan</a> tries to fix <a href="http://trac.wordpress.org/ticket/5313">this security issue</a> (yes the ticket was opened in November last year and only managed to get fixed yesterday, 3 months later). Basically, capability checking is done before determining whether the operation is editing a post &#8212; if post type is &#8220;post&#8221;. So any account can edit posts and pages via XML-RPC by faking post type as &#8220;page&#8221;. For more detail on this exploit, see <a href="http://www.theseekerblog.com/?p=284">The Seeker Blog</a>, and it appears to be &#8220;going wild&#8221; at the moment.</p>
<p>The fix also only comes in 2.3 flavour, whereas the concept of &#8220;page&#8221; has been there in WordPress since 2.0. That also means, all you 2.0/2.1/2.2 users are still vulnerable. You <b>have</b> to upgrade to the latest stable branch, although not all existing plugins and themes work with 2.3&#8230;</p>
<p>I think I am starting to agree with <a href="http://www.45n5.com/permalink/wordpress-sucks.html">Mark</a>&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://scott.yang.id.au/2008/02/upgraded-to-wordpress-233-coz-of-security-issues-again/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>WordPress 2.3 &#8220;Dexter&#8221; Released</title>
		<link>http://scott.yang.id.au/2007/09/wordpress-23-released/</link>
		<comments>http://scott.yang.id.au/2007/09/wordpress-23-released/#comments</comments>
		<pubDate>Tue, 25 Sep 2007 06:31:57 +0000</pubDate>
		<dc:creator>scotty</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://scott.yang.id.au/2007/09/wordpress-23-released/</guid>
		<description><![CDATA[WordPress 2.3 &#8220;Dexter&#8221; is now ready for the world, and the new features include native tagging support, plugin update notification, URL handling improvements and more. It has been five months since the release of 2.2 &#8220;getz&#8221;, and they are indeed picking up the development speed. Great if you love the bleeding edge of everything. Not [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://scott.yang.id.au/file/images/wordpress-logo.png" width="238" height="50" class="floaty" alt="WordPress"/> <a href="http://wordpress.org/development/2007/09/wordpress-23/">WordPress 2.3 &#8220;Dexter&#8221; is now ready for the world</a>, and the new features include native tagging support, plugin update notification, URL handling improvements and more. It has been five months since <a href="http://scott.yang.id.au/2007/05/wordpress-22-released/">the release of 2.2 &#8220;getz&#8221;</a>, and they are indeed picking up the development speed. Great if you love the bleeding edge of everything. Not so good if you manage 2 dozen blogs for other people and not sure whether an automated upgrade will break someone&#8217;s template&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://scott.yang.id.au/2007/09/wordpress-23-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Permalink Redirect 0.8.1 and Gravatar Cache 2.0</title>
		<link>http://scott.yang.id.au/2007/08/permalink-redirect-081-and-gravatar-cache-20/</link>
		<comments>http://scott.yang.id.au/2007/08/permalink-redirect-081-and-gravatar-cache-20/#comments</comments>
		<pubDate>Tue, 28 Aug 2007 01:29:40 +0000</pubDate>
		<dc:creator>scotty</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Gravatar]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://scott.yang.id.au/2007/08/permalink-redirect-081-and-gravatar-cache-20/</guid>
		<description><![CDATA[Sorry I have not been updating this blog. There are simply way too many commitments in life for me to maintain &#8220;yet-another-blog&#8221;, so I think I might eventually fold FuCoder.com after two years of on and off writing. I will continue to publish code snippets at our personal blog, Scott Yang&#8217;s Playground, but even that [...]]]></description>
			<content:encoded><![CDATA[<p>Sorry I have not been updating this blog. There are simply way too many commitments in life for me to maintain &#8220;yet-another-blog&#8221;, so I think I might eventually fold FuCoder.com after two years of on and off writing. I will continue to publish code snippets at our personal blog, <a href="http://scott.yang.id.au/">Scott Yang&#8217;s Playground</a>, but even that has slowed down quite a bit over the last few months.</p>
<p>So what we have got here?</p>
<h3 id="toc-gravatar-cache-0-2">Gravatar Cache 0.2</h3>
<p>On July 20 I have uploaded an updated version of <a href="http://scott.yang.id.au/code/gravatar-cache/">Gravatar Cache</a>. Something has been added, and something has been removed:</p>
<ul>
<li>
<p><b>Add MySQL backend support for handling negative responses</b></p>
<p>Personally I found that SQLite-based backend is just not scalable. It is perfectly fine for small websites, but when you have a site with thousands of page views a day, each page view generates multiple Gravatar requests, and majority of requests yield negative result &#8212; you&#8217;ll probably see lots of SQLite locking errors in your log files.</p>
<p>Porting negative cache to a new backend is easy. Now Gravatar Cache can use MySQL as backend so hopefully cache misses can be better handled.</p>
</li>
<li>
  <b>Remove <code>fopen_url</code> based HTTP request method</b></p>
<p>That means we will never use <code>fopen</code> to grab Gravatar from gravatar.com, as <code>fopen</code> automatically follows 301/302 redirects. Gravatar cache can still download gravatars using either cURL or raw socket.</p>
</li>
</ul>
<p>It has been running quite stably on one of my Drupal site doing 30,000+ gravatars per day.</p>
<h3 id="toc-permalink-redirect-0-8-1">Permalink Redirect 0.8.1</h3>
<p>Also on July 20 I have released an updated version of <a href="http://scott.yang.id.au/code/permalink-redirect/">Permalink Redirect</a> WordPress plugin. There has been quite a few changes since <a href="http://scott.yang.id.au/2007/04/permalink-redirect-070/">0.7.0</a>:</p>
<ul>
<li>
<p><b>Add FeedBurner branding support</b></p>
<p>Thanks to <a href="http://www.mesoconcepts.com/">Mesoconcepts</a> for sponsoring this enhancement. Since <a href="http://www.techcrunch.com/2007/05/23/100-million-payday-for-feedburner-this-deal-is-confirmed/">Google purchased FeedBurner</a>, FeedBurner has released this Pro feature for free. Now you can edit your hostname as well as the pathname to redirect the visitors to.</p>
</li>
<li>
<p><b>Add static page redirect</b></p>
<p>Thanks to Sergey Menshikov for supplying the patch. You can now edit a list of [from] [to] and let WordPress to handle the redirection. Again, it is probably a feature <a href="http://scott.yang.id.au/2007/04/do-you-need-permalink-redirect/">best left for the web server to do</a>. It is nice to have it in the plugin as well, for those who do not wish to touch their web server configuration files.</p>
</li>
<li>
<p><b>Fix front page as static page issue in WordPress 2.2</b></p>
<p>Somehow <code>is_home()</code> is ambiguous in different versions of WordPress. Anyway, it is fixed now.</p>
</li>
<li>
<p><b>Fix 301 redirect issue with Lighttpd/Nginx + PHP FastCGI</b></p>
<p>Permalink Redirect 0.8+ uses WordPress&#8217; <code>wp_redirect</code> function, which refuses to send back 301 when PHP is running as FastCGI. Now we are making an exception in the code so it by-pass <code>wp_redirect</code> if we are running FastCGI behind Lighttpd and Nginx.</p>
</li>
</ul>
<h3 id="toc-permalink-redirect-and-beyond">Permalink Redirect and Beyond</h3>
<p>There has been words that WordPress is going to integrate the functionality of Permalink Redirect into its core, and looks like it is <a href="http://svn.automattic.com/wordpress/trunk/wp-includes/canonical.php">going to be available</a> in WP 2.3 (currently SVN trunk).</p>
<p>The function <code>redirect_canonical</code> does pretty much the same thing as Permalink Redirect plugin so I guess the question is &#8212; what is happening to Permalink Redirect beyond WordPress 2.3?</p>
<p>Not much I guess. The primary goal for Permalink Redirect is redirecting visitors to the canonical URL for search engine&#8217;s sake, and I think WP 2.3 has achieved that right inside the core. While there are lots of other functionality in Permalink Redirect that are not ported to WP 2.3 (Feedburner feeds, configurable rules, old to new permalink structure, etc), but honestly even I do not use these features much myself.</p>
<p>It is still possible to create a lite version of Permalink Redirect to hook these extra functionality into WordPress 2.3, and I might start working on that when WP 2.3 turns beta. Meanwhile, excuse my absence here as I have my &#8220;other life&#8221; to sort out. Don&#8217;t bother with the bbPress support forum (it is down anyway). If you need any quick solutions, email me directly. You can find my email address in the <a href="http://scott.yang.id.au/contact/">contact page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://scott.yang.id.au/2007/08/permalink-redirect-081-and-gravatar-cache-20/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>WordPress 2.2 Released</title>
		<link>http://scott.yang.id.au/2007/05/wordpress-22-released/</link>
		<comments>http://scott.yang.id.au/2007/05/wordpress-22-released/#comments</comments>
		<pubDate>Wed, 16 May 2007 13:54:16 +0000</pubDate>
		<dc:creator>scotty</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://scott.yang.id.au/2007/05/wordpress-22-released/</guid>
		<description><![CDATA[Matt: WordPress 2.2 &#8220;Getz&#8221; has been released. Of course, &#8220;Getz&#8221; came from the Jazz musician Stan Getz. However the first thing that popped up in my head is actually this Hyundai&#8217;s little tinbox. So what do we have? WordPress Widgets &#8212; Never going to use it as I don&#8217;t even have a sidebar here. Full [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://scott.yang.id.au/file/images/hyundai-getz.jpg" width="234" height="184" alt="Hyundai Getz" class="floaty"/><a href="http://wordpress.org/development/2007/05/wordpress-22/">Matt: WordPress 2.2 &#8220;Getz&#8221; has been released</a>. Of course, &#8220;Getz&#8221; came from the Jazz musician <a href="http://en.wikipedia.org/wiki/Stan_Getz">Stan Getz</a>. However the first thing that popped up in my head is actually this <a href="http://www.hyundai.com.au/swf/default.aspx?vehicle=getz">Hyundai&#8217;s little tinbox</a>.</p>
<p>So what do we have?</p>
<ul>
<li><b>WordPress Widgets</b> &#8212; Never going to use it as I don&#8217;t even have a sidebar here.</li>
<li><b>Full Atom support</b> &#8212; time to fix up my <a href="http://scott.yang.id.au/2002/12/mtsendpy/">old code</a> to support Atom publishing?</li>
<li><b>New Blogger importer</b> &#8212; again not very useful to me.</li>
<li><b>Infinite comment stream</b> &#8212; not useful, especially when <a href="http://akismet.com/">Akismet</a> is working.</li>
<li><b>Speed optimizations</b> &#8212; now we are talking. Any benchmark?</li>
</ul>
<p>A bit more interesting for the developers. <a href="http://jquery.com/">jQuery</a> is now standard, which is pretty good. I am using jQuery for some of my other projects, and it is probably one of the most useful Javascript library out there. Hard-coding WP URL is also going to be useful to me, especially when you do staging with your WP installations.</p>
<p>I guess the question for now is &#8212; upgrade or not? It is <a href="http://scott.yang.id.au/2007/03/mass-wordpress-upgrade/">bloody easy</a> to upgrade a batch of sites, but not sure whether 2.2&#8242;s added complexity gives true usefulness to some of my fellow bloggers at <a href="http://focuser.net/">FOCUSer.net</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://scott.yang.id.au/2007/05/wordpress-22-released/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Do You Need Permalink Redirect?</title>
		<link>http://scott.yang.id.au/2007/04/do-you-need-permalink-redirect/</link>
		<comments>http://scott.yang.id.au/2007/04/do-you-need-permalink-redirect/#comments</comments>
		<pubDate>Tue, 24 Apr 2007 07:25:56 +0000</pubDate>
		<dc:creator>scotty</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://scott.yang.id.au/2007/04/do-you-need-permalink-redirect/</guid>
		<description><![CDATA[Via CaveMoney50, Alister Cameron wrote about Two WordPress Plugins You Don&#8217;t Need and Shouldn&#8217;t Use. Number 1 on the list: Permalink Redirect, closely followed by Matt&#8217;s No-WWW plugin. Actually, since release 0.7, Permalink Redirect can already redirect on hostname mismatches, which makes No-WWW obsolete. That means, my Permalink Redirect is the Number 1 WordPress Plugin [...]]]></description>
			<content:encoded><![CDATA[<p>Via <a href="http://cavemonkey50.com/2007/04/lowering-my-gpu-usage-on-media-temples-grid-server/">CaveMoney50</a>, Alister Cameron wrote about <a href="http://www.alistercameron.com/2007/01/12/two-wordpress-plugins-you-dont-need-and-shouldnt-use/">Two WordPress Plugins You Don&#8217;t Need and Shouldn&#8217;t Use</a>. Number 1 on the list: <a href="http://scott.yang.id.au/code/permalink-redirect/">Permalink Redirect</a>, closely followed by Matt&#8217;s <a href="http://photomatt.net/2006/06/13/wordpress-no-www/">No-WWW plugin</a>. Actually, since <a href="http://scott.yang.id.au/2007/04/permalink-redirect-070/">release 0.7</a>, Permalink Redirect can already redirect on hostname mismatches, which makes No-WWW obsolete. That means, my Permalink Redirect is the <b>Number 1 WordPress Plugin that you do not need and should not use</b>! Bwahahaha!!!</p>
<p>While I thoroughly enjoyed my position being <b>the Number 1</b> resource-wasting WordPress plugin, I also agree with Alister &#8212; why code it in PHP when your web server can do it <em>faster</em> for you? But hang on?! That hack requires access to <code>.htaccess</code> file which not everyone has access to. For example,</p>
<ol>
<li>Hosting companies do not allow you to override options in <code>.htaccess</code>.</li>
<li>Alternative web server is used like <a href="http://www.lighttpd.net/">Lighttpd</a>, <a href="http://nginx.net/">Nginx</a> or (heaven forbids) <a href="http://www.iis.net/">IIS</a>.</li>
</ol>
<p>Then you should <em>obviously</em> change your hosting company. Maybe not <a href="http://www.mediatemple.com/">Media Temple</a>, whose (gs) product is causing grief wherever I read about it. This blog is currently hosted on <a href="htt://www.nearlyfreespeech.net/">NearlyFreeSpeech.NET</a> (which I <a href="http://hostingfu.com/article/nearlyfreespeech-net-2-weeks-review">reviewed here</a>) &#8212; maybe you may want to consider it.</p>
<p>Actually, there are indeed equivalent rewrite rules available for lighty and Nginx. Here is one for lighty (a bit flaky because lighty lacks file-exists condition):</p>
<pre class="code">
server.modules += ("mod_redirect")

$HTTP["host"] == "example.com" {
  url.redirect = ("^/([^.]*[^/])$" =&gt; "http://example.com/$1/")
  server.error-handler-404 = "/index.php"
}

$HTTP["host"] == "www.example.com" {
  url.redirect = ("^/(.*)$" =&gt; "http://example.com/$1")
}
</pre>
<p>Nginx? No problem either.</p>
<pre class="code">
server {
  server_name www.example.com;
  rewrite ^/(.*) http://example.com/$1 permanent;
}

server {
  server_name example.com;
  if (!-e $request_filename) {
    rewrite ^/([^.]*[^/])$ http://example.com/$1/ last;
    rewrite ^.*$ /index.php last;
  }
}
</pre>
<p>The idea is &#8212; if all you need to do is ensuring a trailing forward slash in URL, then doing it as a plugin inside WordPress <b>might not be a good idea</b> if you wish to get the maximum performance from your WordPress site. Instead, your web-server can send back a redirect response much faster without a single line of PHP gets executed. This is especially true when Permalink Redirect is only tested <b>after</b> some SQL queries have been executed. So if someone linked your site to <a href="http://digg.com/">Digg</a> without the trailing slash, got pushed to the front-page, and 10,000 visitors followed that URL in within an hour &#8212; your blog post will be loaded from MySQL <em>at least</em> 20,000 times if you have Permalink Redirect installed.</p>
<p>And the co-habitants on your $5 per month shared hosting will absolutely hate you.</p>
<p>So if you do not want to be hated by your hosting company whenever you got dugg, then you probably don&#8217;t need and shouldn&#8217;t use my Permalink Redirect plugin.</p>
<p><small>Unless you are like me, who will never get dugg no matter how hard I&#8217;ve tried, don&#8217;t care what the hosting company says, have no desire to touch the <code>.htaccess</code> file, and sometimes use permalink structure <em>without</em> a trailing slash, then you are free to stick to my resource-wasting plugin :)</small></p>
]]></content:encoded>
			<wfw:commentRss>http://scott.yang.id.au/2007/04/do-you-need-permalink-redirect/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>On WordPress Sponsored Themes</title>
		<link>http://scott.yang.id.au/2007/04/on-wordpress-sponsored-themes/</link>
		<comments>http://scott.yang.id.au/2007/04/on-wordpress-sponsored-themes/#comments</comments>
		<pubDate>Thu, 19 Apr 2007 07:37:06 +0000</pubDate>
		<dc:creator>scotty</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://scott.yang.id.au/2007/04/on-wordpress-sponsored-themes/</guid>
		<description><![CDATA[Last week, Mark from Weblog Tool Collection posted his stand on sponsored themes, and asked all sponsored themes to disclose their sponsorship. A few days later Matthew Mullenweg also outlined the social and ethical issues with sponsored themes, and vote for removing sponsored themes from WordPress.org. These are the WordPress themes developed by web designers, [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://scott.yang.id.au/file/images/wordpress-logo.png" width="238" height="50" alt="WordPress" class="floaty"/> Last week, Mark from Weblog Tool Collection <a href="http://weblogtoolscollection.com/archives/2007/04/09/sponsored-themes/">posted his stand on sponsored themes</a>, and asked all sponsored themes to disclose their sponsorship. A few days later <a href="http://photomatt.net/">Matthew Mullenweg</a> also <a href="http://weblogtoolscollection.com/archives/2007/04/12/on-sponsored-themes/">outlined the social and ethical issues with sponsored themes</a>, and <a href="http://wordpress.org/extend/ideas/topic.php?id=553">vote for removing sponsored themes</a> from WordPress.org. These are the WordPress themes developed by web designers, and are sponsored by third parties to add external links into the template for SEO purposes. When users download and deploy those sponsored themes, they effectively create a site-wide link to sponsor&#8217;s sites. Moreover, some of these themes are guarded by end user licenses that prevent links from being removed from live sites. The open source community basically gives a big <b>No</b> to this kind of activities.</p>
<p>When you cross people&#8217;s money making business, expect back fires. So the <a href="http://www.headsetoptions.org/2007/04/09/the-other-point-of-view-%e2%80%93-a-designers-opinion-on-sponsored-themes/">designers strike back</a> with their own perspective. After all, there are many starving artists that need the dole, and what right does Matt/WordPress.org have preventing them getting wages from their work?</p>
<p>Then Matt posted a new article <a href="http://photomatt.net/2007/04/12/plugin-authors-get-no-love/">Plugin Authors Get No Love</a>, arguing WordPress plugins are no less useful, equally sophisticated to create, but rarely have sponsored links bundled. The title was a bit misleading I think, as many interpreted &#8220;love&#8221; as getting monetary rewards.</p>
<p>But anyway. One week later, I think I am going to write a bit of my point of view on this matter.</p>
<h3 id="toc-i-have-been-on-both-sides">I Have Been On Both Sides</h3>
<p>I just need to declare that I have actually been on both sides of the fence. I am a coder at heart, and I have developed and released a few <a href="http://scott.yang.id.au/code/?toc-wordpress-plugins">WordPress plugins</a>, including the popular <a href="http://scott.yang.id.au/code/permalink-redirect/">Permalink Redirect plugin</a>, which frequent many people&#8217;s top 10 WP plugin lists, especially amongst the SEOs. All my WP plugins are released under <a href="http://www.gnu.org/copyleft/gpl.html">GNU General Public License</a>. Some of my other work are released under even more liberal Public Domain, i.e. no license term at all!</p>
<p>However back in 2003 <a href="http://scott.yang.id.au/2003/09/another-new-blog-site/">I actually started a theme/style site for Movable Type</a>, when free themes/styles were not readily available. Due to other commitments I <a href="http://scott.yang.id.au/2004/05/anyone-wants-to-take-over/">asked someone to take over the site</a> &#8212; I literally just gave that site away with more than one year of domain rego left! Come to think of it, <strong>what was I thinking</strong> that I gave away a PR6 site with 160+ inbound links for <strong>FREE</strong>! I must have been crazy! The same guy who took over the domain have done nothing over the last two years, and yet it is still a PR6 site.</p>
<p>Crap. Am I stupid or not?</p>
<p>After all I am more than just a coder at heart. I am <b>an open source coder</b> deep down who believe artistic creation (code is poetry, remember?) should be shared to make collaborative improvement a reality. Ultimately I would like to see more Movable Type themes developed and added into the repository, although I did not have any time developing it. So I was thinking, &#8220;hey if I pass it onto someone else, he can continue all the work!&#8221; Places like <a href="http://www.sitepoint.com/marketplace/">Sitepoint Marketplace</a> has never entered into my mind.</p>
<p>I guess it is what sets many plugin developers and theme developers apart. As I <a href="http://photomatt.net/2007/04/12/plugin-authors-get-no-love/#comment-418191">replied Matt&#8217;s post</a>:</p>
<blockquote>
<p>Plugin developers are programmers who understand the benefit and reason behind open source/free software. Theme developers are designers who do not necessary understand FOSS.</p>
<p>Not saying one is superior than the other, but just two different groups of people coming from two different backgrounds.</p>
</blockquote>
<p>Okay. With that background in mind, let us look at some implications.</p>
<h3 id="toc-designers-making-money-from-themes-by-all-means">Designers Making Money From Themes? By All Means!</h3>
<p>As much as I believe in open source, I also believe that credit should be given where credit is due. If you are a graphics designer who love to make beautiful themes for popular content management systems, and are making money from doing so &#8212; <b>congratulation</b>!</p>
<p>I have seen people argue that since WordPress is <em>free</em>, people should not ride on the bandwagon, create an economy around it and make some money from it. He/she has obviously misunderstood the definition of <em>free</em> in <a href="http://en.wikipedia.org/wiki/Free_Software">Free Software</a>. There is no license restriction on making money from open source/free software product.</p>
<p>So the GNU guys do not mind people making money on free software, but the next question is, whether making money off free software is <em>ethical</em>? In my own opinion, there is no two different ethics between free and proprietary software. Instead, ethical or not should totally base on <em>how</em> the money is made.</p>
<h3 id="toc-ethics-in-monetising-the-themes">Ethics in Monetising the Themes</h3>
<p>There are several ways for designers to monetising themes that I can think of.</p>
<ul>
<li>
<p><b>Pay per design</b> &#8212; many companies monetising in FOSS world by providing value-add services. There are also many high profile bloggers or company blogs out there that need more than just the default Kubrick theme. Many are willing to pay for high quality designs.</p>
</li>
<li>
<p><b>Pay per download</b> &#8212; you have created the most coveted and versatile WordPress theme in the world. Charge 10 bucks per download.</p>
</li>
<li>
<p><b>Ask for donation</b> &#8212; it is not too hard to put a PayPal donation button on the sidebar, is it?</p>
</li>
<li>
<p><b>Sponsored link</b> &#8212; now we are getting into the gray area! Google <a href="http://www.mattcutts.com/blog/by-the-way-2/">does not like it</a> as it pollutes SERP. Personally I think taking sponsors and add a link into footer of your theme template is <em>okay</em>, as long as you <b>make full disclosure</b>, including appropriate license terms.</p>
<p>For example on the download page, theme developer needs to say &#8220;This theme is sponsored by such and such, and a link is included in the footer of the page. As it is released under Creative Common Attribution license, please leave the copyright notice.&#8221;</p>
<p>Then the person who is downloading and using theme is fully acknowledged the existence of the sponsored links, and what he/she can/cannot do with the template.</p>
</ul>
<p>Again in my opinion a theme with sponsored links <em>without</em> disclosure is considered spammy and unethical, especially the ones with blackhat tricks like cloaking and invisible DIVs. If you can only get people downloading your themes without the disclosure, then maybe your theme is not good enough. Go back to your PhotoShop! :)</p>
<h3 id="toc-gnu-gpl-or-creative-commons">GNU GPL or Creative Commons?</h3>
<p>One issue (or advantage from a different perspective) with <a href="http://creativecommons.org/">Creative Commons</a> (CC) licenses is &#8212; they are essentially copyright lite. Attribution is always required in CC, so there is no way to remove the usual copyright notice at the bottom of each theme, usually with a complimentary link back to the theme developer. Worse, there are themes with Attribution + NoDerivs license that forbids any derivative work based on licensed product. That simply means, if there are hard coded sponsored links in the template, you cannot touch them!</p>
<p>If it is how many themes are licensed, no wonder they are in deep conflict with WordPress, which is licensed under GNU General Public License (GPL). GPL gives the receiver of the end product every freedom <em>except</em> imposing restriction on others. From legal point of view, I can grab WordPress, rename it to something else, change source code here and there, shrink wrap it, and sell it for <b>$5,000</b> a copy without acknowledging Matt and co, as long the source code is provided to my buyer, and they can do whatever they want with it (including selling it for $10,000). Maybe it is not ethical, as in a case I have looked at <a href="http://scott.yang.id.au/2003/09/profiting-from-open-source-software/">previously</a>. But it does tell you what really matters to the open source/free software people &#8212; freedom for the developers to do whatever you want.</p>
<p>And I consider it was this freedom that made WordPress a more preferred blogging platform than its closest competitor back in May 2004, when Movable Type stopped being &#8220;free&#8221;. <a href="http://scott.yang.id.au/2004/05/mark-pilgrim-on-mt3/">Mark Pilgrim&#8217;s post</a> is the one article that I constantly referred back to.</p>
<p>Therefore licensing plugins or themes under any more restrictive licenses <strong>is</strong> against the central philosophy of WordPress, or any other free software. <a href="http://www.duncanriley.com/2007/04/15/in-support-of-advertiser-supported-themes/">Duncan Riley didn&#8217;t get it</a> &#8212; the fall of SixAprt started when the community were upset, but they were upset because people realised that this software is not really free.</p>
<p><em>(Just a side note &#8212; I have been looking for forum software to kick start a community site. However I am not touching SMF nor MyBB, as those so-called &#8220;free&#8221; forum software are not really free if you check their license terms. Still waiting for phpBB 3 to release&#8230;)</em></p>
<h3 id="toc-removing-themes-from-theme-gallery">Removing Themes from Theme Gallery</h3>
<p>Not only because <a href="http://www.sassylawyer.com/2007/04/06/sponsored-wordpress-themes">sponsored theme confuses visitors</a>, but also because of this philosophy difference, I completely agree with Matt that they should be removed from WordPress official sites.</p>
<p>Another reason, which I believe Matt would also agree, is that how difficult it was <a href="http://scott.yang.id.au/2005/04/photomatt-responded/">to come clean after being accused of spamming</a>. For some they are tainted for life, and I am sure Matt would not put the WordPress brand in jeopardy again.</p>
<p>That does not mean sponsored themes will not continue. Designers from everywhere are still free to take sponsorships for themes they made. They just will not be listed under the WordPress brand, that&#8217;s all. <a href="http://weblogtoolscollection.com/">Weblog Tools Collection</a> is still happy to list them, as long as sponsorships are made known.</p>
<h3 id="toc-other-thoughts">Other Thoughts?</h3>
<p>Other random thought pieces on this matter that cannot be put logically anywhere, so I shall just append them here.</p>
<ul>
<li>
<p>Plugins IMO are actually easier to write because:</p>
<ol>
<li>I am a coder, not a graphics designer. I don&#8217;t even own a copy of PhotoShop.</li>
<li>I write plugins because I have <strong>an itch to scratch</strong>, and somehow made it distributable along the way. Not true when you are developing a theme.</li>
<li>Plugins can be short (less than 10 lines). No one will use a theme that contains less than 10 lines of CSS.</li>
<li>Browser compatibility is rarely an issue with plugins.</li>
</ol>
<p>Then again theme developers rarely have to suffer answering support questions, make sure it works in a few popular versions of WP, different hosting platform, etc. Support question is a killer &#8212; I probably spent 5x more time answering emails and forum posts on my plugins, then actually writing the code.</p>
</li>
<li>
<p>If your lively hood solely depends on making sponsored WordPress themes, then please go and find a real job.</p>
</li>
</ul>
<p>That&#8217;s all folks!</p>
]]></content:encoded>
			<wfw:commentRss>http://scott.yang.id.au/2007/04/on-wordpress-sponsored-themes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Permalink Redirect 0.7.0 Released</title>
		<link>http://scott.yang.id.au/2007/04/permalink-redirect-070/</link>
		<comments>http://scott.yang.id.au/2007/04/permalink-redirect-070/#comments</comments>
		<pubDate>Wed, 11 Apr 2007 02:24:36 +0000</pubDate>
		<dc:creator>scotty</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://scott.yang.id.au/2007/04/permalink-redirect-070/</guid>
		<description><![CDATA[I have just committed a new version of Permalink Redirect plugin for WordPress into Subversion, and this one actually has some new features! Old Permalink Structure Redirect. I figured this detailed instruction is way too complicated. So if you have done the wrong thing, chosen a bad permalink structure when your WordPress blog was launched, [...]]]></description>
			<content:encoded><![CDATA[<p>I have just committed a new version of <a href="http://scott.yang.id.au/code/permalink-redirect/">Permalink Redirect</a> plugin for WordPress into Subversion, and this one actually has some new features!</p>
<ul>
<li>
<p><strong>Old Permalink Structure Redirect</strong>. I figured <a href="http://scott.yang.id.au/2007/02/change-wordpress-permalink/">this detailed instruction</a> is way too complicated. So if you have done the wrong thing, chosen a bad permalink structure when your WordPress blog was launched, you can still redirect old permalinks to new without tinkering with Apache mod_rewrite. Just fill in old structure in the options page, and Permalink Redirect plugin will do the rest for you.</p>
</li>
<li>
<p><strong>Hostname Redirect</strong>. Is your blog accessible via multiple host names? If you are hosting on a Cpanel account (most popular shared hosting control panel), then the answer is probably <strong>yes</strong>! Visitors can get to your site via <code>www.yourdomain.com</code> and <code>yourdomain.com</code>, but from search engine point of view they are actually two different sites. With Permalink Redirect 0.7, you can turn on an option and it will automatically redirect to the hostname set by Blog Address in the General Options page.</p>
</li>
</ul>
<p>Also a minor fix to the skip rules. Previously it will only check for the path part of an URI, but it will pass in the entire REQUEST_URI to verify skip rules.</p>
<p>Go to the <a href="http://scott.yang.id.au/code/permalink-redirect/">project page</a> and download the latest release now!</p>
]]></content:encoded>
			<wfw:commentRss>http://scott.yang.id.au/2007/04/permalink-redirect-070/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

