<?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>Jeffrey Vanneste's Technical Blog &#187; Development</title>
	<atom:link href="http://jeffrey.vanneste.ca/tech/category/development/feed/" rel="self" type="application/rss+xml" />
	<link>http://jeffrey.vanneste.ca/tech</link>
	<description>A matter of perspective</description>
	<lastBuildDate>Sun, 25 Oct 2009 23:44:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Playing around with OpenID</title>
		<link>http://jeffrey.vanneste.ca/tech/2007/02/10/playing-around-with-openid/</link>
		<comments>http://jeffrey.vanneste.ca/tech/2007/02/10/playing-around-with-openid/#comments</comments>
		<pubDate>Sat, 10 Feb 2007 19:38:35 +0000</pubDate>
		<dc:creator>Jeffrey Vanneste</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://jeffrey.vanneste.ca/tech/2007/02/10/playing-around-with-openid/</guid>
		<description><![CDATA[What is OpenID? OpenID is an open, decentralized, free framework for user-centric digital identity. Essentially once you have an OpenID identity you can use that account on any site that supports it. Your identity becomes a URL. I think it&#8217;s a great single-sign-on system for bloggers. You can get an OpenID identity from lots of [...]]]></description>
			<content:encoded><![CDATA[<p>What is <a href="http://openid.net/" title="OpenID.net" target="_blank">OpenID</a>?</p>
<blockquote><p>OpenID is an open, decentralized, free framework for user-centric digital identity.</p></blockquote>
<p>Essentially once you have an OpenID identity you can use that account on any site that supports it.  Your identity becomes a URL.  I think it&#8217;s a great single-sign-on system for bloggers.</p>
<p>You can get an OpenID identity from lots of places.  If you have a <a href="http://www.livejournal.com/" title="LiveJournal" target="_blank">LiveJournal</a>, <a href="http://www.sixapart.com/typekey/" title="TypeKey" target="_blank">TypeKey</a> (Movable Type) or <a href="http://zooomr.com/" title="Zooomr" target="_blank">Zooomr</a> account (just to name a few) you already have an OpenID identity.  If not, there are lots of <a href="http://openid.net/wiki/index.php/OpenIDServers" title="List of OpenID servers" target="_blank">OpenID servers</a> that you can create an account with.  I recommend <a href="https://www.myopenid.com/" target="_blank">www.myopenid.com</a> as it seems to be popular.  If you are like me though, I wanted to use my own domain as my OpenID identity.</p>
<p><strong>Using your own domain as an OpenID Identity</strong></p>
<p>There are 2 ways that you can go about this.  The first is to install an OpenID server on your domain.  There is a list of options <a href="http://openid.net/wiki/index.php/Run_your_own_identity_server" target="_blank">here</a>.  If you just want to support a single user you could check out <a href="http://siege.org/projects/phpMyID/" title="phpMyID" target="_blank">phpMyID</a>.  I didn&#8217;t really want to run my own server so onto option 2.</p>
<p>This way is super easy.  You can setup your domain to delegate to an actual OpenID server.  This is even better if you want to change your main OpenID server without ever changing your OpenID URL.  All you have to do is add some headers to your default page on your domain.  Some instructions can be found <a href="http://www.openidenabled.com/openid/use-your-own-url-as-an-openid" title="Delegate the openID server" target="_blank">here</a> but the short version is add these to your HTML HEAD of your default page:</p>
<blockquote><p> &lt;link rel=&#8221;openid.server&#8221; href=&#8221;http://www.myopenid.com/server&#8221; /&gt;<br />
&lt;link rel=&#8221;openid.delegate&#8221; href=&#8221;http://yoururl.myopenid.com/&#8221; /&gt;</p></blockquote>
<p>In my case I wanted to keep using my TypeKey server so I just added this:</p>
<blockquote><p>&lt;link rel=&#8221;openid.server&#8221; href=&#8221;https://www.typekey.com/t/openid&#8221; /&gt;<br />
&lt;link rel=&#8221;openid.delegate&#8221; href=&#8221;http://profile.typekey.com/jeffreyvanneste/&#8221; /&gt;</p></blockquote>
<p>Now I can use <a href="http://jeffrey.vanneste.ca" title="http://jeffrey.vanneste.ca" target="_blank">http://jeffrey.vanneste.ca</a> as my identity and switch freely between OpenID servers.  If you have a WordPress blog there is an <a href="http://eran.sandler.co.il/openid-delegate-wordpress-plugin/" title="OpenID delegate plugin" target="_blank">OpenID delegate plugin</a> you could check out.</p>
<p><strong>WordPress Integration</strong></p>
<p>I decided to see what was required in getting <a href="http://en.wikipedia.org/wiki/Openid" title="Wikipedia OpenID" target="_blank">OpenID</a> integrated into my blogs.  Not surprisingly there was already a great <a href="http://verselogic.net/projects/wordpress/wordpress-openid-plugin/" title="WordPress OpenID plugin" target="_blank">WordPress OpenID plug-in</a> that almost worked flawlessly for me.  Installing and setting it up was super easy but the default install of PHP on dreamhost does not include the <a href="http://ca3.php.net/gmp" title="GMP functions" target="_blank">GMP functions</a>.  As luck would have it there is a great article written up on the dreamhost wiki on <a href="http://wiki.dreamhost.com/index.php/Installing_PHP5" title="compiling customized PHP5 on dreamhost" target="_blank">compiling a customized PHP</a>.</p>
<p><strong>Adding GMP support to PHP</strong></p>
<p>I started with the &#8220;Alternative PHP 5 install Scripts&#8221; found <a href="http://wiki.dreamhost.com/index.php/PHP_5_install_script" title="PHP5 install scripts" target="_blank">here</a>.  Running the first script will download all the source required and extract it all into another folder.  At this point you need to do the same for GMP.  Login to your dreamhost shell and goto the folder where all the PHP5 libraries were extracted ($HOME/dist by default).</p>
<blockquote><p> wget ftp://ftp.gnu.org/gnu/gmp/gmp-4.2.1.tar.gz<br />
tar zxvf gmp-4.2.1.tar.gz<br />
cd gmp-4.2.1<br />
./configure &#8211;prefix=${HOME}/php5<br />
nice -n 19 make<br />
make install</p></blockquote>
<p>Now we need to edit the second PHP5 install script.  All you have to do here is find the PHPFEATURES variable and add this line somewhere between the quotes.</p>
<blockquote><p>&#8211;with-gmp=${INSTALLDIR} \</p></blockquote>
<p>Now run the second script which took quite awhile for me.  Once it&#8217;s completed you have to add a .htaccess file to the root folder of your website with the following lines:</p>
<blockquote><p> AddHandler phpFive .php<br />
Action phpFive /cgi-bin/php.cgi</p></blockquote>
<p>That should be it.  If you have enabled the WordPress OpenID plugin you should now see an additional option to use an OpenID URL when making comments and logging in.</p>
<p><strong>Getting started with OpenID development</strong></p>
<p>If you want to get started on new projects that use OpenID there are already lots of awesome libraries available.  The best site I found is <a href="http://www.openidenabled.com" title="http://www.openidenabled.com" target="_blank">http://www.openidenabled.com</a> which has information on pretty much everything you would want to know about OpenID.  There are also libraries written in <a href="http://www.openidenabled.com/openid/libraries/python/" target="_blank">Python</a>, <a href="http://www.openidenabled.com/openid/libraries/ruby/" target="_blank">Ruby</a>, <a href="http://www.openidenabled.com/openid/libraries/perl/" target="_blank">Perl</a>, <a href="http://www.openidenabled.com/openid/libraries/php/" target="_blank">PHP</a>, <a href="http://www.openidenabled.com/openid/libraries/csharp/" target="_blank">.NET</a>, <a href="http://www.openidenabled.com/openid/libraries/java/" target="_blank">Java</a> and <a href="http://www.openidenabled.com/openid/libraries/coldfusion/" target="_blank">ColdFusion</a> to help get your project jump started.</p>
<p>I also found for testing that it was useful having multiple OpenID identities.  If you want to have some OpenID&#8217;s to test with check out <a href="http://www.jkg.in/openid/" target="_blank">http://www.jkg.in/openid/</a> which generates anonymous ID&#8217;s for you.</p>
<p>So now my blog supports OpenID registration.  Why not do the same to yours so we don&#8217;t need yet another account?</p>
]]></content:encoded>
			<wfw:commentRss>http://jeffrey.vanneste.ca/tech/2007/02/10/playing-around-with-openid/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Template plugin for Live Writer</title>
		<link>http://jeffrey.vanneste.ca/tech/2006/10/11/template-plugin-for-live-writer/</link>
		<comments>http://jeffrey.vanneste.ca/tech/2006/10/11/template-plugin-for-live-writer/#comments</comments>
		<pubDate>Thu, 12 Oct 2006 03:11:38 +0000</pubDate>
		<dc:creator>Jeffrey Vanneste</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://jeffrey.vanneste.ca/tech/2006/10/11/template-plugin-for-live-writer/</guid>
		<description><![CDATA[I&#8217;ve been using Windows Live Writer to do all my blogs posts lately. There are some real cool plugins out for it already. I wanted a plugin that I could save snippets or templates of text that I could reuse. So here is the first release of TemplateForWriter. I put together a real quick page [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using Windows Live Writer to do all my blogs posts lately.  There are some real cool plugins out for it already.  I wanted a plugin that I could save snippets or templates of text that I could reuse.  So here is the <a title="TemplateForWriterSetup.zip" href="http://jeffrey.vanneste.ca/projects/template-plugin-for-windows-live-writer/TemplateForWriterSetup.zip">first release of TemplateForWriter</a>.  I put together <a href="http://jeffrey.vanneste.ca/projects/template-plugin-for-windows-live-writer/">a real quick page</a> for it with the rest of my projects.  Feel free to leave me any suggestions in the comments of this post.</p>
<div><img align="middle" src="http://jeffrey.vanneste.ca/projects/template-plugin-for-windows-live-writer/sshot-1.png" /></div>
<p><strong>How to create your own plugin</strong></p>
<p>A great resource for creating your own plugin is <a href="http://nayyeri.net/archive/2006/08/15/Write-a-Windows-Live-Writer-plugin-using-C_2300_.aspx">Keyvan Nayyeri&#8217;s post</a> where he writes a plugin to insert tags for Technorati.  You will need the <a href="http://download.microsoft.com/download/f/9/a/f9a19f2d-cec4-4a25-9b0b-eb9655ea7561/Windows%20Live%20Writer%20SDK%20(Beta).msi">Live Writer SDK</a> before you get started.  The SDK includes a good help file and 2 examples for creating plugins.  You can also check out some source code on some <a href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=WLWPlugins">open source plugins</a>.</p>
<p><strong>Where can I get more plugins?</strong></p>
<p>Some places I found that had quite a bit of content were <a title="http://wlwplugins.com/" href="http://wlwplugins.com/">http://wlwplugins.com/</a>, <a href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=WLWPlugins">Live Writer Plugins on Codeplex</a>, and <a href="http://gallery.live.com/writer/">Microsoft&#8217;s gallery of plugins</a>.  I really like the <a href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=flickr4writer">Flickr4Writer plugin</a> which makes it really easy to add in pictures from my flickr account.</p>
]]></content:encoded>
			<wfw:commentRss>http://jeffrey.vanneste.ca/tech/2006/10/11/template-plugin-for-live-writer/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
