<?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>Mon, 29 Apr 2013 12:22:53 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>A program&#8217;s obsolescence</title>
		<link>http://jeff.ecchi.ca/blog/2013/03/21/a-programs-obsolescence/</link>
		<comments>http://jeff.ecchi.ca/blog/2013/03/21/a-programs-obsolescence/#comments</comments>
		<pubDate>Fri, 22 Mar 2013 02:43:00 +0000</pubDate>
		<dc:creator>nekohayo</dc:creator>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Planet GNOME]]></category>
		<category><![CDATA[Specto]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://jeff.ecchi.ca/blog/?p=2366</guid>
		<description><![CDATA[In 2005, I had a crazy idea upon which I started the Specto project. Initially, I thought I&#8217;d call my revolutionary piece of software WhileYouWereOut (continuing the world&#8217;s tradition of ill-chosen project names), because it really was about solving a &#8230; <a href="http://jeff.ecchi.ca/blog/2013/03/21/a-programs-obsolescence/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>In 2005, I had a crazy idea upon which I <a href="http://ubuntuforums.org/showthread.php?t=24135">started</a> the <a href="http://specto.sf.net">Specto</a> project. Initially, I thought I&#8217;d call my revolutionary piece of software <em>WhileYouWereOut</em> (continuing the world&#8217;s tradition of ill-chosen project names), because it really was about solving a core &#8220;want&#8221; in my life: <strong>to leave my computer alone and catch up with events when I&#8217;d come back in front of it</strong>.</p>
<p><span id="more-2366"></span></p>
<p>The core feature was to watch webpages for updates: back then, I did not know about <a href="http://en.wikipedia.org/wiki/Web_syndication">syndication feeds</a>, and I was sick of refreshing ifolder.com <em>every single day</em> hoping for a release of the peer-to-peer version of <a href="http://en.wikipedia.org/wiki/IFolder">iFolder</a> (for which we still have no equivalent today).</p>
<p>But why stop there? Why not handle events such as new emails, network failures (in those days, I ran my web server on my flaky residential connexion), software updates becoming available, and so on? You can grasp the whole genius of the idea by looking at one of the first mockups I drew back then:</p>
<p><img class="alignnone size-full wp-image-2368" title="initial specto mockup" src="http://jeff.ecchi.ca/blog/wp-content/uploads/initial-specto-mockup.png" alt="" width="400" height="396" /></p>
<p>Some old-timers among you may have noticed a ressemblance with <a href="http://en.wikipedia.org/wiki/Beagle_%28software%29">Beagle</a>&#8216;s old user interface — back when it was called &#8220;Bleeding-Edge Search Tool&#8221;. Aaah, another nostalgic memory of the Novell desktop days.</p>
<p>Specto taught me that even if you have an arguably brilliant concept/mockup, <strong>random strangers on the Internet won&#8217;t magically jump onto your bandwagon and write code for you</strong>. Once this &#8220;reality check&#8221; finally set in after a couple of months, I took the dive and taught myself Python programming. Specto holds some sentimental value as it was my first OOP learning platform, but I&#8217;d probably be horrified if I were to look at its code now, after having considerably improved my skills by <a href="http://pitivi.org/?go=contributing">contributing</a> to Pitivi. How the hell can Specto have <a href="https://ohloh.net/p/compare?project_0=PiTiVi&amp;project_1=specto">nearly as much code</a> as the current Pitivi development version, anyway!?</p>
<p>But I disgress. Where was I? Ah yes.</p>
<h1>GNOME 3.6 made it all obsolete — finally.</h1>
<p><img class="alignnone size-full wp-image-2367" title="2013-03-20--21.30.40" src="http://jeff.ecchi.ca/blog/wp-content/uploads/2013-03-20-21.30.40.jpg" alt="" width="600" height="338" /></p>
<p>The thought struck me recently: <strong>the user experience provided by GNOME Shell&#8217;s notification system is exactly what I needed all along</strong>. It fills my desire to have my computer patiently wait — like a tireless companion — for my return, without worrying about missing events.</p>
<p>If someone had shown me GNOME 3.6 in 2005, I would not have believed it. And yet, with the gradual changes in the 3.x series, we sometimes forget how fantastic the whole thing is.</p>
<p>Even with my heightened expectations, I was still impressed to see that I could now pick up <a title="PulseAudio 2.0 + Empathy = awesome" href="http://jeff.ecchi.ca/blog/2012/10/28/pulseaudio-2-0-empathy-awesome/">calls</a> even if my home desktop computer&#8217;s screen is locked! A real technological delight.</p>
<p>For watching the Web, Specto is now mostly irrelevant: <a href="http://liferea.sf.net">Liferea</a> is the program that took its place in my life. Arguably, social networks have also filled that role for many people.</p>
<h1>Sometimes, the software you created becomes irrelevant and you find that to be a <em>good thing</em>.</h1>
<p>Following up on my previous announcements where I <a title="Adopt a Specto" href="http://jeff.ecchi.ca/blog/2010/10/22/adopt-a-specto/">called for a new maintainer</a> and subsequently decided I <a title="Specto 0.4 released" href="http://jeff.ecchi.ca/blog/2011/06/23/specto-0-4-released/">wouldn&#8217;t touch anything without a patch</a>, I can now say this in light of GNOME 3.6: <strong>Specto is dead. I don&#8217;t care about it anymore.</strong> Of course, if someone wants to take over maintainership/direction of the project, I&#8217;ll gladly give that ability to you.</p>
]]></content:encoded>
			<wfw:commentRss>http://jeff.ecchi.ca/blog/2013/03/21/a-programs-obsolescence/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=nekohayo&amp;popout=1&amp;url=http%3A%2F%2Fjeff.ecchi.ca%2Fblog%2F2013%2F03%2F21%2Fa-programs-obsolescence%2F&amp;language=en_GB&amp;category=software&amp;title=A+program%26%238217%3Bs+obsolescence&amp;description=In+2005%2C+I+had+a+crazy+idea+upon+which+I+started+the+Specto+project.+Initially%2C+I+thought+I%26%238217%3Bd+call+my+revolutionary+piece+of+software+WhileYouWereOut+%28continuing+the+world%26%238217%3Bs+tradition+of...&amp;tags=blog" type="text/html" />
	</item>
		<item>
		<title>Specto 0.4 released</title>
		<link>http://jeff.ecchi.ca/blog/2011/06/23/specto-0-4-released/</link>
		<comments>http://jeff.ecchi.ca/blog/2011/06/23/specto-0-4-released/#comments</comments>
		<pubDate>Thu, 23 Jun 2011 20:19:17 +0000</pubDate>
		<dc:creator>nekohayo</dc:creator>
				<category><![CDATA[Planet GNOME]]></category>
		<category><![CDATA[Réalisations]]></category>
		<category><![CDATA[Specto]]></category>

		<guid isPermaLink="false">http://jeff.ecchi.ca/blog/?p=1860</guid>
		<description><![CDATA[I&#8217;ve been holding off a Specto release for way too long. See my previous post on the matter for some insights into why Specto 0.4 was released after Duke Nukem Forever. This development hell streak ends today. If there are &#8230; <a href="http://jeff.ecchi.ca/blog/2011/06/23/specto-0-4-released/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><a href="http://jeff.ecchi.ca/blog/wp-content/uploads/specto-0.4.png"><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright size-medium wp-image-1861" title="specto 0.4" src="http://jeff.ecchi.ca/blog/wp-content/uploads/specto-0.4-260x300.png" alt="" width="260" height="300" /></a>I&#8217;ve been holding off a <a href="http://specto.sf.net">Specto</a> release for <em>way</em> too long. See <a title="Adopt a Specto" href="http://jeff.ecchi.ca/blog/2010/10/22/adopt-a-specto/">my previous post on the matter</a> for some insights into why Specto 0.4 was released <strong>after Duke Nukem Forever</strong>. This development hell streak <a href="http://groups.google.com/group/specto/browse_thread/thread/a8a5bf6c74ace001">ends today</a>.</p>
<p><span id="more-1860"></span></p>
<p>If there are still people out there using this piece of software, go grab the <a href="http://code.google.com/p/specto/downloads/list">new tarball</a>. Distro maintainers, please package it. This release drops the python glade and gnome dependencies and fixes compatibility with NetworkManager 0.9. See the ChangeLog file for further details.</p>
<p>Thanks to Francesco Marella for some great contributions (gtkbuilder port and code cleanup) that made this possible.</p>
<p>Given that nobody came up wishing to take my place as the maintainer since my previous announcement, I decided on the following new policies (at least until a new maintainer comes up):</p>
<ul>
<li>No particular project direction? Screw this. I&#8217;ll be deciding unilaterally to do stupid things, like release 0.4 <strong><em>right now </em></strong>(with some amount of smoke testing, of course). In any case, 0.4 <em>can&#8217;t be any worse</em> than 0.3.1.</li>
<li>Anything older than the current release is unsupported. Any old bugs I can&#8217;t reproduce will be NEEDINFO&#8217;d or closed as obsolete.</li>
<li>Want new features or any major development? &#8220;<strong>Patch or it didn&#8217;t happen</strong>&#8220;. I spend most of my time hacking on <a href="http://pitivi.org">Pitivi</a> these days and can&#8217;t afford to push Specto forward unless someone comes in to help.</li>
<li>Want to get involved more seriously than a few patches here and there? Feel free to <a href="http://jeff.ecchi.ca/?e=curriculum">contact me</a>! There&#8217;s a ton of <a href="http://code.google.com/p/specto/issues/list?can=2&amp;q=status%3DAccepted%2CStarted">work to do</a>.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://jeff.ecchi.ca/blog/2011/06/23/specto-0-4-released/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=nekohayo&amp;popout=1&amp;url=http%3A%2F%2Fjeff.ecchi.ca%2Fblog%2F2011%2F06%2F23%2Fspecto-0-4-released%2F&amp;language=en_GB&amp;category=software&amp;title=Specto+0.4+released&amp;description=I%26%238217%3Bve+been+holding+off+a+Specto+release+for+way+too+long.+See+my+previous+post+on+the+matter+for+some+insights+into+why+Specto+0.4+was+released+after+Duke+Nukem...&amp;tags=blog" type="text/html" />
	</item>
		<item>
		<title>The most annoying Specto bug ever</title>
		<link>http://jeff.ecchi.ca/blog/2010/11/26/the-most-annoying-specto-bug-ever/</link>
		<comments>http://jeff.ecchi.ca/blog/2010/11/26/the-most-annoying-specto-bug-ever/#comments</comments>
		<pubDate>Fri, 26 Nov 2010 23:09:45 +0000</pubDate>
		<dc:creator>nekohayo</dc:creator>
				<category><![CDATA[Réalisations]]></category>
		<category><![CDATA[Specto]]></category>

		<guid isPermaLink="false">http://jeff.ecchi.ca/blog/?p=1699</guid>
		<description><![CDATA[There is this infamous bug in Specto where emails that are not in English would show up with messed up encoding: It is the single most infuriating bug I know in Specto, annoying me daily. Today, I spent three miserable hours &#8230; <a href="http://jeff.ecchi.ca/blog/2010/11/26/the-most-annoying-specto-bug-ever/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>There is this <a href="http://code.google.com/p/specto/issues/detail?id=302">infamous bug</a> in Specto where emails that are not in English would show up with messed up encoding:</p>
<p><span id="more-1699"></span></p>
<p><a href="http://specto.googlecode.com/issues/attachment?aid=-5784447401819479511&amp;name=Capture.png&amp;token=dbca5106d903a930bcdff2f5634d0f5e&amp;inline=1"><img class="alignnone" title="specto borked encoding" src="http://specto.googlecode.com/issues/attachment?aid=-5784447401819479511&amp;name=Capture.png&amp;token=dbca5106d903a930bcdff2f5634d0f5e&amp;inline=1" alt="" width="456" height="119" /></a></p>
<p>It is the single most infuriating bug I know in Specto, annoying me <strong>daily</strong>.</p>
<p>Today, I spent three <em>miserable</em> hours trying to fix it, and went 90% of the way towards that goal. It now correctly parses weird encoding in subject or sender lines in POP3 and IMAP:</p>
<p><img class="alignnone size-full wp-image-1700" title="specto encoding semi-fixed" src="http://jeff.ecchi.ca/blog/wp-content/uploads/specto-encoding-semi-fixed.png" alt="" width="289" height="315" /></p>
<p>&#8230;Except that it doesn&#8217;t work with <strong>GMail IMAP</strong>.</p>
<h1><em><strong>Argh.</strong></em></h1>
<p>I&#8217;m tired of this crap. The branch is <a href="https://code.launchpad.net/~kiddo/specto/fix-email-encoding">here</a>. Patches welcome.</p>
]]></content:encoded>
			<wfw:commentRss>http://jeff.ecchi.ca/blog/2010/11/26/the-most-annoying-specto-bug-ever/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=nekohayo&amp;popout=1&amp;url=http%3A%2F%2Fjeff.ecchi.ca%2Fblog%2F2010%2F11%2F26%2Fthe-most-annoying-specto-bug-ever%2F&amp;language=en_GB&amp;category=software&amp;title=The+most+annoying+Specto+bug+ever&amp;description=There+is+this+infamous+bug+in+Specto+where+emails+that+are+not+in+English+would+show+up+with+messed+up+encoding%3A+It+is+the+single+most+infuriating+bug+I+know...&amp;tags=blog" type="text/html" />
	</item>
		<item>
		<title>Adopt a Specto</title>
		<link>http://jeff.ecchi.ca/blog/2010/10/22/adopt-a-specto/</link>
		<comments>http://jeff.ecchi.ca/blog/2010/10/22/adopt-a-specto/#comments</comments>
		<pubDate>Fri, 22 Oct 2010 16:10:43 +0000</pubDate>
		<dc:creator>nekohayo</dc:creator>
				<category><![CDATA[Planet GNOME]]></category>
		<category><![CDATA[Specto]]></category>

		<guid isPermaLink="false">http://jeff.ecchi.ca/blog/?p=1645</guid>
		<description><![CDATA[As you can see I haven&#8217;t touched Specto in quite a while. I&#8217;m not going to start fixing things or implementing new features myself anytime soon. This is because: I consider Specto &#8220;good enough&#8221; and I lack the time/hacking skills &#8230; <a href="http://jeff.ecchi.ca/blog/2010/10/22/adopt-a-specto/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><a href="http://specto.sourceforge.net/i/in%20action%20-%20trans.jpg"><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright" src="http://specto.sourceforge.net/i/in%20action%20-%20trans.jpg" alt="" width="383" height="500" /></a>As you can see I haven&#8217;t touched <a href="http://specto.sf.net">Specto</a> in quite a while. I&#8217;m not going to start fixing things or implementing new features myself anytime soon.  This is because:<span id="more-1645"></span></p>
<ul>
<li>I consider Specto &#8220;good enough&#8221; and I lack the time/hacking skills to devote to it</li>
<li>I spend lots of energy on other projects such as <a href="http://www.pitivi.org">PiTiVi</a>.</li>
</ul>
<p>I think by doing so (not maintaining the project as I should be), I am doing a disservice to our users. Thus, it is better to look for another maintainer.  This is where you, dear reader(s), come in. <strong>Would you like to be owner(s) / maintainer(s) / developer(s) for this project?</strong> I spoke with Wout Clymans (my partner in crime for Specto), and he&#8217;s in the same situation as me.</p>
<p>Of course, you would not be left alone in the cold with this. New maintainers/developers will be offered guidance to get comfortable with the project and advice (as desired) regarding the direction/evolutionary path it can take (or I could still hang around indefinitely as an adviser/manager if requested).</p>
<p>I just want to see this little baby continue to grow nicely. If it means I lose some control over its direction, then so be it.</p>
<h2>What does the future look like? What kind of tasks do we have to accomplish?</h2>
<p>Here is a little list of things, off the top of my head:</p>
<ul>
<li>Review/commit some patches that have been sitting around</li>
<li>Redesign the main window and infopane; I have some specific ideas to make it more elegant and efficient</li>
<li>Fix the bugs <a href="http://code.google.com/p/specto/issues/list">listed in the bug tracker</a></li>
<li><a href="http://doc.bazaar-vcs.org/latest/en/upgrade-guide/index.html#data-migration">Upgrade</a> the bzr branch to a more recent format (2a) (shouldn&#8217;t be hard, just need to make sure it worked properly)</li>
<li>Preparing for GNOME 3
<ul>
<li>GNOME Shell integration</li>
<li>Port to GTK+ 3.0 when the relevant PyGTK versions come out</li>
<li><del datetime="2010-11-23T02:21:18+00:00">Migrate from Glade to GTKBuilder</del> Done!</li>
<li>Etc.</li>
</ul>
</li>
<li>Implement <a href="http://en.wikipedia.org/wiki/Test-driven_development">a test suite</a></li>
<li>Implement new features</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://jeff.ecchi.ca/blog/2010/10/22/adopt-a-specto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=nekohayo&amp;popout=1&amp;url=http%3A%2F%2Fjeff.ecchi.ca%2Fblog%2F2010%2F10%2F22%2Fadopt-a-specto%2F&amp;language=en_GB&amp;category=software&amp;title=Adopt+a+Specto&amp;description=As+you+can+see+I+haven%26%238217%3Bt+touched+Specto+in+quite+a+while.+I%26%238217%3Bm+not+going+to+start+fixing+things+or+implementing+new+features+myself+anytime+soon.+This+is+because%3A+I...&amp;tags=blog" type="text/html" />
	</item>
		<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>nekohayo</dc:creator>
				<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 &#8230; <a href="http://jeff.ecchi.ca/blog/2009/07/12/031-a-small-bug-fixing-release/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></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>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=nekohayo&amp;popout=1&amp;url=http%3A%2F%2Fjeff.ecchi.ca%2Fblog%2F2009%2F07%2F12%2F031-a-small-bug-fixing-release%2F&amp;language=en_GB&amp;category=software&amp;title=0.3.1%3A+a+small+bug+fixing+release&amp;description=I+just+released+Specto+0.3.1%2C+not+long+after+0.3+%28in+terms+of+commits%29%2C+after+having+addressed+some+bugs+myself.+The+changes+are+minor+and+I+don%26%238217%3Bt+expect+regressions%2C+so+it...&amp;tags=blog" type="text/html" />
	</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>nekohayo</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&#8242;s controversial notification system daemon. The ability to set notification durations is now gone, and Specto only displays actions in &#8230; <a href="http://jeff.ecchi.ca/blog/2009/03/20/notify-osd-conformance/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></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&#8242;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>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=nekohayo&amp;popout=1&amp;url=http%3A%2F%2Fjeff.ecchi.ca%2Fblog%2F2009%2F03%2F20%2Fnotify-osd-conformance%2F&amp;language=en_GB&amp;category=software&amp;title=Notify-OSD+compliance&amp;description=After+much+bikeshedding%2C+I+delved+in+Specto%26%238217%3Bs+code+for+a+few+hours+this+morning+to+get+it+working+with+Ubuntu+9.04%26%238242%3Bs+controversial+notification+system+daemon.+The+ability+to+set+notification...&amp;tags=blog" type="text/html" />
	</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>nekohayo</dc:creator>
				<category><![CDATA[Planète Ubuntu Québec]]></category>
		<category><![CDATA[Planet GNOME]]></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! &#8230; <a href="http://jeff.ecchi.ca/blog/2009/01/15/specto-03-release-candidate-1/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></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>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=nekohayo&amp;popout=1&amp;url=http%3A%2F%2Fjeff.ecchi.ca%2Fblog%2F2009%2F01%2F15%2Fspecto-03-release-candidate-1%2F&amp;language=en_GB&amp;category=software&amp;title=Specto+0.3+release+candidate+1&amp;description=Since+hell+is+freezing+over+today%2C+I%26%238217%3Bve+been+nailed+to+my+chair+to+prepare+a+new+Specto+release%2C+at+last.+Uploaded+packages%2C+checked+release+notes%2C+and+reworked+the+website.+Now%2C...&amp;tags=blog" type="text/html" />
	</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>nekohayo</dc:creator>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planète Ubuntu Québec]]></category>
		<category><![CDATA[Planet GNOME]]></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 &#8230; <a href="http://jeff.ecchi.ca/blog/2009/01/05/installfest-et-presentations-le-17-janvier/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  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>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=nekohayo&amp;popout=1&amp;url=http%3A%2F%2Fjeff.ecchi.ca%2Fblog%2F2009%2F01%2F05%2Finstallfest-et-presentations-le-17-janvier%2F&amp;language=en_GB&amp;category=software&amp;title=Installfest+et+pr%C3%A9sentations+le+17+janvier&amp;description=Le+COMiC+et+GULUM+pr%C3%A9voient+faire+un+installfest+Linux+le+17+janvier+%C3%A0+l%26%238217%3B%C3%A9cole+Polytechnique+%28Pavillon+Lassonde%2C+local+M-2101%29.+Vous+pouvez+aller+vous+inscrire+dans+la+liste+des+participants+ou...&amp;tags=blog" type="text/html" />
	</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>nekohayo</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 &#8230; <a href="http://jeff.ecchi.ca/blog/2008/12/06/improved-specto-startup-times/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></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>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=nekohayo&amp;popout=1&amp;url=http%3A%2F%2Fjeff.ecchi.ca%2Fblog%2F2008%2F12%2F06%2Fimproved-specto-startup-times%2F&amp;language=en_GB&amp;category=software&amp;title=Improved+Specto+startup+times&amp;description=After+my+post+on+profiling+Specto%26%238217%3Bs+startup%2C+Wout+Clymans+put+on+his+Hero+Hacker+Hat+and+fixed+the+major+problem+that+was+causing+Specto+to+do+too+much+work+for...&amp;tags=blog" type="text/html" />
	</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>nekohayo</dc:creator>
				<category><![CDATA[Découvertes]]></category>
		<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Planète Ubuntu Québec]]></category>
		<category><![CDATA[Planet GNOME]]></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 &#8230; <a href="http://jeff.ecchi.ca/blog/2008/11/25/profiling-specto-and-whole-python-applications-in-general/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></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>
		<atom:link rel="payment" title="Flattr this!" href="https://flattr.com/submit/auto?user_id=nekohayo&amp;popout=1&amp;url=http%3A%2F%2Fjeff.ecchi.ca%2Fblog%2F2008%2F11%2F25%2Fprofiling-specto-and-whole-python-applications-in-general%2F&amp;language=en_GB&amp;category=software&amp;title=Profiling+Specto+%28and+whole+Python+applications+in+general%29&amp;description=A+few+months+ago+%28when+we+still+thought+we+were+about+to+release+0.3+%26%238220%3Breal+soon+now%26%238221%3B+%3B%29%2C+I+noticed+that+Specto+is+noticeably+slow+to+start+up%2C+even+on...&amp;tags=blog" type="text/html" />
	</item>
	</channel>
</rss>
