💢 OCI8: проблемы с переходом на PHP7

Ещё в копилку проблем с ПХП7: если при привязке переменных в Оракле (bind) поля типа LONG/LOB не находятся в конце списка, то вы получите ошибку ORA-24816. Все столбцы таких типов должны быть привязаны последними, в общей куче. Мы пока столкнулись с проблемой только при сохранении (тестирование пока идёт), в итоге в сохраняющем методе модели пересортировали привязки, основываясь на описании модели.
Комментировать
25 июля 2016 09:34

🏰 Зеленодольские кирпичи: Еграф Логинов и «МТ»

Сегодня ездили с женой в Зеленодольск — это небольшой город рядом с Казанью. Благодаря Олесе Балтусовой узнал о существовании там поразительного района «Полукамушки» — целый квартал исторической постройки, погружение в 19 век. Тихо, споконой, непуганные кошки, общительные местные жители.

В 1898 году дома на этом месте начало возводить Волго-Вишерское франко-русское акционерное общество, из-за этого этот посёлок в народе называли «французским». А позже, в 1929 году дома надстроили деревянным вторым этажом, после чего квартал получил название «Полукамушки». Кирпич «МТ» (307.42КБ)
Ложковое клеймо «МТ», кирпич в стене одного из зеленодольских домов

Район интересен сам по себе, но мне он мил ещё и кирпичными клеймами. Первое, «МТ» мало отличается от тех, что можно встретить в Казани — те же две буквы инициалов, разве что стиль непохожий. Если этот кирпич был произведён в Казанской губернии, то возможно он из Чебоксар, с открытого в 1883 году завода Тивриной Марии Александровны.

Такие клейма в этом районе редкость — я их нашёл всего несколько штук, а хорошо сохранились всего два. Логинов (120.22КБ)
Тычковое клеймо Логинова, завод в Малом Посаде

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

Надпись гласит «Кир. Зав. Еграфа. в 1873 г. Логинова. в М. Посаде». Из чего сразу становится ясно, что в неком Малом Посаде у некого Еграфа Логинова (это вариант имени Евграф) располагался кирпичный завод, учреждённый в 1873 году.

Очень надеюсь, что квартал не сломают, таких объёмных памятников старины в Татарстане очень мало, если вообще есть. Понимаю, что жить в таких домах людям сложно, но надеюсь город найдёт деньги на ремонт, а не на снос.
Комментировать
24 июля 2016 19:26

📟 До чего дошёл прогресс

Часы у официантки (47.66КБ)
Часы для вызова официанта в одном из кафе Зеленодольска

Сегодня фотографировал кирпичные клейма в одном из районов Зеленодольска, после чего мы с женой сели пообедать в местом кафе «Акинава» (рекомендую, кстати). Обратил внимание, что на руке у официантки необычные часы — они подают сигнал при нажатии кнопки на столе. Официантка всегда сразу понимает, что её зовут и с какого столика поступил сигнал.

Поразительно! У нас в Казани я такого не видел, а Зеленодольск — это небольшой город (менее 100 тысяч жителей) и там такое есть! Лучшее применение часов, которое я только видел!
4 комментария
24 июля 2016 18:55

🏰 Кирпичи «ПК», «ЕК», «МС», «ВП», «ИГ», «НЛ», «АР», «ИК», «СМ-I»

У читателя по моим постам может сложиться ложное впечатление, что кирпичных клейм в Казани очень мало. На самом деле, это совсем не так — клейма, если начать их искать, находятся постоянно. Просто я для поиска клейм не выделял специального времени, а вчера, наконец, решил это сделать. Публикую разом все находки, которые я сделал за несколько часов вчерашнего дня, исключая клейма тех производителей, которые встречались мне ранее (например, «ПЖ»). ПК (85.19КБ)
Кирпичное клеймо «ПК», дом буквально покрыт ими

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

