<?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; Development</title>
	<atom:link href="http://blog.basilgohar.com/category/development/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>Moodle 2.0 released!</title>
		<link>http://blog.basilgohar.com/2010/11/24/moodle-2-0-released</link>
		<comments>http://blog.basilgohar.com/2010/11/24/moodle-2-0-released#comments</comments>
		<pubDate>Wed, 24 Nov 2010 21:28:16 +0000</pubDate>
		<dc:creator>Basil</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Society]]></category>
		<category><![CDATA[education]]></category>
		<category><![CDATA[moodle]]></category>

		<guid isPermaLink="false">http://www.basilgohar.com/blog/?p=523</guid>
		<description><![CDATA[Alḥamdulillāh, Moodle 2.0 has been released! This is important for a lot of reasons, amongst them being that I work with Moodle on a day-to-day basis in my daytime job, and I use it on some of my own sites.  However, most important is the fact that Moodle provides a platform for education that is [...]]]></description>
			<content:encoded><![CDATA[<p><em>Alḥamdulillāh</em>, <a title="Moodle 2.0 is now available!" href="http://moodle.org/mod/forum/discuss.php?d=162906">Moodle 2.0 has been released</a>! This is important for a lot of reasons, amongst them being that I work with Moodle on a day-to-day basis in my daytime job, and I use it on some of my own sites.  However, most important is the fact that Moodle provides a platform for education that is free-as-in-freedom and the community supports this philosophy through-and-through.</p>
<p>Moodle 2.0 brings an incredibly wide range of new features and capabilities that further extend what is possible.  I personally have worked on some of the new features in a minor capacity &#8211; both in submitting bug reports as well as helping to implement some milestones in line with what we needed at work.</p>
<p>Moodle is used on countless sites to provide education and share knowledge in every corner of the world.  So, congratulations to the Moodle team and to the world for this great step forward!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.basilgohar.com/2010/11/24/moodle-2-0-released/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Updated to WordPress 2.8.2</title>
		<link>http://blog.basilgohar.com/2009/08/02/updated-to-wordpress-2-8-2</link>
		<comments>http://blog.basilgohar.com/2009/08/02/updated-to-wordpress-2-8-2#comments</comments>
		<pubDate>Sun, 02 Aug 2009 09:04:33 +0000</pubDate>
		<dc:creator>Basil</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.basilgohar.com/blog/?p=490</guid>
		<description><![CDATA[Bismillāhir Raḥmānir Raḥīm Alḥamdulillāh, I&#8217;ve just successfully upgraded my blog to WordPress 2.8.2, along with several other blogs that I maintain.  I&#8217;m really looking forward to the merger of WordPress &#38; WordPress-MU, which, ideally, will make managing multiple WordPress sites on the same server easier to deal with, in shāʾ Allāh.]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><em>Bismillāhir Raḥmānir Raḥīm</em></p>
<p style="text-align: left;"><em>Alḥamdulillāh</em>, I&#8217;ve just successfully upgraded my blog to <a title="WordPress 2.8.2 release announcement" href="http://wordpress.org/development/2009/07/wordpress-2-8-2/">WordPress 2.8.2</a>, along with several other blogs that I maintain.  I&#8217;m really looking forward to the merger of WordPress &amp; WordPress-MU, which, ideally, will make managing multiple WordPress sites on the same server easier to deal with, in shāʾ Allāh.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.basilgohar.com/2009/08/02/updated-to-wordpress-2-8-2/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Getting back on track</title>
		<link>http://blog.basilgohar.com/2009/04/26/getting-back-on-track</link>
		<comments>http://blog.basilgohar.com/2009/04/26/getting-back-on-track#comments</comments>
		<pubDate>Sun, 26 Apr 2009 09:20:08 +0000</pubDate>
		<dc:creator>Basil</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Family]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.basilgohar.com/blog/?p=460</guid>
		<description><![CDATA[Bismillaahir Rahmaanir Raheem Alhamdulillaah, nothing can take away from the blessing &#38; joy of being a father, but one of the obvious side effects of having an infant is the drastic change in priorities.  So, naturally, most of my projects have fallen on the wayside.  Even work has suffered.  But, alhamdulillaah, this just means I [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><em>Bismillaahir Rahmaanir Raheem</em></p>
<p><em>Alhamdulillaah</em>, nothing can take away from the blessing &amp; joy of being a father, but one of the obvious side effects of having an infant is the drastic change in priorities.  So, naturally, most of my projects have fallen on the wayside.  Even work has suffered.  But, alhamdulillaah, this just means I have to reshuffle schedules and be more prudent about my time usage &#8211; I&#8217;m still figuring this out.</p>
<p>To help me get back on track, I wanted to revisit a recent post I had made about <a title="Unfinished Projects" href="http://www.basilgohar.com/blog/2009/02/23/unfinished-projects">unfinished projects</a>.  The two projects that I feel I need to put some extra time into, due to their nature, are the <em>AlMaghrib in Malaysia</em> project as well as the <em>Global Homeschooling</em> project/business idea.  The former needs attention because people are waiting on me for further action, while the latter is important because I am convinced it is the future for my family, in shaaʾ Allaah.  Although the other points on the list are quite important as well (and some are, actually, more important), I am choosing these as examples because I think making progress on them is something of a &#8220;low-hanging fruit&#8221;.  Therefore, I need to make some kind of schedule or plan for getting both of these done.</p>
<p><span id="more-460"></span>As for the <em>AlMaghrib in Malaysia</em> project, the first task I really need to push forward is just getting a website up.  This really isn&#8217;t hard, especially for someone like me who has dozens of websites floating around the &#8216;tubes.  However, what&#8217;s held this up is that I wanted <em>AlMaghrib in Malaysia</em>&#8216;s website to be the first one to utilize my new server completely &#8211; not just for the web hosting, but also for DNS as well as e-mail.  Sadly, this condition has meant that I haven&#8217;t been able to get things going as straightforwardly as I have in the past.  The good news is I <em>do</em> have DNS working on the new server, but not e-mail.  Therefore, my plan is to just launch the website, which, once done, will also make me become more serious about getting e-mail working on that server as well, in shaaʾ Allaah.  But, &#8220;launch&#8221; in this context may be rather limited in scope, since one of the first things I want to do is have a mailing list for people to jump onto&#8230;sigh.</p>
<p style="padding-left: 30px;">So, the plan for <em>AlMaghrib in Malaysia</em> is:</p>
<ol>
<li>Just get the website up.  DNS is ready to go.  The website, at this point, is really just going to be a blog, which is more than sufficient for our needs.</li>
<li>Once the website is up, get e-mail working on the new server ASAP.  Though this may take a lot of work, that&#8217;s fine, because it will also benefit a lot of my other sites, which need the same functionality.</li>
</ol>
<p>As for the <em>Global Homeschooling</em> project, I&#8217;ve already gone ahead and purchase a slew of Islamic homeschooling-related domain names, all of which will point to one canonical website name, which will be the one we advertise.  The rest are there for serendipitous searches and/or hits.  I&#8217;ve dragged my feet on this one as well mostly because a lot of the work hinges on my wife&#8217;s availability, which, now, is understandably quite limited compared to before the birth of our son.  Still, I don&#8217;t really accept that as a valid excuse, because the site really should be ready for her as soon as <em>she</em> is ready, so that she can get started filling out the sites with content (which was how we had divided the initial work).</p>
<p style="padding-left: 30px;">So, the plan for the <em>Global Homeschooling</em> project is:</p>
<ol>
<li>Finish getting the website components up &#8211; blog, wiki, school, &amp; whatever else.</li>
<li>Make the various website components ready for my wife to use them easily, without her needing me to fix things here-and-there.</li>
</ol>
<p>Well, at least now it&#8217;s down.  I hope to have some results within a week, in shaaʾ Allaah.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.basilgohar.com/2009/04/26/getting-back-on-track/feed</wfw:commentRss>
		<slash:comments>3</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>TODO</title>
		<link>http://blog.basilgohar.com/2009/02/21/todo</link>
		<comments>http://blog.basilgohar.com/2009/02/21/todo#comments</comments>
		<pubDate>Sat, 21 Feb 2009 15:34:12 +0000</pubDate>
		<dc:creator>Basil</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[todo]]></category>

		<guid isPermaLink="false">http://www.basilgohar.com/blog/?p=420</guid>
		<description><![CDATA[finish this post]]></description>
			<content:encoded><![CDATA[<p>finish this post</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.basilgohar.com/2009/02/21/todo/feed</wfw:commentRss>
		<slash:comments>0</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>WordPress 2.7 released!</title>
		<link>http://blog.basilgohar.com/2008/12/11/wordpress-27-released</link>
		<comments>http://blog.basilgohar.com/2008/12/11/wordpress-27-released#comments</comments>
		<pubDate>Fri, 12 Dec 2008 04:36:21 +0000</pubDate>
		<dc:creator>Basil</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Free Software]]></category>

		<guid isPermaLink="false">http://www.basilgohar.com/blog/?p=285</guid>
		<description><![CDATA[Bismillaahir Rahmaanir Raheem Alhamdulillaah, WordPress 2.7 has been released!  Hit the link for all the releasy goodness. I&#8217;ve upgraded my personal blog, and I&#8217;ll take care of the rest in due time, in shaaʾ Allaah.  Upgrading with SVN is always recommended. Happy blogging!]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><em>Bismillaahir Rahmaanir Raheem</em></p>
<p><em>Alhamdulillaah</em>, <a title="WordPress 2.7 release announcement" href="http://wordpress.org/development/2008/12/coltrane/">WordPress 2.7 has been released</a>!  Hit the link for all the releasy goodness.</p>
<p>I&#8217;ve upgraded my personal blog, and I&#8217;ll take care of the rest in due time, <em>in shaaʾ Allaah</em>.  <a title="Upgrading WordPress using subversion" href="http://codex.wordpress.org/Installing/Updating_WordPress_with_Subversion#Updating_to_a_New_Stable_Version">Upgrading with SVN</a> is always recommended.</p>
<p>Happy blogging!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.basilgohar.com/2008/12/11/wordpress-27-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>Blog almost certainly 100% compliant now</title>
		<link>http://blog.basilgohar.com/2008/11/25/blog-almost-certainly-100-compliant-now</link>
		<comments>http://blog.basilgohar.com/2008/11/25/blog-almost-certainly-100-compliant-now#comments</comments>
		<pubDate>Tue, 25 Nov 2008 12:48:48 +0000</pubDate>
		<dc:creator>Basil</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[X/HTML]]></category>

		<guid isPermaLink="false">http://www.basilgohar.com/blog/?p=277</guid>
		<description><![CDATA[Bismillaahir Rahmaanir Raheem Alhamdulillaah, after loading up all blog-post pages (i.e., going to the bottom of each page and clicking for the next page), I&#8217;ve fixed all old posts that had HTML errors (according to the HTML Validator Firefox plugin). This actually is a relief for me because amongst the major reasons I enjoy using [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><em>Bismillaahir Rahmaanir Raheem</em></p>
<p style="text-align: left;"><em>Alhamdulillaah</em>, after loading up all blog-post pages (i.e., going to the bottom of each page and clicking for the next page), I&#8217;ve fixed all old posts that had HTML errors (according to the HTML Validator Firefox plugin).</p>
<p style="text-align: left;">This actually is a relief for me because amongst the major reasons I enjoy using WordPress is the work the developers put into it to make it a clean &amp; standards-compliant application.  I&#8217;ve avoided themes that are not.  So, <em>alhamdulillaah</em>, it seems that all the posts are fixed.  I haven&#8217;t bothered with the pages that I&#8217;ve created, though, because I&#8217;m likely going to redo those shortly anyway, <em>in shaaʾ Allaah</em>.</p>
<div style="text-align: left;"><em>Note</em>:  This refers to all pages that list multiple posts.  Apparently there is an error, possibly in the template that I am using, when viewing individual posts or pages.  *sigh*  More work ahead for me, but this is, at least, progress, <em>alhamdulillaah</em>.</div>
<p style="text-align: left;">That is all.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.basilgohar.com/2008/11/25/blog-almost-certainly-100-compliant-now/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>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>
		<item>
		<title>Message Mastery by Belal Khan</title>
		<link>http://blog.basilgohar.com/2008/07/29/message-mastery-by-belal-khan</link>
		<comments>http://blog.basilgohar.com/2008/07/29/message-mastery-by-belal-khan#comments</comments>
		<pubDate>Tue, 29 Jul 2008 07:39:44 +0000</pubDate>
		<dc:creator>Basil</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Education]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[Islam]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.basilgohar.com/blog/?p=208</guid>
		<description><![CDATA[Bismillaahir Rahmaanir Raheem Alhamdulillaah, my good friend Belal Khan of Leechon Films fame has started (a while back, actually) a program called Message Mastery.  You should get the full explanation from the website, but the basic gist of it is that it is a training seminar focused on developing masterful messages through the medium of [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><em>Bismillaahir Rahmaanir Raheem</em></p>
<p><em>Alhamdulillaah</em>, my good friend <a title="Belal Khan's website" href="http://belalkhan.com/">Belal Khan</a> of <a title="Website for Leechon Films" href="http://www.leechon.com/">Leechon Films</a> fame has started (a while back, actually) a program called <a title="Message Mastery website" href="http://messagemastery.com/"><em>Message Mastery</em></a>.  You should get the full explanation from the website, but the basic gist of it is that it is a training seminar focused on developing masterful messages through the medium of video.</p>
<p>He&#8217;s released a few videos that are freely available that are samples of what the entire program entails.  I found the one entitled &#8220;<a title="Three POWER Principles of Filmmaking from Message Master" href="http://messagemastery.com/three-power-principles-of-filmmaking-4.htm">Three POWER Principles of Filmmaking</a>&#8221; to be quite refreshing in how simple, yet effective, such techniques can be.  Even more beneficial is that the tips he provides, while framed around the production of video media, are general enough to be beneficial in almost any context.</p>
<p>Give his site a check-out and leave some comments as he&#8217;s very keen on getting &amp; responding-to feedback from his visitors &amp; members of his program.</p>
<p><em>Disclaimer</em>:  Belal is just my friend &#8211; I am neither associated with <em>Message Mastery</em> nor am I enrolled in the program&#8230;<em>yet</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.basilgohar.com/2008/07/29/message-mastery-by-belal-khan/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nokia plans to buy Symbian, open OS</title>
		<link>http://blog.basilgohar.com/2008/06/26/nokia-plans-to-buy-symbian-open-os</link>
		<comments>http://blog.basilgohar.com/2008/06/26/nokia-plans-to-buy-symbian-open-os#comments</comments>
		<pubDate>Thu, 26 Jun 2008 08:16:08 +0000</pubDate>
		<dc:creator>Basil</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Free Software]]></category>
		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://www.basilgohar.com/blog/?p=177</guid>
		<description><![CDATA[Bismillaahir Rahmaanir Raheem Alhamdulillaah, I just caught the news that Nokia is planning to buy Symbian and subsequently plans to open-source Symbian OS last this year or at the beginning of this year.  If this all plays out and is true, then this is a great boon to world as a high-quality mobile operating system [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><em>Bismillaahir Rahmaanir Raheem</em></p>
<p><em>Alhamdulillaah</em>, I just caught the news that <a title="Nokia buys Symbian, will open Symbian OS" href="http://www.linux.com/feature/139596">Nokia is planning to buy Symbian</a> and subsequently plans to open-source <a title="Wikipedia article for Symbian OS" href="http://en.wikipedia.org/wiki/Symbian_OS">Symbian OS</a> last this year or at the beginning of this year.  If this all plays out and is true, then this is a great boon to world as a high-quality mobile operating system will be free from proprietary encumbrances.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.basilgohar.com/2008/06/26/nokia-plans-to-buy-symbian-open-os/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Blog now completely Creative Commons-licensed</title>
		<link>http://blog.basilgohar.com/2008/06/21/blog-now-completely-creative-commons-licensed</link>
		<comments>http://blog.basilgohar.com/2008/06/21/blog-now-completely-creative-commons-licensed#comments</comments>
		<pubDate>Sat, 21 Jun 2008 09:57:51 +0000</pubDate>
		<dc:creator>Basil</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[Projects]]></category>

		<guid isPermaLink="false">http://www.basilgohar.com/blog/?p=170</guid>
		<description><![CDATA[Bismillaahir Rahmaanir Raheem Alhamdulillaah, after finding the wpLicense WordPress plugin on the Creative Commons website, I&#8217;ve been able to completely license all my work released through my blog under the Creative Commons Attribution-ShareAlike 3.0 United States license.  This means such world-changing works as my essay on Social Networking &#38; online projects, my tirade against anti-userism, [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><em>Bismillaahir Rahmaanir Raheem</em></p>
<p><em>Alhamdulillaah</em>, after finding the <a title="wpLicense website" href="http://wiki.creativecommons.org/WpLicense">wpLicense</a> <a title="WordPress website" href="http://wordpress.org">WordPress</a> plugin on the <a title="Creative Commons website" href="http://creativecommons.org">Creative Commons</a> website, I&#8217;ve been able to completely license all my work released through my blog under the <a rel="license" href="http://creativecommons.org/licenses/by-sa/3.0/us/">Creative Commons Attribution-ShareAlike 3.0 United States</a> license.  This means such world-changing works as my essay on <a title="Social Networking &amp; online projects" href="http://www.basilgohar.com/blog/2006/02/23/social-networking-online-projects/">Social Networking &amp; online projects</a>, my tirade against <a title="Anti-userism (part 1?)" href="http://www.basilgohar.com/blog/2006/10/22/anti-userism-part-1/">anti-userism</a>, a heart-warming story of love, loss, and &amp; <a title="The heroic story of the recovery of a crashed laptop with a corrupted hard drive" href="http://www.basilgohar.com/blog/2006/11/06/the-heroic-story-of-the-recovery-of-a-crashed-laptop-with-a-corrupted-hard-drive/">hard disks</a>, the possible (at least, then) <a title="Yahoogle! or Goohoo! - that is the question" href="http://www.basilgohar.com/blog/2007/02/06/yahoogle-or-goohoo-that-is-the-question/">merger of Yahoo! &amp; Google</a>, <a title="Natural sounds with the H4" href="http://www.basilgohar.com/blog/2007/08/27/natural-sounds-with-the-h4/">natural sounds recorded with my H4</a>, and many other things.</p>
<p><span id="more-170"></span>This license covers all original work by me posted to this blog, including literature &amp; multimedia (audio, video, &amp; images).  For attribution it is sufficient to link back to the post containing the content on this site.  Since I have chosen the <em>Attribution ShareAlike</em> license, this means I simply want to be credited for my work and I would like that any derivative work using my own work also be shared in a similar way.  I would not mind if someone makes derivative works (keeping in mind the above two points), and if someone makes money from using my content, so be it!  Feel free to share some of the wealth with me if you are so inclined, but that is not a condition.  <img src='http://blog.basilgohar.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>So, at long last, my blog content is shared appropriately.  Let the creativity flow!</p>
<p>UPDATE: I fixed some typos and clarified the language I used for describing the terms under which I am licensing my work.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.basilgohar.com/2008/06/21/blog-now-completely-creative-commons-licensed/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ffmpeg from svn</title>
		<link>http://blog.basilgohar.com/2008/05/18/ffmpeg-from-svn</link>
		<comments>http://blog.basilgohar.com/2008/05/18/ffmpeg-from-svn#comments</comments>
		<pubDate>Sun, 18 May 2008 12:27:38 +0000</pubDate>
		<dc:creator>Basil</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Fedora]]></category>
		<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Media]]></category>
		<category><![CDATA[Subversion]]></category>

		<guid isPermaLink="false">http://www.basilgohar.com/blog/?p=151</guid>
		<description><![CDATA[Bismillaahir Rahmaanir Raheem Alhamdulillaah, I have really been engrossed in using ffmpeg, one of the most amazing a/v command-line tools out there, for my various personal video projects.  However, recently I was experiencing a recurring bug where I could not work with some specific codecs when either the input or the output file was on [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><em>Bismillaahir Rahmaanir Raheem</em></p>
<p><em>Alhamdulillaah</em>, I have really been engrossed in using <a title="ffmpeg website" href="http://ffmpeg.mplayerhq.hu/">ffmpeg</a>, one of the most amazing a/v command-line tools out there, for my various personal video projects.  However, recently I was experiencing a recurring bug where I could not work with some specific codecs when either the input or the output file was on a particular drive (!).  The drive in question happened to have only one FAT32 partition, so I suspect it may have had something to do with it, as using another drive for both input &amp; output would generally work flawlessly.  The particular action I was trying to perform was to encode a sequence of rather large JPEG files (3072&#215;2304) into a single video file using the outstanding (but still somewhat experimental and/or unstable) FFV1 lossless codec.</p>
<p>So, I visited the <a title="ffmpeg website" href="http://ffmpeg.mplayerhq.hu/">ffmpeg</a> website and looked at <a title="ffmpeg bug tracker" href="http://roundup.mplayerhq.hu/roundup/ffmpeg/">some of their bugs</a>, but didn&#8217;t see anything related to this.  Then, after seeing some of their pre-bug report checklist, I decided to check the version of ffmpeg I had on the system, and found it to be from March.  So, I pulled-down a fresh copy of their <a title="ffmpeg download page" href="http://ffmpeg.mplayerhq.hu/download.html">trunk via subversion</a> and ran configure &amp; make (I did not run make install).  Running the resulting ffmpeg binary from this compile run worked perfectly, <em>alhamdulillaah</em>.</p>
<p>The lesson is, if you&#8217;re running into a bug with either ffmpeg or any other package, then give a shot at running the latest code, if available.  It may seem like common sense, but I had underestimated just how easy it would be.  Surely, other packages may not work as simply, but it really was a piece of cake in this case.  Now I guess I need to learn how to package RPMs so I can help out the <a title="Livna website" href="http://rpm.livna.org/rlowiki/">Livna</a> project to get this latest code into their repository, which I also understand is not simple task, as many other projects rely on ffmpeg&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.basilgohar.com/2008/05/18/ffmpeg-from-svn/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fedora 9 seeding stats</title>
		<link>http://blog.basilgohar.com/2008/05/13/fedora-9-seeding-stats</link>
		<comments>http://blog.basilgohar.com/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 [...]]]></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/basilgohar/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/basilgohar/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/basilgohar/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/basilgohar/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://blog.basilgohar.com/2008/05/13/fedora-9-seeding-stats/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

