В пятницу в Лениногорск

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

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

Можно было бы оставить и на подольше, но у нас оплаченный лагерь от кружка карате, туда она тоже очень хочет.

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

Обратно, думаю, поедем вечером субботы, чтобы был один день перевести дух перед работой.

Несколько нефтедобывающих вышек на зелёном лугу с кустарниками и деревьями на фоне голубого неба с облаками.
Узнаваемые края — вокруг Лениногорска часто встречаются нефтекачалки

2 комментария

Тачскрин на Линуксе

Два последних дня ковырял по работе планшет фирмы «Дигма» — это китайское го… годное вполне за свои деньги изделие поставляется с ОС «Виндоуз». А наша задача была показать на нём один из отечественных дистрибутивов Линукса.

Линукс встал довольно легко, но вот проблема — прикосновения к экрану не давали никакого эффекта. Вот этим я героически два дня и боролся.

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

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

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

Часть плёнки у нас оказалась под рамкой, так что ноль координат плёнки и экрана не совпадают, кроме того, разрешающая возможность тоже разная. Экран, например, 1366 пикселей шириной, а плёнка даёт 740. Как пересчитываются координаты нажатия на плёнку в экранные, чтобы операционная система поняла куда пользователь нажал?

Для этого в Линуксе задаётся трансформационная матрица («Coordinate Transformation Matrix»), на которую умножаются абсолютные координаты, в которых датчик экрана уловил нажатие. С её помощью можно сдвигать координаты, сжимать их и растягивать, а так же поворачивать на 90°, если датчик стоит так, что у него перепутаны оси — это вполне стандартная математика, которую многие могут помнить по школе.

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

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

Правда в нашем случае она не помогла — компенсировать «слепое пятно» она не в состоянии, для этого нужно чудо или более подходящий драйвер.

Оставить комментарий

Стилобат

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

Навигационный знак: «ПОДЪЁМ НА СТИЛОБАТ», «ВЫХОД К ПОДЪЕЗДАМ Р. ГАРЕЕВА, Д. 105 Б» с иконкой лестницы и человека, логотип «СУВАР СДЕЛАНО».

Оставить комментарий

«Х» против «Л»

Тут в заметке про переставленные «АХ» и «АЛ» у одного из читателей возникла дельная идея — возможно перестановка этих букв отражает статистику. Не может ли быть «АХ» более частотной, чем «АЛ»?

Я взял базу татарстанского документооборота (всё-таки в Татарстане набор фамилий отличается от центральной России) и посмотрел сколько раз встречаются эти буквы на второй позиции. В базе полторы тысячи человек, довольно репрезентативная выборка.

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

Скриншот терминала с SQL-запросами: подсчёт общего числа записей в таблице usr (1522219) и распределение по первым буквам имени — 42309 на «л» и 16144 на «х».

Но позже, когда пошёл на обед, я понял, что задачу решил неправильно. Зачем смотреть только на вторую букву? Вторая буква нам интересна только в контексте. В общем, пересчитал. Встречаемость «АЛ» в Татарстане — 11534, «АХ» — 14153, таким образом, версия имеет право на существование.

2 комментария

Посещал ли пользователь сайт?

Атака не работает — в браузерах давно реализована защита, у меня идея «сработала» в силу того, что я не выполнил все необходимые проверки.

В прошлом было достаточно много методов определить ходил ли пользовать на какой-то сайт или нет. В основном, идея была проста: у себя на сайте через CSS каким-то способом выделяем посещённые (:visited) ссылки — например, делаем таким ссылкам шрифт больше, а потом через ДжаваСкрипт смотрим у каких ссылок ширина стала больше расчётной.

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

Но недавно меня осенило, что есть способ обойти эту защиту!

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

Я попробовал сделать это с «Гитхабом». Самый большой файл, который загружается там с первой страницей — vendors-node_modules_github_mini-throttle_dist_index_js-node_modules_primer_octicons-react_di-b40d97-9b98c5140e22.js. Занимает он 136 килобайт, вполне подходящий размер.

Как же определить момент когда он загрузится? Если посмотреть внутрь, видно, что он после скачивания создаёт свойство webpackChunk в объекте globalThis. Если перехватить обращение к этому свойству, можно понять, что файл загружен:

const t = new Date();
Object.defineProperty(globalThis, 'webpackChunk', {
  set: function() {
    console.log(new Date() - t);
  }
});

Ниже этого кода подключаем загрузку указанного файла прямо с «Гитхаба» через тег <script> и дело в шляпе.

Я проверил, если очистить кеш браузера, то файл у меня загружается примерно за 100—400 миллисекунд, если берётся из кеша — это 0—12. Легко отличить одно от другого.

