<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>Advogato blog for monkeyiq</title>
    <link>http://www.advogato.org/person/monkeyiq/</link>
    <description>Advogato blog for monkeyiq</description>
    <language>en-us</language>
    <generator>mod_virgule</generator>
    <pubDate>Sat, 18 May 2013 08:48:26 GMT</pubDate>
    <item>
      <pubDate>Mon, 26 Jun 2006 07:01:56 GMT</pubDate>
      <title>26 Jun 2006</title>
      <link>http://www.advogato.org/person/monkeyiq/diary.html?start=74</link>
      <guid>http://www.advogato.org/person/monkeyiq/diary.html?start=74</guid>
      <description>libferris and ego meet google earth. The new release 1.1.96 will allow nice integration with ge letting you do desktop searches from within google earth aswell as show where a file is located by clicking on it in ego.
&lt;p&gt;
See the 
&lt;a href="http://witme.sourceforge.net/libferris.web/research/shots.html" &gt;top  of this page&lt;/a&gt; for a screen animation.</description>
    </item>
    <item>
      <pubDate>Sat, 17 Jun 2006 13:47:18 GMT</pubDate>
      <title>17 Jun 2006</title>
      <link>http://www.advogato.org/person/monkeyiq/diary.html?start=73</link>
      <guid>http://www.advogato.org/person/monkeyiq/diary.html?start=73</guid>
      <description>&lt;b&gt;Desktop search?&lt;/b&gt;

&lt;p&gt; I noticed on planet KDE this &lt;a
href="http://cniehaus.livejournal.com/23281.html"&gt;post&lt;/a&gt; on desktop
search. It mentioned not using xattr for metadata because some
filesystems don't support it. I'd say that most filesystems don't, iso
filesystems, NFS (depending on setup), http, ftp and xemacs don't. The
simple solution to all this in libferris is to virtualise xattr just
like the filesytem itself is virtual. So you store xattr in RDF when
the underlying filesystem doesn't allow it.

&lt;p&gt; I should also highlight that the tagging mentioned in the post &lt;a
href="http://chem-bla-ics.blogspot.com/2006/06/kde-desktop-search-kat-strigi-and.html"&gt;referenced&lt;/a&gt;
by the above post is already available and usable with libferris :)
You can attach arbitrary metadata to virtual filesystem objects, index
them and search based on that metadata. Indexing can be done in many
formats, lucene, postgresql, RDF using redland (db4, sqlite,
postgresql) or on an LDAP server.

&lt;p&gt; For indexing &lt;a href="http://www.linuxjournal.com/article/7771" &gt;see here&lt;/a&gt;.
For EA stuff &lt;a href="http://www.linuxjournal.com/article/8901" &gt;here.
&lt;/a&gt;</description>
    </item>
    <item>
      <pubDate>Tue, 30 May 2006 11:29:47 GMT</pubDate>
      <title>30 May 2006</title>
      <link>http://www.advogato.org/person/monkeyiq/diary.html?start=72</link>
      <guid>http://www.advogato.org/person/monkeyiq/diary.html?start=72</guid>
      <description>&lt;b&gt;FUSE&lt;/b&gt;.sf.net meets &lt;b&gt;libferris&lt;/b&gt;
&lt;p&gt;
Yes folks, its true, you can now mount libferris through the kernel using fuse. The goodness of your xemacs session becoming a kernel filesystem, mounting firefox through ferris and fuse... mmm, filesystems ease the pain.
&lt;p&gt;
Still trying to get some more advanced article about libferris usage out there. Things are starting to get rather interesting now because of the stacked filesystems in libferris and ultimate exposure through fuse lets you do some rather funky things with data that comes from (and returns to) many and varied places.</description>
    </item>
    <item>
      <pubDate>Sat, 18 Mar 2006 04:30:22 GMT</pubDate>
      <title>18 Mar 2006</title>
      <link>http://www.advogato.org/person/monkeyiq/diary.html?start=71</link>
      <guid>http://www.advogato.org/person/monkeyiq/diary.html?start=71</guid>
      <description>&lt;b&gt;Fighto time.&lt;/b&gt; 
&lt;p&gt; 
Recently a question was posed to me in which I
tended to offer a reasonably off the cuff response for. This
led to an interesting debate about if set&amp;lt;string&amp;gt; was going to be
hugely slower than hash_set&amp;lt;string&amp;gt; for the exact case where
hash_set&amp;lt;&amp;gt; should whip an AVL tree's butt: direct lookups.  
&lt;p&gt;

