Мои бирки из роддома
Мама в комплект к бумаге о моём рождении нашла ещё один удивительный артефакт — мои бирки из роддома. Там мама записана ещё с девичьей своей фамилией — Миронова (не успела к тому времени поменять).
Остальные надписи рассмотреть чуть сложнее — «род. 13/IX в 6 ч. 3?» (вроде должно быть в 6:30), «М3⁶⁰⁰» (это пол и вес). С обратной стороны на большой бирке есть ещё «к16
Наверное можно с небольшой натяжкой считать, что я родился под другой фамилией — Миронов. Чего только о себе не узнаешь в 40 лет.
Мироновы, кстати, у меня довольно изученная фамилия, проработаны с начала 18 века, более ранних документов архивах нет. Самый дальний известный предок по этой ветке — Егор Фёдорович, житель Письменской (sic) Ясашной слободы, родился в 1735 году, умер в один год с женой — в 1791, возможно это был несчастный случай или эпидемия.
Его потомок, мой прапрапрапрапрадед Мирон Егорович (1764—1841) переехал из своего родного села в Новую Письмянку — вероятно вскоре после её образования, а позже, в
Мирон Егорович, кстати, является родоначальником фамилии — у меня этот момент хорошо прочерчивается, когда стали раздавать фамилии, многие взяли как фамилию имя прадеда или прабабки. Так в моём дереве появились Мироновы, Онуфриевы, Евдокимовы, Меркуловы и Макридины (Макрида — женское имя).
Попутно замечу, что из этого факта можно сделать интересный вывод. У Мирона есть два известных мне брата — Григорий и Нефёд, скорее всего их потомки взяли фамилии свои́х прадедов и стали Григорьевыми и Нефёдовыми. Может я их каждый день встречал на улицах родного города и даже подумать не мог, что они могли бы быть моими родственниками.
RabbitMQ и место на диске
Мы с сервером очередей RabbitMQ сталкиваемся редко — на нём исторически один продукт, остальные используют другой сервер. Впрочем, есть он не просил, проблем не обнаруживалось. А тут на днях появились странности — сервер на одном из проектов периодически как будто подвисал, принимал соединения, но команды словно «замерзали». Перезапуск помогал, но ненадолго.
Оказывается, каждые десять секунд RabbitMQ проверяет наличие свободного места, если оно меньше лимита (в нашем пакете,
Изучения логов результата не проносило и немудрено — сообщение о проблеме очень быстро оказывалось погребено под уймой другой информации, а оно, если лимит быстро исчерпывается, проскакивает ближе к началу старта сервера, очень легко пропустить. Помогло чтение форумов и эксперименты.
«Мурзилка»
Пару месяцев назад наткнулся
Порылся в интернете, убедился, что экземпляры самые ходовые, но поиск прошёл не без пользы — положил себе в закладочки прекраснейший сайт «Журналы СССР», а там перешёл на архив журнала «Мурзилка» — в детстве мы его выписывали, смотрел его с большим удовольствием.
Центральным персонажем журнала был Мурзилка — такой жёлтый йети в берете, шарфе, с фотоаппаратом. Он там постоянно мелькал на страницах.
Архив на сайте аж с 1924 года, можно даже первый номер посмотреть, ну я и посмотрел. Оказывается эта стрёмная собака на скриншоте — Мурзилка образца 1924 года, привычный мне персонаж появился только в 1937 году.
Согласно этому апокрифу, Мурзилка — четвёртый щенок собаки Жучки, гадкий утёнок в семье:
Весь он был
какой-то лохматый, шершавый; на мордочке у него шерсть торчала вроде стариковской бороды; одно ухо висело вниз, другое — было поднято вверх.
Очень рад, что эту криповую собаку сменил жизнерадостный зверёк непонятной породы — у меня в детстве было меньше поводов вскрикивать в ужасе по ночам.
Как проверить не битая ли картинка
По работе понадобилось из командной строки проверить несколько тысяч картинок на корректность — со смертью носителя часть картинок разрушилась. Чтобы их найти, придумался такой незамысловатый способ:
convert path_to_image null: 2>&- || echo File is corruptedЕсли картинка path_to_image разрушена, то этот однострочник выведет «File is corrupted».
Утилита convert входит в состав пакета «Imagemagick» и достаточно распространена.
Принцип понятен, наверное: я прошу утилиту сконвертировать файл, указанный первым параметром, в псевдоформат NULL (указан до двоеточия во втором параметре) — это специальный формат используется, когда результат конвертации не нужен — обычно для замера производительности.
Входная картинка полностью разбирается кодеком, если это не удаётся сделать, то convert поругается в поток вывода ошибок (который я закрыл) и вернёт код возврата отличный от нуля, на что среагируют две вертикальные черты, которые запустят вторую команду.
Конечно, картинка должна быть в формате, который утилита понимает, но всё хоть немного распростанённое туда входит.
И ещё страховые доски Казани
Мой прошлый пост про страховые доски Казани заинтересовал ещё одного казанского коллекционера, который сам со мной связался и передал адреса ещё нескольких досок. Две разновидности мне уже попадались, а остальные вижу «в дикой природе» в первый раз.
Некоторые доски очень неудачно висят и чтобы их сфотографировать, пришлось одалживать довольно серьёзную оптику у моего приятеля (Р. Х., спасибо!), он же потом вытянул из равов то, что не совсем стыдно показывать.
Две доски уже мне знакомого общества «Россия»; разной формы — круглая и овальная. Общество учреждено 29 марта 1881 года, находилось
Три почти одинаковые (за исключением состояния) таблички «ЗАСТРАХОВАНО ВЪ СѢВЕРНОМЪ ОБЩЕСТВѢ». Опять же знакомое уже страховое общество. Такое название оно получило в 1879 при переезде из Петербурга в Москву.
Первый новичок — табличка «Русского страхового общества», ниже надписи указан год учреждения — 1867, но название, как на табличке, общество получило позднее — в 1896, базировалось
Звезда настолько сильно ассоциируется у меня с СССР, что я было подумал, что табличка советская. Но коллекционеры уверили меня, что это не так. Иногда звезда — это просто звезда.
Зато следующая табличка действительно советская, с серпом и молотом. Надпись по кругу видна плохо, там — «Государственное страхование». Такой дизайн табличек этой организации был
Кстати, если присмотреться, видно — раньше на этом месте висела другая табличка, проглядывает более светлое пятно. Судя по контуру, там раньше была доска «Российского транспортного и страхового общества».
Ну и звезда
С днём Победы! ★
Автоматическая реставрация фильмов
Помните
Привет
Вверху закриншотил один из примеров. У меня тут в блоге простая картинка, а в исходной статье можно подёргать бегунок
Не всё пока идеально, огрехи на статичной картинке отлично видны — с кожей матроса случилось
В общем, необыкновенно практическая демонстрация того как нейронные сети могут улучшать качество изображения. Осталось
Дореволюционная библиотека
Ездил сегодня поискать монеты, и в одной из деревень привлёк внимание заброшенный дом немного на отшибе. Снаружи обычный русский дом, с печкой, ещё даже крепенький, двери нараспашку. Никогда не упускаю шанса заглянуть в такие, особенно если не требуется усилий, чтобы попасть внутрь.
Внутри ничего достойного внимания не было, кроме шкафа за печкой, а в шкафу —
Всё, что лежит на диване на первом снимке — дореволюционные издания на татарском, записанные арабским алфавитом. Целая библиотека, всё отпечатано в Казани.
Одна из книг, кстати, обёрнута приказом
Книги я сложил в мешок и забрал с собой. В ближайшее время их разберут два специалиста, которые умеют читать арабский алфавит, после чего будем думать куда их можно будет пристроить.
Функция sleep и сигналы
Век живи, век учись. Вот уж не знал, что при получении сигнала программой на ПХП, моментально прерывается выполнение функции sleep (и родственных ей time_nanosleep и usleep):
$ php -r 'pcntl_signal(SIGUSR1, "_"); var_dump(sleep(PHP_INT_MAX));' &
[1] 3177
$ kill -USR1 3177
$ int(4294967288)Вообще в Си так же, но где ПХП и где Си. Как и в Си, назад возвращается количество секунд, которые функция не «доспала» (time_nanosleep возвращает массив из секунд и наносекунд, а usleep — NULL). Правда под Виндой есть особенность — sleep при «недосыпе» всегда возвращает 192 (значение константы WAIT_IO_COMPLETION).
Любопытное исключение из правила — time_sleep_until, она сигналы игнорирует. Так что если вам нужна гарантированная по времени задержка, используйте её или напишите обёртку:
function bulletproof_sleep(int $seconds): bool
{
$period = ['seconds' => $seconds, 'nanoseconds' => 0];
while (array_sum($period) > 0) {
$period = time_nanosleep($period['seconds'], $period['nanoseconds']);
if (is_bool($period)) {
return $period;
}
}
return true;
}Модуль PHP на Go
Потешную штуку показали на днях —
Пока ехал домой, думал что бы такое обернуть.
Ссылка давно протухла, но «Вебархив», к счастью, имеет копию страницы — статья называется «Ridiculous
Программа там на Си, я её минимально подпилил, чтобы она нормально компилировалась, завернул через cgo в Гоу, а оттуда при помощи
Заодно набросал небольшой бенчмарк и залил всё на гитхаб, если
Зато попробовал
СравниТакси
В рабочие дни я минимум два раза езжу в такси — на работу и обратно.
Так как основной целью является экономия, я всегда просматриваю предложения нескольких агрегаторов. Давно вертелась мысль это
Отдельной строкой — не знаю на чём они зарабатывают, но приложение бесплатное, никаких встроенных покупок или рекламы.
Аудиоплатье
Помните платье, которое поссорило интернет? Одни видят его
Я отчётливо слышал «лорел»
Можно предположить, что дело в этих щелчках, в них содержится
Музей Нацбанка РТ
Очень люблю бывать в музеях, а Казань, для человека с такими пристрастиями, —
От приятеля узнал, что сегодня, в «ночь музеев» можно будет пройти в музей отделения Национального банка в Татарстане — это такое помпезное здание по адресу Баумана, 37. Если вы бывали в Казани, наверняка проходили мимо.
Там очень серьёзный пропускной режим и в другие дни его посетить почти невозможно, если только там не работаешь.
Музейчик небольшой, в основном в нём монеты и несколько предметов старины, но взглянуть стоило. Выше, например, монеты Екатерины I, её
Я
На фото выше слева можно заметить раннесоветский пятак, а справа — профиль Николая Второго на серебре. По музею,
Банкнот в музее тоже немало, жаль, опять же, всё за стеклом, фотографии на смартфон не особо удаются, снимок выше
В музее сегодня проводили экскурсию,
Выше, судя по надписи (action au porteur), — акции на предъявителя, рядом с ними лежало ещё несколько занимательных бумаг и поясняющая надпись «коллекция ценных бумаг, выпущенных организациями г. Казани на рубеже 19—20 веков, передал в дар Музею Д. В. Железняк».
Помимо денег и редко выставленной техники в музее сегодня было две инсталляции. Та, что на снимке выше, по всей видимости показывала рядовых банковский работников прошлого в их естественной среде — за скучным казённым столом со счётами, арифмометром и прочим.
Вторая располагалась в соседней комнате, там в углу
Вообще у меня есть ещё несколько фотографий, остатки можно посмотреть в «Фейсбуке». Раньше выкладывал на «Яндекс.Фотки», но этот сервис, как вы возможно знаете, приказал долго жить, а ничего нового я пока не подыскал.
Как сконвертировать bytea
Пока сегодня ехал домой с военного поиска (я в таком уже участвовал в прошлом году), написала в «телеграм» дипломница — она не смогла разобраться как сконвертировать в буквы формат постгреса bytea, в котором мы ей выгрузили
Отдельно про поездку рассказывать не буду, я вообще подумал, что пора завязывать с публикациями на такие темы, а пока ехал, накидал на коленке функцию на Пайтоне, положу сюда, чтобы не потерялась:
def decodeBytea(bytes: bytearray, charset: str) -> str:
if bytes[:2] == b'\\x':
return bytearray.fromhex(bytes[2:].decode()).decode(charset)
else:
raise ValueError('Invalid format')Формат немудрёный — впереди
99 бутылок: Rust
64. Rust — довольно известный язык, на слуху, очень интересный своими концепциями. Пока писал «песню о пиве», даже захотелось познакомиться с ним поближе.
Язык является «близким к железу», нацелен на безопасность и многопоточность — немало ошибок, которые приводят к уязвимостям в программах на Си, тут выявляются ещё на этапе компиляции. Правда за это приходится платить, порог входа в язык очень высокий.
Ниже программа на этом языке, но выбранный формат позволяет показать лишь маленькую толику фишек языка.
Наверное опытные программисты уже выделили знакомые по другим языкам части программы, но некоторые вещи возможно требуют пояснений.
Тип u8 — это тип «байт», match — конструкция проверяющая совпадение с образцом, мощная вещь, умеет сопоставлять что угодно — значения, типы, реализованные методы и так далее, mut — ключевое слово, указывающая, что переменную можно модифицировать,
// Beer song. Evgeny Stepanischev, 2018
fn bottles(beer: u8) -> String {
match beer {
0 => "no bottles".to_string(),
1 => "1 bottle".to_string(),
_ => format!("{} bottles", beer)
}
}
fn main() {
let mut beer = 99;
while beer > 0 {
println!("{} of beer on the wall, {0} of beer.", bottles(beer));
beer -= 1;
println!("Take one down and pass it around, {} of beer on the wall.\n", bottles(beer));
}
println!("No more bottles of beer on the wall, no more bottles of beer.");
println!("Go to the store and buy some more, 99 bottles of beer on the wall.");
}«Гилан»
Во время поездки с военными поисковиками в прошедшие выходные, в правый глаз надуло
На работу я решил себе тоже
Купил «Гилан», объёмистая солидная упаковка, приличная стоимость. После распаковки оказалось, что бо́льшую часть коробки занимает воздух — сама по себе бутылочка содержит милипизерное количество жидкости, да ещё и нижняя её часть —
Повёлся на объём ?
Переезд на HTTPS
Это меня раздражает. Обычно это автоматизируют, но у «Мастерхоста», где я сейчас беру хостинг, такой автоматизации нет, а самому мне её костылить претит. Поэтому я просто заплатил «Комодо» через
При этом оказалось, что движок («Эгея») отрицательно относится к тому, чтобы сайт жил сразу по двум протоколам, поэтому я сегодня настроил редирект. Надеюсь у всех появился вверху зелёный замочек. Если у вас он
Несколько прокси в «Телеграме»
В черновиках несколько дней пролежал пост возмущения отсутствием в «Телеграме» поддержки нескольких прокси, а у меня их несколько — парочка частных и один корпоративный. Бывают проблемы с доступностью, поэтому приходится переключаться, неудобно.
Сегодня с удовлетворением стёр его из черновиков — с очередным обновлением «Телеграма» поддержка появилась, правда не без нареканий, — в мобильном клиенте, если выключить прокси, то обратно он уже не включается, но это поправят, конечно же.
Кстати, появился
Копирование при записи и reset
Многие ли увидят тут проблему?
function array_first(array $array)
{
return reset($array);
}Проблема в том, что reset меняет внутреннее состояние массива, а значит вызывает копирование при записи — в этот момент массив будет удвоен. Это небольшая неприятность для небольших массивов, но если в нём миллион элементов…
Короче, можно не заметить как исчерпаешь память. Кстати, ПХП тут мог бы делать оптимизацию (но не делает) — не менять указатель, если до вызова reset он был на первом элементе. В этом конкретном примере такая оптимизация иногда могла бы экономить память.
Но в общем случае использование тут reset — плохая идея, на мой взгляд, лучше сделать так:
function array_first(array $array)
{
return current(array_slice($array, 0, 1));
}Ту же проблему (с удвоением массива) содержит в себе и до сих пор встречающаяся итерация через each или next — вызов этих функций так же модифицирует внутренний указатель массива. Впрочем лечится легко — использованием foreach.
К слову, в ПХП 7.2 функция each объявлена устаревшей.
Люк города Владимир
Как все наверное заметили, мне нравятся различные исторические детали городской среды — кирпичные клейма, страховые доски и прочие анахронизмы мира гипсокартона, стекла и пластика. Причём, если не знать куда смотреть, то можно годами ходить мимо таких деталей, ничего не замечая.
В последнее время стал смотреть на люки. Вроде не заметить их трудно,
На днях попался пусть не исторический, но тоже интересный люк — из Владимира, это 600 километров от нас! Больше я по городу таких не видел, видимо единичный экземпляр, как он мог сюда
Счётный пфенниг
Я почти перестал писать о монетном поиске — надоело, всё довольно однообразно — помыл, сфоткал, описал, похоже на гроссбух, а не блог. Да и сами выезды не отличаются разнообразием — как правило я еду
С пфенингом выше связана небольшая история, может быть не очень интересная, зато немного разбавляющая некоторую рутинность записей на эту тему.
В тот день я выезжал с военными поисковиками, моё участие в этих мероприятиях заключается в поиске личных вещей вокруг захоронений, а так же разведке — случайные пробы там и тут иногда помогают выявить
По приезде на стоянку я кинул свои вещи около самой большой палатки и больше не подходил к ним в течение дня — сначала был сильно занят около поднимаемых скелетов, потом мы с одним из поисковиков, моим приятелем поехали на машине подальше — занялись случайным поиском. Тем временем, о чём я не знал, основной лагерь снялся с места и уехал.
Ближе к вечеру мы вернулись — лагеря нет, вещей тоже. Позвонили уехавшим, те сказали, что мои вещи спрятали у приметного столба, под дровами, я туда — там ничего. Загрустил. Начал вспоминать, что у меня там довольно дорогой пинпоинтер и беспроводные наушники от металлоискателя.
Сидим с приятелем в машине, грустим, думаю что делать. Тем временем раздаётся ещё один звонок, новая информация — выяснилось, что другая группка, снимаясь с лагеря, обнаружила под дровами вещи и сдала их на хранение
Созвонились, приехали, забрали вещи. Женщина и её муж оказались удивительно сердечными людьми, я им рассказал о своём хобби, они в ответ — что в N. почти каждый владелец участка постоянно находит монеты, кольца и прочие старинные вещи — у них у самих целая горсть таких.
Вынесли показать, жаль я не сфотографировал, помню там было два кольца, несколько пфенингов и набор распространённых монет — копейки Николая Второго, полушка Анны Иоанновны и тому подобное. Пригласили у них походить — огород был не засеян, они как раз готовились в тот день сажать картошку.
Мы и походили — нашли с приятелем по счётному пфенингу, плюс я нашёл медную пуговку без опознавательных знаков. Приятная память о случайно знакомстве.
Зоотроп

Устройство на гифке носит греческое название «зоотроп» («жизнь» плюс «вращение»), думаю многие видели похожие в исторических фильмах. Если его раскрутить, то через щель можно наблюдать небольшой закольцованный «мультфильм».
Телефоном при видеосъёмке в фокус движущиеся картинки поймать не удалось, в жизни они отчётливые, а тут автофокус всё время наводился на переднюю стенку. Кроме того видно
Этот зоотроп продаётся в виде набора и собирается минут за десять. Правда детали иногда не совсем друг к другу подходят, но специально для таких случаев в наборе есть наждачная бумага. Самое сложное — соединить верхнюю и нижнюю часть барабана вместе, тут одной наждачкой не обошёлся, пришлось применять силу, рискуя сломать всю конструкцию.
Сразу вспоминается бородатый анекдот:
Купили американцы у русских новый истребитель. Собрали — получился торпедный катер.
Разобрали-собрали — катер.Разобрали-собрали — катер. Зовут на помощь русских, мол, не получается. Русские присылают своего специалиста, тот запирается в ангаре. Через три дня открывает ворота — стоит истребитель. Американцы недоумевают, получался же катер. Русский: «написано же в инструкции — перед сборкой детали обработать напильником».
В общем, наждачку положили не зря.
«Мультфильмов» в наборе несколько, плюс есть размеченные ленты для самостоятельного творчества, но не думаю, что они нам скоро пригодятся. Надеюсь дочку готовыми движущимися картинками порадовать, утром посмотрим интересно ли ей будет, если нет, отложим игрушку «на вырост», не пропадёт.
Если кому интересно, весь фарш был куплен сегодня на казанском фестивале «Духов день», фестиваль кончился, но у мастера, которые его делает, есть магазин на «Ебее», цена там правда выше ярмарочной — я покупал за 950 рублей.
Стехи
Обычно я
Например, вот её стихотворение «Мон шер»:
Ты весь как длинная розруха
И рот за шей какой дурак
Не про шептай любовь Мне ухо
Не буду Я твоей не как!!
Другой на мыслях у Меня ведь
А ты тут ломишся ко Мне
Изволь мон шер Меня оставить
И про зебатся в стороне!!
Одиннадцать стихов в таком стиле. Если это троллинг, то снимаю шляпу перед талантом!
Кирпичи Костина и VICTORIA
Волею судеб познакомился с хозяевами одного из деревянных домов по улице Волкова, у нас в Казани они уже редкость, к сожалению. Договорился поискать у них во дворе артефакты, а в процессе один из хозяев показал кирпичи, которые выкопал в огороде.
Первый обломок кирпича — печной, с узнаваемым клеймом Ивана Афанасьевича Костина, их у нас много попадается в Казани, причём клейма на них самых разных вариаций. Правда такой мне ещё не попадался. Завод был открыт в 1862 году и находится в Нижнем Новгороде.
Второй кирпич так же огнеупорный, с клеймом VICTORIA, такие я ещё не видел. В интернете высказываются две теории происхождения. Согласно первой этот кирпич произведён в Англии, но верится с трудом, где Казань и где Англия, согласно второй — это подделка под Англию, которая производилась на одном из заводов в Боровичах (это около Великого Новгорода).
До Боровичей более 1300 километров, не ближний свет, но могли по Волге доставлять — в этом уже ничего невероятного нет.
Урановые ломы в ртути
Помните один из самых знаменитых мемов с башорга — урановые ломы в ртути?
ya_frosia: Связка ломов, как правило, тонет
alexei: ya_frosia: Но в ртути прекрасно плавает
zoogenic: alexei: Но если ломы урановые, то и во ртути тонут
alexei: zoogenic: сам топи урановые ломы в ртути
Маньяки с канала «Химия — Просто» показывают как тонет уран в ртути в реальной жизни.