January 16th, 2015

кукяй

Казань 1936 год

Казань, Булак, 1936 год (225.35КБ)
Казань седьмого мая 1936 года, канал Булак (соединяет в Казани озеро Нижний Кабан и реку Казанку).

Скан Галины Белогорской с оригинального фото. Протока и улица есть до сих пор, правда сейчас улицы название улицы сменилось и она разделилась на две — Лево-Булачную и Право-Булачную, у каждой дома стоят только по одну сторону.

кукяй

Рацпредложение

Разбирал тут старое барахло, раскладывал что выкинуть, что продать, что подарить. Нашёл старые сетевые карты, ещё для коаксиальных сетей. Карты называются «ICL EtherTeam 16i и лежат у меня аж 13 лет. Подарю их музей техники ИТИСа — это казанская высшая школа при Университете, где я немного преподавал.
ICL EtherTeam 16i (75.67КБ)
Карты той же модели когда-то кучей лежали рядом со мной на подоконнике комнаты в «Иркеннефти», где я тогда работал. Далёкий 1997 год, «Иркеннефть», как и многие огранизации тогда, полностью ушла с ДОСа на «Виндоуз 95», а оборудование, драйверов к которому не было, лежало кучей на складах и подоконниках отдела АСУ.

Для этих карт драйверов под «Виндоуз» тогда не было. И в один из дней, когда у меня было немного свободного времени, изучая как устроены другие драйвера, я обнаружил, что для некоторых сетевых карт используется драйвер ДОС, но со специальным файлом описания, который указывает как работать с ресурсами (портами ввода-вывода, прерываниями и окном памяти).

Несколько дней в паузах между заданиями, я пытался написать такой файл для ICL EtherTeam 16i. После десятков экспериментов и сотни перезагрузок, у меня получилось и я показал подключенную к сети машину, где стояла эта карта и 95-я «Винда» своему начальнику.
Рацпредложение (142.14КБ)
Так я получил первую и последнюю в своей жизни выплату за рацпредложение. На снимке выше — оформленная стопка бумаг: описание, обоснование, экономическая выгода, свидетельство. Насколько я помню, деньги были невеликие, но как любые деньги, получить их было приятно.

кукяй

Новый способ воровства PIN-кодов карты


С появлением насадок-тепловизоров на телефон, у злоумышленников есть возможность «подсмотреть» ваш пин-код по тепловой картине на клавиатуре банкомата — видно не только какие кнопки вы нажимали, но и в каком порядке — первые имею более низкую температуру.

Защита от такого сканирования есть — положите ненадолго ладонь на клавиатуру перед уходом (или поставьте пальцы двух рук на все кнопки), тогда различить что именно вы нажимали будет невозможно.

кукяй

Шигирский идол

Читал статью про этимологию слова «поганый» (когда-то это значило «языческий») и вышел по ссылкам на статью о Шигирском идоле — самой древней в мире деревянной скульптуре. Скульптура вырезана из цельной лиственницы в эпоху мезолита — восемь тысяч лет до нашей эры.

То есть она древнее египетских пирамид. А хранится это чудо в Екатеринбурге, в Свердловском краеведческом музее.
Шигирский идол (154.44КБ)
Когда мы с женой были в Екатеринбурге четыре года назад (прекрасный город, кстати), как раз видели её в этом самом музее (фото выше — оттуда).

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

До наших дней скульптура дотянула только благодаря торфяннику, в котором и была найдена, но всё равно отдельными частями. Причём почти два метра пятиметровой скульптуры были утрачены в годы Великой Отечественной Войны, интересно куда они делись? Может гниют в чьей-то частной коллекции.

Вся скульптура покрыта орнаментом, на широких плоскостях вырезано семь антропоморфных изображений, часть из них — в «скелетном» виде. Кто именно там изображен, естественно, уже достоверно не выяснить, но версии, в основном, вертятся вокруг одного и того же — духи, боги и тому подобное.

кукяй

Ошибка оракула

