<?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; Usability</title>
	<atom:link href="http://jeff.ecchi.ca/blog/category/usability/feed/" rel="self" type="application/rss+xml" />
	<link>http://jeff.ecchi.ca/blog</link>
	<description>La vie personnelle du chat</description>
	<lastBuildDate>Sun, 09 Jun 2013 02:23:00 +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>No more stuck rendering dialogs!</title>
		<link>http://jeff.ecchi.ca/blog/2013/04/28/no-more-stuck-render-dialogs/</link>
		<comments>http://jeff.ecchi.ca/blog/2013/04/28/no-more-stuck-render-dialogs/#comments</comments>
		<pubDate>Sun, 28 Apr 2013 04:19:25 +0000</pubDate>
		<dc:creator>nekohayo</dc:creator>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[PiTiVi]]></category>
		<category><![CDATA[Planet GNOME]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://jeff.ecchi.ca/blog/?p=2405</guid>
		<description><![CDATA[If you&#8217;ve tried rendering projects with Pitivi 0.15 or older, chances are you&#8217;ve encountered one of these dreadful situations where the rendering process would get stuck: &#8230;at the beginning, with the progressbar saying it&#8217;s currently &#8220;estimating&#8221; — which was a &#8230; <a href="http://jeff.ecchi.ca/blog/2013/04/28/no-more-stuck-render-dialogs/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>If you&#8217;ve tried rendering projects with Pitivi 0.15 or older, chances are you&#8217;ve encountered one of these dreadful situations where the rendering process would get stuck:<span id="more-2405"></span></p>
<ul>
<li>&#8230;at the beginning, with the progressbar saying it&#8217;s currently &#8220;estimating&#8221; — which was a lie that I <a href="https://git.gnome.org/browse/pitivi/commit/?id=df3689239">corrected</a> a little while ago.</li>
<li>&#8230;at the very end. Extra trolling points for having made you waste a huge amount of time to get a 0 bytes output file (if we&#8217;re lucky, <a href="https://bugzilla.gnome.org/show_bug.cgi?id=692316">that bug</a> is gone).</li>
<li>&#8230;somewhere in the middle, because caps negotiation failed, some elements were not linked, GStreamer thinks you ran out of available RAM, or because you&#8217;ve been very naughty.</li>
</ul>
<p>In any such case, the rendering dialog just sat there and smiled at you, as if everything was fine in the world. Well, no more:</p>
<div id="attachment_2409" class="wp-caption alignnone" style="width: 410px;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center;"><img class="size-full wp-image-2409" alt="slap" src="http://jeff.ecchi.ca/blog/wp-content/uploads/slap.jpg" width="400" height="279" /><p style=' padding: 0 4px 5px; margin: 0;'  class="wp-caption-text">Pitivi is going to give you the honest, brutal truth.</p></div>
<p>This is the result of a horrifying thought suddenly springing to my mind yesterday night: &#8220;Hey, what if the code was not even <em>checking</em> for errors in the pipeline when rendering?&#8221;</p>
<p>Indeed, it wasn&#8217;t. How silly is that! I have thus prepared a simple fix to improve the situation: catch pipeline error messages, abort the render (you really don&#8217;t want to ignore a GStreamer error) and display an error dialog. This will at least <a href="https://bugzilla.gnome.org/show_bug.cgi?id=635874">let people know that something is wrong</a> and that they should start writing patches to GStreamer instead of accusing Pitivi of hurting kittens. You&#8217;d be surprised how many people can sit for hours in front of that stuck progressbar.</p>
<p>Before I commit the fix however, I would need your feedback on the usability of that dialog:</p>
<p><img class="alignnone size-full wp-image-2406" alt="2013-04-27" src="http://jeff.ecchi.ca/blog/wp-content/uploads/2013-04-27.png" width="662" height="267" /></p>
<p>This is not terribly pretty, but it&#8217;s better than nothing. A few things to consider:</p>
<ul>
<li>In that screenshot, all the text except the window title (&#8220;Error While Rendering Project&#8221;) comes from the GStreamer pipeline error message (the error and the error&#8217;s details). I know that the error details look ugly, but I suspect it wouldn&#8217;t be useful to GStreamer/Pitivi developers if we don&#8217;t have them &#8220;verbatim&#8221;. Maybe we could try to mangle the error details string (split using &#8220;:&#8221; and take only the first and last two items of the resulting list?) and encourage the user to run from a terminal to get better debug info, but that feels a bit backwards.</li>
<li>We should probably have some less-scary text to accompany the actual error details. Something that guides the user towards an action that can be done to address the problem (ex: reporting a bug). Maybe it can be placed between the header and the details (above the &#8220;qtdemux.c&#8221; line)? The problem is finding a universal text to be used.</li>
<li>If we consider the route where we suggest the user to report bugs, where should we point to? The Pitivi bugs investigation page? Pitivi bugzilla? GStreamer bugzilla? The distro&#8217;s bug tracker?</li>
<li>Let&#8217;s keep this simple, both visually and in terms of code/implementation.</li>
</ul>
<p>What do you think? Is the current approach sufficient or is there something better that we can easily do?</p>
<p><strong>Update</strong>: here&#8217;s an alternative dialog with some more comprehensible text, where the actual error (as seen in the previous screenshot) gets shoved under the rug by putting it in a GTK expander widget (clicking &#8220;Details&#8221; reveals the error&#8217;s details as above):</p>
<p><img class="alignnone size-full wp-image-2413" alt="2013-04-29" src="http://jeff.ecchi.ca/blog/wp-content/uploads/2013-04-29.png" width="648" height="235" /></p>
]]></content:encoded>
			<wfw:commentRss>http://jeff.ecchi.ca/blog/2013/04/28/no-more-stuck-render-dialogs/feed/</wfw:commentRss>
		<slash:comments>13</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%2F04%2F28%2Fno-more-stuck-render-dialogs%2F&amp;language=en_GB&amp;category=software&amp;title=No+more+stuck+rendering+dialogs%21&amp;description=If+you%26%238217%3Bve+tried+rendering+projects+with+Pitivi+0.15+or+older%2C+chances+are+you%26%238217%3Bve+encountered+one+of+these+dreadful+situations+where+the+rendering+process+would+get+stuck%3A+%26%238230%3Bat+the+beginning%2C+with...&amp;tags=blog" type="text/html" />
	</item>
		<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>Fedora 18: now keyboard-friendly to everybody</title>
		<link>http://jeff.ecchi.ca/blog/2013/01/25/fedora-18-now-keyboard-friendly-to-everybody/</link>
		<comments>http://jeff.ecchi.ca/blog/2013/01/25/fedora-18-now-keyboard-friendly-to-everybody/#comments</comments>
		<pubDate>Fri, 25 Jan 2013 17:15:14 +0000</pubDate>
		<dc:creator>nekohayo</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet GNOME]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://jeff.ecchi.ca/blog/?p=2190</guid>
		<description><![CDATA[It is fashionable these days, especially for the Slashdot crowd, bloggers, kernel hackers and other people depending on &#8220;feature X that has not fully polished&#8221;, to throw mud at the efforts that have been made towards redesigning the Fedora Linux &#8230; <a href="http://jeff.ecchi.ca/blog/2013/01/25/fedora-18-now-keyboard-friendly-to-everybody/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>It is fashionable these days, especially for <a href="http://linux.slashdot.org/story/13/01/22/010220/fedora-18-installer-counterintuitive-and-confusing">the Slashdot crowd</a>, bloggers, <a href="https://plus.google.com/u/0/111104121194250082892/posts/aCiB7kTLXTh">kernel hackers</a> and other people depending on &#8220;feature X that has not fully polished&#8221;, to throw mud at the efforts that have been made towards redesigning the <a href="http://fedoraproject.org">Fedora Linux</a> installer.</p>
<p><span id="more-2190"></span></p>
<p><a href="http://jeff.ecchi.ca/blog/wp-content/uploads/wall-of-anaconda.jpg"><img class="alignnone size-medium wp-image-2329" title="wall of anaconda" src="http://jeff.ecchi.ca/blog/wp-content/uploads/wall-of-anaconda-500x299.jpg" alt="" width="500" height="299" /></a></p>
<p>When people trash the work you&#8217;ve been doing <a href="http://blog.linuxgrrl.com/category/fedora/anaconda/">fully in the open</a> for over a year and almost nobody stands up to defend you, you have to have <a href="http://people.gnome.org/~federico/news-2012-11.html#a-friday-rant">a really tough skin</a>. I can afford to read those articles with no ill effects because I have an emotional distance from the matter (not being closely related to the project, except in spirit), but otherwise, you have to swallow tears and quietly <a href="https://twitter.com/mairin/status/294475882381336576">breathe fire</a> in lieu of ragequitting, and continue improving your software for the next release. With the <a href="http://phoronix.com/forums/showthread.php?77039-Alan-Cox-Calls-Fedora-18-quot-The-Worst-Red-Hat-Distro-quot&amp;p=308054#post308054">side-effects on user expectations</a> from such a long development cycle, you start brainstorming <a href="http://blog.linuxgrrl.com/2013/01/22/fudcon-lawrence-overhauling-the-fedora-release-model/">ways to adapt the cycle</a> to prevent such events from occuring again.</p>
<p>And yet, I&#8217;m sure there are many who are quietly happy or optimistic about the progress being made. I, for one, would like to focus on <strong>one particular aspect where my quality of life improved significantly with the new installer</strong>. Thanks to <a href="http://fedoraproject.org/wiki/User:Duffy">one of my favorite heroines</a> and the hard work of the Anaconda team, the Fedora installer now allows you to set up your system with any keyboard layout supported by X.org. As usual, all it took was <a href="http://ploum.net/post/se-jeter-a-l-eau">a crazy belgian pirate</a> to <a href="https://plus.google.com/118165493193465533929/posts/DMQk9SHszCp">stir things up</a>.</p>
<p><a href="http://jeff.ecchi.ca/blog/wp-content/uploads/anaconda-F18-keyboard-layout.png"><img class="alignnone size-medium wp-image-2328" title="anaconda F18 keyboard layout" src="http://jeff.ecchi.ca/blog/wp-content/uploads/anaconda-F18-keyboard-layout-500x159.png" alt="" width="500" height="159" /></a></p>
<p>As I&#8217;ve been waiting for a long time for this, I appreciate the work that has been done towards this goal. I&#8217;d like to thank Máirín for the research/followup work she did on the matter to ensure we could all switch to French Canadian Dvorak for F18. Now <em>that</em> is what I call customer service :)</p>
<p>By the way, if you care about usability/UX and haven&#8217;t added <a href="http://blog.linuxgrrl.com/">Máirín&#8217;s blog</a> to your <a href="http://liferea.sf.net">feed reader</a> already, do it. <em>Do it now</em>. The posts in the Anaconda category are especially interesting for those who are willing to understand the long and elaborate design process that led to the new Fedora installer.</p>
]]></content:encoded>
			<wfw:commentRss>http://jeff.ecchi.ca/blog/2013/01/25/fedora-18-now-keyboard-friendly-to-everybody/feed/</wfw:commentRss>
		<slash:comments>19</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%2F01%2F25%2Ffedora-18-now-keyboard-friendly-to-everybody%2F&amp;language=en_GB&amp;category=software&amp;title=Fedora+18%3A+now+keyboard-friendly+to+everybody&amp;description=It+is+fashionable+these+days%2C+especially+for+the+Slashdot+crowd%2C+bloggers%2C+kernel+hackers+and+other+people+depending+on+%26%238220%3Bfeature+X+that+has+not+fully+polished%26%238221%3B%2C+to+throw+mud+at+the...&amp;tags=blog" type="text/html" />
	</item>
		<item>
		<title>Persistent tab states, render UX polish and other things</title>
		<link>http://jeff.ecchi.ca/blog/2012/11/15/persistent-tab-states-render-ux-polish-and-other-things/</link>
		<comments>http://jeff.ecchi.ca/blog/2012/11/15/persistent-tab-states-render-ux-polish-and-other-things/#comments</comments>
		<pubDate>Thu, 15 Nov 2012 15:13:03 +0000</pubDate>
		<dc:creator>nekohayo</dc:creator>
				<category><![CDATA[PiTiVi]]></category>
		<category><![CDATA[Planet GNOME]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://jeff.ecchi.ca/blog/?p=2285</guid>
		<description><![CDATA[With some help from luisbg, I finally reworked and merged a 2-years-old patch of mine. It turned out to be less trivial than expected, because we had to change the settings backend to allow loading/reading configuration files at runtime for &#8230; <a href="http://jeff.ecchi.ca/blog/2012/11/15/persistent-tab-states-render-ux-polish-and-other-things/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>With some help from luisbg, I finally reworked and merged a 2-years-old patch of mine. It turned out to be less trivial than expected, because we had to change the settings backend to allow loading/reading configuration files at runtime for our dynamically-generated tab components. So, what the heck does this mean to you? Automatically <a href="https://bugzilla.gnome.org/show_bug.cgi?id=578672">saving and restoring the state of our dynamic detachable tabs/components</a>. This is a nice improvement for those of you who want to spread the PiTiVi UI across multiple displays:</p>
<p><span id="more-2285"></span></p>
<div id="attachment_2287" class="wp-caption alignnone" style="width: 510px;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center;"><a href="http://jeff.ecchi.ca/blog/wp-content/uploads/undocked-basetabs.png"><img class="size-medium wp-image-2287" title="undocked basetabs" src="http://jeff.ecchi.ca/blog/wp-content/uploads/undocked-basetabs-500x164.png" alt="" width="500" height="164" /></a><p style=' padding: 0 4px 5px; margin: 0;'  class="wp-caption-text">In this screenshot, I used a gray gradient as a my desktop wallpaper (for simplicity)</p></div>
<p>I&#8217;m also quite happy about a very nice contribution from <strong>Elad Alfassa</strong> to polish the rendering user experience. When the window is not currently focused, we now show a notification and play a sound (when pycanberra is available—<a href="https://bugs.freedesktop.org/show_bug.cgi?id=32587">where&#8217;s my introspection</a>?) to tell you to put down that webcomic you were reading:</p>
<p><img title="2012-11-12 3" src="http://jeff.ecchi.ca/blog/wp-content/uploads/2012-11-12-3.png" alt="" width="530" height="62" /></p>
<p><img class="alignnone size-full wp-image-2293" title="2012-11-12 4" src="http://jeff.ecchi.ca/blog/wp-content/uploads/2012-11-12-4.png" alt="" width="594" height="170" /></p>
<p>&#8230;and he reused the progress dialog to allow launching playback of the resulting file in your favorite video player:</p>
<p><img title="2012-11-12 2" src="http://jeff.ecchi.ca/blog/wp-content/uploads/2012-11-12-2.png" alt="" width="500" height="220" /></p>
<p>There still is, of course, room for improvement in that progress dialog in general. I need to think about it a little bit, but feel free to offer suggestions or patches.</p>
<p>Other little things that have been fixed in Pitivi in the last few weeks:</p>
<ul>
<li>Activating (pressing the Enter key) the filename entry in the render dialog starts the render (for those who don&#8217;t care about rendering settings!)</li>
<li>The timeline toolbar is now vertical and sports a slightly improved &#8220;Split&#8221; icon. It also does away with obsolete buttons. Hopefully, better icons for (un)grouping are on the way.</li>
<li>Dogtail <a href="http://wiki.pitivi.org/wiki/Test_suite">UI tests</a> have been fixed.</li>
<li>Tests for presets were improved and cruft from old integration tests was removed (about 1400 lines of code), thanks to aleb.</li>
<li>The &#8220;contributing&#8221; page on the website has been reworked a bit to be clearer.</li>
<li>The code now passes the 1.3 version of the <a href="http://www.python.org/dev/peps/pep-0008/">PEP8</a> code style compliance checker.</li>
<li>The clip previewer now works correctly while in fullscreen mode.</li>
<li>I hear it can now be launched on FreeBSD (apparently we&#8217;ve got at least one such user :)</li>
<li>The previously mentioned <a title="Autohiding fullscreen toolbar, error dialogs and file format filtering" href="http://jeff.ecchi.ca/blog/2012/10/15/autohiding-fullscreen-toolbar-error-dialogs-and-file-format-filtering/">filtering in the import dialogs</a> has been improved to use the system mimetypes instead of file extensions.</li>
<li>The media library keeps itself sorted alphabetically as you import files (thanks to Alex Băluț), without any additional performance hit. It is possible to confuse the sorting a bit if you mix ascii filenames with japanese lolcat videos, but even a human would have trouble knowing which goes first in that situation.</li>
<li>Various improvements have been done on the build script. It tries to avoid building glib, prefers building stable releases instead of checkouts of &#8220;master&#8221; everywhere, and is generally more resilient to failures. If you still experience issues with it, patches welcome!</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://jeff.ecchi.ca/blog/2012/11/15/persistent-tab-states-render-ux-polish-and-other-things/feed/</wfw:commentRss>
		<slash:comments>12</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%2F2012%2F11%2F15%2Fpersistent-tab-states-render-ux-polish-and-other-things%2F&amp;language=en_GB&amp;category=software&amp;title=Persistent+tab+states%2C+render+UX+polish+and+other+things&amp;description=With+some+help+from+luisbg%2C+I+finally+reworked+and+merged+a+2-years-old+patch+of+mine.+It+turned+out+to+be+less+trivial+than+expected%2C+because+we+had+to+change+the...&amp;tags=blog" type="text/html" />
	</item>
		<item>
		<title>How do you visualize grouping?</title>
		<link>http://jeff.ecchi.ca/blog/2012/11/04/how-do-you-visualize-grouping/</link>
		<comments>http://jeff.ecchi.ca/blog/2012/11/04/how-do-you-visualize-grouping/#comments</comments>
		<pubDate>Sun, 04 Nov 2012 19:49:01 +0000</pubDate>
		<dc:creator>nekohayo</dc:creator>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[PiTiVi]]></category>
		<category><![CDATA[Planet GNOME]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://jeff.ecchi.ca/blog/?p=2269</guid>
		<description><![CDATA[Here&#8217;s a tricky usability question: how would you represent the actions of grouping and ungrouping clips on a timeline? (Un)grouping is used for changing the way selections affect a set of clips. It allows you, among other things, to separate &#8230; <a href="http://jeff.ecchi.ca/blog/2012/11/04/how-do-you-visualize-grouping/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Here&#8217;s a tricky usability question: how would you represent the actions of <strong>grouping</strong> and <strong>ungrouping</strong> clips on a timeline? (Un)grouping is used for changing the way selections affect a set of clips. It allows you, among other things, to separate and remove the audio from the video of a clip.</p>
<p><span id="more-2269"></span></p>
<p>It is very hard to find any relevant prior art that could guide me for this metaphor (most applications don&#8217;t have icons for these, they are only available through menu items). Inkscape can get away with icons that show &#8220;drag handles&#8221;, but we don&#8217;t have those in Pitivi. (un)grouping is quite an abstract concept, given that it does not visually change the clips in any way, it just changes the way they react to selections.</p>
<p>The last two items in the image below are the current group/ungroup icons:</p>
<p><img class="alignnone size-full wp-image-2270" title="2012 11 04 1" src="http://jeff.ecchi.ca/blog/wp-content/uploads/2012-11-04-1.png" alt="" width="42" height="148" /></p>
<p>Here is my attempt at making new ones with clearer meaning:</p>
<p><img class="alignnone size-full wp-image-2271" title="2012 11 04 2" src="http://jeff.ecchi.ca/blog/wp-content/uploads/2012-11-04-2.png" alt="" width="42" height="148" /></p>
<p>What do you think? Do you have better ideas on how to represent this?</p>
<p>Note: the icons I made are pixel-perfect, the 1px black lines above the icons are not my fault (I think). GTK seems to add some sort of shadow, probably because it expects symbolic icons in that toolbar (but I can&#8217;t imagine a way to represent clip interactions without color).</p>
]]></content:encoded>
			<wfw:commentRss>http://jeff.ecchi.ca/blog/2012/11/04/how-do-you-visualize-grouping/feed/</wfw:commentRss>
		<slash:comments>14</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%2F2012%2F11%2F04%2Fhow-do-you-visualize-grouping%2F&amp;language=en_GB&amp;category=software&amp;title=How+do+you+visualize+grouping%3F&amp;description=Here%26%238217%3Bs+a+tricky+usability+question%3A+how+would+you+represent+the+actions+of+grouping+and+ungrouping+clips+on+a+timeline%3F+%28Un%29grouping+is+used+for+changing+the+way+selections+affect+a+set...&amp;tags=blog" type="text/html" />
	</item>
		<item>
		<title>Autohiding fullscreen toolbar, error dialogs and file format filtering</title>
		<link>http://jeff.ecchi.ca/blog/2012/10/15/autohiding-fullscreen-toolbar-error-dialogs-and-file-format-filtering/</link>
		<comments>http://jeff.ecchi.ca/blog/2012/10/15/autohiding-fullscreen-toolbar-error-dialogs-and-file-format-filtering/#comments</comments>
		<pubDate>Mon, 15 Oct 2012 16:52:14 +0000</pubDate>
		<dc:creator>nekohayo</dc:creator>
				<category><![CDATA[PiTiVi]]></category>
		<category><![CDATA[Planet GNOME]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://jeff.ecchi.ca/blog/?p=2249</guid>
		<description><![CDATA[Here&#8217;s one of the reasons why I&#8217;m not exactly in a hurry to learn C. When you ask me to read through C code, this is what happens: No jokes. Even after simplifying and compacting the code, it&#8217;s still such &#8230; <a href="http://jeff.ecchi.ca/blog/2012/10/15/autohiding-fullscreen-toolbar-error-dialogs-and-file-format-filtering/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Here&#8217;s one of the reasons why I&#8217;m not exactly in a hurry to learn <a href="http://en.wikipedia.org/wiki/C_(programming_language)">C</a>. When you ask me to read through C code, this is what happens:</p>
<p><span id="more-2249"></span></p>
<p><a href="http://jeff.ecchi.ca/blog/wp-content/uploads/2012-10-09-21.54.11.jpg"><img class="alignnone size-medium wp-image-2250" title="2012-10-09--21.54.11" src="http://jeff.ecchi.ca/blog/wp-content/uploads/2012-10-09-21.54.11-500x281.jpg" alt="" width="500" height="281" /></a></p>
<p>No jokes. Even after simplifying and compacting the code, it&#8217;s still such a pain for me to navigate through C that I actually felt the need to <em>output the code onto thin slices of dead plants and stick them to a wall</em>. This piece of code that I wanted to understand for a long time suddenly became clear after a few hours of analysis with a blue &#8220;thinkpad&#8221; and ballpoint pen:</p>
<div id="attachment_2251" class="wp-caption alignnone" style="width: 510px;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center;"><a href="http://jeff.ecchi.ca/blog/wp-content/uploads/2012-10-09-23.15.02.jpg"><img class="size-medium wp-image-2251" title="2012-10-09--23.15.02" src="http://jeff.ecchi.ca/blog/wp-content/uploads/2012-10-09-23.15.02-500x281.jpg" alt="" width="500" height="281" /></a><p style=' padding: 0 4px 5px; margin: 0;'  class="wp-caption-text">And that was just reading and annotating&#8230; imagine if I actually had to write that code.</p></div>
<p>What was this code for, you ask? <a href="https://bugzilla.gnome.org/show_bug.cgi?id=603738">Making the toolbar hide nicely</a> in fullscreen mode. Thus <strong>400 lines of compacted C</strong> code to analyze from Gedit (nearly 700 if you don&#8217;t compact and just search code related to the fullscreen toolbar) became <strong>50 lines of Python</strong> code in Pitivi.</p>
<p>Okay, the fullscreen toolbar is not the <em>only</em> thing I&#8217;ve been up to lately. While cleaning up code or looking at old bug reports, I fixed some little details, such as filtering out unknown/irrelevant file types from the file chooser dialog when importing clips:</p>
<p><a href="http://jeff.ecchi.ca/blog/wp-content/uploads/pitivi-import-filtering.png"><img class="alignnone size-medium wp-image-2256" title="pitivi import filtering" src="http://jeff.ecchi.ca/blog/wp-content/uploads/pitivi-import-filtering-500x268.png" alt="" width="500" height="268" /></a></p>
<p>A combobox (defaults to &#8220;Supported file formats&#8221;) allows you to change the strictness of the filtering. The same is true of the &#8220;missing clips&#8221; file chooser. By default, we now show only files with the same extension as the one you&#8217;re looking for:</p>
<p><a href="http://jeff.ecchi.ca/blog/wp-content/uploads/pitivi-missing-files-filtering.png"><img class="alignnone size-medium wp-image-2255" title="pitivi missing files filtering" src="http://jeff.ecchi.ca/blog/wp-content/uploads/pitivi-missing-files-filtering-500x361.png" alt="" width="500" height="361" /></a></p>
<p>I also made it error out if you don&#8217;t provide the requested replacement clips, with a new error dialog to explain accordingly:</p>
<p><img class="alignnone size-full wp-image-2254" title="pitivi missing files partial project error dialog" src="http://jeff.ecchi.ca/blog/wp-content/uploads/pitivi-missing-files-partial-project-error-dialog.png" alt="" width="495" height="182" /></p>
<p>This is better than being stuck inside an infinite asynchronous loop, trust me. There are also some new error dialogs (everyone loves those) to catch some silly corner cases, such as trying to save in a read-only directory (because GTK <a href="https://bugzilla.gnome.org/show_bug.cgi?id=601451">doesn&#8217;t do it for us</a>):</p>
<p><img class="alignnone size-full wp-image-2252" title="pitivi saving to a read-only folder error dialog" src="http://jeff.ecchi.ca/blog/wp-content/uploads/pitivi-saving-to-a-read-only-folder-error-dialog.png" alt="" width="466" height="146" /></p>
<p>&#8230;And even crazier scenarios, including someone explicitely bypassing the file extension filters to try to load a movie file as if it was a project file:</p>
<p><img class="alignnone size-full wp-image-2253" title="pitivi project load error dialog" src="http://jeff.ecchi.ca/blog/wp-content/uploads/pitivi-project-load-error-dialog.png" alt="" width="642" height="164" /></p>
<p>It&#8217;s the little details that count. You can&#8217;t make something <em>too</em> bullet-proof.</p>
<p>I also progressively <strong>reworked the pitivi git environment/build script</strong> to make it smarter and friendlier. Not only does it allow you to continue where you interrupted the checkouts/builds, but it has a built-in debugging duck:</p>
<p><img class="alignnone size-full wp-image-2257" title="pitivi-git-env" src="http://jeff.ecchi.ca/blog/wp-content/uploads/pitivi-git-env.png" alt="" width="831" height="507" /></p>
<p><em>&#8220;What, that&#8217;s it? Don&#8217;t you have more exciting stuff to show?&#8221;</em></p>
<p>Well, it turns out that Pitivi itself is pretty much ready*, it&#8217;s in very good shape. What&#8217;s preventing a release is the need for GNonLin (and after that, GES) to be fixed, and there&#8217;s nothing I can personally do about that (except testing and mentoring interested contributors). So if reading and writing C does not require you to stick pieces of dead plants onto walls, come talk to us!</p>
<p>*: except if we embark on the project of refactoring and porting the whole timeline UI to Clutter&#8230; Oh, and we need someone to fix undo &amp; redo after that&#8230; And expand <a href="http://wiki.pitivi.org/wiki/Test_suite">our test suite</a>&#8230; And improve our title editor UI&#8230; And update the user manual/documentation&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://jeff.ecchi.ca/blog/2012/10/15/autohiding-fullscreen-toolbar-error-dialogs-and-file-format-filtering/feed/</wfw:commentRss>
		<slash:comments>13</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%2F2012%2F10%2F15%2Fautohiding-fullscreen-toolbar-error-dialogs-and-file-format-filtering%2F&amp;language=en_GB&amp;category=software&amp;title=Autohiding+fullscreen+toolbar%2C+error+dialogs+and+file+format+filtering&amp;description=Here%26%238217%3Bs+one+of+the+reasons+why+I%26%238217%3Bm+not+exactly+in+a+hurry+to+learn+C.+When+you+ask+me+to+read+through+C+code%2C+this+is+what+happens%3A+No+jokes....&amp;tags=blog" type="text/html" />
	</item>
		<item>
		<title>Restoring from backups</title>
		<link>http://jeff.ecchi.ca/blog/2012/01/25/restoring-from-backups/</link>
		<comments>http://jeff.ecchi.ca/blog/2012/01/25/restoring-from-backups/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 11:49:03 +0000</pubDate>
		<dc:creator>nekohayo</dc:creator>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[PiTiVi]]></category>
		<category><![CDATA[Planet GNOME]]></category>
		<category><![CDATA[Réalisations]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://jeff.ecchi.ca/blog/?p=2018</guid>
		<description><![CDATA[I&#8217;m currently in Málaga for the GStreamer hackfest. Hopefully, many bugs will perish. In the meantime, here&#8217;s a quick status update of stuff I&#8217;ve been doing in recent times in Pitivi. Cleanup the code for gtk actions so that the code &#8230; <a href="http://jeff.ecchi.ca/blog/2012/01/25/restoring-from-backups/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>I&#8217;m currently in Málaga for the GStreamer hackfest. Hopefully, many bugs will perish. In the meantime, here&#8217;s a quick status update of stuff I&#8217;ve been doing in recent times in Pitivi.<span id="more-2018"></span></p>
<ul>
<li>Cleanup the code for gtk actions so that the code is more readable and robust, fixing <a href="https://bugzilla.gnome.org/show_bug.cgi?id=629208">629208</a> in the process.</li>
<li>Cleanup the menus (again).</li>
<li>Avoid having the viewer eating the CPU while idle.</li>
<li>Fix various problems such as &#8220;Select unused clips&#8221; not working in treeview mode or reimplement removing all timeline instances of a clip when removing it from the media library.</li>
<li>With the help of Brian Grohe, merge and delete spam user accounts on the wiki. I only have to fix image uploads and the https certificate issue now.</li>
<li>Start fixing <a href="https://bugzilla.gnome.org/show_bug.cgi?id=629855">629855</a>; see below for details.</li>
</ul>
<p>It turns out that pitivi was secretly writing autosave/backups of your project files (and deleted them when successfully saving/closing), but it did not actually <em>use</em> them. You&#8217;d have to know they exist, when they exist and where to find them, which is hardly intuitive.</p>
<p>So, I set out to fix this. Along the way, I ended up <a href="https://bugzilla.gnome.org/show_bug.cgi?id=608108">making the &#8220;unsaved changes&#8221; dialog more helpful</a>. This is the result:</p>
<p><img class="alignnone size-full wp-image-2019" title="2012-01-22 18:53:46" src="http://jeff.ecchi.ca/blog/wp-content/uploads/2012-01-22-185346.png" alt="" width="499" height="153" /></p>
<p>Then I worked on the actual dialog to prompt the user about the existence of an autosaved project file. It uses uses the same mind-blowing human-readable time formatting nekohayan technology, as you can see in the various following scenarios:</p>
<p><img class="alignnone size-full wp-image-2020" title="2012-01-22 17:59:32" src="http://jeff.ecchi.ca/blog/wp-content/uploads/2012-01-22-175932.png" alt="" width="455" height="164" /></p>
<p><img class="alignnone size-full wp-image-2021" title="2012-01-22 17:49:04" src="http://jeff.ecchi.ca/blog/wp-content/uploads/2012-01-22-174904.png" alt="" width="455" height="164" /></p>
<p><img class="alignnone size-full wp-image-2022" title="2012-01-22 17:48:50" src="http://jeff.ecchi.ca/blog/wp-content/uploads/2012-01-22-174850.png" alt="" width="455" height="164" /></p>
<p>If you ignore the backup file, it will obviously be deleted when you cleanly save/close the project.</p>
<p>The big question is however, <strong>what we should do if the user selects to restore from backup</strong>:</p>
<ul>
<li>Should we simply rename the backup file to overwrite the &#8220;old&#8221; project file and then load it? This would mean the &#8220;old&#8221; project would be lost. In <em>theory</em> nothing should go wrong with that&#8230;</li>
<li>If we want to be paranoid perhaps we could load the backup file as a temporary file and force the user to use &#8220;Save as&#8221; instead of a regular Save, but I&#8217;m not sure if that&#8217;s what users need. Thoughts welcome on this one, but I&#8217;d really like to have a simple solution.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://jeff.ecchi.ca/blog/2012/01/25/restoring-from-backups/feed/</wfw:commentRss>
		<slash:comments>9</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%2F2012%2F01%2F25%2Frestoring-from-backups%2F&amp;language=en_GB&amp;category=software&amp;title=Restoring+from+backups&amp;description=I%26%238217%3Bm+currently+in%C2%A0M%C3%A1laga+for+the+GStreamer+hackfest.+Hopefully%2C+many+bugs+will+perish.+In+the+meantime%2C+here%26%238217%3Bs+a+quick+status+update+of+stuff+I%26%238217%3Bve+been+doing+in+recent+times+in+Pitivi....&amp;tags=blog" type="text/html" />
	</item>
		<item>
		<title>Naming schemes</title>
		<link>http://jeff.ecchi.ca/blog/2011/11/13/dconf-naming-schemes/</link>
		<comments>http://jeff.ecchi.ca/blog/2011/11/13/dconf-naming-schemes/#comments</comments>
		<pubDate>Sun, 13 Nov 2011 14:13:49 +0000</pubDate>
		<dc:creator>nekohayo</dc:creator>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Planet GNOME]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://jeff.ecchi.ca/blog/?p=1979</guid>
		<description><![CDATA[A question has been bugging me for some time: what&#8217;s the reasoning behind the dconf hierarchy/naming scheme as can be seen in dconf-editor? org.gnome.*, org.gtk.*, ca.desrt.*, org.freedesktop.* &#8230; okay, I get that those are meant to look like reversed URLs, &#8230; <a href="http://jeff.ecchi.ca/blog/2011/11/13/dconf-naming-schemes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><a href="http://jeff.ecchi.ca/blog/wp-content/uploads/dconf-editor.png"><img style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="size-medium wp-image-1980 alignright" title="dconf editor" src="http://jeff.ecchi.ca/blog/wp-content/uploads/dconf-editor-300x260.png" alt="" width="300" height="260" /></a> A question has been bugging me for some time: what&#8217;s the reasoning behind the dconf hierarchy/naming scheme as can be seen in dconf-editor?</p>
<p><span id="more-1979"></span></p>
<p><em>org.gnome.*, org.gtk.*, ca.desrt.*, org.freedesktop.* &#8230;</em> okay, I get that those are meant to look like reversed URLs, that part makes sense&#8230; but not as much when you have<em> desktop.gnome.*, desktop.gstreamer.*, apps.*, a11y.*</em></p>
<p>Here comes the  fun part:</p>
<ul>
<li>Why is gnome-shell in &#8220;apps&#8221; but not in &#8220;org.gnome&#8221; like most of the other core apps? &#8230;oh wait yes it <em>is also</em> there, but this time it&#8217;s named &#8220;shell&#8221;!</li>
<li>Why are &#8220;proxy&#8221;, &#8220;smb&#8221;, &#8220;webkitgtk&#8221; and such present in &#8220;system&#8221; whereas &#8220;power-manager&#8221;, &#8220;packagekit&#8221;, &#8220;login-screen&#8221;, &#8220;bluetooth&#8221;, &#8220;screensaver&#8221; are not?</li>
<li>org.gnome.desktop.a11y exists (just to complement the toplevel &#8220;a11y&#8221; tree, you know), just as org.gnome.desktop exists to complement desktop.gnome</li>
<li>Etc.</li>
</ul>
<p><img class="alignnone size-full wp-image-1981" title="Hangover headache cat" src="http://jeff.ecchi.ca/blog/wp-content/uploads/Hangover-headache-cat.jpg" alt="Getting a headache while writing this blog post" width="500" height="360" /></p>
<p>Where is the consistency and how are users <em>and</em> developers expected to know where to find what? I must be missing something (except aspirin)&#8230; please enlighten me.</p>
<p>The fact that you would <a href="https://bugzilla.gnome.org/show_bug.cgi?id=647112">need</a> a search interface is a bad sign. Just <em>try</em> to find how to reset your font settings in less than two minutes and twenty clicks, <em>I dare you</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://jeff.ecchi.ca/blog/2011/11/13/dconf-naming-schemes/feed/</wfw:commentRss>
		<slash:comments>15</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%2F11%2F13%2Fdconf-naming-schemes%2F&amp;language=en_GB&amp;category=software&amp;title=Naming+schemes&amp;description=A+question+has+been+bugging+me+for+some+time%3A+what%26%238217%3Bs+the+reasoning+behind+the+dconf+hierarchy%2Fnaming+scheme+as+can+be+seen+in+dconf-editor%3F+org.gnome.%2A%2C+org.gtk.%2A%2C+ca.desrt.%2A%2C+org.freedesktop.%2A+%26%238230%3B+okay%2C+I...&amp;tags=blog" type="text/html" />
	</item>
		<item>
		<title>Pitivi&#8217;s startup time</title>
		<link>http://jeff.ecchi.ca/blog/2011/09/14/pitivis-startup-time/</link>
		<comments>http://jeff.ecchi.ca/blog/2011/09/14/pitivis-startup-time/#comments</comments>
		<pubDate>Wed, 14 Sep 2011 19:47:42 +0000</pubDate>
		<dc:creator>nekohayo</dc:creator>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[PiTiVi]]></category>
		<category><![CDATA[Planet GNOME]]></category>
		<category><![CDATA[Réalisations]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://jeff.ecchi.ca/blog/?p=1953</guid>
		<description><![CDATA[So, since it seems everybody&#8217;s been talking about startup time these days, I&#8217;ll admit I tend to secretly obsess over that too. Well, it&#8217;s not so secret given that I&#8217;ve blogged about profiling work on Specto and PiTiVi before&#8230; anyway. &#8230; <a href="http://jeff.ecchi.ca/blog/2011/09/14/pitivis-startup-time/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>So, since it seems everybody&#8217;s been talking about startup time these days, I&#8217;ll admit I tend to secretly obsess over that too. Well, it&#8217;s not so secret given that I&#8217;ve blogged about profiling work on Specto and PiTiVi before&#8230; anyway.</p>
<p><span id="more-1953"></span></p>
<p>I believe you should provide your developers with the fastest computers to do the development, and five years old computers to do the testing. I therefore do my benchmarks on three computers:</p>
<ul>
<li><strong>Kusanagi</strong>, my most powerful computer, equipped with a solid state drive and a Core2 Quad processor, 4 GB of RAM</li>
<li><strong>Kuze</strong>, a six years old Thinkpad T43p, with a conventional IDE hard drive and a Pentium M processor (single core), 2 GB of RAM</li>
<li><strong>Krimson</strong>, a modern laptop from 2009, with a conventional SATA hard drive and a &#8220;Pentium&#8221; SU4100 (dual core) processor, 3 GB of RAM</li>
</ul>
<p>I won&#8217;t bore you with the details/show you my wall of numbers and measurements, I&#8217;ll summarize everything by this pretty graph comparing before/after:</p>
<p><img class="alignnone size-full wp-image-1954" title="pitivi 0.14.91 startup times" src="http://jeff.ecchi.ca/blog/wp-content/uploads/pitivi-0.14.91-startup-times.png" alt="" width="500" height="364" /></p>
<p>Startup times (in seconds, until the user interface shows up) were measured with a stopwatch, so expect a margin of error of 0.3-0.5 seconds, but my measurements are pretty reliable (having done them multiple times).</p>
<p>Cold startup times are done by flushing the kernel caches (echo 3 &gt; /proc/sys/vm/drop_caches).</p>
<p>I thought <a href="http://blogs.gnome.org/otte/2011/09/13/on-application-startup-time-why-do-we-have-it-anyway/">Benjamin&#8217;s idea</a> of launching gnome-control-center afterwards (to simulate real-world cold startup times) was clever, and so I re-ran all my benchmarks with it. I&#8217;ll refer to those as &#8220;lukewarm&#8221; startup times (maybe someday I&#8217;ll be known as the guy who was crazy enough to coin that term). I do think the best indicator of real-world &#8220;frustration-inducing&#8221; startup times would probably be the &#8220;lukewarm&#8221; values (rather than an absolute cold start or a warm start).</p>
<p>In the 0.14.91 pitivi pre-release, we shaved off roughly 2 seconds of startup time compared to 0.14 (thanks to Alexandru&#8217;s hard work). As you can see, there&#8217;s still room for improvement, but optimizing the startup times of a complex application with many checks and dependencies is <strong>hard</strong>.</p>
<p>I willingly left some data out (from experimental optimization branches and such) to keep things simple (and accumulated gains of 0.3 seconds don&#8217;t make that much of a difference at this stage), but I&#8217;m guessing that one of the culprits is the fact that we do <a href="http://git.pitivi.org/?p=pitivi.git;a=blob;f=pitivi/check.py;h=dde62a6f91d129e556ecb3b240599878e3986966;hb=HEAD">a lot of stuff</a> in pitivi/check.py on startup (disabling checks entirely, on <em>Kuze</em>, shaves off 4 seconds cold/lukewarm and 1 second warm). The thing is, those checks are necessary to ensure that pitivi has at least the minimum to actually work properly (though maybe some of those checks could be reevaluated)&#8230; and what is the point of showing the user interface quickly if you can&#8217;t actually run the app because you don&#8217;t have cairo, the proper version of gtk, goocanvas, gnonlin, and so on?</p>
<p>One could argue that we should simply show the main window, then run the checks and present the user with a dialog listing everything that&#8217;s wrong&#8230; but how is the user experience expected to be in that case?</p>
<p>But check.py may not be the only thing. We may be doing something really stupid. Take a look at <a href="https://bugzilla.gnome.org/show_bug.cgi?id=656332">my bug report</a> and help us investigate this. I have a nice cProfile output with its <a href="https://bugzilla.gnome.org/attachment.cgi?id=196533">pretty graph</a> telling you where most of the time is spent during startup.</p>
]]></content:encoded>
			<wfw:commentRss>http://jeff.ecchi.ca/blog/2011/09/14/pitivis-startup-time/feed/</wfw:commentRss>
		<slash:comments>8</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%2F09%2F14%2Fpitivis-startup-time%2F&amp;language=en_GB&amp;category=software&amp;title=Pitivi%26%238217%3Bs+startup+time&amp;description=So%2C+since+it+seems+everybody%26%238217%3Bs+been+talking+about+startup+time+these+days%2C+I%26%238217%3Bll+admit+I+tend+to+secretly+obsess+over+that+too.+Well%2C+it%26%238217%3Bs+not+so+secret+given+that+I%26%238217%3Bve...&amp;tags=blog" type="text/html" />
	</item>
		<item>
		<title>Improving GNOME PackageKit on big screens</title>
		<link>http://jeff.ecchi.ca/blog/2011/08/16/improving-gnome-packagekit-on-big-screens/</link>
		<comments>http://jeff.ecchi.ca/blog/2011/08/16/improving-gnome-packagekit-on-big-screens/#comments</comments>
		<pubDate>Tue, 16 Aug 2011 16:07:02 +0000</pubDate>
		<dc:creator>nekohayo</dc:creator>
				<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Planet GNOME]]></category>
		<category><![CDATA[Réalisations]]></category>
		<category><![CDATA[Usability]]></category>

		<guid isPermaLink="false">http://jeff.ecchi.ca/blog/?p=1939</guid>
		<description><![CDATA[In the same vein as my don&#8217;t make me scroll post, I sent a couple of patches Richardwards to, among other things, solve one of the biggest itches I had with gpk: the fact that I had to care about &#8230; <a href="http://jeff.ecchi.ca/blog/2011/08/16/improving-gnome-packagekit-on-big-screens/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>In the same vein as my <a title="Don’t make me scroll" href="http://jeff.ecchi.ca/blog/2011/06/24/dont-make-me-scroll/">don&#8217;t make me scroll</a> post, I sent a couple of patches <em>Richardwards</em> to, among other things, solve one of the biggest itches I had with gpk: the fact that I had to care about sizing it up constantly on my 1920&#215;1200 24&#8243; monitor. Before, if you started gpk-application (or the update manager, or various other windows), it showed up like this:</p>
<p><span id="more-1939"></span></p>
<p><a href="http://jeff.ecchi.ca/blog/wp-content/uploads/gpk-1.png"><img class="alignnone size-large wp-image-1940" title="gpk 1" src="http://jeff.ecchi.ca/blog/wp-content/uploads/gpk-1-1024x640.png" alt="" width="584" height="365" /></a></p>
<p>Now, it shows up like this, finally making use of your screen&#8217;s vertical space:</p>
<p><a href="http://jeff.ecchi.ca/blog/wp-content/uploads/gpk-2.png"><img class="alignnone size-large wp-image-1941" title="gpk 2" src="http://jeff.ecchi.ca/blog/wp-content/uploads/gpk-2-1024x640.png" alt="" width="584" height="365" /></a></p>
<p>Also, Richard has made my day when I suggested that the version numbers be a little bit less prominent in package lists (to reduce visual noise) and he <a href="http://git.gnome.org/browse/gnome-packagekit/commit/?id=6f697a2cca6dcffbe63cd3e29861f66db259181a">Just Friggin Did It™</a>. Thanks!</p>
]]></content:encoded>
			<wfw:commentRss>http://jeff.ecchi.ca/blog/2011/08/16/improving-gnome-packagekit-on-big-screens/feed/</wfw:commentRss>
		<slash:comments>9</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%2F08%2F16%2Fimproving-gnome-packagekit-on-big-screens%2F&amp;language=en_GB&amp;category=software&amp;title=Improving+GNOME+PackageKit+on+big+screens&amp;description=In+the+same+vein+as+my+don%26%238217%3Bt+make+me+scroll+post%2C+I+sent+a+couple+of+patches+Richardwards+to%2C+among+other+things%2C+solve+one+of+the+biggest+itches+I+had...&amp;tags=blog" type="text/html" />
	</item>
	</channel>
</rss>
