<?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>Late Night Thoughts on Listening to Mahler’s Ninth Symphony</title>
	<atom:link href="http://matej.ceplovi.cz/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://matej.ceplovi.cz/blog</link>
	<description>My small megaphone …</description>
	<lastBuildDate>Sun, 05 Feb 2012 00:18:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Fifth sentence meme</title>
		<link>http://matej.ceplovi.cz/blog/2012/02/fifth-sentence-meme/</link>
		<comments>http://matej.ceplovi.cz/blog/2012/02/fifth-sentence-meme/#comments</comments>
		<pubDate>Sun, 05 Feb 2012 00:18:46 +0000</pubDate>
		<dc:creator>matej</dc:creator>
				<category><![CDATA[computer]]></category>

		<guid isPermaLink="false">http://matej.ceplovi.cz/blog/?p=313</guid>
		<description><![CDATA[This is very retro, but I like the idea. From Norman Walsh’s blog: “Grab the nearest book, open it to page 23, find the 5th sentence, and post its text along with these instructions. Point back to where you got &#8230; <a href="http://matej.ceplovi.cz/blog/2012/02/fifth-sentence-meme/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This is <strong>very</strong> retro, but I like the idea. From <a href="http://norman.walsh.name/2004/04/27/random">Norman Walsh’s blog</a>:</p>
<blockquote><p>“Grab the nearest book, open it to page 23, find the 5th sentence, and post its text along with these instructions. Point back to where you got the idea so that we can follow the threads.”</p>
</blockquote>
<p>So, I did and funny things, the nearest book was Bible (honestly!). So, it is <cite lang="cs_CZ">“Připravil jim hostinu, dal napéci nekvašené chleby a pojedli.”</cite> For those who don’t understand my beautiful native language, it is Genesis 19:3, which is in NASB translation: <cite>“[…] he prepared a feast for them, and baked unleavened bread, and they ate.”</cite> Nice text, thinking about it. I am getting hungry.</p>
]]></content:encoded>
			<wfw:commentRss>http://matej.ceplovi.cz/blog/2012/02/fifth-sentence-meme/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>We are shocked, shocked &#8230; !</title>
		<link>http://matej.ceplovi.cz/blog/2012/01/we-are-shocked-shocked/</link>
		<comments>http://matej.ceplovi.cz/blog/2012/01/we-are-shocked-shocked/#comments</comments>
		<pubDate>Mon, 30 Jan 2012 08:35:04 +0000</pubDate>
		<dc:creator>matej</dc:creator>
				<category><![CDATA[culture]]></category>

		<guid isPermaLink="false">http://matej.ceplovi.cz/blog/?p=305</guid>
		<description><![CDATA[I was listening to my regular dose of This American Life, this time about the possible breakup of the European continent. It made me to remember on the early 2000s, and what we were thinking then. I remembered all those &#8230; <a href="http://matej.ceplovi.cz/blog/2012/01/we-are-shocked-shocked/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I was listening to my regular dose of <a href="http://www.thisamericanlife.org/">This American Life</a>, this time about <a href="http://www.thisamericanlife.org/radio-archives/episode/455/continental-breakup">the possible breakup of the European continent</a>. It made me to remember on the early 2000s, and what we were thinking then. I remembered all those news stories about Italian government “suddenly” getting its debt under control, which nobody believed (<a href="http://en.wikipedia.org/wiki/La_piovra">La Piovra</a> anybody?). What were we thinking? And I remember well, what I was thinking. That European (mainly German) economy is strong enough to carry one crazy Greece to get among truly developed countries, and perhaps if we get couple of years to Italians they will get into shape as well. Thinking about it from this point of view, it was very expected that all those southern countries would be very much in debt currently, because all those debts should cover investments (yes, of course, some of them silly, like an international airport in La Mancha) which would need some time to bring money back. But then 2008 crisis happened, and all I could think was the Captain Louis Renault from Casablanca: “<a href="http://www.youtube.com/watch?v=j5E3CSizTNQ">I am shocked, shocked, to find out that the gambling is going on in here!</a>” And no, I don’t think I am shocked by this hypocrisy. When one gets into gambling in the Nazi occupied country, or into this amount of debt (and yes, swindling books) he gets knowingly into danger that somebody gets shocked and let him down to save his own neck. But it certainly makes me less shocked now.</p>
]]></content:encoded>
			<wfw:commentRss>http://matej.ceplovi.cz/blog/2012/01/we-are-shocked-shocked/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Routine and the real world</title>
		<link>http://matej.ceplovi.cz/blog/2011/12/routine-and-the-real-world/</link>
		<comments>http://matej.ceplovi.cz/blog/2011/12/routine-and-the-real-world/#comments</comments>
		<pubDate>Mon, 19 Dec 2011 16:09:21 +0000</pubDate>
		<dc:creator>matej</dc:creator>
				<category><![CDATA[computer]]></category>
		<category><![CDATA[culture]]></category>
		<category><![CDATA[faith]]></category>

		<guid isPermaLink="false">http://matej.ceplovi.cz/blog/?p=292</guid>
		<description><![CDATA[Our former president, Mr. Václav Havel, died yesterday. A congregation where we are members organized yesterday a benefit concert for the relief of the hunger in the Horn of Africa. Our pastor, being American, immediately asked me and two other &#8230; <a href="http://matej.ceplovi.cz/blog/2011/12/routine-and-the-real-world/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Our former president, Mr. Václav Havel, died yesterday.</p>
<p>A <a href="http://www.praguefellowship.cz/">congregation where we are members</a> organized yesterday a benefit concert for the relief of <a href="http://www.30hourfamine.org/en/hunger/where-were-fighting-hunger/country-horn-of-africa">the hunger in the Horn of Africa</a>. Our pastor, being American, immediately asked me and two other Czech members of the congregation before the concert, whether he shouldn’t say something about Mr. Havel. We somehow stood there helpless and in the end we didn’t do anything special (as far as I know). Then we Czechs were kind of ashamed how we don’t have a proper procedure for case of death of beloved politician. It happened so rarely in this land <img src='http://luther.ceplovi.cz/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> .</p>
<p>I was thinking whole day how to continue in this post. I was thinking a lot about how everybody ignores in my opinion the most relevant message of Mr. Havel for us, which is the life in truth (and thinking about some comparison with the over-celebrated life of virtual hero Steve Jobbs), how our virtual life we all live is so different from <a href="http://en.wikipedia.org/wiki/Jan_Pato%C4%8Dka">the Lebenswelt</a>. However, I was struggling to find a proper formulation and never written anything.</p>
<p>Then I looked at <a href="http://www.cnn.com">CNN</a> page for some inspiration and found this:</p>
<p><a href="http://luther.ceplovi.cz/blog/wp-content/uploads/2011/12/cnn.png"><img src="http://luther.ceplovi.cz/blog/wp-content/uploads/2011/12/cnn-1024x604.png" alt="" title="The biggest homage to the absurd theater ... " width="640" height="377" class="aligncenter size-large wp-image-293" /></a></p>
<p>I think the idea of report about Mr. Havel’s being completely encircled by the reports of the death of Kim Jong Il would fit well into some of his best dramas.</p>
<p>Thank you Mr. Havel.</p>
]]></content:encoded>
			<wfw:commentRss>http://matej.ceplovi.cz/blog/2011/12/routine-and-the-real-world/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Letter to my successors (or what do I know about the Xorg bug triage)</title>
		<link>http://matej.ceplovi.cz/blog/2011/11/letter-to-my-successors-or-what-do-i-know-about-the-xorg-bug-triage/</link>
		<comments>http://matej.ceplovi.cz/blog/2011/11/letter-to-my-successors-or-what-do-i-know-about-the-xorg-bug-triage/#comments</comments>
		<pubDate>Tue, 22 Nov 2011 14:28:36 +0000</pubDate>
		<dc:creator>matej</dc:creator>
				<category><![CDATA[bugTriage]]></category>
		<category><![CDATA[computer]]></category>

		<guid isPermaLink="false">http://matej.ceplovi.cz/blog/?p=263</guid>
		<description><![CDATA[For various reasons we have agreed with my supervisor, that my working on the Xorg bug triage as a full time job will be terminated (feels like a relief) and I will switch to working as a programmer for the &#8230; <a href="http://matej.ceplovi.cz/blog/2011/11/letter-to-my-successors-or-what-do-i-know-about-the-xorg-bug-triage/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>For various reasons we have agreed with my supervisor, that my working on the Xorg bug triage as a full time job will be terminated (feels like a relief) and I will switch to working as a programmer for the Red Hat internal Desktop QA team (which is a good thing!). As the last act in my old position I was asked to write down brain dump of my experience working on the Xorg bug triage for my potential successors. I am trying also to pay some debts I feel I have in documenting some parts of my bug triage workflow and tools.</p>
<p>First of all, it is not like there isn&#8217;t any information available already. We as a BugZappers team tried to collect as much information as possible so anybody who would like to join our ranks would have something to chew upon without us repeating it again and again. So, there is <a href="https://fedoraproject.org/wiki/BugZappers/How_to_Triage">How to Triage</a> page and other pages coming from <a href="https://fedoraproject.org/wiki/BugZappers">this navigation page</a> (e.g., you are expected to know <a href="https://fedoraproject.org/wiki/BugZappers/BugStatusWorkFlow">bug workflow</a> by heart if drawn in the midnight from your bad).</p>
<h2>Queries</h2>
<p>Probably the most important thing which can help you to survive a terror of the never-ending inflow of new bugs are well prepared queries. Red Hat Bugzilla (or any other bugzilla for that matter, as far as I know), doesn&#8217;t have a really good way to create coarser (or finer) organization of bugs than on the level of components and products. The situation is especially bad, because products are occupied by, well, products (like Fedora, RHEL, etc.), so in fact the only classification of bugs we have is on the basis of components. Which is obviously crazy huge group of bugs for some components (kernel) and too little for many others. Other options (using keywords in whiteboards, for example) requires much manual additional work (although we use it as well, see below for Xorg bugs categories).</p>
<p>The only way I found how to make dissecting bugs in useful ways possible is by using queries. It is normal state of things for me to have more than 50 defined queries in the bottom of my bugzilla pages. As an example (and possibly foundation of your further development) I could present you <a href="https://bugzilla.redhat.com/buglist.cgi?cmdtype=dorem&#038;remaction=run&#038;namedcmd=all%20NEW&#038;sharer_id=74116">this search</a>. Notice that it selects just some components of bugs (using a regular expression), eliminates bugs with needinfo flag set (which is thus a very important variable to care for), and eliminates already Triaged bugs. Of course, this is just a basic search which can be further narrowed by selecting only bugs in some states (although bug triagers deal mostly with NEW bugs), bugs changed in the recent time (when the time is short, it is probably better to deal with the active bugs, not stale ones), bugs for some versions of products, etc.</p>
<h2>Firefox addon</h2>
<p>Although there has been concerned spent lately on making bugzilla work better for developers, it is still true that its user interface is (if for anybody) optimized for users and so there is little help for avoiding repetitive work. In order to make my work with bugzilla more palatable, I have created a Firefox addon which provides tools for mechanizing a lot of stereotypic work. For example, reporters in the Red Hat bugzilla have no meaningful guidance when filing Xorg bugs, so many filed bugs are lacking logs and other information which is required for developers to effectively diagnose the issue. Actually, making sure that all this information is provided is the main task of Xorg bug triage (where normal other tasks of bug triage, e.g., deduplication and testing reproducers is hardly possible or completely impossible given the limits on available hardware and knowledge of the code itself).</p>
<p>Back to the firefox addon. The main functionality has been described on this blog, so just in the way of summary. The main point which you need to understand is that almost all functionality can be controlled and substantially changed by editing a JSON file which is loaded on the startup of the addon. Per default it is <a href="https://fedorahosted.org/released/bugzilla-triage-scripts/Config_data.json">this JSON</a>, but clicking on “Triage configuration” link you can enter URL of any JSON file anywhere on the Internet. All possible options are switched on in <a href="http://matej.ceplovi.cz/progs/data/RH_Data-packages.json">my JSON</a>, which can be used as an example for developing of your own file. Let me go through the main options available in such file.</p>
<p>Most famous and probably still most used are buttons filling standardized comments. That&#8217;s the biggest parts of JSON file in the object (using Javascript terminology) commentPackages. The name evokes that there are multiple packages which can be switched on for particular bugzillas (one bug triager can certainly work on multiple bugzilla instances &#8230; see configData.enabledPackages for examples how to switch on some packages for particular bugzillas). Each packages contains multiple objects one for each button which looks like this:</p>
<pre>"addnoresponse": {
           "name": "NoRespns",
           "position": "topRow",
           "commentIdx": "noResponseString",
           "markTriaged": true,
           "status": "CLOSED",
           "resolution": "INSUFFICIENT_DATA"
      },</pre>
<p>Each object has its own one-word name, which serves as an index and id for the button itself. Each object is best understood as a package of commands which will be executed when the button is pressed. Some of these “commands” actually don’t are not commands but metadata (&#8220;name&#8221; contains the label on the button, &#8220;position&#8221; shows to the addon where the button should be located), but most of them actually do something. So in this example, “commentIdx” points to the comment string in “commentString” section of the JSON file. For shorter comment texts, button package can contain directly “comment” property with the text itself. Either of these texts can be included in the comment. “markTriaged” will obviously make all necessary steps to make bug triaged, and the remaining two commands will close the bug. “position” deserves a little bit special treatment. It can be either “topRow” or “bottomRow” which means that the button will be inserted into the row of buttons above or below the comment box respectively. “position” property can also contain the ID of the element after or before which the button should be included (such string starts with “+” or “-” before the ID string). So for example, “addexternalbugid” package contains <code>"position": "+external_bugs_headline",</code> which means that the button should follow HTML element with “external_bugs_headline” ID.</p>
<p>After “commentPackages” and “commentStrings” sections, the next one is “configData” which is a collection of various configuration options. I have in my JSON file almost all of possible ones on. I will return to this configuration section in a minute, but now let me just the mention the last section “constantData” which contains various constants for Xorg bug triagers, and which you should probably just take for your JSON.</p>
<p>Back to the “configData” section. The biggest object (at least in my file) is “killNodes” which is an object which for each bugzilla instance where the triager is supposed to work lists IDs of all elements you would like to remove from the page (some people especially from Mozilla complained that there is just too much stuff on every page, so that for some people the bugzilla is almost useless, but I had to admit I used it well even with bugzilla.redhat.com). “downloadJSON” contains URLs for additional data files which can be loaded for data which are just too big to be included into “constantData” section (take a look at <a href="http://matej.ceplovi.cz/progs/data/chipNames.json">that file</a>). “suspiciousComponents” is for situations when reporters continuously file bugs into components which are there just for legacy or organizational reasons (<code>xorg-x11</code> and <code>xorg-x11-drivers</code>). The last is set of couple of Booleans, which directly allow some features of the addon, which are usually not useful for “normal” bug triagers, but were useful for me:</p>
<dl>
<dt>parseAbrtBacktraces</dt>
<dd>This is mostly legacy option, for large piece of functionality, which pulled just a important part of backtrace from the attached abrt-produced log.</dd>
<dt>submitsLogging</dt>
<dd>This is a switch for a functionality which is completely useless for anybody who is not hired for being a bug triager. This addons could ask you for every click on the Submit button to provide short message, which could be then collated into something which goes to my weekly status report. Obviously it should be set to <code>false</code> for almost everybody.</dd>
<dt>verboseInlineHistory</dt>
<dd>This is a switch for unfinished attempt to merge in functionality from <a href="http://ehsanakhgari.org/blog/2010-05-31/my-experience-jetpack-sdk">Bugzilla Tweaks</a> <a href="http://ehsanakhgari.org/blog/2010-01-07/bugzilla-tweaks-enhanced">functionality of which</a> was <a href="http://globau.wordpress.com/2011/08/23/bugzilla-inline-history-extension/">later included into the upstream bugzilla itself</a>.</dd>
<dt>XorgLogAnalysis</dt>
<dd>This is a tool which could be very useful for any Xorg bug triager. However, it is kind of dangerous, because if misused it could lead to quite sloppy work. What it does is that it adds to every Xorg.0.log (and dmesg output) a button which makes the addon to run the log through regular expressions which selects lines which can be interesting. Obviously it is useful for fast overview of what&#8217;s going on, but certainly detailed inspection of the log is required for any decision.</dd>
</dl>
<p>So, this is finally written down documentation for the mythical JSON file, which I promised for so long.</p>
<h2>A bit on process of treating a bug</h2>
<p>I will skip technical issues (they are described reasonably well on the above mentioned BugZappers pages), but let me add here couple of notes on the background of the process. First of all, although bug triage is kind of lonely job, we stand on shoulders of some giants (or at least we could if we knew about them). Luis Villa (former bugmaster of Ximian and Gnome project) has <a href="http://tieguy.org/talks/">a nice collection of his presentations and talks</a>. Highly recommended. Also a lot of discussion about bugs management (obviously) happens in the Bugzilla community, for which <a href="http://planet.bugzilla.org/">Bugzilla Planet</a> is a great entry point (or you can go all the way to <a href="http://planet.mozilla.org">Mozilla Planet</a>)</p>
<p>(&#8230; to be continued &#8230;)</p>
]]></content:encoded>
			<wfw:commentRss>http://matej.ceplovi.cz/blog/2011/11/letter-to-my-successors-or-what-do-i-know-about-the-xorg-bug-triage/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>json_diff &#8230; structured diff for JSON files</title>
		<link>http://matej.ceplovi.cz/blog/2011/10/json_diff-structured-diff-for-json-files/</link>
		<comments>http://matej.ceplovi.cz/blog/2011/10/json_diff-structured-diff-for-json-files/#comments</comments>
		<pubDate>Mon, 24 Oct 2011 21:16:59 +0000</pubDate>
		<dc:creator>matej</dc:creator>
				<category><![CDATA[computer]]></category>

		<guid isPermaLink="false">http://matej.ceplovi.cz/blog/?p=259</guid>
		<description><![CDATA[Just to let the world know that I have just created json_diff.py, which is very simple Python script to generate a JSON of differences between two JSON files. One would thing that such thing must exist already, but all what &#8230; <a href="http://matej.ceplovi.cz/blog/2011/10/json_diff-structured-diff-for-json-files/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Just to let the world know that I have just created json_diff.py, which is very simple Python script to generate a JSON of differences between two JSON files. One would thing that such thing must exist already, but all what I was able to found was not working much (http://tlrobinson.net/projects/javascript-fun/jsondiff/ is kind of weird, and spits out HTML directly) or at all (I won&#8217;t name them), or was incredibly complex (XDiff, http://pages.cs.wisc.edu/~yuanwang/xdiff.html which is super machine for comparing XML files, but 3+k lines of (mostly) uncommented Java).</p>
<p>So, my script generates from these two JSON files</p>
<pre>{
    "a": 1,
    "b": 2,
    "son": {
        "name": "Janošek"
    }
}</pre>
<p>and</p>
<pre>{
    "a": 2,
    "c": 3,
    "daughter": {
        "name": "Maruška"
    }
}</pre>
<p>this result</p>
<pre>{
    "append": {
        "c": 3,
        "daughter": {
            "name": "Maruška"
        }
    },
    "remove": {
        "b": 2,
        "son": {
            "name": "Janošek"
        }
    },
    "update": {
        "a": 2
    }
}</pre>
<p>(yes, it should work correctly with Unicode strings). If anybody has any comments on the script or (especially) on the output format, let me know. Of course, patches welcome (I have forgotten to state the license, but let&#8217;s say <code>MIT/X11</code> and if you want anything else, let me know as well).</p>
<p>Also, if anybody wants to get into super boring debugging/refactoring task, then the branch <code>rewrite_xdiff</code> has syntactically correct, but non-working port of XDiff Java program. See the original <a href="http://pages.cs.wisc.edu/~yuanwang/papers/xdiff.pdf">XDiff paper</a> to see what beauty is (well) hidden there.</p>
]]></content:encoded>
			<wfw:commentRss>http://matej.ceplovi.cz/blog/2011/10/json_diff-structured-diff-for-json-files/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Just do it &#8230;</title>
		<link>http://matej.ceplovi.cz/blog/2011/10/just-do-it/</link>
		<comments>http://matej.ceplovi.cz/blog/2011/10/just-do-it/#comments</comments>
		<pubDate>Mon, 24 Oct 2011 12:00:18 +0000</pubDate>
		<dc:creator>matej</dc:creator>
				<category><![CDATA[computer]]></category>

		<guid isPermaLink="false">http://matej.ceplovi.cz/blog/?p=255</guid>
		<description><![CDATA[What are you doing reading this? You should be reading this post. It is much better reading. And about more important stuff than the rest of this planet.]]></description>
			<content:encoded><![CDATA[<p>What are you doing reading this? You should be reading this <a href="http://www.codinghorror.com/blog/2011/10/on-parenthood.html">post</a>. It is much better reading. And about more important stuff than the rest of this planet.</p>
]]></content:encoded>
			<wfw:commentRss>http://matej.ceplovi.cz/blog/2011/10/just-do-it/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Let&#8217;s build it all again &#8230; now with bunnies!</title>
		<link>http://matej.ceplovi.cz/blog/2011/10/lets-build-it-all-again-now-with-bunnies/</link>
		<comments>http://matej.ceplovi.cz/blog/2011/10/lets-build-it-all-again-now-with-bunnies/#comments</comments>
		<pubDate>Mon, 03 Oct 2011 11:31:15 +0000</pubDate>
		<dc:creator>matej</dc:creator>
				<category><![CDATA[computer]]></category>
		<category><![CDATA[xmpp]]></category>

		<guid isPermaLink="false">http://matej.ceplovi.cz/blog/?p=252</guid>
		<description><![CDATA[I was reading a blogpost about WebSocket and NAT and all this stuff and I cannot stop thinking “Do we have to really reinvent the wheel all the time?” Of course, when Apple et al. reinvent the wheel, it is &#8230; <a href="http://matej.ceplovi.cz/blog/2011/10/lets-build-it-all-again-now-with-bunnies/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I was reading <a href="http://code-bear.com/bearlog/2011/10/02/websockets-the-bell-bottoms-of-the-web/">a blogpost about WebSocket and NAT and all this stuff</a> and I cannot stop thinking “Do we have to really <a href="http://www.tbray.org/ongoing/When/200x/2004/09/18/WS-Oppo">reinvent the wheel</a> all the time?” Of course, when Apple et al. <a href="http://www.apple.com/ios/ios5/features.html#imessage">reinvent</a> <a href="http://en.wikipedia.org/wiki/Ichat">the wheel</a>, it is probably a deliberate attempt to lock in clueless customers. But when open communities <a href="http://code.google.com/p/pubsubhubbub/">do it</a>? And if you don’t know how to do all that stuff over secure and reliable connection, then <a href="http://telepathy.freedesktop.org/doc/book/chapter.tubes.html">it all has been done</a> (<a href="http://gnomejournal.org/article/86/telepathy-overview">more information</a>, <a href="https://github.com/zhangsen/tp-sudoku-demo">example</a>). Oh well.</p>
]]></content:encoded>
			<wfw:commentRss>http://matej.ceplovi.cz/blog/2011/10/lets-build-it-all-again-now-with-bunnies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Yes, there *IS* SwallowCatcher 0.2.0 … but you won’t find it on F-Droid</title>
		<link>http://matej.ceplovi.cz/blog/2011/10/yes-there-is-swallowcatcher-2-0-%e2%80%a6-but-you-won%e2%80%99t-find-it-on-f-droid/</link>
		<comments>http://matej.ceplovi.cz/blog/2011/10/yes-there-is-swallowcatcher-2-0-%e2%80%a6-but-you-won%e2%80%99t-find-it-on-f-droid/#comments</comments>
		<pubDate>Sat, 01 Oct 2011 15:12:42 +0000</pubDate>
		<dc:creator>matej</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[computer]]></category>

		<guid isPermaLink="false">http://matej.ceplovi.cz/blog/?p=247</guid>
		<description><![CDATA[After writing previous rant against SwallowCatcher (among other things) I re-checked author’s blog to find out that actually he has already released version 0.2.0 without pushing it to f-droid (yet?). I have built it from his git repository (yay, gitorious!), &#8230; <a href="http://matej.ceplovi.cz/blog/2011/10/yes-there-is-swallowcatcher-2-0-%e2%80%a6-but-you-won%e2%80%99t-find-it-on-f-droid/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>After writing <a title="My first hand-on comparison between Nexus S and N900" href="http://matej.ceplovi.cz/blog/2011/09/my-first-hand-on-comparison-between-nexus-s-and-n900/">previous rant against SwallowCatcher</a> (among other things) I re-checked author’s blog to find out that actually <a href="http://webworxshop.com/2011/08/13/swallowcatcher-0-2-0-released">he has already released version 0.2.0</a> without pushing it to f-droid (yet?). I have built it from <a href="https://gitorious.org/swallowcatcher/swallowcatcher">his git repository</a> (yay, gitorious!), but there is also a binary on his page. Seems to be a bit more stable, at least clicking on the download notification doesn’t make the app crash 100%. So far I haven’t met interrupted download, we’ll see how it goes.</p>
]]></content:encoded>
			<wfw:commentRss>http://matej.ceplovi.cz/blog/2011/10/yes-there-is-swallowcatcher-2-0-%e2%80%a6-but-you-won%e2%80%99t-find-it-on-f-droid/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>My first hand-on comparison between Nexus S and N900</title>
		<link>http://matej.ceplovi.cz/blog/2011/09/my-first-hand-on-comparison-between-nexus-s-and-n900/</link>
		<comments>http://matej.ceplovi.cz/blog/2011/09/my-first-hand-on-comparison-between-nexus-s-and-n900/#comments</comments>
		<pubDate>Thu, 29 Sep 2011 16:12:08 +0000</pubDate>
		<dc:creator>matej</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[computer]]></category>

		<guid isPermaLink="false">http://matej.ceplovi.cz/blog/?p=216</guid>
		<description><![CDATA[I was for a year more or less happy owner of the Nokia N900. Then a week or more ago, it suddenly stopped charging the phone. One day it was running on battery although the cable was plugged in and &#8230; <a href="http://matej.ceplovi.cz/blog/2011/09/my-first-hand-on-comparison-between-nexus-s-and-n900/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I was for a year more or less happy owner of the Nokia N900. Then a week or more ago, it suddenly stopped charging the phone. One day it was running on battery although the cable was plugged in and in the evening it just went down because the battery was completely depleted. I took the phone to the shop only to find out that they will ask me over 1800 CZK (over $100) for the repair.</p>
<p>In this situation I started to think. I had some complaints about N900 already and I started to think about jumping the boat anyway. The biggest one being that the hardware was apparently not powerful enough to run applications I wanted to run. 256MB is just not enough for Python applications (e.g., an excellent gpodder which I sorely miss now) not mentioning Firefox (which is for many reasons <em>condition sine qua non</em> for me). When I run these two together, whole machine changed into something unbelievable. Of course, I was also worried about the future of the platform, now when the mission of Nokia is to sacrifice itself on the altar of saving Microsoft phone OS (or whole Microsoft?).</p>
<p>So, I have asked my contact person with my phone carrier and I was offered subsidised Samsung Nexus S for around 4,000 CZK ($225). I have agreed and week later I got it by mail. The first impression was great … comparing to the N900’s brick-like design (and weight <img src='http://luther.ceplovi.cz/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ), I got a slim gorgeous curved beauty. Given my FLOSS fascism I was decided to put CyanogenMod on it asap, which I managed to do in less than an hour or two. Which given I had absolutely no knowledge about unlocking, rooting etc. of phones (a witty remark about honest phones having nothing to hide to be inserted here), and some troubles between udev and USB cable seems like pretty decent time to me.</p>
<p>Whole phone and Android seem comparing with N900 like a finished end-user product, comparing to sometimes hairy and hackish N900. There are no obvious gaps in the basic applications (who in the world thought that the Maemo calendar is supposed to be taken seriously?) and I was nicely surprised that the lock-in to Google Apps could be avoided and connecting to my own server (Zarafa 7.0.1 via Activesync) was completely painless (switching to open protocols, i.e., IMAP, CalDAV, and CardDAV, to be resolved later, but currently I have a working setup).</p>
<p>Also, Firefox on my phone works quite well and I can happily use it as my default browser (so far, I am on Aurora, and contemplating switch to Nightly).</p>
<p>So, that&#8217;s a good part. Now for the bad. It is like going through the beautiful meadows and from time to time fall into deep whole with mud and other junk. I heard in the past couple of years many complaints about Pulseaudio. Well, I have to say there are worse things than Pulseaudio. For example, not having Pulseaudio at all, which is the case with Android. So, suddenly instead of the integrated experience, I had to learn about HFP and HSP, A2DP and similar magic (and see bugs like <a href="https://code.google.com/p/android/issues/detail?id=7906">this one</a>, or <a href="https://code.google.com/p/android/issues/detail?id=5527">this one</a>; I am encouraged that these are most likely duplicates, because apparently bug triage at the Android issue tracker is even worse than in the Red Hat bugzilla <img src='http://luther.ceplovi.cz/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> ). So, now I have to battle with silly applications like <a title="BTmono" href="https://market.android.com/details?id=com.bedoig.BTmono">BTmono</a> while with N900 whole listening over BT headset Just Worked™ (needless to say, that free BTmono is just a crippleware made to induce users to buy a better one; those things didn’t happen with my Maemo repos either). And even BTmono doesn’t work correctly, so when I listen to the podcast, I cannot telephone.</p>
<p>Second thing where N900 is clearly better than Android is the core function of the phone. Telepathy just rocks. Apparently Gingerbread made a breakthrough and it integrates at least a SIP client, however, surprisingly Google’s phone doesn’t include native support for Jingle over GTalk. I won’t mention for friends of free software native support for Skype at N900. Whenever I heard on some TWiT podcast how they discussed whether it would be possible to add Skype application to iPhone/Android/something I was amused because of course it was always included and well integrated in my previous phone (it is just a bit in the Maemo’s Addressbook which decides which protocol is used). The same goes for instant messages, and after a year of using N900 you will have a hard time to explain me why in the world I should I care about the difference between ICQ messages, IRC, Jabber, or even SMS message.</p>
<p>The third sad story are FLOSS programs for Android. I thought that given the huge number of users and developers working on Android the situation should be same or better as on almost abandoned (or actually completely abandoned) Maemo. And yet, it is not so. Relation between free software and Android seems to me like a hopeless effort to reinvent the wheel. Software repositories, packaging community, isue trackers are in the Linux world all invented, working, and boring. I am not sure if I found everything but it seems to me that the biggest free Android repository <a href="http://f-droid.org">f-droid</a> is just a WordPress blog. Feels embarrassing. There is no community of package managers, no issue tracker, nothing. I guess backtraces from the apps also go to nowhere, right?</p>
<p>Moreover, I have a deep suspicion about the quality of FLOSS apps for Android. The second most important activity for me to do with my phone (or even the most important one, measured by the time I spend with it) is listening to podcasts. I know there are some paid-for apps which are probably pretty good, there is Google Listen (which is non-free and even more binding to the advertising agency, aka AA, ecosystem) which seems to work pretty well, and there are … as far as I was able to find so far two FLOSS apps (I don’t count <a href="http://f-droid.org/repository/browse/?fdid=org.sixgun.ponyexpress">PonyExpress</a>, because AFAIK it is just one-producer tool; LazyWeb, can you suggest me other application?): <a href="http://f-droid.org/repository/browse/?fdid=com.webworxshop.swallowcatcher">SwallowCatcher</a> and <a href="http://jadn.com/carcast/">Car Cast</a>. Testing of the second one was fast … podcatcher which doesn’t support import of OPML file with my current podcasts is out. So, now I have SwallowCatcher and I hate every moment I have to deal with it. I have to be fair, this is quite obviously pre-alpha release thing, so I shouldn’t be too harsh on its author, but given it is the only app I found, it makes me really sad. Is it just problem of the underlying libraries or the author’s problem it is not able to restart interrupted download? Combined with the fact that exactly during the download the app crashes constantly (so I have to try download of one show three times on average)? And yes, my wi-fi connection is quite crappy on my home network, but that’t probably just because Nokia can do much better hardware than Samsung, which was expected, and I won’t hold it against Android.</p>
<p>I understand that multitasking on Android is broken^H^H^H^Hlimited, but playing of the long podcast just to happen in background. When I send SwallowCatcher to background (by pressing Home key) playback stops. Fortunately it stores the downloaded files so that Google’s Music is able to find them, and that works correctly, but I shouldn’t have to do it manually (e.g., gpodder just doesn’t pretend and uses a system music player for the actual playback).</p>
<p>Talking about an embarrassment, this post is way too long and I should stop it, and it structure is awful. Oh well. I will rather send it out now and not keep it in the Drafts folder anymore.</p>
]]></content:encoded>
			<wfw:commentRss>http://matej.ceplovi.cz/blog/2011/09/my-first-hand-on-comparison-between-nexus-s-and-n900/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Good bye tt-rss, rss2email I am coming back!</title>
		<link>http://matej.ceplovi.cz/blog/2011/09/good-bye-to-tt-rss-rss2email-i-am-coming-back/</link>
		<comments>http://matej.ceplovi.cz/blog/2011/09/good-bye-to-tt-rss-rss2email-i-am-coming-back/#comments</comments>
		<pubDate>Tue, 27 Sep 2011 10:44:52 +0000</pubDate>
		<dc:creator>matej</dc:creator>
				<category><![CDATA[atompub]]></category>
		<category><![CDATA[computer]]></category>
		<category><![CDATA[Own cloud]]></category>

		<guid isPermaLink="false">http://matej.ceplovi.cz/blog/?p=235</guid>
		<description><![CDATA[Fixed connectivity-problems (no more endless waiting with spinning activity-wheel) While getting used to my new Android phone (which will be subject of another post(s)) I have found in the f-droid repository application Tiny Tiny RSS Reader, which is a reader &#8230; <a href="http://matej.ceplovi.cz/blog/2011/09/good-bye-to-tt-rss-rss2email-i-am-coming-back/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Fixed connectivity-problems (no more endless waiting with spinning activity-wheel)</p>
<p>While getting used to my new Android phone (which will be subject of another post(s)) I have found in the <a href="http://f-droid.org/repository/">f-droid repository</a> application <a href="http://f-droid.org/repository/browse/?fdid=org.ttrssreader">Tiny Tiny RSS Reader</a>, which is a reader application for <a href="http://tt-rss.org/">Tiny Tiny RSS Reader</a>, a RSS reader as webapp (aka „personal Google Reader”). I have been suddenly attacked by my periodic feelings of shame for still using (and preferring) good old email to all those current hip, web 2.* AJAX webapps. So, I have installed the program on my server, added the following to my fcontexts for SELinux, started <code>update-daemon</code> and run it.</p>
<pre>/var/www/tt-rss/.*\.php? all files \
    system_u:object_r:httpd_user_script_exec_t:s0</pre>
<p>Whole the app worked more or less as advertised, but I have in the end switched back to my old crusty <code>rss2email</code>. Here are the reasons:</p>
<ul>
<li>First of all that Android didn’t work in the end. Changelog for 1.08 says it “Fixed connectivity-problems (no more endless waiting with spinning activity-wheel)”, but that’s exactly how it looked with 1.08 for me. I wasn’t able to find any help neither on fora, nor on IRC, so no phone app for me. On the other hand, email works just fine on the Android, so off-line access to my posts is already available.</li>
<li>I finally admitted that Simple HTML in Thunderbird of <code>rss2email </code>messages (with HTML on in <code>rss2email</code>) is the best reading experience out there. I really don’t like all those web apps which try to cram all user interface into the webpage, so for reading there is only tiny rectangle in the middle with tiny characters.</li>
<li>Web interface itself wouldn’t be the problem, but tt-rss contains also <code>update-daemon</code> which is written in PHP and runs constantly. It took more CPU and RAM than any of MySQL, apache, zarafa, or postfix. Just say NO to PHP daemons (or any scripting language daemons for that matter; jury is still out on Java daemons, but suspicion remains).</li>
</ul>
<p>I am glad to be back, and sorry <code>rss2email</code> that I have doubt you.</p>
]]></content:encoded>
			<wfw:commentRss>http://matej.ceplovi.cz/blog/2011/09/good-bye-to-tt-rss-rss2email-i-am-coming-back/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

