Thursday, May 29, 2014

Raising young scholars - Tawfique Chowdhury

Recently on the Revival Tours Umrah trip, we had a good Q&A night with Tawfique Chowdhury which was focused on one topic from one of the sisters regarding how to raise a child to be a scholar. He touched on a lot of points for general education, memorization methodologies and texts as well as environment. I felt the information could be very useful to parents out there, so I will try present the information as best as I can.

First of all, the education environment is important. The institutionalized education systems we have now are very inefficient. He pointed out that 1 hour of one on one instruction with a good teacher is like 2 weeks worth of having that subject in a normal school. So homeschooling or similar non-standard educational methods can be very beneficial. There are limits though to how many students a single one to one teacher can handle, and this is around 3 students. Regardless of what educational system you place your child in, make sure they complete a full 12 year secondary school/high school education as this is critical for further studies.

Another key point in the environment is the role of the mother. If we look at scholars of the past, many top scholars were raised by single mothers that strove very hard to educate their children. In the example of Imam Bukhairi, he wrote his first book at the age of 12, and its contents were all of the hadiths that his mother had narrated to him. After that he became blind for 3 years, all the while his mother was making du'a for him continuously. Never forget to make du'a for your child. Parents need to strive for their kids, they are your jihad. For daughters, in the past we have a rich history of female scholars of Islam but today it has become more difficult. One thing that can be done for daughters when they are marriagable age and want to continue studying the deen is to find a husband that will take them places that are supportive of their education.

For memorization, one key point is to focus on starting at an early age in both language learning and memorization of texts. Children are very capable of absorbing information at an early age. Language specifically is easy to learn in the younger ages. Trying to introduce arabic and as many languages as possible is a good idea. As for memorization of Quran and hadith, memorization is more important that understanding and tajweed. Understanding will came in later study with a scholar when the hadith or verse is mentioned, the student remembers it from their earlier memorization, and can add understanding to what they know. Tajweed expertise can also be gained at a later time. As for audio memorization, the reciter that was suggested was Muhammad Ayoob. The reasons for this is the simple style of recitation (not too melodic), and his recitation is the closest to Prophet Muhammad (pbuh). For a mushaf, stick to one copy of the book, not too large and not too small (it should be able to be carried easily and readable). DO NOT USE AN ELECTRONIC DEVICE FOR MEMORIZATION. Notes should be made in the mushaf to help distinguish between pages and aid in memorization. Knowing the meanings or understanding the language can also aid in memorization. Memorization of the quran can typically be done in an average of 1,600 hours. If we really want it, we can do it.

One specific methodology mentioned for memorization in a way that you will never forget it is one that is used in parts of the world with slates. This method covers 1/4 of a page at a time. One day 1 you recite the section 100 times while looking at the text. The next day you recite it 50 times while looking at the text. The third day you read 30 times, half with eyes open and half closed. The fourth day you recite 20 times to someone else without looking.

Kids work well with incentives, so you can come up with a program to reward them for their progress. Sheikh Tawfique mentioned he used money. A suggestion from another in the group was a contest between kids where the one that memorized the most got to select a special food to be cooked once per week, or a restaurant to go to. Also another important point that was brought up by Sheikh Fadi Kablawi in a later talk that we had, you can't just have a child memorizing. You need to instill Iman and a love of Allah in them so they know why they are studying and have the desire to do so.

For hadith, memorization of one or more per day is good. In the sunnah there are only around 10000 hadith. The book Al-Lulu wal-Marjan (the pearls and corals) is the best starting point as it is a collection of the hadiths that are in both Bukhairi and Muslim. So we start with the most authentic of the collection. After this you continue to Ziyadat Bukhairi and Ziyadat Muslim. These books contain the hadiths that are not in the other's collection. So you skip repeated hadiths while memorizing both collections. After this, the remaining 4 of the 6 sunnan books have their own ziyadat book which contains the hadiths from that book which are not found in Bukhairi and Muslim.

Another topic that was brought up was building and maintaining Iman in the family. He mentioned 4 specific books that he though we must have books for every house.

1) Al Kaba'r (the major sins) by Adh_Dhahabi. This may not be easy to find online, but I did manage to get a copy in Mecca. Kitaabun.com has several versions of it.
2) Al-Munzari's At-Targhib Wat Tarhib A book about good deeds that can be done. I found an english version of this at kitaabun.com
3) Ibn Kathir's Seerah. I wasn't able to find a hard copy of this, but there are scanned versions available online
4) Riyadh as Saleeheen by imam Nawawi. This should be easy to find.



For the Quran recitation mentioned above, most Quran applications I have seen do not have this reciter, but you can find him online to download the mp3's. If you have linux/unix (or possibly a mac) you can do this to download all of them from a terminal window with BASH shell:

for i in {1..114}; do file=http://download.quranicaudio.com/quran/muhammad_ayyoob/`printf "%03d\n" $i`.mp3; wget $file; done

