<?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>Magma Digital &#187; Programming</title>
	<atom:link href="http://blog.solutionperspectivemedia.co.uk/?feed=rss2&#038;cat=5" rel="self" type="application/rss+xml" />
	<link>http://blog.solutionperspectivemedia.co.uk</link>
	<description>our little place on the web</description>
	<lastBuildDate>Mon, 28 Jun 2010 22:07:47 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Changed blog software from Serendipity (s9y) to Wordpress</title>
		<link>http://blog.solutionperspectivemedia.co.uk/?p=63</link>
		<comments>http://blog.solutionperspectivemedia.co.uk/?p=63#comments</comments>
		<pubDate>Wed, 12 Aug 2009 21:07:49 +0000</pubDate>
		<dc:creator>Jeremy Coates</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[301]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[redirect]]></category>
		<category><![CDATA[rewrite]]></category>
		<category><![CDATA[s9y]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[serendipity]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.solutionperspectivemedia.co.uk/?p=63</guid>
		<description><![CDATA[This blog has been neglected far to long / often, partly because things are always so busy and partly the company and my personal twitter accounts seem to have taken over. However there&#8217;s another reason, that I think I&#8217;d outgrown the Serendipity (s9y) software due to having more exposure to WordPress these days. I also [...]]]></description>
			<content:encoded><![CDATA[<p>This blog has been neglected far to long / often, partly because things are always so busy and partly the <a href="http://twitter.com/spmedia">company</a> and my <a href="http://twitter.com/phpcodemonkey">personal</a> <a href="http://twitter.com/">twitter</a> accounts seem to have taken over. However there&#8217;s another reason, that I think I&#8217;d outgrown the <a href="http://www.s9y.org/">Serendipity (s9y)</a> software due to having more exposure to <a href="http://wordpress.org/">WordPress</a> these days. I also noticed recently that there&#8217;s a WordPress app for the iPhone which was the final thing that convinced my to switch software as I&#8217;ve always got my iPhone with me and am therefore far more likely to bash out a draft on there before post-editing at the PC (in fact that&#8217;s what I did for this post!).</p>
<p>So having decided to switch I set about investigating the &#8216;how&#8217; to do that and came across two useful resources that highlighted how it might be done:<br />
<a href="http://technosailor.com/2007/01/02/new-version-of-serendipity-s9y-to-wordpress-importer-available/">Technosailor.com</a> has the actual download for the WordPress import script for Serendipity and <a href="http://e-mats.org/2008/05/the-story-of-migrating-from-serendipity-s9y-to-wordpress/">e-mats.org</a> showed a little bit more of the detail of what to do with it.</p>
<p>The importer worked well in the main, first importing Categories, Users and then posts. However it failed to put the posts in any categories (other than the WordPress default of Uncategorised) and didn&#8217;t bring any of the post tags across. So those elements ended up being a manual cut-&#8217;n'-paste job, which took about half an hour or so. Another gotcha with the import is that if you&#8217;ve deleted posts / categories / authors etc. from your Serendipity blog, there will be gaps in the database Id numbers, the importer just inserts the next counted value rather than the Id of the post, category or author &#8211; this obviously has a major impact on the search engine profile of your site and the user experience resulting in the dreaded 404 errors if a user clicks through from a search engine. For posts, I manually sorted the Id numbers and for the rest I used the .htaccess method discussed next.</p>
<p>Then I moved on to the RewriteRules in the apache .htaccess file as discussed in the e-mats.org post (see above), however the RewriteRules they suggest are somewhat over simplistic and at least one of them simply didn&#8217;t work. So I hand crafted a few of my own that whilst being more complete are not a total resolution, they will however cover most scenarios from a standard Serendipity set up to a standard WordPress set up:</p>
<p><code>RewriteEngine On<br />
RewriteBase /<br />
RewriteRule ^archives/([0-9]+)\-.*.html$ /index.php?p=$1 [L,R=301]<br />
RewriteRule ^archives/([0-9]{4,4})/([0-9]{2,2}).*.html$ /index.php?m=$1$2 [L,R=301]<br />
RewriteRule ^archive$ / [L,R=301]<br />
RewriteRule ^feeds/index.rss2$ /index.php?feed=rss2 [L,R=301]<br />
RewriteRule ^feeds/index.rss1$ /index.php?feed=rss [L,R=301]<br />
RewriteRule ^feeds/index.rss$ /index.php?feed=rss [L,R=301]<br />
RewriteRule ^feeds/index.atom$ /index.php?feed=atom [L,R=301]<br />
RewriteRule ^plugin/tag/(.*)$ /index.php?tag=$1 [L,R=301]</code></p>
<p>Which covers Archives, RSS feeds and article Tags, however there&#8217;s still Categories and Authors to deal with, which if you remember had database Id mapping to be done. So for Categories you probably need to be adding 2 to the Id that would have been found in the Serendipity set up due to the standard WordPress &#8216;Uncategorized&#8217; and &#8216;Blogroll&#8217; entries:</p>
<p><code>RewriteRule ^categories/(1)\-.*$ /index.php?cat=3 [L,R=301]</code><br />
Simply repeat that line in your .htaccess file replacing the Id in the brackets (from Serendipity) and after the cat= with the appropriate Id from WordPress.</p>
<p>And similarly for Authors:</p>
<p><code>RewriteRule ^authors/(1)\-.*$ /index.php?author=2 [L,R=301]</code><br />
where again the bracketed number is the Serendipity Id and the WordPress Id is added after the equals sign.</p>
<p>All in all, it&#8217;s a little more work however it&#8217;s a much more complete mapping and should catch the long tail entries and keep a lot more of your SEO benefits from your old blog software. Talking of SEO benefits, it&#8217;s perhaps worth pointing out what the elements in the square brackets at the end of each rule means. The &#8216;L&#8217; tells apache it&#8217;s the last rule to apply now we&#8217;ve found a match. Most importantly for SEO the &#8216;R=301&#8242; tells apache to issue a 301 RedirectPermanent header, which is the way to tell the search engines that an item has permanently moved, over time Google et al will pick up on the fact that things have moved around and update their cached records for your site and update their results &#8211; win <img src='http://blog.solutionperspectivemedia.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>If there&#8217;s anything you can add or have gained from this feel free to post a comment for others to benefit from &#8211; thanks.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.solutionperspectivemedia.co.uk/?feed=rss2&amp;p=63</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Traffic alerts via Twitter mashup with optional SMS</title>
		<link>http://blog.solutionperspectivemedia.co.uk/?p=29</link>
		<comments>http://blog.solutionperspectivemedia.co.uk/?p=29#comments</comments>
		<pubDate>Wed, 07 May 2008 23:15:10 +0000</pubDate>
		<dc:creator>Jeremy Coates</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[highways agency]]></category>
		<category><![CDATA[mashup]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[northwest]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[text]]></category>
		<category><![CDATA[traffic]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[twitterfeed]]></category>
		<category><![CDATA[uk]]></category>

		<guid isPermaLink="false">http://blog.solutionperspectivemedia.co.uk/wordpress/?p=22</guid>
		<description><![CDATA[As a recent fan of twitter (you can follow me if you like) as a short (read text message length) form of blogging, I was quite interested to spot a blog post from Andy Davies about using twitter to mashup with traffic data feeds. I used his technique, though in a simpler format e.g. I [...]]]></description>
			<content:encoded><![CDATA[<p>As a recent fan of <a href="http://twitter.com" title="Twitter.com home page">twitter</a> (you can <a rel="me" title="Follow Jeremy Coates on Twitter.com" href="http://twitter.com/phpcodemonkey">follow me</a> if you like) as a short (read text message length) form of blogging, I was quite interested to spot a blog post from <a href="http://www.andysnotebook.com/" title="Andy Davies Blog">Andy Davies</a> about using <a href="http://www.andysnotebook.com/2008/03/roll-your-own-t.html" title="Twitter RSS Traffic Feeds blog post">twitter to mashup with traffic data feeds</a>. I used his technique, though in a simpler format e.g. I didn&#8217;t bother with the Yahoo! Pipes element, to create a traffic alerts feed. As we&#8217;re in the Northwest of England, I wanted to use a traffic feed relevant to this locale. To this end, I used the <a href="http://www.highways.gov.uk/rssfeed/NorthWest.xml" title="Northwest UK Traffic alerts RSS feed">Northwest UK RSS feed</a> from the <a href="http://www.highways.gov.uk/traffic/11278.aspx" title="UK Highways Agency RSS traffic feed list">Highways Agency traffic feed list</a>.</p>
<p>So let&#8217;s cut to the chase, how do I do this? In a nutshell: Create a new twitter account; link that to a <a href="http://twitterfeed.com" title="Send RSS feeds to Twitter as posts">twitterfeed.com</a> account (a service that turns RSS feeds into twitter posts) and an RSS feed; then follow in your normal twitter account the new twitter account just created and, if you want text alerts of the data (e.g. when you&#8217;re actually travelling round the area), turn on device updates for the following of the new account (assuming you&#8217;ve already registered a mobile device for this purpose in your main account).</p>
<p>Then you get new tweets and or text alerts each time there&#8217;s a new RSS entry in the source feed. Sweet <img src='http://blog.solutionperspectivemedia.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>If you want to subscribe to the results for that feed simply skip all the setup above and just follow <a href="http://twitter.com/NWUKTrafficAlrt" title="Northwest UK Traffic Alerts on twitter">NWUKTrafficAlrt</a> in your twitter account.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.solutionperspectivemedia.co.uk/?feed=rss2&amp;p=29</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GeekUp Leeds: YUI Javascript Evolved?</title>
		<link>http://blog.solutionperspectivemedia.co.uk/?p=24</link>
		<comments>http://blog.solutionperspectivemedia.co.uk/?p=24#comments</comments>
		<pubDate>Wed, 20 Feb 2008 21:49:55 +0000</pubDate>
		<dc:creator>Jeremy Coates</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[geekup]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[leeds]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[uk]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[yui]]></category>

		<guid isPermaLink="false">http://blog.solutionperspectivemedia.co.uk/wordpress/?p=17</guid>
		<description><![CDATA[We&#8217;ve started to use the Yahoo! User Interface (YUI) a lot here at SPM and so I was intrigued when the Leeds branch of GeekUp were having Christian Heilmann from Yahoo! to speak about it.
Whilst Christian&#8217;s talk was an introduction to the YUI posing the question Javascript Evolved?, it was fairly basic for anyone who&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p><img width="390" vspace="5" hspace="5" height="450" align="right" alt="Christian Heilmann at GeekUp Leeds: YUI Javascript Evolved|" src="/uploads/Image/img_5460_scaled.jpg" />We&#8217;ve started to use the <a title="Yahoo! User Interface (YUI) home page" href="http://developer.yahoo.com/yui/">Yahoo! User Interface</a> (YUI) a lot here at <a title="Solution Perspective Media" href="http://www.solutionperspective.co.uk/">SPM</a> and so I was intrigued when the Leeds branch of <a title="GeekUp website" href="http://geekup.org/">GeekUp</a> were having <a title="Christian Heilmann's blog" href="http://www.wait-till-i.com/" rel="contact met">Christian Heilmann</a> from Yahoo! to speak about it.</p>
<p>Whilst Christian&#8217;s talk was an introduction to the YUI posing the question Javascript Evolved?, it was fairly basic for anyone who&#8217;s used it in anger however it was a good talk, light hearted and well presented, ideally suited to the level of the audience. Christian took a straw poll of who had used the YUI to date and there seemed to be about 10 hands that went up around the room of about 70 attendees. This surprised me quite a bit as I thought it would have had a wider exposure &#8211; I&#8217;m sure it will after the presentation. For me it&#8217;s the enterprise approach to the framework model that is YUI that won out over the other libraries out there. One of Christians&#8217; key points was that YUI is more than a library, in fact a true framework &#8211; JavaScript, CSS and widgets all available from a single source. The other thing I like about YUI is that it&#8217;s developed by Yahoo! &#8211; who set a high standard in terms of cross-browser compatibility as well as understanding the nature of scalable solutions for their own sites. I&#8217;m looking forward to getting into the new features of the latest release of <a title="YUI 2.5.0 release notes" href="http://yuiblog.com/blog/2008/02/20/yui-250-released/">YUI version 2.5.0 </a>out today! I hope that the new version doesn&#8217;t break too much as I&#8217;m just in the testing phase of a project with a client and would like to get the new version in before it goes live &#8211; we shall see. If you missed the event, then Christian&#8217;s slides are <a title="Slides from the talk YUI - Javascript Evolved?" href="http://www.wait-till-i.com/2008/02/20/geekup-leeds-talk-about-the-yui-right-when-the-new-version-25-is-out/">available on-line</a>.</p>
<p>The man from Yahoo! also kindly brought some promotional merchandise along to the event &#8211; we all were then invited to put our names in a hat and a draw was then held. To my surprise my name was called out third and better than the t-shirts and beach balls that were won by some, I&#8217;d won one of the two copies of Christian&#8217;s own book: Web Development Solutions &#8211; Ajax, APIs, Libraries, and Hosted Services Made Easy (published by Friends of Ed from Apress). I shall look forward to getting into that once I&#8217;ve finished my current read: Microformats: Empowering Your Markup for Web 2.0 also from the same stable.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.solutionperspectivemedia.co.uk/?feed=rss2&amp;p=24</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
