<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en" xml:base="http://dougal.gunters.org/wp-atom.php">
	<title type="text">Dougal Campbell's geek ramblings | Posts</title>
	<subtitle type="html">The latest posts from the blog of Dougal Campbell, web developer, WordPress Developer Emeritus, and family man.</subtitle>

	<updated>2010-03-07T23:00:31Z</updated>
	

	<link rel="alternate" type="text/html" href="http://dougal.gunters.org" />
	<id>http://dougal.gunters.org/feed/atom</id>
	

		
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/dougal/posts" /><feedburner:info uri="dougal/posts" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>dougal/posts</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><entry>
		<author>
			<name>Dougal</name>
						<uri>http://dougal.gunters.org/</uri>
					</author>
		<title type="html"><![CDATA[Bug Chasing]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dougal/posts/~3/vmKx3FQj7gU/bug-chasing" />
		<id>http://dougal.gunters.org/?p=2026</id>
		<updated>2010-03-06T22:33:15Z</updated>
		<published>2010-03-07T23:00:31Z</published>
		<category scheme="http://dougal.gunters.org" term="WordPress" /><category scheme="http://dougal.gunters.org" term="API" /><category scheme="http://dougal.gunters.org" term="bugfix" /><category scheme="http://dougal.gunters.org" term="bugfixes" /><category scheme="http://dougal.gunters.org" term="Bugs" /><category scheme="http://dougal.gunters.org" term="code" /><category scheme="http://dougal.gunters.org" term="Development" /><category scheme="http://dougal.gunters.org" term="filters" /><category scheme="http://dougal.gunters.org" term="html" /><category scheme="http://dougal.gunters.org" term="images" /><category scheme="http://dougal.gunters.org" term="kses" /><category scheme="http://dougal.gunters.org" term="PHP" /><category scheme="http://dougal.gunters.org" term="Programming" /><category scheme="http://dougal.gunters.org" term="trac" /><category scheme="http://dougal.gunters.org" term="webdev" /><category scheme="http://dougal.gunters.org" term="XHTML" /><category scheme="http://dougal.gunters.org" term="XML" />		<summary type="html">&lt;div style="float: right;"&gt;&lt;img width="150" height="150" src="http://media.dougal.us.s3.amazonaws.com/wordpress/wp-content/uploads/2008/11/wplogo-notext-rgb.png" class="attachment-post-thumbnail wp-post-image" alt="" title="WordPress" /&gt;&lt;/div&gt;&lt;p&gt;Okay, so in my post about Code Spelunking I mentioned about how working on a project can lead you to explore the code because you need to become more familiar with how the code works. But it can also lead you to explore the code to figure out why code &lt;strong&gt;doesn&amp;#8217;t&lt;/strong&gt; work. In this particular case, I spent many hours puzzling over why something didn&amp;#8217;t work correctly, chasing down the root cause, and eventually finding a bug in the &lt;a href="http://wordpress.org/"&gt;WordPress&lt;/a&gt; core. [...]&lt;/p&gt;


No related posts.</summary>
		<content type="html" xml:base="http://dougal.gunters.org/blog/2010/03/07/bug-chasing?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss">&lt;div style="float: right;"&gt;&lt;img width="150" height="150" src="http://media.dougal.us.s3.amazonaws.com/wordpress/wp-content/uploads/2008/11/wplogo-notext-rgb.png" class="attachment-post-thumbnail wp-post-image" alt="" title="WordPress" /&gt;&lt;/div&gt;&lt;p&gt;Okay, so in my post about Code Spelunking I mentioned about how working on a project can lead you to explore the code because you need to become more familiar with how the code works. But it can also lead you to explore the code to figure out why code &lt;strong&gt;doesn&amp;#8217;t&lt;/strong&gt; work. In this particular case, I spent many hours puzzling over why something didn&amp;#8217;t work correctly, chasing down the root cause, and eventually finding a bug in the &lt;a href="http://wordpress.org/"&gt;WordPress&lt;/a&gt; core. I documented the bug in &lt;a href="http://core.trac.wordpress.org/ticket/12394"&gt;Ticket #12394&lt;/a&gt;, provided a patch, and it was committed to core in &lt;a href="http://core.trac.wordpress.org/changeset/13561"&gt;Changeset [13561]&lt;/a&gt;, which will be part of WordPress 3.0.&lt;/p&gt;
&lt;p&gt;&lt;span id="more-2026"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;And how did I find this little buglet? As usual, it&amp;#8217;s because I was doing something a little off the beaten track. I was working on some code which imports &lt;acronym title='eXtensible Markup Language'&gt;&lt;span class='caps'&gt;XML&lt;/span&gt;&lt;/acronym&gt; data into WordPress, on a scheduled basis (hourly, daily, weekly, etc). During testing, sometimes the images in the imported content would come through fine, and other times, they would be missing the &lt;code&gt;src&lt;/code&gt; attribute, without which, there really isn&amp;#8217;t an image, is there? So you&amp;#8217;d view the post and there would be this big 300-pixel square hole with just the alt text where the image &lt;em&gt;should&lt;/em&gt; have been.&lt;/p&gt;
&lt;p&gt;At first, I didn&amp;#8217;t know why it worked only some of the time. Then I saw the pattern that when I ran the code &amp;#8220;manually&amp;#8221; via a &amp;#8220;Run now&amp;#8221; button in my options screen, the images worked. But when the code ran via &lt;a title="Note: there is no good general cron overview article in the Codex. Volunteers?" href="http://codex.wordpress.org/Category:WP-Cron_Functions"&gt;WP-Cron&lt;/a&gt;, they didn&amp;#8217;t. At first, I thought it was a timing issue, and that maybe when the cron action hooks fired, maybe there was some piece of WordPress functionality that wasn&amp;#8217;t loaded yet. But shunting my execution hook to run at a later point didn&amp;#8217;t fix anything.&lt;/p&gt;
&lt;p&gt;Next, I decided that one key difference when running manually versus running from cron was &lt;em&gt;me&lt;/em&gt; &amp;#8212; I was logged in as an admin. And, in fact, after some debugging, I determined that there was no user context at all when running from cron. When I modified the code to run as myself, the image tags came through cleanly. Well, I didn&amp;#8217;t want to hard-code the program to always run as me, so I added a user selector to the options so that the owner of the posts could be set.&lt;/p&gt;
&lt;p&gt;But then when I started testing again, with users of various &lt;a title="Roles and Capabilities in WordPress" href="http://codex.wordpress.org/Roles_and_Capabilities"&gt;roles&lt;/a&gt;, the problem cropped up again. In particular, it worked great for a user with the Editor role, but not for the Author role. Digging a little deeper into the differences between the two roles, the thing that jumped out at me is that Editors (and Admins) have the &amp;#8220;&lt;code&gt;unfiltered_html&lt;/code&gt;&amp;#8221; capability.&lt;/p&gt;
&lt;p&gt;You see, normally, when you write a post, it is sent through a series of filters which take your free-form writing, and turn it into cleaner &lt;acronym title='HyperText Markup Language'&gt;&lt;span class='caps'&gt;HTML&lt;/span&gt;&lt;/acronym&gt;. One of these filters is called &amp;#8216;&lt;a title="kses kills evil scripts" href="http://codex.wordpress.org/Function_Reference/wp_kses"&gt;kses&lt;/a&gt;&amp;#8216; (which stands for &amp;#8216;kses strips evil scripts&amp;#8217;). This filter is especially important on multi-author blogs where you might not be able to give 100% trust to the other authors. Otherwise, one of them would be able to (for instance) put javascript in a post which would steal the cookie information from another user who reads the post. So it is the job of kses to ensure that only &amp;#8220;safe&amp;#8221; &lt;acronym title='HyperText Markup Language'&gt;&lt;span class='caps'&gt;HTML&lt;/span&gt;&lt;/acronym&gt; is kept. This would also keep you from embedding things like YouTube videos, Java applets, and other fun useful things. So users with the &lt;code&gt;unfiltered_html&lt;/code&gt; capability set in their profiles are able to post without this filtering.&lt;/p&gt;
&lt;p&gt;This certainly seemed like a likely culprit, except for one thing: even when post content is filtered through kses, the &lt;acronym title='HyperText Markup Language'&gt;&lt;span class='caps'&gt;HTML&lt;/span&gt;&lt;/acronym&gt; &lt;code&gt;img&lt;/code&gt; tag is not filtered out. And neither is the &lt;code&gt;src&lt;/code&gt; attribute on an image. That is specifically supposed to be allowed. An image is a perfectly normal thing to have in a post. So why, oh why, was my &lt;code&gt;src&lt;/code&gt; attribute being stripped?&lt;/p&gt;
&lt;p&gt;I started looking very closely at the kses library. It&amp;#8217;s a rather hairy bit of code, full of complex regular expressions and state-machine logic. But when reverse-engineering how the attribute-cleaning bits work, I noticed something in one of the regular expressions: it was hardcoded to expect a space between the end of an attribute and the closing of a tag. In other words, it expected an image tag to look something like this:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;&amp;lt;img width='400' height='300' src='people.jpg' /&amp;gt;&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;But, since my data was coming from an &lt;acronym title='eXtensible Markup Language'&gt;&lt;span class='caps'&gt;XML&lt;/span&gt;&lt;/acronym&gt; source, there was no extraneous space. My image tags looked like this:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;&amp;lt;img width='400' height='300' src='people.jpg'/&amp;gt;&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Notice the subtle difference? There is no space between the final single-quote around &lt;strong&gt;&lt;code&gt;'people.jpg'&lt;/code&gt;&lt;/strong&gt; and the &lt;strong&gt;&lt;code&gt;/&amp;gt;&lt;/code&gt;&lt;/strong&gt; which closes the tag. And because of the way the match was being done, kses was throwing away any attribute that abutted the tag-close in that fashion.&lt;/p&gt;
&lt;p&gt;The next question was: was this (technically) a bug, or was kses just being strict about some rules of formatting? A quick search turned up the &lt;a href="http://www.w3.org/TR/xhtml1/#h-4.6"&gt;Empty Elements&lt;/a&gt; section of the &lt;acronym title='eXtensible HyperText Markup Language'&gt;&lt;span class='caps'&gt;XHTML&lt;/span&gt;&lt;/acronym&gt; spec, which covers the syntax for empty tags like &lt;code&gt;img&lt;/code&gt;, &lt;code&gt;br&lt;/code&gt;, and &lt;code&gt;hr&lt;/code&gt;. The examples given there do not include a space before the end of the elements. Furthermore, this section points to the &lt;a href="http://www.w3.org/TR/xhtml1/#guidelines"&gt;&lt;acronym title='HyperText Markup Language'&gt;&lt;span class='caps'&gt;HTML&lt;/span&gt;&lt;/acronym&gt; Compatibility Guidelines&lt;/a&gt;, which show that adding a space is for compatibility with older &lt;acronym title='HyperText Markup Language'&gt;&lt;span class='caps'&gt;HTML&lt;/span&gt;&lt;/acronym&gt; browsers. So, since the &lt;acronym title='eXtensible HyperText Markup Language'&gt;&lt;span class='caps'&gt;XHTML&lt;/span&gt;&lt;/acronym&gt; spec does not require the space, and WordPress is supposed to render &lt;acronym title='eXtensible HyperText Markup Language'&gt;&lt;span class='caps'&gt;XHTML&lt;/span&gt;&lt;/acronym&gt; code, the behavior in kses was definitely a bug, and not just bad manners. I quickly worked up a patch, submitted it on &lt;a title="The WordPress bug tracking system and code browser" href="http://core.trac.wordpress.org/"&gt;Trac&lt;/a&gt;, and brought it to the attention of the core team.&lt;/p&gt;
&lt;p&gt;Fortunately, &lt;a href="http://codex.wordpress.org/Plugin_API/Filter_Reference"&gt;the WordPress system of filters&lt;/a&gt; allows you to alter just about anything on the fly, so I was able to &amp;#8220;trick&amp;#8221; the system into thinking that the posting user selected in my plugin had the unfiltered_html capability, even when they really didn&amp;#8217;t. This allowed me to work around the bug while my plugin is running.&lt;/p&gt;
&lt;p&gt;This bug was pretty minor in the grand scheme of things. Probably not many people had ever run into it. But after hours of puzzling over those broken image tags, it felt darned good to find it, and &amp;#8212; more importantly &amp;#8212; squash it. And after the release of WordPress 3.0, nobody will have to scratch their heads over it again. Yay me!&lt;/p&gt;


&lt;p&gt;No related posts.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=vmKx3FQj7gU:HLWbE1nX654:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=vmKx3FQj7gU:HLWbE1nX654:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?i=vmKx3FQj7gU:HLWbE1nX654:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=vmKx3FQj7gU:HLWbE1nX654:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?i=vmKx3FQj7gU:HLWbE1nX654:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=vmKx3FQj7gU:HLWbE1nX654:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?i=vmKx3FQj7gU:HLWbE1nX654:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=vmKx3FQj7gU:HLWbE1nX654:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/dougal/posts/~4/vmKx3FQj7gU" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://dougal.gunters.org/blog/2010/03/07/bug-chasing?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss#comments" thr:count="13" />
		<link rel="replies" type="application/atom+xml" href="http://dougal.gunters.org/blog/2010/03/07/bug-chasing/feed/atom" thr:count="13" />
		<thr:total>13</thr:total>
	<feedburner:origLink>http://dougal.gunters.org/blog/2010/03/07/bug-chasing?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Dougal</name>
						<uri>http://dougal.gunters.org/</uri>
					</author>
		<title type="html"><![CDATA[Dougal on WordPress Community Podcast]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dougal/posts/~3/0kuZ8Kwq-wU/dougal-on-wordpress-community-podcast" />
		<id>http://dougal.gunters.org/?p=2019</id>
		<updated>2010-02-24T02:33:50Z</updated>
		<published>2010-02-23T23:52:42Z</published>
		<category scheme="http://dougal.gunters.org" term="WordPress" /><category scheme="http://dougal.gunters.org" term="Development" /><category scheme="http://dougal.gunters.org" term="interviews" /><category scheme="http://dougal.gunters.org" term="iTunes" /><category scheme="http://dougal.gunters.org" term="Microformats" /><category scheme="http://dougal.gunters.org" term="Plugins" /><category scheme="http://dougal.gunters.org" term="podcasts" /><category scheme="http://dougal.gunters.org" term="wordpress 3.0" /><category scheme="http://dougal.gunters.org" term="wordpress core" />		<summary type="html">&lt;div style="float: right;"&gt;&lt;img width="150" height="150" src="http://media.dougal.us.s3.amazonaws.com/wordpress/wp-content/uploads/2008/11/wplogo-notext-rgb.png" class="attachment-post-thumbnail wp-post-image" alt="" title="WordPress" /&gt;&lt;/div&gt;&lt;p&gt;I was the guest tonight on the &lt;a href="http://www2.webmasterradio.fm/wordpress-community-podcast/"&gt;WordPress Community Podcast&lt;/a&gt;, hosted by &lt;a href="http://yoast.com/"&gt;Joost de Valk&lt;/a&gt; and &lt;a href="http://www.w3-edge.com/"&gt;Frederick Townes&lt;/a&gt;. We talked about &lt;a href="http://wordpress.org/development/2010/02/menus-merge-patch-sprint/"&gt;upcoming features in WordPress 3.0&lt;/a&gt;, my past work as a WordPress core developer, &lt;a title="Dougal's WordPress Plugins" href="http://dougal.gunters.org/plugins"&gt;my WordPress plugins&lt;/a&gt;, microformats, and a smattering of other topics. [...]&lt;/p&gt;


Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2007/08/29/how-to-podcast-with-an-iphone' rel='bookmark' title='Permanent Link: How to podcast with an iPhone'&gt;How to podcast with an iPhone&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2009/07/30/wordpress-packages' rel='bookmark' title='Permanent Link: WordPress Packages?'&gt;WordPress Packages?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2007/11/09/easy-gravatars-with-google-analytics-plugin' rel='bookmark' title='Permanent Link: Easy Gravatars with Google Analytics Plugin'&gt;Easy Gravatars with Google Analytics Plugin&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</summary>
		<content type="html" xml:base="http://dougal.gunters.org/blog/2010/02/23/dougal-on-wordpress-community-podcast?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss">&lt;div style="float: right;"&gt;&lt;img width="150" height="150" src="http://media.dougal.us.s3.amazonaws.com/wordpress/wp-content/uploads/2008/11/wplogo-notext-rgb.png" class="attachment-post-thumbnail wp-post-image" alt="" title="WordPress" /&gt;&lt;/div&gt;&lt;p&gt;I was the guest tonight on the &lt;a href="http://www2.webmasterradio.fm/wordpress-community-podcast/"&gt;WordPress Community Podcast&lt;/a&gt;, hosted by &lt;a href="http://yoast.com/"&gt;Joost de Valk&lt;/a&gt; and &lt;a href="http://www.w3-edge.com/"&gt;Frederick Townes&lt;/a&gt;. We talked about &lt;a href="http://wordpress.org/development/2010/02/menus-merge-patch-sprint/"&gt;upcoming features in WordPress 3.0&lt;/a&gt;, my past work as a WordPress core developer, &lt;a title="Dougal's WordPress Plugins" href="http://dougal.gunters.org/plugins"&gt;my WordPress plugins&lt;/a&gt;, microformats, and a smattering of other topics. My interview should be up later tonight.&lt;/p&gt;
&lt;p&gt;Joost and Frederick do a great job with the interviews, so if you haven&amp;#8217;t already, you should &lt;a href="http://itunes.apple.com/us/podcast/wordpress-community-podcast/id164651619"&gt;subscribe to the WordPress Community Podcast&lt;/a&gt; and give it a listen!&lt;/p&gt;
&lt;p&gt;UPDATE 9:30 p.m. EST: The &lt;a title="Fireside Chat with Dougal Campbel, An Early WordPress Developer" href="http://www2.webmasterradio.fm/wordpress-community-podcast/2010/02/23/fireside-chat-with-dougal-campbell-an-early-wordpress-developer/"&gt;show notes&lt;/a&gt; are up now!&lt;/p&gt;


&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2007/08/29/how-to-podcast-with-an-iphone' rel='bookmark' title='Permanent Link: How to podcast with an iPhone'&gt;How to podcast with an iPhone&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2009/07/30/wordpress-packages' rel='bookmark' title='Permanent Link: WordPress Packages?'&gt;WordPress Packages?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2007/11/09/easy-gravatars-with-google-analytics-plugin' rel='bookmark' title='Permanent Link: Easy Gravatars with Google Analytics Plugin'&gt;Easy Gravatars with Google Analytics Plugin&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=0kuZ8Kwq-wU:N7Od6ZUwAEM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=0kuZ8Kwq-wU:N7Od6ZUwAEM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?i=0kuZ8Kwq-wU:N7Od6ZUwAEM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=0kuZ8Kwq-wU:N7Od6ZUwAEM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?i=0kuZ8Kwq-wU:N7Od6ZUwAEM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=0kuZ8Kwq-wU:N7Od6ZUwAEM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?i=0kuZ8Kwq-wU:N7Od6ZUwAEM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=0kuZ8Kwq-wU:N7Od6ZUwAEM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/dougal/posts/~4/0kuZ8Kwq-wU" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://dougal.gunters.org/blog/2010/02/23/dougal-on-wordpress-community-podcast?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss#comments" thr:count="2" />
		<link rel="replies" type="application/atom+xml" href="http://dougal.gunters.org/blog/2010/02/23/dougal-on-wordpress-community-podcast/feed/atom" thr:count="2" />
		<thr:total>2</thr:total>
	<feedburner:origLink>http://dougal.gunters.org/blog/2010/02/23/dougal-on-wordpress-community-podcast?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Dougal</name>
						<uri>http://dougal.gunters.org/</uri>
					</author>
		<title type="html"><![CDATA[WordPress Code Spelunking]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dougal/posts/~3/1KCwhe7exm0/wordpress-code-spelunking" />
		<id>http://dougal.gunters.org/?p=2012</id>
		<updated>2010-02-19T04:56:17Z</updated>
		<published>2010-02-19T04:56:17Z</published>
		<category scheme="http://dougal.gunters.org" term="WordPress" /><category scheme="http://dougal.gunters.org" term="API" /><category scheme="http://dougal.gunters.org" term="code" /><category scheme="http://dougal.gunters.org" term="codex" /><category scheme="http://dougal.gunters.org" term="core" /><category scheme="http://dougal.gunters.org" term="Development" /><category scheme="http://dougal.gunters.org" term="exploration" /><category scheme="http://dougal.gunters.org" term="functions" /><category scheme="http://dougal.gunters.org" term="http class" /><category scheme="http://dougal.gunters.org" term="images" /><category scheme="http://dougal.gunters.org" term="learning" /><category scheme="http://dougal.gunters.org" term="phpdoc" /><category scheme="http://dougal.gunters.org" term="Plugins" /><category scheme="http://dougal.gunters.org" term="scheduling" /><category scheme="http://dougal.gunters.org" term="simplexml" /><category scheme="http://dougal.gunters.org" term="wp cron" /><category scheme="http://dougal.gunters.org" term="wp_http" /><category scheme="http://dougal.gunters.org" term="wp_insert_post" /><category scheme="http://dougal.gunters.org" term="wp_upload_bits" /><category scheme="http://dougal.gunters.org" term="xpath" />		<summary type="html">&lt;div style="float: right;"&gt;&lt;img width="150" height="150" src="http://media.dougal.us.s3.amazonaws.com/wordpress/wp-content/uploads/2008/11/wplogo-notext-rgb.png" class="attachment-post-thumbnail wp-post-image" alt="" title="WordPress" /&gt;&lt;/div&gt;&lt;p&gt;Earlier today, I finished up a WordPress plugin that I&amp;#8217;ve been working on for a client.  Without divulging too many details, I&amp;#8217;ll say that it wasn&amp;#8217;t a huge project, nor was it overly complicated, but it was interesting. One fun thing about working on projects for clients, is that it often gives you a chance to explore areas that you might not have looked too closely at on your own.&lt;/p&gt;
&lt;p&gt;&lt;span id="more-2012"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;For example, some of the areas of WordPress (and &lt;acronym title='Php Hypertext Processor'&gt;&lt;span class='caps'&gt;PHP&lt;/span&gt;&lt;/acronym&gt; in general) that I researched and learned more about were:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href="http://codex.wordpress.org/Settings_API"&gt;WordPress Settings &lt;acronym title='Application Interface'&gt;&lt;span class='caps'&gt;API&lt;/span&gt;&lt;/acronym&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;The &lt;a href="http://codex.wordpress.org/Category:WP-Cron_Functions"&gt;WP Cron&lt;/a&gt; scheduling system&lt;/li&gt;
&lt;li&gt;Using the &lt;a href="http://phpdoc.wordpress.org/trunk/WordPress/HTTP/WP_Http.html"&gt;WP_Http class&lt;/a&gt; to communicate with a third-party web service&lt;/li&gt;
&lt;li&gt;Using the &lt;code&gt;&lt;a href="http://codex.wordpress.org/Function_Reference/wp_upload_bits"&gt;wp_upload_bits()&lt;/a&gt;&lt;/code&gt; function to create an image file&lt;/li&gt;
&lt;li&gt;Learning some of the newer bits that were added to &lt;code&gt;&lt;a href="http://codex.wordpress.org/Function_Reference/wp_insert_post"&gt;wp_insert_post()&lt;/a&gt;&lt;/code&gt; since I originally created it as part of my &lt;a href="http://codex.wordpress.org/XML-RPC_Support"&gt;&lt;acronym title='eXtensible Markup Language'&gt;&lt;span class='caps'&gt;XML&lt;/span&gt;&lt;/acronym&gt;-&lt;acronym title='Remote Procedure Call'&gt;&lt;span class='caps'&gt;RPC&lt;/span&gt;&lt;/acronym&gt; &lt;acronym title='Application Interface'&gt;&lt;span class='caps'&gt;API&lt;/span&gt;&lt;/acronym&gt;&lt;/a&gt; work over 6 years ago&lt;/li&gt;
&lt;li&gt;&lt;acronym title='Php Hypertext Processor'&gt;&lt;span class='caps'&gt;PHP&lt;/span&gt;&lt;/acronym&gt;&amp;#8217;s &lt;a href="http://us2.php.net/manual/en/book.simplexml.php"&gt;SimpleXML&lt;/a&gt; functions (including some specifics around using &lt;code&gt;xpath()&lt;/code&gt; with namespaced elements)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I used a combination of the links above, other articles I found, plus some good old exploration in the WordPress core to learn more about these topics. [...]&lt;/p&gt;


Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2010/03/07/bug-chasing' rel='bookmark' title='Permanent Link: Bug Chasing'&gt;Bug Chasing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2009/12/10/wordpress-option-namespacing' rel='bookmark' title='Permanent Link: Suggestion: WordPress Option Namespacing'&gt;Suggestion: WordPress Option Namespacing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2009/10/16/wordpress-2-9-features' rel='bookmark' title='Permanent Link: WordPress 2.9 Features'&gt;WordPress 2.9 Features&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</summary>
		<content type="html" xml:base="http://dougal.gunters.org/blog/2010/02/18/wordpress-code-spelunking?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss">&lt;div style="float: right;"&gt;&lt;img width="150" height="150" src="http://media.dougal.us.s3.amazonaws.com/wordpress/wp-content/uploads/2008/11/wplogo-notext-rgb.png" class="attachment-post-thumbnail wp-post-image" alt="" title="WordPress" /&gt;&lt;/div&gt;&lt;p&gt;Earlier today, I finished up a WordPress plugin that I&amp;#8217;ve been working on for a client.  Without divulging too many details, I&amp;#8217;ll say that it wasn&amp;#8217;t a huge project, nor was it overly complicated, but it was interesting. One fun thing about working on projects for clients, is that it often gives you a chance to explore areas that you might not have looked too closely at on your own.&lt;/p&gt;
&lt;p&gt;&lt;span id="more-2012"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;For example, some of the areas of WordPress (and &lt;acronym title='Php Hypertext Processor'&gt;&lt;span class='caps'&gt;PHP&lt;/span&gt;&lt;/acronym&gt; in general) that I researched and learned more about were:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The &lt;a href="http://codex.wordpress.org/Settings_API"&gt;WordPress Settings &lt;acronym title='Application Interface'&gt;&lt;span class='caps'&gt;API&lt;/span&gt;&lt;/acronym&gt;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;The &lt;a href="http://codex.wordpress.org/Category:WP-Cron_Functions"&gt;WP Cron&lt;/a&gt; scheduling system&lt;/li&gt;
&lt;li&gt;Using the &lt;a href="http://phpdoc.wordpress.org/trunk/WordPress/HTTP/WP_Http.html"&gt;WP_Http class&lt;/a&gt; to communicate with a third-party web service&lt;/li&gt;
&lt;li&gt;Using the &lt;code&gt;&lt;a href="http://codex.wordpress.org/Function_Reference/wp_upload_bits"&gt;wp_upload_bits()&lt;/a&gt;&lt;/code&gt; function to create an image file&lt;/li&gt;
&lt;li&gt;Learning some of the newer bits that were added to &lt;code&gt;&lt;a href="http://codex.wordpress.org/Function_Reference/wp_insert_post"&gt;wp_insert_post()&lt;/a&gt;&lt;/code&gt; since I originally created it as part of my &lt;a href="http://codex.wordpress.org/XML-RPC_Support"&gt;&lt;acronym title='eXtensible Markup Language'&gt;&lt;span class='caps'&gt;XML&lt;/span&gt;&lt;/acronym&gt;-&lt;acronym title='Remote Procedure Call'&gt;&lt;span class='caps'&gt;RPC&lt;/span&gt;&lt;/acronym&gt; &lt;acronym title='Application Interface'&gt;&lt;span class='caps'&gt;API&lt;/span&gt;&lt;/acronym&gt;&lt;/a&gt; work over 6 years ago&lt;/li&gt;
&lt;li&gt;&lt;acronym title='Php Hypertext Processor'&gt;&lt;span class='caps'&gt;PHP&lt;/span&gt;&lt;/acronym&gt;&amp;#8217;s &lt;a href="http://us2.php.net/manual/en/book.simplexml.php"&gt;SimpleXML&lt;/a&gt; functions (including some specifics around using &lt;code&gt;xpath()&lt;/code&gt; with namespaced elements)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I used a combination of the links above, other articles I found, plus some good old exploration in the WordPress core to learn more about these topics. Exploring the core code was most helpful in learning about &lt;code&gt;WP_Http&lt;/code&gt;, &lt;code&gt;wp_upload_bits()&lt;/code&gt;, and some extras for &lt;code&gt;wp_insert_post()&lt;/code&gt; that aren&amp;#8217;t documented on the Codex page.&lt;/p&gt;
&lt;p&gt;Digging around in these corners of the code can be much like &lt;a href="http://en.wikipedia.org/wiki/Caving"&gt;spelunking&lt;/a&gt;. You&amp;#8217;re digging down into places never seen by most people, and often finding little gems that you suspected might exist, but you weren&amp;#8217;t sure until you actually saw them. If you haven&amp;#8217;t poked around in the core code lately, maybe you should. I usually prefer to use command-line tools like &lt;code&gt;grep&lt;/code&gt; and a text editor. But the online &lt;a href="http://phpdoc.wordpress.org/trunk/"&gt;WordPress phpdoc xref &lt;/a&gt;is a nice way to look at the code, too.&lt;/p&gt;


&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2010/03/07/bug-chasing' rel='bookmark' title='Permanent Link: Bug Chasing'&gt;Bug Chasing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2009/12/10/wordpress-option-namespacing' rel='bookmark' title='Permanent Link: Suggestion: WordPress Option Namespacing'&gt;Suggestion: WordPress Option Namespacing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2009/10/16/wordpress-2-9-features' rel='bookmark' title='Permanent Link: WordPress 2.9 Features'&gt;WordPress 2.9 Features&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=1KCwhe7exm0:tOWMFXU3JWU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=1KCwhe7exm0:tOWMFXU3JWU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?i=1KCwhe7exm0:tOWMFXU3JWU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=1KCwhe7exm0:tOWMFXU3JWU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?i=1KCwhe7exm0:tOWMFXU3JWU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=1KCwhe7exm0:tOWMFXU3JWU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?i=1KCwhe7exm0:tOWMFXU3JWU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=1KCwhe7exm0:tOWMFXU3JWU:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/dougal/posts/~4/1KCwhe7exm0" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://dougal.gunters.org/blog/2010/02/18/wordpress-code-spelunking?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss#comments" thr:count="14" />
		<link rel="replies" type="application/atom+xml" href="http://dougal.gunters.org/blog/2010/02/18/wordpress-code-spelunking/feed/atom" thr:count="14" />
		<thr:total>14</thr:total>
	<feedburner:origLink>http://dougal.gunters.org/blog/2010/02/18/wordpress-code-spelunking?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Dougal</name>
						<uri>http://dougal.gunters.org/</uri>
					</author>
		<title type="html"><![CDATA[Bing Maps Photosynth Mashup]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dougal/posts/~3/xVJYB12P1Ws/bing-maps-photosynth-mashup" />
		<id>http://dougal.gunters.org/?p=2007</id>
		<updated>2010-02-12T17:53:52Z</updated>
		<published>2010-02-12T17:53:52Z</published>
		<category scheme="http://dougal.gunters.org" term="Tech" /><category scheme="http://dougal.gunters.org" term="3d" /><category scheme="http://dougal.gunters.org" term="bing maps" /><category scheme="http://dougal.gunters.org" term="creative commons" /><category scheme="http://dougal.gunters.org" term="Flickr" /><category scheme="http://dougal.gunters.org" term="google maps" /><category scheme="http://dougal.gunters.org" term="mapping" /><category scheme="http://dougal.gunters.org" term="Mashups" /><category scheme="http://dougal.gunters.org" term="Microsoft" /><category scheme="http://dougal.gunters.org" term="photographs" /><category scheme="http://dougal.gunters.org" term="Photography" /><category scheme="http://dougal.gunters.org" term="photosynth" /><category scheme="http://dougal.gunters.org" term="seadragon" /><category scheme="http://dougal.gunters.org" term="silverlight" /><category scheme="http://dougal.gunters.org" term="streetview" />		<summary type="html">&lt;p&gt;I&amp;#8217;ve always been a big fan of &lt;a href="http://maps.google.com/"&gt;Google Maps&lt;/a&gt;. . [...]&lt;/p&gt;


Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2005/02/08/google-maps' rel='bookmark' title='Permanent Link: Google Maps'&gt;Google Maps&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2005/02/10/google-maps-latlong-bookmarklet' rel='bookmark' title='Permanent Link: Google Maps Lat/Long Bookmarklet'&gt;Google Maps Lat/Long Bookmarklet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2005/02/09/google-maps-dissected' rel='bookmark' title='Permanent Link: Google Maps Dissected'&gt;Google Maps Dissected&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</summary>
		<content type="html" xml:base="http://dougal.gunters.org/blog/2010/02/12/bing-maps-photosynth-mashup?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss">&lt;p&gt;I&amp;#8217;ve always been a big fan of &lt;a href="http://maps.google.com/"&gt;Google Maps&lt;/a&gt;. But stuff like this is could sway me into using &lt;a href="http://www.bing.com/maps/"&gt;Bing Maps&lt;/a&gt; on a more regular basis:&lt;/p&gt;
&lt;p&gt;&lt;object width="500" height="306"&gt;&lt;param name="movie" value="http://www.youtube.com/v/U0Z3NSff3I0&amp;#038;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/U0Z3NSff3I0&amp;#038;fs=1" type="application/x-shockwave-flash" width="500" height="306" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;Microsoft is combining geo-tagged, Creative Commons licensed photographs from &lt;a href="http://flickr.com/"&gt;Flickr&lt;/a&gt;, and integrating them with Bing Maps using their awesome Photosynth technology.&lt;/p&gt;
&lt;p&gt;To try this feature yourself, you&amp;#8217;ll need the &lt;a href="http://www.google.com/url?sa=t&amp;amp;source=web&amp;amp;ct=res&amp;amp;cd=1&amp;amp;ved=0CAsQFjAA&amp;amp;url=http%3A%2F%2Fwww.microsoft.com%2Fsilverlight%2Fdownloads.aspx&amp;amp;ei=JJJ1S-LyK-WutgfClImyCg&amp;amp;usg=AFQjCNFsm7kRq-cUC5VWWlN_ql6j4jn3LQ&amp;amp;sig2=VtSWMVOUpBr5ucvfFWe91Q"&gt;Silverlight browser plugin&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2005/02/08/google-maps' rel='bookmark' title='Permanent Link: Google Maps'&gt;Google Maps&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2005/02/10/google-maps-latlong-bookmarklet' rel='bookmark' title='Permanent Link: Google Maps Lat/Long Bookmarklet'&gt;Google Maps Lat/Long Bookmarklet&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2005/02/09/google-maps-dissected' rel='bookmark' title='Permanent Link: Google Maps Dissected'&gt;Google Maps Dissected&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=xVJYB12P1Ws:41u-rjGeH1I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=xVJYB12P1Ws:41u-rjGeH1I:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?i=xVJYB12P1Ws:41u-rjGeH1I:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=xVJYB12P1Ws:41u-rjGeH1I:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?i=xVJYB12P1Ws:41u-rjGeH1I:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=xVJYB12P1Ws:41u-rjGeH1I:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?i=xVJYB12P1Ws:41u-rjGeH1I:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=xVJYB12P1Ws:41u-rjGeH1I:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/dougal/posts/~4/xVJYB12P1Ws" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://dougal.gunters.org/blog/2010/02/12/bing-maps-photosynth-mashup?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://dougal.gunters.org/blog/2010/02/12/bing-maps-photosynth-mashup/feed/atom" thr:count="1" />
		<thr:total>1</thr:total>
	<feedburner:origLink>http://dougal.gunters.org/blog/2010/02/12/bing-maps-photosynth-mashup?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Dougal</name>
						<uri>http://dougal.gunters.org/</uri>
					</author>
		<title type="html"><![CDATA[WordPress 3.0 Multisite Terminology]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dougal/posts/~3/91Vl7FpU19o/wordpress-3-0-multisite-terminology" />
		<id>http://dougal.gunters.org/?p=1994</id>
		<updated>2010-02-04T15:08:34Z</updated>
		<published>2010-01-25T09:00:30Z</published>
		<category scheme="http://dougal.gunters.org" term="WordPress" /><category scheme="http://dougal.gunters.org" term="alpha" /><category scheme="http://dougal.gunters.org" term="Blog" /><category scheme="http://dougal.gunters.org" term="blog network" /><category scheme="http://dougal.gunters.org" term="network" /><category scheme="http://dougal.gunters.org" term="network settings" /><category scheme="http://dougal.gunters.org" term="site" /><category scheme="http://dougal.gunters.org" term="versions" /><category scheme="http://dougal.gunters.org" term="wordpress 3.0" /><category scheme="http://dougal.gunters.org" term="wordpress mu" /><category scheme="http://dougal.gunters.org" term="wordpress multisite" /><category scheme="http://dougal.gunters.org" term="wpmu" />		<summary type="html">&lt;div style="float: right;"&gt;&lt;img width="150" height="150" src="http://media.dougal.us.s3.amazonaws.com/wordpress/wp-content/uploads/2008/11/wplogo-notext-rgb.png" class="attachment-post-thumbnail wp-post-image" alt="" title="WordPress" /&gt;&lt;/div&gt;&lt;p&gt;&lt;ins datetime="2010-01-25T14:58:18+00:00"&gt;One of the big changes coming in WordPress 3.0 is the merge of the WordPress MU code into the standard stand-alone WordPress codebase. When WordPress 3.0 is released, you will be able to choose to install it either as a single site, or in multi-site mode.&lt;/ins&gt; With the migration from WordPress MU (MultiUser) to WordPress 3.0 (Multisite), I think there is a need for us to clarify some terminology. [...]&lt;/p&gt;


Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2008/01/22/reactivate-all-in-wp-25' rel='bookmark' title='Permanent Link: Reactivate All Plugins feature in WordPress 2.5'&gt;Reactivate All Plugins feature in WordPress 2.5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2005/04/20/9rules-network-chooses-wordpress' rel='bookmark' title='Permanent Link: 9rules Network chooses WordPress'&gt;9rules Network chooses WordPress&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2007/07/16/14-awesome-wordpress-powered-sites' rel='bookmark' title='Permanent Link: 14+ Awesome WordPress-powered sites'&gt;14+ Awesome WordPress-powered sites&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</summary>
		<content type="html" xml:base="http://dougal.gunters.org/blog/2010/01/25/wordpress-3-0-multisite-terminology?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss">&lt;div style="float: right;"&gt;&lt;img width="150" height="150" src="http://media.dougal.us.s3.amazonaws.com/wordpress/wp-content/uploads/2008/11/wplogo-notext-rgb.png" class="attachment-post-thumbnail wp-post-image" alt="" title="WordPress" /&gt;&lt;/div&gt;&lt;p&gt;&lt;ins datetime="2010-01-25T14:58:18+00:00"&gt;One of the big changes coming in WordPress 3.0 is the merge of the WordPress MU code into the standard stand-alone WordPress codebase. When WordPress 3.0 is released, you will be able to choose to install it either as a single site, or in multi-site mode.&lt;/ins&gt; With the migration from WordPress MU (MultiUser) to WordPress 3.0 (Multisite), I think there is a need for us to clarify some terminology. On the &lt;a href="http://codex.wordpress.org/Mailing_Lists"&gt;wp-hackers mailing list&lt;/a&gt;, I&amp;#8217;ve seen several instances where people used the word &amp;#8220;site&amp;#8221; to mean different things, depending on who is writing, and the context of what they are trying to say.There is some overlap currently between how we discuss an individual site within the setup, versus the overall system which contains those sites.&lt;br /&gt;
&lt;span id="more-1994"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;In WordPress MU, the term &amp;#8220;site&amp;#8221; tended to refer to the overall installation, covering multiple &amp;#8220;blogs&amp;#8221;. With WordPress 3.0 in Multisite mode, some people are conflating the terms &amp;#8220;blog&amp;#8221; and &amp;#8220;site&amp;#8221;, and it appears that &amp;#8220;site&amp;#8221; would be the preferred term. The new term for the overall system is &amp;#8220;network&amp;#8221;, as evidenced by the new &lt;a href="http://wpengineer.com/wordpress-3-multisite-settings/"&gt;Network Settings page&lt;/a&gt;. So instead of a &amp;#8220;site&amp;#8221; which contains multiple &amp;#8220;blogs&amp;#8221;, we have a &amp;#8220;network&amp;#8221; which contains multiple &amp;#8220;sites&amp;#8221;.&lt;/p&gt;
&lt;p&gt;The change in terminology might cause some confusion at first, especially among people who are already familiar with WordPress MU, and are used to the old terms. But I think that saying &amp;#8220;site&amp;#8221; instead of &amp;#8220;blog&amp;#8221; is better, because it avoids confusion for people who are building websites that are &lt;em&gt;not&lt;/em&gt; blogs. With that in mind, it makes a lot of sense to talk about a WordPress installation as a network of sites.&lt;/p&gt;


&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2008/01/22/reactivate-all-in-wp-25' rel='bookmark' title='Permanent Link: Reactivate All Plugins feature in WordPress 2.5'&gt;Reactivate All Plugins feature in WordPress 2.5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2005/04/20/9rules-network-chooses-wordpress' rel='bookmark' title='Permanent Link: 9rules Network chooses WordPress'&gt;9rules Network chooses WordPress&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2007/07/16/14-awesome-wordpress-powered-sites' rel='bookmark' title='Permanent Link: 14+ Awesome WordPress-powered sites'&gt;14+ Awesome WordPress-powered sites&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=91Vl7FpU19o:IcKx2P07XCw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=91Vl7FpU19o:IcKx2P07XCw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?i=91Vl7FpU19o:IcKx2P07XCw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=91Vl7FpU19o:IcKx2P07XCw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?i=91Vl7FpU19o:IcKx2P07XCw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=91Vl7FpU19o:IcKx2P07XCw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?i=91Vl7FpU19o:IcKx2P07XCw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=91Vl7FpU19o:IcKx2P07XCw:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/dougal/posts/~4/91Vl7FpU19o" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://dougal.gunters.org/blog/2010/01/25/wordpress-3-0-multisite-terminology?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss#comments" thr:count="41" />
		<link rel="replies" type="application/atom+xml" href="http://dougal.gunters.org/blog/2010/01/25/wordpress-3-0-multisite-terminology/feed/atom" thr:count="41" />
		<thr:total>41</thr:total>
	<feedburner:origLink>http://dougal.gunters.org/blog/2010/01/25/wordpress-3-0-multisite-terminology?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Dougal</name>
						<uri>http://dougal.gunters.org/</uri>
					</author>
		<title type="html"><![CDATA[Recipe: Moroccan Chicken with Rice]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dougal/posts/~3/tXeoLz6Edic/recipe-moroccan-chicken-with-rice" />
		<id>http://dougal.gunters.org/?p=1979</id>
		<updated>2010-02-04T15:07:24Z</updated>
		<published>2010-01-22T11:00:56Z</published>
		<category scheme="http://dougal.gunters.org" term="Personal" /><category scheme="http://dougal.gunters.org" term="chicken" /><category scheme="http://dougal.gunters.org" term="cooking" /><category scheme="http://dougal.gunters.org" term="delicious" /><category scheme="http://dougal.gunters.org" term="Food" /><category scheme="http://dougal.gunters.org" term="hrecipe" /><category scheme="http://dougal.gunters.org" term="mediterranean" /><category scheme="http://dougal.gunters.org" term="medium-difficulty" /><category scheme="http://dougal.gunters.org" term="Microformats" /><category scheme="http://dougal.gunters.org" term="middle-eastern" /><category scheme="http://dougal.gunters.org" term="moroccan" /><category scheme="http://dougal.gunters.org" term="recipes" />		<summary type="html">&lt;p&gt;Let&amp;#8217;s take a break from the tech talk, and I&amp;#8217;ll share a recipe with you. No, not a programming recipe, but the food kind. Yes, sometimes I cook. I generally like cooking, though I&amp;#8217;m not so fond of cleaning up the mess afterward. Recently, we had some split chicken breasts that we needed to cook up. I thought about just doing a standard baked chicken, but I wanted something a little. different. After perusing a selection of chicken recipes on &lt;a href="http://simplyrecipes.com/"&gt;SimplyRecipes.com&lt;/a&gt;, and reviewing the ingredients we had on hand, I decided to try combining ideas from two different recipes: &lt;a href="http://simplyrecipes.com/recipes/moroccan_chicken_with_lemon_and_olives/"&gt;Moroccan Chicken with Lemon and Olives&lt;/a&gt; and &lt;a href="http://simplyrecipes.com/recipes/chicken_and_rice_casserole/"&gt;Chicken and Rice Casserole&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In our case, I was cooking for seven people (myself, my wife, her parents, and our three kids). [...]&lt;/p&gt;


Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2004/09/20/weight-goal' rel='bookmark' title='Permanent Link: Weight Goal'&gt;Weight Goal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2004/10/04/weight-goal' rel='bookmark' title='Permanent Link: Weight Goal'&gt;Weight Goal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2002/05/17/manchu-suk' rel='bookmark' title='Permanent Link: Manchu Suk'&gt;Manchu Suk&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</summary>
		<content type="html" xml:base="http://dougal.gunters.org/blog/2010/01/22/recipe-moroccan-chicken-with-rice?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss">&lt;p&gt;Let&amp;#8217;s take a break from the tech talk, and I&amp;#8217;ll share a recipe with you. No, not a programming recipe, but the food kind. Yes, sometimes I cook. I generally like cooking, though I&amp;#8217;m not so fond of cleaning up the mess afterward. Recently, we had some split chicken breasts that we needed to cook up. I thought about just doing a standard baked chicken, but I wanted something a little. different. After perusing a selection of chicken recipes on &lt;a href="http://simplyrecipes.com/"&gt;SimplyRecipes.com&lt;/a&gt;, and reviewing the ingredients we had on hand, I decided to try combining ideas from two different recipes: &lt;a href="http://simplyrecipes.com/recipes/moroccan_chicken_with_lemon_and_olives/"&gt;Moroccan Chicken with Lemon and Olives&lt;/a&gt; and &lt;a href="http://simplyrecipes.com/recipes/chicken_and_rice_casserole/"&gt;Chicken and Rice Casserole&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In our case, I was cooking for seven people (myself, my wife, her parents, and our three kids). We had two family packs of chicken breasts (4 split breasts per pack, at about a pound per breast), so I knew I was going to have to adjust some measurements. I had to make some best-guess changes based on the amount of chicken I was cooking, and the ingredients I had available. First, here&amp;#8217;s the recipe as I actually prepared it, and afterwards I&amp;#8217;ll discuss what changes I&amp;#8217;ll probably make next time we make this dish.&lt;br /&gt;
&lt;span id="more-1979"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div class="hrecipe"&gt;
&lt;h3 class="fn"&gt;Moroccan Chicken with Rice&lt;/h3&gt;
&lt;p class="summary"&gt;A chicken and rice casserole with a Moroccan flair.&lt;/p&gt;
&lt;p&gt;Created by &lt;span class="author vcard"&gt;&lt;a class="url fn" href="http://dougal.gunters.org/"&gt;Dougal Campbell&lt;/a&gt;&lt;/span&gt;, based on recipes from &lt;a href="http://simplyrecipes.com/"&gt;Simply Recipes&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Published &lt;span class="published"&gt;&lt;span class="value-title" title="2010-01-22T06:00:00-05:00"&gt; &lt;/span&gt;Jan 22, 2010&lt;/span&gt;&lt;/p&gt;
&lt;h4&gt;Ingredients&lt;/h4&gt;
&lt;ul&gt;
&lt;li class="ingredient"&gt; &lt;span class="value"&gt;8&lt;/span&gt; split chicken breasts (approx 1 pound each).&lt;/li&gt;
&lt;li class="ingredient"&gt; &lt;span class="value"&gt;4&lt;/span&gt; &lt;span class="type"&gt;tsp&lt;/span&gt; paprika&lt;/li&gt;
&lt;li class="ingredient"&gt; &lt;span class="value"&gt;2&lt;/span&gt; &lt;span class="type"&gt;tsp&lt;/span&gt; cumin&lt;/li&gt;
&lt;li class="ingredient"&gt; &lt;span class="value"&gt;2&lt;/span&gt; &lt;span class="type"&gt;tsp&lt;/span&gt; ginger&lt;/li&gt;
&lt;li class="ingredient"&gt; &lt;span class="value"&gt;2&lt;/span&gt; &lt;span class="type"&gt;tsp&lt;/span&gt; turmeric&lt;/li&gt;
&lt;li class="ingredient"&gt; &lt;span class="value"&gt;1&lt;/span&gt; &lt;span class="type"&gt;tsp&lt;/span&gt; cinnamon&lt;/li&gt;
&lt;li class="ingredient"&gt; &lt;span class="value"&gt;1/2&lt;/span&gt; &lt;span class="type"&gt;tsp&lt;/span&gt; black pepper&lt;/li&gt;
&lt;li class="ingredient"&gt; &lt;span class="value"&gt;1&lt;/span&gt; &lt;span class="type"&gt;cup&lt;/span&gt; Italian seasoned bread crumbs&lt;/li&gt;
&lt;li class="ingredient"&gt; &lt;span class="value"&gt;6&lt;/span&gt; &lt;span class="type"&gt;Tbsp&lt;/span&gt; olive oil&lt;/li&gt;
&lt;li class="ingredient"&gt; &lt;span class="value"&gt;6&lt;/span&gt; &lt;span class="type"&gt;cloves&lt;/span&gt; garlic, minced&lt;/li&gt;
&lt;li class="ingredient"&gt; &lt;span class="value"&gt;1&lt;/span&gt; onion, chopped&lt;/li&gt;
&lt;li class="ingredient"&gt; &lt;span class="value"&gt;1/2&lt;/span&gt; &lt;span class="type"&gt;cup&lt;/span&gt; dried peaches, chopped&lt;/li&gt;
&lt;li class="ingredient"&gt; &lt;span class="value"&gt;2&lt;/span&gt; lemons&lt;/li&gt;
&lt;li class="ingredient"&gt; &lt;span class="value"&gt;1&lt;/span&gt; &lt;span class="type"&gt;cup&lt;/span&gt; olives (pitted)&lt;/li&gt;
&lt;li class="ingredient"&gt; &lt;span class="value"&gt;3&lt;/span&gt; &lt;span class="type"&gt;cups&lt;/span&gt; rice&lt;/li&gt;
&lt;li class="ingredient"&gt; &lt;span class="value"&gt;5&lt;/span&gt; &lt;span class="type"&gt;cups&lt;/span&gt; water&lt;/li&gt;
&lt;li class="ingredient"&gt; &lt;span class="value"&gt;1&lt;/span&gt; &lt;span class="type"&gt;cup&lt;/span&gt; red wine&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Instructions&lt;/h4&gt;
&lt;ul class="instructions"&gt;
&lt;li&gt;Coat a large baking dish (4 quarts, 10.5&amp;#8243; by 14.75&amp;#8243;) with 2 Tbsp of olive oil.&lt;/li&gt;
&lt;li&gt;Put the rice, water, and olives into the baking dish, then set aside.&lt;/li&gt;
&lt;li&gt;Mix the dry spices and bread crumbs together in a large bowl.&lt;/li&gt;
&lt;li&gt;Heat 4 Tbsp of olive oil in a large skillet on medium-high heat.&lt;/li&gt;
&lt;li&gt;Pat each chicken breast dry, then coat them in the spice mixture.&lt;/li&gt;
&lt;li&gt;Brown each breast in the skillet, about 5 minutes on each side (just brown them, you aren&amp;#8217;t trying to cook through), then arrange the breasts on top of the rice in the baking dish.&lt;/li&gt;
&lt;li&gt;Slice lemons thinly, and place lemon slices on top of the chicken breasts.&lt;/li&gt;
&lt;li&gt;Reduce the skillet heat to medium, then saute the chopped onion until translucent, about 3 minutes (add more olive oil, if necessary).&lt;/li&gt;
&lt;li&gt;Add the minced garlic to the skillet, and saute about another minute.&lt;/li&gt;
&lt;li&gt;Add the red wine to the skillet, and stir until the wine reduces down almost completely.&lt;/li&gt;
&lt;li&gt;Spoon onion mixture over the chicken breasts evenly.&lt;/li&gt;
&lt;li&gt;Bake at 375F for about 50 &amp;#8211; 60 minutes&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;Further details&lt;/h4&gt;
&lt;p&gt;Enough for approximately &lt;span class="yield"&gt;16 servings&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Preparation and cooking time is approximately &lt;span class="duration"&gt;&lt;span class="value-title" title="PT2H"&gt; &lt;/span&gt;2 hours&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;This recipe is &lt;a rel="tag" href="http://dougal.gunters.org/tag/medium-difficulty"&gt;medium difficulty&lt;/a&gt; and &lt;a rel="tag" href="http://dougal.gunters.org/tag/delicious"&gt;delicious&lt;/a&gt;. Even our kids liked it, though they picked out the olives. We served it with a side of steamed broccoli.&lt;/p&gt;
&lt;p&gt;As prepared above, it came out quite good. The onion mixture baked into a sort of crispy topping with  a  pretty good flavor. The spices from the chicken seeped into the rice, giving it a pretty yellow tint and a subtle, exotic flavor. However, when we cook this again, I&amp;#8217;ll probably make some adjustments.&lt;/p&gt;
&lt;p&gt;The original Moroccan recipe that I based much of this on called for raisins, but we didn&amp;#8217;t have any in our pantry. I figured that the sweetness of the raisins was supposed to balance out some of the sharper flavors from the lemon, ginger, and olives, so I substituted the dried peaches (that being the closest thing we had). But I think the peaches were a little &lt;em&gt;too&lt;/em&gt; sweet, so next time, we&amp;#8217;ll use raisins (about a cup would be right for the above measurements).&lt;/p&gt;
&lt;p&gt;Also, I only cooked so much because we already had those family packs of chicken thawed out, and we needed to go ahead and get them cooked up. I could only fit six of the breasts in the baking dish, and I ended up cooking the other two in my skillet, with some water added. I think it might be interesting to repurpose the leftover chicken, perhaps as an exotically spiced chicken salad. Next time, I&amp;#8217;ll probably cook a more appropriate amount, and I&amp;#8217;ll probably start with skinless, boneless chicken breasts, and cut them up into bite-sized chunks before spicing and braising them.&lt;/p&gt;
&lt;p&gt;I also didn&amp;#8217;t have enough olives on hand. I used a mixture of some large green olives and kalamata olives, and only had about a cup. I would have liked about twice that amount. Also, the original recipe left the olives whole, but I sliced mine in half, lengthwise, just so they&amp;#8217;d distribute better.&lt;/p&gt;
&lt;p&gt;I think in the next iteration, I&amp;#8217;ll probably leave out the red wine, and I might skip the lemons. I added the wine on a whim, just because it was in the fridge, but I think it detracted from the flavor of the caramelized onions. The lemons were okay, but in places where the peel cooked on the chicken meat, it tended to be slightly bitter. However, I might consider marinating the chicken in a little bit of olive oil mixed with lemon juice.&lt;/p&gt;
&lt;p&gt;All-in-all, this dish was a success, and I think there is potential for lots of tweaking. One last change I might make would be to cover the dish with foil before baking. The rice was just a little dry on top after baking (though not annoyingly so), and the foil would help keep steam in. I&amp;#8217;m also thinking that toasted, slivered almonds might be a nice addition to the rice.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Sound good? What do you think? Should I post more recipes?&lt;/p&gt;
&lt;p&gt;Oh, and this article isn&amp;#8217;t completely without a tech factor: I marked up the recipe with the experimental &lt;a href="http://microformats.org/wiki/hRecipe"&gt;hRecipe microformat&lt;/a&gt;. &lt;img src='http://media.dougal.us.s3.amazonaws.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /&gt; &lt;/p&gt;


&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2004/09/20/weight-goal' rel='bookmark' title='Permanent Link: Weight Goal'&gt;Weight Goal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2004/10/04/weight-goal' rel='bookmark' title='Permanent Link: Weight Goal'&gt;Weight Goal&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2002/05/17/manchu-suk' rel='bookmark' title='Permanent Link: Manchu Suk'&gt;Manchu Suk&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=tXeoLz6Edic:n7hf_H-P-qo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=tXeoLz6Edic:n7hf_H-P-qo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?i=tXeoLz6Edic:n7hf_H-P-qo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=tXeoLz6Edic:n7hf_H-P-qo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?i=tXeoLz6Edic:n7hf_H-P-qo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=tXeoLz6Edic:n7hf_H-P-qo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?i=tXeoLz6Edic:n7hf_H-P-qo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=tXeoLz6Edic:n7hf_H-P-qo:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/dougal/posts/~4/tXeoLz6Edic" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://dougal.gunters.org/blog/2010/01/22/recipe-moroccan-chicken-with-rice?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss#comments" thr:count="10" />
		<link rel="replies" type="application/atom+xml" href="http://dougal.gunters.org/blog/2010/01/22/recipe-moroccan-chicken-with-rice/feed/atom" thr:count="10" />
		<thr:total>10</thr:total>
	<feedburner:origLink>http://dougal.gunters.org/blog/2010/01/22/recipe-moroccan-chicken-with-rice?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Dougal</name>
						<uri>http://dougal.gunters.org/</uri>
					</author>
		<title type="html"><![CDATA[jQuery API site using WordPress as CMS]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dougal/posts/~3/aDSAycZ30ec/jquery-api-site-using-wordpress-as-cms" />
		<id>http://dougal.gunters.org/?p=1974</id>
		<updated>2010-01-19T17:12:13Z</updated>
		<published>2010-01-19T17:12:13Z</published>
		<category scheme="http://dougal.gunters.org" term="WordPress" /><category scheme="http://dougal.gunters.org" term="Ajax" /><category scheme="http://dougal.gunters.org" term="API" /><category scheme="http://dougal.gunters.org" term="cms" /><category scheme="http://dougal.gunters.org" term="content management" /><category scheme="http://dougal.gunters.org" term="docs" /><category scheme="http://dougal.gunters.org" term="documentation" /><category scheme="http://dougal.gunters.org" term="JavaScript" /><category scheme="http://dougal.gunters.org" term="jquery" /><category scheme="http://dougal.gunters.org" term="libraries" /><category scheme="http://dougal.gunters.org" term="livesearch" /><category scheme="http://dougal.gunters.org" term="Search" />		<summary type="html">&lt;div style="float: right;"&gt;&lt;img width="150" height="150" src="http://media.dougal.us.s3.amazonaws.com/wordpress/wp-content/uploads/2008/11/wplogo-notext-rgb.png" class="attachment-post-thumbnail wp-post-image" alt="" title="WordPress" /&gt;&lt;/div&gt;&lt;p&gt;I mentioned before that the jQuery project was going to switch from Mediawiki to &lt;a href="http://dougal.gunters.org/blog/2009/12/14/wordpress-as-a-documentation-platform"&gt;using WordPress for their online documentation&lt;/a&gt;. They&amp;#8217;ve recently pulled the trigger on that change, and you can now visit the new WordPress-powered site at: &lt;a href="http://api.jquery.com/"&gt;api.jquery.com&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;h3&gt;Performance and Backend&lt;/h3&gt;
&lt;p&gt;As mentioned before, we’ve switched away from using a MediaWiki backend to a new WordPress-powered backend. [...]&lt;/p&gt;&lt;/blockquote&gt;


Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2009/12/14/wordpress-as-a-documentation-platform' rel='bookmark' title='Permanent Link: WordPress As a Documentation Platform'&gt;WordPress As a Documentation Platform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2008/11/05/socializing-a-wordpress-site' rel='bookmark' title='Permanent Link: Socializing a WordPress site'&gt;Socializing a WordPress site&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2009/06/22/drupal-shop-gives-props-to-wordpress' rel='bookmark' title='Permanent Link: Drupal shop gives props to WordPress'&gt;Drupal shop gives props to WordPress&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</summary>
		<content type="html" xml:base="http://dougal.gunters.org/blog/2010/01/19/jquery-api-site-using-wordpress-as-cms?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss">&lt;div style="float: right;"&gt;&lt;img width="150" height="150" src="http://media.dougal.us.s3.amazonaws.com/wordpress/wp-content/uploads/2008/11/wplogo-notext-rgb.png" class="attachment-post-thumbnail wp-post-image" alt="" title="WordPress" /&gt;&lt;/div&gt;&lt;p&gt;I mentioned before that the jQuery project was going to switch from Mediawiki to &lt;a href="http://dougal.gunters.org/blog/2009/12/14/wordpress-as-a-documentation-platform"&gt;using WordPress for their online documentation&lt;/a&gt;. They&amp;#8217;ve recently pulled the trigger on that change, and you can now visit the new WordPress-powered site at: &lt;a href="http://api.jquery.com/"&gt;api.jquery.com&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;h3&gt;Performance and Backend&lt;/h3&gt;
&lt;p&gt;As mentioned before, we’ve switched away from using a MediaWiki backend to a new WordPress-powered backend. So far we’ve been very impressed with the performance. Every single page on the site is heavily cached and gzipped – with all media being served up from our CDN. We think you’ll find it to be a significant performance improvement over the old docs site.&lt;/p&gt;
&lt;p&gt;via &lt;a href="http://jquery14.com/pre-release-1"&gt;Pre Release Day 1 – The 14 Days of jQuery&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;This seems to be an excellent example of a site using WordPress as a &lt;acronym title='Content Management System'&gt;&lt;span class='caps'&gt;CMS&lt;/span&gt;&lt;/acronym&gt;. Each &lt;acronym title='Application Interface'&gt;&lt;span class='caps'&gt;API&lt;/span&gt;&lt;/acronym&gt; method is created as a post, and they use categories liberally to make it easier for users to locate the methods they need based on usage. There&amp;#8217;s also a nice &lt;acronym title='Asynchronous Javascript and XML'&gt;&lt;span class='caps'&gt;AJAX&lt;/span&gt;&lt;/acronym&gt; live-search that narrows down results as you type. Obviously, they are using a custom tailored theme, and a permalink structure that produces easy to remember bookmarks like &amp;#8220;&lt;a href="http://api.jquery.com/slideDown/"&gt;api.jquery.com/slideDown/&lt;/a&gt;&amp;#8220;. As an added bonus, they get user comments and an easier way to manage spam. Nice!&lt;/p&gt;
&lt;p&gt;I imagine that there is more going on behind the scenes to help them manage the documentation structure of each &lt;acronym title='Application Interface'&gt;&lt;span class='caps'&gt;API&lt;/span&gt;&lt;/acronym&gt; method, code examples, and demonstrations. Maybe some day we can coax them into giving us some more details about that.&lt;/p&gt;


&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2009/12/14/wordpress-as-a-documentation-platform' rel='bookmark' title='Permanent Link: WordPress As a Documentation Platform'&gt;WordPress As a Documentation Platform&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2008/11/05/socializing-a-wordpress-site' rel='bookmark' title='Permanent Link: Socializing a WordPress site'&gt;Socializing a WordPress site&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2009/06/22/drupal-shop-gives-props-to-wordpress' rel='bookmark' title='Permanent Link: Drupal shop gives props to WordPress'&gt;Drupal shop gives props to WordPress&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=aDSAycZ30ec:Mx3NaYpr24Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=aDSAycZ30ec:Mx3NaYpr24Q:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?i=aDSAycZ30ec:Mx3NaYpr24Q:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=aDSAycZ30ec:Mx3NaYpr24Q:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?i=aDSAycZ30ec:Mx3NaYpr24Q:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=aDSAycZ30ec:Mx3NaYpr24Q:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?i=aDSAycZ30ec:Mx3NaYpr24Q:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=aDSAycZ30ec:Mx3NaYpr24Q:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/dougal/posts/~4/aDSAycZ30ec" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://dougal.gunters.org/blog/2010/01/19/jquery-api-site-using-wordpress-as-cms?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss#comments" thr:count="6" />
		<link rel="replies" type="application/atom+xml" href="http://dougal.gunters.org/blog/2010/01/19/jquery-api-site-using-wordpress-as-cms/feed/atom" thr:count="6" />
		<thr:total>6</thr:total>
	<feedburner:origLink>http://dougal.gunters.org/blog/2010/01/19/jquery-api-site-using-wordpress-as-cms?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Dougal</name>
						<uri>http://dougal.gunters.org/</uri>
					</author>
		<title type="html"><![CDATA[Plugin Pages]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dougal/posts/~3/0GunphXl4Lo/plugin-pages" />
		<id>http://dougal.gunters.org/?p=1964</id>
		<updated>2010-01-14T04:38:32Z</updated>
		<published>2010-01-14T04:33:33Z</published>
		<category scheme="http://dougal.gunters.org" term="WordPress" /><category scheme="http://dougal.gunters.org" term="p52" /><category scheme="http://dougal.gunters.org" term="Plugins" /><category scheme="http://dougal.gunters.org" term="templates" />		<summary type="html">&lt;div style="float: right;"&gt;&lt;img width="150" height="150" src="http://media.dougal.us.s3.amazonaws.com/wordpress/wp-content/uploads/2008/10/wordpress-wednesday.png" class="attachment-post-thumbnail wp-post-image" alt="" title="WordPress Wednesday" /&gt;&lt;/div&gt;&lt;p&gt;I have finally gotten around to adding proper pages on this site to provide information about my WordPress plugins. It&amp;#8217;s still a work-in-progress, but it&amp;#8217;s at least at a point that they are useful. When I get a chance, I&amp;#8217;ll document the methods I used to automate things. But basically, I&amp;#8217;ve created a couple of page templates, and I&amp;#8217;m using the &lt;a href="http://wordpress.org/extend/plugins/plugin-info/"&gt;Plugin Info&lt;/a&gt; plugin to automagically bring in plugin metadata from the &lt;a href="http://wordpress.org/extend/plugins/"&gt;wordpress.org plugin repository&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The main &lt;a href="http://dougal.gunters.org/plugins"&gt;Plugins&lt;/a&gt; page lists each plugin, with the plugin name and version, number of downloads so far, and an excerpt of the plugin description. [...]&lt;/p&gt;


Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2007/10/24/easy-gravatars' rel='bookmark' title='Permanent Link: Easy Gravatars Plugin'&gt;Easy Gravatars Plugin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2009/07/14/analytics360-plugin-for-wordpress' rel='bookmark' title='Permanent Link: Analytics360 Plugin for WordPress'&gt;Analytics360 Plugin for WordPress&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2008/12/17/headmeta-14' rel='bookmark' title='Permanent Link: HeadMeta 1.4'&gt;HeadMeta 1.4&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</summary>
		<content type="html" xml:base="http://dougal.gunters.org/blog/2010/01/13/plugin-pages?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss">&lt;div style="float: right;"&gt;&lt;img width="150" height="150" src="http://media.dougal.us.s3.amazonaws.com/wordpress/wp-content/uploads/2008/10/wordpress-wednesday.png" class="attachment-post-thumbnail wp-post-image" alt="" title="WordPress Wednesday" /&gt;&lt;/div&gt;&lt;p&gt;I have finally gotten around to adding proper pages on this site to provide information about my WordPress plugins. It&amp;#8217;s still a work-in-progress, but it&amp;#8217;s at least at a point that they are useful. When I get a chance, I&amp;#8217;ll document the methods I used to automate things. But basically, I&amp;#8217;ve created a couple of page templates, and I&amp;#8217;m using the &lt;a href="http://wordpress.org/extend/plugins/plugin-info/"&gt;Plugin Info&lt;/a&gt; plugin to automagically bring in plugin metadata from the &lt;a href="http://wordpress.org/extend/plugins/"&gt;wordpress.org plugin repository&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The main &lt;a href="http://dougal.gunters.org/plugins"&gt;Plugins&lt;/a&gt; page lists each plugin, with the plugin name and version, number of downloads so far, and an excerpt of the plugin description. On each plugin detail page, you get the full description, changelog, download link, and other stats, such as the minimum and last-tested WordPress versions.&lt;/p&gt;


&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2007/10/24/easy-gravatars' rel='bookmark' title='Permanent Link: Easy Gravatars Plugin'&gt;Easy Gravatars Plugin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2009/07/14/analytics360-plugin-for-wordpress' rel='bookmark' title='Permanent Link: Analytics360 Plugin for WordPress'&gt;Analytics360 Plugin for WordPress&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2008/12/17/headmeta-14' rel='bookmark' title='Permanent Link: HeadMeta 1.4'&gt;HeadMeta 1.4&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=0GunphXl4Lo:gOTVWHo7FAw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=0GunphXl4Lo:gOTVWHo7FAw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?i=0GunphXl4Lo:gOTVWHo7FAw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=0GunphXl4Lo:gOTVWHo7FAw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?i=0GunphXl4Lo:gOTVWHo7FAw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=0GunphXl4Lo:gOTVWHo7FAw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?i=0GunphXl4Lo:gOTVWHo7FAw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=0GunphXl4Lo:gOTVWHo7FAw:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/dougal/posts/~4/0GunphXl4Lo" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://dougal.gunters.org/blog/2010/01/13/plugin-pages?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss#comments" thr:count="8" />
		<link rel="replies" type="application/atom+xml" href="http://dougal.gunters.org/blog/2010/01/13/plugin-pages/feed/atom" thr:count="8" />
		<thr:total>8</thr:total>
	<feedburner:origLink>http://dougal.gunters.org/blog/2010/01/13/plugin-pages?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Dougal</name>
						<uri>http://dougal.gunters.org/</uri>
					</author>
		<title type="html"><![CDATA[WordCamp Atlanta]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dougal/posts/~3/vkb4l9B3ylE/wordcamp-atlanta" />
		<id>http://dougal.gunters.org/?p=1915</id>
		<updated>2010-01-09T15:54:44Z</updated>
		<published>2010-01-09T15:54:44Z</published>
		<category scheme="http://dougal.gunters.org" term="WordPress" /><category scheme="http://dougal.gunters.org" term="Community" /><category scheme="http://dougal.gunters.org" term="Development" /><category scheme="http://dougal.gunters.org" term="p52" /><category scheme="http://dougal.gunters.org" term="Programming" /><category scheme="http://dougal.gunters.org" term="Releases" /><category scheme="http://dougal.gunters.org" term="wcatl" /><category scheme="http://dougal.gunters.org" term="wordcamp" />		<summary type="html">&lt;div style="float: right;"&gt;&lt;img width="150" height="150" src="http://media.dougal.us.s3.amazonaws.com/wordpress/wp-content/uploads/2008/11/wplogo-notext-rgb.png" class="attachment-post-thumbnail wp-post-image" alt="" title="WordPress" /&gt;&lt;/div&gt;&lt;p&gt;As I begin writing this, Jane Wells is delivering her keynote at &lt;a href="http://atlantawordcamp.com/"&gt;WordCamp Atlanta&lt;/a&gt;, speaking about the upcoming changes in &lt;a href="http://wordpress.org/"&gt;WordPress&lt;/a&gt; 3.0. On the one hand, WordPress releases are &amp;#8217;serial&amp;#8217;, so an 3.0 release doesn&amp;#8217;t necessarily have any bigger changes than when we move from 2.8 to 2.9. [...]&lt;/p&gt;


Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2009/12/16/im-speaking-at-wordcamp-atlanta' rel='bookmark' title='Permanent Link: I&amp;#8217;m speaking at WordCamp Atlanta'&gt;I&amp;#8217;m speaking at WordCamp Atlanta&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2010/02/23/dougal-on-wordpress-community-podcast' rel='bookmark' title='Permanent Link: Dougal on WordPress Community Podcast'&gt;Dougal on WordPress Community Podcast&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2007/04/20/plugin-management' rel='bookmark' title='Permanent Link: Plugin Management'&gt;Plugin Management&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</summary>
		<content type="html" xml:base="http://dougal.gunters.org/blog/2010/01/09/wordcamp-atlanta?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss">&lt;div style="float: right;"&gt;&lt;img width="150" height="150" src="http://media.dougal.us.s3.amazonaws.com/wordpress/wp-content/uploads/2008/11/wplogo-notext-rgb.png" class="attachment-post-thumbnail wp-post-image" alt="" title="WordPress" /&gt;&lt;/div&gt;&lt;p&gt;As I begin writing this, Jane Wells is delivering her keynote at &lt;a href="http://atlantawordcamp.com/"&gt;WordCamp Atlanta&lt;/a&gt;, speaking about the upcoming changes in &lt;a href="http://wordpress.org/"&gt;WordPress&lt;/a&gt; 3.0. On the one hand, WordPress releases are &amp;#8217;serial&amp;#8217;, so an 3.0 release doesn&amp;#8217;t necessarily have any bigger changes than when we move from 2.8 to 2.9. It&amp;#8217;s just the next step after the 2.9 release. But, that said, there are big changes coming. One of the biggest is going to be the merge of the single-site version of the code and the &lt;a href="http://mu.wordpress.org/"&gt;WordPress-MU &lt;/a&gt;code, which will now be referred to as &amp;#8220;multi-site&amp;#8221; capability. Other new bits will include the &amp;#8220;Core Plugins&amp;#8221;, which will be a set of plugins cultivated and updated along with the main core code, changes to menu management, more support for custom post types, and a new default theme, dubbed &amp;#8216;2010&amp;#8242;. There will probably be a handful of other smaller changes, but &lt;em&gt;not&lt;/em&gt; included at this time is the revamp of the Media Manager, which will probably wait until version 3.1.&lt;/p&gt;
&lt;p&gt;With this release, the core team is trying to set a more structured, focused standard for how to get everything done. At the last developer chat, the scope of development was set to those features mentioned above. Setting a strict feature scope this early in the kickoff of a new release is a new thing, and I think it will turn out to be a good thing.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve been wanting for a while to get back into more involvement with WordPress development, so I&amp;#8217;ve volunteered (along with several others) to help out with the &amp;#8220;Healthcheck&amp;#8221; Core Plugin. This plugin will examine the configuration of your server and alert you to anything that might prevent certain features from working correctly, or that might cause problems in the future (such as old versions of &lt;acronym title='Php Hypertext Processor'&gt;&lt;span class='caps'&gt;PHP&lt;/span&gt;&lt;/acronym&gt; or MySQL).&lt;/p&gt;
&lt;p&gt;In other news, there are going to be some updates to the wordpress.org website, including improvement to the Ideas forum, and some &lt;a href="http://buddypress.org/"&gt;BuddyPress&lt;/a&gt; functionality, including user profiles for all regiestered users. &lt;a href="http://wordcamp.org/"&gt;WordCamp.org&lt;/a&gt; will also get some BuddyPress love and see new features.&lt;/p&gt;
&lt;p&gt;As usual, the future holds some very exciting changes. But I&amp;#8217;m particularly happy to see that there is not only progress happening in how the code is handled, but in how the community is shepherded. I think just about everyone would agree that WordPress would not be where it is today without its great user and developer community. So, if you have ever contributed a patch, reported a bug, suggested a new feature, or even just thanked somebody who has &amp;#8212; you&amp;#8217;re a part of the community. Thanks!&lt;/p&gt;


&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2009/12/16/im-speaking-at-wordcamp-atlanta' rel='bookmark' title='Permanent Link: I&amp;#8217;m speaking at WordCamp Atlanta'&gt;I&amp;#8217;m speaking at WordCamp Atlanta&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2010/02/23/dougal-on-wordpress-community-podcast' rel='bookmark' title='Permanent Link: Dougal on WordPress Community Podcast'&gt;Dougal on WordPress Community Podcast&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2007/04/20/plugin-management' rel='bookmark' title='Permanent Link: Plugin Management'&gt;Plugin Management&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=vkb4l9B3ylE:wfMvXVfWOSw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=vkb4l9B3ylE:wfMvXVfWOSw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?i=vkb4l9B3ylE:wfMvXVfWOSw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=vkb4l9B3ylE:wfMvXVfWOSw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?i=vkb4l9B3ylE:wfMvXVfWOSw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=vkb4l9B3ylE:wfMvXVfWOSw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?i=vkb4l9B3ylE:wfMvXVfWOSw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=vkb4l9B3ylE:wfMvXVfWOSw:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/dougal/posts/~4/vkb4l9B3ylE" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://dougal.gunters.org/blog/2010/01/09/wordcamp-atlanta?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss#comments" thr:count="6" />
		<link rel="replies" type="application/atom+xml" href="http://dougal.gunters.org/blog/2010/01/09/wordcamp-atlanta/feed/atom" thr:count="6" />
		<thr:total>6</thr:total>
	<feedburner:origLink>http://dougal.gunters.org/blog/2010/01/09/wordcamp-atlanta?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Dougal</name>
						<uri>http://dougal.gunters.org/</uri>
					</author>
		<title type="html"><![CDATA[Merry Christmas!]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/dougal/posts/~3/aDKtQN-BItk/merry-christmas-2" />
		<id>http://dougal.gunters.org/?p=1913</id>
		<updated>2009-12-24T15:31:57Z</updated>
		<published>2009-12-24T15:31:57Z</published>
		<category scheme="http://dougal.gunters.org" term="Personal" /><category scheme="http://dougal.gunters.org" term="Christmas" /><category scheme="http://dougal.gunters.org" term="Holidays" /><category scheme="http://dougal.gunters.org" term="new years" />		<summary type="html">&lt;p&gt;I had hoped to post about some things before things got too hectic, but that didn&amp;#8217;t happen. . [...]&lt;/p&gt;


Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2003/12/05/merry-christmas' rel='bookmark' title='Permanent Link: Merry Christmas'&gt;Merry Christmas&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2007/12/18/merry-christmas-to-me' rel='bookmark' title='Permanent Link: Merry Christmas to me!'&gt;Merry Christmas to me!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2001/12/21/tracking-santa' rel='bookmark' title='Permanent Link: Tracking Santa'&gt;Tracking Santa&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;</summary>
		<content type="html" xml:base="http://dougal.gunters.org/blog/2009/12/24/merry-christmas-2?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss">&lt;p&gt;I had hoped to post about some things before things got too hectic, but that didn&amp;#8217;t happen. But I wanted to at least wish everybody a Merry Christmas (or which ever holiday variant you prefer), and a Happy New Year!&lt;/p&gt;


&lt;p&gt;Related posts:&lt;ol&gt;&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2003/12/05/merry-christmas' rel='bookmark' title='Permanent Link: Merry Christmas'&gt;Merry Christmas&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2007/12/18/merry-christmas-to-me' rel='bookmark' title='Permanent Link: Merry Christmas to me!'&gt;Merry Christmas to me!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://dougal.gunters.org/blog/2001/12/21/tracking-santa' rel='bookmark' title='Permanent Link: Tracking Santa'&gt;Tracking Santa&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=aDKtQN-BItk:0dMVUmQphCA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=aDKtQN-BItk:0dMVUmQphCA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?i=aDKtQN-BItk:0dMVUmQphCA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=aDKtQN-BItk:0dMVUmQphCA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?i=aDKtQN-BItk:0dMVUmQphCA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=aDKtQN-BItk:0dMVUmQphCA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?i=aDKtQN-BItk:0dMVUmQphCA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/dougal/posts?a=aDKtQN-BItk:0dMVUmQphCA:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/dougal/posts?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/dougal/posts/~4/aDKtQN-BItk" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://dougal.gunters.org/blog/2009/12/24/merry-christmas-2?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss#comments" thr:count="3" />
		<link rel="replies" type="application/atom+xml" href="http://dougal.gunters.org/blog/2009/12/24/merry-christmas-2/feed/atom" thr:count="3" />
		<thr:total>3</thr:total>
	<feedburner:origLink>http://dougal.gunters.org/blog/2009/12/24/merry-christmas-2?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=rss</feedburner:origLink></entry>
	</feed><!-- Served from: dougal.gunters.org @ 2010-03-20 11:26:35 by W3 Total Cache -->