For windows users you can use powershell (this is a default part of windows 7 and higher, otherwise you can download it). Open powershell, copy the script below, click the top left of the window, select edit, click paste, hit enter a few times and wait for the files.
$urlpref = "http://download.quranicaudio.com/quran/muhammad_ayyoob/"
$w = new-object system.net.webclient
for ($i = 0; $i -le 114; $i++) {
 $filename = ([string]$i).padleft(3,'0')
 $dlURL = $urlpref + $filename
 $w.downloadfile($dlurl,$filename)
}

Windows Time Service event 46 - access denied

I recently worked on a case where a domain controller came online with its clock time several hours out of sync (virtualized DC).  In this case, when looking at the system log, during the service start up events, there was a critical error for the windows time service:


- <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
- <System>
<Provider Name="Microsoft-Windows-Time-Service" Guid="{06EDCFEB-0FD0-4E53-ACCA-A6F8BBF81BCB}" />
<EventID>46</EventID>
<Version>0</Version>
<Level>2</Level>
<Task>0</Task>
<Opcode>0</Opcode>
<Keywords>0x8000000000000000</Keywords>
<TimeCreated SystemTime="2014-02-21T07:25:24.140175500Z" />
<EventRecordID>260042</EventRecordID>
<Correlation />
<Execution ProcessID="452" ThreadID="3648" />
<Channel>System</Channel>
<Computer>MyDC1.contoso.com</Computer>
<Security UserID="S-1-5-19" />
</System>
- <EventData Name="TMP_EVENT_ERROR_SHUTDOWN">
<Data Name="ErrorMessage">0x80070005: Access is denied.</Data>
</EventData>
</Event>


Googling around came up with some details that this error can occur when netlogon service is not started.  Going back to the log showed a Service Control Manager 7022 netlogon service hung during startup.  After a few weeks back and forth with microsoft with netlogon tracing and memory dumps, it just came down to the fact that there were a lot of subnets being processed.  The servers being effected by the slow netlogon startup were all low spec virtualized domain controllers, so they weren't going to perform at their best anyways.  During the service startup, all subnets must be read into memory, which can take a while.  There is also no registry tweaks or configuration changes to get around this...other than cleaning up subnets.  The one thing that we had thought of before the whole case was, if time service needs netlogon running for it to function, why isn't it configured with service dependencies.  Even though the OS doesn't do this by default, some registry hacking will allow you to add a DependsOnService value to the w32time service key to ensure netlogon is started before time service tries to start.  This can be pushed through GPO as well.  For a .REG file you can use this:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\W32Time]
"DependOnService"=hex(7):6e,00,65,00,74,00,6c,00,6f,00,67,00,6f,00,6e,00,00,00,\
  00,00

Friday, May 16, 2014

New DC: DFSr trying to replicate with the wrong server

I recently had a problem with a newly promoted domain controller not finishing its initial synchronization of the SYSVOL partition via DFS-r.  Checking the event logs showed a series of connections, 5004 event, followed by 5014:

The DFS Replication service is stopping communication with partner FARFARAWAY for replication group Domain System Volume due to an error. The service will retry the connection periodically. 

DFSR Event ID 5014

Additional Information: 
Error: 1726 (The remote procedure call failed.) 
Connection ID: C526A9D5-6694-4A4D-AF89-EA943200461F 
Replication Group ID: 79993E0B-57C0-49CA-9BA0-FE0D62ABB93E

The server it was trying to connect to is not in the same site, nor the next closest site.  It was several sites away and poorly accessible due to bad network connectivity.  So the RPC failures were the obvious result.  Checking AD sites and services, the connector for the domain controller showed it connecting to a server in the next closest site, which is what was desired.  After a few reboots and playing around with sites and services, it still kept trying to connect to this far away domain controller.  After some digging around in the registry, I found the distant domain controller's name in:

HKLM\System\CurrentControlSet\Services\NTDS\Parameters

under a key called "Src Root Domain Srv".  This is the initial domain controller that dcpromo tries to use to do the initial replication of the domain controller.  After manually editing this and restarting DFSr, it connected to the server that I wanted it to, and finished the synchronization.

For DFS-R, there is also another entry that you will find in HKLM\System\CurrentControlSet\Services\DFSR\Parameters\SysVols\Seeding Sysvols\(domain-name), called Parent Computer.  Updating this to a desired replication partner and restarting the dfs-r service will cause the machine to try to replicate with the specified machine.

This server had been build by an unattended file that was generated by script.  Checking that, I realized that it wasn't providing a value for: ReplicationSourceDC.  So the dcpromo job was probably just grabbing any random RWDC in the list to use as a partner.  So to fix it, I just added a manual discovery process of the nearest domain controller to provide a value to the file:

$srcdc = Get-ADDomainController -writable -ForceDiscover -discover|select -expand hostname