<?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>Nekohayo ! &#187; Specto</title>
	<atom:link href="http://jeff.ecchi.ca/blog/category/specto/feed/" rel="self" type="application/rss+xml" />
	<link>http://jeff.ecchi.ca/blog</link>
	<description>La vie personnelle du chat</description>
	<lastBuildDate>Fri, 12 Mar 2010 19:00:16 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>0.3.1: a small bug fixing release</title>
		<link>http://jeff.ecchi.ca/blog/2009/07/12/031-a-small-bug-fixing-release/</link>
		<comments>http://jeff.ecchi.ca/blog/2009/07/12/031-a-small-bug-fixing-release/#comments</comments>
		<pubDate>Sun, 12 Jul 2009 19:36:50 +0000</pubDate>
		<dc:creator>kiddo</dc:creator>
				<category><![CDATA[Linux Planet]]></category>
		<category><![CDATA[Specto]]></category>

		<guid isPermaLink="false">http://jeff.ecchi.ca/blog/?p=910</guid>
		<description><![CDATA[I just released Specto 0.3.1, not long after 0.3 (in terms of commits), after having addressed some bugs myself. The changes are minor and I don&#8217;t expect regressions, so it should be pretty safe to upgrade from 0.3. Maybe I can start a habit of actually releasing stuff more often, if we don&#8217;t again plunge [...]]]></description>
			<content:encoded><![CDATA[<p>I <a href="http://code.google.com/p/specto/downloads/list">just released</a> Specto 0.3.1, not long after 0.3 (in terms of commits), after having addressed some bugs myself. The changes are minor and I don&#8217;t expect regressions, so it should be pretty safe to upgrade from 0.3. Maybe I can start a habit of actually releasing stuff more often, if we don&#8217;t again plunge into a huge refactoring endeavour like the 0.3 release was.</p>
<p><span id="more-910"></span></p>
<p>One particularly annoying bug for French users was caused by a wrong string in the translation, which caused some watches to be &#8220;stuck&#8221; and not show notification balloons. See the <a href="http://bazaar.launchpad.net/%7Especto/specto/main/annotate/head%3A/data/doc/ChangeLog">release notes</a> for more details on what has changed in this minor release.</p>
<p>A tarball is available, and I will try getting someone to build Ubuntu packages (if anyone wants to volunteer to maintain it, you&#8217;re welcome to do so), and, if it&#8217;s not too late, get it into Ubuntu 9.10.</p>
]]></content:encoded>
			<wfw:commentRss>http://jeff.ecchi.ca/blog/2009/07/12/031-a-small-bug-fixing-release/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Notify-OSD compliance</title>
		<link>http://jeff.ecchi.ca/blog/2009/03/20/notify-osd-conformance/</link>
		<comments>http://jeff.ecchi.ca/blog/2009/03/20/notify-osd-conformance/#comments</comments>
		<pubDate>Fri, 20 Mar 2009 15:15:21 +0000</pubDate>
		<dc:creator>kiddo</dc:creator>
				<category><![CDATA[Planète Ubuntu Québec]]></category>
		<category><![CDATA[Specto]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://jeff.ecchi.ca/blog/?p=799</guid>
		<description><![CDATA[After much bikeshedding, I delved in Specto&#8217;s code for a few hours this morning to get it working with Ubuntu 9.04&#8217;s controversial notification system daemon. The ability to set notification durations is now gone, and Specto only displays actions in the notifications if they are &#8220;allowed&#8221;. This should not impact users of vanilla libnotify. If [...]]]></description>
			<content:encoded><![CDATA[<p>After <a href="http://code.google.com/p/specto/issues/detail?id=215">much</a> <a href="http://en.wikipedia.org/wiki/Color_of_the_bikeshed">bikeshedding</a>, I delved in Specto&#8217;s code for a few hours this morning to get it working with Ubuntu 9.04&#8217;s controversial notification system daemon. The ability to set notification durations is now gone, and Specto only displays actions in the notifications if they are &#8220;allowed&#8221;. This should not impact users of vanilla libnotify. If people complain, it&#8217;s all Ubuntu&#8217;s fault now :)</p>
<p><span id="more-799"></span></p>
<p><img class="alignnone size-full wp-image-800" title="specto-and-ubuntus-notify-osd" src="http://jeff.ecchi.ca/blog/wp-content/uploads/specto-and-ubuntus-notify-osd.png" alt="specto-and-ubuntus-notify-osd" width="259" height="129" /></p>
<p>As you may have noticed, I have made some subtle changes to the actual contents of the notifications. The notification summary is now a proper summary with the watch name instead of &#8220;Specto&#8221;, and this means we put less &#8220;redundant stuff&#8221; in the actual &#8220;long description&#8221;.</p>
<p>Overall, this whole &#8220;conform to notify-osd&#8221; issue had a positive side-effect: it kicked my ass into actually doing the content cleanup I had on the back of my mind for quite some time.</p>
<p><img class="alignnone size-full wp-image-801" title="specto-and-ubuntus-notify-osd-error" src="http://jeff.ecchi.ca/blog/wp-content/uploads/specto-and-ubuntus-notify-osd-error.png" alt="specto-and-ubuntus-notify-osd-error" width="286" height="133" /></p>
<p>When the notifications are not attached to the tray icon anymore, messages like this one become <em>glaringly </em>wrong: their uselessness becomes quite apparent. I therefore filed <a href="http://code.google.com/p/specto/issues/detail?id=221">bug 221</a>.</p>
<p>All these changes are currently available for testing in my personal Specto branch. <strong>Translators will need to update some strings </strong>(mainly just remove obsolete stuff), so please send your updated translations for them to be included in Specto 0.3 final.</p>
]]></content:encoded>
			<wfw:commentRss>http://jeff.ecchi.ca/blog/2009/03/20/notify-osd-conformance/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Specto 0.3 release candidate 1</title>
		<link>http://jeff.ecchi.ca/blog/2009/01/15/specto-03-release-candidate-1/</link>
		<comments>http://jeff.ecchi.ca/blog/2009/01/15/specto-03-release-candidate-1/#comments</comments>
		<pubDate>Thu, 15 Jan 2009 22:48:12 +0000</pubDate>
		<dc:creator>kiddo</dc:creator>
				<category><![CDATA[Planète Ubuntu Québec]]></category>
		<category><![CDATA[Specto]]></category>

		<guid isPermaLink="false">http://jeff.ecchi.ca/blog/?p=713</guid>
		<description><![CDATA[Since hell is freezing over today, I&#8217;ve been nailed to my chair to prepare a new Specto release, at last. Uploaded packages, checked release notes, and reworked the website. Now, 0.3 RC1 is available for the masses, go test it! If no significant problems are found, this will become Specto 0.3 final. Special thanks to [...]]]></description>
			<content:encoded><![CDATA[<p>Since <a href="?p=710">hell is freezing over today</a>, I&#8217;ve been nailed to my chair to prepare a new Specto release, at last. <a href="http://code.google.com/p/specto/downloads/list">Uploaded packages</a>, checked release notes, and reworked <a href="http://specto.sourceforge.net">the website</a>. Now, 0.3 RC1 is available for the masses, go test it! If no significant problems are found, this will become Specto 0.3 final. Special thanks to Wout Clymans for working so passionately on this release for over a year.</p>
<p><span id="more-713"></span></p>
<p><img class="alignnone size-full wp-image-714" title="this-is-specto-03" src="http://jeff.ecchi.ca/blog/wp-content/uploads/this-is-specto-03.jpg" alt="" /></p>
<p><em>Specto is a free and open-source desktop application that will watch configurable events (such as website updates, emails, file and folder changes, system processes, bazaar branches, etc.) and then trigger notifications.</em></p>
<p><strong>This is a “release candidate” for the 0.3 release</strong>. It is considered stable and feature-complete and is <strong>intended for last minute testing and to allow you to send us your translations</strong>. If you are proefficient in your native language,<strong> please help by translating Specto into your language.</strong> It is fun, easy, and you get your name in the translator credits. Instructions are available on <a href="http://code.google.com/p/specto/wiki/Translating">this page</a>.</p>
<p>Upgrading to this release is strongly recommended, as it solves a huge amount of issues reported in the 0.2.x series, is more stable, implements new features, is more secure and easier to maintain.</p>
<p>This release contains lots of architectural changes. The watch system is now a plugin system, the watch list has changed, GNOME keyring is now used for encrypting passwords by default (though you can disable it), and the configuration/cache directories are now based on the XDG user directory specification. As such, you will need to import your watch list if upgrading from Specto 0.2.x.</p>
<p>Updated packages for Ubuntu are already available on our download page, and might also appear in Ubuntu&#8217;s universe in time for 9.04. If you want to provide packages for your favorite distribution, feel free to contact us.</p>
<p>What is new in this release: see the <a href="http://bazaar.launchpad.net/%7Especto/specto/main/annotate/head%3A/data/doc/ChangeLog">release notes</a></p>
<p>We are a volunteer project, free “as in beer” and free “as in GNU GPL v2”, and contributions are very welcome. If you like this software and want to fix annoyances that itch you, we value all the help we can get. You don&#8217;t need to be a hacking guru! [see contributing page].</p>
]]></content:encoded>
			<wfw:commentRss>http://jeff.ecchi.ca/blog/2009/01/15/specto-03-release-candidate-1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Installfest et présentations le 17 janvier</title>
		<link>http://jeff.ecchi.ca/blog/2009/01/05/installfest-et-presentations-le-17-janvier/</link>
		<comments>http://jeff.ecchi.ca/blog/2009/01/05/installfest-et-presentations-le-17-janvier/#comments</comments>
		<pubDate>Mon, 05 Jan 2009 23:12:32 +0000</pubDate>
		<dc:creator>kiddo</dc:creator>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planète Ubuntu Québec]]></category>
		<category><![CDATA[Specto]]></category>

		<guid isPermaLink="false">http://jeff.ecchi.ca/blog/?p=703</guid>
		<description><![CDATA[

Le COMiC et GULUM prévoient faire un installfest Linux le 17 janvier à l&#8217;école Polytechnique (Pavillon Lassonde, local M-2101). Vous pouvez aller vous inscrire dans la liste des participants ou installateurs.
Si le public le veut, je donnerai deux présentations au cours de l&#8217;événement, traitant de:

GNOME Power Manager: pourquoi c&#8217;est bien pour toi
Specto: tour d&#8217;horizon, historique [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" src="http://lh4.ggpht.com/_dB2WkL3b3u4/Ruya0EgXGzI/AAAAAAAABM0/0d6ruM5xYhk/s400/2007-09-15--15.35.08.jpg" alt="" width="400" height="300" /></p>
<p><span id="more-703"></span></p>
<p>Le COMiC et GULUM prévoient faire <a href="http://www.comic.polymtl.ca/index.php?page=installfest:informations">un installfest</a> Linux le 17 janvier à l&#8217;école Polytechnique (Pavillon Lassonde, local M-2101). Vous pouvez aller <a href="http://www.comic.polymtl.ca/index.php?page=installfest:inscription">vous inscrire</a> dans la liste des participants ou installateurs.</p>
<p>Si le public le veut, je donnerai deux présentations au cours de l&#8217;événement, traitant de:</p>
<ul>
<li>GNOME Power Manager: pourquoi c&#8217;est bien pour toi</li>
<li>Specto: tour d&#8217;horizon, historique et découvertes en matière de gestion d&#8217;un projet de logiciel libre</li>
</ul>
<p>Si jamais y&#8217;a d&#8217;autres suggestions&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://jeff.ecchi.ca/blog/2009/01/05/installfest-et-presentations-le-17-janvier/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Improved Specto startup times</title>
		<link>http://jeff.ecchi.ca/blog/2008/12/06/improved-specto-startup-times/</link>
		<comments>http://jeff.ecchi.ca/blog/2008/12/06/improved-specto-startup-times/#comments</comments>
		<pubDate>Sat, 06 Dec 2008 15:26:55 +0000</pubDate>
		<dc:creator>kiddo</dc:creator>
				<category><![CDATA[Specto]]></category>

		<guid isPermaLink="false">http://jeff.ecchi.ca/blog/?p=654</guid>
		<description><![CDATA[After my post on profiling Specto&#8217;s startup, Wout Clymans put on his Hero Hacker Hat and fixed the major problem that was causing Specto to do too much work for nothing. Now, Specto starts in 2 seconds instead of 10 seconds.

What happened there? Well, for making sure that we are using the same &#8220;internal&#8221; watch [...]]]></description>
			<content:encoded><![CDATA[<p>After my post <a href="http://jeff.ecchi.ca/blog/?p=634">on profiling Specto&#8217;s startup</a>, Wout Clymans put on his Hero Hacker Hat and <a href="http://bazaar.launchpad.net/~woutc/specto/specto-woutc/revision/115">fixed</a> the major problem that was causing Specto to do too much work for nothing. <strong>Now, Specto starts in 2 seconds instead of 10 seconds.</strong></p>
<p><span id="more-654"></span></p>
<p>What happened there? Well, for making sure that we are using the same &#8220;internal&#8221; watch list as the actual watches in ~/.config/specto/watches.list (if I&#8217;m not mistaken), Specto loaded the file each time and parsed it. The problem is that this is useful (not even 100% sure about it) only  when you <em>manually</em> ask Specto to refresh, <em>not </em>during startup, where the watch list is obviously up to date. What Wout did to fix the problem is create a special parameter that makes those method avoid opening and parsing the watch list all the time on startup.</p>
<p>The question remains, however, if the startup time can be further optimized (with the profiling technique in my <a href="http://jeff.ecchi.ca/blog/?p=634">previous post</a>), or if 2 seconds really is the bottomline; my understanding of profiling outputs is not deep enough to answer that, so any input would be welcome.</p>
<p>Being able to figure out why Specto takes 21 Mib of RAM would also be a nice thing. If it&#8217;s Python + GTK&#8217;s fault, well, &#8220;<a href="http://en.wikipedia.org/wiki/Shikata_ga_nai">sho ga nai</a>, desu yo~&#8221;. If we <em>can</em> optimize something in our existing code, however, that would be a problem that we should try to address.</p>
]]></content:encoded>
			<wfw:commentRss>http://jeff.ecchi.ca/blog/2008/12/06/improved-specto-startup-times/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Profiling Specto (and whole Python applications in general)</title>
		<link>http://jeff.ecchi.ca/blog/2008/11/25/profiling-specto-and-whole-python-applications-in-general/</link>
		<comments>http://jeff.ecchi.ca/blog/2008/11/25/profiling-specto-and-whole-python-applications-in-general/#comments</comments>
		<pubDate>Wed, 26 Nov 2008 02:41:41 +0000</pubDate>
		<dc:creator>kiddo</dc:creator>
				<category><![CDATA[Découvertes]]></category>
		<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Planète Ubuntu Québec]]></category>
		<category><![CDATA[Réalisations]]></category>
		<category><![CDATA[Specto]]></category>

		<guid isPermaLink="false">http://jeff.ecchi.ca/blog/?p=634</guid>
		<description><![CDATA[A few months ago (when we still thought we were about to release 0.3 &#8220;real soon now&#8221; ;), I noticed that Specto is noticeably slow to start up, even on warm starts (when it is not the first time you launch it). It always takes at least 6 seconds to paint the list of watches [...]]]></description>
			<content:encoded><![CDATA[<p>A few months ago (when we still thought we were about to release 0.3 &#8220;real soon now&#8221; ;), I noticed that <a href="http://specto.sourceforge.net">Specto</a> is noticeably slow to start up, <em>even </em>on warm starts (when it is not the first time you launch it). It <strong>always takes at <em>least</em> 6 seconds</strong> to paint the list of watches and start refreshing them. During that time, there is a notably <strong>high CPU usage spike</strong> (surprisingly, no noticeable hard drive I/O), as shown below:</p>
<p><span id="more-634"></span></p>
<p><img class="alignnone size-full wp-image-635" title="specto-cpu-usage" src="http://jeff.ecchi.ca/blog/wp-content/uploads/specto-cpu-usage.png" alt="" width="183" height="48" /></p>
<p>I talked about this problem with <a href="https://wiki.ubuntu.com/woutc">Wout</a> when I first found out about it, and looked at various profiling tools (sysprof, oprofile, valgrind&#8230;), but could not find anything that was supposed to work with Python directly, let alone anything a <em>mortal</em> could use. Thus, we shrugged, and the problem sat there without further investigation, lacking the tools (and time) for that.</p>
<p>Tonight, I wanted to be the next <a href="http://en.wikipedia.org/wiki/Federico_Mena">Federico Mena Quintero</a>, and so I tried it again. My first hypothesis was that Specto surely must <strong>be doing way too much work</strong>, or doing inefficient I/O in some way. I consider it <strong><em>unacceptable</em></strong> that a simple application like Specto does not launch instantly, instead <strong>taking as much time as a warm-start OpenOffice</strong>.</p>
<p>If you don&#8217;t know about software performance profiling, there is some truly awesome &#8220;hecho in Federico&#8221; material that you must see first. It is easy to understand and funny as hell:</p>
<ul>
<li><a href="http://ftp.belnet.be/mirrors/FOSDEM/2007/FOSDEM2007-ProfilingDesktopApplication.ogg">http://ftp.belnet.be/mirrors/FOSDEM/2007/FOSDEM2007-ProfilingDesktopApplication.ogg</a></li>
<li><a href="http://www.gnome.org/%7Efederico/docs/2005-GNOME-Summit/html/index.html">http://www.gnome.org/~federico/docs/2005-GNOME-Summit/html/index.html</a></li>
<li><a href="http://www.gnome.org/%7Efederico/docs/2006-GUADEC/how-much-faster/index.html">http://www.gnome.org/~federico/docs/2006-GUADEC/how-much-faster/index.html</a></li>
</ul>
<p>So, tonight, I <a href="http://www.google.ca/search?q=profiling+python">tried Googling</a> for once, and immediately discovered that Python 2.5 already has <a href="http://www.python.org/doc/2.5.2/lib/profile.html">three official profiling modules</a>! Aided by the <a href="http://www.python.org/doc/2.5.2/lib/profile-instant.html">quickstart</a> guide, I found to my great delight that I could simply run cprofile over the entire application (since I&#8217;m only interested in the startup anyway), instead of butchering the code and wasting tons of time on getting it working.</p>
<p>The normal command that launches Specto if you use &#8220;launch.sh&#8221; is like this:</p>
<p><code>PYTHONPATH=$PYTHONPATH:src ./specto $@</code></p>
<p>The command I used to do the profiling is this, instead:</p>
<p><code>PYTHONPATH=$PYTHONPATH:src <strong>python -m cProfile </strong>-s 'cumulative' specto $@ &gt;profile-cumulative.txt</code></p>
<p>This launches Specto, and when it finally appears and starts refreshing its watches, I immediately hit the &#8220;Stop&#8221; button and close Specto with a keyboard shortcut, to profile just the bare minimum I need.</p>
<p>I repeated this command with &#8220;cumulative&#8221;, &#8220;time&#8221; and &#8220;calls&#8221; to change the sorting order of the results (<a href="http://www.python.org/doc/2.5.2/lib/profile-stats.html">other sorting orders</a> are possible).</p>
<p>The results confirmed (it seems) my hunch: iniparser (the module that reads/writes the watch list) is likely the bottleneck: out of the 10 seconds of run time (running the profiler slows things down a bit), about 7 seconds seems to be eaten by iniparser (cumulative time). Now, I&#8217;m no profiling guru, so bear with my sloppy analysis, I may be completely wrong here, but I will highlight the parts that <em>seem to me</em> like they are problematic:</p>
<p><img class="alignnone size-full wp-image-637" title="profiling-results-sorted" src="http://jeff.ecchi.ca/blog/wp-content/uploads/profiling-results-sorted.png" alt="" width="671" height="765" /></p>
<p>Look at all that crap! It must be doing some serious sh** to be able to run over <strong><em>213 thousand </em>function calls</strong> and hog the CPU (a Pentium 4, 2.4 GHz) for over 7 seconds&#8230;</p>
<p>Remember Federico&#8217;s law? Trim the fat in this order (after having asked the profiler):</p>
<ol>
<li><strong>Excess work</strong></li>
<li>Excess I/O</li>
<li>Bad algorithms</li>
<li><span style="text-decoration: line-through;">Bad memory access patterns</span></li>
<li><span style="text-decoration: line-through;">Micro-optimizations (function call overhead, mis-predicted branches, CPU-level foo)</span></li>
</ol>
<p>&#8230; and it seems like Specto&#8217;s iniparser module is doing <strong>a lot</strong> of &#8220;excess work&#8221;. At the same time, why is &#8220;time.sleep&#8221; eating 1.6 seconds of our startup time? If I recall correctly, we don&#8217;t actually use a sleeping timer during startup before the watches start refreshing. This could be another path of investigation.</p>
<p>Now what? Throw iniparser away? I guess not, not until someone sits down and actually investigates (better than what I did here):</p>
<ol>
<li>What to blame: our code, or iniparser? We should look in Specto&#8217;s code, to see if there is some dumb/flawed logic, like &#8220;open and read the file each time for every watch&#8221;.</li>
<li>If iniparser is at fault, can it be optimized, or must it be replaced by some other data storage method?</li>
</ol>
<p>So, this concludes my initial blog post on profiling Specto. I have here identified some potential performance bottlenecks, and I would appreciate any help or feedback on analyzing this issue more accurately. If someone wants to actually tackle the problem, you&#8217;re more than welcome. I personally don&#8217;t have time, at least not until Christmas holidays, and even then, I can&#8217;t promise anything.</p>
]]></content:encoded>
			<wfw:commentRss>http://jeff.ecchi.ca/blog/2008/11/25/profiling-specto-and-whole-python-applications-in-general/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Joy of Merging, and Google Code Hosting bug integration with Bazaar</title>
		<link>http://jeff.ecchi.ca/blog/2008/09/07/the-joy-of-merging-and-google-code-hosting-bug-integration-with-bazaar/</link>
		<comments>http://jeff.ecchi.ca/blog/2008/09/07/the-joy-of-merging-and-google-code-hosting-bug-integration-with-bazaar/#comments</comments>
		<pubDate>Sun, 07 Sep 2008 17:33:15 +0000</pubDate>
		<dc:creator>kiddo</dc:creator>
				<category><![CDATA[Specto]]></category>

		<guid isPermaLink="false">http://jeff.ecchi.ca/blog/?p=513</guid>
		<description><![CDATA[This graph makes me happy. As it shows, I have been quite merge-a-holic in the past few weeks, and I think it has been my most productive time of the year working on Specto (once I finally gave up trying to fix up the mess in a &#8220;perfect&#8221; way when we migrated to bazaar). This [...]]]></description>
			<content:encoded><![CDATA[<p>This graph makes me happy. As it shows, I have been quite merge-a-holic in the past few weeks, and I think it has been my most productive time of the year working on Specto (once I finally <a href="?p=443">gave up</a> trying to fix up the mess in a &#8220;perfect&#8221; way when we migrated to bazaar). This bazaar revision history graph can be obtained simply by doing <strong>bzr visualize </strong>if you have the bzr-gtk package installed.</p>
<p><span id="more-513"></span></p>
<p><a href="http://jeff.ecchi.ca/blog/wp-content/uploads/bzr-visualize-and-fixed-bugs.png"><img class="alignnone size-medium wp-image-514" title="bzr-visualize-and-fixed-bugs" src="http://jeff.ecchi.ca/blog/wp-content/uploads/bzr-visualize-and-fixed-bugs-300x236.png" alt="" width="300" height="236" /></a></p>
<p>The other command I use quite often is &#8220;<strong><a href="http://meld.sf.net">meld</a> .</strong>&#8221; to get a graphical diff of my current directory, or &#8220;bzr gdiff&#8221; to get a more textual view.</p>
<p>What is interesting in the screenshot above is that you can see the result of the <a href="http://doc.bazaar-vcs.org/bzr.dev/en/user-reference/bzr_man.html#bug-tracker-settings">bazaar bug tracker integration</a>. In this case, it allows doing stuff like:</p>
<p><code>bzr commit --fixes <strong>specto</strong>:155 --fixes <strong>specto</strong>:156</code></p>
<p>Which then tells bazaar to indicate that these two bugs were fixed by that revision, and link to them. Before you do that, you need to set your bug tracker in <strong>~/.bazaar/bazaar.conf</strong>. In my case, it is Google Code Hosting, so I had to enter it as a custom bug tracker, with a line like this:</p>
<p><code>bugtracker_<strong>specto</strong>_url = http://code.google.com/p/<strong>specto</strong>/issues/detail?id={id}</code></p>
]]></content:encoded>
			<wfw:commentRss>http://jeff.ecchi.ca/blog/2008/09/07/the-joy-of-merging-and-google-code-hosting-bug-integration-with-bazaar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Specto 0.3 nearing completion, Bazaar branches rant</title>
		<link>http://jeff.ecchi.ca/blog/2008/07/22/specto-03-nearing-completion-bazaar-branches-rant/</link>
		<comments>http://jeff.ecchi.ca/blog/2008/07/22/specto-03-nearing-completion-bazaar-branches-rant/#comments</comments>
		<pubDate>Wed, 23 Jul 2008 01:47:43 +0000</pubDate>
		<dc:creator>kiddo</dc:creator>
				<category><![CDATA[Specto]]></category>

		<guid isPermaLink="false">http://jeff.ecchi.ca/blog/?p=443</guid>
		<description><![CDATA[

Wout Clymans has kept wearing his Hero Hat over the past year, developing his own branch of Specto and enduring the pain I must have been (as a Quality Assurance freak and project manager).
Well, I can say for certain that his branch is pretty much rock-solid now, as I have been using it exclusively for [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://jeff.ecchi.ca/blog/wp-content/uploads/capture-a-propos-de-specto.png"><img style="float:right;" src="http://jeff.ecchi.ca/blog/wp-content/uploads/capture-a-propos-de-specto-300x259.png" alt="" width="300" height="259" /></a></p>
<p><span id="more-443"></span></p>
<p>Wout Clymans has kept wearing his Hero Hat over the past year, developing his own branch of Specto and enduring the pain I must have been (as a Quality Assurance freak and project manager).</p>
<p>Well, I can say for certain that his branch is pretty much rock-solid now, as I have been using it exclusively for the past few months without problems, and that it will become Specto 0.3.</p>
<h2>Bazaar Woes</h2>
<p>Therefore, after <strong><em>months</em></strong> (no kidding) of trying to <a href="https://lists.ubuntu.com/archives/bazaar/2008q2/041399.html">stitch the mess</a> that we had made with our version control systems (cvs, to svn, to bazaar, without keeping the history between each! for some reason Wout branched specto-woutc off from nothing initially, and it has gone by unnoticed for months, then it was too late), <a href="http://groups.google.com/group/specto/browse_thread/thread/f7ce3a8669ed175d">it has finally come to this</a>:</p>
<blockquote><p>&#8220;History be damned, let&#8217;s make a bzr branch out of specto-svn and merge everything Wout did over the entire year as one single, gigantic commit.&#8221;</p></blockquote>
<p>Not elegant by any stretch of the imagination. Here&#8217;s a hint to bazaar developers: for crap&#8217;s sake, if your bazaar rebase/replay plugins can&#8217;t handle situations like this <a href="https://bugs.launchpad.net/bzr-rebase/+bug/231674">because they only care about file IDs and don&#8217;t give a rat ass about filenames</a>, you have <em>epic failed</em>. It completely defeats the purpose of the darn thing.</p>
<p>So here&#8217;s today&#8217;s lesson, kids: make sure to preserve history, because Bazaar&#8217;s plugins can&#8217;t do anything to <em>pull</em> you out of that crap unless you&#8217;re a kernel developer guru it seems.</p>
<h2>The near future</h2>
<p>Specto 0.3 is <em>way </em>overdue (in my mental agenda). I am somewhat ashamed to say that I haven&#8217;t touched a single line of code in the past year, all the great work was done by Wout. Actually I did write <em>exactly one</em> line of code, it&#8217;s a patch sitting in my <a href="http://code.ecchi.ca/frontbringer">Frontbringer</a> stuff to fix <a href="http://code.google.com/p/specto/issues/detail?id=1">issue #1</a>. I will apply it to specto-main soonish, hopefully.</p>
<p>Specto-woutc has been <em>mostly </em>ready for months, but the <em>clusterfuck</em> (as <a href="http://linuxhaters.blogspot.com/">LinuxHater</a> likes to say) that was our bazaar branches kept me unmotivated to do anything until it was <em>solved.</em> So that was one reason why I was not involved much except as a management and support role (bug triaging, QA testing on Wout&#8217;s branch, etc), the other two reasons being that Specto has now reached its <a href="http://ubuntuforums.org/showthread.php?t=24135">initial role</a> (it fulfills my daily needs) and that university keeps me way too busy.</p>
<p>Enough blah blah, what now? Well, since this bazaar mess is cleaned, I will feel a bit more confident in doing commits or branching. So what I plan to do is:</p>
<ol>
<li>check for last minute regressions in the user interface experience compared to the 0.2.x series</li>
<li>search for any strings in the code that could be translated but are not yet marked as translatable</li>
<li>update the translation template</li>
<li>translate into French (as a benchmark)</li>
<li>email all previous translators requesting help and testing</li>
<li>maybe publish a 0.3-beta or release candidate? Anyone knows if some folks would be interested in testing it thoroughly?</li>
</ol>
<p>Anyone is welcome to give feedback on the new <a href="https://code.launchpad.net/~specto/specto/main">specto-main branch</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://jeff.ecchi.ca/blog/2008/07/22/specto-03-nearing-completion-bazaar-branches-rant/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Specto featured on Linux.com</title>
		<link>http://jeff.ecchi.ca/blog/2008/03/15/specto-featured-on-linuxcom/</link>
		<comments>http://jeff.ecchi.ca/blog/2008/03/15/specto-featured-on-linuxcom/#comments</comments>
		<pubDate>Sat, 15 Mar 2008 12:37:26 +0000</pubDate>
		<dc:creator>kiddo</dc:creator>
				<category><![CDATA[Specto]]></category>

		<guid isPermaLink="false">http://jeff.ecchi.ca/blog/?p=316</guid>
		<description><![CDATA[This guy totally understood the way specto works and was intended to work!

Damn. that means I should stop being lazy/being a good student, and get a 0.3 out the door soon (by poking at Wout&#8217;s awesome code). 
Or at least squash the silly watch list corruption bug that has been plagueing me for years and [...]]]></description>
			<content:encoded><![CDATA[<p>This guy <a href="http://www.linux.com/feature/128855">totally understood</a> the way specto works and was intended to work!</p>
<p><span id="more-316"></span></p>
<p>Damn. that means I should stop being lazy/being a good student, and get a 0.3 out the door soon (by poking at Wout&#8217;s awesome code). </p>
<p>Or at least squash the <a href="http://code.google.com/p/specto/issues/detail?id=37">silly watch list corruption bug</a> that has been plagueing me for years and don&#8217;t know how to fix!</p>
]]></content:encoded>
			<wfw:commentRss>http://jeff.ecchi.ca/blog/2008/03/15/specto-featured-on-linuxcom/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Watching changes in your Google Documents</title>
		<link>http://jeff.ecchi.ca/blog/2007/10/13/watching-changes-in-your-google-documents/</link>
		<comments>http://jeff.ecchi.ca/blog/2007/10/13/watching-changes-in-your-google-documents/#comments</comments>
		<pubDate>Sat, 13 Oct 2007 16:53:28 +0000</pubDate>
		<dc:creator>kiddo</dc:creator>
				<category><![CDATA[Specto]]></category>

		<guid isPermaLink="false">http://jeff.ecchi.ca/blog/?p=241</guid>
		<description><![CDATA[I just discovered today a nice, unintended feature of Specto: being notified when you or one of your collaborator changes your google document.

The trick is just to add a web watch and point it to that document&#8217;s RSS feed. The drawback to this approach, however, is that it requires you to publish that document. I [...]]]></description>
			<content:encoded><![CDATA[<p>I just discovered today a nice, unintended feature of Specto: being notified when you or one of your collaborator changes your <a href="http://docs.google.com">google document</a>.</p>
<p><span id="more-241"></span></p>
<p>The trick is just to add a web watch and point it to that document&#8217;s RSS feed. The drawback to this approach, however, is that it requires you to publish that document. I made <a href="http://thepiratebay.org/tor/3840812">a short screencast</a> (demonstration video) of that technical prowess ;) if you have other tricks and cool stuff that you can do with Specto (or google docs + Specto), let me know.</p>
]]></content:encoded>
			<wfw:commentRss>http://jeff.ecchi.ca/blog/2007/10/13/watching-changes-in-your-google-documents/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
