<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wikidot="http://www.wikidot.com/rss-namespace">

	<channel>
		<title>James Kanjo: Wikidot Blog</title>
		<link>http://james.wikidot.com</link>
		<description>The blog of James Kanjo</description>
				<copyright></copyright>
		<lastBuildDate>Wed, 19 Jun 2013 14:57:18 +0000</lastBuildDate>
		
					<item>
				<guid>http://james.wikidot.com/blog:77</guid>
				<title>Wikidot: CSS Per Category</title>
				<link>http://james.wikidot.com/blog:77</link>
				<description>

&lt;p&gt;intro: &amp;quot;Something that&#039;s slightly annoying about Wikidot is that when it comes to creating new pages that previously didn&#039;t exist, the Live Template isn&#039;t taken into account. That is, if you use the CSS module in the Live Template, then that isn&#039;t applied to the page until &lt;strong&gt;after&lt;/strong&gt; you save the page. All proceeding edits work fine, but the initial edit doesn&#039;t look how it&#039;s supposed to.\n\nBut of course, they don&#039;t call me a Wikidot Super-Guru for nothing! Read on to see how it&#039;s done properly.&amp;quot;&lt;br /&gt;
main: &amp;quot;There are two useful tools that appear when we create new pages: the top and sidebar navigators. Whatever code you place in these two pages, it will appear on every page that utilises those particular navigators. Generally speaking, these navigators are usually global for the site on most wikis (however they can be customised on a per-category basis).\n\nFor our exercise today, we are going to focus on the sidebar navigator (usually located on the &lt;tt&gt;/nav:side&lt;/tt&gt; page).\n\n+ Step 1: Create your per-category CSS pages\n\nLet&#039;s assume the category \&amp;quot;survey\&amp;quot;. We are going to create a hidden page called &lt;tt&gt;/survey:_css&lt;/tt&gt; for us to store our CSS module on. Place your CSS module on this page like so:\n\n[[code]]\n[[module CSS]]\na {color: #FFF !important;}\n[&lt;a href=&quot;http://james.wikidot.com/module]]/n[[/code]]/n/nThis&quot;&gt;line of CSS code will ensure all links appear in the colour \&amp;quot;white\&amp;quot;.\n\n+ Step 2: Inject James&#039; Brilliant Code\n\nNavigate to your sidebar navigator page and place the following code at the bottom:\n\n[[code&lt;/a&gt;][[include :snippets:category-css]]\n[&lt;a href=&quot;http://james.wikidot.com/code]]/n/nThis&quot;&gt;Wikidot code will extract the source from the {{:_css}} page on a per-category basis. If no such page exists, nothing happens!\n\nIf you happen to have no sidebar navigator on your Wikidot site, I suggest that you:\n# Re-enable the sidebar from your {{/admin:manage}} page;\n# Go to the sidebar page (usually it&#039;s the {{/nav:side}} page);\n# Paste the following code at the top of the sidebar&#039;s source code to \&amp;quot;remove\&amp;quot; the sidebar:\n[[code&lt;/a&gt;]\n[[module CSS show=\&amp;quot;true\&amp;quot;]]\n#side-bar {display: none;}\n[[/module]]\n[[/code]]\n\n+ Step 3: You&#039;re done! Check it out!\n\nThat&#039;s right, there is no Step 3! You can now create new pages with per-category customised CSS now!!!\n\nNo more messing around with the site&#039;s global CSS!&amp;quot;&lt;br /&gt;
sig: &#039;3&#039;&lt;br /&gt;
after: &#039;&#039;&lt;/p&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/james-kanjo&quot;  &gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=35113&amp;amp;size=small&amp;amp;timestamp=1371653836&quot; alt=&quot;James Kanjo&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=35113)&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/james-kanjo&quot;  &gt;James Kanjo&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
				<pubDate>Sat, 04 Feb 2012 07:23:04 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>intro: &quot;Something that's slightly annoying about Wikidot is that when it comes to creating new pages that previously didn't exist, the Live Template isn't taken into account. That is, if you use the CSS module in the Live Template, then that isn't applied to the page until <strong>after</strong> you save the page. All proceeding edits work fine, but the initial edit doesn't look how it's supposed to.\n\nBut of course, they don't call me a Wikidot Super-Guru for nothing! Read on to see how it's done properly.&quot;<br /> main: &quot;There are two useful tools that appear when we create new pages: the top and sidebar navigators. Whatever code you place in these two pages, it will appear on every page that utilises those particular navigators. Generally speaking, these navigators are usually global for the site on most wikis (however they can be customised on a per-category basis).\n\nFor our exercise today, we are going to focus on the sidebar navigator (usually located on the <tt>/nav:side</tt> page).\n\n+ Step 1: Create your per-category CSS pages\n\nLet's assume the category \&quot;survey\&quot;. We are going to create a hidden page called <tt>/survey:_css</tt> for us to store our CSS module on. Place your CSS module on this page like so:\n\n[[code]]\n[[module CSS]]\na {color: #FFF !important;}\n[<a href="http://james.wikidot.com/module]]/n[[/code]]/n/nThis">line of CSS code will ensure all links appear in the colour \&quot;white\&quot;.\n\n+ Step 2: Inject James' Brilliant Code\n\nNavigate to your sidebar navigator page and place the following code at the bottom:\n\n[[code</a>][[include :snippets:category-css]]\n[<a href="http://james.wikidot.com/code]]/n/nThis">Wikidot code will extract the source from the {{:_css}} page on a per-category basis. If no such page exists, nothing happens!\n\nIf you happen to have no sidebar navigator on your Wikidot site, I suggest that you:\n# Re-enable the sidebar from your {{/admin:manage}} page;\n# Go to the sidebar page (usually it's the {{/nav:side}} page);\n# Paste the following code at the top of the sidebar's source code to \&quot;remove\&quot; the sidebar:\n[[code</a>]\n[[module CSS show=\&quot;true\&quot;]]\n#side-bar {display: none;}\n[[/module]]\n[[/code]]\n\n+ Step 3: You're done! Check it out!\n\nThat's right, there is no Step 3! You can now create new pages with per-category customised CSS now!!!\n\nNo more messing around with the site's global CSS!&quot;<br /> sig: '3'<br /> after: ''</p> <p>by <span class="printuser avatarhover"><a href="http://www.wikidot.com/user:info/james-kanjo" ><img class="small" src="http://www.wikidot.com/avatar.php?userid=35113&amp;size=small&amp;timestamp=1371653837" alt="James Kanjo" style="background-image:url(http://www.wikidot.com/userkarma.php?u=35113)" /></a><a href="http://www.wikidot.com/user:info/james-kanjo" >James Kanjo</a></span></p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://james.wikidot.com/blog:75</guid>
				<title>Wikidot: API — A New Age</title>
				<link>http://james.wikidot.com/blog:75</link>
				<description>

&lt;p&gt;intro: &amp;quot;Many many moons ago, Wikidot released something that they hoped, would change the future of Wikidot: &lt;a href=&quot;http://www.wikidot.com/doc:api&quot;&gt;Wikidot XML-RPC API&lt;/a&gt;.\n\nI know right, I&#039;ve never seen hyphenated acronyms before&amp;#8230; and it uses the scary looking letter “X” and yet a third unknown acronym “API”.\n\n&amp;quot;&lt;br /&gt;
main: &amp;quot;API means “Application Programming Interface”. In a nutshell, an API lets programmers create programming code that communicates with something (a web server, another program, a piece of computer hardware, just to name a few).\n\nXML-RPC is an API with the specific task of sending and receiving information from servers.\n\nWikidot created an API that allows us to request information about Wikidot sites. This “Wikidot API” uses the XML-RPC API to actually communicate with the Wikidot servers. So when we program with the Wikidot API, we are writing code that talks to an API that talks to another API. But you didn&#039;t have to know that part!!!\n\nAnyway, at the time, the Wikidot API only had reading privileges, and was only compatible with the Python programming language&lt;sup class=&quot;footnoteref&quot;&gt;&lt;a id=&quot;footnoteref-312837-1&quot; href=&quot;javascript:;&quot; class=&quot;footnoteref&quot;  &gt;1&lt;/a&gt;&lt;/sup&gt;. But only in June last year, Wikidot upgraded their API to provide writing privileges to Wikidot sites. It wasn&#039;t until then that things really started to kick off! Because we now have writing privileges, some Wikidot users created libraries for the Wikidot API in other programming languages.&lt;sup class=&quot;footnoteref&quot;&gt;&lt;a id=&quot;footnoteref-312837-2&quot; href=&quot;javascript:;&quot; class=&quot;footnoteref&quot;  &gt;2&lt;/a&gt;&lt;/sup&gt;\n\n&amp;#8212;&amp;#8212;\n\nIt was around this time Wikidot expert Shane Smith (&lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/leiger&quot;  &gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=32953&amp;amp;size=small&amp;amp;timestamp=1371653837&quot; alt=&quot;leiger&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=32953)&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/leiger&quot;  &gt;leiger&lt;/a&gt;&lt;/span&gt;) started work on a “Shane&#039;s Text Editor” (STE), a simple Java-based text editing application. Shane invited me to try it out, and I did. At the time, I wasn&#039;t too excited about it. I mean, come on! It&#039;s a text editor! What&#039;s the big deal? I already have “TextEdit” and “Notepad” on my computer.\n\nThat&#039;s to say, it was a pretty simple app at the time, a bare boned functional editor.\n\nSo then I neglected interest. Little did I realise that STE was evolving into something much bigger. Due to the newly upgraded API, Shane created a library to make the Wikidot API compatible with the Java programming language. He then started using the Wikidot API with STE.\n\nIt wasn&#039;t until April this year that I decided to revisit the STE website and see how his editor was coming along.\n\nWOW!!! No seriously, f*cking WOW!!!\n\nSTE is not just a Text Editor. It&#039;s a Wikidot Tool. It&#039;s allows you to import your Wikidot pages, edit them offline, save them to your computer (metadata included) and export it to the web when you&#039;re online.\nYou can even preview your documents using HTML preview!\n\nSince then, I&#039;ve taking a big interest in the development of STE, because it is simply an essential Wikidot tool. And from the rumors I&#039;ve been hearing lately&amp;#8230; version 4 is going to blow us away!\n\nThankyou, Shane, for making this remarkable tool!&amp;quot;&lt;br /&gt;
sig: &#039;3&#039;&lt;br /&gt;
after: &#039;PS. This blog post was posted via &lt;a href=&quot;http://www.wdeditor.com/&quot;&gt;STE&lt;/a&gt;&#039;&lt;/p&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/james-kanjo&quot;  &gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=35113&amp;amp;size=small&amp;amp;timestamp=1371653837&quot; alt=&quot;James Kanjo&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=35113)&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/james-kanjo&quot;  &gt;James Kanjo&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div class=&quot;footnotes-footer&quot;&gt;
&lt;div class=&quot;title&quot;&gt;Footnotes&lt;/div&gt;
&lt;div class=&quot;footnote-footer&quot; id=&quot;footnote-312837-1&quot;&gt;&lt;a href=&quot;javascript:;&quot;  &gt;1&lt;/a&gt;. Other programming languages were perfectly compatible with it; however, at the time, nobody had built Wikidot API libraries to make them work.&lt;/div&gt;
&lt;div class=&quot;footnote-footer&quot; id=&quot;footnote-312837-2&quot;&gt;&lt;a href=&quot;javascript:;&quot;  &gt;2&lt;/a&gt;. \n[[include :developer:inc:library-list]]\n&lt;/div&gt;
&lt;/div&gt;
</description>
				<pubDate>Wed, 27 Jul 2011 06:09:45 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>intro: &quot;Many many moons ago, Wikidot released something that they hoped, would change the future of Wikidot: <a href="http://www.wikidot.com/doc:api">Wikidot XML-RPC API</a>.\n\nI know right, I've never seen hyphenated acronyms before&#8230; and it uses the scary looking letter “X” and yet a third unknown acronym “API”.\n\n&quot;<br /> main: &quot;API means “Application Programming Interface”. In a nutshell, an API lets programmers create programming code that communicates with something (a web server, another program, a piece of computer hardware, just to name a few).\n\nXML-RPC is an API with the specific task of sending and receiving information from servers.\n\nWikidot created an API that allows us to request information about Wikidot sites. This “Wikidot API” uses the XML-RPC API to actually communicate with the Wikidot servers. So when we program with the Wikidot API, we are writing code that talks to an API that talks to another API. But you didn't have to know that part!!!\n\nAnyway, at the time, the Wikidot API only had reading privileges, and was only compatible with the Python programming language<sup class="footnoteref"><a id="footnoteref-52666-1" href="javascript:;" class="footnoteref" >1</a></sup>. But only in June last year, Wikidot upgraded their API to provide writing privileges to Wikidot sites. It wasn't until then that things really started to kick off! Because we now have writing privileges, some Wikidot users created libraries for the Wikidot API in other programming languages.<sup class="footnoteref"><a id="footnoteref-52666-2" href="javascript:;" class="footnoteref" >2</a></sup>\n\n&#8212;&#8212;\n\nIt was around this time Wikidot expert Shane Smith (<span class="printuser avatarhover"><a href="http://www.wikidot.com/user:info/leiger" ><img class="small" src="http://www.wikidot.com/avatar.php?userid=32953&amp;size=small&amp;timestamp=1371653837" alt="leiger" style="background-image:url(http://www.wikidot.com/userkarma.php?u=32953)" /></a><a href="http://www.wikidot.com/user:info/leiger" >leiger</a></span>) started work on a “Shane's Text Editor” (STE), a simple Java-based text editing application. Shane invited me to try it out, and I did. At the time, I wasn't too excited about it. I mean, come on! It's a text editor! What's the big deal? I already have “TextEdit” and “Notepad” on my computer.\n\nThat's to say, it was a pretty simple app at the time, a bare boned functional editor.\n\nSo then I neglected interest. Little did I realise that STE was evolving into something much bigger. Due to the newly upgraded API, Shane created a library to make the Wikidot API compatible with the Java programming language. He then started using the Wikidot API with STE.\n\nIt wasn't until April this year that I decided to revisit the STE website and see how his editor was coming along.\n\nWOW!!! No seriously, f*cking WOW!!!\n\nSTE is not just a Text Editor. It's a Wikidot Tool. It's allows you to import your Wikidot pages, edit them offline, save them to your computer (metadata included) and export it to the web when you're online.\nYou can even preview your documents using HTML preview!\n\nSince then, I've taking a big interest in the development of STE, because it is simply an essential Wikidot tool. And from the rumors I've been hearing lately&#8230; version 4 is going to blow us away!\n\nThankyou, Shane, for making this remarkable tool!&quot;<br /> sig: '3'<br /> after: 'PS. This blog post was posted via <a href="http://www.wdeditor.com/">STE</a>'</p> <p>by <span class="printuser avatarhover"><a href="http://www.wikidot.com/user:info/james-kanjo" ><img class="small" src="http://www.wikidot.com/avatar.php?userid=35113&amp;size=small&amp;timestamp=1371653837" alt="James Kanjo" style="background-image:url(http://www.wikidot.com/userkarma.php?u=35113)" /></a><a href="http://www.wikidot.com/user:info/james-kanjo" >James Kanjo</a></span></p> <div class="footnotes-footer"> <div class="title">Footnotes</div> <div class="footnote-footer" id="footnote-52666-1"><a href="javascript:;" >1</a>. Other programming languages were perfectly compatible with it; however, at the time, nobody had built Wikidot API libraries to make them work.</div> <div class="footnote-footer" id="footnote-52666-2"><a href="javascript:;" >2</a>. \n[[include :developer:inc:library-list]]\n</div> </div> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://james.wikidot.com/blog:74</guid>
				<title>Wikidot: Yes, I truly have lost my mind</title>
				<link>http://james.wikidot.com/blog:74</link>
				<description>

&lt;p&gt;intro: &amp;quot;So as I&#039;ve mentioned in the past, I have got this journal full of Wikidot ideas I come up with. It has well thought out designs and new mechanisms to solve problems. I never usually start on a Wikidot project without first drawing it out.\n\nUntil this weekend. I got an idea and acted upon it straight away.\n\nSo today, I am officially announcing my newest project:\n\n= &lt;span style=&quot;font-size:200%;&quot;&gt;&lt;strong&gt;The Wikidot Syntax to HTML Converter!!!&lt;/strong&gt;&lt;/span&gt;\n\nYes, what a completely pointless project. I&#039;ve lost the plot.&amp;quot;&lt;br /&gt;
main: &amp;quot;[[module ListPages category=\&amp;quot;*\&amp;quot; tags=\&amp;quot;_blog:74\&amp;quot;]]\nHere is version &lt;strong&gt;%%revisions%%&lt;/strong&gt; in it&#039;s current incomplete form. Try it out! Type in some Wikidot Syntax!\nIt&#039;s like creating a page, with instant preview!\n[&lt;a href=&quot;http://james.wikidot.com/module]]/n/n[[include&quot;&gt;private:14 hide=@@&lt;/a&gt;]\n\nInterestingly enough, I have discovered some interesting things about Wikidot through this project. Especially in the construction of the Wikidot parser itself. That&#039;s right, THE Wikidot parser.\n\nBut of course I have. Logically thinking, if I were to construct a tool that perfectly converts Wikidot syntax into HTML, in theory the tool should be very similar to the actual Wikidot parser itself.\n\nI will publish my findings later, however :)&amp;quot;&lt;br /&gt;
sig: 3&lt;br /&gt;
after: &amp;quot;&amp;quot;&lt;/p&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/james-kanjo&quot;  &gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=35113&amp;amp;size=small&amp;amp;timestamp=1371653837&quot; alt=&quot;James Kanjo&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=35113)&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/james-kanjo&quot;  &gt;James Kanjo&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
				<pubDate>Sun, 05 Jun 2011 12:57:39 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>intro: &quot;So as I've mentioned in the past, I have got this journal full of Wikidot ideas I come up with. It has well thought out designs and new mechanisms to solve problems. I never usually start on a Wikidot project without first drawing it out.\n\nUntil this weekend. I got an idea and acted upon it straight away.\n\nSo today, I am officially announcing my newest project:\n\n= <span style="font-size:200%;"><strong>The Wikidot Syntax to HTML Converter!!!</strong></span>\n\nYes, what a completely pointless project. I've lost the plot.&quot;<br /> main: &quot;[[module ListPages category=\&quot;*\&quot; tags=\&quot;_blog:74\&quot;]]\nHere is version <strong>%%revisions%%</strong> in it's current incomplete form. Try it out! Type in some Wikidot Syntax!\nIt's like creating a page, with instant preview!\n[<a href="http://james.wikidot.com/module]]/n/n[[include">private:14 hide=@@</a>]\n\nInterestingly enough, I have discovered some interesting things about Wikidot through this project. Especially in the construction of the Wikidot parser itself. That's right, THE Wikidot parser.\n\nBut of course I have. Logically thinking, if I were to construct a tool that perfectly converts Wikidot syntax into HTML, in theory the tool should be very similar to the actual Wikidot parser itself.\n\nI will publish my findings later, however :)&quot;<br /> sig: 3<br /> after: &quot;&quot;</p> <p>by <span class="printuser avatarhover"><a href="http://www.wikidot.com/user:info/james-kanjo" ><img class="small" src="http://www.wikidot.com/avatar.php?userid=35113&amp;size=small&amp;timestamp=1371653837" alt="James Kanjo" style="background-image:url(http://www.wikidot.com/userkarma.php?u=35113)" /></a><a href="http://www.wikidot.com/user:info/james-kanjo" >James Kanjo</a></span></p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://james.wikidot.com/blog:73</guid>
				<title>Wikidot: Password Verification Server</title>
				<link>http://james.wikidot.com/blog:73</link>
				<description>

&lt;p&gt;intro: &amp;quot;So lately I&#039;ve been fantasising several ideas for Wikidot projects I could do. And by “lately”, I mean over the past &lt;span class=&quot;odate time_1189216564&quot;&gt;08 Sep 2007 01:56&lt;/span&gt; of my life (since I joined Wikidot). I actually have this journal dedicated to programming concepts and ideas for Wikidot, that has hand-drawn designs, lines of code, trial &amp;amp; error formulas, ideas and the main architecture of my Wikidot endeavours.\n\nAnyways, today I&#039;m launching something new:\n\n= &lt;span style=&quot;font-size:200%;&quot;&gt;&lt;a href=&quot;http://password.wikidot.com&quot;&gt;The Password Verification Server&lt;/a&gt;&lt;/span&gt;&amp;quot;&lt;br /&gt;
main: &amp;quot;The Password Verification Server (PVS) allows you to:\n* Create a password-controlled text box\n* Forward users with the correct password to hidden web pages\n* Display a customisable message to users who enter the correct password\n\nBut what better way to explain the PVS than to demonstrate it live?\n\n&lt;/p&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;\n&lt;strong&gt;What does 2+2 equal?&lt;/strong&gt;\n&lt;/td&gt;
&lt;td&gt;\n[[include :csi:password key=5cf295a9bb96b20adf2380fe035629477bd33ce11afa03f25528cc1977e3a0a6]]\n&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;\n\nFor security purposes, the PVS doesn&#039;t store passwords directly on the server. Passwords are encrypted on the user&#039;s machine before they are sent to the server, using a one-way encryption (SHA-256). This means that no amount of hacking can reveal your password.\n\nActually, passwords are, in a way, encrypted twice before storing them on the server, so there&#039;s no possible way of reverse-engineering them or guessing them through brute force. They are safely stored.\n\n&amp;#8212;&amp;#8212;\n\nI learnt a lot of things through this project. Take encryption and hashing, for example. I had to research all about it and learn about the weaknesses and strengths of different algorithms. Eventually I decided that SHA-256 would suit the needs of the PVS.\n\nSo now that you know about the PVS, I highly recommend that you GO AHEAD and PLAY WITH IT!!! Have some password fun! Make sure that the countless hours I&#039;ve invested in this project weren&#039;t done in vain!!!&amp;quot;&lt;br /&gt;
sig: &#039;3&#039;&lt;br /&gt;
after: &#039;&#039;&lt;/p&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/james-kanjo&quot;  &gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=35113&amp;amp;size=small&amp;amp;timestamp=1371653837&quot; alt=&quot;James Kanjo&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=35113)&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/james-kanjo&quot;  &gt;James Kanjo&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
				<pubDate>Fri, 27 May 2011 14:21:46 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>intro: &quot;So lately I've been fantasising several ideas for Wikidot projects I could do. And by “lately”, I mean over the past <span class="odate time_1189216564">08 Sep 2007 01:56</span> of my life (since I joined Wikidot). I actually have this journal dedicated to programming concepts and ideas for Wikidot, that has hand-drawn designs, lines of code, trial &amp; error formulas, ideas and the main architecture of my Wikidot endeavours.\n\nAnyways, today I'm launching something new:\n\n= <span style="font-size:200%;"><a href="http://password.wikidot.com">The Password Verification Server</a></span>&quot;<br /> main: &quot;The Password Verification Server (PVS) allows you to:\n* Create a password-controlled text box\n* Forward users with the correct password to hidden web pages\n* Display a customisable message to users who enter the correct password\n\nBut what better way to explain the PVS than to demonstrate it live?\n\n</p> <table> <tr> <td>\n<strong>What does 2+2 equal?</strong>\n</td> <td>\n[[include :csi:password key=5cf295a9bb96b20adf2380fe035629477bd33ce11afa03f25528cc1977e3a0a6]]\n</td> </tr> </table> <p>\n\nFor security purposes, the PVS doesn't store passwords directly on the server. Passwords are encrypted on the user's machine before they are sent to the server, using a one-way encryption (SHA-256). This means that no amount of hacking can reveal your password.\n\nActually, passwords are, in a way, encrypted twice before storing them on the server, so there's no possible way of reverse-engineering them or guessing them through brute force. They are safely stored.\n\n&#8212;&#8212;\n\nI learnt a lot of things through this project. Take encryption and hashing, for example. I had to research all about it and learn about the weaknesses and strengths of different algorithms. Eventually I decided that SHA-256 would suit the needs of the PVS.\n\nSo now that you know about the PVS, I highly recommend that you GO AHEAD and PLAY WITH IT!!! Have some password fun! Make sure that the countless hours I've invested in this project weren't done in vain!!!&quot;<br /> sig: '3'<br /> after: ''</p> <p>by <span class="printuser avatarhover"><a href="http://www.wikidot.com/user:info/james-kanjo" ><img class="small" src="http://www.wikidot.com/avatar.php?userid=35113&amp;size=small&amp;timestamp=1371653837" alt="James Kanjo" style="background-image:url(http://www.wikidot.com/userkarma.php?u=35113)" /></a><a href="http://www.wikidot.com/user:info/james-kanjo" >James Kanjo</a></span></p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://james.wikidot.com/blog:68</guid>
				<title>Wikidot: Descendant Database</title>
				<link>http://james.wikidot.com/blog:68</link>
				<description>

&lt;p&gt;intro: &amp;quot;I have some exciting news&amp;#8230; I&#039;ve just about completed a Wikidot project that has taken over a year to do: the Descendant Database.\n\n[[include inc:image |category=blog |name=68 |image=jameskanjo-family-tree.png |width=700px |caption=Pretty snazzy, aye?]]&amp;quot;&lt;br /&gt;
main: &amp;quot;But first, perhaps you&#039;re wondering, &lt;a href=&quot;http://james.wikidot.com/blog:57&quot;&gt;Where did James go???&lt;/a&gt;\n\nI&#039;m a busy man these days; I don&#039;t get enough time to spend with my cool programming hobby :(\n\nBut recently, however, I have been able to get back into it :)\n\n&lt;span style=&quot;text-decoration: line-through;&quot;&gt;&amp;#8212;\n\nSo anyway, I announced that I was working on a project 12 months ago&amp;#8230; but then I didn&#039;t launch it.\n\n&amp;gt; &lt;em&gt;Currently, the user interface is in development, and not ready for public usage yet. However, the functionality exists and is working beautifully&lt;/em&gt;\n\nWell basically, the functionality &lt;em&gt;wasn&#039;t&lt;/em&gt; working beautifully. I found some glitches and was stumped with some limitations that made the “Families” project impossible. But due to a recent &lt;a href=&quot;http://csi.wikidot.com/package:40&quot; target=&quot;_blank&quot;&gt;significant achievement&lt;/a&gt; by Wikidot user &lt;span class=&quot;printuser&quot;&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/tsangk&quot;  &gt;tsangk&lt;/a&gt;&lt;/span&gt;, I was finally able to overcome these limitations and finally complete this amazing project!\n\n&lt;/span&gt;&lt;span style=&quot;text-decoration: line-through;&quot;&gt;\n\nHow does it work? It uses tags, hidden tags, page parenting, Data Forms, PagePaths, the Extended NewPage module, the CSS module, the iftags syntax, the ListPages module and the &lt;a href=&quot;http://csi.wikidot.com/package:40&quot; target=&quot;_blank&quot;&gt;Nestable ListPages&lt;/a&gt; module.\n\nOne of the biggest problems I had was developing a user-friendly way to present the family tree. It used to be terribly abstract and ugly&amp;#8230;\n\nAnyway, another challenge was in the mechanics of the database. Because it uses incredibly complex use of data storage, I needed to install a form of “database validation” to correct any errors that may occur. And because human families are constantly changing and growing in complexity, it&#039;s easy to type in the incorrect information regarding a person.\n\nThe error detection was a huge challenge actually&amp;#8230; at first the idea was to check if the variables for each entity make sense. If not it would tell you which variables didn&#039;t make sense. But then I needed the error message to explain &lt;em&gt;why&lt;/em&gt; the variable didn&#039;t make sense.\nThe more I worked on the database validation, however, the more it transformed into something else. Something better.\n\nInstead of telling you there&#039;s a problem with x variable, it simply tells you how to fix it. Exactly how. It&#039;s as simple as “copy and paste this text over there, and click save”\n\n&lt;/span&gt;&lt;span style=&quot;text-decoration: line-through;&quot;&gt;\n\nHowever it does have a limitation: It can only retrieve family relations separated by 0 or 1 degrees. So it can&#039;t do cousins or great relations:\n\n||~ Relative ||~ Connection ||~ Degrees of Separation ||\n|| Parent || You &amp;#187; Parent || Zero = Possible ||\n|| Sibling || You &amp;#187; Sibling || Zero = Possible ||\n|| Child || You &amp;#187; Child || Zero = Possible ||\n||||||~ ||\n|| Grandparent || You &amp;#187; Parent &amp;#187; Grandparent || One = Possible ||\n|| Aunt/Uncle || You &amp;#187; Parent &amp;#187; Aunt/Uncle || One = Possible ||\n|| Niece/Nephew || You &amp;#187; Sibling &amp;#187; Child || One = Possible ||\n|| Grandchild || You &amp;#187; Child &amp;#187; Grandchild || One = Possible ||\n||||||~ ||\n|| Cousin || You &amp;#187; Parent &amp;#187; Aunt/Uncle &amp;#187; Cousin || Two = Impossible ||\n|| Great-grandparent || You &amp;#187; Parent &amp;#187; Grandparent &amp;#187; Great-grandparent || Two = Impossible ||\n|| Great-grandchild || You &amp;#187; Child &amp;#187; Grandchild &amp;#187; Great-grandchild || Two = Impossible ||\n\n&lt;/span&gt;&amp;#8212;\n\nFor now, the project hasn&#039;t been launched yet. What&#039;s holding it up this time? I haven&#039;t created an installation process yet :)\n\nUntil then, feel free to check out this &lt;a href=&quot;http://family-trees.wikidot.com/&quot;&gt;mini-showcase&lt;/a&gt;.&amp;quot;&lt;br /&gt;
sig: &#039;3&#039;&lt;br /&gt;
after: &#039;&#039;&lt;/p&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/james-kanjo&quot;  &gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=35113&amp;amp;size=small&amp;amp;timestamp=1371653837&quot; alt=&quot;James Kanjo&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=35113)&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/james-kanjo&quot;  &gt;James Kanjo&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
				<pubDate>Mon, 29 Nov 2010 12:34:37 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>intro: &quot;I have some exciting news&#8230; I've just about completed a Wikidot project that has taken over a year to do: the Descendant Database.\n\n[[include inc:image |category=blog |name=68 |image=jameskanjo-family-tree.png |width=700px |caption=Pretty snazzy, aye?]]&quot;<br /> main: &quot;But first, perhaps you're wondering, <a href="http://james.wikidot.com/blog:57">Where did James go???</a>\n\nI'm a busy man these days; I don't get enough time to spend with my cool programming hobby :(\n\nBut recently, however, I have been able to get back into it :)\n\n<span style="text-decoration: line-through;">&#8212;\n\nSo anyway, I announced that I was working on a project 12 months ago&#8230; but then I didn't launch it.\n\n&gt; <em>Currently, the user interface is in development, and not ready for public usage yet. However, the functionality exists and is working beautifully</em>\n\nWell basically, the functionality <em>wasn't</em> working beautifully. I found some glitches and was stumped with some limitations that made the “Families” project impossible. But due to a recent <a href="http://csi.wikidot.com/package:40" target="_blank">significant achievement</a> by Wikidot user <span class="printuser"><a href="http://www.wikidot.com/user:info/tsangk" >tsangk</a></span>, I was finally able to overcome these limitations and finally complete this amazing project!\n\n</span><span style="text-decoration: line-through;">\n\nHow does it work? It uses tags, hidden tags, page parenting, Data Forms, PagePaths, the Extended NewPage module, the CSS module, the iftags syntax, the ListPages module and the <a href="http://csi.wikidot.com/package:40" target="_blank">Nestable ListPages</a> module.\n\nOne of the biggest problems I had was developing a user-friendly way to present the family tree. It used to be terribly abstract and ugly&#8230;\n\nAnyway, another challenge was in the mechanics of the database. Because it uses incredibly complex use of data storage, I needed to install a form of “database validation” to correct any errors that may occur. And because human families are constantly changing and growing in complexity, it's easy to type in the incorrect information regarding a person.\n\nThe error detection was a huge challenge actually&#8230; at first the idea was to check if the variables for each entity make sense. If not it would tell you which variables didn't make sense. But then I needed the error message to explain <em>why</em> the variable didn't make sense.\nThe more I worked on the database validation, however, the more it transformed into something else. Something better.\n\nInstead of telling you there's a problem with x variable, it simply tells you how to fix it. Exactly how. It's as simple as “copy and paste this text over there, and click save”\n\n</span><span style="text-decoration: line-through;">\n\nHowever it does have a limitation: It can only retrieve family relations separated by 0 or 1 degrees. So it can't do cousins or great relations:\n\n||~ Relative ||~ Connection ||~ Degrees of Separation ||\n|| Parent || You &#187; Parent || Zero = Possible ||\n|| Sibling || You &#187; Sibling || Zero = Possible ||\n|| Child || You &#187; Child || Zero = Possible ||\n||||||~ ||\n|| Grandparent || You &#187; Parent &#187; Grandparent || One = Possible ||\n|| Aunt/Uncle || You &#187; Parent &#187; Aunt/Uncle || One = Possible ||\n|| Niece/Nephew || You &#187; Sibling &#187; Child || One = Possible ||\n|| Grandchild || You &#187; Child &#187; Grandchild || One = Possible ||\n||||||~ ||\n|| Cousin || You &#187; Parent &#187; Aunt/Uncle &#187; Cousin || Two = Impossible ||\n|| Great-grandparent || You &#187; Parent &#187; Grandparent &#187; Great-grandparent || Two = Impossible ||\n|| Great-grandchild || You &#187; Child &#187; Grandchild &#187; Great-grandchild || Two = Impossible ||\n\n</span>&#8212;\n\nFor now, the project hasn't been launched yet. What's holding it up this time? I haven't created an installation process yet :)\n\nUntil then, feel free to check out this <a href="http://family-trees.wikidot.com/">mini-showcase</a>.&quot;<br /> sig: '3'<br /> after: ''</p> <p>by <span class="printuser avatarhover"><a href="http://www.wikidot.com/user:info/james-kanjo" ><img class="small" src="http://www.wikidot.com/avatar.php?userid=35113&amp;size=small&amp;timestamp=1371653837" alt="James Kanjo" style="background-image:url(http://www.wikidot.com/userkarma.php?u=35113)" /></a><a href="http://www.wikidot.com/user:info/james-kanjo" >James Kanjo</a></span></p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://james.wikidot.com/blog:67</guid>
				<title>Launching: Multilingual Framework</title>
				<link>http://james.wikidot.com/blog:67</link>
				<description>

&lt;p&gt;intro: &amp;quot;[[include inc:image |category=blog |name=67 |image=jameskanjo_ml_showcase.png |width=300px |float=right |caption=Hooray! |link=&lt;a href=&quot;http://ml-showcase.wikidot.com/start/ml_tags/ja]]/n/nAs&quot;&gt;http://ml-showcase.wikidot.com/start/ml_tags/ja]]\n\nAs&lt;/a&gt; mentioned in one of my &lt;a href=&quot;http://james.wikidot.com/blog:64&quot;&gt;previous blog entries&lt;/a&gt;, I had planned to release a framework for Multilingual Support within Wikidot.\n\nThough at the time it was 90% complete in beta stage, I became extremely preoccupied with my day-to-day life. Only until this weekend have I been able to slow down and relax, which brought me to finishing this project once and for all! I present to you the:\n\n= &lt;span style=&quot;font-size:300%;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #f00&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;M&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fa0&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;U&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff0&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;L&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0f0&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;T&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0ff&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;I&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #508&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;L&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #f8f&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;I&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #f00&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;N&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #f00&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;G&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fa0&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;U&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff0&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;A&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0f0&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;L&lt;/span&gt;&lt;/span&gt; &lt;span style=&quot;color: #0ff&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;S&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #508&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;H&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #f8f&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;O&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #f00&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;W&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fa0&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;C&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff0&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;A&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0f0&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;S&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0ff&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;E&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #508&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;!&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&amp;quot;&lt;br /&gt;
main: &amp;quot;So how does it work?\n\nTo put it simply, it uses a combination of (autonumbered)categorising, tagging and parenting.\nMore explained, all translated pages are stored (autonumbered) in the &lt;tt&gt;ml&lt;/tt&gt; category. Each translated page is tagged with the language it is translated into, and then parented to the original page.\nThrough using advanced Wikidot programming&lt;sup class=&quot;footnoteref&quot;&gt;&lt;a id=&quot;footnoteref-421427-1&quot; href=&quot;javascript:;&quot; class=&quot;footnoteref&quot;  &gt;1&lt;/a&gt;&lt;/sup&gt;, I have managed to create a multilingual interface that:\n* Is automatic;\n* Is customisable;\n* Is easily installed on top of pre-existing projects/sites;\n* Keeps track of which languages each page has been translated into;\n* Allows you to control which languages you can translate into (per category);\n* Gives you the ability to select the default language (per category).\n\nIt does come with a couple of pitfalls, sadly:\n* It doesn&#039;t work with Wikidot Data Forms;\n* On translated pages, you are unable to use the ListPages module (however, you CAN use the ListPages module on the default language&#039;s version).\n\nOverall, I&#039;m glad to finally launch this framework. I sure hope it is able to meet the needs of all Wikidot users alike. You can install the Multilingual Framework &lt;a href=&quot;http://multilingual.wikidot.com/&quot;&gt;here&lt;/a&gt;.&amp;quot;&lt;br /&gt;
sig: &#039;3&#039;&lt;br /&gt;
after: &#039;&#039;&lt;/p&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/james-kanjo&quot;  &gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=35113&amp;amp;size=small&amp;amp;timestamp=1371653837&quot; alt=&quot;James Kanjo&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=35113)&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/james-kanjo&quot;  &gt;James Kanjo&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div class=&quot;footnotes-footer&quot;&gt;
&lt;div class=&quot;title&quot;&gt;Footnotes&lt;/div&gt;
&lt;div class=&quot;footnote-footer&quot; id=&quot;footnote-421427-1&quot;&gt;&lt;a href=&quot;javascript:;&quot;  &gt;1&lt;/a&gt;. I&#039;ve got to give myself some credit here, it was f**king hard to get it functioning perfectly!&lt;/div&gt;
&lt;/div&gt;
</description>
				<pubDate>Sun, 12 Sep 2010 04:40:04 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>intro: &quot;[[include inc:image |category=blog |name=67 |image=jameskanjo_ml_showcase.png |width=300px |float=right |caption=Hooray! |link=<a href="http://ml-showcase.wikidot.com/start/ml_tags/ja]]/n/nAs">http://ml-showcase.wikidot.com/start/ml_tags/ja]]\n\nAs</a> mentioned in one of my <a href="http://james.wikidot.com/blog:64">previous blog entries</a>, I had planned to release a framework for Multilingual Support within Wikidot.\n\nThough at the time it was 90% complete in beta stage, I became extremely preoccupied with my day-to-day life. Only until this weekend have I been able to slow down and relax, which brought me to finishing this project once and for all! I present to you the:\n\n= <span style="font-size:300%;"><strong><span style="color: #f00"><span style="text-decoration: underline;">M</span></span><span style="color: #fa0"><span style="text-decoration: underline;">U</span></span><span style="color: #ff0"><span style="text-decoration: underline;">L</span></span><span style="color: #0f0"><span style="text-decoration: underline;">T</span></span><span style="color: #0ff"><span style="text-decoration: underline;">I</span></span><span style="color: #508"><span style="text-decoration: underline;">L</span></span><span style="color: #f8f"><span style="text-decoration: underline;">I</span></span><span style="color: #f00"><span style="text-decoration: underline;">N</span></span><span style="color: #f00"><span style="text-decoration: underline;">G</span></span><span style="color: #fa0"><span style="text-decoration: underline;">U</span></span><span style="color: #ff0"><span style="text-decoration: underline;">A</span></span><span style="color: #0f0"><span style="text-decoration: underline;">L</span></span> <span style="color: #0ff"><span style="text-decoration: underline;">S</span></span><span style="color: #508"><span style="text-decoration: underline;">H</span></span><span style="color: #f8f"><span style="text-decoration: underline;">O</span></span><span style="color: #f00"><span style="text-decoration: underline;">W</span></span><span style="color: #fa0"><span style="text-decoration: underline;">C</span></span><span style="color: #ff0"><span style="text-decoration: underline;">A</span></span><span style="color: #0f0"><span style="text-decoration: underline;">S</span></span><span style="color: #0ff"><span style="text-decoration: underline;">E</span></span><span style="color: #508"><span style="text-decoration: underline;">!</span></span></strong></span>&quot;<br /> main: &quot;So how does it work?\n\nTo put it simply, it uses a combination of (autonumbered)categorising, tagging and parenting.\nMore explained, all translated pages are stored (autonumbered) in the <tt>ml</tt> category. Each translated page is tagged with the language it is translated into, and then parented to the original page.\nThrough using advanced Wikidot programming<sup class="footnoteref"><a id="footnoteref-443498-1" href="javascript:;" class="footnoteref" >1</a></sup>, I have managed to create a multilingual interface that:\n* Is automatic;\n* Is customisable;\n* Is easily installed on top of pre-existing projects/sites;\n* Keeps track of which languages each page has been translated into;\n* Allows you to control which languages you can translate into (per category);\n* Gives you the ability to select the default language (per category).\n\nIt does come with a couple of pitfalls, sadly:\n* It doesn't work with Wikidot Data Forms;\n* On translated pages, you are unable to use the ListPages module (however, you CAN use the ListPages module on the default language's version).\n\nOverall, I'm glad to finally launch this framework. I sure hope it is able to meet the needs of all Wikidot users alike. You can install the Multilingual Framework <a href="http://multilingual.wikidot.com/">here</a>.&quot;<br /> sig: '3'<br /> after: ''</p> <p>by <span class="printuser avatarhover"><a href="http://www.wikidot.com/user:info/james-kanjo" ><img class="small" src="http://www.wikidot.com/avatar.php?userid=35113&amp;size=small&amp;timestamp=1371653837" alt="James Kanjo" style="background-image:url(http://www.wikidot.com/userkarma.php?u=35113)" /></a><a href="http://www.wikidot.com/user:info/james-kanjo" >James Kanjo</a></span></p> <div class="footnotes-footer"> <div class="title">Footnotes</div> <div class="footnote-footer" id="footnote-443498-1"><a href="javascript:;" >1</a>. I've got to give myself some credit here, it was f**king hard to get it functioning perfectly!</div> </div> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://james.wikidot.com/blog:64</guid>
				<title>Multilingual Support</title>
				<link>http://james.wikidot.com/blog:64</link>
				<description>

&lt;p&gt;intro: &amp;quot;[[include inc:image |category=images |name=pets |image=jameskanjo-tiger.jpg |width=290px |float=right |caption=Support for Cat-speak?\n© James Kanjo, 2010]]\n\nI will be honest. I never cared a bit for multilingual support on websites. But throughout Wikidot, it is something that is cried out for time after time after time!\n\nWhenever a new wiki is developed, there is always somebody to complain “It supports English only. Why can&#039;t you give us multilingual support”. And although I wasn&#039;t the target, I just always thought to myself “English is the universal language&amp;#8230; why cater to anything else?”\n\nBut it is time I changed my attitude, and listen to the NEEDS of the people.&amp;quot;&lt;br /&gt;
main: &amp;quot;Multilingual support makes so much sense. There&#039;s nothing stupid about demanding this feature:\n* It makes your product cater to anybody who speaks a language\n* Means there is no “lost in translation” scenarios\n* Expands the customers you can market your product to\n\nIt&#039;s win-win&amp;#8230; there&#039;s no way you can lose from providing multilingual support — with, of course, the exception case where you are marketing a crappy product ;-)\n\nSo how do we do this so that it works in Wikidot? First, let&#039;s look at the previous propositions to this concept.\n\n&lt;span style=&quot;text-decoration: line-through;&quot;&gt;&amp;#8212;\n\n+ Languages via Subdomain\n\nThis is famously used by the Wikimedia Foundation. Firstly you have a site, let&#039;s say, &lt;tt&gt;wikipedia.org&lt;/tt&gt;, where you are creating an online encyclopaedia. For each article is stored on a subdomain based on the language it is written in. If it is written in English, then it is stored on &lt;tt&gt;&lt;strong&gt;en.&lt;/strong&gt;wikipedia.org&lt;/tt&gt;. If it is written in French, then it is stored on &lt;tt&gt;&lt;strong&gt;fr.&lt;/strong&gt;wikipedia.org&lt;/tt&gt;.\n\nNow this seems like a really good way to manage your site&amp;#8230; and it &lt;em&gt;is&lt;/em&gt; a good way to do it. But it&#039;s expensive to implement a system to be able to do that.\n\nIf we were to do something like this in Wikidot, it would look like this:\n\n* &lt;tt&gt;site-en.wikidot.com/people&lt;/tt&gt; — English\n* &lt;tt&gt;site-fr.wikidot.com/people&lt;/tt&gt; — French\n\nThis is not particularly friendly to me. If you make a structure change in one site, you need to make it in the other sites. If an article doesn&#039;t exist in one language, then it&#039;s not going to show you the other languages that the article is available in. Also, I&#039;m pretty sure the word “people” in English translates into a different word in French, so by changing the subdomain name, you may get the incorrect article (or no article at all).\n\n+ Languages via Wikidot Category\n\nThis is a concept that is currently used in &lt;tt&gt;&lt;a href=&quot;http://handbook.wikidot.com&quot;&gt;handbook.wikidot.com&lt;/a&gt;&lt;/tt&gt;. Essentially, instead of having a new subdomain, you contain variations of the same articles in language categories:\n\n* &lt;tt&gt;site.wikidot.com/en:people&lt;/tt&gt; — English\n* &lt;tt&gt;site.wikidot.com/fr:people&lt;/tt&gt; — French\n\nThis system works well as well, as you can display an automated list of all of the pages in that language. However two problems still remain: 1) the word “people” translates differently. 2) Live templates are applied “per language” rather than “per category”.\n\n+ Languages via Wikidot Tag\n\nTagging is a brilliant way to manage your pages. If done correctly, you can select all pages from a certain language. But how then do you name articles for different languages? You can tag the language of a page, but then you&#039;ll need to find a way to link different languages of the same article.\n\n+ Languages via Wikidot Parent\n\nThe original purpose of Parenting in Wikidot was to create a neat breadcrumb navigation and display an organised tree diagram of your site.\n\nEssentially, parenting assigns a special parent-child relationship between pages. If you learn how to use this bond effectively, you can create a bunch of translated pages, and link them to the original article. With this method, it doesn&#039;t matter what you name the translated pages, because you can create an automated list of page translations on the original article.\n\nBut this isn&#039;t very effective if you just have a bunch of translated pages organised in random places. If you kept all translations in a single category, it stumps yourself into a previously mentioned problem: translated pages will be assigned a different Live template to the original page.\n\n&lt;/span&gt;&amp;#8212;\n\nMy latest project revolves around Multilingual Support in Wikidot, because only then can we expand the horizons of Wikidot&#039;s potential&amp;#8230; and I&#039;m passionate about expanding the horizons of Wikidot&#039;s potential :)\n\nWhen will this new technology come out? It is already fully functional and in beta testing!\n\nI can&#039;t wait to launch it!&amp;quot;&lt;br /&gt;
sig: &#039;3&#039;&lt;br /&gt;
after: &#039;&#039;&lt;/p&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/james-kanjo&quot;  &gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=35113&amp;amp;size=small&amp;amp;timestamp=1371653837&quot; alt=&quot;James Kanjo&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=35113)&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/james-kanjo&quot;  &gt;James Kanjo&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
				<pubDate>Mon, 10 May 2010 04:37:43 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>intro: &quot;[[include inc:image |category=images |name=pets |image=jameskanjo-tiger.jpg |width=290px |float=right |caption=Support for Cat-speak?\n© James Kanjo, 2010]]\n\nI will be honest. I never cared a bit for multilingual support on websites. But throughout Wikidot, it is something that is cried out for time after time after time!\n\nWhenever a new wiki is developed, there is always somebody to complain “It supports English only. Why can't you give us multilingual support”. And although I wasn't the target, I just always thought to myself “English is the universal language&#8230; why cater to anything else?”\n\nBut it is time I changed my attitude, and listen to the NEEDS of the people.&quot;<br /> main: &quot;Multilingual support makes so much sense. There's nothing stupid about demanding this feature:\n* It makes your product cater to anybody who speaks a language\n* Means there is no “lost in translation” scenarios\n* Expands the customers you can market your product to\n\nIt's win-win&#8230; there's no way you can lose from providing multilingual support — with, of course, the exception case where you are marketing a crappy product ;-)\n\nSo how do we do this so that it works in Wikidot? First, let's look at the previous propositions to this concept.\n\n<span style="text-decoration: line-through;">&#8212;\n\n+ Languages via Subdomain\n\nThis is famously used by the Wikimedia Foundation. Firstly you have a site, let's say, <tt>wikipedia.org</tt>, where you are creating an online encyclopaedia. For each article is stored on a subdomain based on the language it is written in. If it is written in English, then it is stored on <tt><strong>en.</strong>wikipedia.org</tt>. If it is written in French, then it is stored on <tt><strong>fr.</strong>wikipedia.org</tt>.\n\nNow this seems like a really good way to manage your site&#8230; and it <em>is</em> a good way to do it. But it's expensive to implement a system to be able to do that.\n\nIf we were to do something like this in Wikidot, it would look like this:\n\n* <tt>site-en.wikidot.com/people</tt> — English\n* <tt>site-fr.wikidot.com/people</tt> — French\n\nThis is not particularly friendly to me. If you make a structure change in one site, you need to make it in the other sites. If an article doesn't exist in one language, then it's not going to show you the other languages that the article is available in. Also, I'm pretty sure the word “people” in English translates into a different word in French, so by changing the subdomain name, you may get the incorrect article (or no article at all).\n\n+ Languages via Wikidot Category\n\nThis is a concept that is currently used in <tt><a href="http://handbook.wikidot.com">handbook.wikidot.com</a></tt>. Essentially, instead of having a new subdomain, you contain variations of the same articles in language categories:\n\n* <tt>site.wikidot.com/en:people</tt> — English\n* <tt>site.wikidot.com/fr:people</tt> — French\n\nThis system works well as well, as you can display an automated list of all of the pages in that language. However two problems still remain: 1) the word “people” translates differently. 2) Live templates are applied “per language” rather than “per category”.\n\n+ Languages via Wikidot Tag\n\nTagging is a brilliant way to manage your pages. If done correctly, you can select all pages from a certain language. But how then do you name articles for different languages? You can tag the language of a page, but then you'll need to find a way to link different languages of the same article.\n\n+ Languages via Wikidot Parent\n\nThe original purpose of Parenting in Wikidot was to create a neat breadcrumb navigation and display an organised tree diagram of your site.\n\nEssentially, parenting assigns a special parent-child relationship between pages. If you learn how to use this bond effectively, you can create a bunch of translated pages, and link them to the original article. With this method, it doesn't matter what you name the translated pages, because you can create an automated list of page translations on the original article.\n\nBut this isn't very effective if you just have a bunch of translated pages organised in random places. If you kept all translations in a single category, it stumps yourself into a previously mentioned problem: translated pages will be assigned a different Live template to the original page.\n\n</span>&#8212;\n\nMy latest project revolves around Multilingual Support in Wikidot, because only then can we expand the horizons of Wikidot's potential&#8230; and I'm passionate about expanding the horizons of Wikidot's potential :)\n\nWhen will this new technology come out? It is already fully functional and in beta testing!\n\nI can't wait to launch it!&quot;<br /> sig: '3'<br /> after: ''</p> <p>by <span class="printuser avatarhover"><a href="http://www.wikidot.com/user:info/james-kanjo" ><img class="small" src="http://www.wikidot.com/avatar.php?userid=35113&amp;size=small&amp;timestamp=1371653837" alt="James Kanjo" style="background-image:url(http://www.wikidot.com/userkarma.php?u=35113)" /></a><a href="http://www.wikidot.com/user:info/james-kanjo" >James Kanjo</a></span></p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://james.wikidot.com/blog:62</guid>
				<title>Wikidot: Specific Users Only</title>
				<link>http://james.wikidot.com/blog:62</link>
				<description>

&lt;p&gt;intro: &amp;quot;One of the commonly asked requests in Wikidot is to show certain blocks of information to a special selection of users. For example, let&#039;s say that you have some administrator links and functions in your sidebar:\n&amp;gt; &lt;span style=&quot;white-space: pre-wrap;&quot;&gt;[[[site-administrators&amp;#32;|Information&amp;#32;for&amp;#32;Site&amp;#32;Administrators&amp;#32;only]]]&lt;/span&gt;\n&amp;gt; &lt;span style=&quot;white-space: pre-wrap;&quot;&gt;[[[admin:manage&amp;#32;|Site&amp;#32;Manger]]]&lt;/span&gt;\n&amp;gt; &lt;span style=&quot;white-space: pre-wrap;&quot;&gt;[[module&amp;#32;NewPage&amp;#32;category=\&amp;quot;blog\&amp;quot;&amp;#32;button=\&amp;quot;New&amp;#32;Blog&amp;#32;Entry\&amp;quot;]]&lt;/span&gt;\n\nNow, you don&#039;t want to show this sort of information to anybody other than the &lt;strong&gt;Administrators&lt;/strong&gt; on your site. It should be completely invisible to every anonymous person, every member and every moderator.\n\nWould you believe me if I told you that the blog you are reading right now, has been doing this for three weeks now? Let me show you an image of what I&#039;m looking at:\n\n[[include inc:image |category=blog |name=62 |image=jameskanjo-suo.jpg |width=300px |caption=Only James Kanjo sees this!!!]]&amp;quot;&lt;br /&gt;
main: &amp;quot;The beauty about is that it&#039;s so easy to do! In fact, it&#039;s as simple as a Wikidot CSI that I have created for public use: &lt;a href=&quot;http://snippets.wikidot.com/code:specific-users-only&quot;&gt;Specific Users Only Include&lt;/a&gt;.\n\nGive it a try! It&#039;s fantastic!\n\nActually, I&#039;ll give it a try for you:\n\n[[div class=\&amp;quot;code\&amp;quot;]]\n&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;[[include&amp;#32;:snippets:suo&amp;#32;BEGIN&amp;#32;CODE&amp;#32;|unique=first&amp;#32;|type=&lt;/span&gt;&lt;strong&gt;showto&lt;/strong&gt;&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;&amp;#32;|user1=james-kanjo&amp;#32;|user2=michal-frackowiak]]&lt;/span&gt;\n&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;**Hello&amp;#32;James&amp;#32;Kanjo&amp;#32;&amp;amp;&amp;#32;Michał&amp;#32;Frąckowiak!!!**&lt;/span&gt;\n&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;[[include&amp;#32;:snippets:suo&amp;#32;END&amp;#32;CODE]]&lt;/span&gt;\n\n&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;[[include&amp;#32;:snippets:suo&amp;#32;BEGIN&amp;#32;CODE&amp;#32;|unique=second&amp;#32;|type=&lt;/span&gt;&lt;strong&gt;hidefrom&lt;/strong&gt;&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;&amp;#32;|user1=james-kanjo&amp;#32;|user2=michal-frackowiak]]&lt;/span&gt;\n&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;**Hello&amp;#32;Everybody&amp;#32;Else!!!**&lt;/span&gt;\n&lt;span style=&quot;white-space: pre-wrap;&quot;&gt;[[include&amp;#32;:snippets:suo&amp;#32;END&amp;#32;CODE]]&lt;/span&gt;\n[&lt;a href=&quot;http://james.wikidot.com/div]]/n/n+&quot;&gt;##811|In Action:##\n\n[[include :snippets:suo BEGIN CODE |unique=first |type=showto |user1=james-kanjo |user2=michal-frackowiak&lt;/a&gt;]\n&lt;strong&gt;Hello James Kanjo &amp;amp; Michał Frąckowiak!!!&lt;/strong&gt;\n[[include :snippets:suo END CODE]]\n\n[[include :snippets:suo BEGIN CODE |unique=second |type=hidefrom |user1=james-kanjo |user2=michal-frackowiak]]\n&lt;strong&gt;Hello Everybody Else!!!&lt;/strong&gt;\n[[include :snippets:suo END CODE]]\n\nEnjoy!&amp;quot;&lt;br /&gt;
sig: &#039;3&#039;&lt;br /&gt;
after: &#039;&#039;&lt;/p&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/james-kanjo&quot;  &gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=35113&amp;amp;size=small&amp;amp;timestamp=1371653837&quot; alt=&quot;James Kanjo&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=35113)&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/james-kanjo&quot;  &gt;James Kanjo&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
				<pubDate>Mon, 12 Apr 2010 07:19:07 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>intro: &quot;One of the commonly asked requests in Wikidot is to show certain blocks of information to a special selection of users. For example, let's say that you have some administrator links and functions in your sidebar:\n&gt; <span style="white-space: pre-wrap;">[[[site-administrators&#32;|Information&#32;for&#32;Site&#32;Administrators&#32;only]]]</span>\n&gt; <span style="white-space: pre-wrap;">[[[admin:manage&#32;|Site&#32;Manger]]]</span>\n&gt; <span style="white-space: pre-wrap;">[[module&#32;NewPage&#32;category=\&quot;blog\&quot;&#32;button=\&quot;New&#32;Blog&#32;Entry\&quot;]]</span>\n\nNow, you don't want to show this sort of information to anybody other than the <strong>Administrators</strong> on your site. It should be completely invisible to every anonymous person, every member and every moderator.\n\nWould you believe me if I told you that the blog you are reading right now, has been doing this for three weeks now? Let me show you an image of what I'm looking at:\n\n[[include inc:image |category=blog |name=62 |image=jameskanjo-suo.jpg |width=300px |caption=Only James Kanjo sees this!!!]]&quot;<br /> main: &quot;The beauty about is that it's so easy to do! In fact, it's as simple as a Wikidot CSI that I have created for public use: <a href="http://snippets.wikidot.com/code:specific-users-only">Specific Users Only Include</a>.\n\nGive it a try! It's fantastic!\n\nActually, I'll give it a try for you:\n\n[[div class=\&quot;code\&quot;]]\n<span style="white-space: pre-wrap;">[[include&#32;:snippets:suo&#32;BEGIN&#32;CODE&#32;|unique=first&#32;|type=</span><strong>showto</strong><span style="white-space: pre-wrap;">&#32;|user1=james-kanjo&#32;|user2=michal-frackowiak]]</span>\n<span style="white-space: pre-wrap;">**Hello&#32;James&#32;Kanjo&#32;&amp;&#32;Michał&#32;Frąckowiak!!!**</span>\n<span style="white-space: pre-wrap;">[[include&#32;:snippets:suo&#32;END&#32;CODE]]</span>\n\n<span style="white-space: pre-wrap;">[[include&#32;:snippets:suo&#32;BEGIN&#32;CODE&#32;|unique=second&#32;|type=</span><strong>hidefrom</strong><span style="white-space: pre-wrap;">&#32;|user1=james-kanjo&#32;|user2=michal-frackowiak]]</span>\n<span style="white-space: pre-wrap;">**Hello&#32;Everybody&#32;Else!!!**</span>\n<span style="white-space: pre-wrap;">[[include&#32;:snippets:suo&#32;END&#32;CODE]]</span>\n[<a href="http://james.wikidot.com/div]]/n/n+">##811|In Action:##\n\n[[include :snippets:suo BEGIN CODE |unique=first |type=showto |user1=james-kanjo |user2=michal-frackowiak</a>]\n<strong>Hello James Kanjo &amp; Michał Frąckowiak!!!</strong>\n[[include :snippets:suo END CODE]]\n\n[[include :snippets:suo BEGIN CODE |unique=second |type=hidefrom |user1=james-kanjo |user2=michal-frackowiak]]\n<strong>Hello Everybody Else!!!</strong>\n[[include :snippets:suo END CODE]]\n\nEnjoy!&quot;<br /> sig: '3'<br /> after: ''</p> <p>by <span class="printuser avatarhover"><a href="http://www.wikidot.com/user:info/james-kanjo" ><img class="small" src="http://www.wikidot.com/avatar.php?userid=35113&amp;size=small&amp;timestamp=1371653837" alt="James Kanjo" style="background-image:url(http://www.wikidot.com/userkarma.php?u=35113)" /></a><a href="http://www.wikidot.com/user:info/james-kanjo" >James Kanjo</a></span></p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://james.wikidot.com/blog:59</guid>
				<title>Wikidot Tip of the Day</title>
				<link>http://james.wikidot.com/blog:59</link>
				<description>

&lt;p&gt;intro: &amp;quot;Another day, another discovery.\n\nToday I discovered that you can set an entire category to utilise &lt;em&gt;ONLY&lt;/em&gt; the “Title” field. This has been made possible with data forms.&amp;quot;&lt;br /&gt;
main: &amp;quot;The best part is, it&#039;s so damn easy!!! Here&#039;s the code for you live template (&lt;tt&gt;:_template&lt;/tt&gt;) page:\n\n[[code]]\n[[form]]]\n\n[&lt;a href=&quot;http://james.wikidot.com/form]]/n[[/code]]/n/nAnd&quot;&gt;you&#039;re done!\n\nWhilst I&#039;m at it, I have made another discovery (although, I&#039;ve already revealed it elsewhere) regarding data forms. If you want to utilise form data within a live template //WITHOUT// displaying the default form layout (i.e. using your own custom layout and usage of variables), just place the form code where you would a static template:\n\n[[code&lt;/a&gt;]\nYour layout goes here\n\n====\n\n[[form]]\n\nHidden form goes here\n\n[&lt;a href=&quot;http://james.wikidot.com/form]]/n/n[[/code]]/n/n----/n/nThis&quot;&gt;advancement has allowed me to upgrade my [http://polls.wikidot.com Polls @ Wikidot&lt;/a&gt; application to be even more user friendly.&amp;quot;&lt;br /&gt;
sig: 3&lt;br /&gt;
after: &amp;quot;&amp;quot;&lt;/p&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/james-kanjo&quot;  &gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=35113&amp;amp;size=small&amp;amp;timestamp=1371653837&quot; alt=&quot;James Kanjo&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=35113)&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/james-kanjo&quot;  &gt;James Kanjo&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
				<pubDate>Fri, 12 Mar 2010 04:15:23 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>intro: &quot;Another day, another discovery.\n\nToday I discovered that you can set an entire category to utilise <em>ONLY</em> the “Title” field. This has been made possible with data forms.&quot;<br /> main: &quot;The best part is, it's so damn easy!!! Here's the code for you live template (<tt>:_template</tt>) page:\n\n[[code]]\n[[form]]]\n\n[<a href="http://james.wikidot.com/form]]/n[[/code]]/n/nAnd">you're done!\n\nWhilst I'm at it, I have made another discovery (although, I've already revealed it elsewhere) regarding data forms. If you want to utilise form data within a live template //WITHOUT// displaying the default form layout (i.e. using your own custom layout and usage of variables), just place the form code where you would a static template:\n\n[[code</a>]\nYour layout goes here\n\n====\n\n[[form]]\n\nHidden form goes here\n\n[<a href="http://james.wikidot.com/form]]/n/n[[/code]]/n/n----/n/nThis">advancement has allowed me to upgrade my [http://polls.wikidot.com Polls @ Wikidot</a> application to be even more user friendly.&quot;<br /> sig: 3<br /> after: &quot;&quot;</p> <p>by <span class="printuser avatarhover"><a href="http://www.wikidot.com/user:info/james-kanjo" ><img class="small" src="http://www.wikidot.com/avatar.php?userid=35113&amp;size=small&amp;timestamp=1371653837" alt="James Kanjo" style="background-image:url(http://www.wikidot.com/userkarma.php?u=35113)" /></a><a href="http://www.wikidot.com/user:info/james-kanjo" >James Kanjo</a></span></p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://james.wikidot.com/blog:57</guid>
				<title>Where did James go???</title>
				<link>http://james.wikidot.com/blog:57</link>
				<description>

&lt;p&gt;intro: &amp;quot;I have been struggling to think of something to blog about; hence, I haven&#039;t. So after 18 days, I&#039;ve decided that I&#039;m going to blog about my latest Wikidot projects:\n\n|| &lt;span style=&quot;font-size:300%;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #f00&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;S&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fa0&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;T&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff0&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;O&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0f0&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;R&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0ff&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;I&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #508&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;E&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #f8f&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;S&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt; || &lt;span style=&quot;font-size:125%;&quot;&gt;&lt;strong&gt;AND&lt;/strong&gt;&lt;/span&gt; || &lt;span style=&quot;font-size:300%;&quot;&gt;&lt;strong&gt;&lt;span style=&quot;color: #f00&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;F&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #fa0&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;A&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #ff0&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;M&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0f0&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;I&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #0ff&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;L&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #508&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;I&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #f8f&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;E&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #f00&quot;&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;S&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt; ||&amp;quot;&lt;br /&gt;
main: &amp;quot;+ Stories\n\nMost stories are linear — that is, you read them from start to finish in the order of ascending page numbers, as the author wants you to.\n\nHow do stories relate to a wiki engine? Well, what if one were to start writing a story, page by page. When that person stops, &lt;strong&gt;another person can continue the story&lt;/strong&gt; by writing their own pages onto it. Stories can then become collaborative works, and as we know, wikis are perfect for collaborative works.\n\nBut why stop there? What if you don&#039;t like the path that somebody writes the story into? What if you didn&#039;t like the direction that the story was taking? What if you had &lt;strong&gt;alternative scenarios&lt;/strong&gt; of a story? Multiple endings to a story, depending on the plots YOU choose along the way. This is something that typical wiki engines are not capable of; but as we know, Wikidot is not your typical wiki engine.\n\nI&#039;ve created a site, &lt;a href=&quot;http://stories.wikidot.com&quot;&gt;Neverending Stories&lt;/a&gt;, which can do this.\n\nWhat I now need to do is create a series of interesting “starter points” where people will &lt;em&gt;want&lt;/em&gt; to continue the story and participate.\n\n+ Families\n\nFamilies are, without a doubt, more complicated than quantum mechanics. So when it comes to drawing up a map of your family, things become very tedious and confusing.\n\nSo I decided to create a Wikidot Application to organise our families: AKA, a family tree application.\n\nAll you need to do is add a person, and then create their children. With each child, you parent the child to the other parent. Then, for each individual, my Wikidot application will &lt;strong&gt;automatically&lt;/strong&gt;:\n* Display all grandparents\n* Display the parent/s\n* Display all aunts/uncles\n* Display all siblings\n* Display all children\n* Display all grandchildren\n\nThat&#039;s right! Five generations are automatically calculated and displayed. You hardly have to lift a finger!\n\nCurrently, the user interface is in development, and not ready for public usage yet. However, the functionality exists and is working beautifully.\n\n&amp;#8212;&amp;#8212;\n\nI can&#039;t wait to launch these! They&#039;re going to be awesome!&amp;quot;&lt;br /&gt;
sig: 3&lt;br /&gt;
after: &amp;quot;&amp;quot;&lt;/p&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/james-kanjo&quot;  &gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=35113&amp;amp;size=small&amp;amp;timestamp=1371653837&quot; alt=&quot;James Kanjo&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=35113)&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/james-kanjo&quot;  &gt;James Kanjo&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
				<pubDate>Tue, 10 Nov 2009 13:07:18 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>intro: &quot;I have been struggling to think of something to blog about; hence, I haven't. So after 18 days, I've decided that I'm going to blog about my latest Wikidot projects:\n\n|| <span style="font-size:300%;"><strong><span style="color: #f00"><span style="text-decoration: underline;">S</span></span><span style="color: #fa0"><span style="text-decoration: underline;">T</span></span><span style="color: #ff0"><span style="text-decoration: underline;">O</span></span><span style="color: #0f0"><span style="text-decoration: underline;">R</span></span><span style="color: #0ff"><span style="text-decoration: underline;">I</span></span><span style="color: #508"><span style="text-decoration: underline;">E</span></span><span style="color: #f8f"><span style="text-decoration: underline;">S</span></span></strong></span> || <span style="font-size:125%;"><strong>AND</strong></span> || <span style="font-size:300%;"><strong><span style="color: #f00"><span style="text-decoration: underline;">F</span></span><span style="color: #fa0"><span style="text-decoration: underline;">A</span></span><span style="color: #ff0"><span style="text-decoration: underline;">M</span></span><span style="color: #0f0"><span style="text-decoration: underline;">I</span></span><span style="color: #0ff"><span style="text-decoration: underline;">L</span></span><span style="color: #508"><span style="text-decoration: underline;">I</span></span><span style="color: #f8f"><span style="text-decoration: underline;">E</span></span><span style="color: #f00"><span style="text-decoration: underline;">S</span></span></strong></span> ||&quot;<br /> main: &quot;+ Stories\n\nMost stories are linear — that is, you read them from start to finish in the order of ascending page numbers, as the author wants you to.\n\nHow do stories relate to a wiki engine? Well, what if one were to start writing a story, page by page. When that person stops, <strong>another person can continue the story</strong> by writing their own pages onto it. Stories can then become collaborative works, and as we know, wikis are perfect for collaborative works.\n\nBut why stop there? What if you don't like the path that somebody writes the story into? What if you didn't like the direction that the story was taking? What if you had <strong>alternative scenarios</strong> of a story? Multiple endings to a story, depending on the plots YOU choose along the way. This is something that typical wiki engines are not capable of; but as we know, Wikidot is not your typical wiki engine.\n\nI've created a site, <a href="http://stories.wikidot.com">Neverending Stories</a>, which can do this.\n\nWhat I now need to do is create a series of interesting “starter points” where people will <em>want</em> to continue the story and participate.\n\n+ Families\n\nFamilies are, without a doubt, more complicated than quantum mechanics. So when it comes to drawing up a map of your family, things become very tedious and confusing.\n\nSo I decided to create a Wikidot Application to organise our families: AKA, a family tree application.\n\nAll you need to do is add a person, and then create their children. With each child, you parent the child to the other parent. Then, for each individual, my Wikidot application will <strong>automatically</strong>:\n* Display all grandparents\n* Display the parent/s\n* Display all aunts/uncles\n* Display all siblings\n* Display all children\n* Display all grandchildren\n\nThat's right! Five generations are automatically calculated and displayed. You hardly have to lift a finger!\n\nCurrently, the user interface is in development, and not ready for public usage yet. However, the functionality exists and is working beautifully.\n\n&#8212;&#8212;\n\nI can't wait to launch these! They're going to be awesome!&quot;<br /> sig: 3<br /> after: &quot;&quot;</p> <p>by <span class="printuser avatarhover"><a href="http://www.wikidot.com/user:info/james-kanjo" ><img class="small" src="http://www.wikidot.com/avatar.php?userid=35113&amp;size=small&amp;timestamp=1371653837" alt="James Kanjo" style="background-image:url(http://www.wikidot.com/userkarma.php?u=35113)" /></a><a href="http://www.wikidot.com/user:info/james-kanjo" >James Kanjo</a></span></p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://james.wikidot.com/blog:50</guid>
				<title>Wikitip of the day!</title>
				<link>http://james.wikidot.com/blog:50</link>
				<description>

&lt;p&gt;intro: &amp;quot;Short post today.\n\nWhen you view a file attached to a Wikidot page, you may notice that the URL in the address bar has changed the domain from &lt;em&gt;wikidot.com&lt;/em&gt; to &lt;em&gt;wdfiles.com&lt;/em&gt;.\n\nIf you are, like myself, one to manually manipulate address bar URLs, you may be annoyed to find that you can&#039;t view pages from your wiki if you&#039;re in the wdfiles domain. That is, &lt;a href=&quot;http://james.wdfiles.com/blog:50&quot;&gt;http://james.wdfiles.com/blog:50&lt;/a&gt; will not work.&amp;quot;&lt;br /&gt;
main: &amp;quot;But of course, it occurred to me that &lt;em&gt;wdfiles&lt;/em&gt; is a domain that belongs to Wikidot (duh!), which in theory means we can create a 301 redirect to our site from the wdfiles domain. Well, as off today, theory proven:\n\n&lt;/p&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;\n[[include inc:image |category=blog |name=50 |image=custom-domain.png |caption=Select “Custom Domain” from the &lt;strong&gt;admin:manage&lt;/strong&gt; panel]]\n&lt;/td&gt;
&lt;td&gt;\n[[include inc:image |category=blog |name=50 |image=301-redirect.png |width=445px |caption=Enter &lt;strong&gt;your-subdomain&lt;/strong&gt;.wdfiles.com and click “save”]]\n&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;\n\nJust a simple two-step process.&amp;quot;&lt;br /&gt;
sig: &#039;3&#039;&lt;br /&gt;
after: &#039;&#039;&lt;/p&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/james-kanjo&quot;  &gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=35113&amp;amp;size=small&amp;amp;timestamp=1371653838&quot; alt=&quot;James Kanjo&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=35113)&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/james-kanjo&quot;  &gt;James Kanjo&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
				<pubDate>Sat, 12 Sep 2009 13:22:56 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>intro: &quot;Short post today.\n\nWhen you view a file attached to a Wikidot page, you may notice that the URL in the address bar has changed the domain from <em>wikidot.com</em> to <em>wdfiles.com</em>.\n\nIf you are, like myself, one to manually manipulate address bar URLs, you may be annoyed to find that you can't view pages from your wiki if you're in the wdfiles domain. That is, <a href="http://james.wdfiles.com/blog:50">http://james.wdfiles.com/blog:50</a> will not work.&quot;<br /> main: &quot;But of course, it occurred to me that <em>wdfiles</em> is a domain that belongs to Wikidot (duh!), which in theory means we can create a 301 redirect to our site from the wdfiles domain. Well, as off today, theory proven:\n\n</p> <table> <tr> <td>\n[[include inc:image |category=blog |name=50 |image=custom-domain.png |caption=Select “Custom Domain” from the <strong>admin:manage</strong> panel]]\n</td> <td>\n[[include inc:image |category=blog |name=50 |image=301-redirect.png |width=445px |caption=Enter <strong>your-subdomain</strong>.wdfiles.com and click “save”]]\n</td> </tr> </table> <p>\n\nJust a simple two-step process.&quot;<br /> sig: '3'<br /> after: ''</p> <p>by <span class="printuser avatarhover"><a href="http://www.wikidot.com/user:info/james-kanjo" ><img class="small" src="http://www.wikidot.com/avatar.php?userid=35113&amp;size=small&amp;timestamp=1371653838" alt="James Kanjo" style="background-image:url(http://www.wikidot.com/userkarma.php?u=35113)" /></a><a href="http://www.wikidot.com/user:info/james-kanjo" >James Kanjo</a></span></p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://james.wikidot.com/blog:49</guid>
				<title>I&#039;m wikifused</title>
				<link>http://james.wikidot.com/blog:49</link>
				<description>

&lt;p&gt;intro: &amp;quot;Today I was wikifused :-(\n\nThe &lt;a href=&quot;http://blog.wikidot.com/design:4&quot;&gt;new ListPages functions&lt;/a&gt; include the capacity to choose the “range” from your pages. That is, choose the pages &lt;strong&gt;before or after&lt;/strong&gt; the current page.\n\n[[code]]\n[[module ListPages order=\&amp;quot;created_at\&amp;quot; range=\&amp;quot;before\&amp;quot; limit=\&amp;quot;1\&amp;quot;]]\n[&lt;a href=&quot;http://james.wikidot.com/code]]/n/nWith&quot;&gt;the above code, I expected the interpretation to be:\n* List all pages created BEFORE the current page\n* Arrange them in ASCENDING ORDER (oldest to newest)\n* Choose the 1^^st^^ item (the oldest item)\n\nBased on this logic, to retrieve the first page that is older than the current page, just change the order to descending:\n\n[[code&lt;/a&gt;]\n[[module ListPages order=\&amp;quot;created_at desc\&amp;quot; range=\&amp;quot;before\&amp;quot; limit=\&amp;quot;1\&amp;quot;]]\n[[/code]]&amp;quot;&lt;br /&gt;
main: &amp;quot;WRONG JAMES!\n\nThe ListPages module doesn&#039;t interpret that way. Now, as I understand it, the above code works like so:\n* List all pages in DESCENDING order (newest to oldest)\n* Locate the current page in the list\n* Choose the 1&lt;sup&gt;st&lt;/sup&gt; item in the list of pages BEFORE it\n\nEssentially, that code will actually find the newest page&amp;#8230; the first code block mentioned will still find the oldest page.\n\n&amp;#8212;&amp;#8212;\n\nSo here&#039;s a truth table, to end all wikifusion:\n\n||= &lt;tt&gt;limit=\&amp;quot;1\&amp;quot;&lt;/tt&gt; ||~ &lt;tt&gt;range=\&amp;quot;before\&amp;quot;&lt;/tt&gt; ||~ &lt;tt&gt;range=\&amp;quot;after\&amp;quot;&lt;/tt&gt; ||\n||~ &lt;tt&gt;order=\&amp;quot;created_at\&amp;quot;&lt;/tt&gt; || Oldest page || 1 page newer ||\n||~ &lt;tt&gt;order=\&amp;quot;created_at desc\&amp;quot;&lt;/tt&gt; || Newest page || 1 page older ||&amp;quot;&lt;br /&gt;
sig: 3&lt;br /&gt;
after: &amp;quot;&amp;quot;&lt;/p&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/james-kanjo&quot;  &gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=35113&amp;amp;size=small&amp;amp;timestamp=1371653838&quot; alt=&quot;James Kanjo&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=35113)&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/james-kanjo&quot;  &gt;James Kanjo&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
				<pubDate>Thu, 10 Sep 2009 13:53:12 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>intro: &quot;Today I was wikifused :-(\n\nThe <a href="http://blog.wikidot.com/design:4">new ListPages functions</a> include the capacity to choose the “range” from your pages. That is, choose the pages <strong>before or after</strong> the current page.\n\n[[code]]\n[[module ListPages order=\&quot;created_at\&quot; range=\&quot;before\&quot; limit=\&quot;1\&quot;]]\n[<a href="http://james.wikidot.com/code]]/n/nWith">the above code, I expected the interpretation to be:\n* List all pages created BEFORE the current page\n* Arrange them in ASCENDING ORDER (oldest to newest)\n* Choose the 1^^st^^ item (the oldest item)\n\nBased on this logic, to retrieve the first page that is older than the current page, just change the order to descending:\n\n[[code</a>]\n[[module ListPages order=\&quot;created_at desc\&quot; range=\&quot;before\&quot; limit=\&quot;1\&quot;]]\n[[/code]]&quot;<br /> main: &quot;WRONG JAMES!\n\nThe ListPages module doesn't interpret that way. Now, as I understand it, the above code works like so:\n* List all pages in DESCENDING order (newest to oldest)\n* Locate the current page in the list\n* Choose the 1<sup>st</sup> item in the list of pages BEFORE it\n\nEssentially, that code will actually find the newest page&#8230; the first code block mentioned will still find the oldest page.\n\n&#8212;&#8212;\n\nSo here's a truth table, to end all wikifusion:\n\n||= <tt>limit=\&quot;1\&quot;</tt> ||~ <tt>range=\&quot;before\&quot;</tt> ||~ <tt>range=\&quot;after\&quot;</tt> ||\n||~ <tt>order=\&quot;created_at\&quot;</tt> || Oldest page || 1 page newer ||\n||~ <tt>order=\&quot;created_at desc\&quot;</tt> || Newest page || 1 page older ||&quot;<br /> sig: 3<br /> after: &quot;&quot;</p> <p>by <span class="printuser avatarhover"><a href="http://www.wikidot.com/user:info/james-kanjo" ><img class="small" src="http://www.wikidot.com/avatar.php?userid=35113&amp;size=small&amp;timestamp=1371653838" alt="James Kanjo" style="background-image:url(http://www.wikidot.com/userkarma.php?u=35113)" /></a><a href="http://www.wikidot.com/user:info/james-kanjo" >James Kanjo</a></span></p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://james.wikidot.com/blog:48</guid>
				<title>Wikidot: &quot;Specify Title Only&quot;</title>
				<link>http://james.wikidot.com/blog:48</link>
				<description>

&lt;p&gt;intro: &amp;quot;I can&#039;t wait for the wonderful &lt;a href=&quot;http://james.wikidot.com/blog:44&quot;&gt;autosave&lt;/a&gt; feature comes out&amp;#8230; especially in terms of the &lt;a href=&quot;http://polls.wikidot.com&quot;&gt;Polls @ Wikidot&lt;/a&gt; application.\n\nThis application utilises nothing more than page titles to construct its interface. So when people go to create new options for their Poll, they need only type in the new option, and click the “Create new option” button.&amp;quot;&lt;br /&gt;
main: &amp;quot;But then they&#039;re approached with a strange page with an empty box with lots of wiki-syntax buttons telling them to click “save”. This is freaky stuff, enough to steer away potential users. If an autosave option existed, this page would have been created automatically and nothing would be there to intimidate the user.\n\nLet&#039;s be honest though: autosave does not exist, and we can&#039;t predict when it will exist. So we are reduced to workarounds, and I&#039;ve come up with one that is very useful in the Poll situation:\n\n[[code type=\&amp;quot;css\&amp;quot;]]\n#edit-page-form table tbody tr + tr,\n#wd-editor-toolbar-panel,\n#edit-page-textarea,\n#edit-page-form .change-textarea-size,\n#edit-page-form .edit-help-34,\n#edit-page-form .edit-page-bottomtable,\n#edit-diff-button,\n#edit-preview-button,\n#edit-save-continue-button {\n display: none;\n}\n[[/code]]\n\nThat CSS code takes away everything except for the Page Title, a “Save” button and a “Cancel” button. A minimalistic interface. An idea I got from &lt;span class=&quot;printuser&quot;&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/pieterh&quot;  &gt;pieterh&lt;/a&gt;&lt;/span&gt;&#039;s &lt;a href=&quot;http://blog.wikidot.com/blog:minimalist-editor-interface&quot;&gt;blog post&lt;/a&gt;.\n\n[[=]]\n&lt;/p&gt;
&lt;div class=&quot;error-block&quot;&gt;Sorry, no match for the embedded content.&lt;/div&gt;
\n[&lt;a href=&quot;http://james.wikidot.com/=]]/n/n=&quot;&gt;[http://polls.wikidot.com/ Create a Poll now!&lt;/a&gt;&amp;quot;&lt;br /&gt;
sig: &#039;3&#039;&lt;br /&gt;
after: &#039;&#039;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/james-kanjo&quot;  &gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=35113&amp;amp;size=small&amp;amp;timestamp=1371653838&quot; alt=&quot;James Kanjo&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=35113)&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/james-kanjo&quot;  &gt;James Kanjo&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
				<pubDate>Mon, 07 Sep 2009 22:56:58 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>intro: &quot;I can't wait for the wonderful <a href="http://james.wikidot.com/blog:44">autosave</a> feature comes out&#8230; especially in terms of the <a href="http://polls.wikidot.com">Polls @ Wikidot</a> application.\n\nThis application utilises nothing more than page titles to construct its interface. So when people go to create new options for their Poll, they need only type in the new option, and click the “Create new option” button.&quot;<br /> main: &quot;But then they're approached with a strange page with an empty box with lots of wiki-syntax buttons telling them to click “save”. This is freaky stuff, enough to steer away potential users. If an autosave option existed, this page would have been created automatically and nothing would be there to intimidate the user.\n\nLet's be honest though: autosave does not exist, and we can't predict when it will exist. So we are reduced to workarounds, and I've come up with one that is very useful in the Poll situation:\n\n[[code type=\&quot;css\&quot;]]\n#edit-page-form table tbody tr + tr,\n#wd-editor-toolbar-panel,\n#edit-page-textarea,\n#edit-page-form .change-textarea-size,\n#edit-page-form .edit-help-34,\n#edit-page-form .edit-page-bottomtable,\n#edit-diff-button,\n#edit-preview-button,\n#edit-save-continue-button {\n display: none;\n}\n[[/code]]\n\nThat CSS code takes away everything except for the Page Title, a “Save” button and a “Cancel” button. A minimalistic interface. An idea I got from <span class="printuser"><a href="http://www.wikidot.com/user:info/pieterh" >pieterh</a></span>'s <a href="http://blog.wikidot.com/blog:minimalist-editor-interface">blog post</a>.\n\n[[=]]\n</p> <div class="error-block">Sorry, no match for the embedded content.</div> \n[<a href="http://james.wikidot.com/=]]/n/n=">[http://polls.wikidot.com/ Create a Poll now!</a>&quot;<br /> sig: '3'<br /> after: '' <p>by <span class="printuser avatarhover"><a href="http://www.wikidot.com/user:info/james-kanjo" ><img class="small" src="http://www.wikidot.com/avatar.php?userid=35113&amp;size=small&amp;timestamp=1371653838" alt="James Kanjo" style="background-image:url(http://www.wikidot.com/userkarma.php?u=35113)" /></a><a href="http://www.wikidot.com/user:info/james-kanjo" >James Kanjo</a></span></p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://james.wikidot.com/blog:44</guid>
				<title>We want autosave!</title>
				<link>http://james.wikidot.com/blog:44</link>
				<description>

&lt;p&gt;intro: &amp;quot;What do we want? &lt;strong&gt;AUTOSAVE&lt;/strong&gt;!\nWhen do we want it? &lt;strong&gt;NOW&lt;/strong&gt;!\n\nWikidot is an extremely powerful Web 2.0 engine. With its powers, it is easy to create sleek and uniform websites; for business, for education and for personal use. It is also powerful enough to create web-applications; this blog, for example.&amp;quot;&lt;br /&gt;
main: &amp;quot;So many once manual tasks have been automated into sleek processes. But there is one task that has not being automated: saving new pages. Indeed, to save a page, you must click the \&amp;quot;save\&amp;quot; button&lt;sup class=&quot;footnoteref&quot;&gt;&lt;a id=&quot;footnoteref-81524-1&quot; href=&quot;javascript:;&quot; class=&quot;footnoteref&quot;  &gt;1&lt;/a&gt;&lt;/sup&gt;.\n\nUsing powerful tools such as the &lt;a href=&quot;http://www.wikidot.com/doc:newpage-module&quot;&gt;NewPage&lt;/a&gt; and &lt;a href=&quot;http://www.wikidot.com/doc:listpages-module&quot;&gt;ListPages&lt;/a&gt; modules, you can create pages and have them automatically listed and published somewhere else simultaneously. The NewPage module in particular allows you to type in some text for a new page&#039;s title.\n\nIf an &lt;em&gt;autosave&lt;/em&gt; feature existed, we&#039;d be able to automatically save a page upon its creation (go figure). This would be useful to do things such as:\n* A twitter-like news feed;\n* An IM chat room;\n* Question &amp;amp; Answer interface;\n* Creating instant polls.\n\nAll of these things &lt;em&gt;ARE&lt;/em&gt; possible already; however, you need to click \&amp;quot;save\&amp;quot; on the newly created page.&amp;quot;&lt;br /&gt;
sig: &#039;2&#039;&lt;br /&gt;
after: &#039;&#039;&lt;/p&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/james-kanjo&quot;  &gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=35113&amp;amp;size=small&amp;amp;timestamp=1371653838&quot; alt=&quot;James Kanjo&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=35113)&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/james-kanjo&quot;  &gt;James Kanjo&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div class=&quot;footnotes-footer&quot;&gt;
&lt;div class=&quot;title&quot;&gt;Footnotes&lt;/div&gt;
&lt;div class=&quot;footnote-footer&quot; id=&quot;footnote-81524-1&quot;&gt;&lt;a href=&quot;javascript:;&quot;  &gt;1&lt;/a&gt;. or use the Control+S keyboard shortcut&lt;/div&gt;
&lt;/div&gt;
</description>
				<pubDate>Mon, 27 Jul 2009 07:19:43 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>intro: &quot;What do we want? <strong>AUTOSAVE</strong>!\nWhen do we want it? <strong>NOW</strong>!\n\nWikidot is an extremely powerful Web 2.0 engine. With its powers, it is easy to create sleek and uniform websites; for business, for education and for personal use. It is also powerful enough to create web-applications; this blog, for example.&quot;<br /> main: &quot;So many once manual tasks have been automated into sleek processes. But there is one task that has not being automated: saving new pages. Indeed, to save a page, you must click the \&quot;save\&quot; button<sup class="footnoteref"><a id="footnoteref-659276-1" href="javascript:;" class="footnoteref" >1</a></sup>.\n\nUsing powerful tools such as the <a href="http://www.wikidot.com/doc:newpage-module">NewPage</a> and <a href="http://www.wikidot.com/doc:listpages-module">ListPages</a> modules, you can create pages and have them automatically listed and published somewhere else simultaneously. The NewPage module in particular allows you to type in some text for a new page's title.\n\nIf an <em>autosave</em> feature existed, we'd be able to automatically save a page upon its creation (go figure). This would be useful to do things such as:\n* A twitter-like news feed;\n* An IM chat room;\n* Question &amp; Answer interface;\n* Creating instant polls.\n\nAll of these things <em>ARE</em> possible already; however, you need to click \&quot;save\&quot; on the newly created page.&quot;<br /> sig: '2'<br /> after: ''</p> <p>by <span class="printuser avatarhover"><a href="http://www.wikidot.com/user:info/james-kanjo" ><img class="small" src="http://www.wikidot.com/avatar.php?userid=35113&amp;size=small&amp;timestamp=1371653838" alt="James Kanjo" style="background-image:url(http://www.wikidot.com/userkarma.php?u=35113)" /></a><a href="http://www.wikidot.com/user:info/james-kanjo" >James Kanjo</a></span></p> <div class="footnotes-footer"> <div class="title">Footnotes</div> <div class="footnote-footer" id="footnote-659276-1"><a href="javascript:;" >1</a>. or use the Control+S keyboard shortcut</div> </div> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://james.wikidot.com/blog:28</guid>
				<title>I violated the Wikidot ToS... twice!</title>
				<link>http://james.wikidot.com/blog:28</link>
				<description>

&lt;p&gt;intro: &amp;quot;Haven&#039;t I been naughty? I&#039;ve done &lt;em&gt;exactly&lt;/em&gt; what the title says: I violated the Wikidot &lt;a href=&quot;http://www.wikidot.com/legal:terms-of-service&quot; target=&quot;_blank&quot;&gt;Terms of Service&lt;/a&gt;, and I did it &lt;strong&gt;twice&lt;/strong&gt;!\n\nAnd you know what that means&amp;#8230;&amp;quot;&lt;br /&gt;
main: &amp;quot;&amp;gt; The following is a list of prohibited or illegal usage of the Services. We reserve the right to investigate and take appropriate actions against anyone (in our sole discretion) violates these rules, including removing offending content and terminating the Wikidot Membership.\n\nHow tragic! I am at risk of my Wikidot Membership being terminated!\n\nYou are probably wondering about the horror that I have posted on my blog: &lt;a href=&quot;http://james.wikidot.com/blog:5&quot;&gt;see here&lt;/a&gt;.\n\nTerrible, isn&#039;t it. Oh you don&#039;t see it? It&#039;s blatantly obvious&amp;#8230; see what says the Terms of Service:\n&amp;gt; Prohibited usage includes but is not limited to uploading, posting or otherwise making available or promote:\n&amp;gt; &amp;#8230;\n&amp;gt; 7. any \&amp;quot;junk\&amp;quot;, \&amp;quot;spam\&amp;quot;, \&amp;quot;chain letters,\&amp;quot; \&amp;quot;pyramid schemes\&amp;quot; etc.\n\nThere I was, blindly posting away &lt;em&gt;not one&lt;/em&gt;, but &lt;em&gt;two&lt;/em&gt; fraudulent chain letters I received. How dare I?!\n\nBut what&#039;s worse? I refuse to remove them&amp;#8230; MUAHAHAHAHAHAAAAAAA\n&amp;#8230;\nLet&#039;s hope &lt;span class=&quot;printuser&quot;&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/michal-frackowiak&quot;  &gt;michal frackowiak&lt;/a&gt;&lt;/span&gt; doesn&#039;t find out =S&amp;quot;&lt;br /&gt;
sig: 1&lt;br /&gt;
after: &amp;quot;&amp;quot;&lt;/p&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/james-kanjo&quot;  &gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=35113&amp;amp;size=small&amp;amp;timestamp=1371653838&quot; alt=&quot;James Kanjo&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=35113)&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/james-kanjo&quot;  &gt;James Kanjo&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
				<pubDate>Sat, 07 Mar 2009 06:02:13 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>intro: &quot;Haven't I been naughty? I've done <em>exactly</em> what the title says: I violated the Wikidot <a href="http://www.wikidot.com/legal:terms-of-service" target="_blank">Terms of Service</a>, and I did it <strong>twice</strong>!\n\nAnd you know what that means&#8230;&quot;<br /> main: &quot;&gt; The following is a list of prohibited or illegal usage of the Services. We reserve the right to investigate and take appropriate actions against anyone (in our sole discretion) violates these rules, including removing offending content and terminating the Wikidot Membership.\n\nHow tragic! I am at risk of my Wikidot Membership being terminated!\n\nYou are probably wondering about the horror that I have posted on my blog: <a href="http://james.wikidot.com/blog:5">see here</a>.\n\nTerrible, isn't it. Oh you don't see it? It's blatantly obvious&#8230; see what says the Terms of Service:\n&gt; Prohibited usage includes but is not limited to uploading, posting or otherwise making available or promote:\n&gt; &#8230;\n&gt; 7. any \&quot;junk\&quot;, \&quot;spam\&quot;, \&quot;chain letters,\&quot; \&quot;pyramid schemes\&quot; etc.\n\nThere I was, blindly posting away <em>not one</em>, but <em>two</em> fraudulent chain letters I received. How dare I?!\n\nBut what's worse? I refuse to remove them&#8230; MUAHAHAHAHAHAAAAAAA\n&#8230;\nLet's hope <span class="printuser"><a href="http://www.wikidot.com/user:info/michal-frackowiak" >michal frackowiak</a></span> doesn't find out =S&quot;<br /> sig: 1<br /> after: &quot;&quot;</p> <p>by <span class="printuser avatarhover"><a href="http://www.wikidot.com/user:info/james-kanjo" ><img class="small" src="http://www.wikidot.com/avatar.php?userid=35113&amp;size=small&amp;timestamp=1371653838" alt="James Kanjo" style="background-image:url(http://www.wikidot.com/userkarma.php?u=35113)" /></a><a href="http://www.wikidot.com/user:info/james-kanjo" >James Kanjo</a></span></p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://james.wikidot.com/blog:3</guid>
				<title>Convert images to Wikidot tables!</title>
				<link>http://james.wikidot.com/blog:3</link>
				<description>

&lt;p&gt;intro: &#039;On the 18&lt;sup&gt;th&lt;/sup&gt; of November 2008, I thought up an idea of how you could display images. As you can specify almost all attributes of a table, including cell size and background colour, you could construct an image by making cells as small as possible and perfectly adjacent. I thought that perhaps I could convert normal images into tables.&#039;&lt;br /&gt;
main: &amp;quot;The next day I decided to create the program that would do this. It took a few hours of the morning, but by about afternoon, I created the program to do the job perfectly. I tried the program and the output seemed to be correct, but incredibly huge. When I copied and pasted the code into a Wikidot page, I clicked save and waited.\n\nInstead of getting an image, I got a message telling me that a Wikidot page is limited to 200&amp;#160;000 characters, and that exceeding this would abuse Wikidot&#039;s services (or something like that).\n\nSo back to the drawing board, I redesigned the program to cater for Wikidot&#039;s limitations.\n\nIt took the whole afternoon and ate away into my night. This is because I am a perfectionist, and I document all of my source code internally. I also needed to calculate the barriers precisely to make the program as effective as possible. Plus I needed to cater for images that couldn&#039;t possibly be converted.\n\nThe file formats my program supports are *.png, *.jpg, *.gif and *.bmp files. This program requires that you have the &lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?familyid=0856eacb-4362-4b0d-8edd-aab15c5e04f5&quot; target=&quot;_blank&quot;&gt;.Net Framework 2.0&lt;/a&gt; installed on your computer (which comes pre-loaded with Windows Vista).\n\n&amp;gt; Copyright © 2008 James Kanjo. You may use this program freely and redistribute it, provided that you give credit to me (James Kanjo) and do not manipulate the program in any way. This means you are not allowed to reverse engineer the program and redistribute modified versions.\n&lt;/p&gt;
&lt;div class=&quot;collapsible-block&quot;&gt;
&lt;div class=&quot;collapsible-block-folded&quot;&gt;&lt;a class=&quot;collapsible-block-link&quot; href=&quot;javascript:;&quot;&gt;+&amp;nbsp;show&amp;nbsp;block&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;collapsible-block-unfolded&quot; style=&quot;display:none&quot;&gt;
&lt;div class=&quot;collapsible-block-unfolded-link&quot;&gt;&lt;a class=&quot;collapsible-block-link&quot; href=&quot;javascript:;&quot;&gt;–&amp;nbsp;hide&amp;nbsp;block&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;collapsible-block-content&quot;&gt;
&lt;p&gt;\nDownload the program: &lt;a href=&quot;http://jameskanjo.wikidot.com/local--files/files/image_to_wikidot_table.zip&quot;&gt;image_to_wikidot_table.zip&lt;/a&gt; (11.46&amp;#160;kB)\n&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
\n\nYou can see an example of the program in action &lt;a href=&quot;http://james.wikidot.com/image-sophie-bath&quot;&gt;here&lt;/a&gt;, which uses all pages in the bath category to render the entire image. You will notice that the image seems a bit pixelated. This is because it is not possible to create 1*1 pixel cells, the minimum is actually 2*2 (or 2*1 in stupid web-browsers). Therefore, the image is typically double the size of the original image. You could therefore return the image to it&#039;s original form with a screen-dump and some extra software.&amp;quot;&lt;br /&gt;
sig: &#039;1&#039;&lt;br /&gt;
after: &amp;quot;&lt;em&gt;Edit:&lt;/em&gt; I have just discovered that IE seems to display only a third of the image properly&amp;#8230; strange.\n\n&lt;em&gt;Edit 2:&lt;/em&gt; I have decided that the image was simply too large, and the page took too long to render. &lt;a href=&quot;http://james.wikidot.com/image-sophie-bath-size-explanation&quot;&gt;Here is what happened&lt;/a&gt;.&amp;quot;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/james-kanjo&quot;  &gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=35113&amp;amp;size=small&amp;amp;timestamp=1371653838&quot; alt=&quot;James Kanjo&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=35113)&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/james-kanjo&quot;  &gt;James Kanjo&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
				<pubDate>Sat, 22 Nov 2008 12:26:48 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>intro: 'On the 18<sup>th</sup> of November 2008, I thought up an idea of how you could display images. As you can specify almost all attributes of a table, including cell size and background colour, you could construct an image by making cells as small as possible and perfectly adjacent. I thought that perhaps I could convert normal images into tables.'<br /> main: &quot;The next day I decided to create the program that would do this. It took a few hours of the morning, but by about afternoon, I created the program to do the job perfectly. I tried the program and the output seemed to be correct, but incredibly huge. When I copied and pasted the code into a Wikidot page, I clicked save and waited.\n\nInstead of getting an image, I got a message telling me that a Wikidot page is limited to 200&#160;000 characters, and that exceeding this would abuse Wikidot's services (or something like that).\n\nSo back to the drawing board, I redesigned the program to cater for Wikidot's limitations.\n\nIt took the whole afternoon and ate away into my night. This is because I am a perfectionist, and I document all of my source code internally. I also needed to calculate the barriers precisely to make the program as effective as possible. Plus I needed to cater for images that couldn't possibly be converted.\n\nThe file formats my program supports are *.png, *.jpg, *.gif and *.bmp files. This program requires that you have the <a href="http://www.microsoft.com/downloads/details.aspx?familyid=0856eacb-4362-4b0d-8edd-aab15c5e04f5" target="_blank">.Net Framework 2.0</a> installed on your computer (which comes pre-loaded with Windows Vista).\n\n&gt; Copyright © 2008 James Kanjo. You may use this program freely and redistribute it, provided that you give credit to me (James Kanjo) and do not manipulate the program in any way. This means you are not allowed to reverse engineer the program and redistribute modified versions.\n</p> <div class="collapsible-block"> <div class="collapsible-block-folded"><a class="collapsible-block-link" href="javascript:;">+&nbsp;show&nbsp;block</a></div> <div class="collapsible-block-unfolded" style="display:none"> <div class="collapsible-block-unfolded-link"><a class="collapsible-block-link" href="javascript:;">–&nbsp;hide&nbsp;block</a></div> <div class="collapsible-block-content"> <p>\nDownload the program: <a href="http://jameskanjo.wikidot.com/local--files/files/image_to_wikidot_table.zip">image_to_wikidot_table.zip</a> (11.46&#160;kB)\n</p> </div> </div> </div> \n\nYou can see an example of the program in action <a href="http://james.wikidot.com/image-sophie-bath">here</a>, which uses all pages in the bath category to render the entire image. You will notice that the image seems a bit pixelated. This is because it is not possible to create 1*1 pixel cells, the minimum is actually 2*2 (or 2*1 in stupid web-browsers). Therefore, the image is typically double the size of the original image. You could therefore return the image to it's original form with a screen-dump and some extra software.&quot;<br /> sig: '1'<br /> after: &quot;<em>Edit:</em> I have just discovered that IE seems to display only a third of the image properly&#8230; strange.\n\n<em>Edit 2:</em> I have decided that the image was simply too large, and the page took too long to render. <a href="http://james.wikidot.com/image-sophie-bath-size-explanation">Here is what happened</a>.&quot; <p>by <span class="printuser avatarhover"><a href="http://www.wikidot.com/user:info/james-kanjo" ><img class="small" src="http://www.wikidot.com/avatar.php?userid=35113&amp;size=small&amp;timestamp=1371653838" alt="James Kanjo" style="background-image:url(http://www.wikidot.com/userkarma.php?u=35113)" /></a><a href="http://www.wikidot.com/user:info/james-kanjo" >James Kanjo</a></span></p> 
				 	]]>
				</content:encoded>							</item>
					<item>
				<guid>http://james.wikidot.com/blog:1</guid>
				<title>My first blog!</title>
				<link>http://james.wikidot.com/blog:1</link>
				<description>

&lt;p&gt;intro: &amp;quot;Well, this is my very first blog.\n\nI must say, it has taken hours and hours to set this thing up &amp;#8212; not because it is difficult, but because I am fussy and want to customise the CSS theme of this site. And I am cheating right now, you see, because at the moment there is something wrong with the \&amp;quot;Hosted by Wikidot.com &amp;#8212; get your free wiki now!\&amp;quot; text at the bottom. It is too high up and should be on the same line as the \&amp;quot;help|terms of service&amp;#8230;\&amp;quot; section. Also, there appears to be some unusual display in Internet Explorer 7.\n\nGrrr. I will get around to fixing it soon though.&amp;quot;&lt;br /&gt;
main: &amp;quot;&lt;span style=&quot;text-decoration: line-through;&quot;&gt;-&lt;/span&gt;-\n\nSo why am I even creating this website?\n\nIt&#039;s because Wikidot (which powers the website) is an incredibly powerful engine that makes web-pages sophisticated yet easy to control and manage.\n\nI have tried to use other social networking websites, such as MySpace and Facebook, but I have problems with each of them. Firstly, both are very friggen slow to run properly. MySpace is not very customisable &amp;#8212; you are restricted to the layout they provide. Then there is Facebook which isn&#039;t even customisable at all! And oh my friggen Lord, I can&#039;t customise Facebook to stop receiving application invitations&amp;#8230;Grrrr. I don&#039;t want all of these crappy games my friends keep inviting me to do &amp;#8212; and my inbox is clogging up with \&amp;quot;you have been invited to a magical deathmatch\&amp;quot; or equally horrible messages.\n\nI haven&#039;t even mention those ads. There was this horrible 3 months where MySpace was advertising \&amp;quot;MySpace Jobs\&amp;quot; using flash banners. It had a black backround, with red painted writing saying \&amp;quot;P0RN STORE CLERK\&amp;quot;. It was very inappropriate and I thought that it would be embarrassing if somebody looked over my shoulder and saw that! Thank God Wikidot has not a single ad!\n\nIt just goes to show that just because it&#039;s popular, doesn&#039;t mean it&#039;s the best&amp;#8230; sounds a bit like IE to me!\n\nThe great thing about Wikidot is that it is a website, so I can put anything here, not just blogs.\n\n&lt;span style=&quot;text-decoration: line-through;&quot;&gt;-&lt;/span&gt;-\n\nAnyway, I had better get back to fixing this CSS coding!&amp;quot;&lt;br /&gt;
sig: &#039;1&#039;&lt;br /&gt;
after: &#039;PS. The first post is always the most boring &amp;#8212; don&#039;&#039;t be discouraged from reading others!&#039;&lt;/p&gt;
&lt;p&gt;by &lt;span class=&quot;printuser avatarhover&quot;&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/james-kanjo&quot;  &gt;&lt;img class=&quot;small&quot; src=&quot;http://www.wikidot.com/avatar.php?userid=35113&amp;amp;size=small&amp;amp;timestamp=1371653838&quot; alt=&quot;James Kanjo&quot; style=&quot;background-image:url(http://www.wikidot.com/userkarma.php?u=35113)&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;http://www.wikidot.com/user:info/james-kanjo&quot;  &gt;James Kanjo&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
</description>
				<pubDate>Fri, 14 Nov 2008 12:05:01 +0000</pubDate>
												<content:encoded>
					<![CDATA[
						 <p>intro: &quot;Well, this is my very first blog.\n\nI must say, it has taken hours and hours to set this thing up &#8212; not because it is difficult, but because I am fussy and want to customise the CSS theme of this site. And I am cheating right now, you see, because at the moment there is something wrong with the \&quot;Hosted by Wikidot.com &#8212; get your free wiki now!\&quot; text at the bottom. It is too high up and should be on the same line as the \&quot;help|terms of service&#8230;\&quot; section. Also, there appears to be some unusual display in Internet Explorer 7.\n\nGrrr. I will get around to fixing it soon though.&quot;<br /> main: &quot;<span style="text-decoration: line-through;">-</span>-\n\nSo why am I even creating this website?\n\nIt's because Wikidot (which powers the website) is an incredibly powerful engine that makes web-pages sophisticated yet easy to control and manage.\n\nI have tried to use other social networking websites, such as MySpace and Facebook, but I have problems with each of them. Firstly, both are very friggen slow to run properly. MySpace is not very customisable &#8212; you are restricted to the layout they provide. Then there is Facebook which isn't even customisable at all! And oh my friggen Lord, I can't customise Facebook to stop receiving application invitations&#8230;Grrrr. I don't want all of these crappy games my friends keep inviting me to do &#8212; and my inbox is clogging up with \&quot;you have been invited to a magical deathmatch\&quot; or equally horrible messages.\n\nI haven't even mention those ads. There was this horrible 3 months where MySpace was advertising \&quot;MySpace Jobs\&quot; using flash banners. It had a black backround, with red painted writing saying \&quot;P0RN STORE CLERK\&quot;. It was very inappropriate and I thought that it would be embarrassing if somebody looked over my shoulder and saw that! Thank God Wikidot has not a single ad!\n\nIt just goes to show that just because it's popular, doesn't mean it's the best&#8230; sounds a bit like IE to me!\n\nThe great thing about Wikidot is that it is a website, so I can put anything here, not just blogs.\n\n<span style="text-decoration: line-through;">-</span>-\n\nAnyway, I had better get back to fixing this CSS coding!&quot;<br /> sig: '1'<br /> after: 'PS. The first post is always the most boring &#8212; don''t be discouraged from reading others!'</p> <p>by <span class="printuser avatarhover"><a href="http://www.wikidot.com/user:info/james-kanjo" ><img class="small" src="http://www.wikidot.com/avatar.php?userid=35113&amp;size=small&amp;timestamp=1371653838" alt="James Kanjo" style="background-image:url(http://www.wikidot.com/userkarma.php?u=35113)" /></a><a href="http://www.wikidot.com/user:info/james-kanjo" >James Kanjo</a></span></p> 
				 	]]>
				</content:encoded>							</item>
				</channel>
</rss>