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

<channel>
	<title>A mind less ordinary &#187; Braindump</title>
	<atom:link href="http://www.dmi.me.uk/blog/tag/braindump/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dmi.me.uk/blog</link>
	<description></description>
	<lastBuildDate>Wed, 18 Aug 2010 13:17:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/3.0/</creativeCommons:license>
		<item>
		<title>A content-based file manager</title>
		<link>http://www.dmi.me.uk/blog/2009/06/04/a-content-based-file-manager/</link>
		<comments>http://www.dmi.me.uk/blog/2009/06/04/a-content-based-file-manager/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 22:12:38 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Insight (semantic filesystem)]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Braindump]]></category>
		<category><![CDATA[file manager]]></category>
		<category><![CDATA[ideas]]></category>

		<guid isPermaLink="false">http://www.dmi.me.uk/blog/?p=124</guid>
		<description><![CDATA[<p>I&#8217;ve been thinking recently about Insight again, and I&#8217;ve been considering part of the problem with naming and uniqueness.</p>
<p>Names in a traditional file system are made unique based on a full path to the file, but most people think of a file name as just the final component. This would then cause a problem with the <a href="http://www.dmi.me.uk/blog/2009/06/04/a-content-based-file-manager/">[...]</a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been thinking recently about Insight again, and I&#8217;ve been considering part of the problem with naming and uniqueness.</p>
<p>Names in a traditional file system are made unique based on a full path to the file, but most people think of a file name as just the final component. This would then cause a problem with the move to Insight, as a file could appear in multiple directories, and its only distinguishing feature would be the final component of its path. This is counter-intuitive and can cause all sorts of problems.</p>
<p>Consider makefiles, for example. They rely on a standard named file (<tt>Makefile</tt>) appearing at various levels in the hierarchy in order to work. Obviously, you would want different makefiles at different levels and in different projects, but Insight as it stands has no way to handle this.</p>
<p>I then started thinking about what makes a file unique. In the end, I came up with two things: name and content. This covers the makefile case (same name, different content) as well as the backup case (same content, different name). It then occurred to me that, in the general case, all you need to distinguish a file is its content, and then actually finding it can all be left up to metadata.</p>
<p><span id="more-124"></span>If files are then thought of as containers for data that happen to have a unique internal identifier (which never needs to be exposed to the user, although it can be accessed as, say, the file&#8217;s inode number) then the idea of a content-based file manager comes into play. These examples work best with visual media, particularly images, but there is no reason in principle that this could not be extended.</p>
<p>Imagine searching for a file. You know it&#8217;s a photo, but you have a large collection of them. With a digital camera and a large-capacity memory card, who needs to ever delete a photo? We&#8217;ll assume that you&#8217;ve dilligently tagged the photos with metadata as you&#8217;ve imported them from the camera, through some easy batch process.</p>
<p>On the tagging point: a lot can be taken from the metadata stored by the camera (date/time, resolution, orientation, black and white/colour, perhaps GPS co-ordinates) and with the right tools, more can be inferred (auto-tagging faces, buildings, perhaps recognising common events like football matches, converting GPS co-ordinates to places, &#8230;). As time goes on, people will need to do less and less manual tagging.</p>
<p>Anyway, back to the file manager. You know you are after a picture or a set of pictures. Normal thought processes will probably follow a path similar to: &#8220;Yeah, I wanted to show dad those <strong>photos</strong> from that <strong>holiday</strong> in <strong>Paris</strong> that we had <strong>two months ago</strong>. I think he&#8217;d particularly like the ones we got of the <strong>Louvre</strong>, as well as the ones <strong>with me in</strong>, of course.&#8221; I&#8217;ve highlighted various key words that can be translated directly to metadata searches. Notice how these all involve a narrowing down of the query.</p>
<p>To convert these to filters, we then have:</p>
<ul>
<li>type: <strong>photo</strong></li>
<li><strong>holiday</strong></li>
<li>location: <strong>Paris</strong></li>
<li>date: <strong>two months ago</strong></li>
<li>at least one of:
<ul>
<li>location: <strong>Louvre</strong></li>
<li>person: <strong>Me</strong></li>
</ul>
</li>
</ul>
<p>This could also be represented by a query:</p>
<blockquote>
<div class="codecolorer-container text twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">type:photo AND holiday AND location:Paris AND date:-2m<br />
AND (location:Louvre OR person:me)</div></div>
</blockquote>
<p>Breaking it down in this way feels fairly technical and wordy, however. I&#8217;d much prefer a visual view.</p>
<p>Imagine a black field, speckled with points of light representing your photos:</p>
<p><img class="aligncenter size-full wp-image-131" title="Content File Manager 1" src="http://www.dmi.me.uk/blog/wp-content/uploads/2009/06/content-file-manager-1.png" alt="Content File Manager 1" width="450" height="340" /></p>
<p>You filter by &#8220;holiday&#8221;, and (because it learns based on previous searches) it then groups by location. The ones which have been filtered out fade into nothing, and the photos group into labelled blobs and enlarge slightly:</p>
<p><img class="aligncenter size-full wp-image-132" title="Content File Manager 2" src="http://www.dmi.me.uk/blog/wp-content/uploads/2009/06/content-file-manager-2.png" alt="Content File Manager 2" width="450" height="340" /></p>
<p>You filter by date, and as you drag the slider, irrelevant items fade away and relevant ones enlarge:</p>
<p><img class="aligncenter size-full wp-image-133" title="Content File Manager 3" src="http://www.dmi.me.uk/blog/wp-content/uploads/2009/06/content-file-manager-3.png" alt="Content File Manager 3" width="450" height="340" /></p>
<p>Then you add the final filters and set the photos up for viewing, perhaps as a slideshow&#8230; and you&#8217;re done!</p>
<p>Pretty neat, I think.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dmi.me.uk/blog/2009/06/04/a-content-based-file-manager/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Overflowing with ideas</title>
		<link>http://www.dmi.me.uk/blog/2008/04/29/overflowing-with-ideas/</link>
		<comments>http://www.dmi.me.uk/blog/2008/04/29/overflowing-with-ideas/#comments</comments>
		<pubDate>Tue, 29 Apr 2008 16:44:07 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[OpenIntegrate]]></category>
		<category><![CDATA[PHP RAD system]]></category>
		<category><![CDATA[Partis]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Braindump]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[ideas]]></category>
		<category><![CDATA[intercommunication]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[proposals]]></category>
		<category><![CDATA[RAD]]></category>
		<category><![CDATA[web integration]]></category>

		<guid isPermaLink="false">http://www.dmi.me.uk/blog/?p=50</guid>
		<description><![CDATA[<p>I&#8217;ve found myself overflowing with ideas as I try to focus on revision, so I thought I might as well scribble some of them down, if only to get them out of my head! To name the prominent few:</p>

More on Partis and its future
A web service integration API proposal
A PHP system to make it easy to <a href="http://www.dmi.me.uk/blog/2008/04/29/overflowing-with-ideas/">[...]</a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve found myself overflowing with ideas as I try to focus on revision, so I thought I might as well scribble some of them down, if only to get them out of my head! To name the prominent few:</p>
<ul>
<li>More on Partis and its future</li>
<li>A web service integration API proposal</li>
<li>A PHP system to make it easy to plug together a load of code modules for rapid development</li>
<li>Not to mention some others which are too fleeting or too vague to pin down yet</li>
</ul>
<p><span id="more-50"></span></p>
<h2>Partis</h2>
<p><a title="Partis website" href="http://www.partis-project.net/" target="_blank">Partis</a> is the name of a project I had originally planned to put together many years ago when I started university (back in 2004!).</p>
<p>The basic idea was to create a P2P system that worked internally on networks using IP multicast for peer discovery, which also allowed browsing and cross-network searches. It would provide bandwidth limitations, both in terms of speed and amount, as well as dynamic limits (e.g. 500KB/s for the first 300MB downloaded, then 50KB/s thereafter).</p>
<p>While I think this is still a good idea for places like the halls networks (where we were limited to 5GB bandwidth per 24 hours) I have decided on a better direction for the project, which is something almost completely different: distributed backup.</p>
<p>I don&#8217;t want to talk about Partis too much in this post, as I want to discuss other things too, but I will note down some of my ideas and things that have come out of discussion with others.</p>
<p>Changing Partis to a distributed backup solution came from a fairly selfish beginning, as have many of my ideas. If I want to put a system together because I&#8217;ll find it very useful (and perhaps indispensible) then perhaps other people will think the same. When I was getting ready to begin my final year project, I wanted to be paranoid about my work. I wanted to guard against losing it in any conceivable way:</p>
<ul>
<li>Hard drive or computer dying or becoming corrupted or destroyed</li>
<li>Losing a USB stick</li>
<li>Accidental deletion/overwriting</li>
<li>Malicious tampering</li>
<li>Theft</li>
<li>External server failure (e.g. Department of Computing or my own server), although highly unlikely</li>
</ul>
<p>So after considering all these options, I thought it would be great to create a distributed P2P-style backup solution. Sadly I haven&#8217;t had the time to do this, but the basic idea for myself was to use the fact that many of the computers in the Department have an empty partition that is about 20GB in size. If I could use that space to store my data and redundantly distribute it across multiple machines (to account for failures/reformats/reinstalls, computer being off or in Windows or otherwise inaccessible, etc) then I would feel a bit safer. And of course I could use some spare space on my housemates&#8217; computers, and maybe my home computer, and my server, and some other friends around the country or even the world&#8230;</p>
<p>The data would have to be encrypted, of course, as I wouldn&#8217;t want just anyone reading it, and there would have to be checksums to guard against modification or corruption. I quickly realised that this project was something that I wouldn&#8217;t have the time to undertake in parallel to my Masters project, and that it might have made a viable alternative. Then of course, there&#8217;s the possibility of storing versioned copies of files, and the question of how to distribute everything, and so forth.</p>
<p>Then it hit me that other people would find this useful. Surely most students would want to have a gigabyte or more of redundant, safe storage? Then this creates and solves the problem of finding enough space at the same time. As a potential business model, for example, people could have 1GB of free storage by offering 3-5GB of their own disk for usage by the network.</p>
<p>There would be different storage tiers based on host reliability (uptime/online time/connection speed/etc) and so on. It would perhaps be possible to charge a premium for upper-tier storage (i.e. things you&#8217;d need to be able to recover ASAP) as opposed to lower-tier storage (data that you want safe but you don&#8217;t need immediate access to, e.g. family photos), with varying prices depending on the service you offer to others. The better the service you offer (the more you put in), the better you get (the more you get out). Of course, those who don&#8217;t want to contribute their resources to the network (or can&#8217;t do so) would be able to pay for some centralised storage.</p>
<p>It&#8217;s not just individuals who could use this system, however. Think about companies with large numbers of desktop machines in geographically distinct locations. Bump up the redundancy factor and it could be licensed as an alternative off-site backup solution. Archived data could be distributed across employees&#8217; desktop computers, using a percentage of the disk space that would otherwise just be sitting idle. For a fee.</p>
<p>Of course, there are a large number of things to consider and tweak, such as how to deal with encryption, and the inevitability of people losing their keys. My first thoughts on this are to have a two-layer system, although I&#8217;m not sure this is possible. The user has a passphrase-protected key that can decrypt a secondary key which is actually centrally stored and used to encrypt/decrypt their files. Then if users lose their passphrase, their data isn&#8217;t lost &#8211; another key held in central reserve that requires a combination of personal details to unlock can be used to decrypt the secondary key and create a replacement personal keypair.</p>
<p>That&#8217;s probably enough about Partis for now!</p>
<p><strong>Update (2008-04-29 18:25):</strong> <a href="http://www.danlester.com/" target="_blank">Dan Lester</a> (who uses the same WP theme &#8211; what are the chances?) has drawn my attention to <a href="http://www.zoogmo.com">Zoogmo</a> which is similar on the surface, but is Windows-only and based around the idea of sharing with friends rather than the Partis network. Also, they don&#8217;t yet appear to have different tiers. They do have a suitable &#8220;Web 2.0&#8243; name though. Something to look into and keep an eye on though. Are any ideas original any more?</p>
<h2>Web service integration</h2>
<p>Something that came to my attention the other day when reading <a href="http://fishbowl.pastiche.org/">Charles Miller&#8217;s blog</a> was the fragmentation of data across the web. There are few central authentication schemes (such as OpenID) and little support for them. There is no standard for integrating the services offered by the multitude of different sites. This isn&#8217;t helped by the lack of incentive for sites to bring their offerings together, but I believe it could be really useful. I then read <a title="The Fishbowl: Function Follows Form" href="http://fishbowl.pastiche.org/2007/05/16/function_follows_form" target="_blank">various</a> <a title="ZefHemel.com: WebFS" href="http://www.zefhemel.com/archives/2007/03/04/webfs" target="_blank">blog</a> <a title="TechFold: Time For An Internet Filesystem?" href="http://techfold.com/2007/04/18/time-for-an-internet-file-system-ifs/">posts</a> on this subject and decided that I would like to hammer out the beginnings of a web interaction/integration API. With help and assistance from other people, of course!</p>
<p>More on this another time. All I will say for now is a potential name: <strong>OpenIntegrate</strong>.</p>
<h2>Pluggable PHP system</h2>
<p>While in the shower the other day (an excellent place for ideas to appear, it seems), I decided that what I really want to create is a library of PHP code that I can just plug together for various tasks. It would have to know a bit about database layout, so that I didn&#8217;t really have to think about it in advance. The more I thought about it, the more developed the idea became. This system would be a set of PHP files and a preprocessor, so that modules can have optional dependencies and hence conditional code generation/inclusion in a fast way, as well as automatically creating/updating the database in order to work.</p>
<p>For example, I was recently thinking about how persistent logins work, and how nice it would be to just write a component once that I can just add to a generic user authentication component. A user authentication component requires (at minimum) a <strong>username</strong> and <strong>password</strong> field in a <strong>users</strong> table of a database. When coupled with a persistent login cookie system, however, either the <strong>users</strong> table has to be updated to include a <strong>persistent_token</strong> field (and maybe a <strong>series_id</strong>, see <a href="http://jaspan.com/improved_persistent_login_cookie_best_practice" target="_blank">here</a>) or a new tables is required if you want to allow login to be remembered from multiple places.</p>
<p>It would be really nice if the PHP could take care of these database modifications by itself, and automatically integrate with the user login module, so that I don&#8217;t have to worry about it. That way, I can just put a load of files together, run something similar to <kbd>rake</kbd>/<kbd>bake</kbd> on them, and end up with an SQL file that will contain the required database schema and also include/exclude bits of the PHP code based on the available modules, perhaps commenting/uncommenting blocks based on available modules, etc. This would prevent a number of checks for optionally available functionality. Each module would then contain a comment header, perhaps something like:</p>
<pre>/*# PROVIDES: userauth
 *# REQUIRES:
 *# SUPPORTS: persistlogin
 *# DEFAULT_DEF: TBL_USER="users"
 *# DB_REQUIRE: [ TBL_USER, [ username: varchar50, password: char32 ] ]
 */</pre>
<p>and then:</p>
<pre>/*# PROVIDES: persistlogin
 *# REQUIRES: userauth
 *# SUPPORTS: persistlogin
 *# DB_REQUIRE: [ TBL_USER, [ persistent_token: char32, series_id: char32 ] ]
 */</pre>
<p>&#8230; and then make a sensible minimum required database structure out of them. Of course, much more than this would be required, and the format described above is very nasty, but that was just my first thoughts. You could then have conditional compilation:</p>
<pre lang="php">/*# IF HAS_MODULE("persistlogin")
  // code to check for persistent login cookie
  if ($_COOKIE['persist_login']) { }
  elseif (/* check DB ... */) {
 *# ELSEIF #*/
  if (/* check DB ... */) {
/*# ENDIF #*/
    // log them in
  } else {
    // ...
  }</pre>
<p>or:</p>
<pre lang="php">/*# IF HAS_MODULE("persistlogin") #*/
  // code to check for persistent login cookie
  if ($_COOKIE['persist_login']) { }
  elseif (/* check DB ... */) {
/*# ELSEIF #*
  if (/* check DB ... */) {
 *# ENDIF #*/
    // log them in
  } else {
    // ...
  }</pre>
<p>depending on whether the &#8220;persistlogin&#8221; module is available at the time the preprocessor is run.</p>
<p>I thought about calling it GHOTI (<a title="Wikipedia: Ghoti" href="http://en.wikipedia.org/wiki/Ghoti" target="_blank">prounounced</a> &#8220;fish&#8221;) because I like quirky words, but couldn&#8217;t immediately come up with a backronym. G- H- Offering Tight Integration? Maybe I&#8217;ll come up with something from Latin instead. Or call it RADPHP or PHP-RAD. Who knows?</p>
<p>Anyway, that&#8217;s probably enough of my random ideas for now. More to come after exams, I don&#8217;t doubt! First one is tomorrow at 14:30. Sigh.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dmi.me.uk/blog/2008/04/29/overflowing-with-ideas/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/3.0/</creativeCommons:license>
	</item>
		<item>
		<title>Insight braindump</title>
		<link>http://www.dmi.me.uk/blog/2007/12/03/insight-braindump/</link>
		<comments>http://www.dmi.me.uk/blog/2007/12/03/insight-braindump/#comments</comments>
		<pubDate>Mon, 03 Dec 2007 01:15:23 +0000</pubDate>
		<dc:creator>Dave</dc:creator>
				<category><![CDATA[Insight (semantic filesystem)]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[University]]></category>
		<category><![CDATA[Braindump]]></category>

		<guid isPermaLink="false">http://www.dmi.me.uk/blog/2007/12/03/dbfs-braindump/</guid>
		<description><![CDATA[<p>Well this is going to be a very random and unstructured post, but I just wanted to note down a few thoughts and ideas before I forget about them&#8230; and I&#8217;ll probably update this a couple of times before finally giving in and making it a page. This is an evolving post.</p>
<p></p>

Many, many people have tried <a href="http://www.dmi.me.uk/blog/2007/12/03/insight-braindump/">[...]</a>]]></description>
			<content:encoded><![CDATA[<p>Well this is going to be a very random and unstructured post, but I just wanted to note down a few thoughts and ideas before I forget about them&#8230; and I&#8217;ll probably update this a couple of times before finally giving in and making it a page. This is an evolving post.</p>
<p><span id="more-34"></span></p>
<ol>
<li>Many, many people have tried to do this. Why have they failed?
<ol>
<li>Is it simply because they try to force this to fit into the framework of a relational database, which I believe is very badly matched to the entire concept?</li>
<li>On this note, nobody seems to have picked up on my idea of structured naming either. Can I really be the first to think of this?</li>
<li>Must find out as much as possible why other attempts have failed or not become mainstream.</li>
<li>Many users (on blogs, etc) are crying out for this&#8230;</li>
<li>My approach seems so simple; why has nobody else done it this way?</li>
</ol>
</li>
<li>It would be really nice if the filesystem itself could pick up some metadata about the files without the user having to add them.
<ol>
<li>The best way I can think of to do this is via a plugin system, providing hooks at file write time which could (possibly) identify a file and then pass it to a list of interested modules, which provide hooks to parse the file and extract relevant metadata.</li>
<li>This means that these modules could simply be written as and when needed (by a competent developer) and it makes the whole FS extensible. It also means that I don&#8217;t have to do it <img src='http://www.dmi.me.uk/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' title="icon smile photo" /> </li>
<li>Example hook: MP3? EXIF?</li>
</ol>
</li>
<li>Need to find a way to get users away from the idea of files having a well-defined &#8220;location&#8221;, while at the same time providing some sort of URI for them.</li>
<li>IDEA: legacy paths start with the first attribute being a null string (i.e. literally /path/to/file). Bit of a hack, but a null tag doesn&#8217;t make sense anyway. So you can still get to your files (if you must) via the path
<div class="codecolorer-container text twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">/dbfs/legacy/home/dave/Documents/Uni/year4/project/docs/report/intro/introduction.tex</div></div>
<p>instead of</p>
<div class="codecolorer-container text twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">[uni/year/4 uni/project document/report report/section/introduction]</div></div>
<p>or even</p>
<div class="codecolorer-container text twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">[dbfs report introduction]</div></div>
</li>
<li>Potential name: <em>Insight</em>. Backronym: &#8220;Insight: New Semantic Intuitive Grouping Human-friendly Technology&#8221;</li>
<li>Samples:
<ul>
<li>Dave&#8217;s home directory:
<div class="codecolorer-container text twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">[owner/dave]</div></div>
</li>
<li>Files that Dave is sharing:
<div class="codecolorer-container text twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">owner/dave public</div></div>
</li>
<li>Music:
<div class="codecolorer-container text twitlight" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">type/music !type/music/midi &amp;lt;(artist|&quot;Unknown Artist&quot;)/(album|)/(track&amp;amp;&quot; - &quot;|&quot;&quot;)(title|&quot;Untitled track&quot;).(file/extension)&amp;gt;</div></div>
</li>
</ul>
</li>
<li>Must find academic papers (IEEE and ACM &#8220;metadata filesystem ieee&#8221; on Google)</li>
<li>Remember: file/extension=&#8221;mp3&#8243; == file.extension=&#8221;mp3&#8243; == file/extension/mp3 <img src='http://www.dmi.me.uk/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' title="icon smile photo" /> </li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.dmi.me.uk/blog/2007/12/03/insight-braindump/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/3.0/</creativeCommons:license>
	</item>
	</channel>
</rss>