10 комментариев

Фонтан Лениногорска

Наконец-то в этот раз дошли до фонтана в Лениногорске. Очень хотелось его повидать — последний раз вживую я его видел в 90-е должно быть.

Помню о нём две вещи.

Во-первых, в моём детстве, на холме рядом выкладывали в сезон живыми цветами текущую дату. Я думал их каждое утро выкапывают и пересаживают, но потом как-то рано шёл мимо и увидел, что там просто переставляют утопленные в землю специальные ящички.

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

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

Добавлено: мне уже писали, что где-то в нулевые эту скульптурную группу в фонтане заменили на какой-то позорный шар. Жители тогда возмутились и власти города вернули всё как было. Но, сравнивая то, что я сфотографировал вчера с фотографией из 1970-х, я понимаю, что всё, вроде, похоже, да не то же самое. Грустно, но видимо вернули не те же самые скульптуры, а сделанные «по мотивам».

Оставить комментарий

«Простая песенка»

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

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

Виниловая пластинка с надписью «Простая песенка», муз. К. Молчанова, сл. Я. Досталь, исп. В. Трошин, инстр. секстет; группа III, номер 1804, цена 5р.70к.
«Простая песенка», пластинка фабрики «Канцкультизделий» Ташгорисполкома (УзССР)

Оставить комментарий

Розетка для тревожных людей

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

Белая электрическая розетка с тремя гнездами и индикатором, установленная на бежевой стене.

13 комментариев

«От слова совсем»

Я думал, что фраза «от слова совсем» — недавнее приобретение в русском языке. Сегодня смотрели с семьёй фильм 1994 года, — «Маска» с Джимом Керри, и там оно используется где-то в начале фильма.

Фильм переводной, конечно, но перевод, судя по звучанию, тоже из тех времён. Да и кто стал бы сейчас такой старый фильм переозвучивать?

Оставить комментарий

Мистер Среда

Иногда смотришь на некоторых людей и думаешь, что их сознание напоминает сказку «Двенадцать месяцев» — в голове у них лес, зима и костёр. Перед костром сидят мистер Понедельник, Вторник, Среда, Четверг и Пятница.

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

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

Дед Мороз в синем кафтане и шапке стоит среди детей в народных костюмах у костра на снегу; дети держат корзины, цветы, ветки, некоторые в венках, все смотрят на Деда Мороза.
Открытка «Двенадцать месяцев», рисунок Г. О. Валька, 1956 год

Оставить комментарий

Опять чинил PogodaStatusBar

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

Строка состояния редактора кода: город Казань, температура 29°C, иконка солнца с облаком, число 3, зелёный индикатор, строка 127, столбец 1.
Внешний вид плагина на настоящий момент

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

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

Я перебрал несколько малоизвестных сервисов, пока, наконец, не увидел, что страница yandex.ru/tune/geo/ содержит в себе необходимый номер. Этого хватило, чтобы починить показ пробок.

С «Гисметео» пришлось повозиться. Не нашёл официальную информацию о каких-либо АПИ, которые можно вызвать без токена, но внутри погодного плагина для браузера нашёлся адрес services.gismeteo.ru/inform-service/inf_chrome/forecast. В нём есть всё что нужно — текущая температура и закодированная иконка погоды.

Определить номер города в формате «Гисметео» помогает сервис www.gismeteo.ru/rmq/search/{название}/1/, куда я подставляю название, полученное от «Яндекс.Пробок» — там он возвращается вместе с остальными данными.

Оставалось только расшифровать иконку погоды. В документации есть часть описания (остаток можно понять, скачав с «Гисметео» значки погоды), выглядит всё несложно. Например, d.r3 означает «день» (day) и «дождь максимальной интенсивности» (rain 3).

Поскольку у меня Юникод, в нём есть не все необходимые значки, я сделал вот такой объект, содержащий признаки, которые позволяют мне выбрать какую иконку показать:

_icons = {
    "🌞": {"d"}, # day
    "🌙": {"n"}, # nite
    "☁️": {"n", "c"}, # night, cloud
    "🌧": {"rs", "c", "r"}, # rain+snow, cloud, rain
    "🌤": {"d", "c"}, # day, cloud
    "🌦": {"d", "r"}, # day, rain
    "🌩️": {"c", "st"}, # #day, storm
    "⛈️": {"c", "st", "r"}, # cloud, storm, rain
    "🌨": {"c", "s"}, # cloud, storm
    "💨": {"mist"}, # mist
    "⚡️": {"st"}, # storm
}

И вот такой простой алгоритм для выбора иконки:

