<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>novolocus.com &#187; 2007 &#187; January</title>
	<atom:link href="http://www.novolocus.com/2007/01/feed" rel="self" type="application/rss+xml" />
	<link>http://www.novolocus.com</link>
	<description>Whatever Andy Burns is working on...</description>
	<pubDate>Tue, 06 Jan 2009 16:36:39 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Tagging in SharePoint 2007</title>
		<link>http://www.novolocus.com/2007/01/25/tagging-in-sharepoint-2007/</link>
		<comments>http://www.novolocus.com/2007/01/25/tagging-in-sharepoint-2007/#comments</comments>
		<pubDate>Thu, 25 Jan 2007 08:01:44 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=100</guid>
		<description><![CDATA[The ECM team have release a tagging starter kit for SharePoint. Interesting. What would be really cool, though, would be for the system to automatically record people&#8217;s interests, based on searches performed, pages view, etc.. Might investigate, if I get time.
]]></description>
			<content:encoded><![CDATA[<p>The ECM team have release a <a href="http://blogs.msdn.com/ecm/archive/2007/01/22/taxonomy-tagging-starter-kit-for-sharepoint-server.aspx">tagging starter kit for SharePoint</a>. Interesting. What would be really cool, though, would be for the system to automatically record people&#8217;s interests, based on searches performed, pages view, etc.. Might investigate, if I get time.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2007/01/25/tagging-in-sharepoint-2007/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Nintex workflow extensions&#8230;</title>
		<link>http://www.novolocus.com/2007/01/25/nintex-workflow-extensions/</link>
		<comments>http://www.novolocus.com/2007/01/25/nintex-workflow-extensions/#comments</comments>
		<pubDate>Thu, 25 Jan 2007 08:01:11 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Workflow]]></category>

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

		<guid isPermaLink="false">http://www.novolocus.com/?p=101</guid>
		<description><![CDATA[Angus Logan raves about Nintex workflow extensions. Design workflows over a web interface? How cool is that!
It&#8217;d be interesting to see how it works, but if it lives up to it&#8217;s promise, that&#8217;s a very cool product!
Comments from my old blog:

Product has launched and the feedback has been great.  I think we have lived [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blogs.msdn.com/angus_logan/archive/2007/01/24/omg-nintex-workflow-2007-for-sharepoint.aspx">Angus Logan raves about</a> <a href="http://www.nintex.com/Product-Workflow.aspx">Nintex workflow extensions</a>. Design workflows over a web interface? How cool is that!</p>
<p>It&#8217;d be interesting to see how it works, but if it lives up to it&#8217;s promise, that&#8217;s a very cool product!</p>
<p class="oldCommentOuter">Comments from my old blog:</p>
<p class="oldCommentInner">
<p class="oldComment">Product has launched and the feedback has been great.  I think we have lived up to the promises.</p>
<p class="oldCommentFooter">By Brett Campbell at 16:06:35 Tuesday 24th April 2007</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2007/01/25/nintex-workflow-extensions/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Human Caused Earthquakes&#8230;</title>
		<link>http://www.novolocus.com/2007/01/16/human-caused-earthquakes/</link>
		<comments>http://www.novolocus.com/2007/01/16/human-caused-earthquakes/#comments</comments>
		<pubDate>Tue, 16 Jan 2007 10:01:55 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[A Bit Random]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=102</guid>
		<description><![CDATA[Some earthquakes are caused by humans
]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.wired.com/wiredscience/geology/index.html">Some earthquakes are caused by humans</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2007/01/16/human-caused-earthquakes/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Services in SharePoint 2007</title>
		<link>http://www.novolocus.com/2007/01/11/services-in-sharepoint-2007/</link>
		<comments>http://www.novolocus.com/2007/01/11/services-in-sharepoint-2007/#comments</comments>
		<pubDate>Thu, 11 Jan 2007 10:01:31 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=105</guid>
		<description><![CDATA[One of my tasks recently has been building a service for SharePoint 2007. The idea is that this service would read a set of items in a list, apply some rules, and send out a notification email to various users as a sort of &#8216;digest&#8217; of things that they needed to deal with. In the [...]]]></description>
			<content:encoded><![CDATA[<p>One of my tasks recently has been building a service for SharePoint 2007. The idea is that this service would read a set of items in a list, apply some rules, and send out a notification email to various users as a sort of &#8216;digest&#8217; of things that they needed to deal with. In the end, I produced a Windows service to do this - but there clever folks like <a href="http://blogs.flexnetconsult.co.uk/colinbyrne/PermaLink,guid,7f6e8c0d-c641-4d1f-aa4b-e78e893fcf56.aspx">Colin Byrne</a> and <a href="http://andrewconnell.com/blog/archive/2007/01/10/5704.aspx">Andrew Connell</a> who&#8217;re starting to figure out how build &#8217;services&#8217; (or &#8216;jobs&#8217;) into SharePoint 2007 directly, and I suspect this overcomes some of the issues I found.<span id="more-105"></span></p>
<p>Right, some context. The customer needed something straight forward - notification emails to be send out to users about the items on this list. Initially, the plan was to use the workflow in MOSS for this. Sure, doing &#8216;digest&#8217; emails would require a custom step - and I still think that this would be a good feature to have - but that all seemed possible. (By digest email, I mean having one email which said &#8216;You have 3 items deal with - A, B and C&#8217;, rather than seperate emails for each one&#8217;)</p>
<p>However, the Delay steps in Beta 2 TR - which we were supposed to be releasing onto - didn&#8217;t seem to work properly. Certainly, I had consistent problems with them - see elsewhere on this blog, and I know that other developers have posted describing the same problem - they just never return from &#8217;sleeping&#8217;.</p>
<p>So, ultimately we ditched workflow due to time constraints - which is a real shame, as I think it&#8217;s great. Anyway, I then looked at having some sort of timed job or similar. I&#8217;ve built these for Open Text&#8217;s Livelink system, and it&#8217;s pretty straight forward there. I thought it couldn&#8217;t be hard for SharePoint 2007. Well, it isn&#8217;t, but there wasn&#8217;t any documentation or blog postings out there about it - and time was pressing now.</p>
<p>I then looked at how you&#8217;d do this for SharePoint 2003 - and as <a href="http://andrewconnell.com/blog/archive/2007/01/10/5704.aspx">Andrew Connell notes</a>, this was a scheduled .exe (uck) or a Windows Service (a little less uck).</p>
<p><em>(Actually, a digression here - I don&#8217;t actually mind CRON jobs. In some ways I&#8217;m a bit of a luddite, so just saying &#8216;run this command at this time&#8217; is the sort of thing that appeals to me over more sophisticated (and complex) approaches like, well, Windows Services. However, I detest the user interface for Windows Scheduled tasks. The wizard doesn&#8217;t make all the options available to you obvious. You can&#8217;t edit the main features of the tasks in an &#8216;Excel like&#8217; view. If you do want to edit properties, it item-by-item, with lots of flicking between tabs. And part of me rather thinks that some sort of calendar view might be useful - especially if you could get a consolidated view from across numerous servers! )</em></p>
<p>Back to the point. So, I built a Windows service, and it worked. Sadly, though, it had a huge memory footprint - 60Mb! This is acceptable when it&#8217;s actually doing something, perhaps, but not for the hours it spends waiting between sending these emails.</p>
<p>Eventually, I realised what was happening. To access the SharePoint object model, the service was using the Microsoft.SharePoint DLL. This in turn was loading other SharePoint assemblies. Next thing you know, it&#8217;s loaded 60Mb into the application domain - and the stuff remains there until the service is restarted.</p>
<p>The answer to that was to pull all the bits that use the SharePoint assemblies into a separate application domain, and have the service load, use and unload that app domain.</p>
<p>Anyway, in hindsight:</p>
<ol>
<li>I would use a windows scheduled task for this rather than a service. This is despite the fact that the service can be administered more easily.</li>
<li>I would use the SPJobDefinition to create a service in SharePoint itself rather than either of the other two approaches.</li>
<li>It&#8217;s obvious that the SharePoint dll was going to cause other assemblies to be loaded and to use up lots of memory. It&#8217;s worth remembering that, and avoiding having them sit in memory if not doing anything.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2007/01/11/services-in-sharepoint-2007/feed/</wfw:commentRss>
		</item>
		<item>
		<title>What did I learn today (and yesterday) about testing</title>
		<link>http://www.novolocus.com/2007/01/05/what-did-i-learn-today-and-yesterday-about-testing/</link>
		<comments>http://www.novolocus.com/2007/01/05/what-did-i-learn-today-and-yesterday-about-testing/#comments</comments>
		<pubDate>Fri, 05 Jan 2007 14:01:05 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Development]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=108</guid>
		<description><![CDATA[I&#8217;ve been testing some code I&#8217;ve written for sending out notification emails according to a moderately complex set of rules. So, what have I learnt?

Developers make rubbish testers. We know our own code too well, and already have expectations of how things should work.
Testing has too many variables for any reasonable size application. You can&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been testing some code I&#8217;ve written for sending out notification emails according to a moderately complex set of rules. So, what have I learnt?</p>
<ul>
<li><strong>Developers make rubbish testers.</strong> We know our own code too well, and already have expectations of how things should work.</li>
<li><strong>Testing has too many variables</strong> for any reasonable size application. You can&#8217;t test exhaustively. Equally, testing only what you think needs testing will also miss things. I&#8217;m beginning to think some automated, semi random testing (if you can) is the way forward - and you&#8217;ll still miss things.</li>
<li><strong>Specialist testers are good.</strong> I&#8217;m convinced a specialist would see what I&#8217;ve missed, and have good ideas over how to test generally. <a href="http://www.codinghorror.com/blog/archives/000690.html">I don&#8217;t think I&#8217;m alone in that.</a>.</li>
<li><strong>Automated test is not a panacea&#8230;</strong> I really don&#8217;t see how it could apply in this case, at least not without a unit test program that could create database records, read a SharePoint library, and read an exchange server. All reasonable - but how do I then test the test app? &#8216;Cos it&#8217;s a complicated as my actual application.</li>
<li><strong>&#8230; and Unit testing isn&#8217;t a panacea either&#8230;</strong> I know, they&#8217;re related, but this does at least imply that you&#8217;re testing, well, small units of code. That relies on problems not occuring because of mismatches in the interoperation between units.</li>
<li><strong>&#8230; and with them both, you have to remember that you&#8217;re designing the tests.</strong> If you didn&#8217;t think of the case to handle it in your code, do you think you&#8217;ll think of it to test for it?</li>
</ul>
<p>All that said, my application seems to work pretty well. Just there was a lot of manual cross referencing of results to check things worked, so I had a lot of time to think.</p>
<p>I&#8217;d <em>really</em> like a project where I can get thoroughly stuck into unit testing. Didn&#8217;t use it in this one, but I did think about how I would&#8217;ve done it - and I suspect I&#8217;d have missed one of the bugs I found. I suspect that unit testing&#8217;s main advantages are in forcing developers to actually think up front (sometimes rare), and in ensuring a consistent public interface despite internal changes. But I don&#8217;t see how you can get away from the fact that someone has to site and decide what to test - and that way things can be missed..</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2007/01/05/what-did-i-learn-today-and-yesterday-about-testing/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Benchmark: Speed of Encryption and Decryption using .NET Framework classes</title>
		<link>http://www.novolocus.com/2007/01/03/benchmark-speed-of-encryption-and-decryption-using-net-framework-classes/</link>
		<comments>http://www.novolocus.com/2007/01/03/benchmark-speed-of-encryption-and-decryption-using-net-framework-classes/#comments</comments>
		<pubDate>Wed, 03 Jan 2007 10:01:16 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[.NET]]></category>

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

		<guid isPermaLink="false">http://www.novolocus.com/?p=109</guid>
		<description><![CDATA[I was reading about security stuff in the .NET framework, and dealing with cryptographic classes in it, and it sort of set me wondering. Here are all these different encryption classes, with different block and keys sizes, cipher modes, all that jazz - but what are their performances like? Specifically, I&#8217;d read something saying how [...]]]></description>
			<content:encoded><![CDATA[<p>I was reading about security stuff in the .NET framework, and dealing with cryptographic classes in it, and it sort of set me wondering. Here are all these different encryption classes, with different block and keys sizes, cipher modes, all that jazz - but what are their performances like? Specifically, I&#8217;d read something saying how some &#8216;weaker&#8217; encryption algorithms are better  (in some speed-critical applications) &#8216;cos they&#8217;re faster. I wondered how much?</p>
<p>Thus, I decided to benchmark the <a href="http://en.wikipedia.org/wiki/Symmetric_cipher">Symmetric alogrithms</a> in the .NET Framework - <a href="http://en.wikipedia.org/wiki/Data_Encryption_Standard">DES</a>, <a href="http://en.wikipedia.org/wiki/Triple_DES">Triple DES</a>, <a href="http://en.wikipedia.org/wiki/RC2">RC2</a> and <a href="http://en.wikipedia.org/wiki/Advanced_Encryption_Standard">Rijndael</a>. To make life interesting, I thought I&#8217;d try them with differenct <a href="http://en.wikipedia.org/wiki/Key_length">key sizes</a> and <a href="http://en.wikipedia.org/wiki/Block_size_%28cryptography%29">block sizes</a>, and <a href="http://en.wikipedia.org/wiki/Block_cipher_mode_of_operation">cipher modes</a>.</p>
<p>So, I&#8217;ve linked to definitions of these factors, but for those who don&#8217;t want to read vast chunks of Wikipedia, here are my (simplified) definitions. For anyone really interested in learning how to program with encryption properly (and in learning why their 128 bit key probably isn&#8217;t 128 bits strong) I can <em>strongly</em> recommend the book <a href="http://www.amazon.co.uk/Practical-Cryptography-N-Ferguson/dp/0471223573/sr=8-1/qid=1167826189/ref=pd_ka_1/202-1250360-5295854?ie=UTF8&amp;s=books">&#8216;Practical Cryptography&#8217;</a> by <a href="http://www.schneier.com/blog/">Bruce Schneier</a> and Niels Ferguson.</p>
<p><em><strong>Symmetric ciphers</strong></em> are ones like you used when you were a kid. You have some operation that turns a message into garbage, and then the reverse of that operation turns that garbage into a message. Some algorithms don&#8217;t have a reverse - they are asymmetric ciphers, and are a whole different <a href="http://www.worldwidewords.org/qa/qa-ket1.htm">kettle of fish</a>.</p>
<p><em><strong>Keys</strong></em> are the password you use with your cipher. For example, if you&#8217;re cipher as a kid was to shift all letters in the alphabet, then the key might be the numbers of characters shifted. Big keys are harder to break. Think of it as being just like a password or PIN number. If I tell you that my PIN is 4 digits, you might be tempted to guess all 10,000 possibilities, and on average you&#8217;d figure my PIN out after 5000 tries. If my PIN was 8 digits, then there is 100,000,000 options - and you&#8217;re less likely to try all the possibilities, eh?</p>
<p><em><strong>Block sizes</strong></em>. Well, okay, some ciphers work on blocks of data, rather than each byte (or each &#8216;letter&#8217;). These are block ciphers. There are also stream ciphers, where each byte is encrypted one by one. Anyway, in block ciphers there is a limit to how much data can be encrypted without &#8216;leaking&#8217; information. Larger block sizes can encrypt more data without that leakage. (That&#8217;s not to say that the block has been decrypted, but an attacker could start to learn things about the contents of that block.)</p>
<p><em><strong>Cipher modes</strong></em> don&#8217;t really have a parallel with how you did codes as a kid. I guess I would describe it that if the cipher is about how you make an apparently random set of bits, then the cipher mode is about how you then use them. There are lots of different modes, but the .NET framework classes only seem to support 3 - ECB (Electronic Cookbook), CBC (Cipher block chaining) and CFB (Cipher Feedback).</p>
<p>So, what are the algorithms:</p>
<ul>
<li>DES - An old encryption standard, now regarded as offering poor security, but so widely used that it is still in operation as a legacy system.</li>
<li>Triple DES - An improved version of DES, made by essentially applying the DES 3 times.</li>
<li>RC2 - A moderately old encryption algorithm. Flexible key lengths, but short block size.</li>
<li>Rijndael (aka AES) - The latest encryption standard. The Rijndael algorithm was selected from several as part of a competition. It wasn&#8217;t regarded as the most secure, but it was quite quick. The Advanced Encryption Standard (AES) is actually a <a href="http://www.novolocus.com/display.php?id=360">subset of Rijndael</a>.</li>
</ul>
<p><strong>The Test</strong></p>
<p>I found a nice text file - &#8220;The complete works of Shakespeare&#8221; - as my test data.</p>
<p>For each algorithm, for each mode, key and block size, the test program encrypted and decrypted the data twenty times, and reported the average &#8216;time&#8217; for each operation. I was using the Win32 QueryPerformanceCounter function, which doesn&#8217;t really return a time so much as cycles. However, all the tests were done on the same machine, so they&#8217;ll do just fine for comparison purposes.</p>
<p><strong>Results</strong></p>
<p>With the several factors tested, there are many ways of slicing the data. It&#8217;s worth noting that these results are pretty rough, as the times taken also include file IO operations, and with any modern PC there&#8217;s also something else happening at any single time. Also, the times are the total time taken to encrypt and decrypt, which might not be the same for each operation. Treat the results as a loose guide.</p>
<p>First let&#8217;s look at the raw results. <a href="http://www.novolocus.com/files/EncryptionTimes.xls">You can get the results here (Excel file)</a>.</p>
<p>Unsurprisingly, DES is fastest - given it&#8217;s age, and the low level of security it offers now. Triple DES with the longest key it supports was generally slowest. RC2 covered the full range of results, which is also unsurprising, given it&#8217;s flexibility, and Rijndael sort of falls in the middle.</p>
<p><img src="http://www.novolocus.com/wp-content/oldImages/62.png" border="1" /></p>
<p>The first thing I noticed was how few tests there were using DES or Triple DES. RC2 and Rijndael are much more flexible in their use.</p>
<p>Next, it&#8217;s interesting to note that RC2, DES and Triple DES using Cipher Feedback Mode (CFB) were all very, very slow. They all seem to suffer very badly using CFB.</p>
<p><img src="http://www.novolocus.com/wp-content/oldImages/64.png" border="1" /></p>
<p>So, excluding the CFB results then (as they are so exceptionally slow), what do the other results show? Well, Rijndael does not suffer so badly in CFB, although CFB is slower.</p>
<p><img src="http://www.novolocus.com/wp-content/oldImages/63.png" border="1" /></p>
<p>ECB appears slightly slightly faster in the table, though examining the CBC Mode Graph shows little difference.</p>
<p><img src="http://www.novolocus.com/wp-content/oldImages/65.png" border="1" /></p>
<p>To compare the modes, I looked at just the operations done with the Rijndael cipher.</p>
<p><img src="http://www.novolocus.com/wp-content/oldImages/66.png" border="1" /></p>
<p>Again, we see little difference between ECB and CBC, so I guess there&#8217;s no reason not to use the more secure CBC mode over ECB (for an example of it&#8217;s weakness <a href="http://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Electronic_codebook_.28ECB.29">see here</a>). Also, for 128 bit blocks (as required by the AES standard), CFB is as quick as ECB.</p>
<p>Rijndael is not great in CFB mode with blocks of longer than 128 bits.</p>
<p>Okay, so let&#8217;s focus on just one mode (CBC) and look at the results shown in the CBC Mode Graph. Well, it&#8217;s interesting to note that RC2 with a 112 bit key was quite quick - faster than with some shorter keys. However, it&#8217;s only about 6.5% longer to use 128 bit Rijndael - which is a key that is 14% longer. Doubling the key with Rijndael to 256 was only 10% longer than 128.</p>
<p>Longer blocks take longer to encrypt and decrypt. 64 bit blocks seems a little short these days, only being safe for up to a couple of hundred megabytes. 128 bits seems more reasonable. 256 bits seems excessive. Rijndael seems to have little penalty for using 256 bits over 128, though if you do, you&#8217;re not using an AES standard encryption.</p>
<p><strong>Conclusion</strong></p>
<p>DES and Triple DES are old. DES isn&#8217;t secure, and Triple DES doesn&#8217;t seem to offer much given Rijndael and RC2 being much faster than it.</p>
<p>In terms of cipher modes, these classes only seem to support ECB, CFB anc CBC. ECB is generally regarded as being a poor mode - it&#8217;s not very secure. CFB was typically slower than CBC, and as Microsoft have already implemented the classes, some of the advantages CFB (i.e. encryption and decryption being identical operations) have been lost.</p>
<p>So, then examining Rijndael in CBC mode, well, there is little penalty for using 256 bit keys or 256 bit blocks. However, it&#8217;s probably worth sticking to 128 bit blocks as 1) it is plenty, and 2) it is AES compatible.</p>
<p>All in all, I was surprised by how similar a lot of the results were for different algorithms, and I was surprised by how slow some of the CFB mode operations were.</p>
<p>To be honest, I can&#8217;t really think of a reason not to use Rijndael with 128 bit blocks, in CBC mode. Unless time is a really critical factor, 256 bit keys are stronger. Finally, the <em>RijndaelManaged</em> class in the framework is a managed class, rather than a wrapper for a COM object.</p>
<p>So, the winner is Rijndael!</p>
<p class="oldCommentOuter">Comments from my old blog:</p>
<p class="oldCommentInner">&nbsp;</p>
<p class="oldComment">This is a very informative article. I have just started looking into  encryption, and I have come across nothing on the internet that is as concise as your article.<br />
Will you be doing something similar with asymmetric encryption as well?</p>
<p class="oldCommentFooter">By Firoz at 06:22:04 Friday 9th February 2007</p>
<p class="oldCommentInner">&nbsp;</p>
<p class="oldComment">Yup, well, at some point. The truth is, in the .NET 2.0 framework, there isn&#8217;t a lot of other asymmetric algorithms. RSA is about it. I think in the .NET 3.0 framework there is elliptical curve, and that would be interesting&#8230;</p>
<p>So, yes, when I get around to it.</p>
<p class="oldCommentFooter">By Andy B at 10:09:43 Friday 13th April 2007</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2007/01/03/benchmark-speed-of-encryption-and-decryption-using-net-framework-classes/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Good, paranoid bookmark design, and Google&#8217;s Firefox extentions</title>
		<link>http://www.novolocus.com/2007/01/02/good-paranoid-bookmark-design-and-googles-firefox-extentions/</link>
		<comments>http://www.novolocus.com/2007/01/02/good-paranoid-bookmark-design-and-googles-firefox-extentions/#comments</comments>
		<pubDate>Tue, 02 Jan 2007 09:01:55 +0000</pubDate>
		<dc:creator>Andy</dc:creator>
		
		<category><![CDATA[Firefox]]></category>

		<guid isPermaLink="false">http://www.novolocus.com/?p=110</guid>
		<description><![CDATA[So, I use Google&#8217;s Firefox plugin to synchronise my bookmarks between work and home. It worked well - or used to until I started using Firefox 2 at home. Anyway, for no apparent reason, yesterday it trashed my bookmarks at home. And then today, at work, it decided it would synchronise after all, and trashed [...]]]></description>
			<content:encoded><![CDATA[<p>So, I use Google&#8217;s Firefox plugin to synchronise my bookmarks between work and home. It worked well - or used to until I started using Firefox 2 at home. Anyway, for no apparent reason, yesterday it trashed my bookmarks at home. And then today, at work, it decided it would synchronise after all, and trashed my bookmarks at work to.</p>
<p>I guess the lesson is to always maintain redundancy. Fortunately, the guys writing Firefox (presumably &#8216;cos they had problems with the bookmarks too) took to storing backups of the bookmark file - and that has worked nicely in this instance.</p>
<p>Anyway, it&#8217;s enough to put me off - I shall be looking for something else. I gather that Delicious (insert your own dots) has a good Firefox plugin, and works by tagging, which is good also. I&#8217;m just a wee bit worried as I really want to have a heirarchy too - so I can drill down, rather than just getting a &#8216;pool&#8217; of matching tags.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.novolocus.com/2007/01/02/good-paranoid-bookmark-design-and-googles-firefox-extentions/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