&lt;p&gt; So without going into that conversation I decided to benchmark the two
std::collections from both stdc++ and stlport 4.x. This is using gcc
4.0.2 which is shameful as I should have a more recent gcc. I'll likely rereun it on icc and 4.1.x
as well.

&lt;p&gt; &lt;p&gt;

&lt;p&gt; The core of the code is to read strings from cin and shove them into a
std::list. During the set&amp;lt;&amp;gt; parts I create a set with the list (which
will have dups) and then iterate the list 50 times looking for each
entry (including dups again) in the built set&amp;lt;&amp;gt; or hash_set&amp;lt;&amp;gt;.

&lt;p&gt; &lt;p&gt;

&lt;p&gt; There is of course some cruft there to select the right container from
stdc++ and stlport because hash_set is non standard.

&lt;p&gt; &lt;pre&gt;
    if( use_hash )
    {
        l_t::iterator e = l.end();
        for( l_t::iterator iter = l.begin(); iter != e; ++iter )
            hstrset.insert( *iter );
        for( int i=0; i&amp;lt;LOOKUPS; ++i )
            for( l_t::iterator iter = l.begin(); iter != e; ++iter )
                hstrset.find( *iter );
    }
    else
    {
        l_t::iterator e = l.end();
        for( l_t::iterator iter = l.begin(); iter != e; ++iter )
            strset.insert( *iter );
        for( int i=0; i&amp;lt;LOOKUPS; ++i )
            for( l_t::iterator iter = l.begin(); iter != e; ++iter )
                strset.find( *iter );
    }
&lt;/pre&gt;
&lt;p&gt;

&lt;p&gt; So the benchmarks, all compiled with -O9. Other gcc options don't seem
to make any real effect. I created input from Gutenberg files, l.size
is the number of words read. The hash_set methods are quicker for the
completely degenerate case of only doing direct lookups and doing each
of them at least 50 times per uniq word in the input.

&lt;p&gt; &lt;p&gt;

&lt;p&gt; Perhaps the most interesting point is the difference in speed between
stlport and libstdc++ for this. I am now very interested to see how
stlport5.x compares.

&lt;p&gt; &lt;p&gt;
&lt;pre&gt;

&lt;p&gt; # Using stdc++::set&amp;lt;&amp;gt;
 foo$ time cat /tmp/largetxt.txt | ./string_xset
l.size:273435
use_hash:0

&lt;p&gt; real    0m16.980s
user    0m16.493s
sys     0m0.028s

&lt;p&gt; # Using stlport::set&amp;lt;&amp;gt;
 foo$ time cat /tmp/largetxt.txt | ./string_xset_stlport
l.size:273435
use_hash:0

&lt;p&gt; real    0m10.184s
user    0m9.821s
sys     0m0.084s

&lt;p&gt; # Using stdc++::hash_set&amp;lt;&amp;gt;
 foo$ time cat /tmp/largetxt.txt | ./string_xset 1
l.size:273435
use_hash:1

&lt;p&gt; real    0m4.061s
user    0m3.868s
sys     0m0.024s

&lt;p&gt; # Using stlport::hash_set&amp;lt;&amp;gt;
 foo$ time cat /tmp/largetxt.txt | ./string_xset_stlport 1
l.size:273435
use_hash:1

&lt;p&gt; real    0m2.430s
user    0m2.328s
sys     0m0.012s

&lt;p&gt; &lt;/pre&gt;</description>
    </item>
    <item>
      <pubDate>Sat, 18 Mar 2006 02:29:05 GMT</pubDate>
      <title>18 Mar 2006</title>
      <link>http://www.advogato.org/person/monkeyiq/diary.html?start=70</link>
      <guid>http://www.advogato.org/person/monkeyiq/diary.html?start=70</guid>
      <description>Moving back to blogging here for a while... Seems using university equipment for this is not so much an optimal thing. Loss of control over the network environment etc.

</description>
    </item>
    <item>
      <pubDate>Thu, 29 Apr 2004 12:54:20 GMT</pubDate>
      <title>29 Apr 2004</title>
      <link>http://www.advogato.org/person/monkeyiq/diary.html?start=69</link>
      <guid>http://www.advogato.org/person/monkeyiq/diary.html?start=69</guid>
      <description>Moving my &lt;a href="http://kvo.itee.uq.edu.au/~martin/cgi-bin/blosxom.cgi" &gt;blog over to UQ&lt;/a&gt; because its much easier to update and I can play with the blosxom aswell :)