def _getStatus(self, coded_weather):
    codes = {x.strip("0123456789") for x in coded_weather.split(".")}

    max_icon = None
    max_score = 0

    for icon, code in self._icons.items():
        result = codes & code
        score = sum(len(x) for x in result)
        if score > max_score:
            max_icon, max_score = icon, score

    return max_icon

Идея простая — чем больше значков совпало, тем лучше; если совпал значок с более длинным названием (st, mist), считаем его более конкретным и важным.

4 комментария

Штурвал Бауэра

Продолжаю потихоньку описывать то, что удалось подержать в руках в музее села Куралово. На этот раз это штурвал. Он совсем небольшой, диаметр точно оценить не берусь, но что-то около 30—35 сантиметров.

Штурвал совсем хлипкий, держать его в руках было страшновато — вдруг развалится. Я это обнаружил уже после того, как взял, иначе бы оставил его в покое. На штурвале неплохо видно табличку, хотя некоторые слова едва угадываются. Погадав на буквах, я выяснил, что там написано — «Fr. W. Bauer, Steuerradsfabrik, Vegesack (Bremen)».

В 1906 году Фридрих Вильгельм Бауэр основал в районе Фегезак города Бремен столярную мастерскую. Находилась она по адресу Везерштрассе, № 8/9.

Со временем мастерская разрослась и стала единственной в Германии фабрикой по производству штурвалов и приборов управления. Со времени своего существования фабрика выпустила более ста тысяч штурвалов, в том числе для легендарных быстроходных лайнеров «Бремен» и «Европа» компании «Северогерманский Ллойд».

В 1966 году завод был заброшен.

Деревянное рулевое колесо корабля с шестью рукоятками и металлической центральной частью, установленное на подставке перед размытым фоном с морскими мотивами.
Штурвал с полустёртым шильдиком «Fr. W. Bauer, Steuerradsfabrik, Vegesack (Bremen)»

2 комментария

Малефисента

Странно, что некоторые очевидные связи не улавливаешь буквально годами, если не десятилетиями.

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

Титульный лист первого тома «Молота ведьм» (Malleus Maleficarum), изданного в Лионе в 1669 году, с гравюрой и библиотечным штампом.
«Malleus Maleficarum, Maleficas, & earum hæresim, ut phramea potentissima conterens», Лионское издание 1669 года

Полное его название «Malleus Maleficarum, Maleficas, & earum hæresim, ut phramea potentissima conterens», переводящееся как «Молот Ведьм, уничтожающий Ведьм и их ереси, подобно сильнейшему мечу». Сейчас я его из «Википедии» переписал, а в такси вспомнил примерно.

Когда я про него вспомнил, только в этот момент понял, что латинское слово «maleficārum» в названии, которое означает зловредную колдунью, родственно имени «Малифисента» из диснеевской сказки «Спящая красавица».

Оставить комментарий

Ещё дочкино

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

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

Рисунок на деревянном столе: два силуэта в развороте, слева — «АТОМ», справа — «ОБЛАКО», между ними — фигура за столом.
Пару дней назад дочка нарисовала для меня любовь в виде картинки и подарила. Это жених и невеста

Своей маме:
— Я тут подумала, что мне больше нужна ты, чем артефакт какой-то…
15.03.2023

⁂

— Мне приходится скрываться от мира…
— В каком смысле, малыш?
— Ну, я хорошо пою, но мне не хочется показывать свой талант, мне не нужна слава, я хочу быть просто девочкой, которая поёт…
15.03.2023

⁂

Спрашивает у мамы:
— А ты когда-нибудь задумывалась о том, зачем жизнь, если через миллиарды лет жизни нигде не будет?
06.08.2023

⁂

Дочка выпила полкружки кофе у подружки на ночь и борогозит. Кричу ей в другую комнату:
— Дооочь, ты собираешься спать?
— Да!
— А когда?
— Через пять часиков, может быть попозже!
12.04.2024

⁂

Дочь после просмотра фильма «Мэри Поппинс» 1968 года:
— А я догадалась, перемены какого ветра ждала Мэри Поппинс!
— Какого, малыш?
— Ветра атмосферы в доме! Плохие отношения сменились на добрые и Мэри Поппинс стала не нужна!
— Что-то я об этом так никогда не думал. А где ты услышала эту мысль?
— Нигде, сама так подумала.
08.05.2024

⁂

Прислала мне аудиосообщение с картинкой:
— Папочка, а можешь мне вот этот мультфильм найти? Бабушка и дедушка не могут…
— Дочь, это «Отель Хазбин», он только для взрослых — «18+» или около того.

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

⁂

