Moodle 2.0 released!

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 free-as-in-freedom and the community supports this philosophy through-and-through.

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 – both in submitting bug reports as well as helping to implement some milestones in line with what we needed at work.

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!

Updated to WordPress 2.8.2

Bismillāhir Raḥmānir Raḥīm

Alḥamdulillāh, I’ve just successfully upgraded my blog to WordPress 2.8.2, along with several other blogs that I maintain.  I’m really looking forward to the merger of WordPress & WordPress-MU, which, ideally, will make managing multiple WordPress sites on the same server easier to deal with, in shāʾ Allāh.

Getting back on track

Bismillaahir Rahmaanir Raheem

Alhamdulillaah, nothing can take away from the blessing & 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 – I’m still figuring this out.

To help me get back on track, I wanted to revisit a recent post I had made about unfinished projects.  The two projects that I feel I need to put some extra time into, due to their nature, are the AlMaghrib in Malaysia project as well as the Global Homeschooling 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 “low-hanging fruit”.  Therefore, I need to make some kind of schedule or plan for getting both of these done.

Continue reading “Getting back on track”

Unfinished Projects

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’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).

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).

For

  • Unfinished projects tend to clutter your mind
    • 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.
    • 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.
    • 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.
    • It’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’s not efficient.
  • Having so many unfinished projects means that it can be hard to pick just one to work on.
  • 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.
  • There are many more, and I may amend this list in the future as I recall them.

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.

  • Redesign the Audio Islam website
  • Write a script to automatically tag all the audio files, especially the ones containing Qurʾān recitation, with reciter & sūrah information
  • The Fedora Documentation manpage coverage project
    • 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).
    • The first step in this is to canvass the existing packages & executables and see what already has a man page.  I have already started on this, but there is much work left to be done.
    • There are plenty of sources for documentation that can be used as baseline manpages, including the Debian project.  So, this project doesn’t require as much work as it does just coordinating and facilitating.
  • A Paltalk replacement
    • Paltalk is a voice conference & chat application (video is also supported, but I don’t care about that right now) that is widely used, but terribly proprietary.
    • My goal is to create or synthesize a replacement for Paltalk using only free software and open technologies
      • The best candidates for this are SIP (for multimedia) and Jabber/XMPP (for text chat).
      • The landscape for software that can do this in a simple fashion is rather bleak, but there are some solutions.
      • I’m currently focused on FreeSWITCH as the SIP server and ejabberd as the chat backend.
      • 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 & XMPP
        • I’ve been looking mostly at Qutecom, SIP Communicator, and Psi
        • 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.
  • AlMaghrib in Malaysia
    • I am trying to catalyze the establishment of AlMaghrib Institute seminars in Malaysia (almost surely in Kuala Lumpur, at least at the beginning).
    • I’ve already purchased the domains almaghribinmalaysia.com/net/org, and I just need to get the site setup.
      • To start off, I think just a blog with some information about AlMaghrib is fine.  It can be fleshed-out later.
    • 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.
      • I see the first step being getting a group of excited & enthusiastic locals to get behind the effort.
      • After that group is identified (and it is really an ongoing process), see about getting the support of existing organizations.
        • From an initial perspective, it seems like this is going to be easy, in shāʾ Allāh.
      • 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.
        • Many of the AlMaghrib instructors are already known or well-known here
        • Having Suhaib Webb might be particularly nice, as his wife is Malaysian.
        • 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)
        • Yasir Qadhi is another instructor that has some reknown here, apparently (from what I’ve been told).
  • HidayahTech
    • My own technology consulting business
    • Although HidayahTech is currently the name of my blog, I have also resolved to use this as the name for my own consulting business.
    • Services will include
      • Audio recording, editing, mastering, and production (I did this, for example, for the Texas Dawah Convention in 2007)
        • I am consider splitting this and other audio-related services into it’s own business, namely, Hidayah Audio
      • Web technologies
        • Hosting (this is generally quite easy)
        • Moodle (an open-source learning mangement system, for putting schools online, for example)
        • Audio services, including hosting my “replacement for Paltalk” solution above
      • Consulting
        • This will include a wide variety of services ranging from system administration, general IT, infrastructure, to web development
        • 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
  • Global Homeschooling
    • 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.
    • 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.
    • Technology creates options & 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.
    • 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 buildings.
  • Learn the Python programming language
    • 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 & Fedora.
  • Memorize the Qurʾān
    • Please keep in mind that this list isn’t in order of importance…;)
    • 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’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 & constant work every day.  I really should commit to something, even if it is as simple as one āyāh per day.  That would be better than none.

