понедельник, 24 августа 2015 г.

error_reporting

       Опция настроек PHP error_reporting использует побитовые значения, обеспечивая реальную демонстрацию гашения значений битов. Чтобы показать все ошибки кроме замечаний, инструкции в файле php.ini предлагают использовать:
       E_ALL & ~E_NOTICE
      
       Начинаем со значения E_ALL:
       00000000000000000111011111111111
       Затем берем значение E_NOTICE...
       00000000000000000000000000001000
       ... и инвертируем его с помощью ~:
       11111111111111111111111111110111
       Наконец, используем побитовое И (&), чтобы установить только те биты, которые установлены в единицу в обоих значениях:
       00000000000000000111011111110111
      
       Другой способ достичь этого - использовать ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR, ^), чтобы получить только те биты, которые установлены в единицу либо только в одном, либо только в другом значении:
       E_ALL ^ E_NOTICE
      
       Опция error_reporting также может быть использована для демонстрации установки битов. Показать только ошибки и обрабатываемые ошибки можно
       следующим образом:
       E_ERROR | E_RECOVERABLE_ERROR
      
       Здесь мы комбинируем E_ERROR
       00000000000000000000000000000001
       и
       00000000000000000001000000000000
       с помощью оператора ИЛИ (OR, |), чтобы получить биты, установленные хотя бы в одном операнде:
       00000000000000000001000000000001

Работа с выражениями в языках программированния (C, Php)

Кочующие примеры из С (ссылка на php.net):
Самые важные аспекты программирования и логики на уровне выражений:

1. if (func1() || func2())
Now, if func1() returns true, func2() isn't run, since the expression
will be true anyway.

2. if (func1() && func2())
Now, if func1() returns false, func2() isn't run, since the expression
will be false anyway.

The reason for this behaviour comes probably from the programming
language C, on which PHP seems to be based on. There the
short-circuiting can be a very useful tool. For example:

int * myarray = a_func_to_set_myarray(); // init the array
if (myarray != NULL && myarray[0] != 4321) // check
myarray[0] = 1234;

Now, the pointer myarray is checked for being not null, then the
contents of the array is validated. This is important, because if
you try to access an array whose address is invalid, the program
will crash and die a horrible death. But thanks to the short
circuiting, if myarray == NULL then myarray[0] won't be accessed,
and the program will work fine.

вторник, 4 августа 2015 г.

Книга рефакторинг Фаулера

Пожалуй самая важная часть с которой стоит начать рефакторинг:

"Приступая к рефакторингу, я всегда начинаю с одного и того же: строю надежный набор тестов для перерабатываемой части кода. Тесты важны потому, что, даже последовательно выполняя рефакторинг, необходимо исключить появление ошибок. Ведь я, как и всякий человек, могу ошибиться. Поэтому мне нужны надежные тесты."

Тестирование маленьких участков кода.

суббота, 1 августа 2015 г.

Jeaniro gamedev.ru Жизнь после смерти

Предсмертные переживания - не бред. Тоннели, ангелы, шум, ощущение будто вернулся домой - просто вызываются они не сверхъестественными причинами, а умирающим мозгом.

Твой личный опыт, не означает что явления не существует. Моя бабушка вот тонула, и видела полный набор - и свет в конце туннеля, и голоса и пр.

13-летнее голландское исследование под руководством Пима ван Ломмеля, опубликованное в журнале Lancet обнаружило, что 12 процентов (или 18 процентов, в зависимости от того, как определен околосмертный опыт) из 344 пациентов реанимации, которые пережили остановку сердца и/или дыхания, имели околосмертный опыт.

А вот после всей этой фигни - видимо, да - темнота.

В состоянии терминального периода наблюдается патологическое реагирование рецепторов в ответ на нарушение снабжения кислородом тканей головного мозга. В слуховых рецепторах возникают субъективные ощущения, похожие на шум, звон, свист, жужжание, в зрительных — вспышки яркого света.


В числе факторов, которые могут вызвать подобные эффекты называют гипоксию, гиперкапнию, действие эндорфинов и серотонина, эффектом воздействия кетамина; патологическую активность коры височной доли или лимбической системы.


В феврале 2012 года в Центре исследований околосмертных переживаний (OOBE Research Center, Калифорния, США) 18 человек искусственно и без угрозы для жизни воспроизвели околосмертные переживания в виде выхода из тела и полёта в тоннеле к свету. Исследователи пытались подтвердить теорию, что к предсмертным переживаниям причастна фаза быстрого сна (REM sleep), во время которой с помощью специальных техник для осознанных сновидений и были достигнуты искусственные предсмертные переживания. Учёные сделали вывод, что как минимум в части случаев феномен околосмертных переживаний является лишь формой осознанных сновидений, спонтанно возникающих во время процесса умирания. Работы предыдущих исследователей, в том числе Кевина Нельсона из Университета Кентукки, позволили предположить, что околосмертные переживания вызваны теми же механизмами мозга, что и осознанные сновидения. Исследования Нельсона показали, что оба типа переживаний происходят тогда, когда находящийся в дорсолатеральной префронтальной коре головного мозга «логический центр», обычно активный только во время бодрствования, становится активным во время фазы быстрого сна, это и приводит к появлению необычайно правдоподобных образов.