<?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"
	>

<channel>
	<title>RenaissanceCMS</title>
	<atom:link href="http://blog.renaissancecms.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.renaissancecms.com</link>
	<description>A lightweight, flexible Content Management System</description>
	<pubDate>Thu, 27 Aug 2009 22:20:45 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>en</language>
			<item>
		<title>Why bother with information architecture?</title>
		<link>http://blog.renaissancecms.com/2009/08/why-bother-with-information-architecture/</link>
		<comments>http://blog.renaissancecms.com/2009/08/why-bother-with-information-architecture/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 09:00:22 +0000</pubDate>
		<dc:creator>Rob Chant</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Information architecture]]></category>

		<category><![CDATA[rambling]]></category>

		<category><![CDATA[structure]]></category>

		<guid isPermaLink="false">http://blog.renaissancecms.com/?p=117</guid>
		<description><![CDATA[ I&#8217;m pleased to announce our first guest post, by  Fran Alexander, taxonomist extraordinaire and writer of the excellent taxonomy and information architecture blog VocabControl. So please read on to discover why you really do need to care about IA.



“It’s so boring – nobody cares how a site is structured, they just do a [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal"><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--  /* Font Definitions */  @font-face 	{font-family:SimSun; 	panose-1:2 1 6 0 3 1 1 1 1 1; 	mso-font-alt:宋体; 	mso-font-charset:134; 	mso-generic-font-family:auto; 	mso-font-pitch:variable; 	mso-font-signature:3 135135232 16 0 262145 0;} @font-face 	{font-family:"\@SimSun"; 	panose-1:2 1 6 0 3 1 1 1 1 1; 	mso-font-charset:134; 	mso-generic-font-family:auto; 	mso-font-pitch:variable; 	mso-font-signature:3 135135232 16 0 262145 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:""; 	margin:0cm; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman"; 	mso-fareast-font-family:SimSun; 	mso-fareast-language:ZH-CN;} a:link, span.MsoHyperlink 	{color:blue; 	text-decoration:underline; 	text-underline:single;} a:visited, span.MsoHyperlinkFollowed 	{color:purple; 	text-decoration:underline; 	text-underline:single;} @page Section1 	{size:612.0pt 792.0pt; 	margin:72.0pt 90.0pt 72.0pt 90.0pt; 	mso-header-margin:36.0pt; 	mso-footer-margin:36.0pt; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --><!--[if gte mso 10]> <mce:style><!   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Table Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin:0cm; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman";} --> <!--[endif]-->I&#8217;m pleased to announce our first guest post, by  Fran Alexander, taxonomist extraordinaire and writer of the excellent taxonomy and <a title="WikiPedia" href="http://en.wikipedia.org/wiki/Information_architecture" onclick="javascript:pageTracker._trackPageview('/outbound/article/en.wikipedia.org');" target="_blank">information architecture</a> blog <a title="VocabControl" href="http://www.vocabcontrol.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.vocabcontrol.com');" target="_blank">VocabControl</a>. So please read on to discover why you really do need to care about <acronym title="Information Architecture">IA</acronym>.</p>
<p class="MsoNormal">
<p class="MsoNormal"><span id="more-117"></span></p>
<p class="MsoNormal">
<p class="MsoNormal"><em>“It’s so boring – nobody cares how a site is structured, they just do a search.”</em></p>
<p class="MsoNormal"><em>“Information Architects (IAs) just want all sites to look the same.”</em></p>
<p class="MsoNormal"><em>“No two people understand a website in the same way, so you can’t set up a site to suit everybody anyway.”</em></p>
<p class="MsoNormal"><em>“People want to personalise websites now anyway, so there’s no point in having a site structure.”</em></p>
<p class="MsoNormal">
<p class="MsoNormal">These are just a few of the things people have said to me recently about information architecture, prompting me to leap to its defence.</p>
<p class="MsoNormal">
<p class="MsoNormal">
<h3 class="MsoNormal">Nobody cares<em></em></h3>
<p class="MsoNormal">Information architecture is the underlying structure of your website.<span> </span>It is a bit like the foundations of a house.<span> </span>Nobody wants to see them or know that they are there, but if they are not strong enough in all the right places, cracks will start to appear.<span> </span></p>
<p class="MsoNormal">
<p class="MsoNormal">The information architecture of a website includes things like how the site is divided up, what pathways users can follow to move around the site, what they need to see to use the site and what they only need to see if they are interested in a specific thing, where new content will appear, and what will happen to the old content.<span> </span>The bigger and more complicated a site is, the more important it is to get the information architecture right.</p>
<p class="MsoNormal">
<p class="MsoNormal">People only want a certain amount of information on each web page, so for sites with huge amounts of information (like transport planners) presenting the information in logical chunks, in the order that people need it, really helps.<span> </span>For sites with complicated functions – like playing a game – making sure people can move in and out of the function, ending up somewhere useful, is important to keep them on the site.</p>
<p class="MsoNormal">
<p class="MsoNormal">Even for very small sites with fairly limited content, making sure it is organised so people can see what is available quickly means they are more likely to find what they want rather than give up.<span> </span>You may only have four pages, but calling them Squiggles, 10 Things, Barry’s Page, and More Things is amusing, but it doesn’t really tell anyone what to expect, which is usually not good if your site is your online portfolio or CV, or you are trying to sell anything.<span> </span>If you are going to be deliberately obscure, you will need excellent real-world marketing!</p>
<p class="MsoNormal">
<p class="MsoNormal">
<h3 class="MsoNormal">IAs just want all sites to look the same<em></em></h3>
<p class="MsoNormal">People who say this are usually referring to a personality clash between a particular designer and a particular IA.<span> </span>Good information architecture and exciting design should support each other.<span> </span></p>
<p class="MsoNormal">
<p class="MsoNormal">Graphic designers are often naturally non-verbal people – it’s kind of obvious – that’s why they are good at the visual stuff and wanted to be designers in the first place, but it means they can fail to appreciate how much verbal people really need those word cues to help them. <span> </span>Conversely, verbal people tend to forget how much they actually rely on non-verbal cues to support memory and navigation.<span> </span>Some people excel at design and at IA, but many specialise in one rather than the other.<span> </span></p>
<p class="MsoNormal">
<p class="MsoNormal">A good information architect will want to work with designers to make sure that the site structure they are building will be presented attractively and be interesting and good designers will appreciate that they are creating a site that people need to be able to use easily, so design and IA should work together not against each other.<span> </span>A site that looks good at first but is frustrating and difficult to use will soon start to appear annoying to the user.</p>
<p class="MsoNormal">
<p class="MsoNormal">
<h3 class="MsoNormal">People just search<em></em></h3>
<p class="MsoNormal">It is true that you should have a good search function if your site is more than a few pages long or holds more than a few pieces of content, but people are very bad at constructing searches, especially if they don’t already know what is on your site.<span> </span>What happens if the search results don’t bring up what they want?<span> </span>Have you given them another way of finding their way around, or are you happy for them just to give up?<span> </span>Many people will try a mixed approach – a bit of browsing around and a bit of search, so a good navigation system is important, and that is part of the site’s information architecture.</p>
<p class="MsoNormal">
<p class="MsoNormal">Even if you rely on search, providing results related to a sensible site structure will help people to work out whether the reference to “mouse” is about computer peripherals or small rodents.<span> </span>Seeing where in the site the search results come from gives people more context to help them understand which of the results is most likely to be the one they want.</p>
<p class="MsoNormal">
<p class="MsoNormal">
<h3 class="MsoNormal">No two people understand a site in the same way<em></em></h3>
<p class="MsoNormal">Everybody is different, but lots of us are not all that different, and people will adapt themselves to a group view.<span> </span>We do this all the time – when driving on roads, watching TV, walking in the park – none of these things provide me with a personally tailored experience, but neither do they leave me totally at a loss. <span> </span>However, when I go to an unfamiliar country, I will almost certainly need some help.<span> </span>Many visitors to your site will not need any extra help but some will.<span> </span>So good IA can make sure there are options aimed at different people and good IA becomes more, not less important, the more of a personal experience you wish to provide. <span> </span>A personalisable site is more complicated to use as it has to incorporate the personalisation options, and many people won’t want to bother, so the site needs to work whether it has been customised or not.<span> </span>You also need to make sure that all the elements will continue to interact with each other in a sensible and pleasing way and that the whole thing is robust enough for people to be able to do what they want without breaking it.</p>
<p class="MsoNormal"><em> </em></p>
<p class="MsoNormal">
<h3 class="MsoNormal">People just want to add more stuff<em></em></h3>
<p class="MsoNormal">For sites where user-generated content is important, it is true, people want to be able to add things easily and without really thinking about what they are doing, but this means you need to have done the thinking for them in advance <span> </span>– by sorting out strong IA.<span> </span>Already there are lots of web 2.0 conventions – blogs displaying in reverse chronological order, with the most recent post first, for example – but that might not be the best way for your site.<span> </span>You need to think about what happen to old content. Does anyone ever need to find it again, if so how are they going to do that? Are you going to make users tag things when they upload them o r save them into folders, or is all that going to be optional or automatic? You could automatically sort out content into different types or by date uploaded, for example.<span> </span>Information architecture is all about making sure you have the answers to these questions before you spend time, money, or effort perfecting your code.</p>
<p class="MsoNormal">
<p class="MsoNormal">
<h3 class="MsoNormal">Convinced?<em></em></h3>
<p class="MsoNormal">Information architecture is changing all the time as technology develops, but it is all about thinking through what you want to do with your site and setting it up to do that right from the start.<span> </span></p>
<p class="MsoNormal">
<p class="MsoNormal">Good information architects will be able to advise on things like taxonomy – the headings and subheadings you use – usability – so people don&#8217;t get stuck, and accessibility – <span> </span>so you don’t discriminate against people (or break the law).<span> </span>Search engine optimisation and marketing are aspects of information architecture that are important commercially.<span> </span>Affective interaction – how people feel when they use your site –<span> </span>managing social media and online communities, and exploiting the semantic web are other increasingly important issues.<span> </span></p>
<p class="MsoNormal"><em> </em></p>
<p class="MsoNormal">The early information architects had far fewer options and tools at their disposal, so many of the older textbooks are getting a bit dated, but the fundamental principles remain the same.<span> </span>If you sort out what it is you want to do and get that right from the start, you will be building your site on solid foundations.<span> </span>You don’t want to knock down your house once it has been built, just to sort out a bit of missing concrete in the foundations, and you don’t want to have to recode big chunks of your site, in a hurry just after you&#8217;ve launched, because you’ve suddenly realised your users can’t get where they want to go or do what they want to do.</p>
<p class="MsoNormal">
<h3 class="MsoNormal">Still not convinced?<em></em></h3>
<p class="MsoNormal">Listen to this excellent and entertaining podcast:</p>
<p class="MsoNormal"><a href="http://www.boxesandarrows.com/view/ia-summit-09-keynote" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.boxesandarrows.com');" target="_blank">http://www.boxesandarrows.com/view/ia-summit-09-keynote</a></p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.renaissancecms.com/2009/08/why-bother-with-information-architecture/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Tag types</title>
		<link>http://blog.renaissancecms.com/2009/08/tag-types/</link>
		<comments>http://blog.renaissancecms.com/2009/08/tag-types/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 09:00:23 +0000</pubDate>
		<dc:creator>Rob Chant</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[Information architecture]]></category>

		<category><![CDATA[structure]]></category>

		<category><![CDATA[tags]]></category>

		<category><![CDATA[user experience]]></category>

		<guid isPermaLink="false">http://blog.renaissancecms.com/?p=115</guid>
		<description><![CDATA[I&#8217;ve been thinking about information architecture a lot recently, in terms of how important it is for web sites (even simple web sites), what IA features a CMS can and should offer. Web design has gone through several major iterations over the last 15 years, each of these adding a new layer of sophistication, or, [...]


No related posts.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been thinking about information architecture a lot recently, in terms of how important it is for web sites (even simple web sites), what <acronym title="Information Architecture">IA</acronym> features a CMS can and should offer. Web design has gone through several major iterations over the last 15 years, each of these adding a new layer of sophistication, or, at least, as new aspect of endeavour, as technology, budgets and, most importantly, expectations, from both users and clients, increase. IA has always something that has sat at the fringe of most web design projects (moving closer to the centre the bigger the project, obviously), but it is my opinion that it could be something that takes a much more central rôle in the next big iteration of the web.</p>
<p>But I&#8217;m not planning on talking in detail about IA today (although I am planning a series of posts). Today, we&#8217;re talking tags.</p>
<p><span id="more-115"></span></p>
<h3>What&#8217;s it all about?</h3>
<p>With any luck, the connection between tags and IA is obvious. I&#8217;m not 100% sure when tags were first introduced and became popular on web sites, but I&#8217;m guessing it was around five or six years ago. After an explosion of popularity, especially associated with social media and <acronym title="User Generated Content">UGC</acronym>, enthusiasm seems to have waned somewhat, although I know you still see tagging around a lot (hey, I&#8217;ve even got a tag cloud on my sidebar at the moment!)</p>
<h3>So what happened?</h3>
<p>Don&#8217;t get me wrong—I&#8217;m sure tags are here to stay. I think the main thing that&#8217;s changed is that site owners, developers and designers are now a lot more realistic about their promise. Tags (especially user generated tags, known in IA circles as &#8216;folksonomies&#8217;, i.e. crowd sourced taxonomies), are clearly not the be all and end all of organising large amount of information*, for a whole bunch of reasons.</p>
<p>I think there&#8217;s a general idea floating around that collectively, people will always come up with the best, most optimal solutions possible. Nothing could be further from the truth**. Although individuals may not behave this way, large groups tend to produce bland results, without much in the way of real insight or depth. This is reflected in crowd sourced tags, often in the form of a classic long tail—massive weighting on very broad, fairly meaningless tags, followed by a huge long tail of tags far too specific to be useful in most situations. People also often use the same tag to mean different things (such is most language) or describe the same things with completely different tags. So you end up with a bit of a mess.</p>
<h3>However, all is not lost&#8230;</h3>
<p>I don&#8217;t think tags are a write off at all. As is, they remain useful in certain areas, such as***,</p>
<ul>
<li>reinforcing search and indexation (especially image search)</li>
<li>displaying related content (à la many blogs or <a href="http://last.fm" onclick="javascript:pageTracker._trackPageview('/outbound/article/last.fm');" target="_blank">last.fm</a>&#8217;s music streaming service)</li>
<li>giving a quick overview of a site&#8217;s topical content (with a tag cloud)</li>
</ul>
<p>However, as an efficient, meaningful way of organising content, I think they are pretty much broken. But we can change that!</p>
<h3>Strategies for change</h3>
<p>The one that springs to mind first is administrator moderation. I think that&#8217;s useful, but not particular interesting (and for large, crowd sourced tag systems, not very practical). What I&#8217;m much more interested in is the idea of having different <strong>types</strong> of tag, making not all tags created equal after all. A simple idea, but probably quite powerful, I think (maybe it has already been tested, I don&#8217;t know).</p>
<p>There are a whole bunch of different ways you could differentiate tags in a system. The simplest would be to distinguish between tags entered by administrators and users (and possibly between different levels of user, if you have them). But there would be no need to stop there. You could make distinctions based on,</p>
<ul>
<li>tag length</li>
<li>number of words or tokens (if you allow them)</li>
<li>the presence of certain words</li>
<li>correct spelling or obvious shorthand</li>
<li>the presence of punctuation</li>
<li>the number of similar tags already in the system (this could act as a direct or reverse correlation)</li>
<li>how many times a given user has already entered that tag</li>
<li>etc.</li>
</ul>
<p>The next question would be what you actually do with these distinctions when you have them. I guess what we are trying to do here is create some kind of score of usefulness for a particular tag, but that in itself is not useful unless we put it to use somehow. Again, something obvious would be to weight tags differently according to their score when they are used in search or picking out relevant content. Any thoughts on any other uses?</p>
<h3>Summing up</h3>
<p>I should be clear—although it may not have been apparent earlier in this post, I am a great fan of tag systems, especially crowd sourced systems, and I believe that they have a great potential (both for making the life of the  information architect simpler and in offering a more useful experience to the user). I&#8217;m excited about this idea of scoring tags or creating types of tag, as I think it could help that potential become more of a reality.</p>
<p><em>Renaissance</em> already has a tag system, based on simple tags, and can produce all the usual things to do with it (tag clouds, etc.) I hope to start to develop these news ideas with it soon, however&#8230; and we&#8217;ll see what happens.</p>
<p>[Don't forgot to tune in next week for the first guest post on this blog. <a title="email" href="mail:fran@vocabcontrol.com">Fran Alexander</a>, taxonomist extraordinaire and writer of the excellent taxonomy and <a title="WikiPedia" href="http://en.wikipedia.org/wiki/Information_architecture" onclick="javascript:pageTracker._trackPageview('/outbound/article/en.wikipedia.org');" target="_blank">information architecture</a> blog <a title="VocabControl" href="http://www.vocabcontrol.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.vocabcontrol.com');" target="_blank">VocabControl</a>, will be waxing lyrical about IA.]</p>
<hr style="border: 1px solid #cccccc; height: 1px; width: 100%; color: #ffffff;" size="1" noshade="noshade" /><span style="color: #999999;">* Okay, maybe nobody really thought that in the first place, but I think there was a definite leaning in that direction.</span></p>
<p><span style="color: #999999;">** Yes, specific, well chosen groups of people can achieve amazing results working together—but not the mob.</span></p>
<p><span style="color: #999999;">*** I&#8217;m sure there are many others—comments please!</span></p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.renaissancecms.com/2009/08/tag-types/feed/</wfw:commentRss>
		</item>
		<item>
		<title>August update</title>
		<link>http://blog.renaissancecms.com/2009/08/august-update/</link>
		<comments>http://blog.renaissancecms.com/2009/08/august-update/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 09:00:21 +0000</pubDate>
		<dc:creator>Rob Chant</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[update]]></category>

		<guid isPermaLink="false">http://blog.renaissancecms.com/?p=116</guid>
		<description><![CDATA[On what I've been doing with Renaissance recently.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>Well, it&#8217;s been a while since I&#8217;ve updated. No excuses, just the usual problem a lot of people seem to have with keeping up with regular blogging. I&#8217;ve been busy (our <a title="db|practice" href="http://www.dbpractice.com" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.dbpractice.com');" target="_blank">SEO business</a> is really booming at the moment), but definitely not so busy that I couldn&#8217;t post. So <em>mea culpa</em>.</p>
<p>Anyway, I thought I&#8217;d kick the blogging off again with a quick update on <em>Renaissance</em>. I&#8217;ve not had a huge amount of time to work on it (for real this time!), but there has been some progress.</p>
<p><span id="more-116"></span></p>
<p>The biggest piece of work I&#8217;ve done (shock, horror) is finally, <em>finally</em>, <strong><em>finally</em></strong> to have upgraded it to run on PHP 5. Yes, I know I should have done this a long, long time ago, but, well, I didn&#8217;t (there was actually a good reason a while back). So, that&#8217;s done. There were numerous interesting and frustrating gotchas with the conversion, well over and above the documented changes with the OO syntax, etc. I&#8217;m still working through some of those kinks, in fact.</p>
<p>This change  prompted me to remove the very last vestiges of multiple inheritance from the system (yes, I know they should never have been there in the first place). I&#8217;ve also upgraded the database access layer to work with MySQLi (falling back to the plain MySQL interface if it can&#8217;t find MySQLi), although I&#8217;ve not taken advantage of any of its features yet.</p>
<p>The other big change that&#8217;s under way is a big re-working of the structure of <em>Renaissance&#8217;s</em> database. This is a <strong>very</strong> big change that came to me in a flash not so long ago—I realised that what I had been doing was actually quite inefficient, but this change will make things a fair bit quicker, with less hits on the database per un-cached page load and less general processing. It will also make some future developments easier to implement. So I&#8217;m pretty pleased with that, although there&#8217;s a long way to go before it&#8217;s all working properly again and I can start work on lots of exciting new features I have up my sleeve.</p>
<p>And apart from all that… bug fixing as usual!</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.renaissancecms.com/2009/08/august-update/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Administrator collaboration tools head scratching</title>
		<link>http://blog.renaissancecms.com/2009/03/adimistrator-collaboration-tools-headscratching/</link>
		<comments>http://blog.renaissancecms.com/2009/03/adimistrator-collaboration-tools-headscratching/#comments</comments>
		<pubDate>Thu, 19 Mar 2009 09:00:46 +0000</pubDate>
		<dc:creator>Rob Chant</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[back-office]]></category>

		<category><![CDATA[features]]></category>

		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://blog.renaissancecms.com/?p=112</guid>
		<description><![CDATA[On providing tools to help site administrators work together.


Related posts:<ol><li><a href='http://blog.renaissancecms.com/2009/02/seo-tools/' rel='bookmark' title='Permanent Link: SEO Tools'>SEO Tools</a> <small>After all the malarkey and general polemic of the web...</small></li></ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>This is another thing I&#8217;ve been scratching my head about a bit recently. <em>Renaissance</em> provides full support for multiple site administrators (as well as users on the front end). It has the usual basic infrastructure one needs to have things working smoothly:</p>
<ul>
<li><strong>Checkouts</strong>, to stop different administrators working on the same content at once</li>
<li><strong>Administrator roles</strong>, so one can differentiate between one&#8217;s <acronym title="Search Engine Optimisation">SEO</acronym>s and user managers</li>
<li><strong>Change logs</strong>, so one can see who updated what, when</li>
<li><strong>et cetera</strong></li>
</ul>
<p>There are also a few slightly more advanced tools (which I&#8217;ll go into in a second), but I&#8217;m really feeling a bit ignorant about what other packages provide (if anything) and a bit bereft of ideas for what I should be adding.</p>
<p><span id="more-112"></span></p>
<h3>More tools</h3>
<p>Okay, I mentioned that there&#8217;s some more advanced stuff. Well, slightly more advanced. Here it is:</p>
<h4>Locks</h4>
<p>Every administrator in <em>Renaissance</em> has their own <em>lock level.</em> A level of zero is the highest, going down to whatever you like (although realistically, probably five or six levels). Any administrator can then lock any piece of content (whether that&#8217;s a text item, a list, a page or even a set of core system settings) against either editing or deletion. That stops any other administrator with a worse lock level than them messing around with that piece of content.</p>
<p>Although this has a bit of overlap with the access permission system, it&#8217;s very useful for protecting key settings areas or individual pieces of content. It offers a kind of finer granularity to access permissions I guess.</p>
<h4>Alerts</h4>
<p>Very simple. Any administrator can create email alerts for themselves for the creation or deletion of any content types on which they want to keep an eye, or the deletion or editing of particular content items. Alerts can be sent individually, or as part of the administrator&#8217;s daily digest email.</p>
<h4>Access permissions</h4>
<p>The back-end access permissions system is, well, <em>fairly</em> comprehensive at the moment. It&#8217;s not that flexible though, in that the rules are specified only in configuration files—there&#8217;s no easy interface for changing them at the moment.</p>
<p>The system is based on administrator roles, and either grants or denies a particular administrator access to a given back-end page based on their role. It can also be used to deny access to certain tabs within each page, certain areas within each tab and even individual controls within each area. So, for example, almost all types of administrator need access to the page editing system, but you might only want your SEOs to access the SEO tab, or you might want your content editors to be able to, well, edit the content of a page, but not change its title or <a title="Templates!" href="http://blog.renaissancecms.com/2008/10/templates/" >template</a>.</p>
<p>There&#8217;s a fair bit I want to add here though, along the lines of setting up more advanced rules (the front end already has a much more capable access permission system).</p>
<h4>Notes</h4>
<p>The notes feature was one of the first things I ever added to <em>Renaissance,</em> after I&#8217;d done the basics. I just kind of felt like doing it.</p>
<p>It allows administrators to add notes to different content items. Notes can be of different types (<em>to do, urgent, info, </em>et cetera), and they can also be marked as requiring an action. If another administrator ticks off an actionable note, the original administrator gets an email telling them that that thing&#8217;s been done. Combined with the notes overview page, which all administrators can access, it provides a kind of pretty simple group to do list.</p>
<h3>The head scratching bit</h3>
<p>My question is, where do I go from here? What tools do other platforms provide? What do I need to add that&#8217;s incredibly useful?</p>
<p>I already have a few ideas (shareable check-lists, a content review system, et cetera), and I&#8217;m sure that there are plenty more ideas to be had out there. I&#8217;m also equally sure that there are plenty of things that might seem like good ideas, but that would actually be a bit of a waste of time to implement.</p>
<p>So, I&#8217;m looking for your thoughts? Any ideas, dos and don&#8217;ts? Any input would be very much appreciated!</p>


<p>Related posts:<ol><li><a href='http://blog.renaissancecms.com/2009/02/seo-tools/' rel='bookmark' title='Permanent Link: SEO Tools'>SEO Tools</a> <small>After all the malarkey and general polemic of the web...</small></li></ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.renaissancecms.com/2009/03/adimistrator-collaboration-tools-headscratching/feed/</wfw:commentRss>
		</item>
		<item>
		<title>When clients roar (or how clients can drive development)</title>
		<link>http://blog.renaissancecms.com/2009/03/when-clients-roar-or-how-clients-can-drive-development/</link>
		<comments>http://blog.renaissancecms.com/2009/03/when-clients-roar-or-how-clients-can-drive-development/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 09:00:06 +0000</pubDate>
		<dc:creator>Rob Chant</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[development]]></category>

		<category><![CDATA[features]]></category>

		<category><![CDATA[flexibility]]></category>

		<guid isPermaLink="false">http://blog.renaissancecms.com/?p=83</guid>
		<description><![CDATA[On how client input can greatly enhance your application's development.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve always been highly independent. I&#8217;ve worked in an actual job for all of one week in my entire life (and that was work experience at school). I deliberately know next to nothing about standard <a title="Renaissance's code structure" href="http://blog.renaissancecms.com/2008/10/code-structure/" >coding conventions</a> and I love to re-invent the wheel, just so it can be my <em>own</em> kind of wheel. And the only psychometric test I&#8217;ve ever taken said, quite resolutely, &#8220;Don&#8217;t even think about trying to manage this person.&#8221;</p>
<p>With that in mind, I&#8217;m always kind of shocked to think about how <strong>client driven</strong> <em>Renaissance&#8217;s</em> development has been. I started it because a client asked for a <acronym title="Content Management System">CMS</acronym> driven web site, and a huge number of its features, from core processes right the way across to little tweaks came from client requirements (<span style="color: #808080;">I hate to admit it, but most of the features I thought up for myself rarely get used in comparison</span>).</p>
<p>In fact, clients were even the driving force for <em>Renaissance&#8217;s</em> true raison d&#8217;êtra,<strong> flexibility</strong><em>.<br />
</em></p>
<p><span id="more-83"></span></p>
<h3>Flexibility</h3>
<p>Right from the word go, I&#8217;ve been using <em>Renaissance</em> to build web sites for clients. For the first few sites, it didn&#8217;t have a name as such, it was just my own web framework that I customised a bit for each site. But before long, it began to evolve into having its own, separate existence.</p>
<p>Something I quickly came up against was the problem of flexibility. Clients would tell me that they just wanted text on every page, but when push came to shove, they actually wanted all kind of things in the same place of different pages—galleries, forms, all sorts of stuff. They also wanted to present the same content in different ways on different pages, and have different templates for different pages of the site (if only subtly different).</p>
<p><em>Renaissance</em>, at the time, just had a page creation and editing console. It had a bunch of inputs—enter your text here, upload a photo for this area, do you want a form on this page?, et cetera. Well, that soon had to change, and the methodology that arose is still the core of the system.</p>
<h3>So&#8230;</h3>
<p>The system is still very much <a title="Templates!" href="http://blog.renaissancecms.com/2008/10/templates/" >template</a> driven. You can have as many templates as you want (even one for each page). Templates are very simple to create—they&#8217;re just a bit of <acronym title="Extensible Hypertext Markup Language">XHTML</acronym> and <acronym title="Cascading Style Sheets">CSS</acronym>. The key to this whole flexibility thing is that each template has content areas specified within it, along with what types of content are allowed to be plugged into each area.</p>
<p>So, within those rules, the user can create the content they want (out of the 20 or so different <a title="The Content System" href="http://blog.renaissancecms.com/2008/11/content-syndication/" >content types</a> and counting) and slot that content into their pages as and how they like. Yes, there&#8217;s an extra step involved compared to something such as WordPress, but it&#8217;s a <strong>lot</strong> more flexible.</p>
<p>But, I&#8217;m kind of digressing here. This post is meant to be about client driven development! Maybe it&#8217;s time for&#8230;</p>
<h3>An example</h3>
<p>A client recently asked <a title="db|design" href="http://www.dbpractice.com" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.dbpractice.com');">my company</a> to re-develop her property web site, with full property listings, needless to say. &#8220;No problem,&#8221; I thought, &#8220;I&#8217;ll knock up a new property content type, give it as many fields as I can think of and some suitable <a title="Views" href="http://blog.renaissancecms.com/2008/11/views/" >views</a> and different ways to group the fields, and that&#8217;ll be that.&#8221;</p>
<p>Needless to say, I was wrong. When the client started sending over her property specifications, there were about half a dozen fields of which I hadn&#8217;t thought. Not only that, she didn&#8217;t just want ordinary property in there. She wanted holiday accommodation too, which meant rental rates and a whole bunch of other information had to go in. <strong>And</strong>, the way she wanted the properties presenting on her site was utterly, utterly different than what I had thought was logical.</p>
<p>Now, I&#8217;m not complaining here. It just goes to show that no matter how accurately you, as a developer, think you&#8217;ll be able to predict an application&#8217;s users&#8217; needs, you&#8217; ill almost always fall short.</p>
<p><em></em>In this case, luckily, my job wasn&#8217;t too hard. I just had to add those extra fields (easy) and change the view system for the property content type to make it a lot more flexible (note, I didn&#8217;t just change it so it would meet my client&#8217;s requirements instead of my original idea; I changed it so it could do pretty much anything).</p>
<h3>The Last Note</h3>
<p>As much as I fancy myself as being an extremely independent designer and developer, I truly understand how much <em>Renaissance</em> has benefited from the level of client involvement in its development that it has had.</p>
<p>I actually find it quite unbelievable how most other applications, in general, only have a bit of client testing and resultant tweaking at the end. The problem with this approach is that the people testing the application are already blinkered by what they&#8217;ve been told it can do, so they&#8217;re never going to suggest that different.</p>
<p>I also think that lack really shows with most applications. As soon as I go to use something such as <a title="Joomla!" href="http://www.joomla.org/about-joomla.html" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.joomla.org');">Joomla!</a> or <a title="CMS Made Simple" href="http://www.cmsmadesimple.org/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.cmsmadesimple.org');">CMS Made Simple</a> that a client has installed I&#8217;m pulling my hair out in frustration. There&#8217;s just so much that they can&#8217;t or won&#8217;t do that I take absolutely for granted. I guess most people don&#8217;t seem to notice as they&#8217;re so used to this poor fare.</p>
<hr style="border: 1px solid #cccccc; height: 1px; width: 100%; color: #ffffff;" size="1" noshade="noshade" /><span style="color: #808080;"><strong>PS</strong> Did I say roar? I surely meant to say, &#8220;When clients ask quietly and politely.&#8221;</span></p>
<p><span style="color: #808080;"><strong>PPS</strong> I must also stress that <em>Renaissance</em> is far from perfect. I just get frustated with the lack of flexibility in other applications.</span></p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.renaissancecms.com/2009/03/when-clients-roar-or-how-clients-can-drive-development/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Behaviour and management</title>
		<link>http://blog.renaissancecms.com/2009/03/behaviour-and-management/</link>
		<comments>http://blog.renaissancecms.com/2009/03/behaviour-and-management/#comments</comments>
		<pubDate>Thu, 05 Mar 2009 13:00:50 +0000</pubDate>
		<dc:creator>Rob Chant</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[architecture]]></category>

		<category><![CDATA[business]]></category>

		<category><![CDATA[design]]></category>

		<category><![CDATA[features]]></category>

		<category><![CDATA[philosophy]]></category>

		<guid isPermaLink="false">http://blog.renaissancecms.com/?p=108</guid>
		<description><![CDATA[On making CMS packages active rather than passive management tools.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>My post about <a title="SEO" href="http://blog.renaissancecms.com/2009/02/seo-tools/" ><acronym title="Search Engine Optimisation">SEO</acronym></a> last week got me thinking about just what a <acronym title="Content Management System">CMS</acronym> ought to do for you, the web site manager or owner. With one of my many other hats on, I do a fair amount of business operations design, and I know that a decent system is what makes most business, large or small, sink or swim.</p>
<p>The same is true for the web today. Unless you&#8217;re putting together web sites purely for fun (which is probably a nobler endeavour than creating them for profit), there&#8217;s just a huge amount of management involved in running a successful, profitable web site (even just a small one!)</p>
<p>So, I got to thinking&#8230;</p>
<p><span id="more-108"></span></p>
<h3>Structure and behaviour</h3>
<p>In that SEO post, I touched on the fact that any CMS, indeed any piece of software, will affect how one uses it. In the case of a CMS, this is even more pronounced. Not only does a CMS give you the tools for creating and editing a site, in many ways it is the site itself.</p>
<p>Different packages give different levels of flexibility, but they all have an underlying structure of some form, and that&#8217;s going to dictate the structure of your site at many levels—everything from your slug and category format, to menus, to the page layouts themselves. And that&#8217;s before we get onto things such as how the interfaces and tools effect how you edit and create pages and content (quick example: a beautiful and well designed image uploader is going to encourage you, at whatever unconscious level, to add more images to your site, and a crap one&#8230; isn&#8217;t).</p>
<p>So, I hope we can agree that the CMS of your choice is going to affect your web site and how you manage and maintain it. However, that influence is pretty much all <em>implicit</em> at this point.</p>
<p>So, my question is&#8230;</p>
<h3>How far should a CMS go?</h3>
<p>Point number one: <em>I think that no CMS should dictate how you work with your site</em>. That&#8217;s a big thing for me, and one of the main reasons why I&#8217;ve striven to keep <em>Renaissance</em> as flexible as possible. However, I also think that CMS packages could do a lot more to help you than they do right now.</p>
<p>Or, in other words:</p>
<h3>Where&#8217;s the management?</h3>
<p>It might seem like a silly question, but it&#8217;s something that&#8217;s bugged me for a long time—ever since I started to get experience with different CMS and blogging packages other than <em>Renaissance</em>*. It just seems to me that content management systems don&#8217;t actually manage anything. They don&#8217;t even let their users manage anything. They let you create, update and delete content. They provide various useful services (<acronym title="Really Simple Syndication">RSS</acronym>, site maps, <acronym title="Application Programming Interface">API</acronym>s, access control, et cetera). But where&#8217;s the <em>management?</em></p>
<p>For example, WordPress lets me do various things—it lets me write new posts and update them, it provides scheduled publishing and feeds and all sorts of other things. But in no way does it help me manage the running of my blog. It doesn&#8217;t remind me to keep up a regular posting schedule. It doesn&#8217;t give me an overview of my best performing posts or help analyse my comment frequency. It doesn&#8217;t even offer particularly useful tools for helping me review past posts.</p>
<p>I&#8217;m sure at this point you&#8217;re asking, &#8220;<em>why should it?</em>&#8221; My response is a pretty simple, &#8220;<em>why shouldn&#8217;t it?</em>&#8221; And it is a simple concept. Web sites need constant care and attention, and whether you&#8217;re a sole trader or managing a large web team, you need processes and tools to keep on top of it. Anyone who reads sites such as <a title="Problogger" href="http://www.problogger.net/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.problogger.net');">Problogger</a> or <a title="SEOmoz" href="http://www.seomoz.org/blog" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.seomoz.org');">SEOmoz</a> or <a title="Occam's Rzor by Avinash" href="http://www.kaushik.net/avinash/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.kaushik.net');">Occam&#8217;s Razor</a> or any one of the hundreds of other popular blogging and on-line marketing blogs knows that there is <em>constant</em> work to be done, and it can&#8217;t be done haphazardly. You need a structure.</p>
<p>As things stand**, you need lots of external tools to make that happen, if it happens at all (and I know that with the best will in the world, it often doesn&#8217;t). If you&#8217;re a large company, you might have an enterprise management system or even custom written software. For a one man band or small crew, it might just be a spreadsheet or something funky from <a title="37Signals" href="http://www.37signals.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.37signals.com');">37signals</a>.</p>
<p>Now, there&#8217;s nothing wrong with all that, apart from the fact that this is all about web sites. It makes little sense to me to manage your web site with one application and edit it with another (your CMS). I know that web site management crosses over into general business processes rather a lot, but, if you want one application to manage both, it almost makes more sense to me to build your business process management into your web site system than vice versa, even if that does mean making it a part of your CMS.</p>
<p><span style="color: #808080;">(As an aside, I did wonder if all this thinking is a solution looking for a problem. I don&#8217;t think that&#8217;s the case. It&#8217;s often pointed out that corporate web sites especially are <a title="Smashing Magazine -- 10 Harsh Truths About Corporate Websites" href="http://www.smashingmagazine.com/2009/02/10/10-harsh-truths-about-corporate-websites/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.smashingmagazine.com');">frequently moribund</a>, and proper integration of management systems into your CMS could be just the solution to that problem).</span></p>
<p>Now, of course, a CMS can&#8217;t and shouldn&#8217;t do everything. There&#8217;s a line *somewhere* (I&#8217;m not sure where). But it could do a lot, and I don&#8217;t think it would take much to turn things around. So, here are a few quick&#8230;</p>
<h3>Ideas</h3>
<p>&#8230; off the top of my head. <strong></strong></p>
<h4>Web site purpose</h4>
<p>There are an awful lot of reasons to have a web site. Blogs, brochureware, e-commerce, social networking, the rest. And there are plenty of ways to market them. And combinations of both. And that means that different web sites have very different management requirements.</p>
<p>For example, a site designed to convert targeted <acronym title="Pay Per Click">PPC</acronym> traffic needs its sales content testing constantly. Sites designed to attract a lot of organic search traffic need content adding all the time. Blogs need a regular posting schedule. E-commerce sites need fresh product offers and updates. You get the idea.</p>
<p>Would it be nice for your CMS to know what kind of site it was managing, allowing it to present you (fully customisable) tools, information and reminders fit for the purpose?</p>
<h4>Review system</h4>
<p>How about a simple (but fully configurable) system whereby you could set up regular review reminders for some or all of your content? Whenever review time is reached, a note&#8217;s sent to the appropriate editor asking them to take action. They can tick it off when they&#8217;ve done it. Content freshness solved.</p>
<h4>SEO Triggers</h4>
<p>Keyword scores falling? Internal linking structure going awry? Editors not <a title="SEOmoz -- 5 reasons why you should link out to others from your website" href="http://www.seomoz.org/blog/5-reasons-you-should-link-out-to-others-from-your-website" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.seomoz.org');">linking out</a> properly? Your SEO guru needs to know!</p>
<h4>Update reminders</h4>
<p>Having trouble keeping your web site up to date? Set up reminders or nags to help you do it. And because we&#8217;re fully integrated here, your CMS can know automatically which sections or topics need the most work.</p>
<h4>People watching</h4>
<p>One of your moderators or editors lagging behind with their schedule? Your manager needs to know (<em>not</em> to give them a bollocking!)</p>
<p>I&#8217;m sure that there are loads and loads more management functions with which a decent CMS could help you. We&#8217;ve not even gone near what you could do with big, multi-user sites (and something tells me that&#8217;s where the real fun with this lot is).</p>
<h3>Summing up</h3>
<p>I guess what this is all about is making a CMS that&#8217;s an active rather than a passive tool. A tool that actually helps you do your job rather than just letting you do it. That&#8217;s definitely where I want <em>Renaissance</em> to go.</p>
<p>And, needless to say, if you have any ideas, please post them below!</p>
<p>Thanks for reading.</p>
<hr style="height: 1px; width: 100%;" size="1" /><span style="color: #808080;">* I should point out, <em>Renaissance</em> doesn&#8217;t do much of what I&#8217;m talking about either (yet).</span></p>
<p><span style="color: #808080;">**I admit, there are probably plenty of packages and plugins that help you do this&#8230; maybe I&#8217;m just woefully ignorant. Also, I&#8217;m really talking about more lightweight solutions here, in <em>Renaissance&#8217;s</em> class, not big enterprise packages.</span></p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.renaissancecms.com/2009/03/behaviour-and-management/feed/</wfw:commentRss>
		</item>
		<item>
		<title>SEO Tools</title>
		<link>http://blog.renaissancecms.com/2009/02/seo-tools/</link>
		<comments>http://blog.renaissancecms.com/2009/02/seo-tools/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 02:29:53 +0000</pubDate>
		<dc:creator>Rob Chant</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[features]]></category>

		<category><![CDATA[SEO]]></category>

		<guid isPermaLink="false">http://blog.renaissancecms.com/?p=106</guid>
		<description><![CDATA[On how CMS packages handle SEO, and what Renaissance's take on the matter is.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>After all the malarkey and general polemic of the <a title="Web 4.0" href="http://blog.renaissancecms.com/2009/02/web-40-follow-up/" >web 4.0</a> thing, I figure it time to return to business as usual with this blog. In other words, plenty of dry talk about <acronym title="Content Management System">CMS</acronym> design, <acronym title="PHP Hypertext Processor">PHP</acronym> and all that stuff.</p>
<p>My subject for today is <strong><acronym title="Search Engine Optimisation">SEO</acronym> and CMS design</strong>. Before I begin, however, a very quick ramble. This blog is ostensibly about my own CMS, <em>Renaissance</em>, but that subject by itself would end up being pretty dry pretty quickly. Although I do tend to bring posts back to <em>Renaissance</em> at some point (or start them off with it), I&#8217;m really trying to talk about CMS and web application development in general. So discussion and feedback around the general topic is always welcome!</p>
<p>Anyway, SEO&#8230;</p>
<p><span id="more-106"></span></p>
<h3>SEO and CMS design</h3>
<p>This has become a big thing for me recently. The reason&#8217;s pretty simple—I do a lot of serious SEO, both for clients who have sites built with <em>Renaissance</em> and people who have sites built with all sorts of other things&#8230; <a title="Joomla!" href="http://www.joomla.org/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.joomla.org');">Joomla!</a>, <a title="WordPress" href="http://wordpress.org" onclick="javascript:pageTracker._trackPageview('/outbound/article/wordpress.org');">WordPress</a>, <a title="CMS Made Simple" href="http://www.cmsmadesimple.org/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.cmsmadesimple.org');">CMS Made Simple</a>, et cetera. As you might imagine, this has given me a fair amount of insight into how different packages handle the problem.</p>
<p>Now, I&#8217;m not going to go into detail or criticise the implementation in any given package. What I will do is say that although most packages seem to do reasonably well, all of them seem to be missing key features. The only reason I can think of for this (because, let&#8217;s face it, it&#8217;s all easy to implement) is that developers and SEO professionals have pretty different ideas on what SEO requires.</p>
<p>Another thing I&#8217;ve found is that different themes, templates and plugins can change a package&#8217;s SEO performance drastically. That&#8217;s <strong>nuts</strong>, if you ask me. SEO is a core feature. It&#8217;s easy to implement. It&#8217;s important. Almost all web sites have to worry about it to some extent. I don&#8217;t think there&#8217;s any excuse for needing a plugin or theme to get it to work properly*.</p>
<h3>The Basics</h3>
<p>I reckon the following list pretty much covers the basics of successful <strong>on-site SEO</strong>. Everyone seems to get this lot. It&#8217;s all good stuff:</p>
<ul>
<li>light-weight, <a title="Digital Web article on semantic markup" href="http://www.digital-web.com/articles/writing_semantic_markup/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.digital-web.com');">semantic</a> and valid mark-up</li>
<li>ability to specify meta tags on a per page basis</li>
<li>full control over the title tag on a per page basis</li>
<li>enforcing image alt properties (also very important for accessibility)</li>
<li>specifying title tags for links</li>
<li>and a few other bits and bobs</li>
</ul>
<p>Okay, no problems with that lot (I&#8217;m sure there are a few things I&#8217;ve missed, so please feel free to <a href="http://blog.renaissancecms.com/2009/02/seo-toolsseo-tools/#comments" >comment </a>and I&#8217;ll update the post). The trouble is, <strong>SEO is a lot more than that!</strong></p>
<h3>Going further</h3>
<p>I could go on and on here, but I think the most important thing that CMSs and other packages miss when it comes to SEO is control over the web site&#8217;s structure itself. Controlling how link juice flows around your pages is very, <strong>very</strong> important. <a title="XML.com" href="http://www.xml.com/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.xml.com');">XML</a> site-maps are very important (okay, most packages have plugins that support them or can do them natively, but why aren&#8217;t they standard and ubiquitous?). Controlling which pages end up in your site-map and which don&#8217;t (and with what priority) is important. Being able to have a customised, structured title tag system is important. Likewise for page slugs and perma-links (okay, a lot of apps have this, but far from all). How about internal reporting and metrics?</p>
<p>Okay, you get where I&#8217;m going here. This post isn&#8217;t meant to be a rant, after all, so I think I&#8217;ll make a list&#8230; they&#8217;re kind of safe from that respect!</p>
<h3>SEO wishlist</h3>
<p>Okay. So now we get down to the meat of it&#8230; again, I&#8217;m sure I&#8217;ve missed loads of great ideas here, so <a href="http://blog.renaissancecms.com/2009/02/seo-toolsseo-tools/#comments" >please contribute</a> if you can. These are all things I deem to be essential or very desirable, <em>as standard</em>, in any web site building package, be it a blog, CMS or something else entirely (I&#8217;m not including the basics given above).</p>
<ul>
<li>Google (and other XML) site-maps,
<ul>
<li>automatic creation.</li>
<li>ability to specify the pages that go into it or stay out.</li>
<li>ability to specify the priority for each page in the site-map (interesting to think of a way to do this algorithmically too).</li>
<li>automatic addition of the last modification and update frequency parameters.</li>
</ul>
</li>
<li>Internal specification of whether you want that pesky &#8216;www&#8217; prefix or not, and the appropriate redirection necessary.</li>
<li>Being able to &#8216;nofollow&#8217; a page—in other words, automatically tagging all internal links to a given page with nofollow, making that page invisible in the eyes of the search engines.</li>
<li>Total control over the titles, slugs and permalinks on a site—both systematically and being able to override the system for any given page.</li>
<li>Reports and metrics on,
<ul>
<li>code/content ratio for pages.</li>
<li>on-site keyword performance (e.g. how often your target keywords are showing up in strong tags, internal links, heading tags, keyword density, et cetera).</li>
<li>incoming and outgoing links on your pages.</li>
<li>how search juice is flowing around your site and where the most ranking is sitting.</li>
<li>external rankings, search engine cache freshness, crawl rate, et cetera on individual pages (okay, this would require <acronym title="Application Programming Interface">API</acronym> integration with various services).</li>
<li>Traffic from external links, along with the anchor text, et cetera, for those incoming links.</li>
</ul>
</li>
<li>Automatic population of the key meta tags (and again, being able to override it where you need to do so).</li>
<li>Dealing with the <a title="SEOmoz article on the canonical tag" href="http://www.seomoz.org/blog/canonical-url-tag-the-most-important-advancement-in-seo-practices-since-sitemaps" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.seomoz.org');">canonical tag</a> appropriately and automatically.</li>
<li>Allowing versatile use of the hash character (#) in URLs (it can be used for all sorts of fun stuff!).</li>
<li>Automatic redirection from the old link if you change the name of a page—no need to worry about setting up 301s manually.</li>
</ul>
<h3>Behaviour is important too</h3>
<p>Okay, I know a CMS package shouldn&#8217;t exactly try to dictate how you run your site (although it&#8217;s inevitably going to have an impact, just through the way it&#8217;s designed). However, I know, from personal experience, that a big block for SEO or anything like it is simply getting around to it. There&#8217;s so much to do, and a lot of is it <strong>important</strong> but not <strong>urgent</strong>. You&#8217;ve always got tests to run, stats with which to keep up, an eye to keep on your editors and writers&#8230;</p>
<p>So how about just a little automated nudge now and then? Say, a simple message when you open up the dashboard telling you which pages are suffering on keyword score or which are lacking internal links. Admittedly nice to have rather than essential, but I know that kind of thing would spur me into immediate action.</p>
<h3>So how does Renaissance perform?</h3>
<p>Not too bad, ashkualy. Sitemaps are there, lots of title tag stuff is there, nofollows are there. URLs are very SEO friendly, although, alas, not that configurable yet. Most of the meta tag stuff is there. Alt properties for images are there. The mark-up is very light weight and is pretty semantic, although it could possibly be improved in that respect. Pretty much everything else is still missing, but I&#8217;m working on it! I&#8217;d love to have those reports and reminders/nudges in there soon for starters.</p>
<h3>Thoughts?</h3>
<p>And, as ever, I&#8217;ll finish off with the usual request—your thoughts? Comments? I&#8217;m sure I&#8217;ve missed loads of good stuff.</p>
<p>Thanks for reading!</p>
<hr style="border: 1px solid #cccccc; height: 1px; width: 100%; color: #ffffff;" size="1" noshade="noshade" />*I use the <a title="Thesis Theme for WordPress (affiliate link)" href="http://diythemes.com/?a_aid=robchant" onclick="javascript:pageTracker._trackPageview('/outbound/article/diythemes.com');">Thesis themefor WordPress</a> for this blog, mainly because it promised great SEO functionality. It&#8217;s okay but still a bit lacking.</p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.renaissancecms.com/2009/02/seo-tools/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Web 4.0 Follow-up</title>
		<link>http://blog.renaissancecms.com/2009/02/web-40-follow-up/</link>
		<comments>http://blog.renaissancecms.com/2009/02/web-40-follow-up/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 00:44:13 +0000</pubDate>
		<dc:creator>Rob Chant</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[call to action]]></category>

		<category><![CDATA[future]]></category>

		<category><![CDATA[manifesto]]></category>

		<category><![CDATA[rich media]]></category>

		<category><![CDATA[web 4.0]]></category>

		<guid isPermaLink="false">http://blog.renaissancecms.com/?p=104</guid>
		<description><![CDATA[On what all that Web 4.0 guff was *really* about.


Related posts:<ol><li><a href='http://blog.renaissancecms.com/2009/02/web-40/' rel='bookmark' title='Permanent Link: Web 4.0 Manifesto'>Web 4.0 Manifesto</a> <small>[If you like this post, you might also want to...</small></li><li><a href='http://blog.renaissancecms.com/2008/11/rich-media/' rel='bookmark' title='Permanent Link: Rich media?'>Rich media?</a> <small>I asked a question on LinkedIn* a couple of weeks...</small></li></ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p>My <a title="Web 4.0 Manifesto" href="http://blog.renaissancecms.com/2009/02/web-40" >previous post</a> garnered a fair bit of attention and a reasonable amount of response in different channels. Quite a number of common themes and misunderstandings came up, so I thought I&#8217;d clarify and respond in one place.</p>
<p>So, first off&#8230;</p>
<p><span id="more-104"></span></p>
<h3>The 4.0</h3>
<p>This was meant satirically, but I guess that didn&#8217;t come across at all! I guess my previous post was too subtle.</p>
<p>Personally, I think the whole idea of &#8220;Web anything.anything&#8221; is <strong>ridiculous</strong>. I thought Web 2.0 was stupid enough (not what&#8217;s happened on Web 2.0, but the idea of naming and versioning it as such), and when a close friend started telling me about a Web 3.0 conference at which he was invited to speak, it made go off on one inside my head.</p>
<p>So, the idea of my Web 4.0 manifesto was born. Although I&#8217;m very serious about the points I raised, the &#8220;4.0&#8243; was intended to mock the technological fetish that drives how we perceive the web.</p>
<p>Of course, I more than realise that everything I put in the manifesto is technologically possible right now, and has been for years. This is the point. Previous &#8220;generations&#8221; of the web have been seen to be technological steps. I wanted to put forward a <strong>creative</strong> step in the place of technology.</p>
<p>And for those that skim read:</p>
<ul>
<li>The &#8220;4.0&#8243; was intended as a satire on the whole &#8220;Web x.x&#8221; thing. I think it&#8217;s ridiculous.</li>
<li>I know that everything I wrote about is possible with technology we&#8217;ve had for years&#8230;</li>
<li>&#8230; so the manifesto had nothing to do with technology.</li>
</ul>
<h3>Technology and rich media</h3>
<p>Almost without fail, reasons given against this kind of approach were things such as,</p>
<ul>
<li>budget</li>
<li>bandwidth</li>
<li>using Flash</li>
<li>etcetera</li>
</ul>
<p><strong>Why?</strong> Why do people think that the only way to make something beautiful, haunting or delightful is to use Flash (or similar), eat up a ton of bandwidth, soak up massive budgets, make people watch intro sequences, etcetera.</p>
<p>It&#8217;s <strong>rubbish!</strong> You can make something stunning with plain images and typography, on zero budget and almost no bandwidth, if you have the imagination. This lock amongst web designs and developers that design/creativity on the web = Flash really depresses me. The <a title="Rich media?" href="http://blog.renaissancecms.com/2008/11/rich-media/" >post</a> on this blog before the Web 4.0 Manifesto was a rant about that, so I won&#8217;t go into it here.</p>
<p>Again, for those that skim,</p>
<ul>
<li>Everything I proposed in the manifesto has nothing to do with Flash or rich media.</li>
<li>You can create something emotional or beautiful on zero budget with zero bandwidth if you have the imagination.</li>
<li>Stunning design and beauty doesn&#8217;t have to be flashy. It can be incredibly simple.</li>
<li>(Of course, you can use rich media too, if you like!)</li>
</ul>
<h3>It&#8217;s nothing new</h3>
<p>Of course, I&#8217;m well aware that there&#8217;s plenty of wonderful stuff out there. Sites that really do delight and amaze (using rich media or otherwise). But it&#8217;s a tiny proportion of the web. <strong>Tiny</strong>. Most people&#8217;s browing habits comprise just a few of the web&#8217;s tops sites, most of which are, well, pretty badly designed and ugly.</p>
<p>And even the sites that do go that much further still fall far short of where we could be. Good on them for pushing forward, but I think there&#8217;s a very long way to go.</p>
<h3>Point and purpose</h3>
<p>Another point that was brought up fairly often was that the web&#8217;s not intended to entertain, it&#8217;s intended to be informational. I&#8217;d respond in several ways.</p>
<p>First, let us assume that the web should only be 100% informational (this is ridiculous, of course, but bear with me). If that&#8217;s the case, it&#8217;s still crap compared to what it should be. Most web pages, and especially those that are mainly intended to be informational, are put together with almost no understanding of how people learn or how the brain absorbs information. Plus any even semi-competent teacher will tell you that the way to get a student of any age to learn is to switch them on <strong>emotionally</strong>.</p>
<p>All that&#8217;s one reason why most (nearly all, including this post, I&#8217;m sure) is barely skimmed and why traditional, printed media is still so much more valuable (unfortunately).</p>
<p>Second, I disagree that the web has to be completely informational, or even primarily informational, or even mostly informational. It is right now, but why does that have to be the limit of our aspirations.</p>
<p>Third, I don&#8217;t even really know where entertainment ends and information begins, and what other categories completely there are, either in between or off to one side. For example, I love to read books, but it doesn&#8217;t normally feel like entertainment to me. Nor am I sitting there becoming more informed.</p>
<p>So,</p>
<ul>
<li>Just because a site or piece of content is primarily informational doesn&#8217;t mean it can&#8217;t also be stunningly or evocatively designed. It would probably be even more effective as an informational resource if it was.</li>
<li>The web does not and should not be primarily informational. It should be a healthy mixture.</li>
<li>Creating a polar disparity between something being either informational or entertainment seems incredibly simplistic to me. It&#8217;s a much wider field.</li>
</ul>
<h3>An interesting correlation&#8230;</h3>
<p>was that the more techie* someone was, the more likely they were to give a negative response to the manifesto. The standard techie response was along the lines of, &#8220;there&#8217;s nothing wrong with the web, besides which, it&#8217;s all meant to be informational anyway&#8221;, whereas the standard response from non-techie seemed to be something more like, &#8220;yes, things could be improved a lot, we really should be putting these issues first.&#8221;</p>
<p><strong>I think that says a lot</strong>. I guess you can draw your own conclusions, but I&#8217;m thinking something such as, <em>&#8220;the people building the sand box don&#8217;t really understand how people want to play with it.&#8221;</em></p>
<p>Well, okay, my couple of dozen responses isn&#8217;t exactly a statistically significant sample, so it&#8217;s anecdotal. But anyway&#8230;</p>
<h3>And let me be the first to admit&#8230;</h3>
<p>That I am a hypocrite. This blog doesn&#8217;t exactly have the most amazing design ever (it&#8217;s okay, as these things go). Most of my commercial work is fairly standard in design. If I look back over my very early work, it&#8217;s not nearly so technically accomplished as my recent stuff (not that that&#8217;s technically amazing either), but it&#8217;s so much more creative. That&#8217;s what getting on for 10 years in commercial web design will do to your creativity, which is why I&#8217;m quitting.</p>
<p>And let me also say, these last two posts are obviously, deliberately polemic. Clearly I&#8217;m being a bit harsh. But there&#8217;s no point speaking softly if you&#8217;re making a call to action.</p>
<hr style="border: 1px solid #cccccc; height: 1px; width: 100%; color: #ffffff;" size="1" noshade="noshade" /><span style="color: #808080;">*<strong>Note</strong>: When I say &#8220;techie&#8221;, I don&#8217;t mean it in a derogatory way at all. It&#8217;s just an easy identifier. Most people would call me a techie myself.</span></p>


<p>Related posts:<ol><li><a href='http://blog.renaissancecms.com/2009/02/web-40/' rel='bookmark' title='Permanent Link: Web 4.0 Manifesto'>Web 4.0 Manifesto</a> <small>[If you like this post, you might also want to...</small></li><li><a href='http://blog.renaissancecms.com/2008/11/rich-media/' rel='bookmark' title='Permanent Link: Rich media?'>Rich media?</a> <small>I asked a question on LinkedIn* a couple of weeks...</small></li></ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.renaissancecms.com/2009/02/web-40-follow-up/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Web 4.0 Manifesto</title>
		<link>http://blog.renaissancecms.com/2009/02/web-40/</link>
		<comments>http://blog.renaissancecms.com/2009/02/web-40/#comments</comments>
		<pubDate>Tue, 17 Feb 2009 00:47:53 +0000</pubDate>
		<dc:creator>Rob Chant</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[call to action]]></category>

		<category><![CDATA[creativity]]></category>

		<category><![CDATA[design]]></category>

		<category><![CDATA[future]]></category>

		<category><![CDATA[manifesto]]></category>

		<category><![CDATA[rambling]]></category>

		<category><![CDATA[web 4.0]]></category>

		<guid isPermaLink="false">http://blog.renaissancecms.com/?p=85</guid>
		<description><![CDATA[On what the web could really be, if we set our (creative) minds to it.


Related posts:<ol><li><a href='http://blog.renaissancecms.com/2009/02/web-40-follow-up/' rel='bookmark' title='Permanent Link: Web 4.0 Follow-up'>Web 4.0 Follow-up</a> <small>My previous post garnered a fair bit of attention and...</small></li><li><a href='http://blog.renaissancecms.com/2008/11/rich-media/' rel='bookmark' title='Permanent Link: Rich media?'>Rich media?</a> <small>I asked a question on LinkedIn* a couple of weeks...</small></li></ol>

Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.]]></description>
			<content:encoded><![CDATA[<p><span style="color: #999999;">[If you like this post, you might also want to read my <a title="Web 4.0 Follow Up" href="http://blog.renaissancecms.com/2009/02/web-40-follow-up/" >follow-up</a>]</span></p>
<p>Not so long ago, I published a post on <a title="Rich Media" href="http://blog.renaissancecms.com/2008/11/rich-media/" >rich media</a>, which was really an excuse to rant a bit about how dull, boring and generic the web is (okay, I think it was more than a rant—I did at least attempt to put forth a reasonable argument).</p>
<p>The post was inspired by how lacklustre people&#8217;s expectations are when it comes to technology, and at its end, I promised a Web 4.0 manifesto.</p>
<p>Well, here it is.</p>
<p><span id="more-85"></span></p>
<h3>Why Web 4.0?</h3>
<p>Well, mainly because people are already starting to talk about Web 3.0, and, surprise, surprise, the visions that people have are limited and very technology driven, just as they were with Web 2.0*. A quick glance over the <a title="Web 3.0 on WikiPedia" href="http://en.wikipedia.org/wiki/Web_3.0" onclick="javascript:pageTracker._trackPageview('/outbound/article/en.wikipedia.org');">Wikipedia</a> entry on the topic shows, well, lots of technology and, hum&#8230; zero talk about the human being. It&#8217;s all about what the technology can do. Analogies with the Unix file system seem to feature. Enough said.</p>
<p>So, without further ado, here&#8217;s the&#8230;</p>
<h3>Web 4.0 Manifesto</h3>
<p>In no particular order:</p>
<ul>
<li>On Web 4.0, people count, not technology.</li>
<li>On Web 4.0, the metrics for success are not conversion or bounce rates—they&#8217;re art, originality, creativity.</li>
<li>On Web 4.0, content is not king—joy, amazement and delight are king.</li>
<li>On Web 4.0, a successful site is one that makes people gasp, shout, cry or play.</li>
<li>On Web 4.0, if you&#8217;re not taking risks, people aren&#8217;t interested.</li>
<li>On Web 4.0, things such as sidebars, leader boards, headers and plain blocks of text seem like old fashioned anachronisms.</li>
<li>On Web 4.0, you can&#8217;t challenge convention—convention doesn&#8217;t exist.</li>
<li>On Web 4.0, people don&#8217;t consume content—they learn, wander, explore, play.</li>
<li>On Web 4.0, the key words aren&#8217;t the cloud, apps, feeds, blogs. They&#8217;re colour, typography, design, art, emotion, space.</li>
<li>On Web 4.0, doing things differently is how things are done.</li>
</ul>
<h3>There, that&#8217;s it&#8230;</h3>
<p>&#8230; but I&#8217;m sure it&#8217;s just a start. Feel free to rant, rave, criticise, complain, and, most importantly, add your own inspiration.</p>
<hr style="border: 1px solid #cccccc; height: 1px; width: 100%; color: #ffffff;" size="1" noshade="noshade" /><span style="color: #808080;">*<strong>Note</strong>: Don&#8217;t get me wrong, all the technology that sits behind Web 2.0 is wonderful stuff and it&#8217;s great that it&#8217;s available (more than can be said for the graphic style and web site names that tend to do along with it!) My point is just that it could have been a lot more, and, with a little imagination, people could do a lot more with it.</span></p>


<p>Related posts:<ol><li><a href='http://blog.renaissancecms.com/2009/02/web-40-follow-up/' rel='bookmark' title='Permanent Link: Web 4.0 Follow-up'>Web 4.0 Follow-up</a> <small>My previous post garnered a fair bit of attention and...</small></li><li><a href='http://blog.renaissancecms.com/2008/11/rich-media/' rel='bookmark' title='Permanent Link: Rich media?'>Rich media?</a> <small>I asked a question on LinkedIn* a couple of weeks...</small></li></ol></p>
<p>Related posts brought to you by <a href='http://mitcho.com/code/yarpp/'>Yet Another Related Posts Plugin</a>.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.renaissancecms.com/2009/02/web-40/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Database anxiety</title>
		<link>http://blog.renaissancecms.com/2009/02/database-anxiety/</link>
		<comments>http://blog.renaissancecms.com/2009/02/database-anxiety/#comments</comments>
		<pubDate>Sat, 07 Feb 2009 01:11:04 +0000</pubDate>
		<dc:creator>Rob Chant</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<category><![CDATA[architecture]]></category>

		<category><![CDATA[code]]></category>

		<category><![CDATA[database]]></category>

		<category><![CDATA[flexibility]]></category>

		<category><![CDATA[performance]]></category>

		<guid isPermaLink="false">http://blog.renaissancecms.com/?p=101</guid>
		<description><![CDATA[On database design decisions and how tricky they can be.


No related posts.]]></description>
			<content:encoded><![CDATA[<p>An early design decision I made with <em>Renaissance</em>, when it moved from being a sloppy bunch of <acronym title="PHP Hypertext Processor">PHP</acronym> files to a properly structured application (still in PHP) was to do with how the database is structured. I&#8217;ve pondered that decision a lot in the years since then, and have several times come close to going back on it and doing something entirely different.</p>
<p><span id="more-101"></span></p>
<p><em>Renaissance</em> is structured around its content. Internally, items of content are instances of the Asset class, or classes which inherit from it. The nifty bit (I think) is that, internally, nearly everything is considered content—everything from obvious stuff such as text, image, links, et cetera, to users, templates, pages and even the content type definitions themselves (called <em>components</em>*).</p>
<p>So, <em>Renaissance</em> is centred around its content items, whatever they may be. This means that the database is centred around content—each content type has its own table. Fair enough. There are also a bunch of ancillary tables, such as the change log, keywords, errors, checkouts and a large bunch of other things.</p>
<p>This is background so far. The decision I made early on was in how the database is configured. And it&#8217;s this:</p>
<p style="padding-left: 30px;"><strong>Each and every table in <em>Renaissance</em> can be in its own database.</strong></p>
<p>In other words, there&#8217;s a <acronym title="JavaScript Object Notation">JSON</acronym> settings file that contains each of the databases to which <em>Renaissance</em> needs to connect. For each database listed, there&#8217;s a bunch of information, and a list of tables in that database (you can even alter this on the fly, moving tables from one database to another). The databases can be on completely different servers running completely different software—<em>Renaissance</em> doesn&#8217;t care (although I&#8217;ve only got round to writing MySQL support so far).</p>
<p>This is completely transparent as far as the coder is concerned. You simply make a database request on a table, and the database system looks up where that table is at the moment.</p>
<p>And the point of all this? Well, if you read this blog, you&#8217;ll know that I&#8217;m fairly obsessed with making <em>Renaissance</em> as flexible as possible, and, yet again, that&#8217;s the philosophy here. It allows you to set things up just how you want. So, for example, you could have your core, important content tables on PostgreSQL and all your logging tables on MySQL (notably, due to <em>Renaissance</em> on-disk caching, the logging tables might be the only ones actually accessed during a view of a fairly static page). You might simply divide things up between two servers for performance reasons or otherwise. Who knows?</p>
<p>But as you probably immediately realised, there&#8217;s <em>one big drawback</em> to all of this—all of <acronym title="Structured Query Language">SQL</acronym>&#8217;s higher functionality, such as JOINs, VIEWs, TRIGGERs, et cetera, largely go out of the window because you can never guarantee that any two tables are even going to be on the same server, let alone the same database.</p>
<p>At the time, I didn&#8217;t really care about all that (sounds bad, I know, but it was years and years ago). I didn&#8217;t know all that much about what SQL can do, and besides, I thought, <em>Renaissance</em> is largely about simply loading content from the database—there&#8217;s very little fancy data manipulation, and what there is is better handled by the PHP anyway (as it&#8217;s so content type specific). Moreover, when you&#8217;re loading a row from a table, you nearly always want all the row.</p>
<p>The reason I&#8217;m thinking about this again is simply that <em>Renaissance</em> is getting slower, due to the fact it&#8217;s getting more complex and more robust (more thoughts on this in a different post). I&#8217;m shoring things up with a lot of caching, but something has got to give!</p>
<p>So, for example, simply loading a single asset hits at least the following tables:</p>
<ul>
<li>the content&#8217;s own table (say, text)</li>
<li>the extended options table</li>
<li>the changelog table</li>
<li>the checkouts table (if we&#8217;re editing, not viewing)</li>
<li>the errors table</li>
<li>the hub table (stores flag and relational links to other content)</li>
<li>and possibly, depending on just what we&#8217;re doing:
<ul>
<li>publishing</li>
<li>locks</li>
<li>email alerts</li>
<li>keywords</li>
<li>notes</li>
<li>access schemes</li>
<li>et cetera</li>
</ul>
</li>
</ul>
<p>Anyway, you get the idea. Loading an item of content also requires that we load its content type, causing this cascade over again. Now, I&#8217;m sure you can see that a JOIN might be useful here! Needless to say, there are plenty of other cases where advanced SQL functionality would be useful.</p>
<p>So, there are options,</p>
<ol>
<li>leave everything as is and love my flexibility</li>
<li>enforce that everything lives in a single database (you can always just use replication for performance issues anyway)</li>
<li>do something in between, enforcing that a certain group of tables have to be in the same database, but allowing flexibility on certain others (e.g. still allow a split between content and logging)</li>
</ol>
<p>All of those are easy to implement at a database system level. The real work would come in with actually taking advantage of what SQL had to offer. That would be pretty major structural work. I realise that the only things that are stopping me from changing things now (I kind of prefer option 3) is the fear of that work, plus an emotional attachment to how things are now.</p>
<p>What do you think? I could really do with some advice!</p>
<p><strong>Update: </strong>Having spoken with various people and mulled stuff over, it&#8217;s got to be option 3 (well, maybe option 2&#8230;) I knew it would happen really!</p>
<hr style="border: 1px solid #cccccc; height: 1px; width: 100%; color: #ffffff;" size="1" noshade="noshade" /><span style="color: #808080;">* Yes, each content type (image, text, user, whatever) is represented by an asset, including content types themselves. It&#8217;s very circular. So, here&#8217;s how you create an asset:</span></p>
<div class="codesnip-container" >
<div class="codesnip"><span class="kw2">var</span> <span class="re0">$thing</span>=<span class="kw2">new</span> Asset<span class="br0">&#40;</span><span class="re0">$id</span>,<span class="re0">$type</span><span class="br0">&#41;</span>;</p>
<p><span class="coMULTI">/* or, if you know the type, text for example, and want to do something more specific */</span><br />
<span class="kw2">var</span> <span class="re0">$thing</span>=<span class="kw2">new</span> Text<span class="br0">&#40;</span><span class="re0">$id</span><span class="br0">&#41;</span>;</div>
</div>
<p><span style="color: #808080;">So, you can go,</span></p>
<div class="codesnip-container" >
<div class="codesnip"><span class="coMULTI">/* to load a text item */</span><br />
<span class="kw2">var</span> <span class="re0">$my_text</span>=<span class="kw2">new</span> Text<span class="br0">&#40;</span><span class="st0">&#8216;my text&#8217;</span><span class="br0">&#41;</span>;&nbsp; &nbsp; <span class="co1">//titles are unique, so you can use them as IDs</span></p>
<p><span class="coMULTI">/*to load a user*/</span><br />
<span class="kw2">var</span> <span class="re0">$user</span>=<span class="kw2">new</span> User<span class="br0">&#40;</span><span class="st0">&#8216;whatever user&#8217;</span><span class="br0">&#41;</span>;</p>
<p><span class="coMULTI">/*to load a content type definition, such as text or user*/</span><br />
<span class="kw2">var</span> <span class="re0">$component</span>=<span class="kw2">new</span> Component<span class="br0">&#40;</span><span class="st0">&#8216;user&#8217;</span><span class="br0">&#41;</span>;</div>
</div>
<p><span style="color: #808080;">Nice, huh? Well, I like it, anyway.</span></p>


<p>No related posts.</p>]]></content:encoded>
			<wfw:commentRss>http://blog.renaissancecms.com/2009/02/database-anxiety/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
