Рубрика «здравый смысл» - 6

Стандартная поговорка на любые с данными: бэкап делать надо было. И как бы никто возразить не может.

Однако…

Когда мы говорим «бэкап делать надо» обычно мы говорим про бэкап тех данных, которые потеряны. Мол, потратил бы 2 минуты, не горевал бы сейчас о потерянном месяце работы.

Однако, в этой фразе есть лукавство. Если бы мы знали, что именно эти данные будут потеряны, то разумеется, мы бы сделали их резервную копию. Однако, предсказывать будущее не может даже SMART, куда уж простым смертным.

Так что фраза «бэкапы надо делать» касается всех ценных данных. Делай бэкап всего и тогда конкретная авария обернётся восстановлением бэкапа, а не сожалением о потерянных данных.

Но две ли это минуты?

Вместо рассуждений я попробую поиграть в математику.
Читать полностью »

image Данная статья предназначена для разъяснения сути фундаментальных методов построения и оптимизации «искусственного интеллекта» для компьютерных игр (в основном антагонистических). На примере игры в зайца и волков будет рассмотрен алгоритм «Минимакс» и алгоритм его оптимизации «Альфа-бета отсечение». Помимо текстового описания, статья содержит иллюстрации, таблицы, исходники, и готовую кроссплатформенную игру с открытым кодом, в которой вы сможете посоревноваться с интеллектуальным агентом.Читать полностью »

Здравый смысл веборазработчика подсказывает, что во браузерном джаваскрипте глобальные переменные являются свойствами объекта window — так что window.чегоНибудь и просто чегоНибудь должны быть синонимами и вести себя одинаково (если, конечно, мы не находимся в какой-нибудь такой функции, где переменную чегоНибудь переопределили локально).

Здравый смысл веборазработчика также ещё подсказывает, что неопределённая переменная должна иметь значение undefined — так что чегоНибудь и undefined должны быть синонимами и вести себя одинаково, если переменную чегоНибудь не упоминали в джаваскрипте, и если какой-нибудь чудила не дерзнул переопределить undefined.

Но если вы собираетесь программировать для Opera 11 (будь то начальная версия Opera 11.01 или новёхонькая Opera 11.61), то будьте готовы отречься от здравого смысла в обоих сих случаях! (Да и не только в Opera, как я покажу чуть ниже.)

Чтобы нагляднейше убедиться в этом, воспользуемся библиотекою Underscore.js, в которой как раз имеется удобная функция тестирования неопределённых переменных — это функция _.isUndefined(), в исходном коде определённая самоочевидным способом:

// Is a given variable undefined?
_.isUndefined = function(obj) {
   return obj === void 0;
};

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js