On the evolution of language

Languages evolve or devolve until they reach the state of minimum energy consumption necessary for its speakers to conduct their affairs.

Low IQ descendants of speakers of English will quickly lose most of their vocabulary and complex grammatical structures if they end up on an isolated island for generations. While the complexity of the language will increase if there is a general rise in IQ as the population of speakers is held steady or increases.

The way of speaking of the upper class seems unnecessarily complicated and pretentious to the average person. Some of the upper class do make their speech more complex to show off and differentiate themselves from those below them, but since the upper class has a higher IQ than the lower classes, their speech will always be more complex.

Some people who are desperate to enter the upper class, or who are already there and have nothing better to do with their sad lives, go out of their way to use rare and unnecessarily complex words and structures to impress others with similarly sad lives, because it is apparently a mark of intelligence to use ten words when five would do.

An actually good and intelligent writer (like George Orwell) will use the minimum number of words necessary, and the simplest available, to express their ideas. The writing’s complexity only increases when the ideas demand it. Complexity is never used when simplicity would do just as well. While a pretentious writer, like so many philosophy professors, will use a thousand words when a single sentence would do.

A guide to adding Google Drive (and OneDrive) upload functionality to Froala

Froala is a great JavaScript editor until you try to extend its functionality. Its documentation is horrible and there is little extra functionality you can add without having to do a lot of reverse-engineering and reading of GitHub comments.

Below is a guide to my solution for adding a Google Drive button to the Froala editor. Below is custom black and white icon I use for Google Drive to match the style of the rest of the Froala icons. The icon is from a free icons website and doesn’t require attribution.

Setting Up the Froala Google Drive Plugin

Place the following code inside a file that is included on the page along with the rest of the plugins you use (such as the file upload plugin). You can call it froala_google_drive_plugin.js:

$.FroalaEditor.DefineIcon('googleDriveIcon', {
    SRC: '/some/path/google_drive_bw.png',
    ALT: 'Google Drive', template: 'image'
});


$.FroalaEditor.RegisterCommand('googleDriveUpload', {
    title: 'Insert File From Google Drive',
    icon: 'googleDriveIcon',
    focus: false,
    undo: false,
    refreshAfterCallback: false,
    callback: function () {
        util.saveFroalaUserPlace(); // will be covered down below
    }
});

The above code registers an icon, then registers a Froala button that uses the icon. The callback function does nothing besides storing the user’s place in the editor (or the user’s selection, if they have selected any text right before clicking the Google Drive icon), otherwise their place will be lost once we insert the file, and the file would end up at the bottom of the editor. The user’s place in the editor is saved as a Range object. This will be covered down below.

Getting the Google Drive icon to show up

On the page where you have the Froala editor, your Froala initialization code may look something like this:

var froala_buttons = ['bold', 'italic', ...];
var froala_options = {
...
toolbarButtons: froala_buttons
};

$('#froala_editor_container').froalaEditor(froala_options);

To get the Google Drive icon to show up, add its command name to the buttons array. The command name is whatever name you used as the first argument to the RegisterCommand() function above.

var froala_buttons = ['bold', 'italic', ... , 'googleDriveUpload', ...];

A new way to initialize Froala

Above, I showed the usual way of initializing Froala:

$('#froala_editor_container').froalaEditor(froala_options);

That will have to be changed to this:

$('#froala_editor_container').on('froalaEditor.initialized', function (e, editor) {
    util.initFroalaGoogleDriveUpload(editor);
}).froalaEditor(froala_options);

Here we attach an event listener to the Froala container that is called as soon as Froala is done initializing. The event listener calls a custom function util.initFroalaGoogleDriveUpload(editor) that will set up the Google Drive buttons functionality. We pass the function the editor object. This is the Froala object, giving us access to the editor and its options, which we will use for various purposes. By using the editor object, we are able to handle having multiple Froala editors on the same page without issue, being able to insert files and images into the correct editor.

The Google Drive initialization function

Below is the function that is called when Froala loads, it binds a bunch of functionality to the Google Drive button.

window.util = {
    initFroalaGoogleDriveUpload: function (editor) {
        // get the icon object from the editor using jQuery find()
        var icon_el = editor.$box.find('[id^=googleDrive]')[0];

        // add a class to the button, to use for styling, to get the button
        // to look good
        $(icon_el).addClass('google-drive-icon');

        // get the URL to use to handle the upload, here we use the same URL
        // as the one used by the file upload plugin
        var upload_handler_url = editor.opts.fileUploadURL;

        // The function that is called right after a user selects a file in the Google Drive picker
        var pick_callback = function (file) {
            util.storeGoogleDriveFileOnServer(file, upload_handler_url, util.froalaAjaxCallback, editor); // covered down below
        };


        util.initGoogleDrivePicker(icon_el, pick_callback); // covered down below
    },
    ...
}

Handling the Google Client

Please see my blog post A guide to using PHP to download Google Drive files selected by users in the Google Drive Picker for an overview of how the Google Drive picker works. Here I will use the same methods with some changes.

Since the binding of the Google Drive icon to the Google library has to be done after the library has loaded, the library is included in this way:

<script>
function googleClientHasLoaded() {
    util.google_client_loaded = true;
}
</script>
<script src="https://apis.google.com/js/client.js?onload=googleClientHasLoaded"></script>

The util.initGoogleDrivePicker() function

This function is called once, soon after page load, to bind the Google Drive picker library to the Froala icon. It uses a timeout to detect if the Google library has loaded. If not, it waits 500 milliseconds and tries again.

The callback is the pick_callback() function that was defined in util.initFroalaGoogleDriveUpload() above. When a user selects a file in the Google Drive picker, the onSelect() function is called, which extracts information from the file object, creates a new object from it, and passes that object to pick_callback().

window.util = {
...,
google_client_loaded = false,

// I use the library at https://gist.github.com/Daniel15/5994054
// to interface with the Google Drive Picker.
initGoogleDrivePicker: function (button_el, callback) {
        if (!util.google_client_loaded) {
            setTimeout(function () {
                util.initGoogleDrivePicker(button_el, callback);
            }, 500);
            return;
        }
        var picker = new FilePicker({
            apiKey: api_key,
            clientId: client_id,
            buttonEl: button_el,
            onSelect: function (file) {
                    callback({
                        id: file.id,
                        name: file.title,
                        extension: file.fileExtension,
                        mime_type: file.mimeType,
                        access_token: gapi.auth.getToken().access_token,
                    });
            }
        });
    },

Storing the file on the server

As you remember, or perhaps don’t, the pick_callback() function is as below:

var pick_callback = function (file) {
    util.storeGoogleDriveFileOnServer(file, upload_handler_url, util.froalaAjaxCallback, editor); 
};

The util.storeGoogleDriveFileOnServer() function is as below. It sends the file’s information to the server, the server stores the file (see the blog post I linked above for the details of storing the file). The server echoes out the download URL of the file, the link that users can go to to download the file. That download url, along with the file object and the editor, are passed to the callback. The callback is util.froalaAjaxCallback(), mentioned above in the pick_callback() function and covered down below.

    storeGoogleDriveFileOnServer: function (file, handler_url, callback, editor) {
        var data = {
            file: file,
            command: 'store-google-drive-file',
        }

        $.ajax({
            url: handler_url,
            type: 'post',
            data: data,
            error: function (data) {
            },
            success: function (download_url) {
                    callback(file, download_url, editor);
            }
        });
    },

Inserting the image or link into Froala with util.froalaAjaxCallback()

At this point, the Google Drive file is stored on our local server and we have a link to it that users can go to download the file. Now we need to insert that link into the editor.

    ...,
    froalaAjaxCallback: function (file, path, editor) {
        // restore the user's place in the editor, covered down below
        util.restoreFroalaUserPlace();


        // if the user has selected some text in the editor, insert a link to the file
        // and make the selected text the link text
        if (editor.selection.text().length) {
            var link_text = editor.selection.text();
        }
        else {
            var link_text = file.name;
        }

        // if the file has an image extension in its link, insert the file as an image
        if (/[.](png|jpg|gif|jpeg|svg)/.test(path)) {
            // if user has selected text in the editor, preserve the text, otherwise it will be
            // overwritten by the image
            if (editor.selection.text().length) {
                editor.html.insert(editor.selection.text() + '<img id="fr-inserted-file" class="fr-image" src="' + path + '" />');
            }
            else {
                editor.html.insert('<img id="fr-inserted-file" class="fr-image" src="' + path + '" />');
            }
        }
        else { // if not an image, insert a link to the file
            editor.html.insert('<a id="fr-inserted-file" class="fr-file" href="' + path + '">' + link_text + '</a>');
        }

        // Get the file.
        var $file = editor.$el.find('#fr-inserted-file');

        $file.removeAttr('id');

        editor.undo.saveStep();
    },

On saving and restoring the user’s place in the editor

Below is the code used to save and restore a user’s place in the editor, and any text they may have selected, as the Google Drive picker will make them lose their place/selection. The getSelection() and restoreSelection() functions are from a StackOverflow answer.

window.util {
        ...,
        froala_user_place = false;
        saveFroalaUserPlace() {
            util.froala_user_place = util.getSelection();
        },

        restoreFroalaUserPlace() {
            util.restoreSelection(util.froala_user_place);
        },

        getSelection: function () {
            if (window.getSelection) {
                sel = window.getSelection();
                if (sel.getRangeAt && sel.rangeCount) {
                    return sel.getRangeAt(0);
                }
            } else if (document.selection && document.selection.createRange) {
                return document.selection.createRange();
            }
            return null;
        },

        restoreSelection: function (range) {
            if (range) {
                if (window.getSelection) {
                    sel = window.getSelection();
                    sel.removeAllRanges();
                    sel.addRange(range);
                } else if (document.selection && range.select) {
                    range.select();
                }
            }
        },
}

OneDrive

The above solution should be easy to extend to support OneDrive as well. See these two guides of mine if you need help with the OneDrive picker: How to get a demo of the OneDrive File Picker JavaScript SDK to work on a local development server, A guide to using PHP to download OneDrive files selected by users in the OneDrive Picker.

Conclusion

I think that’s it. Some of the code above is from memory, so it may not compile. I throw everything into the util object for demo purposes, in my actual setup things are separated out into different objects and files.

The Point

The point is that there is no point.
The stars will burn out.
Our deeds will turn to dust.
Our names will be forgotten.
And the names of our children.
And the names of their children.
And the names of all humans that ever lived.

And the Earth will join the Sun.
Joined in the dark, in a darkening galaxy.

All will be darkness.
There will be no sound. 
No movement. No light.
Darkness everywhere.
Darkness all around.

The point is that there is no point.
There is no need to worry about success.
There is no need to worry about where your life is going.
It is not going anywhere.

Soon, there will be no “where” for it to go to.

The point is that there is no point.
Empty are our words,
Empty are our deeds.
Our lives are going nowhere.


This is what life feels like to me without God—if there is no God to preserve our genes and deeds and resurrect us at some point in the future. Written on May 27, 2016. Also a reminder of the emptiness of all deeds and accomplishments other than those that benefit the afterlife.

/ No Comments on The Point

A guide to using PHP to download OneDrive files selected by users in the OneDrive Picker

In my previous blog post  I described how to get the OneDrive picker to work on a local development server. In this post I will describe the second piece of the puzzle, downloading the file to a local server using PHP after the user selects it:

First, below is the JavaScript/jQuery used to open the file picker:

$(function() {
    $('.onedrive-button').click(function() {
        openOneDrivePicker();
    });
});

function openOneDrivePicker() {
    var odOptions = {
        clientId: client_id,
        action: "download",
        advanced: {
            redirectUri: redirect_uri,
        },
        multiSelect: true,
        openInNewWindow: true,
        success: function (files) { /* success handler */
            var files_array = files.value;
            for(var i in files_array) {
                window.processOneDriveFile(files_array[i]);
            }
        },
        cancel: function () { /* cancel handler */
        },
        error: function (e) { /* error handler */
        }
    }
    OneDrive.open(odOptions);
}

The success method goes through the file or files selected and calls a function called processOneDriveFile() on each one of the file objects.

Below is the code to the processOneDriveFile() function, which submits the file to a PHP handler file called file_handler.php:

// this function automatically submits the file to the server as soon
// as the user picks a file from the OneDrive picker. You may
// instead want to store the files in a variable and only submit when
// the user clicks some "Submit" button somewhere in your app.
function processOneDriveFile(file) {
    var file_name = file.name;
    var file_size = file.size;
    var download_url = file['@microsoft.graph.downloadUrl'];

    var data = {
        file_name : file_name,
        file_size : file_size,
        download_url : download_url,
        command : 'handle-onedrive-file',
    };
    
    $.ajax({
        url: '/path/to/file_handler.php',
        type: 'post',
        data: data,
        error: function (data) {
            console.debug(data);
        },
        success: function (data) {
            // success message
        }
    });
}

And here is the code for file_handler.php:

<?php
// bootstrap code

$command = $_POST['command'];

if('handle-onedrive-file' === $command) {
 $file_name = $_POST['file_name'];
 $file_size = $_POST['file_size'];
 $download_url = $_POST['download_url'];

 $ch = curl_init($download_url);
 curl_setopt($ch, CURLOPT_HEADER, 0);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20);

 $data = curl_exec($ch);
 $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
 $content_type = curl_getinfo($ch, CURLINFO_CONTENT_TYPE);
 $error = curl_errno($ch);
 curl_close($ch);
 
 // A file with the same name may exist, that must be handled.
 $file_save_path = '/some/path/' . $file_name;

 file_put_contents($file_save_path, $data);
 
 echo 'File successfully retrieved and stored!';
}