Производитель, к сожалению, не известен. Я, было, предположил, из-за обилия клейм, что дом принадлежал какому-то кирпичному производителю, но нет — до революции им владела казанская мещанка Ирина Прокопьевна Борисова.
«ИК», «СМ-I» (106.84КБ)
Кирпичи «ИК», «СМ-I» и ещё один с нечитаемым клеймом

Этот дом на Некрасова, 32 уже несколько лет огорожен, но пройти к нему очень просто — через двор соседнего дом. Благодаря этому я подошёл совсем близко и обнаружил ещё три кирпичных клейма в штабелях — «ИК», «СМ-I» и что-то такое, что я так и не смог прочитать. Но судя по состоянию, это современные кирпичи. Кстати, «СМ-I» — неполное клеймо «КСМ-I» (скорее всего «Комбинат Строительных Материалов №1»). Клеймо «ЕК» (140.61КБ)
Несколько клейм «ЕК» на доме по Некрасова, 15

Ниже предыдущего по той же улице находится дом с клеймами «ЕК», заметить их непросто, их немного и сейчас они скрыты за остатками полисадника. Это клеймо, скорее всего принадлежит Ковалевой Екатерине Андреевне, она упоминается как кирпичный производтель в тех книгах, которые у меня есть дважды — в 1893 и 1916 гг. Её кирпичный завод располагался межу Устьем и Адмиралтейской слободой. Клеймо «МС» (137.78КБ)
Клеймо «МС» на стене дома по Пушкина, 26е

Если спуститься по Некрасова ещё ниже, то среди деревьев можно обнаружить дом №11, на стене которого я нашёл единственное малозаметное клеймо «МС», такие же, но в изобилии обнаружились на дальней стене заброшенного дома по Пушкина, 26е. Производитель неизвестен. Клеймо «ИГ» (142.52КБ)
Клеймо «ИГ» на стене дома по Пушкина, 26е

Там же, на Пушкина, 26е, в окружении «МС» видно великолепно сохранившееся клеймо «ИГ», правда, чтобы его сфотографировать, пришлось лезть на крышу пристроя, пока лез, впервые задумался о покупке палки для селфи, с ней было бы проще. Производитель неизвестен. «АР» (147.39КБ)
Клеймо «АР» по адресу Галактионова, 5

На стене дома по адресу Галактионова, 5 обнаружилось очень много клейм «АР», по всей видимости казанского купца Романова Александра Поликарповича, его заводы в Клыках подробно описаны почти во всех справочниках, первый завод основан в 1890 году. Клейма «АР», только более миниатюрные, я уже встречал. Клеймо «НЛ» (89.53КБ)
Тычковое клеймо «НЛ», на стене дома по Пушкина, 40

На стене джинсового магазина по Пушкина, 40, прямо слева от входа можно увидеть полустёртое клеймо «НЛ», если бы я не видел другие фотографии этого же клейма, вряд ли смог бы его прочитать. «НЛ» — это, скорее всего, казанская купчиха Лисицина Надежда Васильевна, её завод в Малых Клыках упоминается в справочниках, начиная с 1894 года. Клеймо «ВП» (69.26КБ)
Тычковое клеймо «ВП», на стене того же дома

В отделке окна того же дома по Пушкина, 40 можно обнаружить другое клеймо — «ВП», по всей видимости купца Павлова Василия Ксенофонтовича, его кирпичный сарай (как тогда называли небольшие кирпичные заводики) в Ометьеве был учреждён в 1908 году.
Комментировать
24 июля 2016 15:42

🏰 Кирпич «АР»

Кирпич АР (83.43КБ)
Кирпич «АР» на стене двухэтажного здания по ул. Ново-Песочная, 44

На стене пустующего здания по адресу ул. Ново-Песочная, 44 (прежние названия улицы — Новая Песчаная, Новопесчанная) нашёл очень неплохо сохранившиеся тычковые клейма «АР». Что интересно, они нетипично маленькие, таких я ещё не видел.