В одном из проектов при исправлении ошибки всплыло неожиданное. Кусок кода, который работал ошибочно, родился где-то в двухтысячных и по всей видимости в те времена работал правильно. В нём проверялось — если тип переменной «целое», то переменная передавалась в «Оракл» с флагом SQLT_INT, иначе — с SQLT_CHR.

Всё работало хорошо, пока ПХП был 32-битным. Проверка is_int в этом языке возвращала «истину» только для чисел в диапазоне -2147483648…2147483647, всё что шире, трактовалось как float. В 64-битном интерпретаторе целыми считаются числа из гораздо более широкого диапазона, соответственно, в каком-то коде такое значение попало в драйвер «Оракла», промаркированное как SQLT_INT.

Беда в том, что драйвер (в этом месте), похоже, остался в пределах 32 бит, код:
$var = null;
$st = oci_parse($con, "SELECT :int FROM DUAL");
oci_bind_by_name($st, 'int', $var, -1, SQLT_INT);

foreach ([100500, PHP_INT_MAX, 2147483648] as $var) {
	oci_execute($st);
	echo oci_fetch_array($st, OCI_NUM)[0], "\n";
}
Выведет: 100500, -1, -2147483648. Решение я пока знаю только одно: не использовать для целых, которые не помещаются в 32 бита указание типа SQLT_INT.