</description>
    </item>
    <item>
      <pubDate>Fri, 2 Apr 2004 13:48:26 GMT</pubDate>
      <title>2 Apr 2004</title>
      <link>http://www.advogato.org/person/monkeyiq/diary.html?start=68</link>
      <guid>http://www.advogato.org/person/monkeyiq/diary.html?start=68</guid>
      <description>Read my article at xml.com on &lt;a href="http://www.xml.com/pub/a/2004/03/31/ferris.html" &gt;Using libferris with XML&lt;/a&gt;.
&lt;p&gt;
Enjoy.</description>
    </item>
    <item>
      <pubDate>Fri, 12 Mar 2004 16:05:12 GMT</pubDate>
      <title>12 Mar 2004</title>
      <link>http://www.advogato.org/person/monkeyiq/diary.html?start=67</link>
      <guid>http://www.advogato.org/person/monkeyiq/diary.html?start=67</guid>
      <description>&lt;b&gt;Novell's VFS&lt;/b&gt;

&lt;p&gt; At &lt;a href="http://usefulinc.com/edd/blog/contents/2004/03/08-ifolder/read" &gt;Edd's&lt;/a&gt; blog there is mention of Novell open sourcing their VFS and the possibility to integrate it into GNOME. Very interesting, I should add support for mounting Simias to libferris hopefully sometime shortly after they release it. I suspect it might be somewhat hard to install Simias at first though (maybe they want to beat libferris for difficulty to install ;)
&lt;p&gt;
Does make me wonder a little about the whole 'sharing VFS' thing that comes up from time to time (search freedesktop.org's mailing lists). As to, at the level of an Extended Attribute extractor (like something that extracts EXIF data from exif/jfif images) whether there can be code sharing. I think this is the most realistic level where the VFS systems can interoperate as there is an EA interface and a binary chunk that data is extraced from. Though even at this 'grass roots' level libferris differs from C based VFS systems in that data is accessed through the C++ IOStreams interface... though bolting a obj-&amp;gt;read( offset, count ) to that should be trivial.
&lt;p&gt;
On the flipside, I've been adding support for Adobe's XMP metadata embedding to libferris. This should make for a reasonably kickass /usr/local/doc search engine with the new EA from pdf files and the fulltext indexing of HTML and PDF etc that ferris already does. I think I've managed to sniff out most of the embedded RDF standards now, after XMP there is the jpeg COMMENT1 block RDF standard that I've yet to code support for. 
&lt;p&gt;
I might have to make mod_ferris for apache soon so that a web interface to the EA/indexes can be created... maybe.

</description>
    </item>
    <item>
      <pubDate>Thu, 4 Mar 2004 14:55:54 GMT</pubDate>
      <title>4 Mar 2004</title>
      <link>http://www.advogato.org/person/monkeyiq/diary.html?start=66</link>
      <guid>http://www.advogato.org/person/monkeyiq/diary.html?start=66</guid>
      <description>&lt;b&gt;Dude, where's my filesystem&lt;/b&gt;
&lt;p&gt;
Trying to use evolution-data-server in little clients, not going all that gleefully as yet... must mount evolution... must mount ...
</description>
    </item>
    <item>
      <pubDate>Sun, 29 Feb 2004 03:46:59 GMT</pubDate>
      <title>29 Feb 2004</title>
      <link>http://www.advogato.org/person/monkeyiq/diary.html?start=65</link>
      <guid>http://www.advogato.org/person/monkeyiq/diary.html?start=65</guid>
      <description>Have now returned from icFCA04, the international conference on Formal Concept Analysis which was in Sydney this year. Interesting mix of computer sci folks and raw maths guys there. I suspect that next year I'll make my talk involve much more pictures and math descriptions of what I am thinking rather than near on code level talks that I tend to be attracted to.
&lt;p&gt;
Went along to the SLUG while I was there too. Some very interesting chats seem to always be waiting at that user group... Chatted with jdub for a while over dinner about gnome and explained some of the crack that I've sprinkled over libferris and showed some lattices from FCA that I plan to make into the future of n-dimensional filesystem browsing (though not in those terms ;). From what I've herd there are some very interesting plans for the future of gnome-vfs... Be interesting to chat with some of the dudes planning to extend g-vfs as I think that the open source community needs to be moving fairly quickly to create an opposing system to WinFS. Parts of WinFS seem really cool and we definately want that coolness too (though hopefully we can improve some parts of WinFS that are not so cool).

</description>
    </item>
  </channel>
</rss>
