<?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>Alex James Brown &#187; JoeBlogs</title>
	<atom:link href="http://www.alexjamesbrown.com/tags/joeblogs/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.alexjamesbrown.com</link>
	<description>My Words. By Me.</description>
	<lastBuildDate>Wed, 04 Jan 2012 01:02:08 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>JoeBlogs wrapper moved to GitHub</title>
		<link>http://www.alexjamesbrown.com/development/joeblogs-wrapper-moved-to-github/</link>
		<comments>http://www.alexjamesbrown.com/development/joeblogs-wrapper-moved-to-github/#comments</comments>
		<pubDate>Thu, 05 May 2011 22:51:01 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[JoeBlogs]]></category>

		<guid isPermaLink="false">http://www.alexjamesbrown.com/development/joeblogs-wrapper-moved-to-github/</guid>
		<description><![CDATA[Following from my plea for help for JoeBlogs I finally got round to learning Git. The project has now been moved to GitHub: http://www.github.com/alexjamesbrown/joeblogs I will eventually move the Wiki ...]]></description>
			<content:encoded><![CDATA[<p>Following from my <a href="http://www.alexjamesbrown.com/development/joe-blogs-wrapper-v2-help-required/" target="_blank">plea for help for JoeBlogs</a> I finally got round to learning Git.</p>
<p>The project has now been moved to GitHub:   <br /><a href="http://www.github.com/alexjamesbrown/joeblogs">http://www.github.com/alexjamesbrown/joeblogs</a></p>
<p>I will eventually move the Wiki / Docs to the page also.</p>
<p>If anyone would like to become a contributor, please contact me on GitHub</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alexjamesbrown.com/development/joeblogs-wrapper-moved-to-github/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Joe Blogs Wrapper V2 &#8211; Help required</title>
		<link>http://www.alexjamesbrown.com/development/joe-blogs-wrapper-v2-help-required/</link>
		<comments>http://www.alexjamesbrown.com/development/joe-blogs-wrapper-v2-help-required/#comments</comments>
		<pubDate>Tue, 14 Dec 2010 01:14:26 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[JoeBlogs]]></category>
		<category><![CDATA[Wordpress. Open Source]]></category>

		<guid isPermaLink="false">http://www.alexjamesbrown.com/?p=669</guid>
		<description><![CDATA[I’m on the verge of being able to release a second, much improved version of the Joe Blogs WordPress &#38; MetaWeblog API Wrapper. Some very brief details below, and a ...]]></description>
			<content:encoded><![CDATA[<p>I’m on the verge of being able to release a second, much improved version of the Joe Blogs WordPress &amp; MetaWeblog API Wrapper.</p>
<p>Some very brief details below, and a cry for help <em>(or several cries!)</em></p>
<p><strong></strong></p>
<h3>New Features / Improvements</h3>
<p><strong>Friendlier API      <br /></strong>Instead of having to deal with the XML-RPC interfaces directly, I’ve added a “friendly” layer of classes on top.     <br />The WordPressWrapper class has helper methods, with friendly properties, for doing things like uploading files etc…</p>
<ul>
<li><strong>More examples        <br /></strong>The sample project (console application) included in the project demonstrates all methods and features of the library.       </li>
<li><strong>Better documentation        <br /></strong>XML RPC Comments on all the public properties and methods </li>
</ul>
<h3>Help required</h3>
<p>I need help with some of the following, both for this version, and subsequent versions</p>
<ul>
<li><strong>PHP WordPress Re-install script        <br /></strong>Script (configured as CRON job) to “refresh” test install of WordPress (every couple of hours or something) </li>
<li><strong>Unit Tests        <br /></strong>Need better code coverage., and more integration tests       <br />I’m not TDD expert, so unfortunately, a lot of this will be retro-fitting unit tests into the current code. </li>
<li><strong>WordPress Plugin development        <br /></strong>I plan to release an “extended” version of XML RPC – with some enhanced methods in, for use with JoeBlogs – for example “GetRecentPosts” </li>
<li><strong>ASP.Net Demo Project        <br /></strong>Eventually, and ASP.net MVC “blog” project, running from WordPress – for no other reason than “it can be done” </li>
<li><strong>Moving project to GitHub        <br /></strong>See below </li>
<li><strong>General code improvement        <br /></strong>Refactoring, performance enhancements, etc… </li>
<li><strong>Logo Designed        <br /></strong>‘cos every cool open source project has to have a cool logo, right? </li>
<li><strong>Website</strong>       <br />I’ve dipped my hand into my pocket, and bought joeblogswrapper.org (under £7 – <a href="http://bit.ly/godaddydomainregistration+" target="_blank">GoDaddy</a>)       <br />Will have a site dedicated to it on there soon. Obvious CMS choice would be WordPress, but if anyone can think of a better option for Wiki style pages, I’m all ears       <br />(Media wiki..? What are the benefits?) </li>
</ul>
<h3>Mailing List</h3>
<p>I’ve created a Google Group – <a href="http://groups.google.com/group/joeblogs/">http://groups.google.com/group/joeblogs/</a>     <br />Please, sign up on there for announcements (I’ll announce when the next versions of the wrapper are available)</p>
<h3>GitHub</h3>
<p>I really like the idea of moving this project over to <a href="https://github.com/alexjamesbrown/JoeBlogs" target="_blank">GitHub</a>.</p>
<p>Problem is, I have absolutely no experience using Git.</p>
<p>I’ve tried following the instructions, and got as far as some files imported into my repository.. but I can’t get it to work, or commit my changes.</p>
<p>If anyone would like to offer their hand-holding expertise on getting this moved over (and training me on committing files etc…) then I’ll gladly move it to GitHub, which long term, I believe could be beneficial to the overall development of the project.</p>
<h3>Get in touch</h3>
<p>If you’d like to help with ANY of the above (or anything I’ve missed for that matter) please <a href="http://www.alexjamesbrown.com/contact/">get in touch</a>, or use the <a href="http://groups.google.com/group/joeblogs/">Google Group</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.alexjamesbrown.com/development/joe-blogs-wrapper-v2-help-required/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Creating a new post in WordPress using the JoeBlogs library</title>
		<link>http://www.alexjamesbrown.com/development/creating-a-new-post-in-wordpress-using-the-joeblogs-library/</link>
		<comments>http://www.alexjamesbrown.com/development/creating-a-new-post-in-wordpress-using-the-joeblogs-library/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 20:33:08 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[JoeBlogs]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.alexjamesbrown.com/development/creating-a-new-post-in-wordpress-using-the-joeblogs-library/</guid>
		<description><![CDATA[A few people have recently been asking how the NewPost method works within JoeBlogs First, you need to create an instance of Post. Then, set the following properties: dateCreated Fairly ...]]></description>
			<content:encoded><![CDATA[<p>A few people have recently been asking how the NewPost method works within <a href="http://www.alexjamesbrown.com/projects/joe-blogs/" target="_blank">JoeBlogs</a></p>
<p>First, you need to create an instance of Post.</p>
<p>Then, set the following properties:</p>
<p><strong>dateCreated     <br /></strong>Fairly self explanatory, but you should set this to today&#8217;s date (or whatever date you wish the post to be set as published)</p>
<p><strong>title     <br /></strong>The title of the post</p>
<p><strong>description     <br /></strong>The body of the post.    <br />This can of course contain HTML</p>
<p><strong>categories     <br /></strong>This is a string array of categories to associate with the post</p>
<p><strong>mt_keywords     <br /></strong>Another string array, representing the tags for the post</p>
<p>Then, using your presumably already instantiated Wrapper class, you can call the NewPost method, which takes the above Post object as a parameter, and a <em>boolean – </em>indicating if the post is to be set as published. Note – if this is set to false, the post is set in draft mode.</p>
<p>Here’s some sample code:</p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;">//create a new post
var post = new Post();

//since this is a struct, we can't have a constructor that does this!
post.dateCreated=DateTime.Now;
post.title=&quot;This is a title&quot;;
post.description=&quot;this is the body of the post. it &lt;strong&gt;could&lt;/strong&gt; be html.&quot;;

//create the post!
wp.NewPost(post,true);</pre>
<p>Hope this helps!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alexjamesbrown.com/development/creating-a-new-post-in-wordpress-using-the-joeblogs-library/feed/</wfw:commentRss>
		<slash:comments>23</slash:comments>
		</item>
		<item>
		<title>JoeBlogs – Typo in dummy URL fixed</title>
		<link>http://www.alexjamesbrown.com/development/joeblogs-typo-in-dummy-url-fixed/</link>
		<comments>http://www.alexjamesbrown.com/development/joeblogs-typo-in-dummy-url-fixed/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 09:23:50 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[JoeBlogs]]></category>

		<guid isPermaLink="false">http://www.alexjamesbrown.com/geek/development/dotnet/joeblogs-typo-in-dummy-url-fixed/</guid>
		<description><![CDATA[I’ve recently had a few comments that the JoeBlogs wrapper wasn’t working – and they were getting an “invalid response” or more specifically “Response XML not valid XML-RPC – missing ...]]></description>
			<content:encoded><![CDATA[<p>I’ve recently had a few comments that the JoeBlogs wrapper wasn’t working – and they were getting an “invalid response” or more specifically “Response XML not valid XML-RPC – missing methodResponse element.”</p>
<p>It seems that I had a typo in my comments in JoeBlogs.TestHarness/Program.cs on line 15:</p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;">//typically http://www.yourdomain.com/xmlprc.php (if your wordpress blog is installed in root dir)</pre>
<p>The problem, is the xmlprc.php – this should be xmlrpc.php. </p>
<p>Those of you that copy pasted / uncommented out that line, would be executing requests against a file that didn’t exist on your server!</p>
<p>I’ve changed this typo, and committed to Codeplex: revision #<a href="http://joeblogs.codeplex.com/SourceControl/changeset/view/27138">27138</a></p>
<p>Thanks to Felix for pointing this out!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alexjamesbrown.com/development/joeblogs-typo-in-dummy-url-fixed/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Using JoeBlogs -metaWeblog API Wrapper</title>
		<link>http://www.alexjamesbrown.com/development/using-joeblogs/</link>
		<comments>http://www.alexjamesbrown.com/development/using-joeblogs/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 15:28:07 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[.net]]></category>
		<category><![CDATA[Blogging]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[JoeBlogs]]></category>

		<guid isPermaLink="false">http://www.alexjamesbrown.com/geek/development/dotnet/using-joeblogs/</guid>
		<description><![CDATA[Step 1 Download the latest release of JoeBlogs from Codeplex (Click the Downloads tab, and select the latest download) Step 2 Unzip the contents of the downloaded zip file. (I ...]]></description>
			<content:encoded><![CDATA[<h3>Step 1</h3>
<p>Download the latest release of <a href="http://joeblogs.codeplex.com" target="_blank">JoeBlogs from Codeplex</a><br />
(Click the Downloads tab, and select the latest download)</p>
<h3>Step 2</h3>
<p>Unzip the contents of the downloaded zip file.<br />
(I usually copy DLLs I am going to use into a “lib” folder at the root of my solution)</p>
<h3>Step 3</h3>
<p><strong><br />
</strong>Add a reference to BOTH CookComputing.XmlRpcV2.dll AND JoeBlogs.dll</p>
<p><img style="border-right: 0px; border-top: 0px; display: inline; border-left: 0px; border-bottom: 0px" title="image" src="http://www.alexjamesbrown.com/wp-content/uploads/UsingJoeBlogs_E688/image.png" border="0" alt="image" width="482" height="406" /></p>
<p>Include AlexJamesBrown.JoeBlogs in your class, with using / Imports:</p>
<p><strong>C#</strong></p>
<pre class="brush: csharp; auto-links: false; collapse: false; first-line: 1; gutter: false; html-script: false; light: true; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;">using AlexJamesBrown.JoeBlogs;</pre>
<p><strong>VB</strong></p>
<pre class="brush: vb; auto-links: false; collapse: false; first-line: 1; gutter: false; html-script: false; light: true; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;">Imports AlexJamesBrown.JoeBlogs</pre>
<h3>Step 4:</h3>
<p>Instantiate a new Wrapper object.</p>
<p>So far, the available wrappers are:</p>
<p>MetaWeblogWrapper</p>
<p>WordPressWrapper</p>
<p><strong>C#</strong></p>
<pre class="brush: csharp; auto-links: false; collapse: false; first-line: 1; gutter: false; html-script: false; light: true; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;">WordPressWrapper wrapper = new WordPressWrapper(Url, Username, Password);</pre>
<p><strong>VB</strong></p>
<pre class="brush: vb; auto-links: false; collapse: false; first-line: 1; gutter: false; html-script: false; light: true; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;">Dim wrapper As New WordPressWrapper(Url, Username, Password)</pre>
<p><em>Please note -</em></p>
<p>The above example has the Url, Username and Password strings omitted. Simply replace them with the relevant information.</p>
<h3>Step 5</h3>
<p>You can now take full advantage of all the methods on your instantiated wrapper.</p>
<p><strong>C#</strong></p>
<pre class="brush: csharp; auto-links: false; collapse: false; first-line: 1; gutter: false; html-script: false; light: true; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;">string Url = "www.alexjamesbrown.com";
string User = "MyUser"; //enter your username
string Password = "MyPassword"; //enter your password

var wp = new WordPressWrapper(Url, User, Password);

//a few test functions...
var userBlogs = wp.GetUserBlogs();
var tags = wp.GetTags();
var categories = wp.GetCategories();

var authors = wp.GetAuthors();</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.alexjamesbrown.com/development/using-joeblogs/feed/</wfw:commentRss>
		<slash:comments>67</slash:comments>
		</item>
		<item>
		<title>Specify XML-RPC Endpoints at Run Time With CookComputing XMLRPC.net</title>
		<link>http://www.alexjamesbrown.com/uncategorized/specify-xml-rpc-endpoints-at-run-time/</link>
		<comments>http://www.alexjamesbrown.com/uncategorized/specify-xml-rpc-endpoints-at-run-time/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 14:39:26 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[c#]]></category>
		<category><![CDATA[JoeBlogs]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[xml rpc]]></category>

		<guid isPermaLink="false">http://www.alexjamesbrown.com/?p=265</guid>
		<description><![CDATA[A common question when using Cook Computing XML RPC.net to talk to blogs etc… is how to specify a blog / endpoint at runtime? Most of the examples seem to ...]]></description>
			<content:encoded><![CDATA[<p>A common question when using <a href="http://www.xml-rpc.net/" target="_blank">Cook Computing XML RPC.net</a> to talk to blogs etc… is how to specify a blog / endpoint at runtime? Most of the examples seem to specify the details in an attribute… not much use if you’re trying to <a href="http://www.alexjamesbrown.com/geek/c-wordpress-wrapper/" target="_blank">develop a wrapper</a>.</p>
<p>To enable me to create <a href="http://joeblogs.codeplex.com/" target="_blank">JoeBlogs</a>, I made use of the IXmlRpcProxy Proxy classes…</p>
<p>I created my interface, implementing IXmlRpcProxy:</p>
<p>We define the method as an XML RPC method using XmlRpcMethod.<br />
The name of the method is also specified.<br />
In this case, we are using getPost from the <a href="http://www.xmlrpc.com/metaWeblogApi" target="_blank">metaWeblog XML RPC API</a> – WordPress supports this, as well as the <a href="http://www.blogger.com/developers/api/">Blogger API</a> and the <a href="http://www.sixapart.com/developers/xmlrpc/movable_type_api/">Movable Type API</a>.<br />
They also have their own (which is an extension to the Moveable Type API) &#8211; <a title="http://codex.wordpress.org/XML-RPC_wp" href="http://codex.wordpress.org/XML-RPC_wp"></p>
<p>http://codex.wordpress.org/XML-RPC_wp</a></p>
<p>Anyway…..</p>
<p>As per the metaWeblog.getPost specification, we need to pass in the postid, username, and password. So we create our interface as follows:</p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;">	public interface IMyProxy: IXmlRpcProxy
	{
		[XmlRpcMethod("metaWeblog.getPost")]
		Post GetPost(string postid, string username, string password);
  	}</pre>
<p>As we can see, this returns a “Post”</p>
<p>This is a struct, that basically defines the structure of the response.</p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;">	[XmlRpcMissingMapping(MappingAction.Ignore)]
	public struct Post
	{
		public DateTime dateCreated;
		public string description;
		public string title;
		public string postid;
		public string[] categories;

		public override string ToString()
		{
			return this.description;
		}
	}</pre>
<p>To use this,  you need to create an instance of the proxy object.</p>
<p>XML RPC.net provides a method called XmlRpcProxyGen to do this for us.</p>
<p>We then set the Url, which is declared as part of IXmlRpcProxy (remember IMyProxy implemented this interface…)</p>
<p>Since our proxy declared the method GetPost, we can now use this, pass in the required post id, username and password.</p>
<pre class="brush: csharp; auto-links: true; collapse: false; first-line: 1; gutter: true; html-script: false; light: false; ruler: false; smart-tabs: true; tab-size: 4; toolbar: true;">    public void myTest()
    {
      string postId = "1234";
      string username = "myUsername";
      string password = "password";

      var proxy = (IMyProxy)XmlRpcProxyGen.Create(typeof(IMyProxy));
      proxy.Url = "www.alexjamesbrown.com";

      var post = proxy.GetPost(postId, username, password);
    }</pre>
<p>And there we have it.</p>
<p>Of course this is a very bare bones example.</p>
<p><a href="http://joeblogs.codeplex.com/" target="_blank">JoeBlogs</a> contains much more separation of these concerns.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.alexjamesbrown.com/uncategorized/specify-xml-rpc-endpoints-at-run-time/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>C# WordPress Wrapper</title>
		<link>http://www.alexjamesbrown.com/uncategorized/c-wordpress-wrapper/</link>
		<comments>http://www.alexjamesbrown.com/uncategorized/c-wordpress-wrapper/#comments</comments>
		<pubDate>Thu, 21 May 2009 23:14:53 +0000</pubDate>
		<dc:creator>Alex</dc:creator>
				<category><![CDATA[.net]]></category>
		<category><![CDATA[Blogging]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[JoeBlogs]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[xml rpc]]></category>

		<guid isPermaLink="false">http://www.alexjamesbrown.com/geek/c-wordpress-wrapper/</guid>
		<description><![CDATA[Ok, I’ve barely finished this as a stable release, but I thought I’d post this up any way…. A little open source project I’m working on – Joe Blogs. In ...]]></description>
			<content:encoded><![CDATA[<p>Ok, I’ve barely finished this as a stable release, but I thought I’d post this up any way….</p>
<p>A little open source project I’m working on – <a href="http://joeblogs.codeplex.com/" target="_blank">Joe Blogs</a>.</p>
<p>In a nutshell, it allows easy communication to your WordPress (or other blog) via an xml-rpc interface.</p>
<p>Big thanks to the work by Charles Cook at <a title="http://www.xml-rpc.net/" href="http://www.xml-rpc.net/">http://www.xml-rpc.net/</a></p>
<p><a href="http://joeblogs.codeplex.com/" target="_blank">Joe Blogs</a> is currently hosted on CodePlex &#8211; <a title="http://joeblogs.codeplex.com/" href="http://joeblogs.codeplex.com/">http://joeblogs.codeplex.com/</a></p>
<p>I’ll be posting more info, tutorials, documentation etc… in the coming days and weeks.</p>
<p><strong>Update</strong></p>
<p>See here for usage instructions:<br />
<a href="http://www.alexjamesbrown.com/geek/using-joeblogs/" target="_blank">http://www.alexjamesbrown.com/geek/using-joeblogs/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.alexjamesbrown.com/uncategorized/c-wordpress-wrapper/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