— Мне со своими троюродными больше нравится играть!
— Надо же, почему?
— Потому что у них телефонов нет!.. Если телефоны есть, это вообще беда! Уткнутся в свои аппараты и не оторвёшь их!
19.06.2024

Оставить комментарий

На что вы до сих пор держите обиду…

На «Пикабу» читатели вспоминают на что они до сих пор держат обиду. Куча комментариев про школу. В основном, — про учителей. У меня тоже есть две истории.

Вторую расскажу позже, а первая тоже про школу.

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

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

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

Видя, что я её аргументация не работает, на выпускном экзамене она меня «срезала» каким-то незначительным вопросом вне программы, ответ на который я впопыхах и не вспомнил, и поставила четвёрку. Я был вне себя от возмущения, пытался спорить, но это ни к чему не привело. Я смирился.

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

5 комментариев

Когда зародилась жизнь

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

«Our study showed that LUCA was a complex organism, not too different from modern prokaryotes, but what is really interesting is that it’s clear it possessed an early immune system, showing that even by 4,2 billion years ago, our ancestor was engaging in an arms race with viruses,» said University of Bristol’s Professor Davide Pisani.

4,2 миллиарда лет! Как по мне, жизнь зародилась удивительно быстро, — планете-то около 4,5 миллиардов лет! После формирования планете явно нужно было ещё немало времени, чтобы остыть и прекратить выбрасывать в атмосферу пепел и прочую гадость, а потом проходит всего несколько сотен миллионов лет и зарождается жизнь!

Можно ли, интересно, сделать из этого вывод, что развитие жизни на планете с похожими на Землю условиями, — это вопрос довольно короткого (по геологическим меркам) периода времени?

Нам известно около 3×10²² звёзд, среди них должно быть необозримое количество планет, похожих на нашу родную. Что если на каждой такой, — своя уникальная жизнь?

2 комментария

На что вы до сих пор держите обиду—2

Продолжу тему про обиды.

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

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

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

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

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

— А, Степанищев, — сказала она, — я и так верю, что ты всё решил.

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

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

Оставить комментарий

Амурский землекоп

На что похож зверь на фото? Как по мне, — это голый землекоп, просто вылитый. Та же морда, коротенькие ножки и хвост…

Сфотографировал в музее Лобачевского, куда мы в субботу ходили с дочкой. В музее проводится детская выставка по сказкам, вот мы и решили зайти. Насколько я понял, это ритуальная статуэтка с Дальнего востока, но изображает она не голого землекопа, а волшебного тигра.

Деревянная скульптура тигра с длинным хвостом на белой подставке; этикетка: «Волшебный тигр, который помогает охотникам. Привезен из Дальнего Востока. Сделан из дерева».

Оставить комментарий

И опять чинил PogodaStatusBar

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

В общем, прошла неделя и мне снова прикрыли лавочку — урл «Гисметео», который я использовал, чтобы определять айди населённого пункта по названию вдруг меня забанил. На любой запрос выдаётся «доступ запрещён». Да что ж такое!

Полез я снова смотреть погодный плагин, смотреть как сделано там. Он же как-то определяет текущий населённый пункт, значит и я как-то могу получить эти данные. Оказалось, что есть у «Гисметео» ещё один сервис — services.gismeteo.net/inform-service/inf_chrome/cities/, который определяет местоположение по АйПи (ошибается в моём случае) или по координатам.

Координаты у меня уже есть, я их могу забрать у «Яндекса», надо только распарсить:

@functools.cache
def _getRegionData(self):
    try:
        url = "https://yandex.ru/tune/geo/"
        content = urllib.request.urlopen(url).read().decode('utf-8')
        region_data = re.search(r'data-bem="([^"]+coords[^"]+)"', content).group(1)
        parsed_region_data = json.loads(html.unescape(region_data))

        # {'id': xx, 'region': 'XXXXX', 'coords': ['XX.XXXXX', 'XX.XXXXX'], 'accuracy': 'XXXXXX'}
        return parsed_region_data['checkbox']['auto']
    except (IOError, AttributeError):
        return None

В итоге, получилась такая схема: в «Яндексе» получаем координаты и айди населённого пункта у «Яндекса», по этому айди получаем информацию по пробкам. Далее по координатам получаем айди населённого пункта у «Гисметео», по которому получаем погоду.

Ей-богу я в полушаге от того, чтобы прекратить борьбу и забросить проект.

6 комментариев

Пригласили выступить по кирпичам

Пригласили выступить на конференции в Свияжске на выставке «Русский кирпич: клейма, метки, знаки». Вот уж совершенно неожиданное предложение.

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

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

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

Так что, пожалуй, я откажусь. Сделать на таком материале полезный доклад можно, только потратив очень много времени, а мне этого не хочется.

