Евгений Степанищев

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

Вапоризатор

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

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

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

21 апреля  

Пожалуйста

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

— А. С. Пушкин «История села Горюхина»

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

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

Насколько я понял, когда-то «ста» могла присоединяться к чему угодно, а теперь сохранилась в одном-единственном слове.

19 апреля   история

Люк «МС»

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

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

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

Оказывается такие люки использовались с 1946 по 1953 года. В 1953 вышли временные технические условия — ВТУ 222-53, по которым (за редким исключениям) делали люки уже в другом дизайне.

18 апреля   история

Zabbix и sudo

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

Дело не сложное — вешаешь триггер, который должен запускать команду. Вроде всё прописали, но не работает. При этом в логах тишь и гладь. Я сел поразбираться.

Подцепился через strace к нужному процессу, понаблюдал как он запускает команду. Оказывается для запуска команды делается дочерний процесс, ему передаётся строка для запуска строка, а дальше дочерний процесс жалуется «sudo: sorry, you must have a tty to run sudo» во второй поток (stderr), но это никуда не попадает — ни в логи, ни на экран. Странная архитектура.

Ошибка обозначает, что пользователю, из-под которого работает «Заббикс», запрещён sudo без терминала. Без терминала sudo не сможет отключить показ пароля на экране, поэтому по-умолчанию проверка включена. Так как у нас работает не человек и пароль нигде не набирается, то проверку надо выключить опцией !requiretty.

Блокировка «Телеграма»

«Медуза» показывает интернет, который мы заслужили. В битве Давида и Голиафа страдает вся страна

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

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

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

Теперь следите за руками. Идём с копеечкой, к примеру, к «Гуглу», покупаем у них облачко и сажаем на него сервер с запрещёнкой. Сервер быстро банят, но мы не унываем, а соединяемся на «google.com», но внутри, в специальном заголовке указываем свой домен. И нас соединят с запрещённым сервером! Самое ценное, что снаружи будет полная видимость соединения с поисковиком.

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

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

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

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

17 апреля  

Золотой ключик

Дуров упустил шанс наконец-то монетизировать Телеграм (насколько я знаю, он ему денег не приносит). На волне блокировок многие мои знакомые покупают дешёвенькие площадки в Европе и Штатах и поднимают там свои прокси-сервера. Люди тратят деньги на доступ к Телеграму!

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

16 апреля  

Выгода

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

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

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

15 апреля  

Коэффициент ICQ

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

Представьте, вспомнил! Это несмотря на то, что у меня там довольно непростые знаки в пароле. Залогинился, а там какие-то люди онлайн! Пропавший с горизонта сто лет назад дизайнер, человек, помогавший настраивать спутниковый интернет годы назад, курьер, возивший какую-то мелочь из Москвы до эры интернет-магазинов… А так же старые друзья и знакомые с почти детскими фотками.

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

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

Просто те ключи, которые Дурова просят передать, в природе не существуют, такова суть конфликта.

14 апреля   icq

JavaScript и иврит

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

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

Тогда кажется только Эксплорер умел поддерживать такое и переключался он атрибутом dir целиком, всем окном. Сейчас у нас есть Юникод и специальные коды смены направления текста. В одной строке можно сколько угодно его менять.

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

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

Негативное кеширование NFS

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

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

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

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

function clear_nfs_cache(string $filename): bool
{
    $tmpname = tempnam(dirname($filename), 'clear-cache'));
    return $tmpname === false ? false : unlink($tmpname);
}
12 апреля   nfs   php   программирование
Ранее Ctrl + ↓