That’s all. Make sure that the curl PHP library is installed and enabled (it is not sufficient to have the Linux curl utility, the code above uses the PHP library for it).

A guide to using PHP to download Google Drive files selected by users in the Google Drive Picker

Let’s say you’ve managed to get the Google Drive JavaScript Picker API to work, and have also managed to coerce your users into logging into the Picker and selecting one of their files:

And you have verified that the onSelect function works properly:

function initGoogleDrivePicker() {
    var picker = new FilePicker({
        apiKey: api_key,
        clientId: client_id,
        buttonEl: document.getElementsByClassName('google-drive-button')[0],
        onSelect: function (file) {
            console.debug(file);
        }
    });
}

Where to go from here to send the file to the server and have it saved there?

First, we’ll create a function called processGoogleDriveFile(file), which will be added to the onSelect function of the picker:

function initGoogleDrivePicker() {
    var picker = new FilePicker({
        apiKey: api_key,
        clientId: client_id,
        buttonEl: document.getElementsByClassName('google-drive-button')[0],
        onSelect: function (file) {
            processGoogleDriveFile(file);
        }
    });
}

The function will be as follows. It will extract the file’s information, then use a jQuery AJAX request to send it to a PHP file called file_handler.php:

// this function automatically submits the file to the server as soon
// as the user picks a file from the Google Drive picker. You may
// instead want to store the files in a variable and only submit when
// the user clicks some "Submit" button somewhere in your app.
function processGoogleDriveFile(file) {
    var data = {
        file_id : file.id,
        file_name : file.title,
        extension: file.fileExtension,
        mime_type : file.mimeType,
        // the function below is provided by the library
        // from https://gist.github.com/Daniel15/5994054
        access_token : gapi.auth.getToken().access_token,
        command : 'handle-google-drive-file',
    };
    
    $.ajax({
        url: '/path/to/file_handler.php',
        type: 'post',
        data: data,
        error: function (data) {
            console.debug(data);
        },
        success: function (data) {
            // success message
        }
    });
}

On the back-end side, in file_handler.php, we have the following code:

<?php
// bootstrap code

$command = $_POST['command'];

if('handle-google-drive-file' === $command) {
    $file_id = $_POST['file_id'];
    $file_name = $_POST['file_name'];
    $extension = $_POST['extension'];
    $mime_type = $_POST['mime_type'];
    $access_token = $_POST['access_token'];
    
    // if this is a Google Docs file type (Google Docs, 
    // Spreadsheets, Presentations, etc.) we convert it
    // to a PDF using the export function of the API before saving it.
    // we could convert it to other file types that are also supported
    // by the API.
    if (stripos($mime_type, 'google')) {
        $getUrl = 'https://www.googleapis.com/drive/v2/files/' . $file_id .
        '/export?mimeType=application/pdf';
        $authHeader = 'Authorization: Bearer ' . $access_token;
        $file_name = $file_name . " (converted)";
        $extension = 'pdf';
        $file_mime_type = 'application/pdf';
    }
    else { // otherwise we download it the normal way
        $getUrl = 'https://www.googleapis.com/drive/v2/files/' . $file_id . 
        '?alt=media';
        $authHeader = 'Authorization: Bearer ' . $access_token;
    }

    $ch = curl_init($getUrl);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [$authHeader]);


    $data = curl_exec($ch);
    $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    $error = curl_errno($ch);
    curl_close($ch);

    // 1. the file name could already have an extension in some cases,
    // that must be handled if needed.
    // 2. A file with the same name may exist, that must be handled.
    $file_save_path = '/some/path/' . $file_name . '.' . $extension;

    file_put_contents($file_save_path, $data);
    
    echo 'File successfully retrieved and stored!';
}

That’s all that is needed. Not all of Google’s proprietary MIME types can be converted to PDF. You must add a check to the onSelect or processGoogleDriveFile() JavaScript functions to check whether this is a MIME type you want to support. If it not, you can alert the user to choose another file.

Make sure that the curl PHP library is installed and enabled (it is not sufficient to have the Linux curl utility, the code above uses the PHP library for it).

How to get a demo of the OneDrive File Picker JavaScript SDK to work on a local development server

After getting the Google Drive file picker working on the page of a project I’m working on within just a few hours, I was faced with the task of getting the OneDrive JavaScript Picker to work, which I almost abandoned because of Microsoft’s brain-dead documentation. After hours of watching Microsoft videos and piecing together documentation, I finally got it to work.

Through it all, I was often reminded of this good old joke:

A helicopter was flying around above Seattle when an electrical malfunction disabled all of the aircraft’s electronic navigation and communications qquipment. Due to the clouds and haze, the pilot could not determine the helicopter’s position and course to fly to the airport. The pilot saw a tall building, flew toward it, circled, drew a handwritten sign, and held it in the helicopter’s window. The pilot’s sign said “WHERE AM I?” in large letters. People in the tall building quickly responded to the aircraft, drew a large sign and held it in a building window. Their sign read: “YOU ARE IN A HELICOPTER.” The pilot smiled, waved, looked at her map, determined the course to steer to SEATAC airport, and landed safely. After they were on the ground, the co-pilot asked the pilot how the “YOU ARE IN A HELICOPTER” sign helped determine their position. The pilot responded “I knew that had to be the Microsoft building because, like their technical support, online help and product documentation, the response they gave me was technically correct, but completely useless.”

So here is how to actually get their amazing picker to work. I will assume you’ve already created your app in the App Portal.

1. Enabling SSL

You must first enable SSL on your demo server if you don’t have it. To do that quickly and for free, create a self-signed certificate and install it. Here is a guide on creating a self-signed SSL certificate.

When creating the certificate, don’t forget to use the Fully Qualified Domain Name for your local server. I use the fake domain myproject.dev as the domain name for my project, and put www.myproject.dev as the FQDN.

After you have generated your .key and .crt files, put them in /etc/ssl/crt/ or some such similar place.

With that done, create an SSL virtual host that uses the files you created, as follows (this is for a PHP website). The following code will have to be added wherever you have your VirtualHosts, it could be apache2.conf, or in a new file (such as ssl_vhost.conf) placed inside the sites-available directory (/etc/apache2/sites-available). If you put it in sites-available, you will have to run the command a2endsite /etc/apache2/sites-available/the_file_name_I_used.conf to enable the vhost.

<VirtualHost *:443>
ServerName default

## Vhost docroot
DocumentRoot "/var/www/html"
SSLEngine on
SSLCertificateFile /etc/ssl/crt/myproject.crt
SSLCertificateKeyFile /etc/ssl/crt/myproject.key

## Directories, there should at least be a declaration for /var/www/html
<Directory "/var/www/html">
Options Indexes FollowSymlinks MultiViews
AllowOverride All
Require all granted

<FilesMatch "\.php$">
Require all granted
SetHandler proxy:fcgi://127.0.0.1:9000
## Logging
ErrorLog "/var/log/apache2/default_vhost_error.log"
ServerSignature Off
CustomLog "/var/log/apache2/default_vhost_access.log" combined

## Custom fragment
</VirtualHost>

2. Creating the URI Redirect File

Somewhere in your file structure, for example in /var/www/html, create a file called onedrive_picker_redirect.html (or any other name you choose). The file has to load the OneDrive JavaScript SDK, it doesn’t have to do anything else. Here is the contents of the file (note that I’m using version 7.0 of the SDK, use whichever one you want to use for your project):