Оставить комментарий

WASM в шрифтах

Ну вот мы и дожили до момента, когда в шрифтах появился язык программирования. В harfbuzz, лидирующей библиотеке для отрисовки шрифтов появилась встроенная поддержка WASM.

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

В общем, в шрифтах появился свой язык программирования.

Естественно, все побежали делать на нём всякую весёлую дичь. Внутрь шрифтов уже засунули «Тетрис» и даже какую-то языковую модель.

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

Скриншот программы FontGoggles: в поле ввода текст «BOLK», ниже отображён шрифт Morse-Regular.ttf, где буквы закодированы точками и тире азбуки Морзе.
Азбука Морзе отрисовывается через ВебАссемблер (WASM)

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

2 комментария

Немного о WASM'е в шрифтах

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

Давайте опять немного о том, почему язык программирования в шрифте — это удобно.

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

Это делается для красоты, чтобы шрифт казался однородным. Буквы не квадратные, одни шире, другие у́же, «о» круглая, а «ж» похожа на причёску Альберта Эйнштейна. Если писать буквы как есть, то будет выглядеть неаккуратно, поэтому в местах их прилегания расстояния подбирают так, чтобы смотрелось хорошо.

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

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

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

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

Как это работает?

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

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

8 комментариев

Дочка на каникулах

До этого лета дочка нигде не была без нас дольше пары дней. Максимум — уезжала к дедушке за город на одну ночёвку. Эти летние каникулы у нас прямо время экспериментов.

Сначала мы отвезли её к моим родителям на три недели в Лениногорск, а теперь она проводит время в летнем лагере под Казанью. Если в первом случае мы особо не переживали, — всё-таки рядом родные люди, которых она хорошо знает и любит, то перед лагерем мы немного волновались.

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

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

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

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

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

Оставить комментарий

Кирпич «Сызр.-Вяз. Ж. Д.»

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

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

Ржавый металлический брус с круглой эмблемой, на которой читаются буквы «Ж.Д.» и частично «...СТ-ВЭЗ», лежит на камне среди мусора.
Кирпич с клеймом Сызрано-Вяземской железной дороги

Разломалин Д.В. в своей книге «Железные дороги Калужской губернии», изданной в 1925 году, указывает, что в ведении Сызрано-Вяземской железной дороги на станции Калуга находилось два небольших кирпичных завода. На этих заводах трудилось 30 человек, и их годовое производство составляло до 500 тысяч кирпичей и 200 тонн извести.

Дополнительно свидетельством о существовании этих заводов служат данные из «Указателя Всероссийской промышленной и художественной выставки 1896 года в Нижнем Новгороде», где в разделе «Строительное и инженерное дело» были представлены чертежи кирпичного завода, расположенного на станции Калуга.

Сызрано-Вяземская жел. дор.: чертежи типа здания полустанции, кирпичного завода на ст. Калуга, здания для подачи нефти на паровозы, проект двухклассного железнодорожного училища.

Сведения об этом кирпичном заводе я почерпнул у Валерия Леонова, известного исследователя кирпичных клейм.

Добавлено позднее: оказалось, что это кирпич Топорнина.

Оставить комментарий

Совершенно серые клеточки

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

Бирюзовый пластиковый контейнер с надписью «50M» и китайскими иероглифами, закреплённый на металлической перилах эскалатора.
Та самая нить

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

2 комментария

Инженеръ Шрадеръ

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

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

Ржавая металлическая крышка клапана Шрадера с надписями «ОТКР», «ЗАКР», «ИНЖЕНЕРЪ ШРАДЕРЪ», «МОСКВА ТЕЛЕФ. 519-74» и зубчатым отверстием в центре, лежащая на ладони.
Инженеръ Шрадеръ. Москва. Телеф. 519-74

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

Найденная деталь оказалась частью запорной арматуры для радиаторов отопления. Думаю, неплохо различимая буква «ℜ» вверху является указанием на регулировку температуры. Только тут вместо привычного нам Цельсия стоит буква шкалы Реомюра.

Чугунный радиатор с орнаментом и вентилем, на котором написано «FREDDO» и «CALDO», на белом фоне.
Радиатор Retro Style Windsor, сделанный в винтажном стиле

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

Список адресов и должностей: Шрадер А. (т-во, гор. амб., фабр. лавка, конт. пряжи, инж.-техн., контора и кварт., кабинет), Шрадер Р. А. — Садовники, 77.
Инженер Шрадер А. А. вместе с предполагаемыми отцом и братом в справочнике «Списокъ Абонентовъ московской телефонной сѣти», 1915

