<?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>Marc Hibbins &#187; blogging</title>
	<atom:link href="http://blog.marchibbins.com/category/blogging/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.marchibbins.com</link>
	<description>RIAs, Web standards and the Semantic Web</description>
	<lastBuildDate>Mon, 08 Feb 2010 11:25:07 +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>Start Making Sense</title>
		<link>http://blog.marchibbins.com/2010/01/12/start-making-sense/</link>
		<comments>http://blog.marchibbins.com/2010/01/12/start-making-sense/#comments</comments>
		<pubDate>Tue, 12 Jan 2010 12:43:29 +0000</pubDate>
		<dc:creator>Marc Hibbins</dc:creator>
				<category><![CDATA[blogging]]></category>
		<category><![CDATA[development]]></category>

		<guid isPermaLink="false">http://blog.marchibbins.com/?p=1376</guid>
		<description><![CDATA[Adding some optimisations to my Wordpress blog, improving SEO and clearing some things up.]]></description>
			<content:encoded><![CDATA[<p>I thought with the turn of the new year and whatnot, I&#8217;d make a few improvements to my blog.</p>
<p>For some reason when I started writing I thought it&#8217;d be a great idea to use rather abstract titles for all of my posts, something short and curiously inviting (hopefully) rather than the straightforward approach of actually describing what the post is about. I wanted to avoid long and boring titles like &#8220;Differences between Flash Player 10 and 10.1&#8243; or &#8220;How to install.. blah blah&#8221;.</p>
<p>So although, as far as titles go, they could probably be more boring &#8211; they could definitely be more helpful. Most of them are obscure and aren&#8217;t really meaningful. They&#8217;re fine for human readers, especially after people have read the post, but they&#8217;re not so good for search engines or people searching for what I&#8217;ve written about.</p>
<p>I decided then to use Wordpress&#8217; <a title="Custom Fields « WordPress Codex" href="http://codex.wordpress.org/Custom_Fields" target="_blank">custom fields</a> to add a descriptive &#8217;subtitle&#8217; to each post that should shed some light on what I&#8217;m actually writing about and hopefully the titles should start making sense.</p>
<p>I could have started anew and use descriptive titles from here on, but that would be inconsistent and make those old titles even more nonsensical. I could have renamed the lot, but the old URLs would then be meaningless (the name is in the permalink) or if I changed those URLs then previously incoming links would be broken.</p>
<h3><a name="Adding_Custom_Fields" class="anchor">Adding Custom Fields</a></h3>
<p>Custom fields are essentially metadata for each post and can be pulled in by your theme.</p>
<p>I choose to display my subtitle under the each post title so humans, search engines and crawlers alike can read abstract title and the helpful subtitle description together.</p>
<p>Custom fields are added at the bottom of the &#8216;Add New Post&#8217; page and can be any amount of value pairs that take a <strong>name</strong> and <strong>value</strong>.</p>
<p>These custom fields won&#8217;t automatically show in your post, you&#8217;ll need to edit your current theme&#8217;s PHP files to retrieve them.</p>
<p>The <a title="Function Reference/get post custom « WordPress Codex" href="http://codex.wordpress.org/Function_Reference/get_post_custom" target="_blank"><strong>get_post_custom</strong> function</a> will return a multidimensional array with all custom fields of a particular post or page, which you can traverse to find your custom value pair:</p>
<blockquote><p>&lt;?php get_post_custom($post_id); ?&gt;</p></blockquote>
<p>Otherwise you can use the <a title="Function Reference/get post custom values « WordPress Codex" href="http://codex.wordpress.org/Function_Reference/get_post_custom_values" target="_blank"><strong>get_post_custom_values</strong> function</a> and send the field name to get an array of all the values with that particular key:</p>
<blockquote><p>&lt;?php get_post_custom_values($key); ?&gt;</p></blockquote>
<p>I&#8217;m using a field to add a subtitle, so I append the value onto the end of my title which you can see on the left (if you&#8217;re reading this <a title=" » Start Making Sense by Marc Hibbins" href="http://blog.marchibbins.com/2010/01/12/start-making-sense/">on my site</a>).</p>
<p>Semantically this is part of my title. As I stated above, for SEO purposes, I want this to be considered as a part of my title for all intents and purposes by search engines and spiders as well as humans. I only ever want them considered &#8217;separately&#8217; on an aesthetic level and in Wordpress&#8217; forming of the permalink.</p>
<p>So I&#8217;ve styled up the subtitle to look complimentary to the &#8216;actual&#8217; title with CSS, but injected it into the post&#8217;s <strong>h2</strong> title tag in my mark-up so it stays semantically sound for machine readers and accessibility purposes.</p>
<p>So here&#8217;s the combined title mark-up (without style hooks):</p>
<blockquote><p>&lt;h2 class=&#8221;entry-title&#8221;&gt;<br />
<span style="padding-left:15px">&lt;a href=&#8221;..&#8221;&gt;Start Making Sense&lt;/a&gt;:</span><br />
<span style="padding-left:30px">&lt;span class=&#8221;entry-subtitle&#8221;&gt;Wordpress, SEO and pimping my blog&lt;/span&gt;</span><br />
&lt;/h2&gt;</p></blockquote>
<p>And the styled and un-styled versions look like this:</p>
<p><a href="http://blog.marchibbins.com/wp-content/uploads/2010/01/subtitle-styled.jpg" target="_blank"><img src="http://blog.marchibbins.com/wp-content/uploads/2010/01/subtitle-styled-300x95.jpg" alt="" title="Title and subtitle - styled" width="300" height="95" class="aligncenter size-medium wp-image-1386" style="border:1px solid #333" /></a><br />
<a href="http://blog.marchibbins.com/wp-content/uploads/2010/01/subtitle-unstyled.jpg" target="_blank"><img src="http://blog.marchibbins.com/wp-content/uploads/2010/01/subtitle-unstyled-300x95.jpg" alt="" title="Title and subtitle - unstyled" width="300" height="95" class="aligncenter size-medium wp-image-1387" style="border:1px solid #fff" /></a></p>
<p>It&#8217;s subject to a conditional statement that checks whether the custom field has been populated, so I don&#8217;t have to rush through adding them to all my posts and those without subtitles yet won&#8217;t look broken.</p>
<p>This does mean however that it&#8217;s only implemented by the theme, not by the publishing platform. This means it will only be seen by visitors to the blog, it isn&#8217;t published to the RSS feed, for example, so syndicated readers won&#8217;t see it.</p>
<h3><a name="Sitemaps" class="anchor">Sitemaps</a></h3>
<p>Another improvement for SEO purposes was to add an XML sitemap.</p>
<p>I recently added a HTML sitemap in the form of my <a title="» Index by Marc Hibbins" href="http://blog.marchibbins.com/index/" target="_blank">index page</a>, but then saw <a title="YouTube - Which is better: an HTML site map or XML Sitemap?" href="http://www.youtube.com/watch?v=hi5DGOu1uA0&amp;fmt=22" target="_blank">Google&#8217;s Matt Cutts discussing HTML versus XML sitemaps</a> who concludes that if you can have both, then do so.</p>
<p>It&#8217;s very easy to generate a sitemap and according to Matt&#8217;s video a simple list of URLs would suffice, but I looked up the <a title="WordPress › WordPress Plugins" href="http://wordpress.org/extend/plugins/" target="_blank">Wordpress Plugin Directory</a> for ready-to-roll solution and found the <a title="WordPress › Google XML Sitemaps « WordPress Plugins" href="http://wordpress.org/extend/plugins/google-sitemap-generator/" target="_blank">Google XML Sitemaps</a> which does the job for me.</p>
<p>It&#8217;s fully automatic so it doesn&#8217;t need my attention once I&#8217;ve installed it. It generates an XML file based on my current posts and pages and automatically updates whenever I publish or modify anything new.</p>
<p>It also sends notifications of updates to the main search engines &#8211; Google, Bing, Ask.com and Yahoo! &#8211; and has a number of advanced options concerning prioritising pages and setting the frequency of how often certain pages should be checked again by crawlers for updates.</p>
<p>The XML file it generates sits at <a title="My Sitemap" href="http://blog.marchibbins.com/sitemap.xml" target="_blank">http://blog.marchibbins.com/sitemap.xml</a> (for me) and there&#8217;s an option to attach an XSL file for styling, but I choose just to use plain XML.</p>
<h3><a name="Social_Bookmarking" class="anchor">Social Bookmarking</a></h3>
<p>I got to browsing some of the other <a title="WordPress › Most Popular « WordPress Plugins" href="http://wordpress.org/extend/plugins/browse/popular/" target="_blank">popular plugins</a> and temporarily tried out <a title="WordPress › Sociable « WordPress Plugins" href="http://wordpress.org/extend/plugins/sociable/" target="_blank">Sociable</a> which adds typical social bookmarking links to the bottom of each post.</p>
<p>It supports nearly 100 different APIs and <a title="WordPress › Sociable « WordPress Plugins" href="http://wordpress.org/extend/plugins/sociable/screenshots/" target="_blank">the drag-and-drop interface</a> and nice and easy to work with.</p>
<p>I chose not to use it in the end, I thought it was a bit over-the-top for my site.</p>
<p>There&#8217;s a lot more in the directory though, like <a title="WordPress › Add to Any: Share/Bookmark/Email Button « WordPress Plugins" href="http://wordpress.org/extend/plugins/add-to-any/" target="_blank">Add to Any</a>, <a title="WordPress › SexyBookmarks « WordPress Plugins" href="http://wordpress.org/extend/plugins/sexybookmarks/" target="_blank">SexyBookmarks</a> and <a title="WordPress › ShareThis « WordPress Plugins" href="http://wordpress.org/extend/plugins/share-this/" target="_blank">ShareThis</a> &#8211; though they&#8217;re not hard to write anyway, if I eventually change my mind.</p>
<h3><a name="Tweaks" class="anchor">Tweaks</a></h3>
<p>I made a few other minor changes here and there, some CSS changes and design tweaks.</p>
<p>I threw an RSS link into the header and dropped the amount of posts that show on my front page.</p>
<p>I realised my posts can tend to get pretty lengthy and often have embedded videos or Flash content, so showing ten of those (the default) made the page quite heavy.</p>
<p>I started using the <a title="Theme Tuesday: ChaosTheory — Blog — WordPress.com" href="http://en.blog.wordpress.com/2007/11/05/theme-tuesday-chaostheory/" target="_blank">ChaosTheory theme</a> when my blog was freely hosted on Wordpress.com and I&#8217;ve stuck with it since, making odd modifications to both server-side code and the front-end as and when. To use it on a Wordpress.org blog I found <a title="WordPress › Support » Chaos Theory Theme" href="http://wordpress.org/support/topic/192260" target="_blank">a port hosted by Automattic</a> but it&#8217;s never been quite right nor entirely compliant with mark-up or CSS standards, I&#8217;ve only really maintained it for consistency.</p>
<p>Recently though I found the <a title="Unicorn" href="http://qa-dev.w3.org/unicorn/" target="_blank">Unicorn &#8216;Universal Conformance Checker&#8217;</a> from the W3C which combines all the common validation checks and also has a MobileOK Checker which looks at the &#8216;mobile-friendliness&#8217; of a site.</p>
<p>Shamefully my blog scores an awful 0/100, due to links with <strong>&#8220;_blank&#8221;</strong> targets, the amount of images embedded, the presence of Flash and Javascript and a ton of other things.</p>
<p>Over time it&#8217;ll be my aim to get all that sorted. Hopefully without having to start my own theme completely from scratch.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.marchibbins.com/2010/01/12/start-making-sense/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>You&#8217;ve Got a Friend in Me</title>
		<link>http://blog.marchibbins.com/2009/07/29/youve-got-a-friend-in-me/</link>
		<comments>http://blog.marchibbins.com/2009/07/29/youve-got-a-friend-in-me/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 09:53:57 +0000</pubDate>
		<dc:creator>Marc Hibbins</dc:creator>
				<category><![CDATA[blogging]]></category>
		<category><![CDATA[linkeddata]]></category>
		<category><![CDATA[openstandards]]></category>
		<category><![CDATA[rdfa]]></category>
		<category><![CDATA[semanticweb]]></category>

		<guid isPermaLink="false">http://blog.marchibbins.com/?p=735</guid>
		<description><![CDATA[Inspired by Mark Birbeck's talk on RDFa and the Semantic Web earlier this month I decided to take some of my own advice and add RDFa to my site. I've now created a FOAF profile here on my blog.]]></description>
			<content:encoded><![CDATA[<p>Inspired by <a title="» Thinking Out Loud Marc Hibbins" href="http://blog.marchibbins.com/2009/07/15/thinking-out-loud/" target="_blank">Mark Birbeck&#8217;s talk on RDFa and the Semantic Web</a> earlier this month I decided to take some of my own advice and add RDFa to my site. I&#8217;ve now created a FOAF profile here on my blog.</p>
<p>Reading through Mark&#8217;s <a title="Mark Birbeck's blog | webBackplane" href="http://webbackplane.com/mark-birbeck/blog" target="_blank">articles at webBackplane</a>, I noticed he has a very simple tutorial on <a title="Getting started with RDFa: Creating a basic FOAF profile | webBackplane" href="http://webbackplane.com/mark-birbeck/blog/2009/04/getting-started-with-rdfa" target="_blank">how to create a basic FOAF profile</a>. Being so straightforward, as RDFa is meant to be, and seeing how I wrote about FOAF in my dissertation almost three years ago now, as well as now having full control of my blog (now that it&#8217;s a Wordpress.org installation rather than the free option) &#8211; I&#8217;ve no excuse.</p>
<p>In my last post I discussed RDF vocabularies, sets of agreed-upon and unambiguous terms that allow developers to structure otherwise &#8216;mundane&#8217; structureless content by inserting definitions and making references to which machines and applications can follow to infer meaning and <em>understand</em> topics of any kind. There I gave <a title="» Thinking Out Loud Marc Hibbins" href="http://blog.marchibbins.com/2009/07/15/thinking-out-loud/#An_example" target="_blank">an example</a> that pointed to a specification used to structure book reviews.</p>
<p>FOAF is the <a title="FOAF (software) - Wikipedia, the free encyclopedia" href="http://en.wikipedia.org/wiki/FOAF_(software)" target="_blank">Friend of a Friend</a> vocabulary, an RDF and <a title="Web Ontology Language - Wikipedia, the free encyclopedia" href="http://en.wikipedia.org/wiki/Web_Ontology_Language" target="_blank">OWL ontology</a>, used in the same way, but specificially to describe people, their activities, interests and their relationships to other people.</p>
<p>Created around mid-2000, it is now maintained by <a title="The Friend of a Friend (FOAF) project | FOAF project" href="http://www.foaf-project.org/" target="_blank">The FOAF Project</a>, which is considered to be one of the earliest &#8211; if not the first &#8211; Semantic Web application.</p>
<p>The idea is that given that anyone can put RDF(a) on their Web site, equally, anyone can describe themselves using FOAF. By doing this they are creating themselves a FOAF profile, thus have joined the linked network of people who have already done the same. These people can then begin to create links to each others FOAF profiles and start to create a social network of friends, without the need for a centralised database or website to do it for them.</p>
<p>Then here&#8217;s where RDFa steps in, which now allows developers to implement structured data straight into their HTML mark-up, wrapping existing or new content with an extended set of attributes, meaning they no longer have to host a separate RDF file and rely on either applications indexing that file or creating a link to it from another page to point to it.</p>
<h3><a name="Creating_a_FOAF_profile" class="anchor">Creating a FOAF profile</a></h3>
<p>I already have an <a title="» About Marc Hibbins" href="http://blog.marchibbins.com/about/" target="_blank">&#8216;About&#8217; page</a> on this blog &#8211; a bit of blurb about who I am and what I do. So it&#8217;s here that I&#8217;m implementing my FOAF information.</p>
<p>As said, there&#8217;s no need to link to a separate RDF file if you use RDFa, so really you can add the metadata anywhere, in your headers or footers for example, but that About page is the most relevant place for me and already contains the information and links I want to share anyway.</p>
<p>Firstly I wrap the text in a div tag that defines the FOAF namespace and declares that this div is a &#8216;Person object&#8217;, that the contents of this div describes a person. This is done by referring to the <strong>foaf:Person</strong> type of the FOAF vocabulary:</p>
<blockquote><p>&lt;div <strong>xmlns:foaf=&#8221;http://xmlns.com/foaf/0.1/&#8221; about=&#8221;#me&#8221;<br />
<span style="padding-left:30px;">typeof=&#8221;foaf:Person&#8221;</strong>&gt;</span><br />
<span style="padding-left:30px;">&lt;p&gt;Hello.&lt;/p&gt;</span><br />
<span style="padding-left:30px;">&lt;p&gt;My name is Marc Hibbins.&lt;/p&gt;</span><br />
<span style="padding-left:30px;">&#8230;</span><br />
&lt;/div&gt;</p></blockquote>
<p>I also use the <strong>about</strong> attribute with the value <strong>#me</strong> which is a useful convention to easily enable people to create links to me, more on this later.</p>
<p>The FOAF Person object contains a lot of properties to describe you personally, what kinds of activities you are involved in and terms that create connections to sites or documents relating to you.</p>
<p>Now that my object is created I can start annotating the text with some of these terms, for example my name:</p>
<blockquote><p>&lt;div <strong>xmlns:foaf=&#8221;http://xmlns.com/foaf/0.1/&#8221; about=&#8221;#me&#8221;<br />
<span style="padding-left:30px;">typeof=&#8221;foaf:Person&#8221;</strong>&gt;</span><br />
<span style="padding-left:30px;">&lt;p&gt;Hello.&lt;/p&gt;</span><br />
<span style="padding-left:30px;">&lt;p&gt;My name is <strong>&lt;span property=&#8221;foaf:name&#8221;&gt;</strong>Marc Hibbins<strong>&lt;/span&gt;</strong>.&lt;/p&gt;</span><br />
<span style="padding-left:30px;">&#8230;</span><br />
&lt;/div&gt;</p></blockquote>
<p>And then some links, FOAF has terms for to define your blog and homepage URLs:</p>
<blockquote><p>&lt;a <strong>rel=&#8221;foaf:weblog&#8221;</strong> href=&#8221;http://blog.marchibbins.com/&#8221;&gt;My blog&lt;/a&gt;<br />
&lt;a <strong>rel=&#8221;foaf:homepage&#8221;</strong> href=&#8221;http://www.marchibbins.com&#8221;&gt;My site&lt;/a&gt;</p></blockquote>
<p>It&#8217;s also common to have an image, so likewise if I had I would attach the <strong>foaf:img</strong> term. The full A-Z index of terms can be found on the specification: <a title="FOAF Vocabulary Specification" href="http://xmlns.com/foaf/spec/" target="_blank">http://xmlns.com/foaf/spec/</a>.</p>
<p>FOAF allows you to connect to other online accounts that you own. Mark&#8217;s tutorial has the following example to attach his Twitter account to his person object:</p>
<blockquote><p>&lt;span <strong>rel=&#8221;foaf:holdsAccount&#8221;</strong>&gt;<br />
<span style="padding-left:30px;">&lt;span <strong>typeof=&#8221;foaf:OnlineAccount&#8221;</strong>&gt;</span><br />
<span style="padding-left:60px;">&lt;a <strong>rel=&#8221;foaf:accountServiceHomepage&#8221;</strong></span><br />
<span style="padding-left:80px;">href=&#8221;http://twitter.com/&#8221;&gt;Twitter&lt;/a&gt;</span><br />
<span style="padding-left:60px;">&lt;span <strong>property=&#8221;foaf:accountName&#8221;</strong> &gt;markbirbeck&lt;/span&gt;</span><br />
<span style="padding-left:30px;">&lt;/span&gt;</span><br />
&lt;/span&gt;</p></blockquote>
<p>The <strong>foaf:holdsAccount</strong> definition creates a relationship between the <strong>typeof=&#8221;foaf:Person&#8221;</strong> object and the <strong>typeof=&#8221;foaf:OnlineAccount&#8221;</strong> object that follows (the above mark-up would be contained within said Person object). Note the <strong>foaf:holdsAccount span</strong> allows for multiple <strong>foaf:OnlineAccount</strong> objects inside. The <strong>foaf:accountServiceHomepage</strong> term defines the service homepage, Twitter&#8217;s home page in this case and the <strong>foaf:accountName</strong> property declares Mark&#8217;s username.</p>
<p>As you&#8217;ll notice (as he does, too) although its machine-readable it isn&#8217;t particularly human-readable. Well it <em>is</em>, but it&#8217;s not all that nice. So instead he uses this formatting:</p>
<blockquote><p><strong>His inane comments are available on his</strong><br />
&lt;span rel=&#8221;foaf:holdsAccount&#8221;&gt;<br />
<span style="padding-left:30px;">&lt;span typeof=&#8221;foaf:OnlineAccount&#8221;&gt;</span><br />
<span style="padding-left:60px;">&lt;a rel=&#8221;foaf:accountServiceHomepage&#8221;</span><br />
<span style="padding-left:80px;">href=&#8221;http://twitter.com/&#8221;&gt;<strong>Twitter</strong>&lt;/a&gt;</span><br />
<span style="padding-left:60px;"><strong> account. His ID is &#8216;</strong></span><br />
<span style="padding-left:60px;">&lt;span property=&#8221;foaf:accountName&#8221;&gt;markbirbeck&lt;/span&gt;</span><br />
<span style="padding-left:60px;"><strong> &#8216;.</strong></span><br />
<span style="padding-left:30px;">&lt;/span&gt;</span><br />
&lt;/span&gt;</p></blockquote>
<p>This is better for human reading, though I still think a little convoluted. All I want is a single link, just like I already have. As I&#8217;ve said, RDFa should have no effect on my content &#8211; its workings should be hidden to the reader.</p>
<p>So in my mark-up, rather than the <strong>rel</strong> attribute on <strong>a</strong> tags and using in-line values (values found immediately between the <strong>a</strong> tags), I use the <strong>property</strong> and <strong>content</strong> attributes on <strong>spans</strong>:</p>
<blockquote><p>&lt;span rel=&#8221;foaf:holdsAccount&#8221;&gt;<br />
<span style="padding-left:30px;">&lt;span typeof=&#8221;foaf:OnlineAccount&#8221; <strong></span><br />
<span style="padding-left:70px;">property=&#8221;foaf:accountServiceHomepage&#8221;</span><br />
<span style="padding-left:70px;">content=&#8221;http://delicious.com/&#8221;</strong>&gt;</span><br />
<span style="padding-left:60px;">&lt;span <strong>property=&#8221;foaf:accountName&#8221; content=&#8221;marchibbins&#8221;</strong>&gt;</span><br />
<span style="padding-left:90px;">&lt;a href=&#8221;http://delicious.com/marchibbins&#8221;&gt;View my Delicious</span><br />
<span style="padding-left:110px;">bookmarks&lt;/a&gt; – most things are about the Semantic Web&#8230;</span><br />
<span style="padding-left:60px;">&lt;/span&gt;</span><br />
<span style="padding-left:30px;">&lt;/span&gt;</span><br />
&lt;/span&gt;</p></blockquote>
<p>This allows me to keep my existing prose and is still machine-accessible.</p>
<p>I mentioned being able to connect to other people&#8217;s FOAF profiles, this is done by attaching the <strong>foaf:knows</strong> term to a link to someone&#8217;s similar such page:</p>
<blockquote><p>&lt;a <strong>rel=&#8221;foaf:knows&#8221;</strong> href=&#8221;http://www.w3.org/People/Ivan/<strong>#me</strong>&#8220;&gt;Ivan Herman&lt;/a&gt;</p></blockquote>
<p>Note here that Ivan Herman has employed the <strong>#me</strong> mechanism in his FOAF URI to connect directly to his profile information, rather than to the whole page which contains that information.</p>
<p>I&#8217;ve decided not to connect to friends or colleagues here in this way, again it wasn&#8217;t in my original content and also I use a similar technology instead, called XFN, in the footer of my blog pages. <a title="XFN: Introduction and Examples" href="http://gmpg.org/xfn/intro" target="_blank">XFN</a> deserves a blog post to itself (that hopefully I&#8217;ll get time for), have a look a the source and you&#8217;ll see similar <strong>rel</strong> attributes there for now.</p>
<h3><a name="My_FOAF_profile" class="anchor">My FOAF profile</a></h3>
<p>So here it is, abridged but with all the RDFa shown:</p>
<blockquote><p>&lt;div <strong>xmlns:foaf=&#8221;http://xmlns.com/foaf/0.1/&#8221; about=&#8221;#me&#8221;</span><br />
<span style="padding-left:15px;">typeof=&#8221;foaf:Person&#8221;</strong>&gt;</span></p>
<p><span style="padding-left:15px;">&lt;p&gt;Hello.&lt;/p&gt;</span><br />
<span style="padding-left:15px;">&lt;p&gt;My name is &lt;span <strong>property=&#8221;foaf:name&#8221;</strong>&gt;Marc Hibbins&lt;/span&gt;.&lt;/p&gt;</span><br />
<span style="padding-left:15px;">&lt;p&gt;I&#8217;m an interactive and digital media developer, I build Web applications and</span><br />
<span style="padding-left:40px;">RIAs primarily with tools like Flash, Flex and AIR.&lt;/p&gt;</span></p>
<p><span style="padding-left:15px;">&lt;p&gt;</span><br />
<span style="padding-left:30px;">&lt;span <strong>rel=&#8221;foaf:holdsAccount&#8221;</strong>&gt;</span><br />
<span style="padding-left:60px;">&lt;span <strong>typeof=&#8221;foaf:OnlineAccount&#8221;</span><br />
<span style="padding-left:100px;">property=&#8221;foaf:accountServiceHomepage&#8221;</span><br />
<span style="padding-left:100px;">content=&#8221;http://delicious.com/&#8221;</strong>&gt;</span><br />
<span style="padding-left:90px;">&lt;span <strong>property=&#8221;foaf:accountName&#8221;</span><br />
<span style="padding-left:130px;">content=&#8221;marchibbins&#8221;</strong>&gt;</span><br />
<span style="padding-left:120px;">&lt;a href=&#8221;http://delicious.com/marchibbins&#8221;&gt;View my Delicious</span><br />
<span style="padding-left:140px;">bookmarks&lt;/a&gt; &#8211; most things are about the Semantic Web,</span><br />
<span style="padding-left:140px;">gathered as dissertation research&#8230;</span><br />
<span style="padding-left:90px;">&lt;/span&gt;</span><br />
<span style="padding-left:60px;">&lt;/span&gt;</span><br />
<span style="padding-left:30px;">&lt;/span&gt;</span><br />
<span style="padding-left:15px;">&lt;/p&gt;</span></p>
<p><span style="padding-left:15px;">&lt;p&gt;</span><br />
<span style="padding-left:30px;">&lt;span <strong>rel=&#8221;foaf:holdsAccount&#8221;</strong>&gt;</span><br />
<span style="padding-left:60px;">&lt;span <strong>typeof=&#8221;foaf:OnlineAccount&#8221;</span><br />
<span style="padding-left:100px;">property=&#8221;foaf:accountServiceHomepage&#8221;</span><br />
<span style="padding-left:100px;">content=&#8221;http://friendfeed.com/&#8221;</strong>&gt;</span><br />
<span style="padding-left:90px;">&lt;span <strong>property=&#8221;foaf:accountName&#8221; content=&#8221;hibbins&#8221;</strong>&gt;</span><br />
<span style="padding-left:120px;">I use &lt;a href=&#8221;http://friendfeed.com/hibbins&#8221;&gt;FriendFeed&lt;/a&gt;</span><br />
<span style="padding-left:90px;">&lt;/span&gt;</span><br />
<span style="padding-left:60px;">&lt;/span&gt;,</span></p>
<p><span style="padding-left:60px;">&lt;span <strong>typeof=&#8221;foaf:OnlineAccount&#8221;</span><br />
<span style="padding-left:100px;">property=&#8221;foaf:accountServiceHomepage&#8221;</span><br />
<span style="padding-left:100px;">content=&#8221;http://twitter.com/&#8221;</strong>&gt;</span><br />
<span style="padding-left:90px;">&lt;span <strong>property=&#8221;foaf:accountName&#8221;</span><br />
<span style="padding-left:130px;">content=&#8221;marchibbins&#8221;</strong>&gt;</span><br />
<span style="padding-left:120px;">&lt;a href=&#8221;http://twitter.com/marchibbins&#8221;&gt;Twitter&lt;/a&gt;</span><br />
<span style="padding-left:90px;">&lt;/span&gt;</span><br />
<span style="padding-left:60px;">&lt;/span&gt; and</span></p>
<p><span style="padding-left:60px;">&lt;span <strong>typeof=&#8221;foaf:OnlineAccount&#8221;</span><br />
<span style="padding-left:100px;">property=&#8221;foaf:accountServiceHomepage&#8221;</span><br />
<span style="padding-left:100px;">content=&#8221;http://last.fm/&#8221;</strong>&gt;</span><br />
<span style="padding-left:90px;">&lt;span <strong>property=&#8221;foaf:accountName&#8221;</span><br />
<span style="padding-left:130px;">content=&#8221;marchibbins&#8221;</strong>&gt;</span><br />
<span style="padding-left:120px;">&lt;a href=&#8221;http://www.last.fm/user/marchibbins&#8221;&gt;Last.fm&lt;/a&gt;</span><br />
<span style="padding-left:90px;">&lt;/span&gt;</span><br />
<span style="padding-left:60px;">&lt;/span&gt; etc etc..</span><br />
<span style="padding-left:30px;">&lt;/span&gt;</span><br />
<span style="padding-left:15px;">&lt;/p&gt;</span></p>
<p><span style="padding-left:15px;">&lt;p&gt;</span><br />
<span style="padding-left:30px;">&lt;a <strong>rel=&#8221;foaf:homepage&#8221;</strong></span><br />
<span style="padding-left:50px;">href=&#8221;http://www.marchibbins.com&#8221;&gt;www.marchibbins.com&lt;/a&gt;</span><br />
<span style="padding-left:15px;">&lt;/p&gt;</span><br />
&lt;/div&gt;</p></blockquote>
<p>Notice that I&#8217;m actually using two <strong>foaf:holdsAccount</strong> blocks &#8211; you can, of course, contain all <strong>foaf:OnlineAccount</strong> objects within a single relation, but it seems that Wordpress won&#8217;t allow me to do so. When I hit return to start a new paragraph it automatically closes the wrapping <strong>span</strong> and <strong>p</strong> and starts a new paragraph &#8211; so I&#8217;ve had to use two. Otherwise the <strong>p</strong> tags would be inside the <strong>span</strong> (rather than the other way round) but again, the MCE doesn&#8217;t show <strong>p</strong> tags in order for me to edit them in that way.</p>
<p>Similarly, Wordpress will wipe clean all your <strong>span</strong> tags if you switch from HTML to Visual mode &#8211; so watch out for that. It also doesn&#8217;t output nice, clean indented HTML in the final page, which is a shame.</p>
<p><a title="» About Marc Hibbins" href="http://blog.marchibbins.com/about/" target="_blank">Find the full version here</a>.</p>
<h3><a name="Validating_RDFa" class="anchor">Validating RDFa</a></h3>
<p>How do you know that any of your metadata is correct &#8211; that it is machine-readable?</p>
<p>I took Mark Birbeck&#8217;s recommendation and used the <a title="Install the Ubiquity RDFa checker" href="http://ubiquity-rdfa.googlecode.com/svn/trunk/install-checker.html" target="_blank">Ubiquity parser bookmarklet</a> to validate my RDFa. Simply publish your mark-up and hit the button and you&#8217;ll see what an RDFa parser sees.</p>
<p>Hopefully it is in fact all correct. I wasn&#8217;t too sure if multiple <strong>foaf:holdsAccount</strong> blocks would be acceptable, but the Ubiquity parser shows the same results nethertheless &#8211; likewise with my use of <strong>property</strong> and <strong>content spans</strong> over <strong>rel</strong> attributes. That said, if anyone has opinions otherwise &#8211; let me know!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.marchibbins.com/2009/07/29/youve-got-a-friend-in-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maps</title>
		<link>http://blog.marchibbins.com/2009/04/29/maps/</link>
		<comments>http://blog.marchibbins.com/2009/04/29/maps/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 14:22:34 +0000</pubDate>
		<dc:creator>Marc Hibbins</dc:creator>
				<category><![CDATA[blogging]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.marchibbins.com/?p=572</guid>
		<description><![CDATA[Since upgrading my blog from Wordpress.com to a hosted Wordpress.org installation, I'm only now realising how good Wordpress is and how simple they've made the migration possible.]]></description>
			<content:encoded><![CDATA[<p>Since upgrading my blog from Wordpress.com to a hosted Wordpress.org installation, I&#8217;m only now realising how good Wordpress is and how simple they&#8217;ve made the migration possible.</p>
<p>The free blogs are great for getting started &#8211; and that&#8217;s not to say only for &#8216;getting started&#8217;, I used their solution for two years without a single problem. I upgraded to have more control, with regards to embedding media, handling uploaded files and because I&#8217;m keen to get something on my <a title="Marc Hibbins" href="http://www.marchibbins.com">http://www.marchibbins.com/</a> domain soon &#8211; previously it redirected to my Wordpress.com by web forwarding.</p>
<p>I obtained my hosting from <a title="WebFaction, agile hosting for everyone" href="http://www.webfaction.com/" target="_blank">WebFaction</a> and without too much of a sell, they&#8217;re pretty awesome. They offer an unlimited number of sites, databases and email accounts, SSL support, SFTP, SSH and <em>full shell access</em> &#8211; you can literally install <em>any </em>applications you want on there.</p>
<p>As well as that they have a good number of applications ready to go via their control panel. One of these is Wordpress.</p>
<p>I didn&#8217;t want to start this new blog from scratch and I didn&#8217;t want posts duplicated on the new domain and still existing on my free blog &#8211; this is a bad thing. I also didn&#8217;t want to delete the old posts and leave an &#8216;I have moved&#8217; notice, because I&#8217;m aware of incoming links that would return HTTP 404 (file not found) errors. I wanted to keep all of my posts, preferably hosted now on my new hosting, maintain the old links even though the web address would be different &#8211; and do all of this seamlessly so no-one would really realise. My solution was in two parts.</p>
<h3><a name="Domain_Mapping" class="anchor">Domain Mapping</a></h3>
<p>One of the great things Wordpress offer is Domain Mapping, which basically means your blog can be at Wordpress.com but it looks like it is somewhere else &#8211; on another domain (<a title="Domain Mapping - Support - WordPress.com" href="http://support.wordpress.com/domain-mapping/" target="_blank">support page here</a>). It&#8217;s a paid upgrade and requires you having a domain registered first, of course.</p>
<p>It makes use of the &#8216;Domains&#8217; feature, you can access it from the Dashboard, which can be set to forward all requests to your blog to the equivalent URLs on a new domain. For example, visitors to <a href="#">http://yourname.wordpress.com/about/</a> would be automatically redirected to <a href="#">http://yourname.com/about/</a>, same as visiting <a href="#">http://yourname.wordpress.com/2009/04/29/post</a> would take you to <a href="#">http://yourname.com/2009/04/29/post</a>.</p>
<p>To do this (as the support guides you) you need to first update the nameservers with your domain registrar, which means the domain name will point to Wordpress&#8217; nameservers instead of theirs. The Wordpress nameservers are as follows:</p>
<blockquote><p>ns1.wordpress.com<br />
ns2.wordpress.com<br />
ns3.wordpress.com</p></blockquote>
<p>And the if the registrar needs the IP addresses:</p>
<blockquote><p>72.232.101.25<br />
76.74.159.137<br />
64.34.177.159</p></blockquote>
<p>Changing the DNS settings can take up to 72 hours to propagate, so don&#8217;t expect to see results immediately &#8211; but it&#8217;s often less.</p>
<p>Once this is done, you should be seeing Wordpress.com at your domain name. Then in the Domains section of your blog Dashboard (under Settings), add your new domain. Here you will be asked to purchase the Domain Mapping upgrade here if you haven&#8217;t already. Then set that new domain as your primary URL and from then on, all requests should be forwarded!</p>
<h3><a name="Subdomains" class="anchor">Subdomains</a></h3>
<p>For my blog though, I wanted to map to a subdomain, specifically <a title="Marc Hibbins" href="http://blog.marchibbins.com/ ">http://blog.marchibbins.com/</a> rather than the <a title="Marc Hibbins" href="http://blog.marchibbins.com/ ">http://marchibbins.com/</a> top-level domain. To do this you don&#8217;t change nameservers, instead add a DNS <strong>CNAME</strong> at your DNS provider (this is on <a title="Domain Mapping &amp;laquo; Support &amp;laquo; WordPress.com" href="http://support.wordpress.com/domain-mapping/" target="_blank">the support page</a>, too).</p>
<p>Doing this manually will look something like this:</p>
<blockquote><p>subdomain.yourname.com. IN CNAME yourname.wordpress.com.</p></blockquote>
<p>In my case, I implemented a DNS override with my WebFaction hosting (a feature that they offer) and after 24 hours I could see Wordpress.com, so upgraded and added my domain name in the same way. That&#8217;s the first part &#8211; and this meant any old links (and links within posts to other posts) would be still find their destination.</p>
<h3><a name="Switching_to_Wordpress.org" class="anchor">Switching to Wordpress.org</a></h3>
<p>As I said though, this simply forwards your free Wordpress.com to your new domain. This doesn&#8217;t even require any hosting, just a domain registration. But I wanted the features and control that Wordpress.org offers.</p>
<p>Now that the domain mapping was in place, I removed the DNS override, meaning that the &#8216;blog.&#8217; subdomain no longer pointed to Word press. Instead, I installed the full version of Wordpress 2.7.1 there.</p>
<p>Then I exported all my blog posts, comments, categories, authors &#8211; everything &#8211; from my old blog (this is done through the Dashboard with a single XML file) and imported it into my new blog. I also found my old theme and updated all my links etc &#8211; basically rebuilt my old blog on the new platform. This is super-easy and easily accomplished before the DNS has updated.</p>
<p>This means that all requests are still forwarded as before, but instead land at my newly installed Wordpress.org blog and the relevant post there!</p>
<p>Doing this does have some dependencies &#8211; the posts need to have been imported, they cannot be republished, because this would give them new unique identifiers and the forwarding wouldn&#8217;t find them as a result.</p>
<p>Similarly, the the structure of your permalinks must be consistent &#8211; requests are forwarded without regard for what is at the destination, the URL string is appended verbatim. This means if you used something like <a href="#">http://yourname.wordpress.com/2009/04/29/post</a> you can&#8217;t then use <a href="#">http://yourname.com/?p=50</a>.</p>
<p>It also means the previous blog is now hidden, done and dusted.</p>
<p>New comments to your new domain won&#8217;t be added to your old blog, though that shouldn&#8217;t really matter as it&#8217;s inaccessible now &#8211; so the posts aren&#8217;t ever seen to be &#8216;out-of-date&#8217;. The stats will also cease, as no-one is visiting <em>that </em>blog anymore, they&#8217;re visiting the Wordpress.org installation &#8211; so install a stats package there!</p>
<p>Another handy outcome of the mapping means that RSS subscribers should still receive updates. Even though the Wordpress.com blog feed is no longer being updated, the request for <a href="#">http://yourname.wordpress.com/feed/</a> is forwarded to your new blog&#8217;s feed &#8211; and that&#8217;s how they&#8217;ll be seeing updates, hopefully including this post!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.marchibbins.com/2009/04/29/maps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Movin&#8217; on Up</title>
		<link>http://blog.marchibbins.com/2009/04/27/movin-on-up/</link>
		<comments>http://blog.marchibbins.com/2009/04/27/movin-on-up/#comments</comments>
		<pubDate>Mon, 27 Apr 2009 21:03:36 +0000</pubDate>
		<dc:creator>Marc Hibbins</dc:creator>
				<category><![CDATA[blogging]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://blog.marchibbins.com/?p=568</guid>
		<description><![CDATA[I have now upgraded and moved my blog from <a title="Marc Hibbins" href="http://hibbins.wordpress.com/">http://hibbins.wordpress.com/</a> to <a title="Marc Hibbins" href="http://blog.marchibbins.com/">http://blog.marchibbins.com/</a>.]]></description>
			<content:encoded><![CDATA[<p>I have now upgraded and moved my blog from <a title="Marc Hibbins" href="http://hibbins.wordpress.com/">http://hibbins.wordpress.com/</a> to <a title="Marc Hibbins" href="http://blog.marchibbins.com/">http://blog.marchibbins.com/</a>.</p>
<p>As far as I&#8217;m aware, I&#8217;ve successfully mapped my Wordpress.com blog to my new domain. This means that any visits to my old blog will redirect you to my new domain automatically. This also means that any linking to those old posts, any bookmarks and (hopefully) RSS subscriptions should all still be OK &#8211; they too should ultimately get to their intended destinations.</p>
<p>Having said that, I&#8217;m not sure if all RSS readers will be happy with it, so if you do subscribe please update the feed to <a title="Marc Hibbins - RSS feed" href="http://blog.marchibbins.com/feed/" target="_blank">http://blog.marchibbins.com/feed/</a>.</p>
<p>See you there!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.marchibbins.com/2009/04/27/movin-on-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
