Primitives and Methods

Somewhat confusing definition about primitives and their corresponding wrapper objects methods - this very nice intro book says that primitives borrow methods from their wrappers, which is not the case. The primitive is converted to an object temporarily, thus the method invocation becomes possible.

Update: The author has elucidated (see Primitive values don’t have methods of their own on the page) the way primitives borrow methods.

Performance - Why Variable Caching?

/**
 * Don't rely on engines' optimization.
 * Consider the following prototype
 * chain and the corresponding tests
 * for property retrieval with and
 * without caching:
 *
**/

var o1 = {
    p1: {
        p2: {
            p3: {
                length: 1000000000
            }
        }
    }
};

var o2 = Object.create(o1);


// The object member resolution process for
// own properties may not impose performance penalty:

console.time('own property without caching');
for (var y = 0; y < o1.p1.p2.p3.length; y++) {
    // see the output on line 54
}
console.timeEnd('own property without caching');

console.time('own property with caching');
for (var y = 0, len = o1.p1.p2.p3.length; y < len; y++) {
    // see the output on line 55
}
console.timeEnd('own property with caching');


// However the object member resolution process for
// prototype properties imposes performance penalty:

console.time('prototype property without caching');
for (var y = 0; y < o2.p1.p2.p3.length; y++) {
    // see the output on line 56
}
console.timeEnd('prototype property without caching');

console.time('prototype property with caching');
for (var y = 0, len = o2.p1.p2.p3.length; y < len; y++) {
    // see the output on line 57
}
console.timeEnd('prototype property with caching');

// own property without property caching: 1125ms
// own property with property caching: 1130ms
// prototype property without property caching: 5995ms
// prototype property with property caching: 1113ms

The Rhodopian miracle Zeolit

A cheap pharmaceutical destroyer: Zeolit.


Циничността на циганизирането

Случаят с Анна Витанова (един достоен служител на изпълнителната власт) е апогей на цирея на наглостта на т.н. управляващи в държавата България. Министър на това министерство е бивш социолог (апропо аз служих на тази държава година и половина, в студ и пек, а тази си е бъркала във ведомостите - подозирам предимно такива от субективен характер), както и очевидна подлога на власт, която бавно, но убедително бута народа (не нацията, защото са различни понятия вече) към гражданска война. Какво е определението за народ?

Двуполюсно.

От една страна:

1) Българите (домакините и собствениците на тази територия от хилядолетия), които са на командно дишане с оглед на:
 -  народо-психология (да се разбира като морал и толерантност от българска страна);
 -  икономика (да се чете мизерия, целенасочено прокарвана вече четвърт век);
 -  граждански права (най-вече липсата им спрямо "гостите" - т.н. "шарени" етноси);
 - култура (изпепелени са в забвение стотици православни храмове, но джамиите никнат като мухоморки, от чиито кубета чакалите вият като за последно до полунощ, огласяйки цяла България);

От друга страна:

2) Гостите: знаем ги кои са, с какво се занимават и с какво не се занимават (по нормативни актове всеки, който живее в това общество, има задължения да извършва или не дадени дейности - за "шарените" това е непонятно - нали полицията ги пази, след като са тръгнали да колят българи за щяло и нещяло). Знаем и как наричат българите, как се държат с тях, какво мислят за тях и може би най-важното - какво чувстват спрямо тях - вменяват на българите, че са в ролята на палестинците, но знаем красноречивите факти.

Тази земя е люлка и собственост само на българите и така ще остане, нека маймуните от западна Европа (нации с хронология, чиито векове са по-малко от кафетата ми сутрин) и през нея запомнят едно:

С мен, и без мен, и сега, и след векове - гнидите нямат място тук, това е земя на българи и ще остане такава още толкова хилядолетия.

Колкото до гнусните анти-български дела, като това срещу този достоен човек от изпълнителната власт, не ми харесват тези неща. Никак.

"Историята на един народ е неговата памет." - Димитър Талев


Self-defining functions as methods

/**
 * A easy solution to overcome
 * the self-defining functions'
 * issue as methods.
 *
**/

var self_defining_function = function () {
    console.log("initial f1 definition");
    self_defining_function = function () {
        console.log("post f1 definition");
    };
};

var object = {
    f1: function() {
        return self_defining_function();
    },

    f2: function() {
        console.log("initial f2 definition");
        this.f2 = function() {
            console.log("post f2 definition");
        };
    },
}

object.f1(); // (line 33)
object.f1(); // (line 34)
object.f2(); // (line 35)
object.f2(); // (line 36)

// initial f1 definition
// post f1 definition
// initial f2 definition
// post f2 definition

Palestine is still the issue

http://johnpilger.com/videos/palestine-is-still-the-issue

Execute asynchronous functions one at a time

/**
 * Naturally, the preferred way is closure.
 * Here is a less popular but simpler & more
 * readable approach (since functions are
 * objects, use a semaphore-like property):
 *
**/

function onceWhileExecuting() {
    if (onceWhileExecuting._locked_) {
        return onceWhileExecuting._locked_;
    }

    onceWhileExecuting._locked_ = true;

    setTimeout(function () {
        onceWhileExecuting._locked_ = false;
        console.log((new Date));
    }, 1500);
}

onceWhileExecuting(); // (line 37)

// this will return true - the function is "locked" (line 36)
setTimeout(function () {
    console.log(onceWhileExecuting._locked_);
    onceWhileExecuting();
}, 500);

// this will return false - the function is "unlocked" (lines 38, 39)
setTimeout(function () {
    console.log(onceWhileExecuting._locked_);
    onceWhileExecuting();
}, 2500);

// true
// Mon Jun 15 2015 16:15:51
// false
// Mon Jun 15 2015 16:15:53

Soundex in JavaScript

/**
 * Soundex in JavaScript
 *
 * @example
 * // returns 'H416'
 * soundex('Heilbronn');
 *
 * @example
 * // returns 'L222'
 * soundex('Lissajous');
 *
 * @example
 * // returns 'S532'
 * soundex('Soundex');
 *
 * @param {String} string
 * @return {String} result
 */
function soundex(string) {

    if (!string) return;

    string = string.toUpperCase();

    var result = [string[0]],
        max_length = 4,
        current_char,
        rules = {
            B: 1,
            F: 1,
            P: 1,
            V: 1,
            C: 2,
            G: 2,
            J: 2,
            K: 2,
            Q: 2,
            S: 2,
            X: 2,
            Z: 2,
            D: 3,
            T: 3,
            L: 4,
            M: 5,
            N: 5,
            R: 6
        };

    for (var i = 1, len = string.length; i < len && result.length < max_length; i++) {
        current_char = rules[string[i]];

        if (current_char && string[i] != string[i - 1]) {
            result.push(current_char);
        }
    }

    for (var i = 0, len = result.length; i < max_length - len; i++) {
        result.push(0);
    }

    return (result.join(''));
}
View on GitHub

Morality & Mentality & Pure Sadism


Would you like to see your children behind the grid of a zoo?


Честит Празник

Честита писменост, плебеи нещастни! Вие, които успяхте да циганизирате не само себе си, но и жалките си поколения; сплетнята на опростачения ум е в апогея си! Да ви е честито, гниди! Поклон пред едни от малкото достойни българи; останалите - лека ви пръст!