Разве что интересный факт — рядом упоминаются ещё два Шрадера с инициалами «А.» (Август) и «Р. А» (Роберт Августович). Товарищество «Август Шрадер», занимавшееся текстилем, некогда организовал уроженец Бремена Август Андреевич, но в 1900-м году, когда он умер, компания отошла его сыну Роберту и дочерям Бетти, Эмилии, Франциске и Аделе.

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

Шрадер Адольф Авг. инж. Знаменка 14. Т. 519-74 и 44-01. Технич. контора.
Инженер Адольф Августович в справочнике «Вся Москва: Адресная и справочная книга на 1915 год»

Упоминание конторы Адольфа Августовича я нашёл в трёх справочниках — 1913, 1914 и 1915 годов. А вот в справочнике «Вся Москва: Адресная и справочная книга на 1917 год» телефон «519-74» принадлежит уже другому человеку и инженер Шрадер не встречается.

Добавлено: позже оказалось, что это всё-таки другой Шрадер.

А ещё некий инженер Шрадер А. А. неожиданно всплывает в газете «Вятский край» № 32 за 1895 год. Тот же этот инженер или нет, я не знаю, но вряд ли это такая распространённая фамилия, чтобы в России было два человека с теми же инициалами и родом занятий.

Статья «Хроника» о прибытии инженера А. А. Шрадера в Вятку для бурения артезианского колодца при губернской больнице; указано условие гарантии объёма воды и стоимость работ.
Инженер Шрадер А. А. в газете «Вятский край» № 32 за 1895 год

Интересно, что в Вятку (сейчас это город Киров) Шрадер прибыл из Казани. Что же он тут делал? У меня есть гипотеза, что он поступил в Казанский Императорский Университет на инженера, а потом остался работать.

Думаю тот же Шрадер упоминается в проекте, связанном с обводнением Булака при помощи артезианских скважин — есть в Казани такой канал, соединявший когда-то озеро Нижний Кабан и реку Казанку.

Отрывок текста о бурении скважины инженером Шрадером в Булаке: вода не поднялась выше дна, пробное откачивание дало около 40000 ведер в сутки.
«Къ вопросу объ оздоровленіи Кабана и Булака», типография И. С. Перова в Казани, 1903

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

Оставить комментарий

Паёк в поход

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

Плюсы таких пайков для меня очевидны: герметичная упаковка, компактность и калорийность. Нам с моим другом на сутки хватает одного такого набора, а стоит он чуть больше 700 рублей в «Озоне».

Год назад я показывал как выглядит китайский паёк, но до сих пор не рассказывал, что есть в российских.

Открытая картонная коробка с пайком: консервы, крекеры, салфетки, пакет с надписью «Концентрат для напитков» и чёрный мусорный пакет на песке.
Коробка и её содержимое

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

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

Вода, естественно, в набор не входит. Иногда в комплекте идут таблетки для обеззараживания воды, но мы ими не пользуемся — берём воду с собой отдельно, по 2,5 литра на человека в день. Обычно нам этого хватает, чтобы попить и экономно помыть руки пару раз, тем более, что в наборах почти всегда есть влажные салфетки.

Открытая консервная банка с тушёным мясом и жиром, стоящая на песке на подставке; на этикетке видны надписи «ЭкоПрод», «Масса нетто 0,325 кг» и QR-код.
Пример того как разогревается банка с питанием

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

Как по мне, для привалов это идеальное решение. В формате же пешего похода без привалов (у нас такие тоже бывают), я обычно беру энергетические батончики и простые углеводы в шоколадках. Их я использую для быстрого буста, если надо что-то форсировать, а силы временно покинули. В остальное время в таких походах я обычно ничего не ем.

4 комментария

Интернет-время «Своч»

Интересно насколько по-разному люди записывают время. Если я пишу от руки, предпочитаю писать минуты в верхнем индексе — «8³⁵». Более свежие люди так не делают, пишут «8:35» или, гораздо реже, «8.35».swatch internet time

Последняя форма записи подтолкнула мои размышления к тому, какой у нас, в сущности, странный способ измерения времени.

«8.35» похоже на десятичную дробь, но на самом деле основание дробной части тут — 60, а у целой — 12 или 24, в зависимости от обстоятельств. Наверняка все об этом думают время от времени.

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

Серебристый с чёрными вставками пейджер Ericsson с антенной, на экране которого отображается текст «WORLD @618», значок сигнала и заряда батареи.
Интернет-время на экране телефона Ericsson T20e

Швейцарская компания «Своч» (Swatch) занимается наручными часами. Не знаю как у неё сейчас с известностью, а конце 90-х—начале 2000-х, у нас в стране она была очень узнаваемой, думаю, как и во всём мире.

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

