<?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/"
	xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule">

<channel>
	<title>HidayahTech &#187; Audio Islam</title>
	<atom:link href="http://www.basilgohar.com/blog/category/projects/audio-islam/feed" rel="self" type="application/rss+xml" />
	<link>http://www.basilgohar.com/blog</link>
	<description>Technology, Development, &#38; Interesting Stuph</description>
	<lastBuildDate>Wed, 04 Aug 2010 17:07:52 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/us/</creativeCommons:license>		<item>
		<title>Unfinished Projects</title>
		<link>http://www.basilgohar.com/blog/2009/02/23/unfinished-projects</link>
		<comments>http://www.basilgohar.com/blog/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[PHP]]></category>
		<category><![CDATA[Personal]]></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 other [...]]]></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://www.basilgohar.com/blog/2009/02/23/unfinished-projects/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>LDAP for authentication back end</title>
		<link>http://www.basilgohar.com/blog/2009/01/18/ldap-for-authentication-back-end</link>
		<comments>http://www.basilgohar.com/blog/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 want [...]]]></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://www.basilgohar.com/blog/2009/01/18/ldap-for-authentication-back-end/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New server for Audio Islam</title>
		<link>http://www.basilgohar.com/blog/2008/11/23/new-server-for-audio-islam</link>
		<comments>http://www.basilgohar.com/blog/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 meet [...]]]></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://www.basilgohar.com/blog/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://www.basilgohar.com/blog/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://www.basilgohar.com/blog/2008/11/23/new-server-for-audio-islam/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Audio Islam now running on lighttpd</title>
		<link>http://www.basilgohar.com/blog/2008/08/16/audio-islam-now-running-on-lighttpd</link>
		<comments>http://www.basilgohar.com/blog/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 more changes, [...]]]></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>&#8217;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://www.basilgohar.com/blog/2008/08/16/audio-islam-now-running-on-lighttpd/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Fedora 9 seeding stats</title>
		<link>http://www.basilgohar.com/blog/2008/05/13/fedora-9-seeding-stats</link>
		<comments>http://www.basilgohar.com/blog/2008/05/13/fedora-9-seeding-stats#comments</comments>
		<pubDate>Tue, 13 May 2008 22:33:00 +0000</pubDate>
		<dc:creator>Basil</dc:creator>
				<category><![CDATA[Audio Islam]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Hidayah Online]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.basilgohar.com/blog/?p=141</guid>
		<description><![CDATA[Bismillaahir Rahmaanir Raheem
Alhamdulillaah, I&#8217;m about to head out from work, and I&#8217;m going to have to disconnect my torrent seeds that have been running all day &#8211; at least until I get home, in shaaʾ Allaah.  Here are the graphical bandwidth charts showing the stats of the seeds from all day.

First, the hidayahonline server [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><em>Bismillaahir Rahmaanir Raheem</em></p>
<p><em>Alhamdulillaah</em>, I&#8217;m about to head out from work, and I&#8217;m going to have to disconnect my torrent seeds that have been running all day &#8211; at least until I get home, in shaaʾ Allaah.  Here are the graphical bandwidth charts showing the stats of the seeds from all day.</p>
<p><span id="more-141"></span></p>
<p>First, the <a title="Guidance According to the Qur'aan &amp; Sunnah" href="http://hidayahonline.org/">hidayahonline</a> server (seeding the x86_64 DVD ISO file):</p>
<p style="text-align: center;"><a href="http://www.basilgohar.com/blog/wp-content/uploads/2008/05/fedora-9-seed-hidayahonlineorg.png"><img class="size-full wp-image-142 aligncenter" title="fedora-9-seed-hidayahonlineorg" src="http://www.basilgohar.com/blog/wp-content/uploads/2008/05/fedora-9-seed-hidayahonlineorg.png" alt="Fedora 9 x86_64 DVD ISO seeding" /></a></p>
<p style="text-align: left;">And second, the <a title="Islamic Audio downloads" href="http://www.audioislam.com/">audioislam</a> server (seeding the i386 DVD ISO file):</p>
<p style="text-align: center;"><a href="http://www.basilgohar.com/blog/wp-content/uploads/2008/05/fedora-9-seed-audioislamcom.png"><img class="size-full wp-image-143 aligncenter" title="fedora-9-seed-audioislamcom" src="http://www.basilgohar.com/blog/wp-content/uploads/2008/05/fedora-9-seed-audioislamcom.png" alt="Fedora 9 i386 DVD ISO" /></a></p>
<p style="text-align: left;">Although the audioislam server has twice the tubeage of the hidayahonline server, it is also the one more heavily loaded due to <a title="Islamic Audio downloads" href="http://www.audioislam.com/"><em>AudioIslam.com</em></a>.  So, they both ended-up serving around 32GB of data to the <a title="Series of tubes" href="http://en.wikipedia.org/wiki/Series_of_tubes">Tubes</a> before I disconnected them for the day.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.basilgohar.com/blog/2008/05/13/fedora-9-seeding-stats/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