Проблема в файле oci8_statement.c (это текущий код драйвера из PHP 5.7):
switch (bind->array.type) {
	case SQLT_NUM:
	case SQLT_INT:
	case SQLT_LNG:

		...
		ZVAL_LONG(entry, ((ub4 *)(bind->array.elements))[i]);
		...
Значение в этом месте приводится к четырёхбайтному целому.

кукяй

PHP7: строки с Unicode-вхождениями

\u{…} (11.43КБ)
ПХП тут сделал маленький шаг к унификации синтаксиса с Руби, Джаваскриптом и HHVM — ввёл возможность указывать Юникодные символы через последовательность на скриншоте. Сегодня я выписал текущую версию из репозитория (она, кстати, не компилируется без исправлений в коде) и убедился, что всё работает.

кукяй

Скорость PHP7 на интерпретаторе Brainfuck

Производительность PHP7 (161.98КБ)
У меня есть старинная забава — брать свой оптимизирующий интерпретатор языка «Брейнфак» и запускать программу, вычисляющую число «Пи» под разными версиями ПХП, чтобы посмотреть их производительность. Тест довольно синтетический, но посмотреть всё равно интересно.

Сравнил в данном случае версии 5.5.14  и сегодняшнюю сборку 7.0, разница всё равно заметна, хоть и не так впечатляюща, как в случае с «Вордпрессом» — там разница в два раза.

Время у меня на скриншоте общее — то есть трансляция программы на «Брейнфаке» в ПХП и запуск получившегося через eval.

кукяй

Великая русская река Кама

По площади водосбора к месту слияния рек несколько больше Волга (площади рассматриваются такими, какими они сложились в естественных условиях 260,9 тыс.кв.км против 251,7 тыс.кв.км). Однако на этой территории Волга объединяет меньшее количество рек и уступает Камскому бассейну (66,5 тыс. рек против 73,7). Водорасход Камы в месте её слияния с Волгой — 4300 куб. метров в секунду, Волги — только 3100. Средняя и абсолютная высоты Волжского бассейна меньше Камского, так как в бассейне Камы находятся Уральские горы. А вот древняя долина Камы старше долины Волги. В первую половину четвертичного периода, до эпохи максимального оледенения, Волги в современном виде не было. Существовала Кама, которая, объединяясь с Вишерой, непосредственно впадала в Каспийское море. Сток современных верховий Камы шёл на север, в Вычегду. Оледенение привело к переформированию гидрографической сети: Верхняя Волга, отдававшая раньше воду Дону, стала впадать в Каму, причём почти под прямым углом. Нижняя Волга и сегодня служит как бы естественным продолжением Камской, а не Волжской долины.

Эту точку зрения поддерживает арабская географическая традиция средних веков, которая связывала исток Итиля именно системой Белая-Кама (арабы считали, что Кама впадает в Белую)

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

Гидрологически спорным является название участка Волги между Нижним Новгородом и впадением Камы; этот участок, по правилам гидрологии, «должен бы» называться Окой.
Из «Википедии». Признаться, никогда не слышал об этой дискуссии. Частенько смотрю на карту Татарстана из-за своих хобби, но такой вывод в голову не приходил.
Волга и Кама (86.75КБ)
На современных картах (карту выше взял из «Яндекс.Карт») всё достаточно очевидно, вроде — справа вниз течёт здоровая Кама, слева в неё впадает относительно скромная Волга.

Интересно, в этом вопросе когда-нибудь наведут порядок или идеология тут заборет науку? Всё-таки великая русская река, центр мироощущения, основа многих русских городов.

кукяй

Серафима Суок

Помните, в «Трёх толстяках» была девочка-циркачка Суок, которой заменили сломанную куклу наследника Тутти? Странное имя — «Суок», неправда ли? Оказывается, это не имя, а фамилия. Серафима Суок (на фото в центре) — одна из дочек австрийского эммигранта Густава Суока, жившего в Одессе.

В Серафиму был влюблён  Юрий Олеша, автор «Трёх толстяков», какое-то время они, фактически, были в гражданском браке.
Суок (201.09КБ)
Серафима оказалось очень непостоянной женщиной — постоянно бросала Юрия Карловича ради других мужчин, позже устав от этого, Юрий женится на другой сестре Суок — Ольге, которая останется ему верна до конца жизни.

Циркачка Суок — посвящение Юрия Олеши двум женщинам его жизни, которых он называл «две половинки моей души».

кукяй

«Песня очень позитивного человека»

Декан Кис Симонтон из Калифорнийского университета в Дэвисе на базе целого ряда исследований построил график, демонстрирующий среднестатистическое соотношение возраста и творческих способностей.

Из него видно, что наши креативные возможности быстро растут на старте карьеры, достигают пика примерно через 20 лет, где-то в районе 40-45, и затем начинают медленно приходить в упадок. В зависимости от вашей специальности этот график видоизменяется, но незначительно. Сегодня средний возраст, в котором делают свое главное открытие физики — лауреаты Нобелевской премии, — 48 лет.

Теоретики в области химии и физики добиваются значимых результатов несколько раньше, нежели исследователи-практики. Поэты достигают пика раньше, чем прозаики. Исследование, проведенное Симонтоном среди композиторов-классиков, показало: типичный представитель этой профессии пишет первое значительное произведение в 26 лет, в 40 он достигает наибольшей творческой зрелости и плодовитости, а затем снижает обороты, и в 52 пишет последнее свое значительное музыкальное произведение.
Из статьи «Разрешите преставиться» профессора биоэтики Иезекииля Эмануэля. Это неплохо согласуется с другими статьями, которые я читал по теме и наблюдениями за собой — пока я, определённо, становлюсь всё уменее и умелее.

Интересно, откуда взялся миф об интеллектуальной деградации где-то после 30? Я натыкаюсь на него всё чаще, особенно в среде стартаперов. Причём среди последних он ещё более удивителен — потому что качество и сложность 90% процентов стартапов на уровне того, что программист высокого класса с опытом может сделать за пару ночей.

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

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

Я склонен считать стартап скорее хобби, ролевой игрой и разовым актом творчества, чем заявкой на серьёзной бизнес. Бывает, когда из первого вырастает второе, но это исключение, в жизни вообще многое случается, глупо строить планы, полагаясь на случай. Кстати, отсюда и моя подозрительность в отношении зрелых людей, ударившихся в стартапы — это больше похоже на эскапизм, когда человек, который должен крепко держать штурвал собственного корабля, мечется по берегу, что твоя Ассоль, вглядываясь в даль, в надежде увидеть алый парус инвестора.