<?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>Geekosophical</title>
	<atom:link href="http://geekosophical.net/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://geekosophical.net</link>
	<description>&#34;One&#039;s philosophy is not best expressed in words; it is expressed in the choices one makes ... and the choices we make are ultimately our responsibility.&#34; Eleanor Roosevelt (1884 - 1962)</description>
	<lastBuildDate>Thu, 16 Aug 2012 03:10:58 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.6-alpha-23751</generator>
		<item>
		<title>The Cat&#8217;s Tongue</title>
		<link>http://geekosophical.net/?p=576</link>
		<comments>http://geekosophical.net/?p=576#comments</comments>
		<pubDate>Sun, 27 May 2012 09:54:29 +0000</pubDate>
		<dc:creator>melissa</dc:creator>
				<category><![CDATA[Unsorted]]></category>
		<category><![CDATA[Mahara]]></category>

		<guid isPermaLink="false">http://geekosophical.net/?p=576</guid>
		<description><![CDATA[Documentation is good and all, but it&#8217;s not much good if you can&#8217;t understand a word of it. I&#8217;ve often said that man pages are great if you&#8217;ve learned how to read man pages, and people often cite man man &#8230; <a href="http://geekosophical.net/?p=576">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Documentation is good and all, but it&#8217;s not much good if you can&#8217;t understand a word of it. I&#8217;ve often said that man pages are great if you&#8217;ve learned how to read man pages, and people often cite <code>man man</code> as a way to learn how. You know what, you still need to know how to read them (and know that the jargon file exists) to read that. Have you <em>seen</em> its synopsis?</p>
<p>With the recent release of the 1.5 series of <a href="http://mahara.org">Mahara</a>, we&#8217;ve been putting a lot of work into making <a href="http://manual.mahara.org">the manual</a> translatable so that users don&#8217;t necessarily need to learn English to be able to benefit from the Mahara manual. Currently, the manual is hosted on <a href="http://readthedocs.com">readthedocs.com</a> but sadly the site doesn&#8217;t yet have support for generating translated versions on the fly.</p>
<p>Overall, we needed to:</p>
<ul>
<li>Have translated versions of the manual.</li>
<li>Have the screenshots be translatable.</li>
<li>Limit the learning curve for translators.</li>
<li>Avoid maintaining multiple copies of the source</li>
<li>Make it automated</li>
<li>Avoid having to re-deploy every time a new translation is started</li>
<li>Should be via apt-get, not via easy-install etc.</li>
</ul>
<p>Sounds like it should be simple? I wish! There were quite a few hiccups in getting this all going:</p>
<ul>
<li>The first challenge was to get Sphinx to use the translations we had. And after a ridiculous amount of fiddling and cursing, it turns out that in Ubuntu releases preceding 12.04, the .mo files <a href="https://bugs.launchpad.net/ubuntu/+source/sphinx/+bug/480913">did not get packaged with the locales</a>.</li>
<li>Unicode support isn&#8217;t very well supported in the default sphinx setup, so I decided to swap over to XeLaTeX. This involved a substantial amount of tweaking.</li>
<li>Docutils changed its api (in version 0.8 onwards, which is in Ubuntu 12.04) and thus began reporting, for example, &#8216;ngerman&#8217; instead of &#8216;de&#8217;. <a href="https://bugs.launchpad.net/ubuntu/+source/sphinx/+bug/997891">Sphinx wasn&#8217;t expecting that</a>. This is fixed in the bleeding edge version of sphinx, and via a patch in ubuntu precise/quantal and debian sid.</li>
<li>If a language isn&#8217;t supported natively by Sphinx, it will not apply the gettext translations to certain build types.</li>
<li>I had never used Sphinx, rST or LaTeX before, and my python is effectively non-existent, so I have no idea what I&#8217;m doing.</li>
</ul>
<p>Finally, after working out how to get around some of those, I think I have it all working. The resulting solution:</p>
<ul>
<li>Uses packages in the Ubuntu repositories</li>
<li>Grabs the .po files from launchpad (where the translating happens), converts them to .mo files and places them under the necessary paths in source/locales</li>
<li>Grabs the translated image sets from git and drops them over the default english version in source/images</li>
<li>Patches the generated LaTeX source and its pdf Makefile to use XeLaTeX cleanly.</li>
</ul>
<p>You&#8217;ll need to install:</p>
<pre class="brush: plain; title: ; notranslate">gettext, git-core, bzr, make, ttf-wqy-microhei, ttf-freefont, mendexk, texlive-latex-extra, texlive-fonts-recommended, texlive-latex-recommended, texlive-xetex, ttf-indic-fonts-core, texlive-lang-all, python-pybabel</pre>
<p>For grabbing the .po files from launchpad, I wrote <a href="https://gitorious.org/~melissa/mahara/melissas-mahara-manual/blobs/1.5_STABLE/generate-mo-files.sh">a little bash script</a> which gets passed a version number ($1 = the mahara version, such as 1.5):</p>
<pre class="brush: bash; title: ; notranslate">#!/bin/bash

if which bzr &gt;/dev/null; then
echo &quot;Starting import of translations...&quot;
else
echo &quot;Please install bzr before continuing.&quot;
exit
fi

if [ ! -d launchpad ]; then
echo &quot;Checking out the launchpad .po files&quot;
bzr branch lp:~mahara-lang/mahara-manual/$1_STABLE-export launchpad
else
echo &quot;Updating .po collection from launchpad&quot;
cd launchpad &amp;&amp; bzr pull &amp;&amp; cd ..
fi

echo &quot;Cleaning up from last time&quot;
rm -r source/locales # msgfmt will do merging otherwise

for dir in launchpad/potfiles/*; do
echo &quot;Creating $dir .mo files&quot;
for file in $dir/*; do
mofile=&quot;$(basename $file | sed s%.po$%%)/LC_MESSAGES$(echo $dir | sed s%launchpad/potfiles%%).mo&quot;
mkdir -p &quot;source/locales/$(basename $file | sed s%.po$%%)/LC_MESSAGES&quot;
msgfmt &quot;$dir/$(basename $file)&quot; -o &quot;source/locales/$mofile&quot;
done
done</pre>
<p>To avoid the translators being dumped into a pile of Sphinx configuration and rST source, I set up an external git repo with the necessary assortment of image directories. From there, I added it as a git submodule. Getting the images is now a case of using <a href="https://gitorious.org/~melissa/mahara/melissas-mahara-manual/blobs/1.5_STABLE/get-localised-images.sh">another small script</a> (again, $1 = the mahara version):</p>
<pre class="brush: bash; title: ; notranslate">#!/bin/bash

if which git &gt;/dev/null; then
echo &quot;Starting import of localised images...&quot;
else
echo &quot;Please install git before continuing.&quot;
exit
fi

echo &quot;Updating the image submodule&quot;
git submodule init
git submodule update
echo &quot;Updating image collection from gitorious&quot;
cd localeimages
git checkout $1_STABLE
git pull
cd ..</pre>
<p>That&#8217;s the external data fetched, now the real fun begins; the main makefile of sphinx required quite some mutilation.</p>
<p>I needed to teach it about locales and give it a way to pass in the Mahara version, since there are several versions of the documentation:</p>
<pre class="brush: plain; title: ; notranslate">MAHARA        =
CLEAN         = bn cs da de en es et fa fi fr hr hu it lt lv ne nl pl pt_BR ru sk sl sv tr uk_UA
PATCHED       = ca hi ja ko zh_CN zh_TW
UNSUPPORTED   = hi
TRANSLATIONS  = $(CLEAN) $(PATCHED)</pre>
<p>All of these can be overridden when invoking Make.</p>
<ul>
<li>&#8220;mahara&#8221; is the mahara documentation version we&#8217;re building.</li>
<li>&#8220;clean&#8221; means patching of the LaTeX and generated Makefile is unnecessary.</li>
<li>&#8220;patched&#8221; means the LaTeX and generated Makefile need some extra tweaking to do what we wanted.</li>
<li>&#8220;unsupported&#8221; means that it&#8217;s a language not supported natively by Sphinx.</li>
<li>&#8220;translations&#8221; is just a grouping of the patched and clean collections for convenience.</li>
</ul>
<p>Then I tweaked the cleanup and added a new make call for getting updates without blowing everything away.</p>
<pre class="brush: bash; title: ; notranslate">clean:
-rm -rf $(BUILDDIR)/*
-rm -rf source/locales/*

update:
git checkout .
git checkout $(MAHARA)_STABLE
git pull
sh generate-mo-files.sh $(MAHARA)
sh get-localised-images.sh $(MAHARA)</pre>
<p>For each manual format, I needed to make it iterate over the translations. This is the example for the html export.</p>
<pre class="brush: bash; title: ; notranslate">html:
$(foreach TRANSLATION,$(TRANSLATIONS), \
git checkout source/images ; \
cp -ra localeimages/$(TRANSLATION)/* source/images/ ; \
$(SPHINXBUILD) -a -D language=$(TRANSLATION) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/$(MAHARA)/html/$(TRANSLATION) \
;)
git checkout source/images
@echo
@echo &quot;Build finished. The HTML pages are in $(BUILDDIR)/$(MAHARA)/html/.&quot;</pre>
<p>And that&#8217;s roughly how it looks for all the formats&#8230;</p>
<p>Except the latexpdf option.</p>
<p>It genuinely surprises me how clumsy LaTeX is when it comes to unicode (yes, I know TeX predates unicode, but still!), and it surprises me more that sphinx doesn&#8217;t use a more unicode-friendly parser such as XeLaTeX. Hence, to get a more unicode-friendly process going so that we could use trivial things such as Writing Systems That Aren&#8217;t Latin and do fun things like &#8220;→&#8221; instead of &#8220;-&gt;&#8221;, I used the Japanese support as a guide. It has its own separate pdf compilation script in the LaTeX Makefile, so I took that and made it awesome by converting it from pLaTeX to XeLaTeX, and use it for ALL the locales.</p>
<p><img class="aligncenter size-full wp-image-605" title="3pgsl9" src="http://geekosophical.net/wp-content/uploads/2012/05/3pgsl9.jpg" alt="" width="552" height="414" /></p>
<p>All the locales get modified by <a href="https://gitorious.org/~melissa/mahara/melissas-mahara-manual/trees/1.5_STABLE/patches">patches</a>. There&#8217;s a patch to swap out the pLaTeX Makefile stuff with XeLaTeX, and tweak a .sty that was overriding the heading font. The .tex file is modified by another patch to make it work with XeLaTeX. Finally, a handful of patches get applied to a few individual translations to ensure that they are using decent fonts for their writing systems and other select tweaks.</p>
<p>The majority of the XeLaTeX changes could be put into the preamble in the conf.py file:</p>
<pre class="brush: plain; title: ; notranslate">latex_preamble = '''
\\RequirePackage{ifxetex}
\\RequireXeTeX
\\usepackage{xltxtra} %xltxtra = fontspec, xunicode, etc.
\\usepackage{verbatim}
\\usepackage{url}
\\usepackage{fontspec}
\\setmainfont{FreeSerif}
\\usepackage{amsmath}
\\usepackage{amsfonts}
\\usepackage{xunicode}
'''</pre>
<p>The resulting Make incantation is thus (and not for the faint of heart):</p>
<pre class="brush: bash; title: ; notranslate">latexpdf:
$(foreach TRANSLATION,$(UNSUPPORTED), \
mkdir -p source/locales/$(TRANSLATION)/LC_MESSAGES
cp -n /usr/share/locale-langpack/en_AU/LC_MESSAGES/sphinx.mo source/locales/$(TRANSLATION)/LC_MESSAGES/sphinx.mo \
;)
$(foreach TRANSLATION,$(TRANSLATIONS), \
git checkout source/images ; \
cp -ra localeimages/$(TRANSLATION)/* source/images ; \
$(SPHINXBUILD) -a -D language=$(TRANSLATION) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/$(MAHARA)/latex/$(TRANSLATION); \
cp patches/makesty.patch $(BUILDDIR)/$(MAHARA)/latex/$(TRANSLATION); \
cp patches/tex.patch $(BUILDDIR)/$(MAHARA)/latex/$(TRANSLATION); \
patch --directory=$(BUILDDIR)/$(MAHARA)/latex/$(TRANSLATION) -p1 &lt; $(BUILDDIR)/$(MAHARA)/latex/$(TRANSLATION)/makesty.patch; \
patch --directory=$(BUILDDIR)/$(MAHARA)/latex/$(TRANSLATION) -p1 &lt; $(BUILDDIR)/$(MAHARA)/latex/$(TRANSLATION)/tex.patch \
;)
$(foreach TRANSLATION,$(CLEAN), \
make -C $(BUILDDIR)/$(MAHARA)/latex/$(TRANSLATION) all-pdf-ja \
;)
$(foreach TRANSLATION,$(PATCHED), \
cp patches/$(TRANSLATION).patch $(BUILDDIR)/$(MAHARA)/latex/$(TRANSLATION); \
patch --directory=$(BUILDDIR)/$(MAHARA)/latex/$(TRANSLATION) -p1 &lt; $(BUILDDIR)/$(MAHARA)/latex/$(TRANSLATION)/$(TRANSLATION).patch; \
make -C $(BUILDDIR)/$(MAHARA)/latex/$(TRANSLATION) all-pdf-ja;  \
patch -R --directory=$(BUILDDIR)/$(MAHARA)/latex/$(TRANSLATION) -p1 &lt; $(BUILDDIR)/$(MAHARA)/latex/$(TRANSLATION)/$(TRANSLATION).patch \
;)
$(foreach TRANSLATION,$(TRANSLATIONS), \
patch -R --directory=$(BUILDDIR)/$(MAHARA)/latex/$(TRANSLATION) -p1 &lt; $(BUILDDIR)/$(MAHARA)/latex/$(TRANSLATION)/tex.patch; \
patch -R --directory=$(BUILDDIR)/$(MAHARA)/latex/$(TRANSLATION) -p1 &lt; $(BUILDDIR)/$(MAHARA)/latex/$(TRANSLATION)/makesty.patch \
;)
git checkout source/images
@echo &quot;pdflatex finished; the PDF files are in $(BUILDDIR)/$(MAHARA)/latex.&quot;</pre>
<p>In summary, what this does is:</p>
<ul>
<li>Copies an existing sphinx.mo into the locales directory for Unsupported languages</li>
<li>Makes sure the images are default as per git, then copies the localised images over the top of the default ones for each translation</li>
<li>Then runs sphinx-build</li>
<li>And does the common patching</li>
<li>Invokes make on the locales that do not need additional patching</li>
<li>Performs the additional patching</li>
<li>Invokes make on the locales which did need additional patching</li>
<li>Reverses all the patches</li>
<li>Makes sure the images are clean as per git once more.</li>
</ul>
<p>After all of that, cron (or whatever triggers the build) should run something like this:</p>
<pre class="brush: plain; title: ; notranslate">make update html epub latexpdf MAHARA=1.5</pre>
<p>Once we have a server for this to live on and more people contribute translations, there are undoubtedly some edge cases that we&#8217;ll come across that I haven&#8217;t accounted for (I just don&#8217;t have the data right now to find them,) and the process will need tweaking.</p>
<p>I&#8217;m pretty sure there are better ways to do some of this (since I was learning many of the components while winging it,) but this is what I&#8217;ve ended up with. What started out a seemingly simple task, wasn&#8217;t.</p>
]]></content:encoded>
			<wfw:commentRss>http://geekosophical.net/?feed=rss2&#038;p=576</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Open Source Library system threatened by trademark</title>
		<link>http://geekosophical.net/?p=562</link>
		<comments>http://geekosophical.net/?p=562#comments</comments>
		<pubDate>Wed, 23 Nov 2011 23:12:01 +0000</pubDate>
		<dc:creator>melissa</dc:creator>
				<category><![CDATA[Unsorted]]></category>
		<category><![CDATA[koha]]></category>
		<category><![CDATA[library]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[trademark trolls]]></category>

		<guid isPermaLink="false">http://www.geekosophical.net/?p=562</guid>
		<description><![CDATA[Koha is an open source library management system that has been around for about 12 years. It began its life when a rural New Zealand library decided to bake their own system rather than change to something else. The Horowhenua &#8230; <a href="http://geekosophical.net/?p=562">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><a href="http://koha-community.org">Koha</a> is an open source library management system that has been around for about 12 years. It began its life when a rural New Zealand library decided to bake their own system rather than change to something else. The Horowhenua Library Trust opened the source and gave Koha to the world. Koha is now used in a huge number of libraries globally and is highly respected.</p>
<p>I found out on Tuesday via a colleague* that <a href="http://diligentroom.wordpress.com/2011/11/22/the-exemplar-of-stupid-koha-vs-liblime-trademark/">the project is now facing a legal threat</a> in the form of a trademark application.</p>
<p>While I won&#8217;t go into the finer details about the offending company in question (the last link has hints if you&#8217;re so inclined), I can assure you that they are not acting in the best interests of this open source project.</p>
<p>Koha is actually a word in the local <a href="http://en.wikipedia.org/wiki/M%C4%81ori_language">Te Reo Māori language</a> that means gift, and is also the <a href="http://en.wikipedia.org/wiki/Koha_(custom)">custom of gift giving</a>. The offending company is not only threatening the name of a project, they are attempting to trademark an important word in the local culture. Te Reo Māori is not a dead language by far; over 130000 people can hold at least some conversation in it, and in New Zealand many signs (especially government ones) include a Te Reo translation.</p>
<p>The Trust has made up its mind as to how they are going to deal with this, and that is their choice and <em>their choice alone</em>; they are going to defend the name and the Māori word by challenging the trademark application. To do this however, they will require help.</p>
<p>Right now the best help you can bestow upon the Trust and the project is to chip in a few dollars to help with the associated costs, or if the pennies are tight, you can assist in spreading the word.</p>
<p>After speaking to <a href="http://jonobacon.org">Jono</a> on Tuesday about the situation, he graciously <a href="https://twitter.com/#!/jonobacon/status/138816845821120512">tweeted</a> to help &#8212; please follow his example.</p>
<p>If you <em>don&#8217;t</em> feel this is worthwhile , then <strong><em>please please please don&#8217;t</em></strong> interject to be dismissive. Be courteous and respectful; this is far more than a trademark issue to many of the people involved.<em> The decision to defend the name is their prerogative, either help or let it be.</em></p>
<p>&nbsp;</p>
<p><em>* Full disclosure: The <a title="Catalyst IT" href="http://catalyst.net.nz">company</a> I work for contributes to Koha and offers training and other related services.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://geekosophical.net/?feed=rss2&#038;p=562</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Countries and avatars and PEARs</title>
		<link>http://geekosophical.net/?p=535</link>
		<comments>http://geekosophical.net/?p=535#comments</comments>
		<pubDate>Fri, 24 Jun 2011 13:48:37 +0000</pubDate>
		<dc:creator>melissa</dc:creator>
				<category><![CDATA[Unsorted]]></category>

		<guid isPermaLink="false">http://www.geekosophical.net/?p=535</guid>
		<description><![CDATA[Nearly three months ago now I left Australia and moved to New Zealand. I was fortunate enough to essentially transfer within the company I work for, so it was reasonably painless (except for the 9 weeks of waiting for my &#8230; <a href="http://geekosophical.net/?p=535">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>Nearly three months ago now I left Australia and moved to New Zealand. I was fortunate enough to essentially transfer within <a href="https://catalyst.net.nz">the company I work for</a>, so it was reasonably painless (except for the 9 weeks of waiting for my boxes of stuff to get shipped).</p>
<p>The office here is significantly larger than the Australian office (being where the company started and all) and I&#8217;m really enjoying having lots of smart people around and getting to work on a much larger variety of projects.</p>
<p>As with how these things go in free/libre/opensource-land, one can accidentally get involved in the <a href="http://libravatar.org">projects</a> of <a href="http://feeding.cloud.geek.nz">colleagues</a>.</p>
<p><a href="http://libravatar.org">Libravatar</a> is an AGPL federated alternative for the <a href="http://gravatar.com">Gravatar</a> service, allowing domain holders to serve their own avatars for email and openid from their own infrastructure, rather than trusting external closed services. Francois will be <a href="http://www.oscon.com/oscon2011/public/schedule/detail/18773">presenting about it at OSCON</a>. He has stickers.</p>
<p><a href="http://www.geekosophical.net/wp-content/uploads/2011/06/25062011796.jpg"><img src="http://www.geekosophical.net/wp-content/uploads/2011/06/25062011796.jpg" alt="" title="25062011796" width="500" height="257" class="aligncenter size-full wp-image-552" /></a></p>
<p>One of the things we&#8217;re working on to make for better adoption of Libravatar is making sure there are <a href="http://wiki.libravatar.org/libraries/">libraries</a> available for various languages so applications can incorporate it as easily as they can Gravatar (or easier!). I volunteered to have a crack at making a <a href="http://pear.php.net">PEAR</a> package.</p>
<p>I&#8217;d never done PEAR before. The documentation is somewhat obscure, but I found <a href="http://devzone.zend.com/article/1051">a good article on</a>, of all places, Zend.com.</p>
<p>So that&#8217;s sweet. Write your class (in the <a href="http://pear.php.net/group/docs/20031114-pds.php">correct file structure</a>), copy and customise the makepackage.php file from the docs for <a href="http://pear.php.net/package/PEAR_PackageFileManager2">PEAR_PackageFileManager2</a> (<code>pear install PEAR_PackageFileManager2</code>), run <code>php makepackage.php make</code> to generate the xml build instructions (which expire at midnight for fun!) and then simply <code>pear package</code>. Voila, you made a PEAR package. Amazingly simple once you know how.</p>
<p>The next part, however, isn&#8217;t simple.</p>
<p>If you want your package to be in the Official PEAR Channel, you have to walk over some burning coals, hop through a ring of fire and some random other tribulations thrown in for good measure.</p>
<p>The easiest of this is getting your code to comply with the <a href="http://pear.php.net/manual/en/standards.php">PEAR Coding Standards</a>. I strongly recommend employing phpcs aka <a href="http://pear.php.net/PHP_CodeSniffer">PHP_CodeSniffer</a> (it&#8217;s a PEAR package! <code>pear install PHP_CodeSniffer</code>).</p>
<p>You may be tempted to have some documentation generated with <a href="http://www.phpdoc.org/">phpdoc</a> in your actual package. Because it&#8217;s useful and will make your stuff more usable. You can&#8217;t. The .css files don&#8217;t pass the PHP_CodeSniffer PEAR standards tests. It took me nearly a month to get a definitive answer on whether it was possible to keep them in.</p>
<p>The next part is the peer review. I first <a href="http://pear.php.net/pepr/pepr-proposal-show.php?id=658">proposed the package</a> about a month ago. I got some suggestions about style, some pointing at the coding standards and file structure, and a suggestion to depend on a PEAR package to do what a core php function does better. Because of php 5.2. Which is EOL&#8217;d. I refused the dependency for dependency sake suggestion. Because, lolwat?</p>
<p>What this review stage didn&#8217;t pick up was a handful of bugs that made the package not work right. They&#8217;ve been fixed.</p>
<p>Earlier this week I moved the proposal to the voting stage. Now, apparently, this is where the code review actually starts. So far I&#8217;ve had suggestions to&#8230; basically rewrite it, and dependency for dependency sake, again. This was stated as conditional for a +1 vote.</p>
<p>Sigh.</p>
<p>Well, I&#8217;ll see how it goes. I cannot see technical reasoning other than preference for the suggestions, and nor can others who are fed up with the PEAR proposal process <em>just from watching</em> me go through it. Even if it fails to get into the main PEAR channel, <a href="http://pear.php.net/channels/">it&#8217;s not game over</a>.</p>
<p>Back when I was looking for an answer as to whether I could keep the phpdoc generated documentation in the package, I asked a friend who is involved in the php community if she knew. She asked around for me, and the overwhelming response she got was that PEAR was out of fashion because of the politics, and to not bother. Given how other languages successfully manage to have extension management, and how predominant php is, it&#8217;s truly a crying shame.</p>
<p>The cpan library and pypi library have been available for a while now either as part of the gravatar library (cpan) or independently (pypi). PEAR doesn&#8217;t even offer a Gravatar library. <em>Just sayin&#8217;</em>!</p>
]]></content:encoded>
			<wfw:commentRss>http://geekosophical.net/?feed=rss2&#038;p=535</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