По дому информации в интернете нет, поэтому мне пришлось обратиться за помощью к казанскому журналисту и краеведу Льву Моисеевичу Жоржевскому, он по своим записям уточнил, что дом до революции принадлежал 34-му мужскому городскому начальному училищу и был построен в первой половине 1910-х годов.

Вероятнее всего «АР» — клеймо казанского купца Александра Поликарповича Романова, который открыл свой первый завод в 1890 году. Видимо торговля шла хорошо, так как в выписке из справочника 1903 года его завод в Клыках так же упоминается.
Комментировать
22 июля 2016 18:41

🏰 Кирпич «КШ»

Кирпич КШ (145.72КБ)
Кирпич с тычковым клеймом «КШ» в остатках стены старого здания по ул. Спартаковской

На остатке стены, которая на картах «Яндекса» имеет адрес Спартаковская, 43, обнаружил остатки клеймения «КШ». За прочтение точно не уверен, клейма плохие, зато их много, я посмотрел примерно десяток, поэтому мне кажется, что разобрал я верно.

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

Что интересно в этой же стене есть какое-то ещё клеймо, которое я вообще не смог разобрать или нормально сфотографировать — оно единичное и читается очень плохо (возможно первая «Б», а дальше вовсе не видно).
Комментировать
22 июля 2016 18:17

🏰 Кирпичи, пояснения

Похоже я очень неожиданно для читателей увлёкся кирпичными клеймами, не успев даже рассказать что-то об этом.

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

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

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

Теперь немного о том зачем это. Для всех, кто этим занимается, основная причина — нам нравится. Но практическая польза тоже есть — датировка зданий или каких-то событий, происходивших с ними.

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

Большинство клейм, которые я публикую — тычковые, много там не разгуляешься, на них ставятся как правило инициалы. Ложковые и клейма по постели чаще более подбробные, но находят их реже. Почему? Моё мнение такое. С постелью всё понятно сразу — она снаружи не видна, а с ложком причины чисто экономические — размер клейма больше, значит клише в изготовлении дороже и ставить его можно только прессом (из-за площади давления), тогда как простенькие клейма, я уверен, ставили вручную (читатели поправили меня — такие клейма наносились молоточком). Счётная метка (91.75КБ)
Счётная метка на одном из зданий Казани

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

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

Кирпичные клейма имеют давнюю историю, но в России они появились гораздо позднее, чем в Европе, Казани повезло ещё меньше — кирпичных зданий тут было всегда очень мало, сохранилось ещё меньше, поэтому царские клейма у нас примерно одного и того же времени — 19 век, начало двадцатого. Разумеется кирпич клеймили и позже — во времена СССР и клеймят до сих пор.
Комментировать
22 июля 2016 09:32

🏰 Кирпич «НЛ»

Кирпич «НЛ» (212.89КБ)
Тычковое клеймо «НЛ», очень похожее на «УЛ»

На правой стене здания без номера по улице Гоголя (находится между пятым и седьмым домами), нашёл тычковое клеймо «НЛ». Очень велик соблазн прочитать его как «УЛ» или «ЧЛ» из-за нечёткой первой буквы, но думаю, это всё-таки «Н».

Если это так, то это вероятнее всего клеймо Лисицыной Надежды Васильевны, которая по состоянию на 1897 и 1899 года владела кирпичными заводами в деревне Малые Клыки.
6 комментариев
21 июля 2016 15:04

💰 Тридцатый выезд за монетами

Результат выезда (43.09КБ)
Ожидаемо скромная добыча последнего выезда

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

Нашёл мало, впрочем когда-то очень радовался и такому. Слева направо: 1 копейка 1924 года, 2 копейки 1957, современные 10 копеек, пара «конин», перстень к камушком и рисунком, гильза калибра 7,62, свистулька от гармошки, непонятная штука, похожая на пуговицу, пряслице и серёжка.
2 комментария
19 июля 2016 21:28