<!DOCTYPE html>
<html lang="en">
<script type="text/javascript" src="https://js.live.net/v7.0/OneDrive.js"></script>
</html>

3. Add a link to the redirect file in the Microsoft App Portal

Put the full SSL link to the redirect file (such as https://www.myproject.dev/onedrive_picker_redirect.html) in the App portal, as shown in the screenshot below. You can keep the Logout URL blank.

4. Add the redirect file to the OneDrive picker launcher using the “advanced” parameter

We now get to the easy part. On the file from which you want to launch the picker, add the following code to launch the picker, or modify your existing code to match below. Notice the redirectUri parameter, which has to exactly match the one you used in step 3.

<button class="onedrive-launcher">Pick a File from OneDrive</button>


<script>
    $('button.onedrive-launcher').click(function() {
        launchOneDrivePicker();
    });

    function launchOneDrivePicker() {
        var odOptions = {
            clientId: "YOUR CLIENT ID HERE",
            action: "download",
            advanced: {
                redirectUri: "https://www.myproject.dev/onedrive_picker_redirect.html"
            },
            multiSelect: true,
            openInNewWindow: true,
            success: function(files) { /* success handler */
                console.debug(files);
            },
            cancel: function() { /* cancel handler */ },
            error: function(e) { /* error handler */ }
        }
        OneDrive.open(odOptions);
    }
</script>
<script type="text/javascript" src="https://js.live.net/v7.0/OneDrive.js"></script

5. Go to your demo page using the HTTPS URL

The picker will not work if you try to launch it from a non-https page. If you were doing your development on a non-https URL earlier, you will now have to go to the same page under https. If earlier the page was at www.myproject.dev/onedrive_picker_demo.php, now go to https://www.myproject.dev/onedrive_picker_demo.php.

6. Now try it out

Now click the button to launch the picker. You will get a login prompt. After logging in, you will get the picker. Click on any file you want and click “Open”.

7. Look at the console

To verify that everything is working properly, open the console, and if you used the picker code above that I used, you should see an object that contains the information for the file you picked:

8. Go back to square one

Now that we have gotten Microsoft’s limitless supply of self-absorbed ineptitude out of the way, we can get to do some actual coding to interface with their horrible products and discover entirely new and never-before-experienced ways of suffering.

If you want to send the file info to a server to store it there, see my blog post on using PHP to download OneDrive files picked from the picker.

Chronic fatigue update: Naps and the failure of vitamin D3 and zinc

This is an update that applies to my chronic fatigue treatment program.

A week ago I started having 2000 IU vitamin D3 and 25 mg zinc sulfate with my 3 PM meals. This helped my mind feel active and willing to learn in the evenings. I was finally able to finish Plato’s Republic and read through half of The Canterbury Tales.

Unfortunately, I experienced worsening fatigue during the day, which culminated in my not being able to get any work done at all for the past three days. Yesterday I realized that the new addition of the vitamin D3 / zinc supplements might be culprit, so I didn’t have any yesterday.

Today I feel like I’m recovering. I’m able to work again, but I have headache-like feeling in my head, like I’m recovering from brain damage, probably due to toxicity from high levels of calcium (caused by D3) and zinc sulfate.

Therefore I’m going back to my old solution for having a functioning brain in the evenings: To lie down for 45 minutes before I eat. Therefore I will be lying down from 3:00 PM to 3:45 PM, listening to an old audiobook (as new audiobooks require too much attention and will prevent proper rest).

This can be called a nap, but it is not necessary to fall asleep. I don’t like doing it since I don’t enjoy it, and I don’t feel good at the end of it, but it works. I am able to listen to new audiobooks in the evenings after doing this.

Napping after the meal doesn’t work for whatever reason.

Napping for less than 45 minutes doesn’t work. I have tried 30 minutes and didn’t get anything like the benefits of napping for 45 minutes.

Vitamin K2

It is possible that taking high doses of MK4 (a type of vitamin K2) will prevent the damaging effects of vitamin D3. 25 mg zinc is still too high and lower doses should be tried. I have run out of MK4, maybe I will try this out in a month or two.

My Chronic Fatigue Treatment Program

For more details on my program please see my book Farewell Chronic Fatigue, now available on Amazon.com in both paperback and ebook format.

In this essay I will summarize the treatment program I have developed over the past 9 years to treat my chronic fatigue, which used to completely overshadow my life for months at a time, preventing me from getting anything done or taking any joy in life.

This is not a cure but a treatment, as the fatigue comes back if the treatment is stopped. I will categorize my treatments into “essential” and “optional” treatments. The essential ones are necessary for the treatment to work and cannot be dispensed with. The optional ones improve the effectiveness of the treatment program but can probably be skipped.

Essentials

1. Meal Time Management

The foundation of my program is to take in zero carbohydrate or protein calories until 3 PM (8 hours after my wakeup time). I spend the day drinking unsweetened black coffee with matcha (green tea powder) added to it as a creamer and as a source for l-theanine, the amino acid that prevents coffee jitters.

I only use organic coffee that I grind right before I make the cup of coffee. I cannot stand pre-ground store-bought coffees.

Oils are an exception. I drink tablespoons of MCT oil and walnut oil in the morning (and some people put coconut oil in their coffee), this will not affect the program.

2. The Feeding Window

I only eat between 3 PM and 5 PM, a two-hour feeding window. If I eat later than that, it affects my sleep quality and brings back my fatigue the next day.

3. Avoiding Sugar, Fruit Juice, Grains and other Simple Carbohydrates

I do not eat bread, anything made with wheat flour, rice or potatoes, fruit juice, sweet fruits or sugary things. In short, I avoid eating/drinking large amounts of high-glycemic foods. These foods keep my blood sugar high throughout the night, reducing my sleep quality and giving me fatigue the next day.

I do not avoid them religiously. I still have small amounts of fruit (such as an occasional apple). But I make sure to never have significant amounts of simple carbohydrates except on special occasions.

3. Carotenall

Carotenall is a source of carotenoid anti-oxidants (vitamin A-like substances). I have one upon wake-up. Without this, nothing else works.

Beta-carotene (which is commonly called “plant-based vitamin a” doesn’t work. Retinol (animal-based vitamin A) works, but I need extremely high doses of it (100,000 iu the night before to feel the benefits the next day), which is toxic to the liver.

Spirulina (a tiny sea creature high in vitamin A) also works, but it is toxic to the liver because it is always contaminated with other creatures that produce liver toxins. I received severe liver pain from spirulina, even though the brand I tried was a highly-rated organic one from Amazon.com. I tried a different brand (the Health Ranger) which prides itself on having clean and high-quality supplements, but even that gave me liver pain.

4. Nettle Root Extract

I have one capsule of Now brand nettle root extract (250 mg) in the morning upon wake-up. Nettle root extract is a powerful anti-inflammatory supplement. I do not know the specific reasons why it works, but it does, and my chronic fatigue treatment cannot work without it.

Do not confuse with nettle leaf extract. Do not use non-extracts, the supplement should say “extract”. I have tried multiple brands, only Now brand and Solaray brand have worked for me.

5. Perika

I take 3 Perika tablets upon wakeup. Perika is a high-quality extract of St. John’s Wort, it is what St. John’s Wort should be. I have taken St. John’s Wort but it doesn’t work for me, Perika does.

Perika is necessary to create a form of mild optimism / happiness that is conducive toward feeling motivated.

6. Caffeine With Proper Timing (Probably Essential)

I stop drinking caffeine 15 minutes before my meal time (i.e. at 2:45 PM). If I have caffeine with my meal or after it, this brings back some of my fatigue the next day.

Caffeine is an important part of my day. It might be possible to use the rest of the treatments mentioned while being caffeine-free. I haven’t tried it, so I cannot say whether it will work.

7. Berberine and Banaba (not Banana) Extract (Essential for Me)

These two herbal extracts together are essential for managing my insulin resistance, and without doing that, the worst of my chronic fatigue comes back. If you sweat an hour or two after eating and the sweat smells somewhat sweet, or you carry amount significant amounts of belly fat or cellulite, or your eyes get very dry after eating, you probably have insulin resistance (or some other insulin-related condition).

I spent four months of zero motivation and productivity from March 2014 to July 2014 until I discovered this combination. I take a supplement called GlycoX which contains 500 mg berberine and 25 mg banaba extract  per capsule. I take 2 with my 3 PM meal, and 2 more at 5 PM. Different people will need different amounts.

8. Copper and Magnesium (Possibly Essential)

I take 2.5 mg copper glycinate and 130 mg elemental magnesium (from magnesium citrate) in the mornings. Copper helps with will power (the ability to focus on whatever one wants to focus on at will), while magnesium helps promote calmness and reduce eye dryness.

Copper is pro-excitatory for neurons (makes them more likely to fire), meaning that if it is missing, one feels fatigue in the brain, while if there is too much, neurons fire too often (known as excitotoxicity), causing a feeling of being scatterbrained and unable to focus. I recommend being careful with dosages of copper, more is not necessarily better.

9. Vitamin D3, Zinc Sulfate and Vitamin K (Essential for Evening Productivity)

I take 2000 IU vitamin D3, 25 mg zinc sulfate and 5-15 mg MK4 (a form of vitamin K) with my 3 PM meal. In this way my mind feels active and desirous of learning throughout the night, enabling me to listen to new audiobooks (my eyes are too dry at night to use them to read). If I don’t take these, I lack the motivation and the ability to focus necessary for being interested in learning.

Zinc, like copper, helps with the ability for neurons to fire. Zinc also reduces oxidative damage and inflammation. 25 mg might be too much, I plan to test lower amounts. Too much zinc, like copper, causes excitotoxicity.

The MK4 is not essential for these benefits, but it is necessary to prevent organ damage that is caused by vitamin D3, due to the fact that it increases calcium levels in the blood. MK4 also has the additional benefit of reducing inflammation and helping with insulin sensitivity, in this way improving sleep quality.

There is a fad where people take very high doses of vitamin D3. Taking 5000 IU gives me kidney pain, therefore I recommend not taking more than 2000 IU. I took 5000 IU vitamin D3 for years seemingly without issue, perhaps the reason my kidneys hurt now if I have this much is kidney damage caused by it.

Optionals

1. Piracetam (Possibly Essential, Possibly Not)

Piracetam helps reduce inflammation in the brain and improves memory and processing speed. I take 290 mg upon wakeup and 290mg around 11 AM. This is a relatively low dose, as some people take many grams of it per day, but it seems sufficient.

After the liver damage I got form spirulina, piracetam would bring back some liver pain, therefore I reduced the dosage to 290 mg.

2. Tianeptine Sulfate

Tianeptine sulfate is an anti-depressant and brain enhancer. It has amazing powers of reducing feelings of stress, promoting calmness and reducing social anxiety. It gives me a sort of calmness that makes it easy for me to spend hours on a single task without getting bored. I take 25 mg in the morning and 25 mg around 11 AM.

3. Oils

I take a tablespoon of walnut oil (which is high in the Omega 3 oil alpha-linolenic acid) in the mornings, which helps with motivation and brain function, and also helps with my eye dryness. I also take MCT oil, avocado oil, hazelnut oil and grape seed oil occasionally to experiment with them.

4. Melatonin

I take 250 mcg (0.25 mg) melatonin at bedtime, it helps improve sleep quality and reduce fatigue the next day. More is not better, taking 1 gram or 5 gram makes me wake up many times during the night and makes it difficult for me to fall back asleep.

The Social Factor in Chronic Fatigue

As I explain in detail in my book, I have discovered that social settings matter in chronic fatigue. If I don’t feel motivated, going to a coffee shop to work often brings back my motivation. Being surrounded by loved ones also reduces fatigue and increases motivation

There is a new theory of depression known as the Immune-Cytokine Model, which says that loneliness causes inflammation, designed to make us feel bad, to motivate us to go back to our loved ones, in this way ensuring that we do not spend time away from the safety of our families and tribes.

Ways of benefiting from these observations is to move in with your parents or another loved one if you can, to join meet ups and clubs (such as a martial arts club), to work outside (for this to work, you must be somewhere where you feel watched, if you feel entirely ignored by everyone, it doesn’t help, this is just how the brain works). Even getting a pet may help.

Things to Avoid

ALCAR

ALCAR (acetyl-L-carnitine) is a great supplement for managing blood sugar. Unfortunately, it causes a (pleasurable) feeling of laziness, where lying down and doing nothing is all I want to do. Taking any ALCAR today also seems to reduce my motivation the next day.

ALA

Alpha-lipoic acid (not to be confused with the omega 3 oil alpha-linolenic acid) is an anti-oxidant supplement that helps with blood sugar. It gives me neuropathy (pain in my fingers and toes), probably due to the fact that it removes minerals from the body, and it also gives me extreme depression and fatigue if I have too much of it, or if I have it on an empty stomach.

A bash script for automatically restarting an unresponsive Apache server only when needed

One of my servers responds to about 100,000 requests per day. Apache would randomly hang a few times a day, taking all of the websites down. I tried every solution I could find online to prevent Apache from hanging, but nothing helped, so I decided to stop wasting time on it and simply develop a good bandage for the problem.

At first I used a script to automatically restart Apache once every two hours. This wasn’t good enough because sometimes Apache would hang multiple times within one hour, other times it would keep running for 12 hours without issue (probably having to do with traffic spikes and waves of spider bots).

Eventually I developed the following script, which restarts Apache only when needed. The script tries to download a page from the website, and if the server fails to respond within 15 seconds, the script assumes Apache is down and restarts it. The script should be run once every minute for eternity.

The script

#!/bin/bash

now="$(date)"

# prevent multiple instances of this script from running
# at the same time. Note that the script's file name is
# auto_restart_unresponsive_apache, update it to match
# whatever file name you use for this script
for pid in $(pidof -x auto_restart_unresponsive_apache); do
    if [ $pid != $$ ]; then
        #Process is already running with PID $pid"
        exit 1
    fi
done

# try to download a webpage from one of the sites on the server.
# we use --head to only download its header, we don't need the page's contents
# we pass a ?t=some_number parameter to the web page, this allows the script
# to bypass web caches like varnish, otherwise Apache could be down but a caching
# mechanism could still return a functional web page for hours

if curl -s --max-time 15 --head http://example.com/?t=`date +%s` | grep "200 OK" > /dev/null
    then
        echo "$now:The HTTP server is up!" > /dev/null
    else
        service apache2 restart
        echo "$now: Restarting apache" >> /var/log/apache_restart_log
fi

The cron job

Below is the cron job I use to run the script once every minute. The output is sent to /dev/null, and any errors are also sent there. Otherwise you could receive emails on the server every time the script runs.

* * * * *  /some_path/auto_restart_unresponsive_apache >/dev/null 2>&1

Islamic Terrorism as a Genetic-Cultural Selective Pressure on Muslim Populations

On the origins of Islamic terrorism, the dangerous loophole within Sunni Islam that enables it (hadith-primacism), and the powerful new Sunni Criterionist position, already adopted by millions of educated Muslims, that uses the Quran to cripple extremist ideologies.

The Western Origins of the Islamic Terrorism Germ

The United States invented modern Islamic terrorism in 1979 as part of its efforts to fight the Soviet Union’s influence in Central Asia, that all-important part of the world, control of which is necessary for any would-be world hegemon.

The groundwork had been laid by the Muslim Brotherhood, an organization that started out as a welfare and education society but grew too powerful for its own good. Its major political work was their helping in the war against an army of Jews eager to repeat the Hebrew Bible’s conquest of Canaan by systematically killing Palestinian men, women and infants1 in a poetic reenactment of the Book of Joshua.

From the perspective of Quranic law, the Muslim Brotherhood’s involvement in the war against these terrorists was justifiable, as the Brotherhood wasn’t acting independently, unlike today’s Islamic terrorists. It was helping in a conflict that involved existing sovereign states (Egypt, Jordan, Iraq, Syria and Lebanon, members of the Arab League). The Muslim Brotherhood’s war was exactly the opposite of conflicts launched by modern Islamic terrorists, it was an anti-terrorist force in the conflict, helping governments fight terrorists that were carrying out bombings and massacres, intent on terrorizing all Palestinians into leaving the territories that these Jews had decided belonged to them as God’s Chosen People.

The Brotherhood’s power grew to the point that it developed its own intelligence and covert operations arm, known as al-Jihaaz al-Sirri (The Covert Apparatus), which was involved in assassinations and bombings, such as the assassination of Ahmed El-Khazindar Bey, President of Egypt’s Court of Appeal, and Mahmoud El Nokrashy Pasha, Prime Minister of Egypt, both in 1948. Hassan al-Banna, the founder of the Brotherhood, condemned both of these assassinations, but he had practically lost control over his organization, since powerful factions within it wanted violence, and they had the power to bypass al-Banna’s wishes.

The Egyptian intellectual Sayyid Qutb, well-known among Egypt’s intelligentsia and student of the famous Egyptian journalist Abbās Mahmūd al-Aqqād, reverted to Islam after a life of secularism and adopted the Brotherhood, while also, perhaps without realizing its true consequences, building the intellectual foundations necessary for the Brotherhood’s violent arm to carry out its insurgencies. If Sayyid Qutb’s highly partisan biographer is to be trusted2, his house was used as a meeting place for Gamal Abdel Nasser and his friends as they planned the 1952 July 23 Revolution in Egypt against the British occupation.

Once president of Egypt, Nasser wanted Qutb on his side, offering him high government positions, which Qutb always refused.3 Once he despaired of Qutb joining him, he started persecuting him and his associates, imprisoning him for a decade. Nasser ordered Qutb’s hanging on 24th of August, 1966, after a show trial. These events turned Qutb into the perfect martyr, a secular convert to Islam, a literary critic, a warrior for social justice, and a revolutionary who was stabbed in the back by Western-friendly seculars that he had supported into power.

The Brotherhood distanced itself from Qutb, going back to its early position of advocating peaceful activism (at least openly), but extremists around the world wishing for a resurgence of Islam continued to follow him as their primary source for both knowledge and for inspiration.4

By the 1970’s, the time was ripe for any would-be terrorist to launch his own holy war against whoever he disliked. The CIA jumped right into the action, training, arming and encouraging these terrorists as tools for protecting US interests abroad and fighting its major enemy, the Soviet Union. Operation Cyclone, conceived by the Jewish US foreign policy strategist Zbigniew Brzezinski, armed and financed jihadi warriors in Afghanistan to use them as a buffer against Soviet influence from 1979 until after 1992, to the tune of $630 million per year in 1987.

What judgment to render on all this is a matter of perspective. Asked in 1998 if he had any regrets about having helped instigate Soviet intervention in Afghanistan5, Zbigniew Brzezinski, in many respects the god-father of Operation Cyclone, reacted with astonishment. “Regret what?” he replied. “That secret operation was an excellent idea. It had the effect of drawing the Russians into the Afghan trap and you want me to regret it?”

The interviewer pressed the point. Hadn’t subsequent rise of radical Islamism tranished that victory? Not in Brzezinski’s view. “What is most important to the history of the world? The Taliban or the collapse of the Soviet empire? Some stirred-up Moslems or the liberation of Central Europe and the end of the cold war?”6

Check out Edmonds’ interview with Pat Buchanan’s American Conservative magazine: Who’s Afraid of Sibel Edmonds?

This brilliant program to manufacture Islamic jihadists to fight America’s enemies resulted in the creation of Operation Gladio B, the United States program to train al-Qaeda terrorists and their affiliates, exposed by the FBI whistleblower Sibel Edmonds.

In her interview, Edmonds  insisted that after its initial exposé, the Times’ investigation had gone beyond such previous revelations, and was preparing to disclose her most startling accusations. Among these, Edmonds described how the CIA and the Pentagon had been running a series of covert operations supporting Islamist militant networks linked to Osama bin Laden right up to 9/11, in Central Asia, the Balkans and the Caucasus.

While it is widely recognised that the CIA sponsored bin Laden’s networks in Afghanistan during the Cold War, U.S. government officials deny any such ties existed. Others claim these ties were real, but were severed after the Soviet Union collapsed in 1989.

But according to Edmonds, this narrative is false. “Not just bin Laden, but several senior ‘bin Ladens’ were transported by U.S. intelligence back and forth to the region in the late 1990s through to 2001”, she told this author, “including Ayman al-Zawahiri” – Osama bin Laden’s right-hand-man who has taken over as al-Qaeda’s top leader.

“In the late 1990s, all the way up to 9/11, al-Zawahiri and other mujahideen operatives were meeting regularly with senior U.S. officials in the U.S. embassy in Baku to plan the Pentagon’s Balkan operations with the mujahideen,” said Edmonds. “We had support for these operations from Pakistan and Saudi Arabia, but the U.S. oversaw and directed them. They were being run from a secret section of the Pentagon with its own office”.

Edmonds clarified, “the FBI counterintelligence investigation which was tracking these targets, along with their links to U.S. officials, was known as ‘Gladio B’, and was kickstarted in 1997. It so happens that Major Douglas Dickerson” – the husband of her FBI co-worker Melek whom she accused of espionage – “specifically directed the Pentagon’s ‘Gladio’ operations in Kazakhstan and Turkmenistan at this time.”

In testimony under oath, Edmonds has previously confirmed that Major Doug Dickerson worked for the Pentagon’s Defense Intelligence Agency (DIA) under the weapons procurement logistics division on Turkey and Central Asia, and with the Office of Special Plans (OSP) overseeing policy in Central Asia.

[…]

Edmonds said that the Pentagon operations with Islamists were an “extension” of an original ‘Gladio’ programme uncovered in the 1970s in Italy, part of an EU-wide NATO covert operation that began as early as the 1940s. As Swiss historian Dr. Daniele Ganser records in his seminal book, NATO’s Secret Armies, an official Italian parliamentary inquiry confirmed that British MI6 and the CIA had established a network of secret “stay-behind” paramilitary armies, staffed by fascist and Nazi collaborators. The covert armies carried out terrorist attacks throughout Western Europe, officially blamed on Communists in what Italian military intelligence called the ‘strategy of tension’.

“You had to attack civilians, the people, women, children, innocent people, unknown people far removed from any political game” explained Gladio operative Vincenzo Vinciguerra during his  trial in 1984. “The reason was quite simple. They were supposed to force these people… to turn to the State to ask for greater security.”

While the reality of Gladio’s existence in Europe is a matter of historical record, Edmonds contended the same strategy was adopted by the Pentagon in the 1990s in a new theatre of operations, namely, Asia. “Instead of using neo-Nazis, they used mujahideen working under various bin Ladens, as well as al-Zawahiri”, she said.7

The US tradition of spreading the American ideals of peace and liberty in the Middle East by funding and training Islamic terrorist groups continues to ISIS, also known as ISIL and Daesh.

James Shea, Deputy Assistant Secretary of Emerging Threats at NATO – now that’s a lovely title – recently gave a talk at a private club in London on the Islamic State/Daesh. Shea, as many will remember, made his name as NATO’s spokesman during the NATO war on Yugoslavia in 1999.

After his talk Shea engaged in a debate with a source I very much treasure. The source later gave me the lowdown.

According to Saudi intelligence, Daesh was invented by the US government – in Camp Bacca, near the Kuwait border, as many will remember — to essentially finish off the Shiite-majority Nouri al-Maliki government in Baghdad.

It didn’t happen this way, of course. Then, years later, in the summer of 2014, Daesh routed the Iraqi Army on its way to conquer Mosul. The Iraqi Army fled. Daesh operatives then annexed ultra-modern weapons that took US instructors from six to twelve months to train the Iraqis in and…surprise! Daesh incorporated the weapons in their arsenals in 24 hours.

In the end, Shea frankly admitted to the source that Gen David Petraeus, conductor of the much-lauded 2007 surge, had trained these Sunnis now part of Daesh in Anbar province in Iraq.

Saudi intelligence still maintains that these Iraqi Sunnis were not US-trained – as Shea confirmed – because the Shiites in power in Baghdad didn’t allow it. Not true. The fact is the Daesh core – most of them former commanders and soldiers in Saddam Hussein’s army — is indeed a US-trained militia.

True to form, at the end of the debate, Shea went on to blame Russia for absolutely everything that’s happening today – including Daesh terror.8

The Cognitive-Psychological Stress of Terrorism on the Muslim Mind

Terrorism is an extremely stressful phenomenon for Muslims. It uses Islamic rhetoric to justify acts that disgust and horrify most Muslims. For Muslims, the problem with terrorism, and the reason they still haven’t figured out what to do about it, is that it is something entirely new. We Muslims are like the American Indians who were exposed for the first to time to European germs they had never faced before when Columbus discovered the Americas. Most of these native Americans had no defenses against these germs, and so they succumbed to them by the millions. Our societies, too, have no defenses against terrorism-supporting extremist ideologies because terrorism was never a threat before.

Terrorism, this new European-incubated germ (if we think of Americans as Europeans, for their European genes and culture), forces two choices on the average Muslim just trying to get on with their life. The first choice is to renew their allegiance to Islam, to convince themselves that these terrorists aren’t acting according to the true version of Islam. This argument feels weak, but they don’t know anything better, so they try not to think about it too much and instead direct their hatred at terrorist groups such as ISIS, to absolve themselves of the guilt they feel. Some of the kindest and most admirable people they know are fellow devout Muslims, so while they cannot consciously tell what the fundamental difference is between Muslim terrorists and peaceful, devout Muslims, they know in their hearts that the difference exists.

The second choice is to entirely abandon Islam as something evil, outdated and barbaric. Every major terrorist attack renews the pressure on Muslims to take this choice, and many do. And from their newfound post-Islam position, they attack Islam as the embodiment of all that is evil in this world.

We are caught between a fundamentalist interpretation of Islam that claims to be the only true version of Islam, and that provides the fuel that drives these terrorists into doing what they do, and a secularism that entirely abandons Islam. Evey new terrorist attack creates intense cognitive dissonance where we have to continually repeat to ourselves that this is not true Islam, hoping to preserve our faith until we can forget about the massacre and go on with our lives.

Terrorism is nothing but an intense genetic-cultural evolutionary pressure9. We are faced with two ways forward:

  • We remain in our present state of weakness, continuing to provide fertile ground for the FBI and the CIA to recruit terrorists among us and use them for their own purposes, becoming nothing but dehumanized tools of war among empires. More and more of us would feel pressured to abandon Islam, and in this way Islam fails and becomes extinct, as our children, deciding to be more enlightened than us, abandon Islam in favor of a secularism that feels much more sensible and civilized.
  • We evolve into a new type of Muslim population whose very foundations reject and cripple the terrorist ideology that has been so perfected by the peaceful and freedom-loving geniuses at the CIA.

If we are to evolve, this evolution has to happen at the level of our intellectuals, scholars and preachers, who are the midwives responsible for birthing Islam into the 21st century.

Hadith-Primacism: The Scholarly Pandora’s Box that Enables Terrorist Ideologies

The Islamic scholarly tradition is divided into two major turfs; the scholars of fiqh (jurisprudence, i.e. Islamic law), and the scholars of hadith (narrations relating to the Prophet Muhammad peace be upon him and his tradition). The scholars of fiqh, among whom are such giants of Islamic scholarship as Abu Hanifah, Imam Malik, Abu Hamid al-Ghazali, Khateeb al-Baghdadi, Fakhradeen al-Rarzi, Ibn Taymiyyah and Ibn al-Qayyim support a rationalistic approach toward hadith, believing that even if a hadith narration’s chain of narrators is entirely trustworthy, if the narration’s content is not supported by the wider context of the Quran and hadith, then that narration is subject to doubt and skepticism, and that it cannot be used to derive any laws or principles.10

Their policy toward singular but authentic hadith narrations is summarized by the scholar al-Shashi as follows:

شرط العمل بخبر الواحد ألا يكون مخالفا للكتاب والسنة المشهورة.

The condition for applying a singular hadith narration is that it should not go against Scripture [the Quran] and the well-known Sunnah [traditions of the Prophet.]

The rationalistic approach toward hadith is taken further by Abu Hanifah, who writes:

ونبي الله لا يخالف كتاب الله، ومخالف كتاب الله لا يكون نبي الله، فرد كل رجل يحدِّث عن النبي صلى الله عليه وسلم بخلاف القرآن ليس ردًّا على النبي صلى الله عليه وسلم ولا تكذيبا له، ولكن ردّ على مَن يحدث عن النبي صلى الله عليه وسلم بالباطل، والتهمة دخلت عليه وليست على نبي الله صلى الله عليه وسلم. (أبو حنيفة، رسالة العالم والمتعلم)

The Prophet of God does not defy the Book of God, and whoever defies the Book of God cannot be a Prophet of God. Refuting any man who mentions a narration of the Prophet peace be upon him which goes against the Quran is not a refutation of the Prophet peace be upon him, and is not an act of calling him [the Prophet] a liar, rather, it is a refutation of someone who speaks falsehood regarding the Prophet peace be upon him, and the accusation [of speaking falsehood] is against that man and not the Prophet peace be upon him.11

The Hanbali scholar Ibn al-Jawzi advocates this principle when handling hadith:

فكل حديث رأيته يخالف العقول وأن يناقض الأصول، فاعلم أنه موضوع فلا تتكلف اعتباره.

Any hadith that you can recognize as going against reason or contradicting principles, then know that it is a fabrication, therefore do not consider yourself compelled to act by it.

The rationalistic approach toward hadith is supported by the Prophet Muhammad (peace be upon him) himself, in an authentic narration included by Ibn `Asakir in his Tareekh Dimashq (History of Damascus). The narrators of this narration all have many narrations in Sahih al-Bukhari, meaning that they satisfy the highest standards of hadith authentication:

إنها تكون بعدي رواة يروون عني الحديث، فاعرضوا حديثهم على القرآن، فما وافق القرآن فخذوا به، وما لم يوافق القرآن فلا تأخذوا به.

There will be after me narrators of hadith. Expose their narrations to the Quran; any of them that agree with the Quran, then follow those, and those that do not agree with it, then do not follow them.

Scholars of hadith, on the other hand, reject this rationalistic approach toward hadith in favor of their processes of authentication, which entirely focuses on the form of hadith and ignores its content. As long as the chains of narration satisfy their criteria, they accept the hadith as authentic, even if it goes against the Quran and common sense. As an example, the hadith scholar al-Nasaa’i considers this narration authentic, in which the Prophet says:

لا يدخل الجنة ولد زنا

One who is born to adultery does not enter Paradise.12

Ibn al-Jawzi, who as mentioned belongs to the fiqh group, rejects this narration, despite the authenticity of its chain of narration, using the following verse of the Quran:

وَلَا تَزِرُ وَازِرَةٌ وِزْرَ أُخْرَى

No one carries the burden of the sin of another person.13

The modern hadith scholar Ibn Baaz (of whom I think highly when it comes to most things) uses authentic hadith narrations to prove that the earth isn’t round. There are many hadith-primacist scholars in Saudi Arabia who use authentic narrations to prohibit women from driving cars or using the Internet without a man’s presence.

There is an intellectual battle raging between rationalism on the one hand, and hadith-primacism on the other (giving primacy to hadith at the Quran’s expense), with hadith-primacist scholars often entirely ignoring the Quran and reason if they can find authentic narrations to back up their claims. As an example, hadith scholars continue to consider as authentic narrations from Umar ibn al-Khattab and Abdullah ibn Umar in which they mention the Prophet saying that a dead person can be punished for the weeping of their relatives on them, even though there is an authentic narration by Aisha, wife of the Prophet Muhammad peace be upon him, in which she refutes what Umar and Abdullah say using verses of the Quran, and saying that Umar has misremembered.

Ibn al-Qayyim and Ibn Taymiyyah reject an authentic narration of the Prophet (mentioned in Sahih Muslim) in which he describes the stages of the creation of the earth as seven days, saying that since the Quran says the earth was created in six days, this hadith must be false regardless of its authenticity. To hadith-primacist scholars this doesn’t matter; the narrators are trustworthy, so it must be true, even if it clearly contradicts the Quran.

Hadith-primacist scholars make up a loud minority among the scholarly tradition which viciously attacks anyone who dares to use rationalism and Quran-derived principles to justify skepticism toward particular narrations, since to them, once a narration has been given the stamp of authenticity, any questioning of it mounts to heresy.

By giving preference to hadith in their thinking and ignoring Quranic principles, hadith-primacist scholars create Islam’s Achilles’ heel; on the one hand, extremists can make up any interpretation of Islam they desire as long as they can find authentic narrations to support their views, and on the other, the rest of the population is prohibited from countering the views of these extremists using the Quran, because…all of the narrations these extremists use are perfectly authentic, and any attack on them amounts to an attack on the hadith-primacist scholars, the loud minority that is only too happy to assassinate the character of anyone who incurs their wrath.

It does little good that 500 scholars sign some declaration against terrorism, their feeble arguments can be trivially defeated by the seemingly bullet-proof reasonings of militant extremists, who are just as well-versed in the scholarly tradition. Our scholars continue trying to build anti-terrorism castles in the sand, incapable of withstanding the simplest attacks of extremists.

Once the hadith-primacist view is adopted and goes unchallenged, it becomes futile to mention verses like 5:32 that mention the infinite worth of human life, because there is always that one extremist who comes along and says “This verse is overruled by that [Quranic verse or hadith narration], so no, the infinite worth of human life only applies to Muslims, and even then, to a tiny minority of Muslims.” And if you mention a verse like 2:62 that promises paradise to pious Christians living today, they will always say “Nope, this is abrogated by 5:17, which says Christians are infidels.”

Hadith-primacism enables extremists to enforce almost any and all preconceived prejudices they may have on Islamic belief and practice, opening the way for terrorist bombings and massacres. All that an extremist needs to support terrorism is a few well-chosen hadith narrations that corrupt the Quran in a way that presents a view of the world as a battlefield between good and evil, and which presents all of humanity as infidels that can be destroyed at will if they get in the way of extending God’s rule.

The Criterion

The “Criterion” is one of the names that the Quran uses for itself14. The entire 25th chapter is known as al-Furqaan, “the Criterion”, and its first verse shows that this name refers to the whole Quran:

Blessed is He who sent down the Criterion upon His servant, to be a warning to humanity.

Our scholars can never win the ideological war against terrorism as long as hadith-primacism goes unchallenged. Until our scholars develop sufficient courage to admit that the Quran is superior to hadith, and to admit that the Quran is the criterion by which we can judge all other texts, the loophole would remain wide open for extremist thinkers to encourage youth to carry out terrorist atrocities.

Stoning: Over 1000 Years of Rejecting the Quran

The hadith-primacist view is so dominant that to this day only a handful of scholars can be found who give precedence to the Quran’s principles on sexual crimes over hadith. One such scholar is the great Egyptian Islamic scholar Muhammad Abu Zahra (d. 1974), who in a 1972 conference rejected the punishment of stoning, saying that he had kept has view secret for 20 years in fear of the backlash he would receive if he made it public.

The Quran’s overall philosophy is that when faced with two evils, one must choose the lesser evil. No one, except a sadist, enjoys hurting others, even if it is justified. For the crime of adultery (people cheating on their spouses), the Quran prescribes a punishment that will be explained. But first it is important to understand why punishment is necessary.

Islam’s view is that adultery is a matter of men’s, women’s and children’s rights. Islam wants to make adultery unthinkable within a devout Muslim society. By removing people’s freedom to cheat on their spouses, Islam creates a better freedom. It creates a society that is free from the stress and damage of flirtation, cheating and seduction. Husbands and wives can go about their days confident in the knowledge that their families are stable and that there are no threats to their family lives, either from lecherous men or seductive women.

From a men’s rights perspective, being harsh on adultery means that men can be sure children born to their wives are their own. They are also freed from the intense stress and turmoil of having to deal with a wife who is talking to other men behind their backs.

From a women’s rights perspective, it means that women can be sure there are no other women, anywhere, at all, eager to take their husbands away from them, and thus they can be confident that their social status and the father of their children is not threatened by other women.

From a children’s rights perspective, it means children are spared the turmoil and damage caused by either of their parents cheating on the other, and the possible divorce and broken family life that would come from it.

Punishing adultery harshly is the lesser evil that prevents the greater evils mentioned above. Islam doesn’t shy away from dealing with such matters, the way modern Christians do. Letting adultery go unchecked doesn’t mean it will not do damage. It just means the problem will continue to grow until more and more families break apart and birth rates go below replacement rates (i.e. the society starts to shrink in the long term) as people shy away from marriage and family life due to the cynical attitude promoted by rampant infidelity and sex outside of marriage.

Before we talk about the punishment, note that Islam places stringent requirements on proving adultery. Four witnesses to the act of copulation are necessary, it is not sufficient to find a man and woman naked in a room together. Only someone who shows the most flagrant contempt for society’s rules by carrying out adultery (or other sexual acts) in the view of many witnesses will be subject to this law, and even then, only if the witnesses are forthcoming and the case goes to court.

Also note that Islamic law is not something that is forced upon people, it is something that people democratically choose as their own law. Non-Muslims wouldn’t be subject to it, though in a multi-religious society, Muslim-majority cities and states would have the right to banish non-Muslims who commit mortal sins like adultery, as otherwise there would be a loophole allowing non-Muslims to run brothels in Muslim cities, the way the Jews did all over Christian Europe in the 19th century.15

For the crime of adultery, the Quran prescribes a hundred lashes:

The adulteress and the adulterer—whip each one of them a hundred lashes, and let no pity towards them overcome you regarding God’s Law, if you believe in God and the Last Day. And let a group of believers witness their punishment. [Quran 24:2]

While flogging someone for a crime would seem uncouth and barbaric to the modern Western reader (who also can’t bear to watch a cow slaughtered, yet eats beef), Muslims voluntarily choose it as an acceptable punishment in certain cases because it is far more efficient than imprisoning people. Prisoners require food and care, which is a great waste on society, and a crime against the children and elderly who far more deserve that food and care. Instead of spending $50,000 caring for an imprisoned adulterer for a year, they are administered 15 minutes of public shaming and then let go, and if the money exists that was to be used for the care of prisoners, it would go toward helping the poor and the needy instead, who far more deserve it.16

Note that due to the rarity of adultery in a Muslim society, and the difficulty in proving it, actually floggings would be extremely rare. An entire country might only see a case or two in a decade. These would be ceremonial events, similar to the execution of traitors in the US, where the individuals in a society voluntarily choose to reassert that standards of manner and custom are being preserved. If flagrant adultery goes unpunished, within a decade or two the nature of the society would easily transform into a typical Western one, where people are cynical about marriage and relationships, and where birth rates are always below replacement.

Devout Muslims would never be guilty of adultery. The punishment is for freeloaders who want to enjoy the fruits of Islam (faithful wives and husbands, basic income, peaceful cities and very low crime rates) while flaunting their contempt for its rules. Such people are a threat to an Islamic society’s long-term survival, and they are dealt with as such. The flogging makes a lesson out of such people, teaching that they cannot enjoy the fruits of Islam while working to destroy the very foundations that enabled such fruits to exist in the first place.

If flogging seems unkind, it should, because it is meant to be unkind. It is an evil meant to prevent a greater evil. All that Islam asks of people, if they want to avoid this punishment, is to not have sex outside of marriage in the view of witnesses. And if someone really wants the right to have sex outside of marriage in the view of witnesses, they are free to leave Islam and enjoy this privilege.

To this day, the scholarly tradition has defended the idea of punishing people for leaving Islam, some even recommending the death penalty. This, above all, is a demonstration of the critical need for rationalism within the Islamic tradition, because the Quran says “There is no compulsion in religion,”17, and forcing people to stay Muslim is just as much compulsion as forcing people to become Muslims. Even a child should be able to see this, but thanks to the authoritarian doctrine of hadith-primacism, scarcely a scholar can be found with the spine and intelligence to support the Quran’s principle of religious freedom against apostasy-punishing hadith narrations.

While flogging is what the Quran prescribes for adultery, hadith narrations mention accounts of the Prophet ordering the stoning of adulterers, in accordance with Jewish law18 (at the beginning of his rule in the city of al-Madinah, the Prophet appears to have followed Jewish law if no Quranic law existed that could handle a particular case). So of course, our scholars follow the view of hadith instead of the Quran, considering stoning a valid punishment. Today, even Western-educated converts to Islam can be found who defend stoning.

Verse 4:25 of the Quran says this regarding women born to slavery:

When they are married, if they commit adultery, their punishment shall be half that of free women.

How exactly do you administer half a stoning to someone? Stoning is meant to be a form of execution, how do you half-execute someone? Would the Quran be foolish enough to prescribe a punishment that could never actually be applied in real life? The verse makes perfect since if it referred to the Quranic punishment for adultery, flogging.

As if that wasn’t sufficient evidence against stoning, the Quran goes on to supply this verse:

Those of your women who commit fahishah [“wantonness”, an umbrella term that includes adultery along with other sexual crimes], you must have four witnesses against them, from among you. If they testify, confine them to the homes until death claims them, or God makes a way for them. 19

If the punishment for adultery is execution by stoning, then what could this verse be talking about? How could God make a way for someone He Himself commands to be executed? This reminds me of Terry Pratchett’s novel Pyramids, in which a woman is sentenced to death for refusing to volunteer to be sacrificed.

From the Quranic point of view the point of the verse is clear. It is telling Muslims to be better than Christians, who as late as the 20th century would disown and throw out women who were convicted of adultery, along with their children, to become prostitutes and beggars. The verse requires that the woman’s family, clan, or tribe, instead of disowning her, should continue to care for her as one of their own. As is usual with the Quran’s system of checks and balances, this burden (of caring for an undesirable criminal) comes with added powers. The family is allowed to prevent the woman from going out until they age and die, or until “God makes a way for them”. This second clause provides for various possibilities in dealing with adulterers:

  • For adulteresses and unmarried women who have sex outside of marriage, they can be confined to their homes by the family, as the verse suggests, until they show repentance and agree to abide by Islamic society’s rules. There are fatwas (official rulings) by many respected scholars (Shaykh Muhammad Salih al-Munajjid, Shaykh Yusuf al-Qaradhawi, Dr. Nizar Rayyan, Dr. Ali al-Sartawi) that require a husband to keep a cheating wife as his wife if she shows repentance. Once she is found to have truly given up the thought that sex outside of marriage is OK, then she is allowed to re-enter society. By giving the Muslim family the power to prevent such women from going out, the law closes an important loophole that would exist otherwise. If the family didn’t have this power, a woman could practice prostitution while having the legal power to force her family to accommodate her and provide for her. The law requires adulteresses to decisively choose their fates (repent or leave Islam), instead of existing within legal gray zones.
  • As mentioned, such people have the option of leaving Islamic society to live as non-Muslims, if they do not believe in repenting and re-entering Islamic society. By renouncing their Islamic duties, they also renounce their Islamic privileges (their families would no longer have any duties toward them), such as guaranteed basic income for women, and the earnings of the wealth and speculation tax (zakat earnings), though they would still have all basic rights and duties that the government’s constitution enforces for all of its citizens, Muslim and non-Muslim.
  • If there is an overseas nation that offers to accept all adulterers and adulteresses as refugees, they can be sent to that nation.
  • A male who is known to promote adultery (a lecherous person who constantly seeks to seduce women and is convicted of sexual crimes multiple times) or engages in prostitution (such as by running a brothel) can be banished using laws against the spreading of corruption.

The Quran goes on to supply this verse, laying down marriage rules for adulterers:

The adulterer shall marry none but an adulteress or an idolatress; and the adulteress shall marry none but an adulterer or an idolater. That has been prohibited for the believers. 20

If the punishment for adultery is execution by stoning, what could be the point of talking about marriage? While if the punishment is flogging, then the verse makes sense. The Quran is forbidding marrying an adulterer until they have shown clear repentance. And those who haven’t and will not show repentance, those cannot ever be married by Muslims.

The Quran itself contains sufficient evidence to nullify stoning once and for all. But our scholars, blinded by their education, continue to support the barbaric Jewish punishment. Luckily, Muslim rulers, the scholars of fiqh, and the Muslim populace, have often been very sensible regardless of the things written in books of law21, so that the cases of actual stoning in Islamic history are just a handful.22

For sexual crimes, the Quran never prescribes execution. That is a corruption introduced by the hadith-primacist tradition. No, it even ensures the rights of the adulteress, preventing her family from casting her out.

We can be thankful that we already have respected scholars who have taken steps toward restoring the Quran’s status as Islam’s principal authority, such as the Egyptian scholars and Azhar University professors Muhammad al-Ghazali (d. 199623) and Yusuf al-Qaradhawi24, widely known and highly respected figures in modern mainstream Islam in the Middle East. One of the important works in this field is al-Ghazali’s revolutionary 1989 book al-Sunnah al-Nabawiyyah baina Ahlal Fiqhi wa Ahlal Hadeeth (“The Prophetic Tradition Between the People of Jurisprudence and the People of Hadith”), in which he clarifies the division between the scholars of fiqh and scholars of hadith and calls for abandoning hadith-primacism in favor of rationalism.

The Quran: Ender of Terrorist Ideologies

Once we reject hadith-primacism and put Islam’s focus back on the Quran, it becomes practically impossible to justify terrorism on the one hand, and it becomes trivial to defeat extremist intellectuals and their ideologies on the other. The only cases in which violent conflict is justified in the Quran are in matters of statecraft, when a Muslim government had to deal with threats around it. In the Quran, there is not a single justification for groups of Muslims taking the law into their own hands and carrying out terrorist attacks.

In fact, the Quran advocates the exact opposite. It tells Muslims to follow the example of the prophets,

Those are the ones to whom We gave the Scripture and authority and prophethood. But if the disbelievers deny it, then We have entrusted it to a people who are not therein disbelievers. Those are the ones whom God has guided, so from their guidance take an example. Say, “I ask of you for this message no payment. It is not but a reminder for the worlds.”25

The major predecessor of Prophet Muhammad in the Quran is Prophet Moses (whose name is mentioned over 130 times, versus 5 mentions of Muhammad’s name). Moses, this rightly guided prophet that Muslims are encouraged to follow, had about 600,000 Israelites under his guidance in Egypt26. Did he encourage this army to launch a war against the Pharaoh, this killer of infants and enemy of God?

No, instead, he asked them to be patient in their suffering, without raising a hand against their oppressors:

127. The chiefs of Pharaoh’s people said, “Will you let Moses and his people cause trouble in the land, and forsake you and your gods?” He said, “We will kill their sons, and spare their women. We have absolute power over them.”

128. Moses said to his people, “Seek help in God, and be patient. The earth belongs to God. He gives it in inheritance to whomever He wills of His servants, and the future belongs to the righteous.”

129. They said, “We were persecuted before you came to us, and after you came to us.” He said, “Perhaps your Lord will destroy your enemy, and make you successors in the land; then He will see how you behave.”

130. And We afflicted the people of Pharaoh with barren years, and with shortage of crops, that they may take heed.

131. When something good came their way, they said, “This is ours.” And when something bad happened to them, they ascribed the evil omen to Moses and those with him. In fact, their omen is with God, but most of them do not know.

132. And they said, “No matter what sign you bring us, to bewitch us with, we will not believe in you.”

133. So We let loose upon them the flood, and the locusts, and the lice, and the frogs, and blood—all explicit signs—but they were too arrogant. They were a sinful people.

134. Whenever a plague befell them, they would say, “O Moses, pray to your Lord for us, according to the covenant He made with you. If you lift the plague from us, we will believe in you, and let the Children of Israel go with you.”

135. But when We lifted the plague from them, for a term they were to fulfill, they broke their promise.

136. So We took vengeance on them, and drowned them in the sea—because they rejected Our signs, and paid no heed to them.

137. And We made the oppressed people inherit the eastern and western parts of the land, which We had blessed. Thus the fair promise of your Lord to the Children of Israel was fulfilled, because of their endurance. And We destroyed what Pharaoh and his people had built, and what they had harvested.27

In the Abraham chapter of the Quran, Moses tells a story of previous prophets in his effort to encourage the Children of Israel to be patient:

11. Their messengers said to them, “We are only humans like you, but God favors whomever He wills from among His servants. We cannot possibly show you any proof, except by leave of God. In God let the faithful put their trust.”

12. “And why should we not trust in God, when He has guided us in our ways? We will persevere in the face of your persecution. And upon God the reliant should rely.” 28

The Quran encourages the Prophet to be patient in the face of the persecution he used to receive (for 13 years, in fact, even as his following continued to grow), and to follow the examples of the prophets before him, instead of becoming a terrorist and using his army of followers to violently take over his small city:

So be patient, as the messengers with resolve were patient, and do not be hasty regarding them. On the Day when they witness what they are promised, it will seem as if they had lasted only for an hour of a day. A proclamation: Will any be destroyed except the sinful people?29

The entire Quran is a call for peaceful resistance against oppressors. If you think otherwise, I encourage you to read the Quran 50 times in the original Arabic, like I’ve done, and then explain to me tell me how it is otherwise.

The Quran, among many other things, also acts a military manual for Muslims, since war requires law, and the Quran is the primary source for Islamic law. Casual readers of the Quran will be shocked at the numerous descriptions of violence it contains, not realizing that the Quran has to act like a military manual, and that every modern military has a similar manual containing descriptions of cases where killing can be done legally, and cases where it cannot be done.

Christians critics of Islam ignore the far more violent Old Testament, whose God approves of stoning30, killing innocent children for their father’s sins31 burning people alive, and killing hundreds of thousands of women and infants alongside men to make room for Israel32

When the Old Testament’s violence is mentioned by Muslims, the usual reply is that all Abrahamic religions are equally violent and horrible, so we should abandon them all. But the Quran has nothing to do with the evil and genocide in the Old Testament. An example of a “violent” verse of the Quran is this:

You will find others who want security from you, and security from their own people. But whenever they are tempted into civil discord, they plunge into it. So if they do not withdraw from you, nor offer you peace, nor restrain their hands, seize them and execute them wherever you find them. Against these, We have given you clear authorization. 33

This verse legalizes using deadly force against tribes who occasionally attacked the Prophet’s state when they saw an opportunity for gain, but who publicly declared allegiance to the Prophet to protect themselves from punishment34. A law was needed to deal with these people, and this verse provides that law. These people are publicly given a choice: Withdraw, offer peace, and restrain yourselves from violence, or continue doing what you do. If they agree to the verse’s offer, then they will be left alone, but if they break their word one more time like they’ve done countless times in the past, the law legalizes a decisive attack on them to end the menace once and for all.

A favorite passage of the Quran for Islam’s detractors is the following, from its second chapter:

190. And fight in the cause of God those who fight you, but do not commit aggression; God does not love the aggressors.

191. And kill them wherever you overtake them, and expel them from where they had expelled you. Oppression is more serious than murder. But do not fight them at the Sacred Mosque, unless they fight you there. If they fight you, then kill them. Such is the retribution of the disbelievers.

192. But if they cease, then God is Forgiving and Merciful.

193. And fight them until there is no oppression, and worship becomes devoted to God alone. But if they cease, then let there be no hostility except against the oppressors.
35

These “violent” verses rule that if a group attacks a Muslim state and conquers a part of it, then the state is allowed to launch a counter attack until the conquerors are entirely defeated and their laws and practices banished. They rule that, for example, if a conqueror takes up a part of Malaysia, and establishes a new constitution and official religion there, then, during the same conflict, once Muslims retake the land, they are required to restore Malaysia’s constitution and religious practices there (while respecting the right of individuals to choose their own religion, as ruled by 2:256). If the Muslim peasantry had been forcefully converted to another religion, they would be asked to embrace Islam again, and perhaps they will be offered gifts and support in return for converting back to Islam. Those who personally prefer the new religion will be left alone.

A fair-minded reader will see that these verses are actually placing limitations on violence instead of promoting it, by requiring that only aggressors be fought, and that if aggressors cease and offer peace in good faith, Muslims should accept their offer. Naturally, an enemy could abuse this law by offering peace when the war gets too hard for them, only to start it again once they are ready for another go. Other verses deal with such cases.

The Quran, taken as a whole, contains far more calls for patience, peace and co-existence than for violence, so that when it legalizes violence, it is always done as a matter of last resort, when all other avenues have been explored.

The United States government, compared to the type of government advocated by the Quran, is frankly Stone Age barbaric. In violation of the Quran’s laws, it arms, finances and trains terrorist groups that carry out wholesale slaughter throughout the world. It props up evil dictatorships throughout the world when it fits its interests. It finances bloody coup d’états against peaceful governments when it wants, like it did in Iran in 1953, Iraq in 1963, Ghana in 1966, Greece in 1967, the Dominican Republic in 1971, Fiji in 1987, Albania in 1991, Afghanistan in 2001 (the Afghan government asked for proof of Osama’s complicity in 9/11 before handing him over), Iraq in 2003, and Ukraine in 2014.36

America’s Christians will naturally absolve themselves of their government’s sins, since to them, atrocities that are far enough removed are not atrocities. They may even complain about what their government is doing abroad, just as they continue voting for the same congressmen and women who enabled and continue to enable their government’s worldwide campaign of terror. Who cares if their local congressman supports murdering millions to further the US government’s worldwide power grab, he is a nice Christian man from Kentucky!

And then certain Christian evangelicals have the audacity to talk about how the Quran is violent. Teach us about the way of Christ, of turning the other cheek, just as your chosen congress continues to support bombing our countries, financing murderous terrorists and assassinating the best of our leaders. Help us out of our barbaric ways with your civilized bombs!

Islam Evolves

And say, “The truth has come, and falsehood has withered away; for falsehood is bound to wither away.” —The Quran, 17:81

If today’s Muslim intellectual leaders are not brave enough to clean up Islam and reject the practice of discarding the Quran in favor of hadith, then their versions of Islam will not survive the terrorism germ. Their followers will either abandon Islam or move on to better versions of it.

From a Darwinian genetic-cultural perspective, it is guaranteed that Islam will adapt in such a way that makes terrorism nearly impossible, the question is not whether the adaptation will happen, the question is who will be brave enough to enable this adaptation, who will dare to go out of their comfort zones, put their careers on the line, and go against the millennium-old bureaucracy to rebuild Islam with the Quran at its foundation?

This evolutionary process has already progressed a great deal among the educated Muslim classes, who, supported by a few brave scholars, will eventually bring down hadith-primacism The good thing is that no one owns Islam. Time is the ultimate judge of truth and falsehood.

In an ecological system, germs and predators carry the important function of ensuring the fitness of species by killing off weak specimens and ensuring that species remain in a permanent state of renewal. The germ of terrorism, and the predation of the CIA and other evil Western organizations on Muslim populations, while causing great evil, also cause the creative destruction of Islam’s weaknesses, forcing our scholars to re-evaluate their practices and purify Islam from the rust it has accumulated over the centuries, so that a version of Islam can emerge that is fresh, relevant, more civilized than Judaism and Christianity, and capable of surviving the foreseeable future.

17. He sends down water from the sky, and riverbeds flow according to their capacity. The current carries swelling froth. And from what they heat in fire of ornaments or utensils comes a similar froth. Thus God exemplifies truth and falsehood. As for the froth, it is swept away, but what benefits the people remains in the ground. Thus God presents the analogies.

18. For those who respond to their Lord is the best. But as for those who do not respond to Him, even if they possessed everything on earth, and twice as much, they could not redeem themselves with it. Those will have the worst reckoning; and their home is Hell—a miserable destination.

19. Is he who knows that what was revealed to your from your Lord is the truth, like him who is blind? Only those who reason will remember.

20. Those who fulfill the promise to God, and do not violate the agreement.

21. And those who join what God has commanded to be joined, and fear their Lord, and dread the dire reckoning.

22. And those who patiently seek the presence of their Lord, and pray regularly, and spend from Our provisions to them, secretly and openly, and repel evil with good. These will have the Ultimate Home.

23. Everlasting Gardens, which they will enter, along with the righteous among their parents, and their spouses, and their descendants. And the angels will enter upon them from every gate.

24. “Peace be upon you, because you endured patiently. How excellent is the Final Home.”37

87 to Socrates

If you had a list of your ancestors and went back through them to your 87th ancestor, you will reach a man and woman who lived around the time Socrates was born.1

This chart below shows how unimportant we are. In 1000 years we will be just another number on someone else’s timeline. It also shows how important we are. If any of these men and women had failed to reproduce, the chain would have been broken and we wouldn’t exist today.

/ No Comments on 87 to Socrates

A theory for why pupil size is associated with intelligence

People of higher intelligence have wider pupils than people of lower intelligence. A possible reason for this is that a wider pupil allows more photons to enter the retina. A person of higher cognitive capacity will be able to make good use of these photons, as they have the hardware to analyze the added photons, meaning the increase in the amount of photons entering the retina provides a selective advantage for these people.

In other words, when high intelligence is paired with wider pupils, human vision becomes more powerful, as there is more visual data received, and there is the power to process these data. By taking in more photons, these people are able to have better distant vision (as their pupils offer a wider surface area for distant photos to be captured) and better peripheral vision, giving them an advantage in hunting and warfare.

The theory, therefore, is that higher intelligence and wider pupils together enable humans to have higher visual fidelity compared to other humans. Add this to the much faster reaction times of a high IQ person and you have a hunter-killer that is far superior to others.

This means that as if high IQ privilege wasn’t bad enough, high IQ people also have the privilege of seeing the world better. I am sure a clever cultural Marxist can be found to support a law to force high IQ people to wear glasses that filter out the added photons, so that equality can be achieved.

Failing empire barks

How dare a sovereign state develop weapons technology that could prevent the American Empire from subjugating them and turning them into a client state?

For China the cat is out of the bag, so the US has to bark at North Korea and Iran and ask for China’s help in intimidating these countries.

And of course, something has to be done about the Iranian threat. Look how close to our military bases they have put their country:

/ No Comments on Failing empire barks

Anita Sarkeesian is Jewish

Below is a screen shot from Race and Gender in Electronic Media: Content, Context, Culture, a typical book of feminist verbiage intended to be force-fed to college students, by the Jewish writer Rebecca Ann Lind, a member of the Holy Priesthood of Overpaid and Pampered College Bureaucrats, casually quoting a tumblr post that refers to Anita Sarkeesian as a middle class Jew, confirming what many have suspected:

While this cannot be taken as complete proof, it is nearly that. A Jewish person will not lightly allude to another person’s Jewishness unless she was very sure of this fact.1

I know it is nearly illegal for us gentiles to talk about the Jewishness of others (only Jews are allowed this privilege of deciding whether another person’s Jewishness is relevant or not), but if you suffer from low latent inhibition like I do, patterns are hard to ignore.

And in her case, the pattern is clear. First, she is entirely funded and supported by Jews and their organizations. Her laughably stupid nonsense is being taken seriously by Jewish owned-and-operated Reddit, Google (through their YouTube subsidiary), Tumblr and Facebook. Our mostly Jewish-run woolly-science academia treats her words as gospel.

Second, she is allowed the incredible privilege of talking in the name of the entire gaming industry, deciding which game makers get credited as good boys and which ones get a treatment reminiscent of the Spanish Inquisition by her vast army of dedicated trolls and bullies, the same way that Jewish feminists like Gloria Steinem, Betty Friedan and Naomi Wolf are allowed the privilege of talking in the name of all women, and war-mongering Jewish “conservatives” like Ben Shapiro, Bill Kristol and David Frum are given the privilege of talking in the name of all conservatives, and the racism-paranoia-promoting, Jewish founded, owned and operated SPLC is given the privilege of talking in the name of all blacks.

Sarkeesian is yet another incarnation of Gloria “I Get Paid by the CIA” Steinem and American Communist Party member Betty Friedan, aging Jewish biddies supported by Jewish usurers and their organizations and driven by a deep hatred and disgust for whites (and gentiles in general), who can’t get over the fact that we subhuman gentiles enjoy inner lives not entirely under their control.

They want to be the ones with the power to define for us what femininity and justice are, lest we should do it ourselves and come up with something that doesn’t fit their narrow-minded prejudices, and that could possibly take away their purpose in lifehaving something to hate and destroy. They will examine everything within the sphere they’ve decided to conquer and control as carefully as Medieval Catholic blacklist monitors reading the text of a new book in search of heresy. Everything is examined with the utmost suspicion, and the only people who get a free pass are those who slather their entire productions with virtue-signaling dog whistles.

Every day they find something new to throw a tantrum about, something new to justify their own pathetic existence and ensure further donations and grants to subsidize their lives of upper class luxury that most of us could only dream of.

The personal is political. All that is holy and dear to us shall be burned in their cleansing fire, no rules of civility and decorum, no human empathy, is allowed for those of us who refuse to bow down to their holier-than-thou obsession with controlling our lives and thoughts. We need to be beaten into shape, not only shall we all act politically correct, we need to think politically correct. We have to let them invade and rape our minds over and over again until we have lost all sense of culture and identity. History books have to be burned and rewritten to fit their narrative, book contracts have to be destroyed, political speeches have to be violently disrupted, YouTube channels shut down, Twitter accounts suspendeduntil only their One True Speech remains, until their abortion-loving, white-hating, male-shaming ideology becomes our culture and our law. All of our TV shows, books, movies, and now video games, have to be censored by them and then either given “good boy” badges or cast out of the industry. Until we all submit our minds and our souls and our children to the way of life that they define and control.

They want absolute control over us, and they exploit blacks, immigrants and women using their Trojan Horses of justice and equality to defeat all opposition, so that they remain perpetually in charge of the West’s culture. And they want to make sure they continue to live their lives of luxury as feminist writers, editors, pundits and academic bureaucrats, squeezing every cent out of the victimhood narratives they manufacture. And then these same greedy and utterly corrupt people have the audacity to claim that they are the victims. The talentless Anita Sarkeesian and her (Jewish) sister-in-whining Jessica Valenti have built well-paying careers on the narrative that they are somehow victims of online bullying campaigns. And the corrupt and complicit gaming journalism media, supported by the Jewish censors at Reddit, Google, Tumblr and Facebook pretend this is really the case, until a narrative is built that convinces most observers.

But there are a few of us who can see through all of this.