<?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/"
	>

<channel>
	<title>MesQuilla &#187; TaQuilla</title>
	<atom:link href="http://mesquilla.com/category/extensions/taquilla/feed/" rel="self" type="application/rss+xml" />
	<link>http://mesquilla.com</link>
	<description>Messaging with Mozilla by rkent</description>
	<lastBuildDate>Wed, 21 Jul 2010 16:14:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>TaQuilla 0.3.0 released</title>
		<link>http://mesquilla.com/2009/12/22/taquilla-0-3-0-released/</link>
		<comments>http://mesquilla.com/2009/12/22/taquilla-0-3-0-released/#comments</comments>
		<pubDate>Tue, 22 Dec 2009 19:15:30 +0000</pubDate>
		<dc:creator>rkent</dc:creator>
				<category><![CDATA[Extensions]]></category>
		<category><![CDATA[Planet MozillaMessaging]]></category>
		<category><![CDATA[TaQuilla]]></category>

		<guid isPermaLink="false">http://mesquilla.com/?p=569</guid>
		<description><![CDATA[I&#8217;ve just uploaded a new version of TaQuilla to Mozilla&#8217;s add-on site. You can download it here. It is still listed as experimental status, so updates are not automatic. Details of the changes in this revision are available here, but briefly it mostly adds some user interface consolidations for consistency, plus support for Thunderbird 3.0 [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just uploaded a new version of <a href="http://mesquilla.com/extensions/taquilla/">TaQuilla</a> to Mozilla&#8217;s add-on site. You can download it <a href="https://addons.mozilla.org/en-US/thunderbird/addon/10905">here</a>. It is still listed as experimental status, so updates are not automatic. Details of the changes in this revision are available <a href="http://mesquilla.com/extensions/taquilla/taquilla-revisions/">here</a>, but briefly it mostly adds some user interface consolidations for consistency, plus support for Thunderbird 3.0 and SeaMonkey 2.0.</p>
<p>Frankly, I&#8217;ve struggled to find a good personal use of TaQuilla for use in my dogfooding. I&#8217;ve tried using it to <a href="http://mesquilla.com/2009/03/15/automatically-determining-interesting-rss-feed-posts/">categorize &#8220;interesting&#8221; posts</a>, but I can&#8217;t even agree myself from day-to-day what is &#8220;interesting&#8221;, and the soft tagging is even more indecisive. But I&#8217;ve finally hit on a good use for it in my workflow &#8211; rejecting of sports articles in newsfeeds!</p>
<p>I have an RSS feed that subscribes to local news for the &#8220;Seattle Times&#8221; newspaper, but I find a lot of the articles are sports related. Now I am a certified geek, and not really interested in those types of articles. So what I did is to create a tag &#8220;Sports&#8221;, then I setup TaQuilla soft tags for &#8220;Sports&#8221; on the RSS feed, create a virtual folder that filters out articles tagged with &#8220;Sports&#8221;, and voila I can read the newspaper feed without all of those annoying sports articles. It&#8217;s particularly useful since many of the same articles get updated multiple times, and the updates are very efficiently rejected with the bayes filter if I tag the original.</p>
]]></content:encoded>
			<wfw:commentRss>http://mesquilla.com/2009/12/22/taquilla-0-3-0-released/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Inherited Folder Properties &#8211; revisited</title>
		<link>http://mesquilla.com/2009/11/06/inherited-folder-properties-revisited/</link>
		<comments>http://mesquilla.com/2009/11/06/inherited-folder-properties-revisited/#comments</comments>
		<pubDate>Fri, 06 Nov 2009 19:50:52 +0000</pubDate>
		<dc:creator>rkent</dc:creator>
				<category><![CDATA[Extensions]]></category>
		<category><![CDATA[FiltaQuilla]]></category>
		<category><![CDATA[JunQuilla]]></category>
		<category><![CDATA[Mailnews development]]></category>
		<category><![CDATA[Planet Mozilla]]></category>
		<category><![CDATA[Planet MozillaMessaging]]></category>
		<category><![CDATA[TaQuilla]]></category>

		<guid isPermaLink="false">http://mesquilla.com/?p=317</guid>
		<description><![CDATA[In a previous posting, I introduced the concept of inherited folder properties in the Mozilla mailnews products (Thunderbird and SeaMonkey). In the months since, I have incorporated these into my extensions quite significantly, so here I would like to show the UI I am currently using for this, and also discuss some of the issues [...]]]></description>
			<content:encoded><![CDATA[<p>In a <a href="http://mesquilla.com/2009/03/06/inherited-folder-properties/">previous posting</a>, I introduced the concept of inherited folder properties in the Mozilla mailnews products (Thunderbird and SeaMonkey). In the months since, I have incorporated these into my extensions quite significantly, so here I would like to show the UI I am currently using for this, and also discuss some of the issues that I face.</p>
<p>(All references to extensions in this posting refer to the 1.0.0 versions, which as of this writing have not been posted to AMO yet. But they should be available in a few weeks.)</p>
<h3>Implemented UI</h3>
<p>Briefly, inherited properties are a property that can be defined globally, at the server, or at the folder, and its characteristics will be propagated to child objects. This make it easy to specify precisely how the property is applied.</p>
<p>As an example, I have recently implemented a feature &#8220;Index in Global Database&#8221; in <a href="http://mesquilla.com/extensions/glodaquilla/">GlodaQuilla </a>which can be used to selectively suppress certain accounts or folders from being accessed by the global database indexer. In the account manager, where indexing can be disabled for an entire account, the UI looks like this:</p>
<p><img class="aligncenter size-full wp-image-320" title="Index in Global Database account settings" src="http://mesquilla.com/wp-content/uploads/2009/11/AccountIndex1.jpg" alt="Index in Global Database account settings" width="587" height="220" /></p>
<p>Each inherited property has default values which are typically set by the base code. In the case of the gloda database indexer, everything but newgroups are indexed by default. Initially each inherited property is set to just use the standard default processing, but if I clear the &#8220;default&#8221; checkbox, then I can turn off gloda indexing for this account.</p>
<p>If I do that, then go to a first-level folder in the account, I see the following under folder properties:</p>
<p><img class="aligncenter size-full wp-image-321" title="Index in Global Database by folder" src="http://mesquilla.com/wp-content/uploads/2009/11/FolderIndex.jpg" alt="Index in Global Database by folder" width="409" height="310" /></p>
<p>At the folder level, because I disabled global indexing on the account, it is now shown as disabled on the folder. I could clear the inherit box and selectively enable it on just this folder and its children if I wanted.</p>
<p>This particular UI merges naturally with the existing methods of setting properties in mailnews, but I&#8217;m not sure it is optimum for an inherited property. The inherited nature could be more clearly shown, and a particular feature more quickly configured, if I showed a tree of accounts and folders, with checkboxes next to each account to enable or inherit the feature. Maybe in a future version.</p>
<h3>Implemented properties</h3>
<p>Here are some of the implementations of inherited properties that exist in my extensions:</p>
<ol>
<li>(<a href="http://mesquilla.com/extensions/glodaquilla/">GlodaQuilla</a>) Index in Global Database &#8211; suppresses the running of the global database indexer</li>
<li>(<a href="http://mesquilla.com/extensions/filtaquilla/">FiltaQuilla</a>) Apply Filters to Folder &#8211; for Imap folders, allow incoming filters to run on that folder</li>
<li>(<a href="http://mesquilla.com/extensions/junquilla/">JunQuilla</a>) Analyze Junk &#8211; allow junk processing to be turned on or off. This also allows junk processing to run on RSS or news folders.</li>
<li>(<a href="http://mesquilla.com/extensions/taquilla/">TaQuilla</a>) Analyze particular automatic tags.</li>
</ol>
<h3>Issue:<strong> Existing mechanisms</strong></h3>
<p>Ideally, the inherited property would be the one and only way to manage a program feature. But for existing features, the existing mechanisms remain, which can lead to possible confusion. For example, with JunQuilla&#8217;s &#8220;Analyze Junk&#8221; property, there is existing UI to enable junk processing at the account level. Here the inherited property will always override the default mechanism (but that is mostly because I implemented it in core that way, and I have a little influence on how junk processing is handled in core.) For GlodaQuilla&#8217;s &#8220;Index in Global Database&#8221; the behaviour is different. Existing UI will only allow this to be enabled or disabled globally, and the inherited property does not override this. The inherited property code uses the default server preference as a global enable/disable for a property, so if gloda used that same mechanism instead of an independent preference, this issue would go away. I guess I could say the same thing about junk processing as well.</p>
<p>For FiltaQuilla&#8217;s &#8220;Apply Filters to Folder&#8221;, there is a subtle issue in the inherited nature. I did not implement in core the ability of the inherited property to override the existing default as applied to the Inbox, so incoming filters always run on the inbox. That creates 2 ui issues. First, although I show at the account level the &#8220;Apply Filters&#8221; option, it does not actually suppress application to the inbox as one would expect. Second, I currently do not show a folder property for &#8220;Apply Filters to Folder&#8221; for the IMAP inbox since it would not make sense there, so that also means there is no way to enable processing of filters for the children of the inbox. Maybe I should call this feature instead &#8220;Apply Filters to non-Inbox Folders&#8221; to solve this, or change the core code so that the feature also applied to the Inbox.</p>
<h3>Issue: My RDF-inspired property for junk management</h3>
<p>Looking ahead to a world where a number of extensions might try to define bayes filter traits, in code I recommended that properties used to manage junk processing use an RDF-inspired globally unique identifier. Then I followed my own advice and defined the identifier that controls junk processing on a folder as: &#8220;dobayes.mailnews@mozilla.org#junk&#8221; Unfortunately, the existing account manager code does not allow periods in property names, which means I could not use the account manager to manage this. I&#8217;ve filed <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=525024">bug 525024</a> on this issue, and perhaps that can be incorporated after TB 3.0 / SM 2.0.</p>
<h3>Issue: Missing inheritance levels</h3>
<p>I&#8217;ve heard others comment that often they want to set a property on a particular class of folders, say on all Trash folders, or all Sent folders. I&#8217;ve considered implementing another level in the inherited properties feature, that would be a folder type. So you would then set a property that would be inherited by any folder of a particular type, and its children &#8211; and of course also overridden by the local folder property.</p>
<h3>Issue: UI for global property</h3>
<p>All of the inherited properties could also be enabled globally using the &#8220;mail.server.default.&lt;property&gt;&#8221; preference, but I did not give any UI for that in my extensions. I thought that would be too confusing for the user to show those preferences, which would be very similar to existing mechanisms. This is not an issue for properties that use the preference system for server-level issues, but none of the existing server-level preferences are also inherited properties. Perhaps we could move that direction in the future.</p>
]]></content:encoded>
			<wfw:commentRss>http://mesquilla.com/2009/11/06/inherited-folder-properties-revisited/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Extension status for Thunderbird 3.0 beta 3 (and Seamonkey 2.0 beta 1)</title>
		<link>http://mesquilla.com/2009/07/19/extension-status-for-thunderbird-30-beta-3-and-seamonkey-20-beta-1/</link>
		<comments>http://mesquilla.com/2009/07/19/extension-status-for-thunderbird-30-beta-3-and-seamonkey-20-beta-1/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 06:21:34 +0000</pubDate>
		<dc:creator>rkent</dc:creator>
				<category><![CDATA[Extensions]]></category>
		<category><![CDATA[FiltaQuilla]]></category>
		<category><![CDATA[JunQuilla]]></category>
		<category><![CDATA[TaQuilla]]></category>
		<category><![CDATA[ToneQuilla]]></category>

		<guid isPermaLink="false">http://mesquilla.com/?p=278</guid>
		<description><![CDATA[I&#8217;ve just bumped the allowable Thunderbird (and where applicable Seamonkey) version on my extensions to allow them to work with the new version numbers in the nightlies and release candidates. I had hoped to have new releases available by now, but have not yet done that. Major changes are planned for FiltaQuilla (new custom searches) [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just bumped the allowable Thunderbird (and where applicable Seamonkey) version on my extensions to allow them to work with the new version numbers in the nightlies and release candidates. I had hoped to have new releases available by now, but have not yet done that.</p>
<p>Major changes are planned for FiltaQuilla (new custom searches) and ToneQuilla (switching to ogg Vorbis as the standard format). JunQuilla should have bug fixes, TaQuilla and GlodaQuilla will be virtually unchanged.</p>
]]></content:encoded>
			<wfw:commentRss>http://mesquilla.com/2009/07/19/extension-status-for-thunderbird-30-beta-3-and-seamonkey-20-beta-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Automatically determining interesting RSS feed posts</title>
		<link>http://mesquilla.com/2009/03/15/automatically-determining-interesting-rss-feed-posts/</link>
		<comments>http://mesquilla.com/2009/03/15/automatically-determining-interesting-rss-feed-posts/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 00:02:04 +0000</pubDate>
		<dc:creator>rkent</dc:creator>
				<category><![CDATA[Extensions]]></category>
		<category><![CDATA[Planet Mozilla]]></category>
		<category><![CDATA[Planet MozillaMessaging]]></category>
		<category><![CDATA[TaQuilla]]></category>

		<guid isPermaLink="false">http://mesquilla.com/?p=237</guid>
		<description><![CDATA[One of the interesting applications of automatic categorization of message items is the categorization of feed postings. Feed aggregations like Planet Mozilla often have many more posts than is convenient for most people to keep up with. How do you decide what to read, and what to skip? The bayesian classifier that is part of [...]]]></description>
			<content:encoded><![CDATA[<p>One of the interesting applications of automatic categorization of message items is the categorization of feed postings. Feed aggregations like Planet Mozilla often have many more posts than is convenient for most people to keep up with. How do you decide what to read, and what to skip?</p>
<p>The bayesian classifier that is part of the Thunderbird and Seamonkey distributions has been generalized by me over the last few months to allow it to be used for such categorizations, rather than be limited to spam recognition as originally implemented.  I can demonstrate its use with my <a href="http://mesquilla.com/extensions/taquilla/">TaQuilla</a> extension, which allows automatic tagging of message items using the bayesian classifier. The<a href="https://addons.mozilla.org/en-US/thunderbird/addon/10905"> release available on AMO</a> works with Thunderbird 3 beta 2, but only supports email messages, not RSS feeds. I am extending the mailnews backend in <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=471833">bug 471833</a> to also apply bayesian filters to RSS messages. My private patch now does that, so I thought I would demonstrate how it works.</p>
<p>I&#8217;ll use my Planet Mozilla feed items from Thunderbird, and apply the tag &#8220;Interesting&#8221; to posts I want to read. First, I need to do a little training to show the bayes classifier what is Interesting and Not Interesting. So I picked posts from two people and flagged them as Interesting, and two others as Not Interesting. (Note this is a demonstration only, no disrespect is meant to the poor saps whose posts I&#8217;m calling Not Interesting here!) For Interesting, I chose posts from Mitchell Baker, and the Rumbling Edge posts from Gary Kwong. For Not Interesting, I chose the Mozilla Community meeting note posts from bsmedberg, and the European Community marketing efforts posts from William Quiviger. I picked two from each author to train, for a total of eight trained posts. After training, I reran the bayes filter on the folder to see how effective it was in categorizing posts similar to those that I had trained.</p>
<p>So, how did we do with this minimal amount of training?</p>
<p>The bayes filter determines a score of 0 &#8211; 100 for each post, with 100 for posts that most closely match the category, and 0 for those that most poorly match.</p>
<p>For the Rumbling Edge posts, I had 7 total in my sample, and used 2 for training. For the remaining 5 untrained posts, 4 had a score of 100 showing a strong match, while 1 had a score of 84. Looking at <a href="http://feeds.feedburner.com/~r/rumblingedge/~3/542490712">that post</a>, it was quite different from the others, which were mostly lists of fixed bugs.</p>
<p>For the Mitchell Baker posts, of the 5 untrained posts, 4 had scores of 90 -100, and one had a score of 49, which is indeterminate. So close, but not perfect.</p>
<p>The quality of the match was similar for the &#8220;Not Interesting&#8221; posts, though of course here our goal is a score of 0 instead of a score of 100. For William Quiviger&#8217;s posts, the 7 untrained posts had scores of 0 or 1. For bsmedberg&#8217;s Meeting Notes posts, all but 1 of 19 untrained posts had scores of 0, and one had a score of 9.</p>
<p>So overall, this is pretty good categorization with minimal training. In the future, all new posts that arrive will be automatically categorized, with posts having a score of &gt;50 tagged as Interesting, and &lt; 50 untagged. If I am unhappy with the tagging, I can train additional messages by simply applying or removing the tag from the incorrectly categorized post (which is a single keystroke in Thunderbird.) To display posts that I want to read, I can setup a saved search folder that shows only Unread Interesting posts, and sort that by the percent match.</p>
<p>When I do this, and apply it to all 578 posts that I currently have in my Planet Mozilla folder, here&#8217;s what I get for the top 17 posts:</p>
<p><a href="http://mesquilla.com/wp-content/uploads/2009/03/sortedinteresting3.png"><img class="alignnone size-full wp-image-245" title="Sorted Interesting Posts" src="http://mesquilla.com/wp-content/uploads/2009/03/sortedinteresting3.png" alt="" width="500" height="321" /></a></p>
<p>So I see all but 1 of the Rumbling Edge posts, and all but 1 of the Mitchell Baker posts.</p>
<p>What about the other Interesting posts? The Burning Edge and Seamonkey posts are very similar in intent to the Rumbling Edge posts, so it is understandable that they are also rated as interesting. Daniel Glazman&#8217;s post mentions &#8220;messages&#8221;, &#8220;Thunderbird&#8221;, and &#8220;mail&#8221; so it is also understandable. The Aza Raskin hit seems more random, the matched tokens are common words like &#8220;how&#8221; and &#8220;they&#8221; which would get averaged away with more training.</p>
<p>So overall, I think this will be a useful tool to add to Thunderbird to assist users with sorting of massive planet-style feed aggregations. I expect that the features demonstrated here will be available beginning with Thunderbird 3 beta 3 (in late April) when the TaQuilla extension is loaded.</p>
]]></content:encoded>
			<wfw:commentRss>http://mesquilla.com/2009/03/15/automatically-determining-interesting-rss-feed-posts/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>TaQuilla provides automatic &#8220;soft&#8221; tags for messages</title>
		<link>http://mesquilla.com/2009/02/26/taquilla-provides-automatic-soft-tags-for-messages/</link>
		<comments>http://mesquilla.com/2009/02/26/taquilla-provides-automatic-soft-tags-for-messages/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 23:09:52 +0000</pubDate>
		<dc:creator>rkent</dc:creator>
				<category><![CDATA[Extensions]]></category>
		<category><![CDATA[Planet Mozilla]]></category>
		<category><![CDATA[Planet MozillaMessaging]]></category>
		<category><![CDATA[TaQuilla]]></category>

		<guid isPermaLink="false">http://mesquilla.com/?p=198</guid>
		<description><![CDATA[Today I posted TaQuilla on the experimental area of AMO here. TaQuilla extends the tagging features of Mozilla mailnews products (Thunderbird and Seamonkey) so that tags are applied automatically using the same bayesian filter technology used for junk mail processing. TaQuilla requires Thunderbird 3.0 beta 2, which was released today. Bayesian filters need training, and [...]]]></description>
			<content:encoded><![CDATA[<p>Today I posted <a href="http://mesquilla.com/extensions/taquilla/">TaQuilla</a> on the experimental area of AMO  <a href="https://addons.mozilla.org/en-US/thunderbird/addon/10905">here</a>. TaQuilla extends the tagging features of Mozilla mailnews products (Thunderbird and Seamonkey) so that tags are applied automatically using the same bayesian filter technology used for junk mail processing. TaQuilla requires Thunderbird 3.0 beta 2, which was released today.</p>
<p>Bayesian filters need training, and this is provided in the background for you as you tag or untag messages. Once you &#8220;prime the pump&#8221; by tagging some messages, and untagging a few others, then it just works. There are also some diagnostic displays available, that show the message tokens that were used to arrive at a message tagging classification, or will show  in the message pane the percent match of messages to a soft tag.</p>
<p>I&#8217;ve been testing this using a tag &#8220;Personal&#8221; that I apply to emails that are not associated with my business activities. I have a variety of personal interests, and a variety of business interests, so trying to devise a message filter to separate them would be quite challenging. But TaQuilla is quite effective at separating the two. Then I have a &#8220;Personal&#8221; and a &#8220;Not Personal&#8221; virtual folder, so that I can view messages of the appropriate nature depending on whether I am working or not.</p>
<p>To give you some idea how it works, here are tokens used to classify a few messages that I recently received. The first was a weekly general mailing from my church&#8217;s pastor, classified as Personal. Here&#8217;s the analysis:</p>
<div id="attachment_200" class="wp-caption aligncenter" style="width: 510px"><a href="http://mesquilla.com/wp-content/uploads/2009/02/taquillachurch.png"><img class="size-full wp-image-200" title="taquillachurch" src="http://mesquilla.com/wp-content/uploads/2009/02/taquillachurch.png" alt="TaQuilla Analysis of a church email" width="500" height="556" /></a><p class="wp-caption-text">TaQuilla Analysis of a church email</p></div>
<p>This is the detail view of a message from TaQuilla. The &#8220;Token&#8221; column shows words from the message that participated in the analysis. &#8220;Token %&#8221; is the probability that a message containing that token should be tagged as Personal. The &#8220;Running %&#8221; column is the total percent match of the message, as a running total starting with the strongest tokens.</p>
<p>The 99% at the bottom of the &#8220;Running %&#8221; column shows a very high match to Personal. Words like &#8220;pastor&#8221;, &#8220;worship&#8221;, &#8220;Sunday&#8221; strongly matched Personal, so it was automatically tagged Personal.</p>
<p>A second example email was a posting on the thunderbird-testing list, that was not tagged as personal. Its analysis is:</p>
<div id="attachment_201" class="wp-caption aligncenter" style="width: 510px"><a href="http://mesquilla.com/wp-content/uploads/2009/02/taquillalitmus.png"><img class="size-full wp-image-201" title="taquillalitmus" src="http://mesquilla.com/wp-content/uploads/2009/02/taquillalitmus.png" alt="TaQuilla analysis of a Thunderbird-related email" width="500" height="582" /></a><p class="wp-caption-text">TaQuilla analysis of a Thunderbird-related email</p></div>
<p>Here you have words like &#8220;Feedback&#8221;, &#8220;bug&#8221;, and &#8220;Thunderbird&#8221; which are strongly not-Personal.</p>
<p>And finally, we have a strange one &#8211; a message from my son asking a question about spam processing. What did Taquilla do with this?</p>
<div id="attachment_202" class="wp-caption aligncenter" style="width: 510px"><a href="http://mesquilla.com/wp-content/uploads/2009/02/taquillamarkspam.png"><img class="size-full wp-image-202" title="taquillamarkspam" src="http://mesquilla.com/wp-content/uploads/2009/02/taquillamarkspam.png" alt="Taquilla analysis of a mixed email" width="500" height="455" /></a><p class="wp-caption-text">Taquilla analysis of a mixed email</p></div>
<p>Well it could not decide. The percent match was 51%, which was marked as Personal because the cutoff is 50%, but it&#8217;s pretty clear that this is a confused email.</p>
<p>At present, soft tagging only supports email, and it is either on or off for the entire application. By the time Thunderbird 3 beta 3 is available, I expect to have enough hooks in the backend code to also support RSS feeds and News, as well as provide more granularity on which accounts and folders have soft tags applied. I&#8217;m hoping that I can use soft tagging in large-volume lists such as Planet Mozilla, to automatically flag posts that are &#8220;Interesting&#8221;. (I&#8217;ll incidently provide junk management for RSS and news in the same patches.)</p>
]]></content:encoded>
			<wfw:commentRss>http://mesquilla.com/2009/02/26/taquilla-provides-automatic-soft-tags-for-messages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Extension plans for Thunderbird beta2</title>
		<link>http://mesquilla.com/2009/02/14/extension-plans-for-thunderbird-beta2/</link>
		<comments>http://mesquilla.com/2009/02/14/extension-plans-for-thunderbird-beta2/#comments</comments>
		<pubDate>Sat, 14 Feb 2009 20:18:04 +0000</pubDate>
		<dc:creator>rkent</dc:creator>
				<category><![CDATA[Extensions]]></category>
		<category><![CDATA[FiltaQuilla]]></category>
		<category><![CDATA[JunQuilla]]></category>
		<category><![CDATA[Planet MozillaMessaging]]></category>
		<category><![CDATA[TaQuilla]]></category>
		<category><![CDATA[ToneQuilla]]></category>

		<guid isPermaLink="false">http://mesquilla.com/?p=169</guid>
		<description><![CDATA[Now that Thunderbird beta2 has entered slushy code freeze, it&#8217;s time to update my extensions to match. Here&#8217;s my plans, which I will try to accomplish near the time that beta 2 releases (currrently scheduled for 2009-02-24): ToneQuilla The published version has a bug that interrupts the playing in some cases. I&#8217;ll fix that, but [...]]]></description>
			<content:encoded><![CDATA[<p>Now that Thunderbird beta2 has entered slushy code freeze, it&#8217;s time to update my extensions to match. Here&#8217;s my plans, which I will try to accomplish near the time that beta 2 releases (currrently scheduled for 2009-02-24):</p>
<h3>ToneQuilla</h3>
<p>The published version has a bug that interrupts the playing in some cases. I&#8217;ll fix that, but otherwise no changes. Prior to TB3 though I would like to implement support for Ogg Vorbis files in TB core, and add that to ToneQuilla as well. I&#8217;ll try to add some more tones at the same time &#8211; though possibly in a separate extension so that the main download does not get bloated.</p>
<h3>JunQuilla</h3>
<p>Changes in the backend to the database interface have made portions of JunQuilla quit working with recent Thunderbird builds. I&#8217;ll fix that. Also, I will be able to add the junk detail views shown in my <a href="http://mesquilla.com/2009/02/03/viewing-junk-tokens/">recent post</a> since the <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=451405">required backend code</a> has now landed. There&#8217;s also a small error that appears in the console on startup that I hope to find and eliminate.</p>
<p>There will also be a <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=472005">bug fix</a> in beta2 in the backend bayes filter code that could make a big difference in the effectiveness of the filter. Previously, the mozilla-added header that indicated whether a message was read or unread was used as a bayes token. But that makes no sense, since marking as read is a post-receipt action, all incoming messages are unread. So depending on how you trained your messages, there could be an unexpected biasing of unread messages either toward good or junk. In my case, unread messages were biased toward good, tending to lower the junk score by about 7 percentage points &#8211; which is a lot.</p>
<h3>FiltaQuilla</h3>
<p>As with JunQuilla, some functions quit working in recent builds (at least Do Not Notify, possibly others). I&#8217;ll need to fix those. I don&#8217;t know yet if I will have time to add additional requested features. I see that the Penelope team (Mozilla-based Eudora client) is hoping to add the detach attachments action to the core, so I probably will not do that here. I&#8217;ll try to get a preliminary version of the nsIProcess interface up so that you could launch a program with parameters.</p>
<h3>TaQuilla</h3>
<p>The backend changes that I needed to allow this to work have now landed, so I should be able to release a preliminary version of this soft tagging extension.</p>
]]></content:encoded>
			<wfw:commentRss>http://mesquilla.com/2009/02/14/extension-plans-for-thunderbird-beta2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More progress on soft tags</title>
		<link>http://mesquilla.com/2009/01/10/more-progress-on-soft-tags/</link>
		<comments>http://mesquilla.com/2009/01/10/more-progress-on-soft-tags/#comments</comments>
		<pubDate>Sat, 10 Jan 2009 18:58:33 +0000</pubDate>
		<dc:creator>rkent</dc:creator>
				<category><![CDATA[Extensions]]></category>
		<category><![CDATA[Mailnews development]]></category>
		<category><![CDATA[TaQuilla]]></category>

		<guid isPermaLink="false">http://mesquilla.com/?p=145</guid>
		<description><![CDATA[I added enough functionality to TaQuilla this week to make it fully functional as a soft-tagging extension. I&#8217;m now running it regularly in my main profile, though I am only soft tagging for Personal at the moment. I&#8217;m very happy with how well the statistics are working, as it seems quite accurate after just a [...]]]></description>
			<content:encoded><![CDATA[<p>I added enough functionality to TaQuilla this week to make it fully functional as a soft-tagging extension. I&#8217;m now running it regularly in my main profile, though I am only soft tagging for Personal at the moment. I&#8217;m very happy with how well the statistics are working, as it seems quite accurate after just a little training.</p>
<p>Soft tags are enabled in a setup screen that lists all of my tags, whether they are enabled, and also whether I want to show diagnostic and status columns in the thread pane.</p>
<p><a href="http://mesquilla.com/wp-content/uploads/2009/01/tqquillaprefs.png"><img class="aligncenter size-medium wp-image-146" title="tqquillaprefs" src="http://mesquilla.com/wp-content/uploads/2009/01/tqquillaprefs-300x243.png" alt="" width="300" height="243" /></a></p>
<p>Checking &#8220;Status Column&#8221; shows soft-tagging status for each message in the thread pane, which can either be either hard-tagged (showing as a check) or soft-tagged (showing as a sigma). Checking &#8220;Percent Column&#8221; shows a numerical column in the thread pane, which is the percent match of the message to the tag as determined by the bayes filter. &#8220;Enabled&#8221; determines whether the soft-tagging calculations are done for the particular tag. The numerical percent is the setpoint in the bayes calculation for deciding whether to apply the soft tag or not. So far, I have always just used 50 as the setpoint.</p>
<p>In addition to the options, I added commands to calculate soft tags on selections and folders, similar to the junkCommands.js routines for junk management.</p>
<p>I&#8217;m beginning to believe though that applying soft tagging is going to be as simple as saying &#8220;yes&#8221; to enable it for a particular tag. So I&#8217;ll probably extend all of the tag definition dialogs with an &#8220;enable soft tags&#8221; column, and reserve the more detailed setup to TaQuilla Options.</p>
<p>So at this point, I am happy with the basic operation. But a number of issues remain, many dealing with the backend of the mozilla mailnews code.</p>
<ol>
<li>I am relying on database listeners in the code to detect changes to the message that determine whether I need soft tag a new message, or train the bayes filter when the user manually tags a message. Although this mostly works, it is fairly inefficient. Also the listeners are not fired reliably in the backend code. I may need to add back-end events that are specific to tag and trait management to increase efficiency and reliability.</li>
<li>The bayes tokenizer currently sees the applied keyword as a token to include in its calculation, which leads to some strange feedback effects. (See <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=472005">bug 472005</a>) I have a patch for that now to allow extensions to selectively enable and disable including specific headers in the bayes calculations.</li>
<li>The bayes calculation currently returns 50% until training is done both on emails that match a trait, as well as those that do not match a trait. This makes it more difficult to start up the soft tagging. I have a patch I&#8217;m using that returns 100% if only emails that match the trait are trained. This makes it easier to implement a simple user interface for soft tags, so that users merely have to enable soft tagging for a particular tag, tag at least one message, then correct any errors that occur in the future. Without this patch, you need to convince the user to manually mark some messages as NOT matching a trait, which is counter-intuitive and difficult to explain.</li>
<li>As I try to use tags in multiple dimensions (that is, one dimension for status, and another for category) the limitations of the existing tagging interface in TB become more apparent. I can fix that in an extension though. As a start, I will probably add a column that shows applied tags &#8211; but only using the first character of the tags to save space.</li>
</ol>
<p>One of the more interesting applications of soft tagging would be to automatically categorize interesting blogs, to assist the reader in knowing which blogs to read. This would be particularly interesting in a &#8220;planet&#8221; style of aggregated blog. Although currently the mailnews backend does not apply bayesian calculations to feeds, I investigated this some and believe I could add that through an extension. I&#8217;ll probably do that as part of TaQuilla eventually.</p>
<ol></ol>
]]></content:encoded>
			<wfw:commentRss>http://mesquilla.com/2009/01/10/more-progress-on-soft-tags/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Soft tags (TaQuilla) are starting to look exciting</title>
		<link>http://mesquilla.com/2009/01/01/soft-tags-taquilla-are-starting-to-look-exciting/</link>
		<comments>http://mesquilla.com/2009/01/01/soft-tags-taquilla-are-starting-to-look-exciting/#comments</comments>
		<pubDate>Fri, 02 Jan 2009 05:58:09 +0000</pubDate>
		<dc:creator>rkent</dc:creator>
				<category><![CDATA[TaQuilla]]></category>

		<guid isPermaLink="false">http://mesquilla.com/?p=140</guid>
		<description><![CDATA[Today for the first time I am able to run TaQuilla on my main email profile. This extension uses the same statistical bayesian filters used for spam detection, to instead automatically apply tags to emails. My initial trials are very encouraging. I enabled soft tags on a &#8220;Personal&#8221; tag, to track emails that are associated [...]]]></description>
			<content:encoded><![CDATA[<p>Today for the first time I am able to run TaQuilla on my main email profile. This extension uses the same statistical bayesian filters used for spam detection, to instead automatically apply tags to emails. My initial trials are very encouraging.</p>
<p>I enabled soft tags on a &#8220;Personal&#8221; tag, to track emails that are associated with my personal life. I trained about 10 emails &#8211; a few from a current thread with my family, a message from my church, and a Netflix notice. I picked also a few bugmails and trained them as not personal. Then I applied the soft tags to another 20 emails &#8211; and it correctly decided when to apply the Personal tag to all of them! I have no idea what information it is using to do this, though I suspect it is just the names of the family members. But it is quite exciting that it works!</p>
<p>Unfortunately I had to apply a post-TB beta1 patch for this to work, so TaQuilla will not be able to work with beta1. My goals right now are to continue to figure out which hooks I will need in the base code so that TaQuilla will work well, and try to get them all in before beta2.</p>
<p>One interesting observation is that the training of the bayesian filter, which is a major pain to maintain for the case of junk mail, is much easier with soft tags. The reason is simple. For junk mail, the goal is to put junk messages into a &#8220;junk&#8221; folder, which ideally you never look at. For that reason, it is critical to have a very low chance of falsely classifying a message as junk. But for soft tags, you can accept a few false positives. So we can do the training for messages that match the category &#8220;Personal&#8221;  (which I call the pro trait) when you simply tag the message. I can then train messages that do not match the tag (which I call the anti trait) when you untag a message that was falsely tagged by the algorithm. This is very simple and unobtrusive. What a difference it makes to accept a few false positives!</p>
]]></content:encoded>
			<wfw:commentRss>http://mesquilla.com/2009/01/01/soft-tags-taquilla-are-starting-to-look-exciting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