💢 Проблема с переходом на PHP7: Memcached, часть вторая

В прошлый раз я писал о проблемном Мемкешд в ПХП7 и оказалось, что я не совсем прав. Проблема есть, но её корень я понимал неверно.

Я-то думал, что получение токена cas просто сломали при переезде на следующую версию ПХП, а оказалось это особенность — в ПХП7 используется третья версия модуля, а ней токен получается иначе — надо передать специальный параметр и после вызова токен будет в результирующем массиве.

Черновым кодом это выглядит примерно так (должно работать, но я его не запускал):
if (version_compare(phpversion('memcached'), '3.0.0-dev', '<')) {
	// работаем по-старому
	return $memcached;
} else {
	// возвращаем обёртку
	return new class($memcached) {
	    use \Core\ProxyTrait;

	    public function __construct($mc)
	    {
	        $this->setObject($mc);
	    }

	    public function get($key, callable $cache_cb = null, &$cas_token = null)
	    {
	        $result = $this->obj->get($key, $cache_cb, Memcached::GET_EXTENDED);

	        if ($result === Memcached::GET_ERROR_RETURN_VALUE) {
	            return false;
	        }

	        if ($result) {
	            $cas_token = $result['cas'];
	            return $result['value'];
	        }

	        return $result;
	    }

	    public function getMulti(array $keys, array &$cas_tokens = null, int $flag = null)
	    {
	        $result = $this->obj->getMulti($keys, Memcached::GET_EXTENDED | $flag);

	        if ($result === Memcached::GET_ERROR_RETURN_VALUE) {
	            return false;
	        }

	        if ($result) {
	            $values = [];
	            $cas_tokens = [];

	            foreach ($result as $key => $d) {
	                $values[$key] = $d['value'];
	                $cas_tokens[$key] = $d['cas'];
	            }

	            return $values;
	        }

	        return $result;
	    }
	}
}
Вся мякотка в последнем параметре Memcached::GET_EXTENDED, он заставляет возвращать соответствующие методы не искомое значение, а массив, содержащий в том числе и cas.

Неприятно, что в этой версии ПХП модуль для работы с Мемкешд помечен как «разработческий». В этом свете мне как-то неясна позиция тех, кто уверенно советует использовать ПХП7 в продакшне.
2 комментария
19 июля 2016 12:01

💢 Проблема с переходом на PHP7: Memcached

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

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

Оказалось, что в модуле Мемкешд для ПХП7 нет реализации получения токена cas в методах get и getMulti (наверняка нет ещё в каких-то), но мы их не используем. Это видно, например, по прототипу:
Method [ <internal:memcached> public method get ] {

  - Parameters [2] {
    Parameter #0 [ <required> $key ]
    Parameter #1 [ <optional> $cache_cb ]
  }
}
Как видите, параметра cas нет вообще (он должен быть последним). Это печальное обстоятельство подтолкнуло меня к исследованию и к ночи я сделал решение. Возможно кому-то пригодится:
class MemcachedPHP7
{
    use \Core\ProxyTrait;

    public function __construct($mc)
    {
        $this->setObject($mc);
    }

    public function get($key, callable $cache_cb = null, &$cas_token = null)
    {
        switch (func_num_args()) {
            case 1:
                return $this->obj->get($key);
            case 2:
                return $this->obj->get($key, $cache_cb);
            default:
                if ($this->obj->getDelayed([$key], true) === false) {
                    return false;
                }

                $res = $this->obj->fetchAll();

                if ($res === false || !$res) {
                    if ($cache_cb !== null) {
                        if ($cache_cb($this->obj, $key, $value)) {
                            $this->obj->set($key, $value);
                        }
                    } else {
                        $value = false;
                    }
                } else {
                    $cas_token = $res[0]['cas'];
                    $value = $res[0]['value'];
                }

                return $value;
        }
    }

