<?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: Eclipse Feedback Agent?</title>
	<atom:link href="http://eclipsesource.com/blogs/2009/04/30/eclipse-feedback-agent/feed/" rel="self" type="application/rss+xml" />
	<link>http://eclipsesource.com/blogs/2009/04/30/eclipse-feedback-agent/</link>
	<description>Eclipse Equinox OSGi</description>
	<lastBuildDate>Wed, 16 May 2012 08:22:45 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>By: Christopher Daniel</title>
		<link>http://eclipsesource.com/blogs/2009/04/30/eclipse-feedback-agent/comment-page-1/#comment-1501</link>
		<dc:creator>Christopher Daniel</dc:creator>
		<pubDate>Mon, 04 May 2009 08:11:25 +0000</pubDate>
		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=1386#comment-1501</guid>
		<description>I think this bug is relevant: https://bugs.eclipse.org/bugs/show_bug.cgi?id=144035</description>
		<content:encoded><![CDATA[<p>I think this bug is relevant: <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=144035" rel="nofollow">https://bugs.eclipse.org/bugs/show_bug.cgi?id=144035</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Aniszczyk</title>
		<link>http://eclipsesource.com/blogs/2009/04/30/eclipse-feedback-agent/comment-page-1/#comment-1496</link>
		<dc:creator>Chris Aniszczyk</dc:creator>
		<pubDate>Fri, 01 May 2009 17:28:14 +0000</pubDate>
		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=1386#comment-1496</guid>
		<description>Cool Robert! Is your stuff in good enough form to contribute to Eclipse in case we wanted a starting point?</description>
		<content:encoded><![CDATA[<p>Cool Robert! Is your stuff in good enough form to contribute to Eclipse in case we wanted a starting point?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Eike Stepper</title>
		<link>http://eclipsesource.com/blogs/2009/04/30/eclipse-feedback-agent/comment-page-1/#comment-1493</link>
		<dc:creator>Eike Stepper</dc:creator>
		<pubDate>Fri, 01 May 2009 06:54:29 +0000</pubDate>
		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=1386#comment-1493</guid>
		<description>Oh, what a wonderful idea!!!

I was certainly looking forward to those days where each and every error log entry with a stack trace containing the text &quot;cdo&quot; somewhere automagically ends up in my bugzilla inbox!

And the users: They&#039;d never again have to write all these boring addon infos like &quot;What did I do?&quot;, &quot;How can you reproduce?&quot; or &quot;I looked at the code and here is my solution!&quot;.

Why not become even better? What about an AutoFixMeAgent?

:P</description>
		<content:encoded><![CDATA[<p>Oh, what a wonderful idea!!!</p>
<p>I was certainly looking forward to those days where each and every error log entry with a stack trace containing the text &#8220;cdo&#8221; somewhere automagically ends up in my bugzilla inbox!</p>
<p>And the users: They&#8217;d never again have to write all these boring addon infos like &#8220;What did I do?&#8221;, &#8220;How can you reproduce?&#8221; or &#8220;I looked at the code and here is my solution!&#8221;.</p>
<p>Why not become even better? What about an AutoFixMeAgent?</p>
<p> <img src='http://eclipsesource.com/blogs/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert</title>
		<link>http://eclipsesource.com/blogs/2009/04/30/eclipse-feedback-agent/comment-page-1/#comment-1491</link>
		<dc:creator>Robert</dc:creator>
		<pubDate>Fri, 01 May 2009 02:38:25 +0000</pubDate>
		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=1386#comment-1491</guid>
		<description>We have an in house RCP application, and we did some work on the client side w/ this idea.  We used the StatusHandling api to detect exceptions thrown by own bundles, and opened a dialog.  If the user hit ok the error is sent via http to a simple servlet and then a database.  Add in a &quot;don&#039;t bug me again&quot; checkbox to keep users from being annoyed.  Also, we added a &quot;grab a screenshot&quot; option so that if the error was resulting in some weird GUI behavior the user can send that (also have a button for user submitted reports/suggestions) which can really help getting a good description.

What I&#039;d love to see is a) some better support inside eclipse for this - a base error reporter along w/ an extension point.  Even better - would be a community (eclipse or some other place) project for a basic server-side report receiving, storage, and processing system - it should have some mechanisms for filtering out garbage, and an extension mechanism for customization (I could see it being used by the various RCP people and some eclipse downstream builds as the basis for in house servers).</description>
		<content:encoded><![CDATA[<p>We have an in house RCP application, and we did some work on the client side w/ this idea.  We used the StatusHandling api to detect exceptions thrown by own bundles, and opened a dialog.  If the user hit ok the error is sent via http to a simple servlet and then a database.  Add in a &#8220;don&#8217;t bug me again&#8221; checkbox to keep users from being annoyed.  Also, we added a &#8220;grab a screenshot&#8221; option so that if the error was resulting in some weird GUI behavior the user can send that (also have a button for user submitted reports/suggestions) which can really help getting a good description.</p>
<p>What I&#8217;d love to see is a) some better support inside eclipse for this &#8211; a base error reporter along w/ an extension point.  Even better &#8211; would be a community (eclipse or some other place) project for a basic server-side report receiving, storage, and processing system &#8211; it should have some mechanisms for filtering out garbage, and an extension mechanism for customization (I could see it being used by the various RCP people and some eclipse downstream builds as the basis for in house servers).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bjorn Freeman-Benson</title>
		<link>http://eclipsesource.com/blogs/2009/04/30/eclipse-feedback-agent/comment-page-1/#comment-1489</link>
		<dc:creator>Bjorn Freeman-Benson</dc:creator>
		<pubDate>Fri, 01 May 2009 01:59:48 +0000</pubDate>
		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=1386#comment-1489</guid>
		<description>Use the community: dump all the feedback into a huge open and transparent database of core dumps. Let the community filter through the dumps to find useful pieces of information. Who knows who will find the gems? It might be committers, it might be users, it might be a graduate student working on a thesis... the key is to be open and use the power of the crowd.</description>
		<content:encoded><![CDATA[<p>Use the community: dump all the feedback into a huge open and transparent database of core dumps. Let the community filter through the dumps to find useful pieces of information. Who knows who will find the gems? It might be committers, it might be users, it might be a graduate student working on a thesis&#8230; the key is to be open and use the power of the crowd.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Karsten Silz</title>
		<link>http://eclipsesource.com/blogs/2009/04/30/eclipse-feedback-agent/comment-page-1/#comment-1488</link>
		<dc:creator>Karsten Silz</dc:creator>
		<pubDate>Fri, 01 May 2009 01:23:38 +0000</pubDate>
		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=1386#comment-1488</guid>
		<description>I think Eclipse should have a system similar to Netbeans where in developer builds (not end user builds, I believe) you can optionally post exception stacktraces to a bug website.</description>
		<content:encoded><![CDATA[<p>I think Eclipse should have a system similar to Netbeans where in developer builds (not end user builds, I believe) you can optionally post exception stacktraces to a bug website.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Karl Matthias</title>
		<link>http://eclipsesource.com/blogs/2009/04/30/eclipse-feedback-agent/comment-page-1/#comment-1487</link>
		<dc:creator>Karl Matthias</dc:creator>
		<pubDate>Thu, 30 Apr 2009 23:15:18 +0000</pubDate>
		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=1386#comment-1487</guid>
		<description>What?  Guys, Eclispe never crashes!</description>
		<content:encoded><![CDATA[<p>What?  Guys, Eclispe never crashes!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Min Idzelis</title>
		<link>http://eclipsesource.com/blogs/2009/04/30/eclipse-feedback-agent/comment-page-1/#comment-1486</link>
		<dc:creator>Min Idzelis</dc:creator>
		<pubDate>Thu, 30 Apr 2009 20:05:08 +0000</pubDate>
		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=1386#comment-1486</guid>
		<description>http://tinypaste.com/ac0b6</description>
		<content:encoded><![CDATA[<p><a href="http://tinypaste.com/ac0b6" rel="nofollow">http://tinypaste.com/ac0b6</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike Haller</title>
		<link>http://eclipsesource.com/blogs/2009/04/30/eclipse-feedback-agent/comment-page-1/#comment-1474</link>
		<dc:creator>Mike Haller</dc:creator>
		<pubDate>Thu, 30 Apr 2009 17:13:05 +0000</pubDate>
		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=1386#comment-1474</guid>
		<description>Yes! We developed multiple RCP apps and they always had implementations of Feedback Dialogs. It&#039;s something the IT departments in every company wants to provide for their customers.</description>
		<content:encoded><![CDATA[<p>Yes! We developed multiple RCP apps and they always had implementations of Feedback Dialogs. It&#8217;s something the IT departments in every company wants to provide for their customers.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Konstantin Komissarchik</title>
		<link>http://eclipsesource.com/blogs/2009/04/30/eclipse-feedback-agent/comment-page-1/#comment-1473</link>
		<dc:creator>Konstantin Komissarchik</dc:creator>
		<pubDate>Thu, 30 Apr 2009 16:36:50 +0000</pubDate>
		<guid isPermaLink="false">http://eclipsesource.com/blogs/?p=1386#comment-1473</guid>
		<description>I used to work on on an Eclipse-based product (BEA Workshop) that had just such a system implemented. While I still think that a good system for this style of problem reporting can be devised for Eclipse, there are quite a few obstacles and many ways to get this system tragically wrong. I will highlight some of these issues:

1. What&#039;s a failure? When a product like FireFox crashes, it just dies. One of the great things about Eclipse is that it rarely actually dies. Different parts and actions fail, but the product still keeps running. So how do you detect a failure event to report? What we did in Workshop is look for stack traces emitted to the log. When we detected an error log event with a stack trace, we would open a dialog informing the user of the failure and giving them a chance to send a report. The problem is that all failures are not equal in severity and some failures can come at a quite high clip with relatively little impact on what user is currently doing. In the first release of this system, we were fielding a lot of newsgroup posts from irate users who go sick of this dialog popping up in their face all the time. Some measures can be taken to mitigate this by detecting failures already reported or having rules about what can be ignored or letting users tell you to not bother them again. In the end all of these are just stop-gap measures. Eclipse environment requires a different approach. Perhaps you prompt the user to opt-in / opt-out on first failure and then proceed silently after that. You loose the ability for the user to type in comments about what they were doing, but we did not find that users were taking advantage of that feature anyway.

2. Signal to noise ratio. A good problem report needs sufficient information so that the dev studying it can reproduce it or at least make an educated guess as to the cause of the problem. It is extremely difficult for automated systems like this to produce good problem reports. You have the stack trace, but that only takes you so far. Gathering more information doesn&#039;t necessarily help either. We could capture plugin listings, full stack dumps, etc., but unless we have some kind of a crazy simulator, it is unlikely that the developer will be able to make sense of the problem report. Expect only a tiny fraction of reports to be actionable. We were seeing something like 5% to 10%.

3. Separate system from bug database. You would not believe how quickly a system like this can accumulate problem reports. Even if you have a really good algorithm that can detect when two stack traces represent the same problem (not an easy thing to write without producing high rates of false positives), you should still expect to gather problems faster than your resources allow you to analyze them. There are a couple of lessons that fell out of this for us. (a) The action of turning an automated report into a bug report is something that human does during the problem triage. (b) The system needs to be able to prioritize reports somehow. A good rule is to count how many time a certain problem is reported. (c) The system needs to be able to shed old reports automatically. You really don&#039;t care about problems reported two months ago. You have enough coming in this week to worry about.

4. Whose problem is it? This is actually an extremely difficult question to even approximate the answer to. Is stuff closer to the top of the stack trace more at fault than the stuff lower down? Not really. Not in all cases. An approach that worked decently is to define pattern tags that would match some portion of package name to whatever level of granularity we cared to apply in a particular case. The system would tag reports automatically on arrival with however many tags applied. The individual devs would setup queries looking for certain tags. For every problem report they could unset the tag if they don&#039;t believe the problem is in their component. If the dev looking at the problem believes there is enough to go on, we had a button that automatically opened a case in the bug database and marked the problem report as handled. An approach like this could work well for Eclipse as it scales across projects and companies. This would require a single central problem report database maintained at eclipse.org that anyone could query. 

5. Which release is it? Is it a dev build? Was there any unreleased / patched code running that may have contributed to the problem? We did not find a good answer to all aspects of this problem. It is one of the contributing factors that creates the low signal to noise ratio.

If there is interest creating such a system at Eclipse, I would be interested in contributing to that effort, but the system needs to be built in such a way that is inherently useful to both Eclipse projects and third parties extending Eclipse.</description>
		<content:encoded><![CDATA[<p>I used to work on on an Eclipse-based product (BEA Workshop) that had just such a system implemented. While I still think that a good system for this style of problem reporting can be devised for Eclipse, there are quite a few obstacles and many ways to get this system tragically wrong. I will highlight some of these issues:</p>
<p>1. What&#8217;s a failure? When a product like FireFox crashes, it just dies. One of the great things about Eclipse is that it rarely actually dies. Different parts and actions fail, but the product still keeps running. So how do you detect a failure event to report? What we did in Workshop is look for stack traces emitted to the log. When we detected an error log event with a stack trace, we would open a dialog informing the user of the failure and giving them a chance to send a report. The problem is that all failures are not equal in severity and some failures can come at a quite high clip with relatively little impact on what user is currently doing. In the first release of this system, we were fielding a lot of newsgroup posts from irate users who go sick of this dialog popping up in their face all the time. Some measures can be taken to mitigate this by detecting failures already reported or having rules about what can be ignored or letting users tell you to not bother them again. In the end all of these are just stop-gap measures. Eclipse environment requires a different approach. Perhaps you prompt the user to opt-in / opt-out on first failure and then proceed silently after that. You loose the ability for the user to type in comments about what they were doing, but we did not find that users were taking advantage of that feature anyway.</p>
<p>2. Signal to noise ratio. A good problem report needs sufficient information so that the dev studying it can reproduce it or at least make an educated guess as to the cause of the problem. It is extremely difficult for automated systems like this to produce good problem reports. You have the stack trace, but that only takes you so far. Gathering more information doesn&#8217;t necessarily help either. We could capture plugin listings, full stack dumps, etc., but unless we have some kind of a crazy simulator, it is unlikely that the developer will be able to make sense of the problem report. Expect only a tiny fraction of reports to be actionable. We were seeing something like 5% to 10%.</p>
<p>3. Separate system from bug database. You would not believe how quickly a system like this can accumulate problem reports. Even if you have a really good algorithm that can detect when two stack traces represent the same problem (not an easy thing to write without producing high rates of false positives), you should still expect to gather problems faster than your resources allow you to analyze them. There are a couple of lessons that fell out of this for us. (a) The action of turning an automated report into a bug report is something that human does during the problem triage. (b) The system needs to be able to prioritize reports somehow. A good rule is to count how many time a certain problem is reported. (c) The system needs to be able to shed old reports automatically. You really don&#8217;t care about problems reported two months ago. You have enough coming in this week to worry about.</p>
<p>4. Whose problem is it? This is actually an extremely difficult question to even approximate the answer to. Is stuff closer to the top of the stack trace more at fault than the stuff lower down? Not really. Not in all cases. An approach that worked decently is to define pattern tags that would match some portion of package name to whatever level of granularity we cared to apply in a particular case. The system would tag reports automatically on arrival with however many tags applied. The individual devs would setup queries looking for certain tags. For every problem report they could unset the tag if they don&#8217;t believe the problem is in their component. If the dev looking at the problem believes there is enough to go on, we had a button that automatically opened a case in the bug database and marked the problem report as handled. An approach like this could work well for Eclipse as it scales across projects and companies. This would require a single central problem report database maintained at eclipse.org that anyone could query. </p>
<p>5. Which release is it? Is it a dev build? Was there any unreleased / patched code running that may have contributed to the problem? We did not find a good answer to all aspects of this problem. It is one of the contributing factors that creates the low signal to noise ratio.</p>
<p>If there is interest creating such a system at Eclipse, I would be interested in contributing to that effort, but the system needs to be built in such a way that is inherently useful to both Eclipse projects and third parties extending Eclipse.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