Идея была в том, чтобы разделить сутки на тысячу «битов» — от нуля до 999, каждый «бит» (beat) равнялся 86,4 секунды, при этом отсчёт начинался с часового пояса UTC+01:00.

Время записывалось, начиная с символа «@» (он тогда прочно ассоциировался с интернетом) и добивалось нулями до трёх разрядов. Например: «@007», «@013» и так далее.

Вот небольшая программа на «Расте» для вывода текущего времени в этом формате:

use chrono::{Utc, Timelike, Duration as D};
use std::thread;
use std::time::Duration;

fn main() {
    const SECS_IN_BEAT: f64 = 86.4;

    loop {
        let seconds = (Utc::now() + D::hours(1)).num_seconds_from_midnight() as f64;
        let beat = (seconds / SECS_IN_BEAT).floor();

        print!("🕰️ @{}\n\x1b[A\x1b[G", format!("{:03}", beat));

        let duration = (1. + beat) * SECS_IN_BEAT - seconds;
        thread::sleep(Duration::from_secs_f64(duration));
    }
}

Идея свою минуту славы получила, — я помню, компания «Эрикссон» выпустила телефон, который умел отображать время в этом формате, в языке ПХП добавили поддержку этого формата в функции работы со временем, а «Своч» выпустила часы, где в первой строке было традиционное время, а ниже — время в интернет-формате.

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

Сейчас для видеосозвонов или онлайн-игр такое могло бы пригодиться. С заказчиками в других часовых поясах мне нередко приходится уточнять по какому времени мы договариваемся о созвоне, — московскому или местному.

К настоящему моменту, я считаю, поезд интернет-времени уже ушёл. Когда интернет воспринимался что-то новое, что-то, диктующее свои законы, в нём могло появиться собственное время. Теперь вряд ли.

15 комментариев

Шрадер и Казань

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

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

Выяснилось следующее. Несмотря на то, что мне казалось маловероятным, чтобы в стране жило два инженера Шрадера с одинаковыми инициалами, это оказалось вполне возможным. В Москве жил Адольф Августович, а в справочнике «Адресная книжка г. Казани» два раза (в 1893 и 1896 гг.) записан Александр Александрович.

Выделенный фрагмент: «Шрадеръ, Алекс. Алекс.» — имя и отчество в списке технических контор, вероятно, из справочника или каталога начала XX века.
Шрадер А. А. в справочнике «Адресная книжка г. Казани», Казань, скоропечатня Л. П. Антонова, 1893

В принципе, это можно было бы списать на неточность источника — когда я изучал те же справочники в рамках своего интереса к кирпичным клеймам, подобные неточности встречались постоянно. Но в справочнике «Вся Казань» за 1899 год находится ещё один Шрадер с тем же отчеством.

По всей видимости, в Казани жила другая семья Шрадеров, и моя версия про учёбу в Казани и возвращение в Москву к семье полностью несостоятельна.

Текст: «Артезіанскіе колодцы. Шрадеръ Сигизмундъ Александровичъ (Булакъ, д. Шестакова).
Шрадер С. А. в справочнике «Вся Казань», Казань, издание лито-типографии И. Н. Харитонова, 1899

Оставить комментарий

Ещё и ещё «Костин»

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

Я сначала не планировал их выкладывать, но, думаю, лишним не будет, откуда знать что пригодится для истории.

Два фрагмента кирпича с надписями: белый камень с «ДРЕ» и желтый кирпич с «АННЫ», лежащие на земле.
Кирпичи торгового дома «И. А. Костинъ с племянниками»

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

Самарские коллеги, к слову, задаются тем же вопросом. Видимо дела у Ивана Афанасьевича шли необыкновенно хорошо.

Добавлено позднее. В справочниках есть множество упоминаний лавки торгового дома Ивана Афанасьевича в Казани, один из примеров:

Список гончаров: Арбузов, Бюляков, Ерохин, Костин. Костин выделен жёлтым.
«Справочная книга „Вся Казань“ на 1910 годъ», Казань, типо-литографія И. С. Перова, 1910

Оставить комментарий

Похудел

Недавно мне сказали, что я похудел. Вчера перед сном подумалось какое всё-таки это парадоксальное слово — «похудел». Сейчас оно в одном ряду с красотой и здоровьем, но «худо» недостаточно из него стёрлось, чтобы его там не замечать.

С «пополнел» похоже, но там это менее явно ощущается, чувствуется едва заметно. Полнота — плохо, но если не связано с весом, то хорошо. Например, полное понимание — это отличная штука.

7 комментариев

