<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: Thumbnail Followup (#2)</title>
	<atom:link href="http://blogs.gnome.org/cneumair/2007/08/29/thumbnail-followup-2/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogs.gnome.org/cneumair/2007/08/29/thumbnail-followup-2/</link>
	<description>Just another GNOME Blogs weblog</description>
	<lastBuildDate>Tue, 15 Jun 2010 18:43:49 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>By: Julien</title>
		<link>http://blogs.gnome.org/cneumair/2007/08/29/thumbnail-followup-2/comment-page-1/#comment-192</link>
		<dc:creator>Julien</dc:creator>
		<pubDate>Thu, 30 Aug 2007 08:43:29 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/cneumair/2007/08/29/thumbnail-followup-2/#comment-192</guid>
		<description>For me it seems like duplicating new Tracker functionalities. Tracker provides on-the-fly thumbnail generation. Would it not be easier to just requests thumbnails to Tracker through dbus?

Cheers</description>
		<content:encoded><![CDATA[<p>For me it seems like duplicating new Tracker functionalities. Tracker provides on-the-fly thumbnail generation. Would it not be easier to just requests thumbnails to Tracker through dbus?</p>
<p>Cheers</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Xav</title>
		<link>http://blogs.gnome.org/cneumair/2007/08/29/thumbnail-followup-2/comment-page-1/#comment-191</link>
		<dc:creator>Xav</dc:creator>
		<pubDate>Wed, 29 Aug 2007 20:39:44 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/cneumair/2007/08/29/thumbnail-followup-2/#comment-191</guid>
		<description>How about using a generic metadata daemon, like Tracker ?</description>
		<content:encoded><![CDATA[<p>How about using a generic metadata daemon, like Tracker ?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Greg</title>
		<link>http://blogs.gnome.org/cneumair/2007/08/29/thumbnail-followup-2/comment-page-1/#comment-190</link>
		<dc:creator>Greg</dc:creator>
		<pubDate>Wed, 29 Aug 2007 20:22:49 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/cneumair/2007/08/29/thumbnail-followup-2/#comment-190</guid>
		<description>Concerning the second idea: what if you generate thumbnails in a separate directory, and you &quot;merge&quot; them in synchronously to the actual thumbnail cache dir?</description>
		<content:encoded><![CDATA[<p>Concerning the second idea: what if you generate thumbnails in a separate directory, and you &#8220;merge&#8221; them in synchronously to the actual thumbnail cache dir?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jerome</title>
		<link>http://blogs.gnome.org/cneumair/2007/08/29/thumbnail-followup-2/comment-page-1/#comment-189</link>
		<dc:creator>Jerome</dc:creator>
		<pubDate>Wed, 29 Aug 2007 19:39:57 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/cneumair/2007/08/29/thumbnail-followup-2/#comment-189</guid>
		<description>Yeah. I&#039;d vote for not using .thumbnails, for tons of reasons. It&#039;s just a needless disconnect. I&#039;d just put it in the directory of the actual files, like every other OS on the planet does. If there&#039;s no permission to do so, just don&#039;t. Recalculate them each time. No big deal.

It also clogs up my NFS home dirs. Makes things more difficult than neccessary.</description>
		<content:encoded><![CDATA[<p>Yeah. I&#8217;d vote for not using .thumbnails, for tons of reasons. It&#8217;s just a needless disconnect. I&#8217;d just put it in the directory of the actual files, like every other OS on the planet does. If there&#8217;s no permission to do so, just don&#8217;t. Recalculate them each time. No big deal.</p>
<p>It also clogs up my NFS home dirs. Makes things more difficult than neccessary.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Henry</title>
		<link>http://blogs.gnome.org/cneumair/2007/08/29/thumbnail-followup-2/comment-page-1/#comment-188</link>
		<dc:creator>Henry</dc:creator>
		<pubDate>Wed, 29 Aug 2007 18:34:48 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/cneumair/2007/08/29/thumbnail-followup-2/#comment-188</guid>
		<description>4:  Cache in the dir the image lives in.  Bonus: rmdir gets rid of the cache too.</description>
		<content:encoded><![CDATA[<p>4:  Cache in the dir the image lives in.  Bonus: rmdir gets rid of the cache too.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Detlef</title>
		<link>http://blogs.gnome.org/cneumair/2007/08/29/thumbnail-followup-2/comment-page-1/#comment-187</link>
		<dc:creator>Detlef</dc:creator>
		<pubDate>Wed, 29 Aug 2007 18:07:03 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/cneumair/2007/08/29/thumbnail-followup-2/#comment-187</guid>
		<description>I think a very important fact these days is that you have much crap in your thumbs directory.

Many programs don&#039;t update theire thumbs if they move documents around or delete them. So a big win would be to create a cron job that scans all thumbs and remove them if the asociated document is gone.

For my own use i wrote a little ruby script for this task. With the first run it deleted several thousend thumbs.

The fastest work is the work you don&#039;t have to do.

Cheers
detlef</description>
		<content:encoded><![CDATA[<p>I think a very important fact these days is that you have much crap in your thumbs directory.</p>
<p>Many programs don&#8217;t update theire thumbs if they move documents around or delete them. So a big win would be to create a cron job that scans all thumbs and remove them if the asociated document is gone.</p>
<p>For my own use i wrote a little ruby script for this task. With the first run it deleted several thousend thumbs.</p>
<p>The fastest work is the work you don&#8217;t have to do.</p>
<p>Cheers<br />
detlef</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John</title>
		<link>http://blogs.gnome.org/cneumair/2007/08/29/thumbnail-followup-2/comment-page-1/#comment-186</link>
		<dc:creator>John</dc:creator>
		<pubDate>Wed, 29 Aug 2007 17:43:15 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/cneumair/2007/08/29/thumbnail-followup-2/#comment-186</guid>
		<description>Well, the OS already does what you want (except for loading the directory structure into memory upon mount, which could be done with a userspace daemon). Have you considered just letting the OS worry about doing what it was designed to do?</description>
		<content:encoded><![CDATA[<p>Well, the OS already does what you want (except for loading the directory structure into memory upon mount, which could be done with a userspace daemon). Have you considered just letting the OS worry about doing what it was designed to do?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jerome</title>
		<link>http://blogs.gnome.org/cneumair/2007/08/29/thumbnail-followup-2/comment-page-1/#comment-185</link>
		<dc:creator>Jerome</dc:creator>
		<pubDate>Wed, 29 Aug 2007 17:23:53 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/cneumair/2007/08/29/thumbnail-followup-2/#comment-185</guid>
		<description>As for cleaning the cache, seems reasonable to just scan for old files in the background in some fashion and blow them away. Do this in another thread. Easily isolated. Thread does one job and does not need to notify on completion.</description>
		<content:encoded><![CDATA[<p>As for cleaning the cache, seems reasonable to just scan for old files in the background in some fashion and blow them away. Do this in another thread. Easily isolated. Thread does one job and does not need to notify on completion.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jerome</title>
		<link>http://blogs.gnome.org/cneumair/2007/08/29/thumbnail-followup-2/comment-page-1/#comment-184</link>
		<dc:creator>Jerome</dc:creator>
		<pubDate>Wed, 29 Aug 2007 17:21:05 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/cneumair/2007/08/29/thumbnail-followup-2/#comment-184</guid>
		<description>This proposal seems extremely... hacky, for something which is arguably such a simple problem. Why not just attempt to read the thumbnail file async as it&#039;s needed? This seems extremely obvious, and works quite well for other situations: evolutions email cache, etc.

Let the file system handle keeping the file in memory if it needs be. That may mean it gets left in the block cache.

I don&#039;t really understand why this problem is hard, actually. Maybe I&#039;m missing something.</description>
		<content:encoded><![CDATA[<p>This proposal seems extremely&#8230; hacky, for something which is arguably such a simple problem. Why not just attempt to read the thumbnail file async as it&#8217;s needed? This seems extremely obvious, and works quite well for other situations: evolutions email cache, etc.</p>
<p>Let the file system handle keeping the file in memory if it needs be. That may mean it gets left in the block cache.</p>
<p>I don&#8217;t really understand why this problem is hard, actually. Maybe I&#8217;m missing something.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: blah</title>
		<link>http://blogs.gnome.org/cneumair/2007/08/29/thumbnail-followup-2/comment-page-1/#comment-183</link>
		<dc:creator>blah</dc:creator>
		<pubDate>Wed, 29 Aug 2007 17:19:51 +0000</pubDate>
		<guid isPermaLink="false">http://blogs.gnome.org/cneumair/2007/08/29/thumbnail-followup-2/#comment-183</guid>
		<description>Hmm, i don&#039;t really see the problem with your threads based idea.

Everytime you process a new file you should:

open() it.
fstat() it.
process it.
fstat() it again.
close() it.

Only if the access times in the stat struct did not change while the file was processed you have a valid cache entry. If it changed you should drop what you just processed and move it to the end of your work queue.

The readdir() calls should be nothing more than a feeder for the work queue. If files disappear or are modified should not matter to the work queue.</description>
		<content:encoded><![CDATA[<p>Hmm, i don&#8217;t really see the problem with your threads based idea.</p>
<p>Everytime you process a new file you should:</p>
<p>open() it.<br />
fstat() it.<br />
process it.<br />
fstat() it again.<br />
close() it.</p>
<p>Only if the access times in the stat struct did not change while the file was processed you have a valid cache entry. If it changed you should drop what you just processed and move it to the end of your work queue.</p>
<p>The readdir() calls should be nothing more than a feeder for the work queue. If files disappear or are modified should not matter to the work queue.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
<!-- This Quick Cache file was built for (  blogs.gnome.org/cneumair/2007/08/29/thumbnail-followup-2/feed/ ) in 1.18418 seconds, on Feb 12th, 2012 at 3:58 am UTC. -->
<!-- This Quick Cache file will automatically expire ( and be re-built automatically ) on Feb 12th, 2012 at 4:58 am UTC -->