$PATH in Fedora 10

[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’m starting to dislike fixed-width templates…corrected the last $PATH value so it will fit on my blog without overflowing into CSS “Elsewhere”.

Update 2: Ahhh!  WordPress!  WYSIWYG, not WIWIWYG (What I Want is Why You Get)!

screen is my new best friend

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’ve lived for so long without knowing about screen (Wikipedia article).  To put it as simple as possible, think of screen as a “tabbed” 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.
Continue reading “screen is my new best friend”

LDAP for authentication back end

Bismillaahir Rahmaanir Raheem

For a long time now I’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 – the blog, the forums, the school.  Additionally, in the future I want to roll out webmail (publicly) for volunteers & 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.

Continue reading “LDAP for authentication back end”

Concatenating compressed files

Bismillaahir Rahmaanir Raheem

I have my new server (aalimraan.hidayahonline.net – 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 see the relative activity on each day at a glance by seeing the size of the file, keeping in mind it’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)
  • 3, by being compressed text files, they take up very, very little space.

Continue reading “Concatenating compressed files”

rTorrent let me down :(

For seeding the Fedora 10 release, I am using rTorrent on albaqarah & aalimraan (my two fastest servers), but I had to fall back to using the standard bittorrent client on alfaatihah because rTorrent isn’t available for its platform (RHEL3) – 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.

Continue reading “rTorrent let me down :(“

Blog almost certainly 100% compliant now

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’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 WordPress is the work the developers put into it to make it a clean & standards-compliant application.  I’ve avoided themes that are not.  So, alhamdulillaah, it seems that all the posts are fixed.  I haven’t bothered with the pages that I’ve created, though, because I’m likely going to redo those shortly anyway, in shaaʾ Allaah.

Note:  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, alhamdulillaah.

That is all.

New server for Audio Islam

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’m thrilled at having a new beefy server to play with and to meet the current & future needs of this food of the Islamic audio-consuming masses.  And the best part is they installed Fedora for me!  How awesome is that!

Read on for the specs & details on the transition.

Continue reading “New server for Audio Islam”

Naïve integer primality calculator in PHP

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 that there already exists a primality calculator for *nix-based systems – primes.  It comes with the bsd-games package for Fedora.  I assume the same is true for other distributions.  Mine isn’t quite as fast yet…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).

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 GNU GPL v. 3.0, can be found below.
Continue reading “Naïve integer primality calculator in PHP”

Message Mastery by Belal Khan

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 video.

He’s released a few videos that are freely available that are samples of what the entire program entails.  I found the one entitled “Three POWER Principles of Filmmaking” 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.

Give his site a check-out and leave some comments as he’s very keen on getting & responding-to feedback from his visitors & members of his program.

Disclaimer:  Belal is just my friend – I am neither associated with Message Mastery nor am I enrolled in the program…yet.

Blog now completely Creative Commons-licensed

Bismillaahir Rahmaanir Raheem

Alhamdulillaah, after finding the wpLicense WordPress plugin on the Creative Commons website, I’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 & online projects, my tirade against anti-userism, a heart-warming story of love, loss, and & hard disks, the possible (at least, then) merger of Yahoo! & Google, natural sounds recorded with my H4, and many other things.

Continue reading “Blog now completely Creative Commons-licensed”

ffmpeg from svn

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 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 & output would generally work flawlessly.  The particular action I was trying to perform was to encode a sequence of rather large JPEG files (3072×2304) into a single video file using the outstanding (but still somewhat experimental and/or unstable) FFV1 lossless codec.

So, I visited the ffmpeg website and looked at some of their bugs, but didn’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 trunk via subversion and ran configure & make (I did not run make install).  Running the resulting ffmpeg binary from this compile run worked perfectly, alhamdulillaah.

The lesson is, if you’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 Livna project to get this latest code into their repository, which I also understand is not simple task, as many other projects rely on ffmpeg…