<?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>dMaggot&#039;s Blog</title>
	<atom:link href="http://blog.dmaggot.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.dmaggot.org</link>
	<description>Some news on the scientific side of my life</description>
	<lastBuildDate>Wed, 08 Feb 2012 05:12:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>Notes on Plugin Development in ProjectPier</title>
		<link>http://blog.dmaggot.org/2012/02/notes-on-plugin-development-in-projectpier/</link>
		<comments>http://blog.dmaggot.org/2012/02/notes-on-plugin-development-in-projectpier/#comments</comments>
		<pubDate>Wed, 08 Feb 2012 05:12:20 +0000</pubDate>
		<dc:creator>dMaggot</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[ProjectPier]]></category>

		<guid isPermaLink="false">http://blog.dmaggot.org/?p=301</guid>
		<description><![CDATA[Quick notes about developing plugins for ProjectPier 0.8.8. I expect to be able to merge these notes into the official documentation, but in the meantime, I'll put these in my blog.]]></description>
			<content:encoded><![CDATA[<p>For those of you who didn&#8217;t know about <a title="Project Pier" href="http://www.projectpier.org" target="_blank">ProjectPier</a>, it is yet another web-based Project Manager. What makes it different from the rest of them? Well, the fact that we use it in <a title="Floss-Pa" href="http://www.floss-pa.org" target="_blank">Floss-Pa</a> to manage our projects <img src='http://blog.dmaggot.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  I remember that the decision to use ProjectPier over some other options we were managing back then, was the fact that it doesn&#8217;t offer a complex interface so people could actually jump in, grab a file, write a comment, close a task, and jump out. No fancy javascript going on, no full integration with your blood cells, just a web interface to keep track of things&#8230; simple.</p>
<p>On the other hand, we were looking for a simple way to keep track of some finances in Floss-Pa, namely selling t-shirts and souvenirs and keeping track of sales and expenses (yes, we are always looking for simple stuff -it is complicated enough to be part of a Free Software Community in our country). I came up with the idea of developing a plugin for ProjectPier that would just list transactions and let you add/edit/delete them as needed.</p>
<p>I finally sat down this weekend, and besides finishing a rough first version of the <a title="Finances Plugin" href="https://gitorious.org/sitio-web/projectpier-finances" target="_blank">plugin</a>, I gathered these notes that will hopefully help anyone trying to develop their own plugin too.</p>
<p><strong>Where to Start</strong></p>
<p>It doesn&#8217;t seem easy to find where to start looking for documentation when you want to write your first plugin. From my experience, the following <a title="Plugin Howto" href="http://www.projectpier.org/node/2668" target="_blank">forum post</a> was the most helpful in setting me up for development. You should be very careful with the large amount of references to ProjectLinks that appear in the code when you copy and paste it &#8211; some of these references were still allive days after I had started coding.</p>
<p><strong>Update Notes</strong></p>
<p>The very first thing I had to do to start developing was upgrading from version 0.8.6 to 0.8.8, which turned out to be not as straightforward as it could have been. Yet, all hassle can be prevented by enabling all your plugins before the update, so I sent out a patch to the upgrade instructions which was kindly merged, and you should be able to follow the <a title="ProjectPier 0.8.8 Upgrade" href="https://github.com/phpfreak/Project-Pier/blob/master/upgrade.txt" target="_blank">updated instructions</a> to have ProjectPier 0.8.8 in no time.</p>
<p><strong>Database Types</strong></p>
<p>When developing your plugin, you&#8217;ll most likely be defining your own database table to store your plugin information. While defining the tables can be done in good ol&#8217; SQL, you still need to specify column mappings in the model code. For that, ProjectPier uses a set of data types constants &#8211; you can see some of them in use in the <a title="ProjectPier Database Data Types" href="https://github.com/phpfreak/Project-Pier/blob/master/application/plugins/links/models/base/BaseProjectLinks.class.php" target="_blank">ProjectLinks plugin</a>. For a complete list of available data types, check the <tt><a title="ProjectPier Constants" href="https://github.com/phpfreak/Project-Pier/blob/master/environment/constants.php" target="_blank">environment/constants.php</a></tt> file int he project, which also defines other constants you might need later.</p>
<p><strong>Form Reference</strong></p>
<p>Like most PHP applications and frameworks, ProjectPier creates a wrapper around the form tags for templates. Again, you can check templates fromt he ProjectLinks plugin to have an idea of available wrappers, but a full list can be found at <tt><a title="ProjectPier Form Widgets" href="https://github.com/phpfreak/Project-Pier/blob/master/application/helpers/form.php" target="_blank">application/helpers/form.php</a></tt> and there you will find some incomplete widgets you don&#8217;t want to use.</p>
<p><strong>Error Logs</strong></p>
<p>I was very concerned when I noticed I was not getting error logs in the usual Apache location &#8211; being able to quickly see the error messages is essential for effective development. But no worries, clicking around in the application, I found that, when logged in as an administrator, you can browse to the Administration -&gt; Tools -&gt; Browse System Logs menu to see a log of all error messages. This is your friend while debugging your code, you will see all fatal errors and warnings you are missing in the server error logs. When you are dealing with an issue, you can click on the First Page link to see the latest error message (the reason why it doesn&#8217;t show up in the first page at the begining, or the number of pages displayed seem all like a bug to me, but I didn&#8217;t investigate further).</p>
<p>One thing you&#8217;ll quickly want to do is get rid of messages about errros you already fixed. That way, you can be sure the messages you see are only about current errors. To clear your logs, browse to the /tools/clearlog.php page of your installation (e.g. http://www.example.com/tools/clearlog.php). I agree there should be a link somewhere to do this, but I couldn&#8217;t find any so this is my proposed workaround.</p>
<p><strong>Traces</strong></p>
<p>One last useful tip for developing and debugging your plugins are the traces. If you are examining the ProjectLinks code you will notice many calls to a <tt>trace()</tt> function that you can use to write debugging information. You will also notice that this messages don&#8217;t go to the log, so where do they go? Well, I found out that adding a <tt>&amp;trace=1</tt> to your URLs will have those messages written to the <tt>cache/trace.txt</tt> file in your installation, so you can enable and disable this feature per URL whenever you want to take a look at a particular tracing. Be sure to delte that file after debugging, since it is a publicly available file and may contain sensitive information.</p>
<p>With all of these tips, developing for ProjectPier should be a lot easier. There are some other things we are missing for our Finances plugin, but in general, everything is in place and it just takes a little code diving to get everything to a working state. You can ping the developers of this project at their IRC channel, #projectpier at Freenode, in case you need assistance.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmaggot.org/2012/02/notes-on-plugin-development-in-projectpier/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Electrocuting Modern Elephants</title>
		<link>http://blog.dmaggot.org/2012/01/electrocuting-modern-elephants/</link>
		<comments>http://blog.dmaggot.org/2012/01/electrocuting-modern-elephants/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 03:22:43 +0000</pubDate>
		<dc:creator>dMaggot</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.dmaggot.org/?p=293</guid>
		<description><![CDATA[Finally my position about SOPA, ACTA, PIPA and friends... it was about time to jump into the flame war, wasn't it?]]></description>
			<content:encoded><![CDATA[<p>Even as a member of the IEEE, an Institute whose origins date back to <a href="http://http://en.wikipedia.org/wiki/Thomas_Alva_Edison" target="_blank">Thomas Alva Edison</a>&#8216;s work as a visionary inventor, I must admit the guy had some very serious issues when dealing with business. He stole, cheated, bribed but one of the most impressive things I learned about Edison was that he electrocuted animals in public. He would do so to exemplify that Alternate Current, a new development at that time that promised cheaper electricity for wider areas, was extremely dangerous and could kill humans (he later supported the idea of the electric chair for the same purpose), and he would do that because he had almost full control over Direct Current distribution in the United States at that time, so he really wanted to keep people away from AC. This was called the <a href="http://en.wikipedia.org/wiki/Thomas_Alva_Edison#War_of_currents" target="_blank">War of Currents</a> and a notable killing of that time was that of <a href="http://en.wikipedia.org/wiki/Topsy_(elephant)" target="_blank">Topsy the Elephant</a>, which was even caught on tape and remains as a shocking proof of this period of industrial evolution.</p>
<p><div class="wp-caption aligncenter" style="width: 411px"><img title="Dead Topsy" src="http://upload.wikimedia.org/wikipedia/commons/2/27/DeadTopsy.jpg" alt="Topsy the Elephant after the electrocution" width="401" height="253" /><p class="wp-caption-text">Topsy the Elephant after the electrocution</p></div></p>
<p>Satanizing AC was solely a business method. Edison knew there was nothing fundamentally wrong about AC but some quirks that could well be fixed. He could have adapted to the emerging business of DC &#8211; his company was the lead in electricity at that time after all &#8211; but he just didn&#8217;t want to let go his technology, and he was clearly willing to do anything to stop the competition. Now, if you look around you&#8217;ll noticed it didn&#8217;t turn out so well: AC supplies electricity to most modern houses and buildings, and we are even starting to send data through the electricity connections; moreover, even when AC is widespread, batteries supplying DC in small devices are still widely used too, so at the end both technologies found their market and coexist in our modern era.</p>
<p>Now, lately we have been reading all over the web about some new legislations that are designed to protect the business of companies that are threatened by piracy. The very fact that I&#8217;m using the word piracy is a byproduct of a whole media campaign that has been put around an emerging technology that has brought tons of changes to the world we know: the Internet. I&#8217;m, of course, talking about our friends ACTA, PIPA, SOPA, DRM, and any other acronym that threatens the web and the freedom of users.</p>
<p>The explosion of the Web has made millions of bytes readily available to each and every desktop around the world, and information can circle the entire planet in seconds, bringing little to no boundaries to the transmission of ideas and media. This is, of course, very good: it&#8217;s actually what <a href="http://en.wikipedia.org/wiki/Johannes_Gutenberg">Gutenberg</a> once tried to accomplish using methods significantly slower. And now that we have achieved this level of communications, we have been convinced of the fact that using it is a crime.</p>
<p>Wake up! What companies like Sony, Microsoft and Apple are really trying to do is keep a market that they already lost before the technology. Sony had their time, when it was extremely difficult to let people listen to your music because the distribution media was expensive and required global logistics to reach every interested audience in the world. Nowadays, you can upload just about anything to Youtube (as crappy as it can be) and you will have a worldwide audience making you famous in a matter of days. Sony is, therefore, out of the equation these days, and alternatives like Creative Commons licenses are the modern way to deal with multimedia. That is because CC licenses start off by the (obvious) fact that everything can be shared in this modern world, and they focus on letting you control how to share your digital media.</p>
<p>Microsoft is supporting just about any idea to stop piracy. Of course! They don&#8217;t need it anymore. There were easy tricks back in the 90&#8242;s to stop the widespread usage of illegal copies of the MS Office suite, but they were intelligent enough to let it run in the wild, spreading proprietary formats and making adicts out of users that are left with no remedy but paying for licenses now that they are &#8220;serious&#8221; against piracy and have come with some very clever ways to stop illegal distribution of copies. If they were honest enough, they would step up and tell fellow companies &#8220;hey, this is just the way things work: people are going to share illegal copies, but you can still make business out of this as we did&#8221;.</p>
<p>And as fast as hardware technology grows, DRM is contaminating every invention out there, backed by companies like Apple that really think that if they are going to sink in their old fashioned business methods, the rest of the world must sink with them. We now have cables that are capable of blocking you from watching your own media, ala Terminator. If the transmission of bits and bytes are illegal, we could very well start pursuing people with any type of cables in the streets: LAN cables, USB cables, those are all dangerous potential criminals.</p>
<p>Finally, the one argument that has always looked stupid to me, is that old rhyme that says &#8220;Piracy money supports terrorist, ergo, all pirates are terrorists&#8221;. Heck, the truth is that, if flowers were better business, terrorists would be selling flowers, thus making flowers illegal, and florists would turn into terrorist &#8211; makes sense?</p>
<p>This is all very much like if back in the days when the commercial flights started to be popular, ship companies tried to make people believe that boarding airplanes was illegal. That just wouldn&#8217;t work and nowadays we have clear markets for both technologies and people even travel on cruise ships for pleasure. If any given company, as large as it can be, is not willing to adapt to a new technology, that has nothing to do with the general public. Creating laws to defend these dinosaurs, cuffing users for exercising their freedom to use technology,  is just insane. We have been led to believe that sharing copyrighted things is illegal, but little has been discussed about the nature of the laws that declare that illegal: do they even make sense in modern days?</p>
<p>So I&#8217;m clearly standing against these laws and treaties, but my cause is not to defend piracy: it&#8217;s recognizing this whole intelectual property system as obsolete. We should start over from scratch and think of a law system that can coexist with the technology we have in our hands now and only then can we speak about breaking the law.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmaggot.org/2012/01/electrocuting-modern-elephants/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Genkernel and AUFS for Writable Live Media in Gentoo</title>
		<link>http://blog.dmaggot.org/2011/11/genkernel-and-aufs-for-writable-live-media-in-gentoo/</link>
		<comments>http://blog.dmaggot.org/2011/11/genkernel-and-aufs-for-writable-live-media-in-gentoo/#comments</comments>
		<pubDate>Tue, 29 Nov 2011 00:26:22 +0000</pubDate>
		<dc:creator>dMaggot</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.dmaggot.org/?p=282</guid>
		<description><![CDATA[If you want to create Live Media (LiveCD or LiveUSB) with writable contents out of a Gentoo box, you can use genkernel to set up a kernel for that, but it can be tricky due to the lack of documentation.]]></description>
			<content:encoded><![CDATA[<p>I recently wanted to create a Live USB with a very basic Gentoo installation but with the particular feature of being able to emerge packages from it. For that feature, I quickly learned I needed to have boot configured so that <code>/usr</code> was mounted read &amp; write (or at least <code>/usr/portage</code>) and there are a number of ways to do that:</p>
<ol>
<li>Genkernel&#8217;s default scripts mount some of the common work folder into the memory (namely <code>/etc</code>, <code>/root</code>, <code>/home</code> and <code>/var</code>) and you can add <code>/usr</code> to that list by modifying the <code>initrd.defaults</code> included in the <code>initrd</code>. To do so, take a copy of the <code>initrd.defaults</code> script from <code>/usr/share/genkernel/defaults</code>, modify it to include <code>/usr</code> in the <code>ROOT_TREES</code> varible, then include that modified copy in the initrd by using commands similar to the ones included at the end of this post (there&#8217;s a subtle reason why you can&#8217;t just add <code>/usr/portage</code> but you can check that out by grepping <code>ROOT_TREES</code> in <code>initrd.scripts</code>). The obvious drawback of this approach is that, since these all are mounted on memory, you better have a lot of memory to handle the portage tree and the rest of your activities in the Live Media.</li>
<li>Use UnionFS, which is supported by Genkernel. To do so, simply add the <code>--unionfs</code> to your call to genkernel and then add the unionfs flag to the kernel boot line in the boot loader (grub, lilo, syslinux, &#8230;). The drawback of this approach is that UnionFS is already being deprecated by AUFS so you probably want to keep reading for an AUFS solution.</li>
<li>Use AUFS support in Genkernel, as explained below.</li>
</ol>
<p>I&#8217;m not going to cover the basics of creating a Live Media from a Gentoo Stage 3 installation, there are plenty How-Tos about that. After you have emerged your kernel sources and genkernel, you need to emerge aufs3 (aufs2 if you are using any kernel before 3.0) and it will automatically patch your kernel sources to include aufs support (these brilliant Gentoo developers <img src='http://blog.dmaggot.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) and only after that can you run genkernel to compile and install your kernel image. Yet, the module is compiled outside the kernel and not included in genkernel&#8217;s initrd by default, so it won&#8217;t be available while booting. To fix this, you can either use genkernel&#8217;s <code>--all-ramdisk-modules</code>, which will copy all of your kernel modules to the initrd and will probably bloat your initrd, or you can manually add the kernel module to your initrd. To do this, you need to decompress the initrd image, add the aufs kernel module and compress it back, as follows:</p>
<p>
<div class="codesnip-container" ><div class="bash codesnip" style="font-family:monospace;"><span class="co0"># mkdir initrd.fix</span><br />
<span class="co0"># cd initrd.fix</span><br />
<span class="co0"># zcat /boot/&lt;your-initrd-image&gt; | cpio -i</span><br />
<span class="co0"># cp -r /lib/modules/&lt;your-kernel-version&gt;/misc/ lib/modules/&lt;your-kernel-version&gt;/</span><br />
<span class="co0"># find . | cpio -H newc -o | gzip -c &gt; /boot/&lt;your-initrd-image&gt;</span></div></div>
</p>
<p>After that, just add the aufs kernel option to your kernel line in the boot loader and you should be good to go! Share any questions or shortcuts in the comments.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmaggot.org/2011/11/genkernel-and-aufs-for-writable-live-media-in-gentoo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Kuest for Kalendars</title>
		<link>http://blog.dmaggot.org/2011/11/the-kuest-for-kalendars/</link>
		<comments>http://blog.dmaggot.org/2011/11/the-kuest-for-kalendars/#comments</comments>
		<pubDate>Mon, 21 Nov 2011 10:19:10 +0000</pubDate>
		<dc:creator>dMaggot</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[KDE]]></category>

		<guid isPermaLink="false">http://blog.dmaggot.org/?p=274</guid>
		<description><![CDATA[A rather long post about many improvements to calendar-related issues I've been working on in KDE.]]></description>
			<content:encoded><![CDATA[<p>It all started in September, a week before Software Freedom Day, when I was considering ways to leverage our events calendar in <a title="Floss-Pa" href="http://www.floss-pa.org/event" target="_blank">Floss-Pa</a> to let everybody carry our calendar around. I started playing with remote iCals in my cell phone and, of course, in KDE which was at 4.7.1 at that time &#8211; and that didnt&#8217; work. I noticed adding a remote URL as an iCal resource worked (as in &#8220;added the events in KOrganizer and the Calendar applet&#8221;) but caused constant Plasma crashes. I replicated the issue in both my PC and my Laptop, so I was quite sure it was a bug.</p>
<p>I had recently been accepted as a KDE Developer, just working on Kig mainly, so I thought it was a good chance to try patching somewhere else. I found out it was actually Akonadi related, so I started looking around for the particular KDE PIM project that dealt with the code and eventually (after fetching pretty much all of the main PIM projects) found the code at KDE PIM Libs and tried the simplest patch I could think of to avoid the crash: a simple if statement a couple of lines of code before the crash line that would basically &#8220;cancel everything if it didn&#8217;t look good&#8221;. The patch was rejected by <a title="steveire" href="http://steveire.wordpress.com/" target="_blank">Stephen Kelly</a>, the author of most of the model code behind Akonadi, because the patch would hide a real and larger problem that was causing the issue.</p>
<p>I then knew I had to try harder to get a fix for that issue, so I thought about looking at <a title="KDE's Bugzilla" href="http://bugs.kde.org" target="_blank">KDE&#8217;s Bugzilla</a> to see if someone else was already working on that. I remember I queried for &#8220;ical calendar&#8221; &#8211; which turned out to be a bad idea. I found a list of 4 bugs, none related to what I was looking for, but all of which I could confirm based on my couple of weeks of playing around with calendars in KDE.</p>
<p>There were two related to <a title="KDE Bug: Custom Timezones in iCal Resources" href="https://bugs.kde.org/show_bug.cgi?id=68345" target="_blank">not being able to import custom timezones from an iCal resource</a>. I had not tried that before, but Stephan Diestelhorst provided excellent feedback in the bug reports and attached an example of a resource with embedded custom timezones which made it trivially easy to reproduce the bug.  It turned out to be a bug in KDE PIM Libs, a project I had already checked out for working with the calendar issues. After two weeks of trying out examples and isolating the problem, I was finally able to submit a patch for review, which was eventually accepted and <a href="http://commits.kde.org/kdepimlibs/c7e0aff4b0badd8b0974b71a7635a61cbbb8ad03" target="_blank">committed</a>.</p>
<p>In the meantime, while waiting for reviews on my previous patch, I was still working on finding out what was the real cause of the Plasma crash, and at the same time working on another report of the four I found about the <a title="KDE Bug: Events with Wrong Times in Calendar Widget" href="http://bugs.kde.org/show_bug.cgi?id=279427">Calendar widget displaying events in the wrong time</a> due to Timezone issues, although KOrganizer would display them right. That was one of the things I noticed the very first time I tried using iCal in KDE, so I was very interested in fixing it. After debugging the issue, and after a couple of weeks of finding out the right way to address the situation, I eventually came up with a patch that dealt with the inner mechanisms of Akonadi&#8217;s calendar support which wasn&#8217;t of the like of many: <a title="sergio" href="http://blogs.kde.org/blog/8251" target="_blank">Sergio Martins</a> and <a title="John Layt" href="http://www.layt.net/john/taxonomy/term/4/0" target="_blank">John Layt</a> were in favor of an approach that would fix stuff upper in the layers of code, closer to the visualization layer. I had spent weeks working on that issue so  I was pretty sure there was no way to address it from the visualization layer, but I thought I might as well take another look at the visualization code just to make sure I was right&#8230; and I wasn&#8217;t. I found a much cleaner and better way to handle the issue and came up with a patch that followed John and Sergio&#8217;s suggestions and was eventually accepted and <a href="commits.kde.org/kde-workspace/959c60f47222c241419bfc4837e57005813a798f" target="_blank">committed</a>.</p>
<p>While working on the Calendar applet patch I was still using Stephan&#8217;s example from the previous bug I was working on, and while working with it in KOrganizer, I discovered the custom timezone caused KOrganizer to crash when editing the event. Since previously there was no way to include custom timezones in the iCal events, there was no way KDE users would notice the bug in the editors, so this issue had to be fixed together with the patch for custom timezones in iCal resources. Unfortunately, due to the review processes being independent and so close to the 4.7.3 release, the patch for custom timezones was included in 4.7.3 but the <a href="commits.kde.org/kdepim/fc92d349de3528e2b0ec029a8962395e009fc0af" target="_blank">editor patch</a> will have to wait for 4.7.4.</p>
<p>With most issues cleared out of the way, I was finally able to return to my original intention to fix the Plasma crash with remote iCals. I had previously posted in the Plasma Development mailing list about the situation I found was causing the crash, and <a title="cmollekopf" href="http://cmollekopf.wordpress.com/" target="_blank">Christian Mollekopf</a> pointed me out to an interesting approach to achieve the same behavior without using broken code. I ended up implementing that approach which was recently approved and <a href="commits.kde.org/kde-workspace/44a9c26b9eb27df8297618764f988972d476dc84" target="_blank">committed</a>, so ending my long quest to fix many sorts of calendar issues in KDE.</p>
<p>The bottom line of this post is actually not to showcase my recent work in KDE Development, but to illustrate a whole process of collaboration among experienced KDE developers helping newcomers do real fixes and close bug reports &#8211; and how much can a user like Stephan help in the bug squashing process. Although some of those fixes are already included in 4.7.3, most of them are coming with 4.7.4 so I really hope the user experience with calendars in KDE improves in the upcoming release. There might have been loose ends here and there, so don&#8217;t hesitate to use the Bugzilla to let us know about them. I actually still have a list of checks and weird stuff I&#8217;ve seen along the way which are probably just more bugs to squash.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmaggot.org/2011/11/the-kuest-for-kalendars/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Sphinx and Jinja with Documentation on Gentoo</title>
		<link>http://blog.dmaggot.org/2011/10/sphinx-and-jinja-with-documentation-on-gentoo/</link>
		<comments>http://blog.dmaggot.org/2011/10/sphinx-and-jinja-with-documentation-on-gentoo/#comments</comments>
		<pubDate>Sun, 30 Oct 2011 04:51:25 +0000</pubDate>
		<dc:creator>dMaggot</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.dmaggot.org/?p=269</guid>
		<description><![CDATA[Quick post about the doc flag in portage and emerging sphinx and jinja.]]></description>
			<content:encoded><![CDATA[<p>I, for reasons you surely don&#8217;t care about, have the <tt>doc</tt> flag in my defaults USE flags in Gentoo. That, in turns, helps me finding all kinds of bugs in ebuilds because these are usually not enough tested with doc flags. One of the oddest issues I&#8217;ve come across was emerging Sphinx and Jinja2 &#8211; and I just came across that issue again, so I thought posting something about it before I forget. The issue is that:</p>
<ul>
<li>Sphinx requires Jinja for documentation</li>
<li>Jinja requires Sphinx</li>
</ul>
<p>When using <tt>doc</tt> flag, that becomes a circular dependency, but that&#8217;s not a reason to report a bug. Instead, you should first emerge jinja without the doc flag, then emerge sphinx, and then emerge jinja with your regular flags:<br />
<code><br />
# USE="-doc" emerge jinja<br />
# emerge dev-python/sphinx<br />
# emerge emerge jinja<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dmaggot.org/2011/10/sphinx-and-jinja-with-documentation-on-gentoo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

