<?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>Tim Babych’s thoughts &#187; mozilla</title>
	<atom:link href="http://blog.clear.com.ua/category/mozilla/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.clear.com.ua</link>
	<description>Thoughts on web, things and so on</description>
	<lastBuildDate>Tue, 22 Nov 2011 14:14:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Adofex at MozCamp 2011: Team-team-team</title>
		<link>http://blog.clear.com.ua/2011/11/adofex-mozcampteams/</link>
		<comments>http://blog.clear.com.ua/2011/11/adofex-mozcampteams/#comments</comments>
		<pubDate>Sat, 19 Nov 2011 22:45:42 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[gsoc]]></category>
		<category><![CDATA[mozilla]]></category>

		<guid isPermaLink="false">http://blog.clear.com.ua/?p=152</guid>
		<description><![CDATA[A week ago I was presenting Adofex to the crowd of happy localizers. The room was packed tight and the air was sparkling with excitement. Kinda The presentation was centered on features of Adofex, telling people about the new features &#8230; <a href="http://blog.clear.com.ua/2011/11/adofex-mozcampteams/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="/pic/team-team-team.jpg" style="float: left; margin: 0 10px 0px 0;">A week ago I was presenting Adofex to the crowd of happy localizers. The room was packed tight and the air was sparkling with excitement. Kinda <img src='http://blog.clear.com.ua/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>

<p>The <a href="http://clear.com.ua/talks/adofex.pdf">presentation</a> was centered on features of Adofex, telling people about the new features and UI that will make their lives easier both as translators and as addon maintainers. Wladimir Palant, the author of Adblock Plus, was <a href="http://adblockplus.org/blog/eu-mozcamp-theme-development-add-on-localization-with-adofex">eager to try</a> and also to hack the new system. That is really inspiring!</p>

<p>Also, the community raised a very valid point about team ownership. As one of important features of the new system over the old one, I wanted to see unified translation teams. One-language-one-team. Yes, per-project teams are also totally possible, just are not the default.</p>

<p>With that setup, all members of language team would</p>

<ul>
<li>get some place to be listed (look as a team)</li>
<li>help each other on totally any addon (work as a team)</li>
<li>have to be approved only by global language maintainers, who are expected to be much responsive and responsible then per-project team-mainteners &#8211; who are often unreachable or have quite a view on translation standards. (able to act like a team).</li>
</ul>

<p>Yeah.</p>

<p>With all that said, I have a confession to make. I am actually looking at this from the boss side of the table. I am a maintainer of Ukrainian localization, have been localizing Firefox itself and few key addons for ages, and I get frustrated when I am not able to fix typos/mistranslations/missing strings in addons owned by other people. And filing &#8220;join team&#8221; requests, then waiting for them never to get a response was not an encouraging thing.</p>

<p>So, I created my own system, with blackjack and whistles, the one that fits the workstyle of a <a href="http://www.wikipatterns.com/display/wikipatterns/WikiGnome">WikiGnome</a> perfectly: once you are in a team, you are free to improve whatever you want.</p>

<p>Thing is, not everybody is a Gnome. Most people are Maintainers, and some are even Trolls. Maintainers are the ones who care about their favorite addon, they are added to the list of localizers in credits section and they do not want any outsiders to mess around. Trolls are the who guys care more about language purity and &#8216;proper&#8217; term usage than doing hard work of translating kilobytes of text. One Troll autoreplacing &#8220;center&#8221; with, say, &#8220;centre&#8221; with no ability to roll that change back can easily alienate many Maintainers.</p>

<p>And, actually, in an environment (Launchpad) where I do not have the master switch in my hand, and where any of my pet translations can be (and are) edited by some guys whom I have never asked to &#8211; I do not like it myself.</p>

<p>To give people sense of satisfaction and well-earned fame &#8211; they should be able control the results of their work. Outsourced projects still is a useful feature to have, because Adblock Plus and Adblock Hiding Helper should really have the same teams working on them. But whether to outsource every new project to global team &#8211; that is a question. At least until someone implements translation history (<a href="http://trac.transifex.org/ticket/705">#705</a>) for Transifex &#8211; which would at least explain who changed what.</p>

<p>A feedback here would be greatly appreciated.</p>

<p>PS: for those who haven&#8217;s seen that great show, the source of team joke is <a href="http://www.youtube.com/watch?v=pGFGD5pj03M">IT Crowd</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.clear.com.ua/2011/11/adofex-mozcampteams/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Teh magic</title>
		<link>http://blog.clear.com.ua/2011/08/bz-import/</link>
		<comments>http://blog.clear.com.ua/2011/08/bz-import/#comments</comments>
		<pubDate>Tue, 23 Aug 2011 18:28:00 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[gsoc]]></category>
		<category><![CDATA[mozilla]]></category>

		<guid isPermaLink="false">http://blog.clear.com.ua/?p=130</guid>
		<description><![CDATA[Importing data from Babelzilla could never been easier: You can try it on Adofex having registered/logged in and created a new test project. ID for Adblock is 4592, for Stylish — 4983. Kudos to Bz devs for making their data &#8230; <a href="http://blog.clear.com.ua/2011/08/bz-import/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Importing data from Babelzilla could never been easier:</p>

<p><img src="http://clear.com.ua/lj/adofex/bz_import.png" /></p>

<p>You can try it on <a href="http://adofex.clear.com.ua">Adofex</a> having registered/logged in and created a new test project. ID for Adblock is 4592, for Stylish — 4983. Kudos to Bz devs for making their data <a href="http://blog.babelzilla.org/2011/04/21/quick-url-for-dellazydel-smart-devs/">available</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.clear.com.ua/2011/08/bz-import/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>That&#8217;s how it looks</title>
		<link>http://blog.clear.com.ua/2011/08/thats-how-it-looks/</link>
		<comments>http://blog.clear.com.ua/2011/08/thats-how-it-looks/#comments</comments>
		<pubDate>Sun, 21 Aug 2011 02:28:40 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[gsoc]]></category>
		<category><![CDATA[mozilla]]></category>

		<guid isPermaLink="false">http://blog.clear.com.ua/?p=125</guid>
		<description><![CDATA[Reskinned transifex with support for Mozilla formats deployed at adofex.clear.com.ua, addons imported through management command, I am finishing UI for uploading them.]]></description>
			<content:encoded><![CDATA[<p>Reskinned transifex with support for Mozilla formats deployed at <a style="font-weight:bold" href="http://adofex.clear.com.ua/">adofex.clear.com.ua</a>, addons imported through management command, I am finishing UI for uploading them.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.clear.com.ua/2011/08/thats-how-it-looks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>patch filed</title>
		<link>http://blog.clear.com.ua/2011/08/patch-filed/</link>
		<comments>http://blog.clear.com.ua/2011/08/patch-filed/#comments</comments>
		<pubDate>Tue, 16 Aug 2011 01:22:50 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[gsoc]]></category>
		<category><![CDATA[mozilla]]></category>

		<guid isPermaLink="false">http://blog.clear.com.ua/?p=117</guid>
		<description><![CDATA[Patch to ticket #89 in Transifex is filed Previous patch reworked completely, Silme is not used anymore: .properties reader was already in place, and supported more features of the format than Silme did. Except comments (which were absent), but handled &#8230; <a href="http://blog.clear.com.ua/2011/08/patch-filed/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<ul>
<li>Patch to ticket <a href="http://trac.transifex.org/ticket/89">#89</a> in Transifex is filed</li>
<li>Previous patch reworked completely, Silme is not used anymore:

<ul>
<li>.properties reader was already in place, and supported more features of the format than Silme did. Except comments (which were absent), but handled multiline strings more correctly (did not forget to strip slashes and merge lines).</li>
<li>including entire library just for reading of .dtd files (writing was handled by Tx anyway) seemed like an overkill and unneeded complexity.</li>
<li>New and old handlers were <a href="http://clear.com.ua/misc/gsoc/comparison_silme_vs_tx/">compared</a> on entire set of dtd and properties files living in mozilla-aurora.</li>
</ul></li>
<li>Difference in behavior in Java and Moz-style properties is resolved in configuration. May be Glezos would want to make Moz-behavior main one, but anyway the ability to have both is a plus.</li>
<li>Comments are read for both kinds of .properties and in .dtd.</li>
</ul>

<p>Not so good news: The project-creation wizard (import from github/bitbucket), dashboard etc &#8211; &#8220;stuff that makes transifex.net interesting&#8221; &#8211; are closed source addons. Also, navigation issues and general unfriendliness to a localizer are all mine &#8211; no one else is currently working on them.</p>

<p>Thus, to make that cutie the next and better Babelzilla &#8211; a little more than the format support is needed. Dashboard, streamlined navigation, XPI-based newproject wizard (every addon author have an xpi, even if he does not have a source repo, so xpi-reading seems to be more important), just to name some. Working on.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.clear.com.ua/2011/08/patch-filed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>short status update</title>
		<link>http://blog.clear.com.ua/2011/07/short-status-update/</link>
		<comments>http://blog.clear.com.ua/2011/07/short-status-update/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 17:21:51 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[gsoc]]></category>
		<category><![CDATA[mozilla]]></category>

		<guid isPermaLink="false">http://blog.clear.com.ua/?p=114</guid>
		<description><![CDATA[Finalizing the patch, reading zamboni code.]]></description>
			<content:encoded><![CDATA[<p>Finalizing the patch, reading zamboni code.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.clear.com.ua/2011/07/short-status-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>One .DTD and two .properties parsers</title>
		<link>http://blog.clear.com.ua/2011/07/dtd_and_friends/</link>
		<comments>http://blog.clear.com.ua/2011/07/dtd_and_friends/#comments</comments>
		<pubDate>Tue, 12 Jul 2011 18:13:51 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[gsoc]]></category>
		<category><![CDATA[mozilla]]></category>

		<guid isPermaLink="false">http://blog.clear.com.ua/?p=96</guid>
		<description><![CDATA[DTD and .properties parsers work, tests for them (mostly reused from JavaProperties parser) do pass. The substitution of translated strings into &#8220;template&#8221; (the original file to be localized, with all its comments and formatting) also works, making it possible to &#8230; <a href="http://blog.clear.com.ua/2011/07/dtd_and_friends/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>DTD and .properties parsers work, tests for them (mostly reused from JavaProperties parser) do pass. The substitution of translated strings into &#8220;template&#8221; (the original file to be localized, with all its comments and formatting) also works, making it possible to correctly upload and download l10n files, even half-translated. And, of course, the fabulous online editor Lotte shines its goodness on good ol&#8217; addon localization files.</p>

<p>Through to brew the code in <a href="https://bitbucket.org/tymofiy/transifex">my fork</a> to the state when it can yield the patch ready to be filed, two things need to be done:</p>

<ul>
<li><p><strong>Upgrade Silme to July&#8217;s version</strong> (currently rev 629 is used), which was just this day reworked by Zbigniew and now works on top of new <a href="https://github.com/zbraniecki/mozilla/">shiny library</a> for handling mozilla things, currently formats. BTW, last time I checked, my pet l10nmerge.py also required fixes to work with recented <a href="https://github.com/zbraniecki/pyast">pyast</a>-powered silme, and a little more complex than the <a href="https://bitbucket.org/tymofiy/silme-apps/changeset/f355b6d37c2a">one</a> needed for r629.</p></li>
<li><p><strong>Solve the conflict with JavaProperties</strong> handler. That is trickier, as this handler uses the same file extension as Mozilla one, yet it differs in two important matters:</p>

<ul>
<li>it supports many more <a href="https://bitbucket.org/tymofiy/transifex/src/0fccc9a6ecc4/transifex/resources/tests/lib/javaproperties/complex.properties">features</a> of the format than Mozilla&#8217;s one do, namely multiline strings, using <strong>:</strong> for specifying pairs besides of <strong>=</strong> etc.</li>
<li>it reads and <em>outputs</em> Latin-1.</li>
</ul></li>
</ul>

<p>JavaPropertiesHandler&#8217;s format tolerance is not a problem, and neither is its habit of expecting Latin-1. I can try two of them in turn, Java and Moz, one after another, checking for ability to decode incoming file. Java  will accept Latin, Moz will accept UTF8, everybody happy.</p>

<p>But who will be in charge of <em>outputting</em> the content? It will not be possible to judge target platform by file-to-be-localized extension, and neither by its encoding : usually those are in English, and only in some cases they carry fancy characters like Unicode ellipsis.</p>

<p><img src="http://blog.clear.com.ua/wordpress/wp-content/uploads/2011/07/Screenshot.png" /></p>

<p>Speaking of the screenshot above, it shows a picture unusually rarely seen in Transifex, yet so common on Babelzilla and so natural for a localizer to see. Tx experience is organized as Project-Resource-Language-edit, and the &#8220;Localizer&#8217;s view&#8221; where you see all the files in your language and their status — the thing that obviously interests you the most — is hidden in Teams tab (when teams are enabled!), and is not the one you go back after editing a resource. Haven&#8217;t found a bug on that, gonna file one.</p>

<p>Also hacked a prototype for addon-repacker, the python script which will be adding localized resources (dtd/properties) to given xpi files for ease of testing. As its purpose is testing and testing only, final shipping is author’s business anyway, it uses very straghtforward approach: adds files into <i>someaddon.xpi</i>/tx_locale/code/ and fiddles with chrome.manifest to expose new locale for the same content package other locales are. Might fail for complex files with multiple content packages being localized, but that seems quite uncommon.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.clear.com.ua/2011/07/dtd_and_friends/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Still in /resources/formats</title>
		<link>http://blog.clear.com.ua/2011/07/still-in-resourcesformats/</link>
		<comments>http://blog.clear.com.ua/2011/07/still-in-resourcesformats/#comments</comments>
		<pubDate>Fri, 01 Jul 2011 07:12:54 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[gsoc]]></category>
		<category><![CDATA[mozilla]]></category>

		<guid isPermaLink="false">http://blog.clear.com.ua/?p=93</guid>
		<description><![CDATA[I am still working on dtd reader, taking existing java .properties one as an example how Handler class should be implemented. Hopefully will finish this part on this weekend.]]></description>
			<content:encoded><![CDATA[<p>I am still working on dtd reader, taking existing java .properties one as an example how Handler class should be implemented. Hopefully will finish this part on this weekend.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.clear.com.ua/2011/07/still-in-resourcesformats/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Diving into Transifex</title>
		<link>http://blog.clear.com.ua/2011/06/diving-into-transifex/</link>
		<comments>http://blog.clear.com.ua/2011/06/diving-into-transifex/#comments</comments>
		<pubDate>Fri, 17 Jun 2011 22:38:13 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[gsoc]]></category>
		<category><![CDATA[mozilla]]></category>

		<guid isPermaLink="false">http://blog.clear.com.ua/?p=89</guid>
		<description><![CDATA[So far so good. My current task on the project is extending the Transifex system with new format, as an obvious start point and a foundation for the ongoing work. I enjoy working with Tx code (development tip), it is &#8230; <a href="http://blog.clear.com.ua/2011/06/diving-into-transifex/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>So far so good. My current task on the project is extending the Transifex system with new format, as an obvious start point and a foundation for the ongoing work. I enjoy working with Tx code (development tip), it is well commented and organized. Had few issues while installing the project (requirements.txt was out of date), but other than that the experience was smooth.</p>

<p>Among the other format readers there is Java .properties reader, which 
unfortunately works only with ISO 8859-1 encoding (other characters have to be represented as Unicode escapes).  I plan to replace its reading code with Silme calls, along with writing DTD reader. The one thing to check is whether Silmefied .properties reader would supersede original one totally, or I would have to check which one to call. I would like to avoid that, as currently Tx picks file reader only by extension and magic number, which is obviously the same for Java and Mozilla .properties file.</p>

<p>Rounded up a few things besides of GSoC during during start of June, like the studies, and Thunderbird/Calendar localized release and can devote more time to the project now.</p>

<p>Next talk with mentor is scheduled to June 21<sup>th</sup>, and I hope to have working prototype by then.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.clear.com.ua/2011/06/diving-into-transifex/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GSoC: week 1</title>
		<link>http://blog.clear.com.ua/2011/05/gsoc-week-1/</link>
		<comments>http://blog.clear.com.ua/2011/05/gsoc-week-1/#comments</comments>
		<pubDate>Mon, 30 May 2011 18:40:45 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[gsoc]]></category>
		<category><![CDATA[mozilla]]></category>

		<guid isPermaLink="false">http://blog.clear.com.ua/?p=78</guid>
		<description><![CDATA[This year I was accepted into Google Summer of Code program, namely I will be integrating Transifex software localization platform with Mozilla addons. The complete proposal is available at GSoC site. I had talks with Zbigniew, who will be my &#8230; <a href="http://blog.clear.com.ua/2011/05/gsoc-week-1/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This year I was accepted into Google Summer of Code program, namely I will be integrating Transifex software localization platform with Mozilla addons. The <a href="http://socghop.appspot.com/gsoc/proposal/review/google/gsoc2011/tymofiy/1">complete proposal</a> is available at GSoC site.</p>

<p>I had talks with <a href="http://diary.braniecki.net/">Zbigniew</a>, who will be my mentor for this project and <a href="http://dimitris.glezos.com/weblog/">Dimitris</a>, leader of Transifex project. I am looking forward for working with both of them more deeply, but so far I am just diving into Transifex sources and rounding up my studies. The first and obvious thing to do it solving Transifex&#8217;s ticket <a href="http://trac.transifex.org/ticket/89">#89</a>, as other things go after that.</p>

<p><strike>On a side note, I am amazed by how noisy GSoC mailing list is. Thank you, dear Google, for the Mute button!</strike> <em>Update</em>: Finally got my City card, tried to register it online, and lots of so-called “noise” on the list instantly started making sence. The main URL does not even open for non-US IPs, for starters.</p>

<p>Scheduled my next meeting with Zbigniew to June 7th, and we will probably have at least bi-weekly talks through the summer.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.clear.com.ua/2011/05/gsoc-week-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rebuilding the friendship between Firefox and eBooks</title>
		<link>http://blog.clear.com.ua/2009/09/firefox-and-ebooks/</link>
		<comments>http://blog.clear.com.ua/2009/09/firefox-and-ebooks/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 22:06:33 +0000</pubDate>
		<dc:creator>tim</dc:creator>
				<category><![CDATA[mozilla]]></category>

		<guid isPermaLink="false">http://blog.clear.com.ua/?p=23</guid>
		<description><![CDATA[This is a story about the passion. One that changes life, and one that is obviously is going to change the world. It already does. I loved books since I was a child. They allow you to travel to the &#8230; <a href="http://blog.clear.com.ua/2009/09/firefox-and-ebooks/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><img src="http://blog.clear.com.ua/wordpress/wp-content/uploads/2009/09/sony-reader-prs505.jpg" alt="sony-reader-prs505" title="sony-reader-prs505" width="120" height="160" class="alignleft size-full wp-image-22" style="float:left;margin-right:10px;"/>
This is a story about the passion. One that changes life, and one that is obviously is going to change the world. It already does.</p>

<p>I loved books since I was a child. They allow you to travel to the places distant in time and space, to see the worlds that disappeared long ago or did not even exist. They tell stories that fascinate people all over the world and shape our common knowledge like Bible did thousands years ago. And of all modern ways to fill your mind with a fascinating reading the most prominent one is e-books.</p>

<h2>History note</h2>

<p>There was a time when monks used to rewrite them by hand, and by the mistakes they made in the process we can now get hints on what language did they actually speak besides canonical one. Later, mr. Gutenberg created his famous invention, pretty much killing that little monastery business.</p>

<p>I wonder if there were lawsuits then.</p>

<p>Six centuries later, hand rewriting and retyping made an interesting comeback, when in our country the ability to print was blocked not by technical shortcomings, but by political circumstances.
It is known as Samizdat books, funny name coined by resemblance of official publishing houses names, but meaning &#8220;My own Publishing House&#8221;.</p>

<h2>Authors and Publishers</h2>

<p>Interestingly, but we are approaching the same destination just having taken other route. These days anyone can be his own publishing house and easly print his own book, or reprint someone else&#8217;s.</p>

<p>Of course, that gives traditional publishing houses a hard run for their money and may even eventually kill them. Who cares? In the brave new world we will have the ability to buy books directly from the Author, saving the cost on printing and saving the space on our bookshelves. Everybody wins, and, btw,  publishers will have their niche anyway: print-on-demand, illustrated books, atlases, etc.</p>

<p>But the books that are &#8220;just text&#8221; will soon be arranged only inbetween the Author and the Reader. May be with a little help of some web-service, but soon to sell a book will be as easy as to sell a photo, font, drawing or some other work of art.</p>

<p>And even more. There are several books that I and many other people <em>want</em> written, and I see no reason why the community can not prepay their writing. We prepay opensource software, right? There were lots of cases, when people collected needed sum to pay the developer, funding his work for a promise to release the result into the world. This model will surely work for book developers too.</p>

<h2>The modern reading</h2>

<p>Ok, now you surely know how wonderful e-books are and how bright our future will be, <img src='http://blog.clear.com.ua/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  . Time for some gory details.</p>

<p>Whatever you use to read your library (I very very much recommend some eInk based device, your eyes will thank you a thousand times), standards matter.</p>

<p>And looks like the standard for e-books is finally settled, it is called ePub, and is based on open technologies. With Google promizing to <a href="http://www.readwriteweb.com/archives/google_opens_up_its_epub_archive_download_1_million_books_for_free.php">release a million ePub books into the wild</a>, and <a href="http://news.sel.sony.com/en/press_room/consumer/computer_peripheral/e_book/release/41343.html">Sony commiting</a> to that format there is no question on who the winner is.</p>

<p>I feel a little sad for other open XML-based e-book format, called <a href="http://en.wikipedia.org/wiki/FictionBook">FictionBook</a>, because it was much stricter on ruling out the presentation details, caring only about the structure of the book, and leaving the style to the reader.</p>

<p>But, as it was for early HTML, presentational details won. Not as bad as it was for HTML3, through. ePub just lets creator to specify the look in CSS, and does not require the book text to have special DTD, allowing plain XTHML. Still there is special DTD, called DTBook, it is just not required for book chapters, only for TOC.</p>

<p>Not to mention that Fb2 format was our local, Eastern Europe only invention, and was not backed by any big worldwide player.</p>

<p>But hey, ePub is standartized and open: so when one would want to read it the way he wants, it is all up to the extending the reading application. Just like the approach we take to the Open Web.</p>

<h2>The task</h2>

<p>And here comes the task I chose myself for Mozilla technology course: to add ePub and Fb2 support as an extension to Firefox. That would make interaction with ePub books easier and provide readers with more viewing options.</p>

<p>The problems I have to solve to make the extension work like it should are:</p>

<ol>
<li>registering the extensions .epub and .fb2, handling their rendering</li>
<li>unzipping the content (both are container formats)</li>
<li>actual presentation</li>
<li>TOC navigation</li>
<li>book metainformation display</li>
<li>some library features</li>
</ol>

<p>The good news for me that there was an ePub extension once, that did handle points 1-3, called <a href="https://addons.mozilla.org/en-US/firefox/addon/5275">Openberg Lector</a>. Unfortunately, it died two years ago, having never made it to Firefox 3.</p>

<p>Still, it provided me with lots of hints, and reviving it in some form is one of the goals of this project. I am sure it will be useful as people are still eagerly waiting for an update on its AMO page.</p>

<p>And for FB2 format (which is not going away soon in near future in our part of the world) there has not been an extension yet, despite it was asked for on forums several times.</p>

<p><strong>Update Dec 2010</strong>:</p>

<p>FB2 reader app is done, available on <a href="http://clear.com.ua/en/projects/firefox/fb2reader">its own page</a>.</p>

<p>EPUB reader is done by other guys, see <a href="http://lucidor.org/lucifox/">Lucifox</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.clear.com.ua/2009/09/firefox-and-ebooks/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