Упоминание насечек на монетах

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

Я склоняюсь к версии, что такие монеты использовались в какой-то игре.

Мой друг Олег Петрович случайно набрёл в газете «Волжский вестник» на заметку, где, как кажется, есть упоминание таких монет:

Циркуляр министра финансов о приёме пробитых серебряных монет в казну; запрещено принимать испорченные, но разрешены пробитые для украшений.
Заметка об испорченных монетах в газете «Волжский вѣстникъ», № 215, 1888 года

2 комментария

Забрали дочку из лагеря

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

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

Девочка в розовом пижамном костюме стоит среди спиленных деревьев и веток на улице, на заднем плане — красный автомобиль и белый микроавтобус.
Мы с дочкой решили посчитать сколько прожило это дерево по кольцам на спилах

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

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

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

5 комментариев

Это другое!

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

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

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

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

Видимо это другое.

Оставить комментарий

99 бутылок: mkdir + find

77. mkdir + find — тут некий японец придумал как писать программы, используя только утилиты mkdir и find. Мне такое очень нравится, поэтому и я решил что-нибудь написать на связке этих утилит. Сразу вспомнил, что давно у меня не было «песни о пиве». Есть у меня такое развлечение — писать её на всём подряд.

Программу вы можете видеть на экране, а как она работает расскажу чуть ниже.

# Written by Evgeny Stepanischev https://bolknote.ru

rm -rf bottles; mkdir bottles
find bottles -maxdepth 98 -execdir mkdir bottles/bottles \;
find bottles -empty -name bottles -execdir mkdir bottles/bottle \;

find bottles \
        -empty -printf "1 bottle of beer on the wall, 1 bottle of beer.
Take one down and pass it around, no bottles of beer on the wall.

No more bottles of beer on the wall, no more bottles of beer.
Go to the store and buy some more, 99 bottles of beer on the wall.\n" -o \
        -regex '.*/bottles/bottles' \
        -execdir find . \
                -empty -printf "%d bottles of beer on the wall, %d bottles of beer.\n" \; \
        -execdir find bottles \
                -empty -printf "Take one down and pass it around, %d %f of beer on the wall.\n\n" \;

# Clean up
rm -rf bottles

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

Команда mkdir, наверное, многим знакома — это создание директория, а find — утилита для поиска файлов и директориев по различным критериям. Причём с найденным она может делать некоторые простые действия.

Чтобы писать программы, автор оригинальной статьи использует несколько находок.

Во-первых, создание вложенных директориев командой find с параметром -execdir mkdir имя.

Параметр запускает указанную команду в директории, который сейчас просматривает find. Эти вложенные директории в дальнейшем используются как конечный цикл для следующей команды find. Вложенность при этом можно регулировать параметром -maxdepth.

Во-вторых, параметр -printf поддерживает аргумент %d, который позволяет вывести текущий уровень вложенности и полезен в тех же циклах.

В-третьих, фильтры команды find, а так же директивы -o («ИЛИ») и -and («И») можно использовать для организации условий.

Мне пришлось дополнительно решить ещё две проблемы.

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

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

Во-вторых, мне нужно поддержать окончание множественного числа. Тут я немного смухлевал и слегка замёл эту проблему в конец — там я вывожу дополнительные строки «1 bottle of beer on the wall, 1 bottle of beer. / Take one down and pass it around, no bottles of beer on the wall».

Но в строке перед этим текстом у меня сделано более честно. Как видно, структура директориев у меня такая: 98 раз созданы вложенные bottles, а конечная директория называется bottle.

Это мне позволяет в одном из «циклов», огранизованных через find, использовать аргумент %f параметра -printf, который выводит имя текущего директория. Таким образом в самом конце я получаю bottle вместо bottles.

Добавлено: мне подсказали, что обратный цикл можно огранизовать проще, через ключ -depth, переделал программу под него:

# Written by Evgeny Stepanischev https://bolknote.ru

find start -delete 2>&-
mkdir -p start/bottle/bottles
find start/bottle -maxdepth 97 -name bottles -execdir mkdir bottles/bottles \;

find start -mindepth 1 -depth \
        -empty -printf "%d %f of beer on the wall, %d %f of beer.\n" -o \
        ! -empty -printf "Take one down and pass it around, %d %f of beer on the wall.\n\n" \
        -printf "%d %f of beer on the wall, %d %f of beer.\n" \
        -name bottle -printf "Take one down and pass it around, no bottles of beer on the wall.

No more bottles of beer on the wall, no more bottles of beer.
Go to the store and buy some more, 99 bottles of beer on the wall.\n"

rm -rf start

4 комментария

← сюда туда →