<?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>HidayahTech &#187; GNU/Linux</title>
	<atom:link href="http://blog.basilgohar.com/category/free-software/linux/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.basilgohar.com</link>
	<description>Technology, Development, &#38; Interesting Stuph</description>
	<lastBuildDate>Tue, 08 Nov 2011 15:49:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Fedora 16 &#8220;Verne&#8221; has been released!</title>
		<link>http://blog.basilgohar.com/2011/11/08/fedora-16-verne-has-been-released</link>
		<comments>http://blog.basilgohar.com/2011/11/08/fedora-16-verne-has-been-released#comments</comments>
		<pubDate>Tue, 08 Nov 2011 15:38:08 +0000</pubDate>
		<dc:creator>Basil</dc:creator>
				<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[announcement]]></category>
		<category><![CDATA[download]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[torrent]]></category>

		<guid isPermaLink="false">http://www.basilgohar.com/blog/?p=528</guid>
		<description><![CDATA[بِسْمِ اللَّهِ الرَّحْمَٰنِ الرَّحِي الْحَمْدُ لِلَّه, Fedora 16 has been released!  You can read the full release notes or just go straight to the torrents for downloading.  See the release announcement after the fold&#8230; The Fedora Project is pleased to announce the release of Fedora 16 (&#8220;Verne&#8221;). For detailed information, see the release notes: http://docs.fedoraproject.org/en-US/Fedora/16/html/Release_Notes/ [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><em>بِسْمِ اللَّهِ الرَّحْمَٰنِ الرَّحِي</em></p>
<p><em>الْحَمْدُ لِلَّه</em>, <a title="Fedora Project website" href="http://fedoraproject.org">Fedora</a> 16 has been <a title="Fedora 16 Release Announcement" href="http://fedoraproject.org/wiki/F16_release_announcement">released</a>!  You can read the full <a title="Fedora 16 release notes" href="http://docs.fedoraproject.org/en-US/Fedora/16/html/Release_Notes/index.html">release notes</a> or just go straight to the <a title="Fedora Project torrent server" href="http://torrent.fedoraproject.org/">torrents</a> for downloading.  See the release announcement after the fold&#8230;<span id="more-528"></span></p>
<p>The Fedora Project is pleased to announce the release of Fedora 16 (&#8220;Verne&#8221;). For detailed information, see the release notes:</p>
<p><a href="http://docs.fedoraproject.org/en-US/Fedora/16/html/Release_Notes/">http://docs.fedoraproject.org/en-US/Fedora/16/html/Release_Notes/</a></p>
<p>Fedora is a leading-edge, free and open source operating system that continues to deliver innovative features to many users, with a new release about every six months. Fedora 16 brings exciting new features for desktop users, for system administrators, and for developers. Highlights of these features can be found below. If the mere mention of Fedora 16 is all you need, download options can be found at:</p>
<p><a href="http://fedoraproject.org/get-fedora">http://fedoraproject.org/get-fedora</a></p>
<h3>Dedication</h3>
<p>During the preparation of Fedora 16, the computing world lost one of its great contributors: Dennis Ritchie. Ritchie co-invented Unix and the C language. He also co-authored <em>The C Programming Language</em>, a book that taught many programmers just at the time personal computing was exploding. Without Ritchie computing would be nothing like it is today.</p>
<p>A humble man, not well-known outside his field, Dennis will always be remembered by those of us who practice the craft. Thank you, Dennis.</p>
<h3>What&#8217;s New in Fedora 16?</h3>
<h4>For desktop users</h4>
<p>A journey to the center of the desktop:</p>
<ul>
<li><strong>GNOME 3.2</strong>, the latest update to the most popular desktop environment, brings new features, including:
<ul>
<li>System Settings gains an &#8220;Online Accounts&#8221; panel, which provides a central point for managing online accounts like Google, Facebook, etc.</li>
<li>A new contact management application is integrated with Empathy, Evolution and the new &#8220;Online Accounts&#8221; settings panel</li>
<li>A new document management application provides a simpler alternative to traditional file management for both local and &#8220;in-cloud&#8221; documents.</li>
</ul>
</li>
<li><strong>KDE 4.7</strong>, the most recent version of this feature-rich desktop environment, brings substantial updates, including:
<ul>
<li>DigiKam 2.0 adds face detection and recognition, geotagging and more.</li>
<li>An updated Plasma Workspaces window manager (KWin) makes KDE better suited for mobile devices, and also adds improvements for desktop users.</li>
<li>A new shutdown dialog allows users with multiple operating systems to select the OS to boot next.</li>
</ul>
</li>
</ul>
<h4>For developers</h4>
<p>Twenty thousand lines in C:</p>
<ul>
<li><strong>Perl 5.14</strong>, a new version of Perl, brings many enhancements, including Unicode 6.0 support.</li>
<li><strong>GCC Python Plugins</strong> extend GCC with Python 2 and 3, without dealing with the C internals of GCC.</li>
<li><strong>D2</strong>: Fedora 16 is the first Linux distribution to include the newest version of D, a systems programming language combining the power and high performance of C and C++ with the programmer productivity of modern languages such as Ruby and Python.</li>
</ul>
<h4>For system administrators</h4>
<p>Around the world in eighty columns:</p>
<ul>
<li><strong>GRUB2</strong>: This leap forward allows better configuration options and better support for non-x86 architectures.</li>
<li><strong>New system account ID numbering</strong>: Fedora 16 starts user IDs at 1000, providing more room for system accounts and making it easier for administrators not have services run as root. This improves interoperability with other Linux distributions that start user IDs at 1000.</li>
<li><strong>Chrony</strong>: Chrony provides network time protocol (NTP) client and server pieces which are more tolerant of unstable clocks and Internet connections which are not always on.</li>
<li><strong>ext4 driver mounts ext2 and ext3</strong>: Fedora 16 uses the ext4 driver to mount ext2 and ext3 file systems, reducing the size of the kernel code.</li>
<li><strong>Improved virtualization tools</strong>:
<ul>
<li>Fedora 16 provides improvements to virtual networking, making large deployments easier.</li>
<li>Virt-manager guest inspection is a unique-to-Fedora tool allowing read-only access to guest file systems, applications, and Windows registry.</li>
<li>Fedora 16 provides locking of virtual disks to prevent a disk being used by multiple virtual machines simultaneously.</li>
</ul>
</li>
</ul>
<p>This is only a taste of what is included in Fedora 16. A more detailed list can be found at:</p>
<p><a href="https://fedoraproject.org/wiki/Releases/16/FeatureList">https://fedoraproject.org/wiki/Releases/16/FeatureList</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.basilgohar.com/2011/11/08/fedora-16-verne-has-been-released/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fedora 13 released!</title>
		<link>http://blog.basilgohar.com/2010/05/25/fedora-13-released</link>
		<comments>http://blog.basilgohar.com/2010/05/25/fedora-13-released#comments</comments>
		<pubDate>Tue, 25 May 2010 14:03:35 +0000</pubDate>
		<dc:creator>Basil</dc:creator>
				<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[fedora 13]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://www.basilgohar.com/blog/?p=507</guid>
		<description><![CDATA[Alhamdulillaah, Fedora 13 has been released!  Torrents (on a newly redesigned torrent page) are also available.  Not a bad way to get back into blogging, either.  Look for more updates soon, in shaaʾ Allaah.]]></description>
			<content:encoded><![CDATA[<p><em>Alhamdulillaah</em>, <a title="F13 one page release notes" href="https://fedoraproject.org/wiki/F13_one_page_release_notes">Fedora 13 has been released</a>!  <a title="Torrent Server for the Fedora Project" href="http://torrents.fedoraproject.org/">Torrents</a> (on a newly redesigned torrent page) are also available.  Not a bad way to get back into blogging, either.  Look for more updates soon, in shaaʾ Allaah.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.basilgohar.com/2010/05/25/fedora-13-released/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Testing out Lekhonee WordPress client</title>
		<link>http://blog.basilgohar.com/2009/07/25/testing-out-lekhonee-wordpress-client</link>
		<comments>http://blog.basilgohar.com/2009/07/25/testing-out-lekhonee-wordpress-client#comments</comments>
		<pubDate>Sat, 25 Jul 2009 09:05:32 +0000</pubDate>
		<dc:creator>Basil</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[blog client]]></category>
		<category><![CDATA[lekhonee]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.basilgohar.com/blog/2009/07/25/testing-out-lekhonee-wordpress-client</guid>
		<description><![CDATA[Bismillaahir Rahmaanir Raheem Alhamdulillaah, I&#8217;ve discovered a new WordPress blogging client packaged with Fedora &#8211; namely, Lekhonee. There aren&#8217;t a lot of formatting options, but it appears you can post using HTML, so that&#8217;s a plus, I think. Let&#8217;s see how it goes.]]></description>
			<content:encoded><![CDATA[<p><i>Bismillaahir Rahmaanir Raheem</i></p>
<p><i>Alhamdulillaah</i>, I&#8217;ve discovered a new WordPress blogging client packaged with Fedora &#8211; namely, <i><a href="https://fedorahosted.org/lekhonee/">Lekhonee</a></i>.  There aren&#8217;t a lot of formatting options, but it appears you can post using HTML, so that&#8217;s a plus, I think.  Let&#8217;s see how it goes.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.basilgohar.com/2009/07/25/testing-out-lekhonee-wordpress-client/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fedora 11 released!</title>
		<link>http://blog.basilgohar.com/2009/06/09/fedora-11-released</link>
		<comments>http://blog.basilgohar.com/2009/06/09/fedora-11-released#comments</comments>
		<pubDate>Tue, 09 Jun 2009 12:54:58 +0000</pubDate>
		<dc:creator>Basil</dc:creator>
				<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://www.basilgohar.com/blog/?p=475</guid>
		<description><![CDATA[Bismillaahir Rahmaanir Raheem Alhamdulillaah, the Fedora Project has released Fedora 11!  You can get the torrents and/or check out the new features! (Sorry for the rather uninspired &#38; lazy post&#8230;I usually like to share more details, but I&#8217;ve got work to do&#8230;;) )]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><em>Bismillaahir Rahmaanir Raheem</em></p>
<p><em>Alhamdulillaah</em>, the <a title="Fedora Project website" href="http://fedoraproject.org/">Fedora Project</a> has <a title="Fedora download page" href="http://fedoraproject.org/get-fedora">released Fedora 11</a>!  You can get the <a title="Fedora Project torrents listing" href="http://torrent.fedoraproject.org/">torrents</a> and/or check out the <a title="Fedora 11 feature list" href="http://fedoraproject.org/wiki/Releases/11/FeatureList">new features</a>!</p>
<p>(Sorry for the rather uninspired &amp; lazy post&#8230;I usually like to share more details, but I&#8217;ve got work to do&#8230;;) )</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.basilgohar.com/2009/06/09/fedora-11-released/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fedora 11 Beta LiveCD</title>
		<link>http://blog.basilgohar.com/2009/04/06/fedora-11-beta-livecd</link>
		<comments>http://blog.basilgohar.com/2009/04/06/fedora-11-beta-livecd#comments</comments>
		<pubDate>Tue, 07 Apr 2009 00:56:07 +0000</pubDate>
		<dc:creator>Basil</dc:creator>
				<category><![CDATA[Fedora]]></category>

		<guid isPermaLink="false">http://www.basilgohar.com/blog/?p=452</guid>
		<description><![CDATA[Bismillaahir Rahmaanir Raheem Alhamdulillaah, I&#8217;ve successfully loaded the Fedora 11 Beta Live CD onto an SD card.  This allows me to boot directly from the card using my USB card reader, much as if it were a USB key/flash drive.  In short, after a few attempts, everything just works. The few attempts mostly related to [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><em>Bismillaahir Rahmaanir Raheem</em></p>
<p style="text-align: left;"><em>Alhamdulillaah</em>, I&#8217;ve successfully loaded the Fedora 11 Beta Live CD <em>onto an SD card</em>.  This allows me to boot directly from the card using my USB card reader, much as if it were a USB key/flash drive.  In short, after a few attempts, everything <em>just works</em>.</p>
<p style="text-align: left;"><span id="more-452"></span>The few attempts mostly related to loading the Live CD image onto the SD card, as my flash memory reader is somewhat fussy and I was experimenting with different filesystems &#8211; my preference being to use a free software filesystem before using one of Microsoft&#8217;s.  I was able to do this using the ext2 filesystem (no need for journaling on a Live USB key, right?), as I have no need to store anything else on it.  Incidentally, I created an overlay image for persistence, so any changes made to the system while running should be saved and persist between reboots.  We&#8217;ll see how that works.</p>
<p style="text-align: left;">One of the driving factors for getting the Fedora 11 Beta Live image working is because I want to give my father, who just recently purchased a new netbook (Lenovo), a nice tour of a recent version of Fedora.  A Live USB version would be ideal for this.</p>
<p style="text-align: left;"><em>Update</em>: I&#8217;ve since gone ahead and installed Fedora 11 Beta on my laptop, as well (from the DVD install, though).</p>
<p style="text-align: left;">
]]></content:encoded>
			<wfw:commentRss>http://blog.basilgohar.com/2009/04/06/fedora-11-beta-livecd/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My first Fedora</title>
		<link>http://blog.basilgohar.com/2009/03/10/my-first-fedora</link>
		<comments>http://blog.basilgohar.com/2009/03/10/my-first-fedora#comments</comments>
		<pubDate>Tue, 10 Mar 2009 08:01:07 +0000</pubDate>
		<dc:creator>Basil</dc:creator>
				<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Nostalgia]]></category>
		<category><![CDATA[first]]></category>
		<category><![CDATA[meme]]></category>
		<category><![CDATA[my first fedora]]></category>

		<guid isPermaLink="false">http://www.basilgohar.com/blog/?p=424</guid>
		<description><![CDATA[Bismillaahir Rahmaanir Raheem Alhamdulillaah, to my pleasant surprise, I discovered that I started using Fedora personally with Fedora Core 4, and not 5 like I had previously thought.  This makes me feel better as I&#8217;m glad I started using Fedora earlier, because I like to think I recognized the importance of a completely (or as [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><em>Bismillaahir Rahmaanir Raheem</em></p>
<p><em>Alhamdulillaah</em>, to my pleasant surprise, I discovered that I <a title="Post that mentions that I started using Fedora Core 4" href="http://www.basilgohar.com/blog/2006/02/22/gnome-214-aiglx">started using Fedora</a> personally with Fedora Core 4, and not 5 like I had previously thought.  This makes me feel better as I&#8217;m glad I started using <a title="Fedora Project website" href="http://fedoraproject.org/">Fedora</a> earlier, because I like to think I recognized the importance of a completely (or as close as possible) free operating system (free here means <a title="The Free Software Definition" href="http://www.gnu.org/philosophy/free-sw.html"><em>freedom</em></a>, not just free of cost).</p>
<p><span id="more-424"></span>At the time, I was content running it as a dual-boot system and just playing around with it.  By the time Fedora Core 5 came around, though, <a title="Fedora Core 5 Installed" href="http://www.basilgohar.com/blog/2006/04/01/fedora-core-5-installed">I was giving serious thought to using Fedora (Core, at the time) as my primary OS</a>.  <a title="100% Fedora 7 Installations" href="http://www.basilgohar.com/blog/2007/08/10/100-fedora-7-installations">The complete transition happened, I believe, with Fedora 7</a> (which is also the year that Fedora Core &amp; Fedora Extras combined, creating&#8230;Fedora!), where I relegated Windows XP to just being a spare OS for the very few things it does that I am unable to do with a completely free operating system (yet).</p>
<p>My experience with Fedora Core 4 was overwhelmingly positive.  I am sure I was impressed by the sheer amount of Free Software that was available for it as well as the elegance of a system that was not originated in Redmond.  I was and still am very pleased with the way <a title="Gnome website" href="http://www.gnome.org/">Gnome</a> works, and that was a big factor for me at the time as it is now.  I do wonder, though, if I downloaded &amp; installed Fedora Core 4 today, what my experience would be link&#8230;.hmm&#8230;</p>
<p>I remember seeing Fedora first in use as Fedora Core 2, when I was surprised someone was using it, as the name &#8220;Fedora Core&#8221; made me think it was the core of an operating system, but not the complete one.  I don&#8217;t know how or why I picked that up, but it is likely related to the perception that Fedora is not really meant to be used, and it is just a development platform (a blatantly false accusation).  I do know that I <em>heard</em> of Fedora Core when it came out, but again, my perception was likely incorrect at the time, thus causing me to adopt using it until quite late.  I had been using different GNU/Linux distributions since I was a freshman in college (can anyone say 1999?).  At the time, I recall trying &#8220;<a title="Wikipedia article for &quot;Corel Linux&quot;" href="http://en.wikipedia.org/wiki/Corel_Linux">Corel Linux</a>&#8221; &#8211; yes, I&#8230;don&#8217;t know what I was thinking.  I do remember it being based on Debian, though.  I also remember it significantly for a large amount of disk activity.  I don&#8217;t remember much else other than me deleting it shortly afterward.  <img src='http://blog.basilgohar.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />   Other flavors of GNU/Linux I tried were Red Hat, and that&#8217;s about all I can remember now.</p>
<p>So, anyway, this might be a good idea for a meme.  My first Fedora.  Talk about when you first started using it, why you did, and how the experience was.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.basilgohar.com/2009/03/10/my-first-fedora/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unfinished Projects</title>
		<link>http://blog.basilgohar.com/2009/02/23/unfinished-projects</link>
		<comments>http://blog.basilgohar.com/2009/02/23/unfinished-projects#comments</comments>
		<pubDate>Mon, 23 Feb 2009 13:48:17 +0000</pubDate>
		<dc:creator>Basil</dc:creator>
				<category><![CDATA[Audio Islam]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[Islam]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.basilgohar.com/blog/?p=419</guid>
		<description><![CDATA[Bismillaahir Rahmaanir Raheem I have the bad habit of starting things and not completing them.  This is bad for numerous reasons, just a few of which I&#8217;ll list shortly.  I will warn you now that as this post is meant to help me organize my thoughts, it will list-heavy, as I do find lists and [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><em>Bismillaahir Rahmaanir Raheem</em></p>
<p style="text-align: left;">I have the bad habit of starting things and not completing them.  This is bad for numerous reasons, just a few of which I&#8217;ll list shortly.  I will warn you now that as this post is meant to help me organize my thoughts, it will list-heavy, as I do find lists and other types of grouping structures to be beneficial and help in making relationships (e.g., database schemes).</p>
<p style="text-align: left;">I already know that as I type this I will revisit this post in the future as I will be unable, in one sitting, to be think of all of unfinished projects.  Therefore, I will come back and add to the list as I recall more things (and find the time and desire, a rare combination these days, to update the blog).</p>
<p style="text-align: left;">For</p>
<ul>
<li>Unfinished projects tend to clutter your mind
<ul>
<li>I tend to turn to unfinished projects whenever I work (i.e., get paid to do something) and hit a stumbling block.  This severely hinders my progress on work, which ultimately leads to less getting done.</li>
<li>Time when I could be brainstorming solutions is usually spent wondering about these myriad unfinished projects, which, lacking much focus, tend to yield few to no tangible solutions.  This includes walking/riding to the masjid, showering, and other activities that tend to leave the brain free and, ideally, well-suited for addressing beneficial thoughts.</li>
<li>If I try to focus on something, I can have a hard time preventing my mind from wandering to these unfinished projects.  This is related to the point about work above.</li>
<li>It&#8217;s just not healthy to have so many things on the mind at once.  There is a point at which the benefit of multitasking is overshadowed by the overhead of just trying to keep track of everything.  It&#8217;s not efficient.</li>
</ul>
</li>
<li>Having so many unfinished projects means that it can be hard to pick just one to work on.</li>
<li>Playing catch-up may give a false sense of achievement, because the value of these unfinished projects are not equal, and therefore, I may complete one that is really not that important while one that is more valuable was never completed.  Therefore, just trying to clear out the backlog of projects may yield a net result of close to zero.</li>
<li>There are many more, and I may amend this list in the future as I recall them.</li>
</ul>
<p>So, here is the list of my unfinished projects (at least those that I can recall at one point or another).  I am including some thoughts on the different ideas as well.</p>
<ul>
<li>Redesign the Audio Islam website</li>
<li>Write a script to automatically tag all the audio files, especially the ones containing Qurʾān recitation, with reciter &amp; sūrah information</li>
<li>The Fedora Documentation manpage coverage project
<ul>
<li>This is basically an idea I had related to the Fedora Documentation project to ensure that all executables had an associated man page (manual page, a low-level documentation system for Unix-like operating systems such as GNU/Linux).</li>
<li>The first step in this is to canvass the existing packages &amp; executables and see what already has a man page.  I have already started on this, but there is much work left to be done.</li>
<li>There are plenty of sources for documentation that can be used as baseline manpages, including the Debian project.  So, this project doesn&#8217;t require as much work as it does just coordinating and facilitating.</li>
</ul>
</li>
<li>A Paltalk replacement
<ul>
<li>Paltalk is a voice conference &amp; chat application (video is also supported, but I don&#8217;t care about that right now) that is widely used, but terribly proprietary.</li>
<li>My goal is to create or synthesize a replacement for Paltalk using only free software and open technologies
<ul>
<li>The best candidates for this are SIP (for multimedia) and Jabber/XMPP (for text chat).</li>
<li>The landscape for software that can do this in a simple fashion is rather bleak, but there are some solutions.</li>
<li>I&#8217;m currently focused on FreeSWITCH as the SIP server and ejabberd as the chat backend.</li>
<li>Linking them such that it will be one service will be quite challenging, and still requires a free software client that has solid support for both SIP &amp; XMPP
<ul>
<li>I&#8217;ve been looking mostly at Qutecom, SIP Communicator, and Psi</li>
</ul>
</li>
</ul>
<ul>
<li>
<ul>
<li>On GNU/Linux, the Empathy client for the Telepathy framework is outstanding, but, is limited to free-software operating systems.  I think Windows support is a long way out still.</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>AlMaghrib in Malaysia
<ul>
<li>I am trying to catalyze the establishment of AlMaghrib Institute seminars in Malaysia (almost surely in Kuala Lumpur, at least at the beginning).</li>
<li>I&#8217;ve already purchased the domains almaghribinmalaysia.com/net/org, and I just need to get the site setup.
<ul>
<li>To start off, I think just a blog with some information about AlMaghrib is fine.  It can be fleshed-out later.</li>
</ul>
</li>
<li>Alḥamdulillāh, there is already a lot of interest both within and without Malaysia.  I have several contacts here that are also excited and may be able to facilitate the first few steps.
<ul>
<li>I see the first step being getting a group of excited &amp; enthusiastic locals to get behind the effort.</li>
<li>After that group is identified (and it is really an ongoing process), see about getting the support of existing organizations.
<ul>
<li>From an initial perspective, it seems like this is going to be easy, in shāʾ Allāh.</li>
</ul>
</li>
<li>With this support, we will want to schedule some kind of event to gain a wider audience interest.  Something like a conference or teaser seminar, perhaps a week-long program with some of the AlMaghrib instructors.
<ul>
<li>Many of the AlMaghrib instructors are already known or well-known here</li>
<li>Having Suhaib Webb might be particularly nice, as his wife is Malaysian.</li>
<li>Waleed Basyouni has expressed an interest in coming to Malaysia, and some work is already in progress regarding that, but it may have stalled (temporarily only, in shāʾ Allāh)</li>
<li>Yasir Qadhi is another instructor that has some reknown here, apparently (from what I&#8217;ve been told).</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>HidayahTech
<ul>
<li>My own technology consulting business</li>
<li>Although HidayahTech is currently the name of my blog, I have also resolved to use this as the name for my own consulting business.</li>
<li>Services will include
<ul>
<li>Audio recording, editing, mastering, and production (I did this, for example, for the Texas Dawah Convention in 2007)
<ul>
<li>I am consider splitting this and other audio-related services into it&#8217;s own business, namely, <em>Hidayah Audio</em></li>
</ul>
</li>
<li>Web technologies
<ul>
<li>Hosting (this is generally quite easy)</li>
<li>Moodle (an open-source learning mangement system, for putting schools online, for example)</li>
<li>Audio services, including hosting my &#8220;replacement for Paltalk&#8221; solution above</li>
</ul>
</li>
<li>Consulting
<ul>
<li>This will include a wide variety of services ranging from system administration, general IT, infrastructure, to web development</li>
<li>I may take some partners or hire some friends for this aspect of this business, as I will need help for some points of it</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
<li>Global Homeschooling
<ul>
<li>This is my premiere project, if I had to pick one.  I consider this to be something great if I can achieve it, by the Permission of Allāh.</li>
<li>To sum it up, I want to develop a system whereby Muslims (and truly, anyone) can homeschool their own children easily.  Homeschooling may be too specific of a term, though, because I want the scale to include a plan that can be implemented by governments.  I would like children, and really anyone, to be able to be educated within their own homes, utilizing the bevy of technology that exists.</li>
<li>Technology creates options &amp; opportunities, and this is a belief I take strongly.  Therefore, I think we should utilize it.  I see education as one of the most important investments that can be made, whether it is Islamic or related to the worldly sciences, both of which are important.  I actually believe the distinction to be artificial, but it will take time to get there.</li>
<li>So, to put it in a few words, I would like to develop a system of education leveraging technology that is globally accessible allowing education to be released from the confines of school <em>buildings</em>.</li>
</ul>
</li>
<li>Learn the Python programming language
<ul>
<li>I think learning Python has a high return value on the types of applications I would like to write, including graphical ones.  Also, it is quite the preferred language for many platforms, not the least of which is Red Hat &amp; Fedora.</li>
</ul>
</li>
<li>Memorize the Qurʾān
<ul>
<li>Please keep in mind that this list isn&#8217;t in order of importance&#8230;;)</li>
<li>I think this is a goal every Muslim should have.  I started this goal, seriously, while I was staying in Egypt with my parents, even semi-regularly visiting the imān of the nearby masjid to review my memorization.  Sadly, since arriving in Malaysia I&#8217;ve not really resumed, and I am afraid I may start regressing.  This is the kind of project that can be achieved through a little, regular &amp; constant work every day.  I really should commit to something, even if it is as simple as <em>one āyāh</em> per day.  That would be better than <em>none</em>.</li>
</ul>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.basilgohar.com/2009/02/23/unfinished-projects/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>High Dynamic Range photography</title>
		<link>http://blog.basilgohar.com/2009/02/21/high-dynamic-range-photography</link>
		<comments>http://blog.basilgohar.com/2009/02/21/high-dynamic-range-photography#comments</comments>
		<pubDate>Sat, 21 Feb 2009 10:56:21 +0000</pubDate>
		<dc:creator>Basil</dc:creator>
				<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[Malaysia]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[Science]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[chdk]]></category>
		<category><![CDATA[hdr]]></category>
		<category><![CDATA[ldr]]></category>
		<category><![CDATA[qtpfsgui]]></category>

		<guid isPermaLink="false">http://www.basilgohar.com/blog/?p=404</guid>
		<description><![CDATA[Bismillaahir Rahmaanir Raheem Alhamdulillaah, I&#8217;ve just managed to produce my first HDR (high dynamic range) image the results of which I&#8217;m pleased with.  Once again, I have CHDK to thank for enabling this feature easily. Note:  I begin this post with a mildly detailed explanation of the human visual system, HDR &#38; LDR images, and [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><em>Bismillaahir Rahmaanir Raheem</em></p>
<p><em>Alhamdulillaah</em>, I&#8217;ve just managed to produce my first HDR (high dynamic range) image the results of which I&#8217;m pleased with.  Once again, I have <a title="CHDK website" href="http://chdk.wikia.com/">CHDK</a> to thank for enabling this feature easily.</p>
<p><span id="more-404"></span><em>Note:  I begin this post with a mildly detailed explanation of the human visual system, HDR &amp; LDR images, and the process to create HDR &amp; tone-mapped images.  The pictures themselves are near the bottom of this post.<br />
</em></p>
<p>First, a little background about HDR.  The way our bodies capture and process imagery is, to put it lightly, amazing.  Starting from when light first hits the <a title="Wikipedia article for &quot;Cornea&quot;" href="http://en.wikipedia.org/wiki/Cornea">cornea</a> through to when we perceive the visual object (not to mention how our brain&#8217;s store such visual images, which is far from just keeping a &#8220;bunch of bits&#8221;), the Words of Allāh resound with truth regarding His Creation:</p>
<blockquote><p><em> And it is He who spread the earth and placed therein firmly set mountains and rivers; and from all of the fruits He made therein two mates; He causes the night to cover the day. <strong>Indeed in that are signs for a people who give thought</strong>. </em>(Alqurʾān 13:3)</p></blockquote>
<p>Thus, in the way that they are created, our eyes can capture an amazing amount of detail and range in their own way.  The range of regular (so-called &#8220;LDR&#8221; &#8211; low dynamic range) images is quite limited in comparison.  And this is, actually, the vast majority of image-related technologies, be they cameras, display devices, or even image formats such as JPEG.</p>
<p>HDR images, however, are those which do or have the ability to capture image details, specifically color &amp; brightness information, at a much higher level than normal technologies.  Since normal technologies, such as our digital cameras and screens, can not capture nor display HDR images, we have to take a different route to get the information.  One technique is <a title="Wikipedia article for &quot;Exposure bracketing&quot;" href="http://en.wikipedia.org/wiki/Bracketing#Exposure_bracketing">exposure bracketing</a> where one takes a picture of the same scene at different exposure levels, one after another.  The reason for doing this is that, while the normal dynamic range of a camera may be unable to capture the bright, medium, and dark details of an image all at once, it does have the ability to capture these details separately with different settings.</p>
<p><em>Alhamdulillaah</em>, there is also software that exists that allows you to take these separate LDR images and combine them into one now-HDR image that contains the details from all the separate exposures.  Doing so is not trivial, and it may take one multiple attempts to get something that looks good.  More often than not, the result is eery, because of a technique called tone-mapping.  Tone-mapping is a technique whereby the colors and range of an HDR image are brought down into a simulation of what our eyes would perceive in the scene.  In reality, that&#8217;s all but impossible, but it yields some interesting, beautiful, and sometimes striking results.</p>
<p>The specific software I use is the unpronounceable <a title="Website for Qtpfsgui" href="http://qtpfsgui.sourceforge.net/">Qtpfsgui</a> (I just say it one letter at a time).  Qtpfsgui is a front end for pfstools, which is an outstanding image toolkit for these kinds of images.  It takes care of aligning, merging, and finally tone-mapping the images one step at a time.  I short-circuited the first two steps (because Qtpfsgui can be fussy sometimes)  by using the command-line tool <a title="Panotools website for align_image_stack" href="http://wiki.panotools.org/Align_image_stack">align_image_stack</a> to align the different exposures (since I moved a bit between exposures) as well as creating the HDR image from the three separate images.  Then, I used Qtpfsgui just for the tone-mapping stage.</p>

<a href='http://blog.basilgohar.com/2009/02/21/high-dynamic-range-photography/c' title='c'><img width="150" height="112" src="http://blog.basilgohar.com/wp-content/basilgohar/uploads/2009/02/c-150x112.jpg" class="attachment-thumbnail" alt="c" title="c" /></a>
<a href='http://blog.basilgohar.com/2009/02/21/high-dynamic-range-photography/d' title='d'><img width="150" height="112" src="http://blog.basilgohar.com/wp-content/basilgohar/uploads/2009/02/d-150x112.jpg" class="attachment-thumbnail" alt="d" title="d" /></a>
<a href='http://blog.basilgohar.com/2009/02/21/high-dynamic-range-photography/e' title='e'><img width="150" height="112" src="http://blog.basilgohar.com/wp-content/basilgohar/uploads/2009/02/e-150x112.jpg" class="attachment-thumbnail" alt="e" title="e" /></a>
<a href='http://blog.basilgohar.com/2009/02/21/high-dynamic-range-photography/kt-beach-hdr_tone-maps-combined-both-overlayed-scaled' title='kt-beach-hdr_tone-maps-combined-both-overlayed-scaled'><img width="150" height="111" src="http://blog.basilgohar.com/wp-content/basilgohar/uploads/2009/02/kt-beach-hdr_tone-maps-combined-both-overlayed-scaled-150x111.jpg" class="attachment-thumbnail" alt="kt-beach-hdr_tone-maps-combined-both-overlayed-scaled" title="kt-beach-hdr_tone-maps-combined-both-overlayed-scaled" /></a>

<p>The first row of pictures are the original images, taken at -4, 0, &amp; +4 EV settings.  Looking closely, you&#8217;ll notice that each range brings out different details: the darkest shows details in the clouds, the middle shows details in the sea, and the brighest shows details in the sand.  These are the separate LDR images at different exposures that I talked-about above.</p>
<p>The second &#8220;row&#8221;, containing only a single picture, is the result of the several steps I mentioned above to produce an HDR image.  I make no claims into how &#8220;real&#8221; this image looks, but it does show the details that I was looking for &#8211; from the clouds to the sand &#8211; in one image.  I also think it looks cool.  <img src='http://blog.basilgohar.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>This is the first HDR image I&#8217;ve created that I&#8217;ve wanted to share, and so I took this opportunity to explain the process too.  If you have any questions, then by all means, please post a comment and then subscribe to the comments so you&#8217;ll know when I&#8217;ve replied.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.basilgohar.com/2009/02/21/high-dynamic-range-photography/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>$PATH in Fedora 10</title>
		<link>http://blog.basilgohar.com/2009/02/16/path-in-fedora-10</link>
		<comments>http://blog.basilgohar.com/2009/02/16/path-in-fedora-10#comments</comments>
		<pubDate>Mon, 16 Feb 2009 06:04:55 +0000</pubDate>
		<dc:creator>Basil</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[default]]></category>
		<category><![CDATA[path]]></category>

		<guid isPermaLink="false">http://www.basilgohar.com/blog/?p=393</guid>
		<description><![CDATA[[basilgohar@beta ~]$ echo $PATH /usr/lib/qt-3.3/bin:/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin\ :/home/basilgohar/bin Note: This is for future reference as I try to make some progress on an old project.  I do not think the last value is a default for Fedora, but rather, something added later.  If someone knows otherwise, please correct me! Update: I&#8217;m starting to dislike fixed-width templates&#8230;corrected the [...]]]></description>
			<content:encoded><![CDATA[<pre>[basilgohar@beta ~]$ echo $PATH
/usr/lib/qt-3.3/bin:/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin\
:/home/basilgohar/bin</pre>
<p><strong>Note</strong>: This is for future reference as I try to make some progress on an old project.  I do not think the last value is a default for Fedora, but rather, something added later.  If someone knows otherwise, please correct me!</p>
<p><strong>Update</strong>: I&#8217;m starting to dislike fixed-width templates&#8230;corrected the last $PATH value so it will fit on my blog without overflowing into CSS &#8220;Elsewhere&#8221;.</p>
<p><strong>Update 2</strong>: Ahhh!  WordPress!  WYSIWYG, not WIWIWYG (What <strong>I</strong> Want is Why <strong>You</strong> Get)!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.basilgohar.com/2009/02/16/path-in-fedora-10/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>screen is my new best friend</title>
		<link>http://blog.basilgohar.com/2009/02/15/screen-is-my-new-best-friend</link>
		<comments>http://blog.basilgohar.com/2009/02/15/screen-is-my-new-best-friend#comments</comments>
		<pubDate>Sun, 15 Feb 2009 14:50:09 +0000</pubDate>
		<dc:creator>Basil</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[screen]]></category>

		<guid isPermaLink="false">http://www.basilgohar.com/blog/?p=251</guid>
		<description><![CDATA[Bismillaahir Rahmaanir Raheem Note: This is a post I started writing back in November, but only got around to updating now. Alhamdulillaah, I cannot believe I&#8217;ve lived for so long without knowing about screen (Wikipedia article).  To put it as simple as possible, think of screen as a &#8220;tabbed&#8221; interface for terminals/shells.  This is a [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><em>Bismillaahir Rahmaanir Raheem</em></p>
<p><strong>Note:</strong> This is a post I started writing back in November, but only got around to updating now.</p>
<p><em>Alhamdulillaah</em>, I cannot believe I&#8217;ve lived for so long without knowing about <a title="GNU Screen project page" href="http://www.gnu.org/software/screen/">screen</a> (<a title="Wikipedia article for &quot;GNU Screen&quot;" href="http://en.wikipedia.org/wiki/GNU_Screen">Wikipedia article</a>).  To put it as simple as possible, think of screen as a &#8220;tabbed&#8221; interface for terminals/shells.  This is a weak analogy, however, because it enables so much more than tabs do for browsers, for example.  Onwards for more details.<br />
<span id="more-251"></span><br />
<h2>History</h2>
<p>I had first heard of screen through references and then through some of my friends, but I didn&#8217;t give it much heed because it seemed like something too complex for something so simple as a terminal application.  Little did I realize that, like most applications with their roots in Unix, it&#8217;s both simple and extremel useful.</p>
<h2>Invocation</h2>
<p>screen is invoked by typing it&#8217;s name.  It will appear initially as though you&#8217;ve reset your terminal, but this is just a new screen session, which is effectively a new login.  Each screen window (which I will explain later) is independent and has it&#8217;s own scrolling buffer, independent also of your own terminal&#8217;s buffer.  This means that screen as an application stores previously displayed text on the machine on which it is ran, so if you&#8217;re running it remotely, it won&#8217;t affect your local machine.</p>
<h2>Basic Usage</h2>
<p>Commands in screen are almost always prefixed by ctrl-a.  For example, creating a new window in screen is &#8220;ctrl-a c&#8221;.  Switching to the next window, if you have more than one, is &#8220;ctrl-a n&#8221;.  Previous is &#8220;ctrl-a p&#8221;.  screen windows can be exited by simply typing &#8220;exit&#8221; as if they were any other terminal session.  When the last screen window is exited, screen itself terminates.  Screen windows can also be killed by typing &#8220;ctrl-a K&#8221; (note the capitalization of &#8220;K&#8221;).</p>
<p>It&#8217;s also easy to jump to windows 0 &#8211; 9 by typing &#8220;ctrl-a&#8221; followed by the window number.  So, for example, if you want to jump to window 3 of your screen session, just type &#8220;ctrl-a 3&#8243;.</p>
<h2>Detach and resume</h2>
<p>The real beauty is using screen is its persistence.  Chances are, if you&#8217;ve used remote login shells frequently, you&#8217;ve been disconnected while working.  Most shells will respond by terminating whatever was actively running in the foreground of that terminal.  This means your vim session was interrupted.  It also means whatever service you had started is probably dead by now.  screen takes care of all of these things, because it behaves as a persistent application.  Thus, whenever you disconnect from the terminal, screen stays running, and it allows you to resume a previous screen session with the command line option &#8220;-R&#8221;, which means reattach an existing screen session, else start a new one.  Additionally, the &#8220;-d&#8221; argument might be useful, because it will detach the session from an existing login, in the case it is still attached elsewhere, such as a remote login from another location that you&#8217;re no longer using.</p>
<p>For example, if you are logged-in to your server from home with an active screen session, and then go to work, calling &#8220;screen -d -R&#8221; will detach the screen session from your home login and reattach it, where you left off, to your login from work.</p>
<p>Another advantage is that screen effectively allows you to make a daemon (background running process) from any command-line application, including those for which it normally isn&#8217;t possible.  An example of this would be rtorrent, which is a torrent downloading application normally meant to run in the foreground.  I personally like to start an rtorrent process running in one screen window and just leave it running.  Then whenever I login to that server and attach the screen session, I can check on the status of my torrents very easily by ctrl-a p/n to the appropriate window while doing other work.</p>
<h2>Conclusion</h2>
<p>So there you have it!  I realize this is a very introductory article with regards to screen, but it should be enough to get your started.  If you run into any problems with it, just type &#8220;ctrl-a ?&#8221; (that&#8217;s a question mark) and a friendly window will pop-up explaining, albeit briefly, all the different commands and what they do.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.basilgohar.com/2009/02/15/screen-is-my-new-best-friend/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LDAP for authentication back end</title>
		<link>http://blog.basilgohar.com/2009/01/18/ldap-for-authentication-back-end</link>
		<comments>http://blog.basilgohar.com/2009/01/18/ldap-for-authentication-back-end#comments</comments>
		<pubDate>Sun, 18 Jan 2009 17:44:53 +0000</pubDate>
		<dc:creator>Basil</dc:creator>
				<category><![CDATA[Audio Islam]]></category>
		<category><![CDATA[Columbus Dawah]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Hidayah Online]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.basilgohar.com/blog/?p=333</guid>
		<description><![CDATA[Bismillaahir Rahmaanir Raheem For a long time now I&#8217;ve been wanting to setup an LDAP back end for various Hidayah Online Network resources, especially the Columbus Dawah project.  This has become particularly pressing as the Columbus Dawah website has three primary public services &#8211; the blog, the forums, the school.  Additionally, in the future I [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><em>Bismillaahir Rahmaanir Raheem</em></p>
<p style="text-align: left;">For a long time now I&#8217;ve been wanting to setup an <a title="Wikipedia article for &quot;Lightweight Directory Access Protocol&quot;" href="http://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol">LDAP</a> back end for various <em>Hidayah Online Network</em> resources, especially the <a title="Columbus Dawah website" href="http://www.columbusdawah.com/"><em>Columbus Dawah</em></a> project.  This has become particularly pressing as the <em>Columbus Dawah</em> website has three primary public services &#8211; the <a title="Columbus Dawah blog" href="http://www.columbusdawah.com/blog/">blog</a>, the <a title="Columbus Dawah forums" href="http://www.columbusdawah.com/forums/">forums</a>, the <a title="Columbus Dawah school" href="http://www.columbusdawah.com/school/">school</a>.  Additionally, in the future I want to roll out webmail (publicly) for volunteers &amp; administrators within the project.  The problem with running these disparate services is that they all have their own authentication built-in, which means someone needs to register on each site independently to access any services that require one to be logged-in.  Therefore, a system that would unify user authentication for all services (i.e., LDAP) would save a lot of hassle for both the users and myself.</p>
<p><span id="more-333"></span></p>
<h2 style="text-align: left;">Native support</h2>
<p style="text-align: left;">Naturally, the first challenge is preparing the different software packages that run the various parts of the <em>Columbus Dawah</em> website for utilizing LDAP for authentication purposes.  The relevant bits of software are <a title="WordPress website" href="http://wordpress.org/">WordPress</a> for the blog, <a title="phpBB website" href="http://www.phpbb.com/">phpBB</a> for the forums, &amp; <a title="Moodle website" href="http://moodle.org/">Moodle</a> for the school.  Additionally, I will use <a title="RoundCube Webmail Project website" href="http://www.roundcube.net/">RoundCube</a> for the webmail, but since it will act as an LDAP client, it will not need any special setup on it&#8217;s own &#8211; the back end <a title="Wikipedia article for &quot;Internet Message Access Protocol&quot;" href="http://en.wikipedia.org/wiki/Internet_Message_Access_Protocol">IMAP</a> e-mail server (<a title="Dovecot website" href="http://www.dovecot.org/">Dovecot</a>) will be the one that interacts with LDAP.  That will be described in another post, <em>in shaaʾ Allaah</em>.</p>
<p style="text-align: left;">Of these mentioned bits of software, it appears that only WordPress comes without some kind of native LDAP support.  While this will be a challenge moving forward, <a title="wpDirAdmin WordPress plugin" href="http://wordpress.org/extend/plugins/wpdirauth/">one plug-in</a> exists that at least offer some support, but I&#8217;m not sure if it&#8217;s updated for the latest version(s) of WordPress.</p>
<h2 style="text-align: left;">Structure</h2>
<p style="text-align: left;">Although I haven&#8217;t finalized it, there is definitely the hope that I can use LDAP for authorization as well as authentication.  While authentication would allow me to let someone login to the site, authorization would allow me to give different users different levels of access.</p>
<p style="text-align: left;">For example, let&#8217;s say we have a simple organization that has three &#8220;ranks&#8221; of members &#8211; member, volunteer, &amp; officer (this is roughly based on the plan I am working on for <em>Columbus Dawah</em>).  Furthermore, we want to grant different levels of access to the site&#8217;s resources depending on a user&#8217;s rank.  For a regular member, we would like to allow to him to login, post to the forums, post comments on the blog, and enroll in courses in the school.  For a volunteer, we would like to add to that the ability to have an e-mail account.  Finally, for officers, we would like them to have access to make blog posts and create &amp; edit courses in the school.</p>
<p style="text-align: left;">Authentication alone would only allow us to grant or disallow access site-wide using one account.  Authorization gives us that additional feature of granularity to allow access to some or all of the site based on permissions.  LDAP supports all of this, but it is up to the underlying software to enable such features through LDAP authorization in a way that makes sense for the application.  As all the aforementioned applications have a concept of groups or roles with different sets of permissions or capabilities, and as I intend to utilize such features as the project grows, the ability to authorize users as well as authenticate them is tantalizing at the very least, and down right essential the more I think of it.</p>
<h2 style="text-align: left;">Fedora Directory Server</h2>
<p>The specific LDAP server I intend on using is the <a title="Wikipedia article for &quot;Fedora Directory Server&quot;" href="Fedora Directory Server">Fedora Directory Server</a> (<a title="Fedora Directory Server website" href="http://directory.fedoraproject.org/">website</a>).  First and foremost, naturally, it&#8217;s open source.  And, the fact that I&#8217;m choosing an LDAP server that is related to the <a title="Fedora Project website" href="http://fedoraproject.org/">Fedora Project</a> really should come as no surprise to anyone with even the slightest familiarity with this blog.</p>
<p>However, FDS is also quite an advanced LDAP server, supporting a slew of enterprise-level features while, according to most accounts, being reasonably easy to work with.  Therefore, it is quite a good choice, and may very well be the best one.  Time will tell how close to the truth that statement is.</p>
<h2>What&#8217;s next?</h2>
<p>So, what&#8217;s next?  Well, the most glaring obstacle right now is that I have zero experience working with and/or configuring an LDAP server, so I&#8217;m going to start by just playing around with the protocol and see if LDAP will work as smoothly as I hope it will.  If I feel comfortable enough with that, then my first foray into LDAP will likely be to configure my new e-mail server to use it as a backend.  That should prove to be quite interesting, moving forward.  So, stay tuned and I&#8217;ll do my best to keep things updated!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.basilgohar.com/2009/01/18/ldap-for-authentication-back-end/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Concatenating compressed files</title>
		<link>http://blog.basilgohar.com/2009/01/03/concatenating-compressed-files</link>
		<comments>http://blog.basilgohar.com/2009/01/03/concatenating-compressed-files#comments</comments>
		<pubDate>Sat, 03 Jan 2009 13:01:42 +0000</pubDate>
		<dc:creator>Basil</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.basilgohar.com/blog/?p=308</guid>
		<description><![CDATA[Bismillaahir Rahmaanir Raheem I have my new server (aalimraan.hidayahonline.net &#8211; the one hosting Audio Islam) setup to log web accesses each day to its own file which is then bzip2-compressed.  This is convenient for a variety of reasons. Firstly, I can easily access statistics for each day by processing the appropriate file. B, I can [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><em>Bismillaahir Rahmaanir Raheem</em></p>
<p>I have my new server (aalimraan.hidayahonline.net &#8211; the one hosting <em>Audio Islam</em>) setup to log web accesses each day to its own file which is then bzip2-compressed.  This is convenient for a variety of reasons.</p>
<ul>
<li>Firstly, I can easily access statistics for each day by processing the appropriate file.</li>
<li>B, I can see the relative activity on each day at a glance by seeing the size of the file, keeping in mind it&#8217;s only a rough estimate since compression can skew the results (e.g., many requests for the same, exact URL may compress much more than fewer, disparate URL requests, resulting in a smaller file and a seemingly less active day)</li>
<li>3, by being compressed text files, they take up very, very little space.</li>
</ul>
<p><span id="more-308"></span>The fact that the files are compressed using bzip2 means they are relatively tiny (by an order of magnitude compared with their uncompressed forms).  On top of this, I can easily access their contents using bzcat, which simply decompresses the files on the fly, allowing me to redirect the uncompressed text stream to whatever utility I&#8217;m hoping to process them with &#8211; such as grep, wc, or whatever.</p>
<p>So, I wanted to download the files in bulk to my laptop at home so I could write a PHP script that will process the access logs and store them in a database so I can extract all kinds of goodies from them such as which sites link to <em>Audio Islam</em> the most, which URLs are the most popular, and so on.  So, rather than download all the separate files individually, I wanted to concatenate the log files created thus far into one larger file so that I could just download it in one go.  Additionally, several text files concatenated together would naturally yield a smaller file (at least, so one would assume).</p>
<p>So, I ran the following command (or something like it):<br />
<code>cat access_log*.bz2 | bzip2 -c | ~/aalimraan.hidayahonline.org-access_log-20081226.bz2</code><br />
The intention being that I wanted to create one large bzip2-compressed file as the concatenation of all the other, smaller daily files by first decompressing them into a continuous text stream (as if it were one large log file) and then recompressing them into the larger, single file.  But when I got around to processing that file on my local machine, the uncompressed output was garbage!  I was surprised, and then an idea hit me &#8211; I decided to run the uncompressed output through bzcat once again (the idea being that I am now decompressing it twice).  Lo and behold, the output of that invocation was something that looked astonishingly like a web server access log!  So what happened?</p>
<p>Look closely at my command, and you&#8217;ll see that I made the quite silly mistake of using plain old</p>
<pre>cat</pre>
<p>instead of</p>
<pre>bzcat</pre>
<p>.  Thus, I was recompressing a stream of already bzip2-compressed files, which is, to say the least, quite pointless.  In fact, the resulting file is all but useless to me, because I cannot really tell where one file begins or ends, so I only get output from the first bzip2 file.</p>
<p>Needless to say, let this be a lesson to make sure, when piping data around, you know what you&#8217;re doing.</p>
<p>This has been a public service announcement from you local system admin.  Thank you for listening!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.basilgohar.com/2009/01/03/concatenating-compressed-files/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hunspell &amp; enchant dictionary/spell-checking file locations</title>
		<link>http://blog.basilgohar.com/2008/12/22/hunspell-enchant-dictionaryspell-checking-file-locations</link>
		<comments>http://blog.basilgohar.com/2008/12/22/hunspell-enchant-dictionaryspell-checking-file-locations#comments</comments>
		<pubDate>Mon, 22 Dec 2008 17:44:03 +0000</pubDate>
		<dc:creator>Basil</dc:creator>
				<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Free Software]]></category>

		<guid isPermaLink="false">http://www.basilgohar.com/blog/?p=298</guid>
		<description><![CDATA[Bismillaahir Rahmaanir Raheem Alhamdulillaah, while waiting for an answer an #fedora for the question of where the custom spellcheck files for hunspell, the unified spellchecking engine for Fedora 9 and upwards, reside, I discovered that they are stored in .config/enchant, which isn&#8217;t very intuitive, but makes sense after discovering that enchant is related to the [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><em>Bismillaahir Rahmaanir Raheem</em></p>
<p><em>Alhamdulillaah</em>, while waiting for an answer an #fedora for the question of where the custom spellcheck files for hunspell, the unified spellchecking engine for Fedora 9 and upwards, reside, I discovered that they are stored in .config/enchant, which isn&#8217;t very intuitive, but makes sense after discovering that enchant is related to the Fedora hunspell integration.  <a title="Hunspell location" href="http://www.mail-archive.com/tbbeta@thebat.dutaint.com/msg89797.html">Click</a> to see the link that lead to this discovery.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.basilgohar.com/2008/12/22/hunspell-enchant-dictionaryspell-checking-file-locations/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unmatched search folder in Evolution</title>
		<link>http://blog.basilgohar.com/2008/12/21/unmatched-search-folder-in-evolution</link>
		<comments>http://blog.basilgohar.com/2008/12/21/unmatched-search-folder-in-evolution#comments</comments>
		<pubDate>Sun, 21 Dec 2008 20:17:36 +0000</pubDate>
		<dc:creator>Basil</dc:creator>
				<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[GNOME]]></category>

		<guid isPermaLink="false">http://www.basilgohar.com/blog/?p=295</guid>
		<description><![CDATA[Bismillaahir Rahmaanir Raheem Alhamdulillaah, I&#8217;ve (finally!) installed Fedora 10 on my laptop, but it&#8217;s not been without its bumps.  I cannot blame this on Fedora 10 nor the anything else related to the release.  But, in the end, I don&#8217;t have a DVD to install from, only the LiveCD (which I booted from my SD [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><em>Bismillaahir Rahmaanir Raheem</em></p>
<p><em>Alhamdulillaah</em>, I&#8217;ve (finally!) installed Fedora 10 on my laptop, but it&#8217;s not been without its bumps.  I cannot blame this on Fedora 10 nor the anything else related to the release.  But, in the end, I don&#8217;t have a DVD to install from, only the LiveCD (which I booted from my SD card reader), and that left me without a lot of packages and also without Ext4!  And now, after having copied my Evolution profile directory over, I discovered that the new version does (2.24.1) does <em>not</em> supported the &#8220;unmatched&#8221; search folder feature which I had come to rely on in recent weeks.  This is a real bummer as it all but nullifies the advantage of using search folders (for me, at least) in Evolution.  <em>Alhamdulillaah</em>, at least there&#8217;s a <a title="unmatched search folder missing" href="http://bugzilla.gnome.org/show_bug.cgi?id=556116">bug report</a> open with one developer sympathizing.  However, a fix for it may not be forthcoming until the next release.</p>
<p>I think the time has come to take a look at Thunderbird again&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.basilgohar.com/2008/12/21/unmatched-search-folder-in-evolution/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fedora 10 released</title>
		<link>http://blog.basilgohar.com/2008/11/25/fedora-10-released</link>
		<comments>http://blog.basilgohar.com/2008/11/25/fedora-10-released#comments</comments>
		<pubDate>Wed, 26 Nov 2008 05:12:39 +0000</pubDate>
		<dc:creator>Basil</dc:creator>
				<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[GNU/Linux]]></category>

		<guid isPermaLink="false">http://www.basilgohar.com/blog/?p=279</guid>
		<description><![CDATA[Bismillaahir Rahmaanir Raheem Alhamdulillaah, Fedora 10 has been released!  Torrents are available.  I have all of my servers seeding now (including the newest one).  Read up on the new features to find out what&#8217;s new. Well, what are you waiting for?  Just go download it already! If you don&#8217;t want to use the torrent (although [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><em>Bismillaahir Rahmaanir Raheem</em></p>
<p><em>Alhamdulillaah</em>, <a title="Fedora 10 release notes" href="http://docs.fedoraproject.org/release-notes/f10/">Fedora 10 has been released</a>!  <a title="Torrent Server for the Fedora Project" href="http://torrent.fedoraproject.org/">Torrents</a> are available.  I have all of my servers seeding now (including <a title="New server for Audio Islam" href="http://www.basilgohar.com/blog/2008/11/23/new-server-for-audio-islam/">the newest one</a>).  Read up on the <a title="Fedora 10 feature list" href="http://fedoraproject.org/wiki/Releases/10/FeatureList">new features</a> to find out what&#8217;s new.</p>
<p>Well, what are you waiting for?  Just go download it already!</p>
<p>If you don&#8217;t want to use the torrent (although you should), then you can also download both the <a title="Local copy of Fedora 10 64-bit" href="http://aalimraan.hidayahonline.net/~basilgohar/Fedora-10-x86_64-DVD/">x86-64 build</a> as well as the <a title="Local copy of Fedora 10 32-bit" href="http://aalimraan.hidayahonline.net/~basilgohar/Fedora-10-i386-DVD/">i386 one</a> from my new server.  My server should be able to deliver the files as fast as you can grab &#8216;em, <em>in shaaʾ Allaah</em>.  Let&#8217;s find out.  <img src='http://blog.basilgohar.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>(Famous last words, eh?)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.basilgohar.com/2008/11/25/fedora-10-released/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>rTorrent let me down :(</title>
		<link>http://blog.basilgohar.com/2008/11/25/rtorrent-let-me-down</link>
		<comments>http://blog.basilgohar.com/2008/11/25/rtorrent-let-me-down#comments</comments>
		<pubDate>Wed, 26 Nov 2008 05:06:37 +0000</pubDate>
		<dc:creator>Basil</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.basilgohar.com/blog/?p=280</guid>
		<description><![CDATA[For seeding the Fedora 10 release, I am using rTorrent on albaqarah &#38; aalimraan (my two fastest servers), but I had to fall back to using the standard bittorrent client on alfaatihah because rTorrent isn&#8217;t available for its platform (RHEL3) &#8211; at least, not through yum nor up2date.  rTorrent is great, in general, but it [...]]]></description>
			<content:encoded><![CDATA[<p>For seeding the Fedora 10 release, I am using <a title="rTorrent website" href="http://libtorrent.rakshasa.no/">rTorrent</a> on albaqarah &amp; aalimraan (my two fastest servers), but I had to fall back to using the standard bittorrent client on alfaatihah because rTorrent isn&#8217;t available for its platform (RHEL3) &#8211; at least, not through yum nor up2date.  rTorrent is great, in general, but it really let me down when I was trying to seed on aalimraan, because it kept crashing.</p>
<p><span id="more-280"></span>I had really wanted to seed the initial few hours of the release on my new server because of its great amount of network bandwidth, but that&#8217;s an opportunity I lost because of a crash like this:</p>
<blockquote><p><code>Caught Segmentation fault, dumping stack: KB] [Port: 6924]                                                                                                                                                                                                                   [U 76/0] [D 0/0] [H 0/32] [S 3/86/768] [F 4/128]<br />
0 rtorrent [0x41ea5d]<br />
1 rtorrent [0x421488]<br />
2 /lib64/libc.so.6 [0x3a76a322a0]<br />
3 /usr/lib64/libtorrent.so.10 [0x3a78e4caf4]<br />
4 /usr/lib64/libtorrent.so.10 [0x3a78e50683]<br />
5 /usr/lib64/libtorrent.so.10 [0x3a78e4f704]<br />
6 /usr/lib64/libtorrent.so.10(_ZN7torrent9PollEPoll7performEv+0x5d) [0x3a78e24d55]<br />
7 rtorrent [0x440379]<br />
8 rtorrent [0x41f645]<br />
9 /lib64/libc.so.6(__libc_start_main+0xfa) [0x3a76a1e32a]<br />
10 rtorrent(_ZNSt8ios_base4InitD1Ev+0x49) [0x40cc79]<br />
Aborted</code></p></blockquote>
<p>that kept happening.  Up to this point, I have <em>never</em> had a problem with rTorrent, <em>alhamdulillaah</em>, but still &#8211; that one time you <em>really</em> need it, and it goes?  The worst part is, when searching the problems I was having, it was due to memory consumption.  4GB is not enough to seed a couple of hundred peers?  I could seed almost 100 on my older hardware with only 1GB of RAM, and I never had the mainline client (which is written in Python) give me such problems.  rTorrent is written in C++, which I thought would help with these kinds of cases.  Shouldn&#8217;t, theoretically, a compiled application require less memory than one running within a virtual machine environment &#8212; maybe my understanding on computer science is lacking, but I always thought that was the prevailing wisdom.</p>
<p>Anyway, I didn&#8217;t want to turn this into a rant about rTorrent, but the emotions are strong enough to drive me to at least say <em>something</em>, especially because the crash happened during (my) nighttime, so I couldn&#8217;t restore the seeding until after I woke up and got back from <em>fajr</em> prayer.</p>
<p>If anyone has any recommendations on how to avoid the problem I had with rTorrent or on a better, more stable client that can handle such massive transfers and load, please let me know.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.basilgohar.com/2008/11/25/rtorrent-let-me-down/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New server for Audio Islam</title>
		<link>http://blog.basilgohar.com/2008/11/23/new-server-for-audio-islam</link>
		<comments>http://blog.basilgohar.com/2008/11/23/new-server-for-audio-islam#comments</comments>
		<pubDate>Sun, 23 Nov 2008 14:45:35 +0000</pubDate>
		<dc:creator>Basil</dc:creator>
				<category><![CDATA[Audio Islam]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[GNU/Linux]]></category>

		<guid isPermaLink="false">http://www.basilgohar.com/blog/?p=263</guid>
		<description><![CDATA[Bismillaahir Rahmaanir Raheem Alhamdulillaah, following a recommendation from a close friend, I decided to start leasing a server from 10TB.com for Audio Islam.  As the name implies, they are big on bandwidth, which is exactly what Audio Islam needs.  Needless to say, I&#8217;m thrilled at having a new beefy server to play with and to [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><em>Bismillaahir Rahmaanir Raheem</em></p>
<p><em>Alhamdulillaah</em>, following a recommendation from <a title="What's the plot" href="http://whatstheplot.com/blog/">a close friend</a>, I decided to start leasing a server from <a title="10TB website" href="http://www.10tb.com/">10TB.com</a> for <a title="Website for Audio Islam" href="http://www.audioislam.com/"><em>Audio Islam</em></a>.  As the name implies, they are big on bandwidth, which is exactly what <em>Audio Islam</em> needs.  Needless to say, I&#8217;m thrilled at having a new beefy server to play with and to meet the current &amp; future needs of this food of the <a title="Hello Google!" href="http://www.audioislam.com/">Islamic audio</a>-consuming masses.  And the best part is they installed <a title="Fedora Project website" href="http://fedoraproject.org/">Fedora</a> for me!  How awesome is that!</p>
<p>Read on for the specs &amp; details on the transition.</p>
<p><span id="more-263"></span><a title="10TB.com dedicated plan 1" href="http://www.10tb.com/server_1.php">The plan I got</a> (accurate to the time of this posting, at least) is really impressive, maa shaaʾ Allaah.  The catch for all of this value is minimal support.  <em>Alhamdulillaah</em>, with more than 5 years of managing GNU/Linux boxen, as long as I have a remote reboot, I think I&#8217;ll be fine, <em>in shaaʾ Allaah</em>.  <img src='http://blog.basilgohar.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<h1>Hardware specifications</h1>
<p>The specs for the new server:</p>
<ul>
<li>Single Quad Core Xeon 3220 &#8211; 2.40GHz</li>
<li>4GB of RAM</li>
<li>250GB of disk space</li>
<li>1Gbps (!) network connection</li>
<li>10TB monthly bandwidth limit</li>
<li>$199/month</li>
</ul>
<p>The specs for the old server were quite modest in comparison:</p>
<ul>
<li>2.4GHz Celeron (single CPU, single core <img src='http://blog.basilgohar.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  )</li>
<li>1GB of RAM</li>
<li>80GB of disk space</li>
<li>20Mbps network connection</li>
<li>No monthly limit</li>
<li>$239/month</li>
</ul>
<h1>Bandwidth</h1>
<p>It should be quite obvious to see why I had little hesitation in the upgrade.  A 20Mbps connection without a monthly limit can yield a theoretical monthly throughput of 20Mb/s * 3600s/hr * 24hr/day * 30day = 6.48TB.  Interestingly enough, last <em>Ramadhaan</em>, <em>Audio Islam</em> did nearly 6TB &#8211; so it was just the right time to move on as well.</p>
<p>Of note is that it may be that the connection on the old server might have been limiting the speed of downloads at the peak times.  Therefore, with a 1Gbps connection (that&#8217;s <em>fifty</em> times faster than the old server), we may just see some surprises in the coming months.  I may have to instill some artificial bandwidth throttling if I do not have another solution (say, a second server).  We&#8217;ll just have to see&#8230;</p>
<h1>Fedora</h1>
<p>The most exciting part for me is that they were more than happy to install the latest release of Fedora (9) for me, which is the same operating system I have running on my laptop.  Fedora is a great distribution for running a server on, and it makes me want to help out with the proposal for a <a title="Fedora Server Special Interest Group" href="https://fedoraproject.org/wiki/SIGs/Server">Server Special Interest Group (SIG)</a> within the Fedora Project, <em>in shaaʾ Allaah</em>.</p>
<p>Some people may hold the opinion that a server distribution should be on a more stable platform than Fedora, because Fedora is a cutting-edge distro, running the latest releases of software generally.  I won&#8217;t argue that point, but I will also say that running the <em>latest</em> <strong>stable</strong> release of software brings advantages that are not available to someone running older releases of software, especially server software.  Being that Fedora has a <em>huge</em> &amp; helpful community around it with many already using Fedora in a server configuration, any problems encountered will also be well supported by others like myself, <em>in shaaʾ Allaah</em>.  So I am not concerned in running <em>bleeding-edge</em> <strong>stable</strong> software on a server, which is just what Fedora provides, <em>alhamdulillaah</em>.</p>
<p>If all goes well, I may have reason to get a second server from 10TB for some business I am undertaking, <em>in shaaʾ Allaah</em>, and with <a title="Fedora 10 release schedule" href="http://fedoraproject.org/wiki/Releases/10/Schedule">Fedora 10</a> scheduled to be released in a few days, <em>in shaaʾ Allaah</em>, I am looking forward to running it as well.  Crazy?  Perhaps.  But I&#8217;m loving it!</p>
<h1>Cacti</h1>
<p>Wait, what?  Yes!  My same friend referenced above also showed me <a title="Website for Cacti" href="http://www.cacti.net/index.php">Cacti</a> running on his server.  I immediately feel in love with it and got to work setting things up.  <a title="Cacti graphs for Hidayah Online Network servers" href="http://aalimraan.hidayahonline.net/cacti/graph_view.php?action=tree&amp;tree_id=6">See for yourself</a>.</p>
<p>To put it simply, Cacti is a PHP/MySQL-based tool that, when running, monitors &amp; produces information graphs for servers, mostly communicating through <a title="Wikipedia article for &quot;Simple Network Management Protocol&quot;" href="http://en.wikipedia.org/wiki/Simple_Network_Management_Protocol">SNMP</a>.  I have it setup for my three current servers (soon to be two, <em>in shaaʾ Allaah</em>).</p>
<h1>Server naming scheme for the <em>Hidayah Online Network</em></h1>
<p>Incidentally, with the growing number of servers within the <em>Hidayah Online Network</em> I decided that I needed a naming scheme.  My oft-referenced friend elected to use the names of cities of importance within Islaam &#8211; so he named them <em>makkah</em>, <em>madinah</em>, etc.  Another one of my friends has opted for the names of historic battles in Islamic history &#8211; so <em>badr</em>, <em>uhud</em>, etc.  After consulting with my wife, I decided on something even better &#8211; the names of the chapters (<em>suwaar</em>) of the <em>Qurʾaan</em> &#8211; so my first server (formerly just called &#8220;The <em>Hidayah Online</em> server&#8221;) has now become <em>alfaatihah.hidayahonline.net</em>.  My second server (formerly just called &#8220;The <em>Audio Islam</em> server&#8221;) is now, for the remainder of it&#8217;s life within the <em>Hidayah Online</em> network, <em>albaqarah.hidayahonline.net</em>.  And, the newcomer, if you haven&#8217;t guessed, is called <em>aalimraan.hidayahonline.net</em>.</p>
<p>I have a sense of sadness that, within two weeks, the name <em>albaqarah</em> is going to have to be retired.  Therefore, I may rename <em>aalimraan</em> to <em>albaqarah</em>, as the server is really replacing the old one in purpose, and also, I would hate to see the name of one of the greatest <em>suwaar</em> of the <em>Qurʾaan</em> be abandoned, albeit for a very arbitrary purpose.</p>
<p>Also, as should be obvious now, I decided that the formerly unused domain name, <em>hidayahonline.net</em>, will be the administrative name for everything related to the network itself.  <em>hidayahonline.org</em> will remain the Islamic portal.  This leaves <em>hidayahonline.com</em>, which I may retain for commercial services should that opportunity arise (and arise it may yet, <em>in shaaʾ Allaah</em>).</p>
<h1>Conclusion</h1>
<p>I think that pretty-much wraps-up what I&#8217;ve wanted to discuss over the past couple of weeks regarding the <em>Audio Islam</em> migration.  <em>Alhamdulillaah</em>, it went very smoothly, and working with a very powerful server on a super-fast connection has been most enjoyable, even though I&#8217;ve been undergoing some bandwidth trials myself (the current connection is 64kb/s symmetric DSL &#8211; something I didn&#8217;t even know existed before).  We should have a more reasonable connection restored within a few days, <em>in shaaʾ Allaah</em>.</p>
<p>Look, in the future, for some significant updates for <em>Audio Islam</em>, including the years-overdue upgrade to the CMS.  Now that the server is running Fedora, I have even less excuses, as everything I need is conveniently packaged already!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.basilgohar.com/2008/11/23/new-server-for-audio-islam/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Freedom is for the people</title>
		<link>http://blog.basilgohar.com/2008/08/28/freedom-is-for-the-people</link>
		<comments>http://blog.basilgohar.com/2008/08/28/freedom-is-for-the-people#comments</comments>
		<pubDate>Thu, 28 Aug 2008 17:00:57 +0000</pubDate>
		<dc:creator>Basil</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Society]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.basilgohar.com/blog/?p=227</guid>
		<description><![CDATA[Bismillaahir Rahmaanir Raheem michael.dehaan (his spelling, not mine!) posted something that you can take or leave (I don&#8217;t want to start a flame war on my own blog): michaeldehaan.net &#124; Popularity Contests Are So Junior High School. But what is intriguing are the ideas that develop in the comments.   Please take some time and read [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><em>Bismillaahir Rahmaanir Raheem</em></p>
<p>michael.dehaan (his spelling, not mine!) posted something that you can take or leave (I don&#8217;t want to start a flame war on my own blog):</p>
<p><a href="http://www.michaeldehaan.net/?p=667">michaeldehaan.net | Popularity Contests Are So Junior High School</a>.</p>
<p>But what is intriguing are the ideas that develop in the comments.   Please take some time and read those first, and then come back here.  <img src='http://blog.basilgohar.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p><span id="more-227"></span>What I wanted you to read were the ideas floated in the comments regarding raising awareness of the Freedom of Free Software for the common people, and the analogies made to such programs as NOVA &amp; Cosmos on PBS.  This touched me personally because of how important such programs were to me and to nurturing my love &amp; interest for Science &amp; Nature.</p>
<p>These programs, it seems, were designed to take what may have been seemingly esoteric topics that were originally avoided by regular people and make them accessible.  People like Carl Sagan devoted their lives towards making deep topics such as the universe accessible and understandable by common people.  In no small part, I think they were successful.</p>
<p>So, if success can be had in such an area as Science, then why not also for Freedom?  Why not devote time to &#8220;marketing&#8221; the advantages that Free software and software freedom bring, both practical and social?  But the noveleity I found was in pointing towards the successful (if not &#8220;American Idol&#8221; successful) models of Public broadcasting, which <em>did</em> succeed in reaching  intended audiences and affecting them positive ways that brought about positive changes, in my humble opinion.</p>
<p>What&#8217;s the next step, then?  Let&#8217;s at least foster the idea that we should be working on producing media that fun, easy to understand and follow, and serves to promote what we, the users of Free software, feel is important about it.  I&#8217;m going to think some more about this and get back to you all, <em>in shaaʾ Allaah</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.basilgohar.com/2008/08/28/freedom-is-for-the-people/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Naïve integer primality calculator in PHP</title>
		<link>http://blog.basilgohar.com/2008/08/24/naive-integer-primality-calculator-in-php</link>
		<comments>http://blog.basilgohar.com/2008/08/24/naive-integer-primality-calculator-in-php#comments</comments>
		<pubDate>Sun, 24 Aug 2008 22:52:52 +0000</pubDate>
		<dc:creator>Basil</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.basilgohar.com/blog/?p=222</guid>
		<description><![CDATA[Bismillaahir Rahmaanir Raheem Alhamdulillaah, while reading about integers and, subsequently, prime numbers last night, I decided the time had come for me to write a primality calculator in PHP.  The test I use in my implementation is about as a naïve as one can possible get, but it was fun, nonetheless. Interestingly enough, I discovered [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><em>Bismillaahir Rahmaanir Raheem</em></p>
<p><em>Alhamdulillaah</em>, while reading about <a title="Wikipedia article for &quot;Integer&quot;" href="http://en.wikipedia.org/wiki/Integer">integers</a> and, subsequently, <a title="Wikipedia article for &quot;Prime number&quot;" href="http://en.wikipedia.org/wiki/Prime_number">prime numbers</a> last night, I decided the time had come for me to write a primality calculator in PHP.  The <a title="Wikipedia article for &quot;primality test&quot;" href="http://en.wikipedia.org/wiki/Primality_test">test</a> I use in my implementation is about as a naïve as one can possible get, but it was fun, nonetheless.</p>
<p>Interestingly enough, I discovered that there already exists a primality calculator for *nix-based systems &#8211; primes.  It comes with the bsd-games package for Fedora.  I assume the same is true for other distributions.  Mine isn&#8217;t quite as fast yet&#8230;but it does accept, optionally, one or two arguments.  If there are two arguments, then it will calculate all primes starting from the first going until the second.  If there is only one argument, it will calculate from PRIME_START (defined to be 2) through to the largest integer PHP can handle on your platform (usually the maximum value of a signed int on your machine).</p>
<p>There are loads of potential optimizations that  can be performed, and this was just something written on a whim as a proof of concept.  It seems to be accurate, however.  The code, released under the <a title="GNU General Public License 3.0" href="http://www.gnu.org/licenses/gpl-3.0.html">GNU GPL v. 3.0</a>, can be found below.<br />
<span id="more-222"></span></p>
<blockquote><pre>#!/usr/bin/php
< ?php

define('PRIME_START', 2);   //  One, by definition, is not prime

if (isset($argv[2])) {
    $start = (int) $argv[1];
    $max = (int) $argv[2];
} elseif (isset($argv[1])) {
    $start = (int) PRIME_START;
    $max = (int) $argv[1];
} else {
    $start = PRIME_START;
    $max = PHP_INT_MAX;
}

if ($start < PRIME_START) {
    $start = PRIME_START;
}

if ($max < PRIME_START) {
    $max = PHP_INT_MAX;
}

echo "Using $start as start value and $max as max value\n";

$int = $start;

while ($int < $max) {
    $start_time = microtime(true);
    if (is_prime($int)) {
        $total_time = round((microtime(true) - $start_time), 2);
        echo "$int is prime (calculated in {$total_time}s)\n";
    }
    ++$int;
}

echo "All possible primes lower than $max have been calculated!\n";

/**
 * A very naïve test to determine the primality of a given integer
 *
 * @param int $int
 * @return boolean integer is prime
 */
function is_prime($int)
{
    if (! is_numeric($int)) {
        return false;
    }

    $int = (int) $int;

    $test_divisor = PRIME_START; //  By coincidence, the first divisor to determine prime numbers is also the first prime number

    while ($test_divisor < $int) {
        if (is_divisor($int, $test_divisor)) {
            return false;
        }
        ++$test_divisor;
    }

    //  If we are here, then that means no divisors were found
    return true;
}

/**
 * Very simple function to determine if one integer is the divisor of another
 *
 * @param int $dividend
 * @param int $divisor
 * @return boolean $divisor is divisor of dividend
 */
function is_divisor($dividend, $divisor)
{
    if (0 === $dividend % $divisor) {
        return true;
    } else {
        return false;
    }
}
</pre>
</pre>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.basilgohar.com/2008/08/24/naive-integer-primality-calculator-in-php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Audio Islam now running on lighttpd</title>
		<link>http://blog.basilgohar.com/2008/08/16/audio-islam-now-running-on-lighttpd</link>
		<comments>http://blog.basilgohar.com/2008/08/16/audio-islam-now-running-on-lighttpd#comments</comments>
		<pubDate>Sun, 17 Aug 2008 04:59:32 +0000</pubDate>
		<dc:creator>Basil</dc:creator>
				<category><![CDATA[Audio Islam]]></category>
		<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.basilgohar.com/blog/?p=212</guid>
		<description><![CDATA[Bismillaahir Rahmaanir Raheem Alhamdulillaah, I&#8217;ve been able to make some major- and sorely-needed-upgrades to Audio Islam.  Interestingly enough, for the vast majority of people, these changes won&#8217;t really be that visible as they are all behind-the scenes. The desire to upgrade Audio Islam has been around for a long time, and I still have many [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><em>Bismillaahir Rahmaanir Raheem</em></p>
<p><em>Alhamdulillaah</em>, I&#8217;ve been able to make some major- and sorely-needed-upgrades to <a title="Audio Islam website" href="http://www.audioislam.com/"><em>Audio Islam</em></a>.  Interestingly enough, for the vast majority of people, these changes won&#8217;t really be that visible as they are all behind-the scenes.</p>
<p><span id="more-212"></span>The desire to upgrade <em>Audio Islam</em> has been around for a long time, and I still have many more changes, particularly in relation to the code, that are pending.  But I decided to focus on performance due to the vast surge in visitors that will come during the month of Ramadhaan, in shaaʾ Allaah.  Therefore, I had to polish some things, upgrade others, and in some cases, fundamentally change them!</p>
<p>Prior to today, <em>Audio Islam</em> was running a typical <a title="Wikipedia article for &quot;LAMP&quot;" href="http://en.wikipedia.org/wiki/LAMP_(software_bundle)">LAMP</a> setup &#8211; <a title="Red Hat website" href="http://www.redhat.com/">Red Hat</a> <a title="Red Hat Enterprise Linux website (note: this current version as of this writing is 5)" href="http://www.redhat.com/rhel/">Enterprise Linux</a> 4, <a title="Apache Software Foundation website" href="http://www.apache.org/">Apache</a> <a title="Apache HTTP Server website" href="http://httpd.apache.org/">HTTP Server</a>, <a title="MySQL website" href="http://www.mysql.com/">MySQL</a> database server, &amp; <a title="PHP website" href="http://www.php.net/">PHP Hypertext Preprocessor</a>.  Also typically, at the <a title="PHP FAQ entry &quot;Why shouldn't I use Apache2 with a threaded MPM in a production environment?&quot;" href="http://www.php.net/manual/en/faq.installation.php#faq.installation.apache2">behest</a> of the PHP developers, my Apache HTTP server was configured to operate in <a title="Apache MPM prefork" href="http://httpd.apache.org/docs/2.2/mod/prefork.html">prefork</a> mode, which, to put it simply, causes the web server to assign one process per web request.</p>
<p>For a site like <em>Audio Islam</em>, where currently the programming logic is rather limited and the bulk of the action involves downloading of large files, the cautions that call for using the prefork mode, as opposed to the more performant multi-threaded <a title="Apache MPM worker" href="http://httpd.apache.org/docs/2.2/mod/worker.html">worker</a> mode, are less urgent, so I opted for the more efficient mode due to <em>Audio Islam</em>&#8216;s need for very high concurrency on rather modest server hardware.  I&#8217;ve had to set the maximum number of clients in my webserver to over 700 and also offset the more popular mode of download to be FTP just to keep the website accessible, so I am very keen to seek out as much optimization as I can until I can move to another server that will sustain the site as well as this one in terms of bandwidth (currently, 20Mbit/s unmetered is keeping the site afloat, alhamdulillaah).</p>
<p>However, here is where the multi-threaded madness of PHP reared its ugly head.  In truth, I am not entirely sure that I can lay the blame solely on PHP here, but as PHP is not generally multi-threaded enabled and intends to stay that way, I don&#8217;t feel so keen on removing them from the blame completely, either.</p>
<p>Before going further, here&#8217;s a summary of the specific versions of each package (before/after)</p>
<ul>
<li>Apache HTTP Server: 2.2.0/2.2.9</li>
<li>MySQL database server: 5.0.16/5.0.67</li>
<li>PHP Hypertext Preprocessor: 5.1.6/5.2.3</li>
</ul>
<p>As I install all my servers from source on my aging Red Hat platform in order to get the latest versions easily, that means I have the pleasure of compiling all my packages from source (I haven&#8217;t figured-out how to make my own RPMs yet&#8230;).  So, my first step was to compile Apache HTTP server, ensuring I enabled the worker MPM mode to enable multi-threading (a simple mistake I noticed when I saw the config summary included the old prefork MPM).</p>
<p>My configure command was as follows:</p>
<pre>./configure --enable-modules=all --enable-mods-shared=all --with-mpm=worker</pre>
<p>This went along very well.  My next step was to compile MySQL, as I needed access to the client library in order to compile PHP with support for the database backend.  Note that the coming of <a title="Introduction to PHP 5.3 Slides by Ilia Alshanetsky" href="http://ilia.ws/archives/187-Introduction-to-PHP-5.3-Slides.html">PHP 5.3</a> should obviate this as it will feature a <a title="PHP MYSQLND" href="http://forge.mysql.com/wiki/PHP_MYSQLND">native MySQL driver for PHP</a> which shares the same license as PHP, which sparked the whole problem of the <a title="PHP FAQ entry &quot; PHP 5 no longer bundles MySQL client libraries, what does this mean to me? Can I still use MySQL with PHP? I try to use MySQL and get &quot;function undefined&quot; errors, what gives?&quot;" href="http://my.php.net/manual/en/faq.databases.php#faq.databases.mysql.php5">separation between PHP the MySQL client library</a>.</p>
<p>Before I show the MySQL configure command, let me present the PHP one:</p>
<pre>./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql --with-zlib --with-bz2 --enable-mbstring --with-mysqli --with-pdo-mysql --enable-zip</pre>
<p>This is a pretty basic PHP configuration script, rather slim, but sufficient for what I needed.  However, the configure script complained about a missing library for MySQL named &#8220;libmysqlclient_r&#8221;.  I looked for it on my system, and while I found it, it was the wrong version.  This is when I realizzed that I had to enable the thread-safe client in MySQL.  So, I did this, using this configure command:</p>
<pre>./configure --enable-thread-safe-client</pre>
<p>After a rather lengthy make &amp; make install process, PHP was <em>still</em> complaining.  I looked for libmysqlclient_r and found it, but PHP still kept complaining that it wasn&#8217;t under &#8220;/usr/local&#8221;.  It didn&#8217;t matter that I explicitly instructed it to look at the install directory of my MySQL installation.</p>
<p>Anyway, after spending several hours trying to figure this out by researching online and trial-and-error, I decided enough was enough, and I was going to follow PHP&#8217;s recommendation of running it under FastCGI.  However, I do not have a lot of experience getting Apache to run under FastCGI.  Morever, as I didn&#8217;t need Apache&#8217;s power &amp; flexibility for <em>Audio Islam</em>, I decided now was the time to go where I&#8217;ve wanted to go for a while &#8211; to host <em>Audio Islam</em> using <a title="lighttpd website" href="http://www.lighttpd.net/">lighttpd</a>.</p>
<p><span title="It's proper name is lower-cased 'lighttpd', so don't bug me about it!">lighttpd</span> (pronounced <em>lighty</em>) is a lightweight yet powerful HTTP server that is designed for low overhead and high performance.  Despite these goals, it still hosts a slew of features that sufficed it to be the backend for <em>Audio Islam</em>, alhamdulillaah.  Once I realized that I was going to go through with it, I stopped all my efforts at getting Apache HTTP working and focused on installing lighttpd.  Amazingly enough, I discovered that the latest stable version, 1.4.19, was already available via yum for RHEL4!  I quickly went ahead and install it and its fastcgi module.  And, a short while later, after some configuration, I had <em>Audio Islam</em> up-and-running on lighttpd!  Alhamdulillaah!  It was rather surprising to see how it worked perfectly out of the box once I redirected it to my newly-fastcgi-compiled PHP.  For reference, here&#8217;s the final configure command I used for compiling PHP to ultimately work on lighttpd:</p>
<pre>./configure --enable-fastcgi --enable-discard-path --enable-force-cgi-redirect --with-mysql --with-zlib --with-bz2 --enable-mbstring --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql/bin/mysql_config --enable-zip</pre>
<p>The first three arguments are from the <a title="lighttpd &amp; PHP tutorial" href="http://trac.lighttpd.net/trac/wiki/TutorialLighttpdAndPHP#Others">lighttpd documentation</a>, and the rest are what I wanted in the first place.</p>
<p>So, there you have it! <em>Audio Islam</em> is now running on top of lighttpd, alhamdulillaah.  In shaaʾ Allaah this setup will enable the server to sail through Ramadhaan far smoother than previous years.  I guess we&#8217;ll find out in a couple of weeks, in shaaʾ Allaah.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.basilgohar.com/2008/08/16/audio-islam-now-running-on-lighttpd/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