    public function getMulti(array $keys, array &$cas_tokens = null)
    {
        if (func_num_args() === 1) {
            return $this->obj->getMulti($key);
        } else {
            if ($this->obj->getDelayed($keys, true) === false) {
                return false;
            }
            $res = $this->obj->fetchAll();

            if ($res === false) {
                return false;
            }

            $cas_tokens = [];
            $values = [];

            $results = array_column($res, null, 'key');

            foreach ($keys as $key) {
                $cas_tokens[$key] = $results[$key]['cas'];
                $values[$key] = $results[$key]['value'];
            }

            return $values;
        }
    }
}
Трейт ProxyTrait я тут не привожу, там идея простая — он тупо проксирует всё, что получает через магические методы __get, __set, __call и прочие, setObject — метод этого трейта. Очень удобно, если надо оставить всё как есть, за исключением каких-то методов.

В остальном всё основано на том, что в методе getDelayed реализация токена cas есть, его я и использую, чтобы заткнуть эту дыру в функциональности. Работает всё так же как в ПХП 5.6, за исключением того, что в методе getMulti нет реализации последнего параметра — флага, вместо этого всё работает так, как будто он установлен, это ничему не мешает.
8 комментариев
14 июля 2016 11:00

🏰 Кирпич «АС»

Кирпич АС (97.70КБ)
Обломок кирпича с тычковым клеймом «А.С.»

Прогуливаясь в обед около «Айти-парка», где я работаю, наткнулся на небольшой пустырь с развалинами некого кирпичного здания. Меня сразу привлекла явно дореволюционная кладка, решил посмотреть нет ли кирпичных клейм.

Конечно, все развалины я не облазил, но кое-что носком кроссовка поковырял и не безрезультатно — через какое-то время нашёл обломок кирпича с клеймом «А.С.» на тычке. Один из кирпичных исследователей в интернете пишет, что кирпичи с таким клеймом в Казани встречаются и он предполагает, что производил его кирпичный сарай Смирновой Александры Павловны.

К сожалению, никаких сведений на той странице больше не указано, зато один из местных жителей, который шебуршился неподалёку, поведал, что он на этом же месте набирал кирпичей на баню и нашёл целый кирпич с надписью на тычке «1887». Из той же он партии, что и «А.С.», естественно, неизвестно.
Комментировать
11 июля 2016 17:06

🏰 Кирпич «ПЖ»

Кирпич ПЖ (183.92КБ)
Красивое клеймо «ПЖ» на стене театра Тинчурина

На здании во дворе дома по адресу Жуковского, 2/11 нашёл красивое тычковое клеймо «ПЖ» — казанского архитектора Павла Тимофеевича Жуковского (первый завод был им открыт в 1859 году). Так же на этой стене много счётных меток.

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

И с принадлежностью стены непонятки — то ли это театр Тинчурина, то ли какое-то здание перед ним. Из-за заборов понять тяжело.
Комментировать
10 июля 2016 19:06

👴 Седина

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

И вот, то ли в этом, то ли в прошлом году, не заметил точно, седеть я всё-таки начал. Мало-помалу в небольшой бородке, которую я теперь ношу, прибавляется всё больше седых волос, несколько пробились в усах и на висках.

Что тому виной — возраст или ядрённые стрессы, которые я сейчас испытываю на работе, не знаю. Но похоже теперь седине я совсем не рад — выщипываю, когда вижу.
8 комментариев
8 июля 2016 21:39

👛 Чистка советских монет

Чищенный советский «никель» (79.36КБ)
Советская мельхиоровая монета — 10 копеек 1932 года

Я уже писал о чистке ранних «советов», но хочу ещё написать, так как мне очень нравится результат. На фотографии третья монета со вчерашней фотографии, оставленная до полного очищения в уксусе с солью, плюс натёртая содой.

Результат замечательный, да и сохран радует — каждую деталь видно очень хорошо, ну и монетка красивая.